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_IF_PPPOX_H 8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI__LINUX_IF_PPPOX_H 9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h> 10*8d67ca89SAndroid Build Coastguard Worker #include <asm/byteorder.h> 11*8d67ca89SAndroid Build Coastguard Worker #include <linux/socket.h> 12*8d67ca89SAndroid Build Coastguard Worker #include <linux/if.h> 13*8d67ca89SAndroid Build Coastguard Worker #include <linux/if_ether.h> 14*8d67ca89SAndroid Build Coastguard Worker #include <linux/if_pppol2tp.h> 15*8d67ca89SAndroid Build Coastguard Worker #include <linux/in.h> 16*8d67ca89SAndroid Build Coastguard Worker #include <linux/in6.h> 17*8d67ca89SAndroid Build Coastguard Worker #ifndef AF_PPPOX 18*8d67ca89SAndroid Build Coastguard Worker #define AF_PPPOX 24 19*8d67ca89SAndroid Build Coastguard Worker #define PF_PPPOX AF_PPPOX 20*8d67ca89SAndroid Build Coastguard Worker #endif 21*8d67ca89SAndroid Build Coastguard Worker typedef __be16 sid_t; 22*8d67ca89SAndroid Build Coastguard Worker struct pppoe_addr { 23*8d67ca89SAndroid Build Coastguard Worker sid_t sid; 24*8d67ca89SAndroid Build Coastguard Worker unsigned char remote[ETH_ALEN]; 25*8d67ca89SAndroid Build Coastguard Worker char dev[IFNAMSIZ]; 26*8d67ca89SAndroid Build Coastguard Worker }; 27*8d67ca89SAndroid Build Coastguard Worker struct pptp_addr { 28*8d67ca89SAndroid Build Coastguard Worker __u16 call_id; 29*8d67ca89SAndroid Build Coastguard Worker struct in_addr sin_addr; 30*8d67ca89SAndroid Build Coastguard Worker }; 31*8d67ca89SAndroid Build Coastguard Worker #define PX_PROTO_OE 0 32*8d67ca89SAndroid Build Coastguard Worker #define PX_PROTO_OL2TP 1 33*8d67ca89SAndroid Build Coastguard Worker #define PX_PROTO_PPTP 2 34*8d67ca89SAndroid Build Coastguard Worker #define PX_MAX_PROTO 3 35*8d67ca89SAndroid Build Coastguard Worker struct sockaddr_pppox { 36*8d67ca89SAndroid Build Coastguard Worker __kernel_sa_family_t sa_family; 37*8d67ca89SAndroid Build Coastguard Worker unsigned int sa_protocol; 38*8d67ca89SAndroid Build Coastguard Worker union { 39*8d67ca89SAndroid Build Coastguard Worker struct pppoe_addr pppoe; 40*8d67ca89SAndroid Build Coastguard Worker struct pptp_addr pptp; 41*8d67ca89SAndroid Build Coastguard Worker } sa_addr; 42*8d67ca89SAndroid Build Coastguard Worker } __attribute__((__packed__)); 43*8d67ca89SAndroid Build Coastguard Worker struct sockaddr_pppol2tp { 44*8d67ca89SAndroid Build Coastguard Worker __kernel_sa_family_t sa_family; 45*8d67ca89SAndroid Build Coastguard Worker unsigned int sa_protocol; 46*8d67ca89SAndroid Build Coastguard Worker struct pppol2tp_addr pppol2tp; 47*8d67ca89SAndroid Build Coastguard Worker } __attribute__((__packed__)); 48*8d67ca89SAndroid Build Coastguard Worker struct sockaddr_pppol2tpin6 { 49*8d67ca89SAndroid Build Coastguard Worker __kernel_sa_family_t sa_family; 50*8d67ca89SAndroid Build Coastguard Worker unsigned int sa_protocol; 51*8d67ca89SAndroid Build Coastguard Worker struct pppol2tpin6_addr pppol2tp; 52*8d67ca89SAndroid Build Coastguard Worker } __attribute__((__packed__)); 53*8d67ca89SAndroid Build Coastguard Worker struct sockaddr_pppol2tpv3 { 54*8d67ca89SAndroid Build Coastguard Worker __kernel_sa_family_t sa_family; 55*8d67ca89SAndroid Build Coastguard Worker unsigned int sa_protocol; 56*8d67ca89SAndroid Build Coastguard Worker struct pppol2tpv3_addr pppol2tp; 57*8d67ca89SAndroid Build Coastguard Worker } __attribute__((__packed__)); 58*8d67ca89SAndroid Build Coastguard Worker struct sockaddr_pppol2tpv3in6 { 59*8d67ca89SAndroid Build Coastguard Worker __kernel_sa_family_t sa_family; 60*8d67ca89SAndroid Build Coastguard Worker unsigned int sa_protocol; 61*8d67ca89SAndroid Build Coastguard Worker struct pppol2tpv3in6_addr pppol2tp; 62*8d67ca89SAndroid Build Coastguard Worker } __attribute__((__packed__)); 63*8d67ca89SAndroid Build Coastguard Worker #define PPPOEIOCSFWD _IOW(0xB1, 0, size_t) 64*8d67ca89SAndroid Build Coastguard Worker #define PPPOEIOCDFWD _IO(0xB1, 1) 65*8d67ca89SAndroid Build Coastguard Worker #define PADI_CODE 0x09 66*8d67ca89SAndroid Build Coastguard Worker #define PADO_CODE 0x07 67*8d67ca89SAndroid Build Coastguard Worker #define PADR_CODE 0x19 68*8d67ca89SAndroid Build Coastguard Worker #define PADS_CODE 0x65 69*8d67ca89SAndroid Build Coastguard Worker #define PADT_CODE 0xa7 70*8d67ca89SAndroid Build Coastguard Worker struct pppoe_tag { 71*8d67ca89SAndroid Build Coastguard Worker __be16 tag_type; 72*8d67ca89SAndroid Build Coastguard Worker __be16 tag_len; 73*8d67ca89SAndroid Build Coastguard Worker char tag_data[]; 74*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 75*8d67ca89SAndroid Build Coastguard Worker #define PTT_EOL __cpu_to_be16(0x0000) 76*8d67ca89SAndroid Build Coastguard Worker #define PTT_SRV_NAME __cpu_to_be16(0x0101) 77*8d67ca89SAndroid Build Coastguard Worker #define PTT_AC_NAME __cpu_to_be16(0x0102) 78*8d67ca89SAndroid Build Coastguard Worker #define PTT_HOST_UNIQ __cpu_to_be16(0x0103) 79*8d67ca89SAndroid Build Coastguard Worker #define PTT_AC_COOKIE __cpu_to_be16(0x0104) 80*8d67ca89SAndroid Build Coastguard Worker #define PTT_VENDOR __cpu_to_be16(0x0105) 81*8d67ca89SAndroid Build Coastguard Worker #define PTT_RELAY_SID __cpu_to_be16(0x0110) 82*8d67ca89SAndroid Build Coastguard Worker #define PTT_SRV_ERR __cpu_to_be16(0x0201) 83*8d67ca89SAndroid Build Coastguard Worker #define PTT_SYS_ERR __cpu_to_be16(0x0202) 84*8d67ca89SAndroid Build Coastguard Worker #define PTT_GEN_ERR __cpu_to_be16(0x0203) 85*8d67ca89SAndroid Build Coastguard Worker struct pppoe_hdr { 86*8d67ca89SAndroid Build Coastguard Worker #ifdef __LITTLE_ENDIAN_BITFIELD 87*8d67ca89SAndroid Build Coastguard Worker __u8 type : 4; 88*8d67ca89SAndroid Build Coastguard Worker __u8 ver : 4; 89*8d67ca89SAndroid Build Coastguard Worker #elif defined(__BIG_ENDIAN_BITFIELD) 90*8d67ca89SAndroid Build Coastguard Worker __u8 ver : 4; 91*8d67ca89SAndroid Build Coastguard Worker __u8 type : 4; 92*8d67ca89SAndroid Build Coastguard Worker #else 93*8d67ca89SAndroid Build Coastguard Worker #error "Please fix <asm/byteorder.h>" 94*8d67ca89SAndroid Build Coastguard Worker #endif 95*8d67ca89SAndroid Build Coastguard Worker __u8 code; 96*8d67ca89SAndroid Build Coastguard Worker __be16 sid; 97*8d67ca89SAndroid Build Coastguard Worker __be16 length; 98*8d67ca89SAndroid Build Coastguard Worker struct pppoe_tag tag[]; 99*8d67ca89SAndroid Build Coastguard Worker } __attribute__((__packed__)); 100*8d67ca89SAndroid Build Coastguard Worker #define PPPOE_SES_HLEN 8 101*8d67ca89SAndroid Build Coastguard Worker #endif 102