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: pgpaKLBiDpb_j.pgp
Description: PGP signature

Reply via email to