Annotation of embedaddon/libnet/doc/RAWSOCKET.md, revision 1.1
1.1 ! misho 1: Raw Socket Non-Sequitur
! 2: =======================
! 3: by Mike D. Schiffman <mike@infonexus.com>
! 4:
! 5: Raw sockets are horribly non-standard across implementations. Here is
! 6: an incomplete list of some of the differences (corrections welcomed).
! 7:
! 8: Solaris, for example, has terrible support for this packet interface.
! 9: Older OpenBSD versions and FreeBSD before 11 versions have the
! 10: `BSD_BYTE_SWAP` issue where the `ip_len` and `ip_frag` fields must be in
! 11: host byte order. Linux apparently doesn't allow for the injection of
! 12: broadcast IP datagrams. Whenever complete control over the IP header is
! 13: desired, use the link layer API.
! 14:
! 15:
! 16: Linux 2.2+
! 17: ----------
! 18:
! 19: IP fragmentation: performed if packet is larger than MTU
! 20: IP checksum: always filled in
! 21: IP total length: always filled in
! 22: IP ID: filled in when zero
! 23: IP source address: filled in when zero
! 24: IP destination address: filled in when zero
! 25:
! 26: Max packet size before kernel complains: 1500 bytes
! 27:
! 28:
! 29: Solaris 2.6+
! 30: ------------
! 31:
! 32: IP fragmentation bits: can't specify
! 33: IP fragmentation: performed if packet is larger than MTU
! 34: IP DF bit: always set
! 35: IP checksum: always filled in
! 36:
! 37: Max packet size before kernel complains: ?
! 38:
! 39:
! 40: OpenBSD 2.8+
! 41: ------------
! 42:
! 43: IP fragmentation: performed if packet is larger than MTU
! 44:
! 45: Max packet size before kernel complains: 8192 bytes
! 46:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>