Date: Wed, 31 May 2006 21:57:03 -0700 From: Emil Kondayan <emil@ekon-bg.com> To: freebsd-net@freebsd.org Subject: Question about netinet/ip.h Message-ID: <200605312157.04027.emil@ekon-bg.com> In-Reply-To: <200605291103.k4TB38uo097477@freefall.freebsd.org> References: <200605291103.k4TB38uo097477@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Can someone tell me why "ip_hl" and "ip_v" are of type "u_int" when the structure is packed and they only fill a byte? And my second question:do these "#define ..." directives allocate space in the structure? struct ip { #if BYTE_ORDER == LITTLE_ENDIAN u_int ip_hl:4, /* header length */ ip_v:4; /* version */ #endif #if BYTE_ORDER == BIG_ENDIAN u_int ip_v:4, /* version */ ip_hl:4; /* header length */ #endif u_char ip_tos; /* type of service */ u_short ip_len; /* total length */ u_short ip_id; /* identification */ u_short ip_off; /* fragment offset field */ #define IP_RF 0x8000 /* reserved fragment flag */ #define IP_DF 0x4000 /* dont fragment flag */ #define IP_MF 0x2000 /* more fragments flag */ #define IP_OFFMASK 0x1fff /* mask for fragmenting bits */ u_char ip_ttl; /* time to live */ u_char ip_p; /* protocol */ u_short ip_sum; /* checksum */ struct in_addr ip_src,ip_dst; /* source and dest address */ } __packed;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200605312157.04027.emil>