0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #ifndef _UAPI_LINUX_IP_H
0019 #define _UAPI_LINUX_IP_H
0020 #include <linux/types.h>
0021 #include <asm/byteorder.h>
0022
0023 #define IPTOS_TOS_MASK 0x1E
0024 #define IPTOS_TOS(tos) ((tos)&IPTOS_TOS_MASK)
0025 #define IPTOS_LOWDELAY 0x10
0026 #define IPTOS_THROUGHPUT 0x08
0027 #define IPTOS_RELIABILITY 0x04
0028 #define IPTOS_MINCOST 0x02
0029
0030 #define IPTOS_PREC_MASK 0xE0
0031 #define IPTOS_PREC(tos) ((tos)&IPTOS_PREC_MASK)
0032 #define IPTOS_PREC_NETCONTROL 0xe0
0033 #define IPTOS_PREC_INTERNETCONTROL 0xc0
0034 #define IPTOS_PREC_CRITIC_ECP 0xa0
0035 #define IPTOS_PREC_FLASHOVERRIDE 0x80
0036 #define IPTOS_PREC_FLASH 0x60
0037 #define IPTOS_PREC_IMMEDIATE 0x40
0038 #define IPTOS_PREC_PRIORITY 0x20
0039 #define IPTOS_PREC_ROUTINE 0x00
0040
0041
0042
0043 #define IPOPT_COPY 0x80
0044 #define IPOPT_CLASS_MASK 0x60
0045 #define IPOPT_NUMBER_MASK 0x1f
0046
0047 #define IPOPT_COPIED(o) ((o)&IPOPT_COPY)
0048 #define IPOPT_CLASS(o) ((o)&IPOPT_CLASS_MASK)
0049 #define IPOPT_NUMBER(o) ((o)&IPOPT_NUMBER_MASK)
0050
0051 #define IPOPT_CONTROL 0x00
0052 #define IPOPT_RESERVED1 0x20
0053 #define IPOPT_MEASUREMENT 0x40
0054 #define IPOPT_RESERVED2 0x60
0055
0056 #define IPOPT_END (0 |IPOPT_CONTROL)
0057 #define IPOPT_NOOP (1 |IPOPT_CONTROL)
0058 #define IPOPT_SEC (2 |IPOPT_CONTROL|IPOPT_COPY)
0059 #define IPOPT_LSRR (3 |IPOPT_CONTROL|IPOPT_COPY)
0060 #define IPOPT_TIMESTAMP (4 |IPOPT_MEASUREMENT)
0061 #define IPOPT_CIPSO (6 |IPOPT_CONTROL|IPOPT_COPY)
0062 #define IPOPT_RR (7 |IPOPT_CONTROL)
0063 #define IPOPT_SID (8 |IPOPT_CONTROL|IPOPT_COPY)
0064 #define IPOPT_SSRR (9 |IPOPT_CONTROL|IPOPT_COPY)
0065 #define IPOPT_RA (20|IPOPT_CONTROL|IPOPT_COPY)
0066
0067 #define IPVERSION 4
0068 #define MAXTTL 255
0069 #define IPDEFTTL 64
0070
0071 #define IPOPT_OPTVAL 0
0072 #define IPOPT_OLEN 1
0073 #define IPOPT_OFFSET 2
0074 #define IPOPT_MINOFF 4
0075 #define MAX_IPOPTLEN 40
0076 #define IPOPT_NOP IPOPT_NOOP
0077 #define IPOPT_EOL IPOPT_END
0078 #define IPOPT_TS IPOPT_TIMESTAMP
0079
0080 #define IPOPT_TS_TSONLY 0
0081 #define IPOPT_TS_TSANDADDR 1
0082 #define IPOPT_TS_PRESPEC 3
0083
0084 #define IPV4_BEET_PHMAXLEN 8
0085
0086 struct iphdr {
0087 #if defined(__LITTLE_ENDIAN_BITFIELD)
0088 __u8 ihl:4,
0089 version:4;
0090 #elif defined (__BIG_ENDIAN_BITFIELD)
0091 __u8 version:4,
0092 ihl:4;
0093 #else
0094 #error "Please fix <asm/byteorder.h>"
0095 #endif
0096 __u8 tos;
0097 __be16 tot_len;
0098 __be16 id;
0099 __be16 frag_off;
0100 __u8 ttl;
0101 __u8 protocol;
0102 __sum16 check;
0103 __be32 saddr;
0104 __be32 daddr;
0105
0106 };
0107
0108
0109 struct ip_auth_hdr {
0110 __u8 nexthdr;
0111 __u8 hdrlen;
0112 __be16 reserved;
0113 __be32 spi;
0114 __be32 seq_no;
0115 __u8 auth_data[];
0116 };
0117
0118 struct ip_esp_hdr {
0119 __be32 spi;
0120 __be32 seq_no;
0121 __u8 enc_data[];
0122 };
0123
0124 struct ip_comp_hdr {
0125 __u8 nexthdr;
0126 __u8 flags;
0127 __be16 cpi;
0128 };
0129
0130 struct ip_beet_phdr {
0131 __u8 nexthdr;
0132 __u8 hdrlen;
0133 __u8 padlen;
0134 __u8 reserved;
0135 };
0136
0137
0138 enum
0139 {
0140 IPV4_DEVCONF_FORWARDING=1,
0141 IPV4_DEVCONF_MC_FORWARDING,
0142 IPV4_DEVCONF_PROXY_ARP,
0143 IPV4_DEVCONF_ACCEPT_REDIRECTS,
0144 IPV4_DEVCONF_SECURE_REDIRECTS,
0145 IPV4_DEVCONF_SEND_REDIRECTS,
0146 IPV4_DEVCONF_SHARED_MEDIA,
0147 IPV4_DEVCONF_RP_FILTER,
0148 IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE,
0149 IPV4_DEVCONF_BOOTP_RELAY,
0150 IPV4_DEVCONF_LOG_MARTIANS,
0151 IPV4_DEVCONF_TAG,
0152 IPV4_DEVCONF_ARPFILTER,
0153 IPV4_DEVCONF_MEDIUM_ID,
0154 IPV4_DEVCONF_NOXFRM,
0155 IPV4_DEVCONF_NOPOLICY,
0156 IPV4_DEVCONF_FORCE_IGMP_VERSION,
0157 IPV4_DEVCONF_ARP_ANNOUNCE,
0158 IPV4_DEVCONF_ARP_IGNORE,
0159 IPV4_DEVCONF_PROMOTE_SECONDARIES,
0160 IPV4_DEVCONF_ARP_ACCEPT,
0161 IPV4_DEVCONF_ARP_NOTIFY,
0162 IPV4_DEVCONF_ACCEPT_LOCAL,
0163 IPV4_DEVCONF_SRC_VMARK,
0164 IPV4_DEVCONF_PROXY_ARP_PVLAN,
0165 IPV4_DEVCONF_ROUTE_LOCALNET,
0166 IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL,
0167 IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL,
0168 IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN,
0169 IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST,
0170 IPV4_DEVCONF_DROP_GRATUITOUS_ARP,
0171 IPV4_DEVCONF_BC_FORWARDING,
0172 IPV4_DEVCONF_ARP_EVICT_NOCARRIER,
0173 __IPV4_DEVCONF_MAX
0174 };
0175
0176 #define IPV4_DEVCONF_MAX (__IPV4_DEVCONF_MAX - 1)
0177
0178 #endif