two A/UX tcp/ip bugs
Paul Traina
pst at anise.acc.com
Sat Sep 23 09:36:27 AEST 1989
While working on our IP router, I came across two problems with A/UX's
networking code.
(a) ICMP echo packets with an odd length do not give the right checksum.
Reproduce by:
ping some.host.dom 30
works properly
ping some.host.dom 31
produces no response.
The remote host registers an invalid ICMP checksum. This checksum
is always off by 1ED2 from the proper value.
(b) IP frames going out over Ethernet are padded to a 16-bit boundary.
This means that if I send out an odd-length TCP/IP packet, the
last octet of the packet will be a zero (null), and the IP packet
length field will include only the valid data (it won't count the null).
It turns out that the Berkeley TCP/IP code will trim mbufs and ignore
any padding after the valid IP data. Unfortunately, the router software
I was using was much more strict on sanity checking and it dropped the
packet because the length reported in the header was "incorrect."
I'm not sure that this is *really* a bug, as an IMP talking 1822 will
do nasty things like this too. If it can be fixed, please fix it. In
the mean time, We've changed the router code to be less anally retentive
when it comes to dealing with packets of an invalid length.
--
The difference between this school and a cactus plant is that the
cactus has the pricks on the outside.
More information about the Comp.unix.aux
mailing list