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