summaryrefslogtreecommitdiff
path: root/doc/RAWSOCKET.md
diff options
context:
space:
mode:
authorJoachim Nilsson <troglobit@gmail.com>2019-10-15 06:52:03 +0200
committerJoachim Nilsson <troglobit@gmail.com>2019-10-15 06:52:03 +0200
commit3eb53ad1c2fe171869705f278d38fe579c31ad60 (patch)
tree90bca2bc860a0ae63661cfccf753878d08a6b593 /doc/RAWSOCKET.md
parenta181ce51915f2e2ee5bf276bb489bfb1de4b3a87 (diff)
downloadlibnet-3eb53ad1c2fe171869705f278d38fe579c31ad60.tar.gz
doc: Rename and convert Raw socket heads-up to Markdown
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
Diffstat (limited to 'doc/RAWSOCKET.md')
-rw-r--r--doc/RAWSOCKET.md46
1 files changed, 46 insertions, 0 deletions
diff --git a/doc/RAWSOCKET.md b/doc/RAWSOCKET.md
new file mode 100644
index 0000000..f942ab7
--- /dev/null
+++ b/doc/RAWSOCKET.md
@@ -0,0 +1,46 @@
+Raw Socket Non-Sequitur
+=======================
+by Mike D. Schiffman <mike@infonexus.com>
+
+Raw sockets are horribly non-standard across implementations. Here is
+an incomplete list of some of the differences (corrections welcomed).
+
+Solaris, for example, has terrible support for this packet interface.
+Older OpenBSD versions and FreeBSD before 11 versions have the
+`BSD_BYTE_SWAP` issue where the `ip_len` and `ip_frag` fields must be in
+host byte 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.
+
+
+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
+