Sync usage with man page.
[netbsd-mini2440.git] / dist / ipf / ipsd / Celler / ip_compat.h
blob8b43cb94adf76354264bc2fb869bc629cc4c823d
1 /* $NetBSD$ */
3 /*
4 * (C)opyright 1995 by Darren Reed.
6 * This code may be freely distributed as long as it retains this notice
7 * and is not changed in any way. The author accepts no responsibility
8 * for the use of this software. I hate legaleese, don't you ?
10 * @(#)ip_compat.h 1.1 9/14/95
14 * These #ifdef's are here mainly for linux, but who knows, they may
15 * not be in other places or maybe one day linux will grow up and some
16 * of these will turn up there too.
18 #ifndef ICMP_UNREACH
19 # define ICMP_UNREACH ICMP_DEST_UNREACH
20 #endif
21 #ifndef ICMP_SOURCEQUENCH
22 # define ICMP_SOURCEQUENCH ICMP_SOURCE_QUENCH
23 #endif
24 #ifndef ICMP_TIMXCEED
25 # define ICMP_TIMXCEED ICMP_TIME_EXCEEDED
26 #endif
27 #ifndef ICMP_PARAMPROB
28 # define ICMP_PARAMPROB ICMP_PARAMETERPROB
29 #endif
30 #ifndef IPVERSION
31 # define IPVERSION 4
32 #endif
33 #ifndef IPOPT_MINOFF
34 # define IPOPT_MINOFF 4
35 #endif
36 #ifndef IPOPT_COPIED
37 # define IPOPT_COPIED(x) ((x)&0x80)
38 #endif
39 #ifndef IPOPT_EOL
40 # define IPOPT_EOL 0
41 #endif
42 #ifndef IPOPT_NOP
43 # define IPOPT_NOP 1
44 #endif
45 #ifndef IP_MF
46 # define IP_MF ((u_short)0x2000)
47 #endif
48 #ifndef ETHERTYPE_IP
49 # define ETHERTYPE_IP ((u_short)0x0800)
50 #endif
51 #ifndef TH_FIN
52 # define TH_FIN 0x01
53 #endif
54 #ifndef TH_SYN
55 # define TH_SYN 0x02
56 #endif
57 #ifndef TH_RST
58 # define TH_RST 0x04
59 #endif
60 #ifndef TH_PUSH
61 # define TH_PUSH 0x08
62 #endif
63 #ifndef TH_ACK
64 # define TH_ACK 0x10
65 #endif
66 #ifndef TH_URG
67 # define TH_URG 0x20
68 #endif
69 #ifndef IPOPT_EOL
70 # define IPOPT_EOL 0
71 #endif
72 #ifndef IPOPT_NOP
73 # define IPOPT_NOP 1
74 #endif
75 #ifndef IPOPT_RR
76 # define IPOPT_RR 7
77 #endif
78 #ifndef IPOPT_TS
79 # define IPOPT_TS 68
80 #endif
81 #ifndef IPOPT_SECURITY
82 # define IPOPT_SECURITY 130
83 #endif
84 #ifndef IPOPT_LSRR
85 # define IPOPT_LSRR 131
86 #endif
87 #ifndef IPOPT_SATID
88 # define IPOPT_SATID 136
89 #endif
90 #ifndef IPOPT_SSRR
91 # define IPOPT_SSRR 137
92 #endif
93 #ifndef IPOPT_SECUR_UNCLASS
94 # define IPOPT_SECUR_UNCLASS ((u_short)0x0000)
95 #endif
96 #ifndef IPOPT_SECUR_CONFID
97 # define IPOPT_SECUR_CONFID ((u_short)0xf135)
98 #endif
99 #ifndef IPOPT_SECUR_EFTO
100 # define IPOPT_SECUR_EFTO ((u_short)0x789a)
101 #endif
102 #ifndef IPOPT_SECUR_MMMM
103 # define IPOPT_SECUR_MMMM ((u_short)0xbc4d)
104 #endif
105 #ifndef IPOPT_SECUR_RESTR
106 # define IPOPT_SECUR_RESTR ((u_short)0xaf13)
107 #endif
108 #ifndef IPOPT_SECUR_SECRET
109 # define IPOPT_SECUR_SECRET ((u_short)0xd788)
110 #endif
111 #ifndef IPOPT_SECUR_TOPSECRET
112 # define IPOPT_SECUR_TOPSECRET ((u_short)0x6bc5)
113 #endif
115 #ifdef linux
116 # define icmp icmphdr
117 # define icmp_type type
118 # define icmp_code code
121 * From /usr/include/netinet/ip_var.h
122 * !%@#!$@# linux...
124 struct ipovly {
125 caddr_t ih_next, ih_prev; /* for protocol sequence q's */
126 u_char ih_x1; /* (unused) */
127 u_char ih_pr; /* protocol */
128 short ih_len; /* protocol length */
129 struct in_addr ih_src; /* source internet address */
130 struct in_addr ih_dst; /* destination internet address */
133 typedef struct {
134 __u16 th_sport;
135 __u16 th_dport;
136 __u32 th_seq;
137 __u32 th_ack;
138 # if defined(__i386__) || defined(__MIPSEL__) || defined(__alpha__) ||\
139 defined(vax)
140 __u8 th_res:4;
141 __u8 th_off:4;
142 #else
143 __u8 th_off:4;
144 __u8 th_res:4;
145 #endif
146 __u8 th_flags;
147 __u16 th_win;
148 __u16 th_sum;
149 __u16 th_urp;
150 } tcphdr_t;
152 typedef struct {
153 __u16 uh_sport;
154 __u16 uh_dport;
155 __s16 uh_ulen;
156 __u16 uh_sum;
157 } udphdr_t;
159 typedef struct {
160 # if defined(__i386__) || defined(__MIPSEL__) || defined(__alpha__) ||\
161 defined(vax)
162 __u8 ip_hl:4;
163 __u8 ip_v:4;
164 # else
165 __u8 ip_hl:4;
166 __u8 ip_v:4;
167 # endif
168 __u8 ip_tos;
169 __u16 ip_len;
170 __u16 ip_id;
171 __u16 ip_off;
172 __u8 ip_ttl;
173 __u8 ip_p;
174 __u16 ip_sum;
175 struct in_addr ip_src;
176 struct in_addr ip_dst;
177 } ip_t;
179 typedef struct {
180 __u8 ether_dhost[6];
181 __u8 ether_shost[6];
182 __u16 ether_type;
183 } ether_header_t;
185 # define bcopy(a,b,c) memmove(b,a,c)
186 # define bcmp(a,b,c) memcmp(a,b,c)
188 # define ifnet device
190 #else
192 typedef struct udphdr udphdr_t;
193 typedef struct tcphdr tcphdr_t;
194 typedef struct ip ip_t;
195 typedef struct ether_header ether_header_t;
197 #endif
199 #ifdef solaris
200 # define bcopy(a,b,c) memmove(b,a,c)
201 # define bcmp(a,b,c) memcmp(a,b,c)
202 # define bzero(a,b) memset(a,0,b)
203 #endif