summaryrefslogtreecommitdiff
path: root/libnet/doc/RAWSOCKET_NON_SEQUITUR
diff options
context:
space:
mode:
Diffstat (limited to 'libnet/doc/RAWSOCKET_NON_SEQUITUR')
-rw-r--r--libnet/doc/RAWSOCKET_NON_SEQUITUR41
1 files changed, 41 insertions, 0 deletions
diff --git a/libnet/doc/RAWSOCKET_NON_SEQUITUR b/libnet/doc/RAWSOCKET_NON_SEQUITUR
new file mode 100644
index 0000000..7f8c758
--- /dev/null
+++ b/libnet/doc/RAWSOCKET_NON_SEQUITUR
@@ -0,0 +1,41 @@
+===============================================================================
+ $Id: RAWSOCKET_NON_SEQUITUR,v 1.2 2004/01/03 20:31:00 mike Exp $
+ LIBNET 1.1 (c) 1998 - 2004 Mike D. Schiffman <mike@infonexus.com>
+ http://www.packetfactory.net/libnet
+===============================================================================
+
+ Raw sockets are horribly non-standard across implementations. Here is
+ an incomplete list of some of the differences (corrections welcomed):
+
+ Linux 2.2+:
+
+ IP fragmentation: performed if packet is larger than MTU
+ IP checksum: always filled in
+ IP total length: always filled in
+ IP ID: filled in when zero
+ IP source address: filled in when zero
+ IP destination address: filled in when zero
+ Max packet size before kernel complains: 1500 bytes
+
+ Solaris 2.6+:
+
+ IP fragmentation bits: can't specify
+ IP fragmentation: performed if packet is larger than MTU
+ IP DF bit: always set
+ IP checksum: always filled in
+ Max packet size before kernel complains: ?
+
+ OpenBSD 2.8+:
+
+ IP fragmentation: performed if packet is larger than MTU
+ Max packet size before kernel complains: 8192 bytes
+
+ Solaris,
+ for example, has terrible support for this packet interface. Older OpenBSD
+ versions and recent FreeBSD versions have the BSD_BYTE_SWAP issue where
+ the ip_len and ip_frag fields need to be in little endian order. Linux
+ apparently doesn't allow for the injection of broadcast IP datagrams.
+ Whenever complete control over the IP header is desired, use the link
+ layer API.
+
+EOF