*/
struct ether_addr {
u_char ether_addr_octet[ETHER_ADDR_LEN];
-};
+} __attribute__ ((packed));
/*
* Structure of a 10Mb/s Ethernet header.
u_char ether_dhost[ETHER_ADDR_LEN];
u_char ether_shost[ETHER_ADDR_LEN];
u_short ether_type;
-};
+} __attribute__ ((packed));
#define ETHERTYPE_PUP 0x0200 /* PUP protocol */
#define ETHERTYPE_IP 0x0800 /* IP protocol */
u_char arp_spa[4]; /* sender protocol address */
u_char arp_tha[6]; /* target hardware address */
u_char arp_tpa[4]; /* target protocol address */
-};
+} __attribute__ ((packed));
#define arp_hrd ea_hdr.ar_hrd
#define arp_pro ea_hdr.ar_pro
#define arp_hln ea_hdr.ar_hln
u_char ip_p; /* protocol */
u_short ip_sum; /* checksum */
struct in_addr ip_src,ip_dst; /* source and dest address */
-};
+} __attribute__ ((packed));
#define IP_MAXPACKET 65535 /* maximum packet size */
n_long ipt_time;
} ipt_ta[1];
} ipt_timestamp;
-};
+} __attribute__ ((packed));
/* flag bits for ipt_flg */
#define IPOPT_TS_TSONLY 0 /* timestamps only */
#define icmp_ip icmp_dun.id_ip.idi_ip
#define icmp_mask icmp_dun.id_mask
#define icmp_data icmp_dun.id_data
-};
+} __attribute__ ((packed));
/*
* Lower bounds on packet lengths for various types.
short ih_len; /* protocol length */
struct in_addr ih_src; /* source internet address */
struct in_addr ih_dst; /* destination internet address */
-};
+} __attribute__ ((packed));
/*
* Ip reassembly queue structure. Each fragment
struct ipasfrag *ipq_next,*ipq_prev;
/* to ip headers of fragments */
struct in_addr ipq_src,ipq_dst;
-};
+} __attribute__ ((packed));
/*
* Ip header, when holding a fragment.
u_short ip_sum;
struct ipasfrag *ipf_next; /* next fragment */
struct ipasfrag *ipf_prev; /* previous fragment */
-};
+} __attribute__ ((packed));
/*
* Structure stored in mbuf in inpcb.ip_options
u_short th_win; /* window */
u_short th_sum; /* checksum */
u_short th_urp; /* urgent pointer */
-};
+} __attribute__ ((packed));
#define TCPOPT_EOL 0
#define TCPOPT_NOP 1
struct tcpiphdr {
struct ipovly ti_i; /* overlaid ip structure */
struct tcphdr ti_t; /* tcp header */
-};
+} __attribute__ ((packed));
#define ti_next ti_i.ih_next
#define ti_prev ti_i.ih_prev
#define ti_x1 ti_i.ih_x1
u_short uh_dport; /* destination port */
short uh_ulen; /* udp length */
u_short uh_sum; /* udp checksum */
-};
+} __attribute__ ((packed));
struct udpiphdr {
struct ipovly ui_i; /* overlaid ip structure */
struct udphdr ui_u; /* udp header */
-};
+} __attribute__ ((packed));
#define ui_next ui_i.ih_next
#define ui_prev ui_i.ih_prev
#define ui_x1 ui_i.ih_x1