1ipnet(7D) Devices ipnet(7D)
2
3
4
6 ipnet, lo0 - ipnet device driver
7
9 /dev/ipnet/*, /dev/lo0
10
11
13 The ipnet device driver creates, removes and manages nodes in the
14 /dev/ipnet/ namespace.
15
16
17 A node is created in /dev/ipnet for every IP interface on the system,
18 including interfaces that exist only in software and for which there is
19 no hardware device. The ipnet device also provides access to all IP
20 traffic to and from the system. To provide access to packets that are
21 internally looped-back in IP, the ipnet driver creates a /dev/lo0 DLPI
22 device.
23
25 ipnet and DLPI
26 Device nodes created in /dev/ipnet are DLPI style-1 devices. All
27 M_PROTO and M_PCPROTO-type messages are interpreted as DLPI primitives.
28 Because the device is read-only and packets can only be observed by
29 opening them, the following subset of DLPI primitives is supported:
30
31 DL_INFO_REQ
32 DL_BIND_REQ
33 DL_UNBIND_REQ
34 DL_PROMISCON_REQ
35 DL_PROMISCOFF_REQ
36 DLIOCRAW
37
38
39
40 The values returned by the driver in the DL_INFO_ACK primitive in
41 response to the DL_INFO_REQ are:
42
43 o Maximum SDU is INT_MAX
44
45 o Minimum SDU is 0.
46
47 o DLSAP address length is 2.
48
49 o MAC type is DL_IPNET.
50
51 o SAP length value is 2.
52
53 o Service mode is DL_CLDLS.
54
55 o No optional quality of service (QOS) support is provided.
56 Accordingly, the QOS fields are 0.
57
58 o Provider style is DL_STYLE1.
59
60 o Version is DL_VERSION_2.
61
62
63 The /dev/ipnet/* and /dev/lo0 devices only accept DL_BIND_REQ requests
64 for SAPs 4 (IPv4 packets), 6 (IPv6 packets), or 0 (all IP packets).
65 DL_BIND_REQ requests for other SAP values result in a DL_ERROR_ACK of
66 DL_BADSAP.
67
68 ipnet primitives
69 For /dev/ipnet/* devices, the DL_PROMISCON_REQ and DL_PROMISCOFF_REQ
70 primitives with the DL_PROMISC_PHYS flag set in the dl_level field
71 enables/disables the reception of all packets. When disabled, only
72 packets with addresses matching any of the configured addresses on the
73 IP interface are received. When used with the DL_PROMISC_MULTI flag
74 set, reception of all multicast group addresses can be enabled/dis‐
75 abled. DL_PROMISC_PHYS and DL_PROMISC_MULTI have no effect for
76 /dev/lo0. When the DL_PROMISC_SAP flag is set, reception of all
77 IPv4/IPv6 can be enabled/disabled.
78
79
80 The DLIOCRAW ioctl is supported but has no effect on the data returned
81 from the device.
82
83
84 The DL_IOC_IPNET_INFO ioctl enables/disables the inclusion of a
85 dl_ipnetinfo_t structure that is prepended to the IP header when
86 receiving packet data. When enabled, a non-zero integer is returned
87 reflecting the current DL_IOC_IPNET_INFO version. The dl_ipnetinfo_t
88 data structure is defined in <sys/dlpi.h> and includes the following
89 fields:
90
91 uint8_t dli_version; /* DL_IPNETINFO_* version */
92 uint8_t dli_ipver; /* packet IP header version */
93 uint16_t dli_len; /* length of dl_ipnetinfo_t */
94 uint64_t dli_srczone; /* packet source zone ID (if any) */
95 uint64_t dli_dstzone; /* packet dest zone ID (if any) */
96
97
98
99 The current dli_version is 1. To robustly support future dl_ipnetinfo_t
100 versions, consumers should check that dli_version is a value they rec‐
101 ognize, and must use the dli_len field to advance past the dl_ipnet‐
102 info_t header.
103
105 /dev/ipnet/*, /dev/lo0 Special character devices.
106
107
108 /kernel/drv/ipnet.conf Configuration file.
109
110
112 See attributes(5) for descriptions of the following attributes:
113
114
115
116
117 ┌───────────────────────────────────────────────────────────┐
118 │ATTRIBUTE TYPE ATTRIBUTE VALUE │
119 │Availability SUNWckr │
120 │Architecture SPARC, x86 │
121 │Interface Stability Committed │
122 └───────────────────────────────────────────────────────────┘
123
125 attributes(5), dlpi(7P)
126
127
128
129SunOS 5.11 8 Apr 2009 ipnet(7D)