OpenWrt – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | #ifndef __LINUX_NETLINK_H |
2 | #define __LINUX_NETLINK_H |
||
3 | |||
4 | /** |
||
5 | * Netlink socket address |
||
6 | * @ingroup nl |
||
7 | */ |
||
8 | struct sockaddr_nl |
||
9 | { |
||
10 | /** socket family (AF_NETLINK) */ |
||
11 | sa_family_t nl_family; |
||
12 | |||
13 | /** Padding (unused) */ |
||
14 | unsigned short nl_pad; |
||
15 | |||
16 | /** Unique process ID */ |
||
17 | uint32_t nl_pid; |
||
18 | |||
19 | /** Multicast group subscriptions */ |
||
20 | uint32_t nl_groups; |
||
21 | }; |
||
22 | |||
23 | /** |
||
24 | * Netlink message header |
||
25 | * @ingroup msg |
||
26 | */ |
||
27 | struct nlmsghdr |
||
28 | { |
||
29 | /** |
||
30 | * Length of message including header. |
||
31 | */ |
||
32 | uint32_t nlmsg_len; |
||
33 | |||
34 | /** |
||
35 | * Message type (content type) |
||
36 | */ |
||
37 | uint16_t nlmsg_type; |
||
38 | |||
39 | /** |
||
40 | * Message flags |
||
41 | */ |
||
42 | uint16_t nlmsg_flags; |
||
43 | |||
44 | /** |
||
45 | * Sequence number |
||
46 | */ |
||
47 | uint32_t nlmsg_seq; |
||
48 | |||
49 | /** |
||
50 | * Netlink PID of the proccess sending the message. |
||
51 | */ |
||
52 | uint32_t nlmsg_pid; |
||
53 | }; |
||
54 | |||
55 | /** |
||
56 | * @name Standard message flags |
||
57 | * @{ |
||
58 | */ |
||
59 | |||
60 | /** |
||
61 | * Must be set on all request messages (typically from user space to |
||
62 | * kernel space). |
||
63 | * @ingroup msg |
||
64 | */ |
||
65 | #define NLM_F_REQUEST 1 |
||
66 | |||
67 | /** |
||
68 | * Indicates the message is part of a multipart message terminated |
||
69 | * by NLMSG_DONE. |
||
70 | */ |
||
71 | #define NLM_F_MULTI 2 |
||
72 | |||
73 | /** |
||
74 | * Request for an acknowledgment on success. |
||
75 | */ |
||
76 | #define NLM_F_ACK 4 |
||
77 | |||
78 | /** |
||
79 | * Echo this request |
||
80 | */ |
||
81 | #define NLM_F_ECHO 8 |
||
82 | |||
83 | /** @} */ |
||
84 | |||
85 | /** |
||
86 | * @name Additional message flags for GET requests |
||
87 | * @{ |
||
88 | */ |
||
89 | |||
90 | /** |
||
91 | * Return the complete table instead of a single entry. |
||
92 | * @ingroup msg |
||
93 | */ |
||
94 | #define NLM_F_ROOT 0x100 |
||
95 | |||
96 | /** |
||
97 | * Return all entries matching criteria passed in message content. |
||
98 | */ |
||
99 | #define NLM_F_MATCH 0x200 |
||
100 | |||
101 | /** |
||
102 | * Return an atomic snapshot of the table being referenced. This |
||
103 | * may require special privileges because it has the potential to |
||
104 | * interrupt service in the FE for a longer time. |
||
105 | */ |
||
106 | #define NLM_F_ATOMIC 0x400 |
||
107 | |||
108 | /** |
||
109 | * Dump all entries |
||
110 | */ |
||
111 | #define NLM_F_DUMP (NLM_F_ROOT|NLM_F_MATCH) |
||
112 | |||
113 | /** @} */ |
||
114 | |||
115 | /** |
||
116 | * @name Additional messsage flags for NEW requests |
||
117 | * @{ |
||
118 | */ |
||
119 | |||
120 | /** |
||
121 | * Replace existing matching config object with this request. |
||
122 | * @ingroup msg |
||
123 | */ |
||
124 | #define NLM_F_REPLACE 0x100 |
||
125 | |||
126 | /** |
||
127 | * Don't replace the config object if it already exists. |
||
128 | */ |
||
129 | #define NLM_F_EXCL 0x200 |
||
130 | |||
131 | /** |
||
132 | * Create config object if it doesn't already exist. |
||
133 | */ |
||
134 | #define NLM_F_CREATE 0x400 |
||
135 | |||
136 | /** |
||
137 | * Add to the end of the object list. |
||
138 | */ |
||
139 | #define NLM_F_APPEND 0x800 |
||
140 | |||
141 | /** @} */ |
||
142 | |||
143 | /** |
||
144 | * @name Standard Message types |
||
145 | * @{ |
||
146 | */ |
||
147 | |||
148 | /** |
||
149 | * No operation, message must be ignored |
||
150 | * @ingroup msg |
||
151 | */ |
||
152 | #define NLMSG_NOOP 0x1 |
||
153 | |||
154 | /** |
||
155 | * The message signals an error and the payload contains a nlmsgerr |
||
156 | * structure. This can be looked at as a NACK and typically it is |
||
157 | * from FEC to CPC. |
||
158 | */ |
||
159 | #define NLMSG_ERROR 0x2 |
||
160 | |||
161 | /** |
||
162 | * Message terminates a multipart message. |
||
163 | */ |
||
164 | #define NLMSG_DONE 0x3 |
||
165 | |||
166 | /** |
||
167 | * The message signals that data got lost |
||
168 | */ |
||
169 | #define NLMSG_OVERRUN 0x4 |
||
170 | |||
171 | /** |
||
172 | * Lower limit of reserved message types |
||
173 | */ |
||
174 | #define NLMSG_MIN_TYPE 0x10 |
||
175 | |||
176 | /** @} */ |
||
177 | |||
178 | /** |
||
179 | * Netlink error message |
||
180 | * @ingroup msg |
||
181 | */ |
||
182 | struct nlmsgerr |
||
183 | { |
||
184 | /** Error code (errno number) */ |
||
185 | int error; |
||
186 | |||
187 | /** Original netlink message causing the error */ |
||
188 | struct nlmsghdr msg; |
||
189 | }; |
||
190 | |||
191 | struct nl_pktinfo |
||
192 | { |
||
193 | __u32 group; |
||
194 | }; |
||
195 | |||
196 | #endif /* __LINUX_NETLINK_H */ |