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