1951a39d68df598db08dfced8b4707755864a0492Ying Wang/**************************************************************************** 2951a39d68df598db08dfced8b4707755864a0492Ying Wang **************************************************************************** 3951a39d68df598db08dfced8b4707755864a0492Ying Wang *** 4951a39d68df598db08dfced8b4707755864a0492Ying Wang *** This header was automatically generated from a Linux kernel header 5951a39d68df598db08dfced8b4707755864a0492Ying Wang *** of the same name, to make information necessary for userspace to 6951a39d68df598db08dfced8b4707755864a0492Ying Wang *** call into the kernel available to libc. It contains only constants, 7951a39d68df598db08dfced8b4707755864a0492Ying Wang *** structures, and macros generated from the original header, and thus, 8951a39d68df598db08dfced8b4707755864a0492Ying Wang *** contains no copyrightable information. 9951a39d68df598db08dfced8b4707755864a0492Ying Wang *** 10951a39d68df598db08dfced8b4707755864a0492Ying Wang **************************************************************************** 11951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************/ 12951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef _LINUX_IP_H 13951a39d68df598db08dfced8b4707755864a0492Ying Wang#define _LINUX_IP_H 14951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <linux/types.h> 15951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <asm/byteorder.h> 16951a39d68df598db08dfced8b4707755864a0492Ying Wang 17951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPTOS_TOS_MASK 0x1E 18951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPTOS_TOS(tos) ((tos)&IPTOS_TOS_MASK) 19951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPTOS_LOWDELAY 0x10 20951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPTOS_THROUGHPUT 0x08 21951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPTOS_RELIABILITY 0x04 22951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPTOS_MINCOST 0x02 23951a39d68df598db08dfced8b4707755864a0492Ying Wang 24951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPTOS_PREC_MASK 0xE0 25951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPTOS_PREC(tos) ((tos)&IPTOS_PREC_MASK) 26951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPTOS_PREC_NETCONTROL 0xe0 27951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPTOS_PREC_INTERNETCONTROL 0xc0 28951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPTOS_PREC_CRITIC_ECP 0xa0 29951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPTOS_PREC_FLASHOVERRIDE 0x80 30951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPTOS_PREC_FLASH 0x60 31951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPTOS_PREC_IMMEDIATE 0x40 32951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPTOS_PREC_PRIORITY 0x20 33951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPTOS_PREC_ROUTINE 0x00 34951a39d68df598db08dfced8b4707755864a0492Ying Wang 35951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_COPY 0x80 36951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_CLASS_MASK 0x60 37951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_NUMBER_MASK 0x1f 38951a39d68df598db08dfced8b4707755864a0492Ying Wang 39951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_COPIED(o) ((o)&IPOPT_COPY) 40951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_CLASS(o) ((o)&IPOPT_CLASS_MASK) 41951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_NUMBER(o) ((o)&IPOPT_NUMBER_MASK) 42951a39d68df598db08dfced8b4707755864a0492Ying Wang 43951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_CONTROL 0x00 44951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_RESERVED1 0x20 45951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_MEASUREMENT 0x40 46951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_RESERVED2 0x60 47951a39d68df598db08dfced8b4707755864a0492Ying Wang 48951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_END (0 |IPOPT_CONTROL) 49951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_NOOP (1 |IPOPT_CONTROL) 50951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_SEC (2 |IPOPT_CONTROL|IPOPT_COPY) 51951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_LSRR (3 |IPOPT_CONTROL|IPOPT_COPY) 52951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_TIMESTAMP (4 |IPOPT_MEASUREMENT) 53951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_RR (7 |IPOPT_CONTROL) 54951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_SID (8 |IPOPT_CONTROL|IPOPT_COPY) 55951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_SSRR (9 |IPOPT_CONTROL|IPOPT_COPY) 56951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_RA (20|IPOPT_CONTROL|IPOPT_COPY) 57951a39d68df598db08dfced8b4707755864a0492Ying Wang 58951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPVERSION 4 59951a39d68df598db08dfced8b4707755864a0492Ying Wang#define MAXTTL 255 60951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPDEFTTL 64 61951a39d68df598db08dfced8b4707755864a0492Ying Wang 62951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_OPTVAL 0 63951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_OLEN 1 64951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_OFFSET 2 65951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_MINOFF 4 66951a39d68df598db08dfced8b4707755864a0492Ying Wang#define MAX_IPOPTLEN 40 67951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_NOP IPOPT_NOOP 68951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_EOL IPOPT_END 69951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_TS IPOPT_TIMESTAMP 70951a39d68df598db08dfced8b4707755864a0492Ying Wang 71951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_TS_TSONLY 0 72951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_TS_TSANDADDR 1 73951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IPOPT_TS_PRESPEC 3 74951a39d68df598db08dfced8b4707755864a0492Ying Wang 75951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct iphdr { 76951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef __LITTLE_ENDIAN_BITFIELD 77951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 ihl:4, 78951a39d68df598db08dfced8b4707755864a0492Ying Wang version:4; 79951a39d68df598db08dfced8b4707755864a0492Ying Wang#elif defined (__BIG_ENDIAN_BITFIELD) 80951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 version:4, 81951a39d68df598db08dfced8b4707755864a0492Ying Wang ihl:4; 82951a39d68df598db08dfced8b4707755864a0492Ying Wang#else 83951a39d68df598db08dfced8b4707755864a0492Ying Wang#error "Please fix <asm/byteorder.h>" 84951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 85951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 tos; 86951a39d68df598db08dfced8b4707755864a0492Ying Wang __be16 tot_len; 87951a39d68df598db08dfced8b4707755864a0492Ying Wang __be16 id; 88951a39d68df598db08dfced8b4707755864a0492Ying Wang __be16 frag_off; 89951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 ttl; 90951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 protocol; 91951a39d68df598db08dfced8b4707755864a0492Ying Wang __u16 check; 92951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 saddr; 93951a39d68df598db08dfced8b4707755864a0492Ying Wang __be32 daddr; 94951a39d68df598db08dfced8b4707755864a0492Ying Wang 95951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 96951a39d68df598db08dfced8b4707755864a0492Ying Wang 97951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct ip_auth_hdr { 98951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 nexthdr; 99951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 hdrlen; 100951a39d68df598db08dfced8b4707755864a0492Ying Wang __u16 reserved; 101951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 spi; 102951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 seq_no; 103951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 auth_data[0]; 104951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 105951a39d68df598db08dfced8b4707755864a0492Ying Wang 106951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct ip_esp_hdr { 107951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 spi; 108951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 seq_no; 109951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 enc_data[0]; 110951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 111951a39d68df598db08dfced8b4707755864a0492Ying Wang 112951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct ip_comp_hdr { 113951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 nexthdr; 114951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 flags; 115951a39d68df598db08dfced8b4707755864a0492Ying Wang __u16 cpi; 116951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 117951a39d68df598db08dfced8b4707755864a0492Ying Wang 118951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 119