1*cda5da8dSAndroid Build Coastguard Worker #ifndef _NET_ROUTE_H 2*cda5da8dSAndroid Build Coastguard Worker #define _NET_ROUTE_H 3*cda5da8dSAndroid Build Coastguard Worker 4*cda5da8dSAndroid Build Coastguard Worker #ifdef __cplusplus 5*cda5da8dSAndroid Build Coastguard Worker extern "C" { 6*cda5da8dSAndroid Build Coastguard Worker #endif 7*cda5da8dSAndroid Build Coastguard Worker 8*cda5da8dSAndroid Build Coastguard Worker #include <stdint.h> 9*cda5da8dSAndroid Build Coastguard Worker #include <sys/socket.h> 10*cda5da8dSAndroid Build Coastguard Worker #include <sys/types.h> 11*cda5da8dSAndroid Build Coastguard Worker #include <netinet/in.h> 12*cda5da8dSAndroid Build Coastguard Worker 13*cda5da8dSAndroid Build Coastguard Worker 14*cda5da8dSAndroid Build Coastguard Worker struct rtentry { 15*cda5da8dSAndroid Build Coastguard Worker unsigned long int rt_pad1; 16*cda5da8dSAndroid Build Coastguard Worker struct sockaddr rt_dst; 17*cda5da8dSAndroid Build Coastguard Worker struct sockaddr rt_gateway; 18*cda5da8dSAndroid Build Coastguard Worker struct sockaddr rt_genmask; 19*cda5da8dSAndroid Build Coastguard Worker unsigned short int rt_flags; 20*cda5da8dSAndroid Build Coastguard Worker short int rt_pad2; 21*cda5da8dSAndroid Build Coastguard Worker unsigned long int rt_pad3; 22*cda5da8dSAndroid Build Coastguard Worker unsigned char rt_tos; 23*cda5da8dSAndroid Build Coastguard Worker unsigned char rt_class; 24*cda5da8dSAndroid Build Coastguard Worker short int rt_pad4[sizeof(long)/2-1]; 25*cda5da8dSAndroid Build Coastguard Worker short int rt_metric; 26*cda5da8dSAndroid Build Coastguard Worker char *rt_dev; 27*cda5da8dSAndroid Build Coastguard Worker unsigned long int rt_mtu; 28*cda5da8dSAndroid Build Coastguard Worker unsigned long int rt_window; 29*cda5da8dSAndroid Build Coastguard Worker unsigned short int rt_irtt; 30*cda5da8dSAndroid Build Coastguard Worker }; 31*cda5da8dSAndroid Build Coastguard Worker 32*cda5da8dSAndroid Build Coastguard Worker #define rt_mss rt_mtu 33*cda5da8dSAndroid Build Coastguard Worker 34*cda5da8dSAndroid Build Coastguard Worker 35*cda5da8dSAndroid Build Coastguard Worker struct in6_rtmsg { 36*cda5da8dSAndroid Build Coastguard Worker struct in6_addr rtmsg_dst; 37*cda5da8dSAndroid Build Coastguard Worker struct in6_addr rtmsg_src; 38*cda5da8dSAndroid Build Coastguard Worker struct in6_addr rtmsg_gateway; 39*cda5da8dSAndroid Build Coastguard Worker uint32_t rtmsg_type; 40*cda5da8dSAndroid Build Coastguard Worker uint16_t rtmsg_dst_len; 41*cda5da8dSAndroid Build Coastguard Worker uint16_t rtmsg_src_len; 42*cda5da8dSAndroid Build Coastguard Worker uint32_t rtmsg_metric; 43*cda5da8dSAndroid Build Coastguard Worker unsigned long int rtmsg_info; 44*cda5da8dSAndroid Build Coastguard Worker uint32_t rtmsg_flags; 45*cda5da8dSAndroid Build Coastguard Worker int rtmsg_ifindex; 46*cda5da8dSAndroid Build Coastguard Worker }; 47*cda5da8dSAndroid Build Coastguard Worker 48*cda5da8dSAndroid Build Coastguard Worker 49*cda5da8dSAndroid Build Coastguard Worker #define RTF_UP 0x0001 50*cda5da8dSAndroid Build Coastguard Worker #define RTF_GATEWAY 0x0002 51*cda5da8dSAndroid Build Coastguard Worker 52*cda5da8dSAndroid Build Coastguard Worker #define RTF_HOST 0x0004 53*cda5da8dSAndroid Build Coastguard Worker #define RTF_REINSTATE 0x0008 54*cda5da8dSAndroid Build Coastguard Worker #define RTF_DYNAMIC 0x0010 55*cda5da8dSAndroid Build Coastguard Worker #define RTF_MODIFIED 0x0020 56*cda5da8dSAndroid Build Coastguard Worker #define RTF_MTU 0x0040 57*cda5da8dSAndroid Build Coastguard Worker #define RTF_MSS RTF_MTU 58*cda5da8dSAndroid Build Coastguard Worker #define RTF_WINDOW 0x0080 59*cda5da8dSAndroid Build Coastguard Worker #define RTF_IRTT 0x0100 60*cda5da8dSAndroid Build Coastguard Worker #define RTF_REJECT 0x0200 61*cda5da8dSAndroid Build Coastguard Worker #define RTF_STATIC 0x0400 62*cda5da8dSAndroid Build Coastguard Worker #define RTF_XRESOLVE 0x0800 63*cda5da8dSAndroid Build Coastguard Worker #define RTF_NOFORWARD 0x1000 64*cda5da8dSAndroid Build Coastguard Worker #define RTF_THROW 0x2000 65*cda5da8dSAndroid Build Coastguard Worker #define RTF_NOPMTUDISC 0x4000 66*cda5da8dSAndroid Build Coastguard Worker 67*cda5da8dSAndroid Build Coastguard Worker #define RTF_DEFAULT 0x00010000 68*cda5da8dSAndroid Build Coastguard Worker #define RTF_ALLONLINK 0x00020000 69*cda5da8dSAndroid Build Coastguard Worker #define RTF_ADDRCONF 0x00040000 70*cda5da8dSAndroid Build Coastguard Worker 71*cda5da8dSAndroid Build Coastguard Worker #define RTF_LINKRT 0x00100000 72*cda5da8dSAndroid Build Coastguard Worker #define RTF_NONEXTHOP 0x00200000 73*cda5da8dSAndroid Build Coastguard Worker 74*cda5da8dSAndroid Build Coastguard Worker #define RTF_CACHE 0x01000000 75*cda5da8dSAndroid Build Coastguard Worker #define RTF_FLOW 0x02000000 76*cda5da8dSAndroid Build Coastguard Worker #define RTF_POLICY 0x04000000 77*cda5da8dSAndroid Build Coastguard Worker 78*cda5da8dSAndroid Build Coastguard Worker #define RTCF_VALVE 0x00200000 79*cda5da8dSAndroid Build Coastguard Worker #define RTCF_MASQ 0x00400000 80*cda5da8dSAndroid Build Coastguard Worker #define RTCF_NAT 0x00800000 81*cda5da8dSAndroid Build Coastguard Worker #define RTCF_DOREDIRECT 0x01000000 82*cda5da8dSAndroid Build Coastguard Worker #define RTCF_LOG 0x02000000 83*cda5da8dSAndroid Build Coastguard Worker #define RTCF_DIRECTSRC 0x04000000 84*cda5da8dSAndroid Build Coastguard Worker 85*cda5da8dSAndroid Build Coastguard Worker #define RTF_LOCAL 0x80000000 86*cda5da8dSAndroid Build Coastguard Worker #define RTF_INTERFACE 0x40000000 87*cda5da8dSAndroid Build Coastguard Worker #define RTF_MULTICAST 0x20000000 88*cda5da8dSAndroid Build Coastguard Worker #define RTF_BROADCAST 0x10000000 89*cda5da8dSAndroid Build Coastguard Worker #define RTF_NAT 0x08000000 90*cda5da8dSAndroid Build Coastguard Worker 91*cda5da8dSAndroid Build Coastguard Worker #define RTF_ADDRCLASSMASK 0xF8000000 92*cda5da8dSAndroid Build Coastguard Worker #define RT_ADDRCLASS(flags) ((uint32_t) flags >> 23) 93*cda5da8dSAndroid Build Coastguard Worker 94*cda5da8dSAndroid Build Coastguard Worker #define RT_TOS(tos) ((tos) & IPTOS_TOS_MASK) 95*cda5da8dSAndroid Build Coastguard Worker 96*cda5da8dSAndroid Build Coastguard Worker #define RT_LOCALADDR(flags) ((flags & RTF_ADDRCLASSMASK) \ 97*cda5da8dSAndroid Build Coastguard Worker == (RTF_LOCAL|RTF_INTERFACE)) 98*cda5da8dSAndroid Build Coastguard Worker 99*cda5da8dSAndroid Build Coastguard Worker #define RT_CLASS_UNSPEC 0 100*cda5da8dSAndroid Build Coastguard Worker #define RT_CLASS_DEFAULT 253 101*cda5da8dSAndroid Build Coastguard Worker 102*cda5da8dSAndroid Build Coastguard Worker #define RT_CLASS_MAIN 254 103*cda5da8dSAndroid Build Coastguard Worker #define RT_CLASS_LOCAL 255 104*cda5da8dSAndroid Build Coastguard Worker #define RT_CLASS_MAX 255 105*cda5da8dSAndroid Build Coastguard Worker 106*cda5da8dSAndroid Build Coastguard Worker 107*cda5da8dSAndroid Build Coastguard Worker #define RTMSG_ACK NLMSG_ACK 108*cda5da8dSAndroid Build Coastguard Worker #define RTMSG_OVERRUN NLMSG_OVERRUN 109*cda5da8dSAndroid Build Coastguard Worker 110*cda5da8dSAndroid Build Coastguard Worker #define RTMSG_NEWDEVICE 0x11 111*cda5da8dSAndroid Build Coastguard Worker #define RTMSG_DELDEVICE 0x12 112*cda5da8dSAndroid Build Coastguard Worker #define RTMSG_NEWROUTE 0x21 113*cda5da8dSAndroid Build Coastguard Worker #define RTMSG_DELROUTE 0x22 114*cda5da8dSAndroid Build Coastguard Worker #define RTMSG_NEWRULE 0x31 115*cda5da8dSAndroid Build Coastguard Worker #define RTMSG_DELRULE 0x32 116*cda5da8dSAndroid Build Coastguard Worker #define RTMSG_CONTROL 0x40 117*cda5da8dSAndroid Build Coastguard Worker 118*cda5da8dSAndroid Build Coastguard Worker #define RTMSG_AR_FAILED 0x51 119*cda5da8dSAndroid Build Coastguard Worker 120*cda5da8dSAndroid Build Coastguard Worker #ifdef __cplusplus 121*cda5da8dSAndroid Build Coastguard Worker } 122*cda5da8dSAndroid Build Coastguard Worker #endif 123*cda5da8dSAndroid Build Coastguard Worker 124*cda5da8dSAndroid Build Coastguard Worker #endif 125