1*cda5da8dSAndroid Build Coastguard Worker /* 2*cda5da8dSAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*cda5da8dSAndroid Build Coastguard Worker * 4*cda5da8dSAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*cda5da8dSAndroid Build Coastguard Worker * for more information. 6*cda5da8dSAndroid Build Coastguard Worker */ 7*cda5da8dSAndroid Build Coastguard Worker #ifndef _UAPI__LINUX_MROUTE_H 8*cda5da8dSAndroid Build Coastguard Worker #define _UAPI__LINUX_MROUTE_H 9*cda5da8dSAndroid Build Coastguard Worker #include <linux/sockios.h> 10*cda5da8dSAndroid Build Coastguard Worker #include <linux/types.h> 11*cda5da8dSAndroid Build Coastguard Worker #include <linux/in.h> 12*cda5da8dSAndroid Build Coastguard Worker #define MRT_BASE 200 13*cda5da8dSAndroid Build Coastguard Worker #define MRT_INIT (MRT_BASE) 14*cda5da8dSAndroid Build Coastguard Worker #define MRT_DONE (MRT_BASE + 1) 15*cda5da8dSAndroid Build Coastguard Worker #define MRT_ADD_VIF (MRT_BASE + 2) 16*cda5da8dSAndroid Build Coastguard Worker #define MRT_DEL_VIF (MRT_BASE + 3) 17*cda5da8dSAndroid Build Coastguard Worker #define MRT_ADD_MFC (MRT_BASE + 4) 18*cda5da8dSAndroid Build Coastguard Worker #define MRT_DEL_MFC (MRT_BASE + 5) 19*cda5da8dSAndroid Build Coastguard Worker #define MRT_VERSION (MRT_BASE + 6) 20*cda5da8dSAndroid Build Coastguard Worker #define MRT_ASSERT (MRT_BASE + 7) 21*cda5da8dSAndroid Build Coastguard Worker #define MRT_PIM (MRT_BASE + 8) 22*cda5da8dSAndroid Build Coastguard Worker #define MRT_TABLE (MRT_BASE + 9) 23*cda5da8dSAndroid Build Coastguard Worker #define MRT_ADD_MFC_PROXY (MRT_BASE + 10) 24*cda5da8dSAndroid Build Coastguard Worker #define MRT_DEL_MFC_PROXY (MRT_BASE + 11) 25*cda5da8dSAndroid Build Coastguard Worker #define MRT_FLUSH (MRT_BASE + 12) 26*cda5da8dSAndroid Build Coastguard Worker #define MRT_MAX (MRT_BASE + 12) 27*cda5da8dSAndroid Build Coastguard Worker #define SIOCGETVIFCNT SIOCPROTOPRIVATE 28*cda5da8dSAndroid Build Coastguard Worker #define SIOCGETSGCNT (SIOCPROTOPRIVATE + 1) 29*cda5da8dSAndroid Build Coastguard Worker #define SIOCGETRPF (SIOCPROTOPRIVATE + 2) 30*cda5da8dSAndroid Build Coastguard Worker #define MRT_FLUSH_MFC 1 31*cda5da8dSAndroid Build Coastguard Worker #define MRT_FLUSH_MFC_STATIC 2 32*cda5da8dSAndroid Build Coastguard Worker #define MRT_FLUSH_VIFS 4 33*cda5da8dSAndroid Build Coastguard Worker #define MRT_FLUSH_VIFS_STATIC 8 34*cda5da8dSAndroid Build Coastguard Worker #define MAXVIFS 32 35*cda5da8dSAndroid Build Coastguard Worker typedef unsigned long vifbitmap_t; 36*cda5da8dSAndroid Build Coastguard Worker typedef unsigned short vifi_t; 37*cda5da8dSAndroid Build Coastguard Worker #define ALL_VIFS ((vifi_t) (- 1)) 38*cda5da8dSAndroid Build Coastguard Worker #define VIFM_SET(n,m) ((m) |= (1 << (n))) 39*cda5da8dSAndroid Build Coastguard Worker #define VIFM_CLR(n,m) ((m) &= ~(1 << (n))) 40*cda5da8dSAndroid Build Coastguard Worker #define VIFM_ISSET(n,m) ((m) & (1 << (n))) 41*cda5da8dSAndroid Build Coastguard Worker #define VIFM_CLRALL(m) ((m) = 0) 42*cda5da8dSAndroid Build Coastguard Worker #define VIFM_COPY(mfrom,mto) ((mto) = (mfrom)) 43*cda5da8dSAndroid Build Coastguard Worker #define VIFM_SAME(m1,m2) ((m1) == (m2)) 44*cda5da8dSAndroid Build Coastguard Worker struct vifctl { 45*cda5da8dSAndroid Build Coastguard Worker vifi_t vifc_vifi; 46*cda5da8dSAndroid Build Coastguard Worker unsigned char vifc_flags; 47*cda5da8dSAndroid Build Coastguard Worker unsigned char vifc_threshold; 48*cda5da8dSAndroid Build Coastguard Worker unsigned int vifc_rate_limit; 49*cda5da8dSAndroid Build Coastguard Worker union { 50*cda5da8dSAndroid Build Coastguard Worker struct in_addr vifc_lcl_addr; 51*cda5da8dSAndroid Build Coastguard Worker int vifc_lcl_ifindex; 52*cda5da8dSAndroid Build Coastguard Worker }; 53*cda5da8dSAndroid Build Coastguard Worker struct in_addr vifc_rmt_addr; 54*cda5da8dSAndroid Build Coastguard Worker }; 55*cda5da8dSAndroid Build Coastguard Worker #define VIFF_TUNNEL 0x1 56*cda5da8dSAndroid Build Coastguard Worker #define VIFF_SRCRT 0x2 57*cda5da8dSAndroid Build Coastguard Worker #define VIFF_REGISTER 0x4 58*cda5da8dSAndroid Build Coastguard Worker #define VIFF_USE_IFINDEX 0x8 59*cda5da8dSAndroid Build Coastguard Worker struct mfcctl { 60*cda5da8dSAndroid Build Coastguard Worker struct in_addr mfcc_origin; 61*cda5da8dSAndroid Build Coastguard Worker struct in_addr mfcc_mcastgrp; 62*cda5da8dSAndroid Build Coastguard Worker vifi_t mfcc_parent; 63*cda5da8dSAndroid Build Coastguard Worker unsigned char mfcc_ttls[MAXVIFS]; 64*cda5da8dSAndroid Build Coastguard Worker unsigned int mfcc_pkt_cnt; 65*cda5da8dSAndroid Build Coastguard Worker unsigned int mfcc_byte_cnt; 66*cda5da8dSAndroid Build Coastguard Worker unsigned int mfcc_wrong_if; 67*cda5da8dSAndroid Build Coastguard Worker int mfcc_expire; 68*cda5da8dSAndroid Build Coastguard Worker }; 69*cda5da8dSAndroid Build Coastguard Worker struct sioc_sg_req { 70*cda5da8dSAndroid Build Coastguard Worker struct in_addr src; 71*cda5da8dSAndroid Build Coastguard Worker struct in_addr grp; 72*cda5da8dSAndroid Build Coastguard Worker unsigned long pktcnt; 73*cda5da8dSAndroid Build Coastguard Worker unsigned long bytecnt; 74*cda5da8dSAndroid Build Coastguard Worker unsigned long wrong_if; 75*cda5da8dSAndroid Build Coastguard Worker }; 76*cda5da8dSAndroid Build Coastguard Worker struct sioc_vif_req { 77*cda5da8dSAndroid Build Coastguard Worker vifi_t vifi; 78*cda5da8dSAndroid Build Coastguard Worker unsigned long icount; 79*cda5da8dSAndroid Build Coastguard Worker unsigned long ocount; 80*cda5da8dSAndroid Build Coastguard Worker unsigned long ibytes; 81*cda5da8dSAndroid Build Coastguard Worker unsigned long obytes; 82*cda5da8dSAndroid Build Coastguard Worker }; 83*cda5da8dSAndroid Build Coastguard Worker struct igmpmsg { 84*cda5da8dSAndroid Build Coastguard Worker __u32 unused1, unused2; 85*cda5da8dSAndroid Build Coastguard Worker unsigned char im_msgtype; 86*cda5da8dSAndroid Build Coastguard Worker unsigned char im_mbz; 87*cda5da8dSAndroid Build Coastguard Worker unsigned char im_vif; 88*cda5da8dSAndroid Build Coastguard Worker unsigned char im_vif_hi; 89*cda5da8dSAndroid Build Coastguard Worker struct in_addr im_src, im_dst; 90*cda5da8dSAndroid Build Coastguard Worker }; 91*cda5da8dSAndroid Build Coastguard Worker enum { 92*cda5da8dSAndroid Build Coastguard Worker IPMRA_TABLE_UNSPEC, 93*cda5da8dSAndroid Build Coastguard Worker IPMRA_TABLE_ID, 94*cda5da8dSAndroid Build Coastguard Worker IPMRA_TABLE_CACHE_RES_QUEUE_LEN, 95*cda5da8dSAndroid Build Coastguard Worker IPMRA_TABLE_MROUTE_REG_VIF_NUM, 96*cda5da8dSAndroid Build Coastguard Worker IPMRA_TABLE_MROUTE_DO_ASSERT, 97*cda5da8dSAndroid Build Coastguard Worker IPMRA_TABLE_MROUTE_DO_PIM, 98*cda5da8dSAndroid Build Coastguard Worker IPMRA_TABLE_VIFS, 99*cda5da8dSAndroid Build Coastguard Worker IPMRA_TABLE_MROUTE_DO_WRVIFWHOLE, 100*cda5da8dSAndroid Build Coastguard Worker __IPMRA_TABLE_MAX 101*cda5da8dSAndroid Build Coastguard Worker }; 102*cda5da8dSAndroid Build Coastguard Worker #define IPMRA_TABLE_MAX (__IPMRA_TABLE_MAX - 1) 103*cda5da8dSAndroid Build Coastguard Worker enum { 104*cda5da8dSAndroid Build Coastguard Worker IPMRA_VIF_UNSPEC, 105*cda5da8dSAndroid Build Coastguard Worker IPMRA_VIF, 106*cda5da8dSAndroid Build Coastguard Worker __IPMRA_VIF_MAX 107*cda5da8dSAndroid Build Coastguard Worker }; 108*cda5da8dSAndroid Build Coastguard Worker #define IPMRA_VIF_MAX (__IPMRA_VIF_MAX - 1) 109*cda5da8dSAndroid Build Coastguard Worker enum { 110*cda5da8dSAndroid Build Coastguard Worker IPMRA_VIFA_UNSPEC, 111*cda5da8dSAndroid Build Coastguard Worker IPMRA_VIFA_IFINDEX, 112*cda5da8dSAndroid Build Coastguard Worker IPMRA_VIFA_VIF_ID, 113*cda5da8dSAndroid Build Coastguard Worker IPMRA_VIFA_FLAGS, 114*cda5da8dSAndroid Build Coastguard Worker IPMRA_VIFA_BYTES_IN, 115*cda5da8dSAndroid Build Coastguard Worker IPMRA_VIFA_BYTES_OUT, 116*cda5da8dSAndroid Build Coastguard Worker IPMRA_VIFA_PACKETS_IN, 117*cda5da8dSAndroid Build Coastguard Worker IPMRA_VIFA_PACKETS_OUT, 118*cda5da8dSAndroid Build Coastguard Worker IPMRA_VIFA_LOCAL_ADDR, 119*cda5da8dSAndroid Build Coastguard Worker IPMRA_VIFA_REMOTE_ADDR, 120*cda5da8dSAndroid Build Coastguard Worker IPMRA_VIFA_PAD, 121*cda5da8dSAndroid Build Coastguard Worker __IPMRA_VIFA_MAX 122*cda5da8dSAndroid Build Coastguard Worker }; 123*cda5da8dSAndroid Build Coastguard Worker #define IPMRA_VIFA_MAX (__IPMRA_VIFA_MAX - 1) 124*cda5da8dSAndroid Build Coastguard Worker enum { 125*cda5da8dSAndroid Build Coastguard Worker IPMRA_CREPORT_UNSPEC, 126*cda5da8dSAndroid Build Coastguard Worker IPMRA_CREPORT_MSGTYPE, 127*cda5da8dSAndroid Build Coastguard Worker IPMRA_CREPORT_VIF_ID, 128*cda5da8dSAndroid Build Coastguard Worker IPMRA_CREPORT_SRC_ADDR, 129*cda5da8dSAndroid Build Coastguard Worker IPMRA_CREPORT_DST_ADDR, 130*cda5da8dSAndroid Build Coastguard Worker IPMRA_CREPORT_PKT, 131*cda5da8dSAndroid Build Coastguard Worker IPMRA_CREPORT_TABLE, 132*cda5da8dSAndroid Build Coastguard Worker __IPMRA_CREPORT_MAX 133*cda5da8dSAndroid Build Coastguard Worker }; 134*cda5da8dSAndroid Build Coastguard Worker #define IPMRA_CREPORT_MAX (__IPMRA_CREPORT_MAX - 1) 135*cda5da8dSAndroid Build Coastguard Worker #define MFC_ASSERT_THRESH (3 * HZ) 136*cda5da8dSAndroid Build Coastguard Worker #define IGMPMSG_NOCACHE 1 137*cda5da8dSAndroid Build Coastguard Worker #define IGMPMSG_WRONGVIF 2 138*cda5da8dSAndroid Build Coastguard Worker #define IGMPMSG_WHOLEPKT 3 139*cda5da8dSAndroid Build Coastguard Worker #define IGMPMSG_WRVIFWHOLE 4 140*cda5da8dSAndroid Build Coastguard Worker #endif 141