fix count on bzero
[unix-history] / usr / src / sys / netinet / ip_var.h
CommitLineData
b11be056 1/* ip_var.h 6.1 83/07/29 */
77e50f35
BJ
2
3/*
4 * Overlay for ip header used by other protocols (tcp, udp).
5 */
6struct ipovly {
eb44bfb2
BJ
7 caddr_t ih_next, ih_prev; /* for protocol sequence q's */
8 u_char ih_x1; /* (unused) */
9 u_char ih_pr; /* protocol */
2b4b57cd
BJ
10 short ih_len; /* protocol length */
11 struct in_addr ih_src; /* source internet address */
12 struct in_addr ih_dst; /* destination internet address */
77e50f35
BJ
13};
14
15/*
16 * Ip reassembly queue structure. Each fragment
17 * being reassembled is attached to one of these structures.
18 * They are timed out after ipq_ttl drops to 0, and may also
19 * be reclaimed if memory becomes tight.
20 */
21struct ipq {
22 struct ipq *next,*prev; /* to other reass headers */
23 u_char ipq_ttl; /* time for reass q to live */
24 u_char ipq_p; /* protocol of this fragment */
25 u_short ipq_id; /* sequence id for reassembly */
26 struct ipasfrag *ipq_next,*ipq_prev;
27 /* to ip headers of fragments */
2b4b57cd 28 struct in_addr ipq_src,ipq_dst;
77e50f35
BJ
29};
30
31/*
32 * Ip header, when holding a fragment.
af8f6a21
SL
33 *
34 * Note: ipf_next must be at same offset as ipq_next above
77e50f35
BJ
35 */
36struct ipasfrag {
498aff44 37#ifdef vax
77e50f35
BJ
38 u_char ip_hl:4,
39 ip_v:4;
498aff44 40#endif
77e50f35
BJ
41 u_char ipf_mff; /* copied from (ip_off&IP_MF) */
42 short ip_len;
43 u_short ip_id;
44 short ip_off;
45 u_char ip_ttl;
46 u_char ip_p;
47 u_short ip_sum;
eb44bfb2
BJ
48 struct ipasfrag *ipf_next; /* next fragment */
49 struct ipasfrag *ipf_prev; /* previous fragment */
77e50f35
BJ
50};
51
2b4b57cd 52struct ipstat {
405c9168
BJ
53 int ips_badsum; /* checksum bad */
54 int ips_tooshort; /* packet too short */
84257e80
SL
55 int ips_toosmall; /* not enough data */
56 int ips_badhlen; /* ip header length < data size */
57 int ips_badlen; /* ip length < ip header length */
2b4b57cd
BJ
58};
59
77e50f35 60#ifdef KERNEL
0e3f761f
SL
61/* flags passed to ip_output as last parameter */
62#define IP_FORWARDING 0x1 /* most of ip header exists */
63#define IP_ROUTETOIF 0x10 /* same as SO_DONTROUTE */
64#define IP_ALLOWBROADCAST SS_PRIV /* can send broadcast packets */
65
2b4b57cd 66struct ipstat ipstat;
77e50f35 67struct ipq ipq; /* ip reass. queue */
77e50f35
BJ
68u_short ip_id; /* ip packet ctr, for ids */
69#endif