> 32 KB packet handling (Ed Swierk)

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1891 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
bellard 2006-05-02 21:09:02 +00:00
parent 3aee288bc8
commit e553272d75

View File

@ -75,10 +75,6 @@ typedef u_int32_t n_long; /* long as received from the net */
/* /*
* Structure of an internet header, naked of options. * Structure of an internet header, naked of options.
*
* We declare ip_len and ip_off to be short, rather than u_short
* pragmatically since otherwise unsigned comparisons can result
* against negative integers quite easily, and fail in subtle ways.
*/ */
struct ip { struct ip {
#ifdef WORDS_BIGENDIAN #ifdef WORDS_BIGENDIAN
@ -89,9 +85,9 @@ struct ip {
ip_v:4; /* version */ ip_v:4; /* version */
#endif #endif
u_int8_t ip_tos; /* type of service */ u_int8_t ip_tos; /* type of service */
int16_t ip_len; /* total length */ u_int16_t ip_len; /* total length */
u_int16_t ip_id; /* identification */ u_int16_t ip_id; /* identification */
int16_t ip_off; /* fragment offset field */ u_int16_t ip_off; /* fragment offset field */
#define IP_DF 0x4000 /* don't fragment flag */ #define IP_DF 0x4000 /* don't fragment flag */
#define IP_MF 0x2000 /* more fragments flag */ #define IP_MF 0x2000 /* more fragments flag */
#define IP_OFFMASK 0x1fff /* mask for fragmenting bits */ #define IP_OFFMASK 0x1fff /* mask for fragmenting bits */
@ -212,7 +208,7 @@ struct ipovly {
caddr32_t ih_next, ih_prev; /* for protocol sequence q's */ caddr32_t ih_next, ih_prev; /* for protocol sequence q's */
u_int8_t ih_x1; /* (unused) */ u_int8_t ih_x1; /* (unused) */
u_int8_t ih_pr; /* protocol */ u_int8_t ih_pr; /* protocol */
int16_t ih_len; /* protocol length */ u_int16_t ih_len; /* protocol length */
struct in_addr ih_src; /* source internet address */ struct in_addr ih_src; /* source internet address */
struct in_addr ih_dst; /* destination internet address */ struct in_addr ih_dst; /* destination internet address */
}; };
@ -253,9 +249,9 @@ struct ipasfrag {
u_int8_t ipf_mff; /* XXX overlays ip_tos: use low bit u_int8_t ipf_mff; /* XXX overlays ip_tos: use low bit
* to avoid destroying tos (PPPDTRuu); * to avoid destroying tos (PPPDTRuu);
* copied from (ip_off&IP_MF) */ * copied from (ip_off&IP_MF) */
int16_t ip_len; u_int16_t ip_len;
u_int16_t ip_id; u_int16_t ip_id;
int16_t ip_off; u_int16_t ip_off;
u_int8_t ip_ttl; u_int8_t ip_ttl;
u_int8_t ip_p; u_int8_t ip_p;
u_int16_t ip_sum; u_int16_t ip_sum;