-struct ipq { /* ip reass.q header */
- struct ip iqx; /* dummy ip element for top of list */
- struct ipq *iq_next; /* -> next chain on q */
- struct ipq *iq_prev; /* -> prev chain on q */
- struct ip iqh; /* fragment header */
+/*
+ * Definitions for options.
+ */
+#define IPOPT_COPIED(o) ((o)&0x80)
+#define IPOPT_CLASS(o) ((o)&0x40)
+#define IPOPT_NUMBER(o) ((o)&0x3f)
+
+#define IPOPT_CONTROL 0x00
+#define IPOPT_RESERVED1 0x10
+#define IPOPT_DEBMEAS 0x20
+#define IPOPT_RESERVED2 0x30
+
+#define IPOPT_EOL 0 /* end of option list */
+#define IPOPT_NOP 1 /* no operation */
+
+#define IPOPT_RR 7 /* record packet route */
+#define IPOPT_TS 68 /* timestamp */
+#define IPOPT_SECURITY 130 /* provide s,c,h,tcc */
+#define IPOPT_LSRR 131 /* loose source route */
+#define IPOPT_SATID 136 /* satnet id */
+#define IPOPT_SSRR 137 /* strict source route */
+
+/*
+ * Time stamp option structure.
+ */
+struct ip_timestamp {
+ u_char ipt_code; /* IPOPT_TS */
+ u_char ipt_len; /* size of structure (variable) */
+ u_char ipt_ptr; /* index of current entry */
+ u_char ipt_flg:4, /* flags, see below */
+ ipt_oflw:4; /* overflow counter */
+ union {
+ n_long ipt_time[1];
+ struct ipt_ta {
+ struct in_addr ipt_addr;
+ n_long ipt_time;
+ } ipt_ta[1];
+ }