I am not understanding why '-s argument is the number of data bytes
beyond the standard 8-byte icmp header' is complicated. People who use
-s are trying to control packet size, and the rule of 8 header + data
seems to be longstanding.
Looking at -current:
the size of the timespec should be given, and it's endianness.
the man page for -C should say that these compat timestamps are
instead of the timespec.
so
ping -s 8: should send 16-byte packets in compat format
ping -s 16: should send 24-byte packets in new format
It's at best odd to have the packet length change for a given -s
argument because of timestamp format. This points out that the original
decision should have been '-s X means X bytes of IP payload', but that's
not what was decided, and it's easy enough to stick with 'X bytes beyond
the 8-byte ICMP header'.
[10:58am] 2277>ping quasar
PING quasar.astron.com (192.168.2.4): 48 data bytes
64 bytes from 192.168.2.4: icmp_seq=0 ttl=255 time=0.027 ms
That's a bug. All bytes after the 8-byte header are data bytes, even if
some of them have timestamps.
Attachment:
pgpKstJ30X4L_.pgp
Description: PGP signature