Annotation of embedaddon/libnet/doc/RAWSOCKET.md, revision 1.1.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>