summaryrefslogtreecommitdiffstats
path: root/sys/netinet/ip_var.h
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>1998-08-24 07:47:39 +0000
committerdfr <dfr@FreeBSD.org>1998-08-24 07:47:39 +0000
commitb9492066e97d868408f504260ae6be723843e4e8 (patch)
tree39418968d5099f5b89b07632470056fe32935ec1 /sys/netinet/ip_var.h
parent91d93c9726bff72d58cdc4eab23a032d9f461681 (diff)
downloadFreeBSD-src-b9492066e97d868408f504260ae6be723843e4e8.zip
FreeBSD-src-b9492066e97d868408f504260ae6be723843e4e8.tar.gz
Re-implement tcp and ip fragment reassembly to not store pointers in the
ip header which can't work on alpha since pointers are too big. Reviewed by: Garrett Wollman <wollman@khavrinen.lcs.mit.edu>
Diffstat (limited to 'sys/netinet/ip_var.h')
-rw-r--r--sys/netinet/ip_var.h35
1 files changed, 3 insertions, 32 deletions
diff --git a/sys/netinet/ip_var.h b/sys/netinet/ip_var.h
index 16e66fc..1de2664 100644
--- a/sys/netinet/ip_var.h
+++ b/sys/netinet/ip_var.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ip_var.h 8.2 (Berkeley) 1/9/95
- * $Id: ip_var.h,v 1.43 1998/07/13 12:20:07 bde Exp $
+ * $Id: ip_var.h,v 1.44 1998/08/23 03:07:14 wollman Exp $
*/
#ifndef _NETINET_IP_VAR_H_
@@ -41,8 +41,7 @@
* Overlay for ip header used by other protocols (tcp, udp).
*/
struct ipovly {
- caddr_t ih_next, ih_prev; /* for protocol sequence q's */
- u_char ih_x1; /* (unused) */
+ u_char ih_x1[9]; /* (unused) */
u_char ih_pr; /* protocol */
u_short ih_len; /* protocol length */
struct in_addr ih_src; /* source internet address */
@@ -60,8 +59,7 @@ struct ipq {
u_char ipq_ttl; /* time for reass q to live */
u_char ipq_p; /* protocol of this fragment */
u_short ipq_id; /* sequence id for reassembly */
- struct ipasfrag *ipq_next,*ipq_prev;
- /* to ip headers of fragments */
+ struct mbuf *ipq_frags; /* to ip headers of fragments */
struct in_addr ipq_src,ipq_dst;
#ifdef IPDIVERT
u_short ipq_divert; /* divert protocol port */
@@ -70,33 +68,6 @@ struct ipq {
};
/*
- * Ip header, when holding a fragment.
- *
- * Note: ipf_next must be at same offset as ipq_next above
- */
-struct ipasfrag {
-#if BYTE_ORDER == LITTLE_ENDIAN
- u_int ip_hl:4,
- ip_v:4;
-#endif
-#if BYTE_ORDER == BIG_ENDIAN
- u_int ip_v:4,
- ip_hl:4;
-#endif
- u_char ipf_mff; /* XXX overlays ip_tos: use low bit
- * to avoid destroying tos;
- * copied from (ip_off&IP_MF) */
- u_short ip_len;
- u_short ip_id;
- u_short ip_off;
- u_char ip_ttl;
- u_char ip_p;
- u_short ip_sum;
- struct ipasfrag *ipf_next; /* next fragment */
- struct ipasfrag *ipf_prev; /* previous fragment */
-};
-
-/*
* Structure stored in mbuf in inpcb.ip_options
* and passed to ip_output when ip options are in use.
* The actual length of the options (including ipopt_dst)
OpenPOWER on IntegriCloud