Zephyr API Documentation  3.7.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
net_event.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2016 Intel Corporation.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
12#ifndef ZEPHYR_INCLUDE_NET_NET_EVENT_H_
13#define ZEPHYR_INCLUDE_NET_NET_EVENT_H_
14
15#include <zephyr/net/net_ip.h>
16#include <zephyr/net/hostname.h>
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
29/* Network Interface events */
30#define _NET_IF_LAYER NET_MGMT_LAYER_L2
31#define _NET_IF_CORE_CODE 0x001
32#define _NET_EVENT_IF_BASE (NET_MGMT_EVENT_BIT | \
33 NET_MGMT_IFACE_BIT | \
34 NET_MGMT_LAYER(_NET_IF_LAYER) | \
35 NET_MGMT_LAYER_CODE(_NET_IF_CORE_CODE))
36
37enum net_event_if_cmd {
38 NET_EVENT_IF_CMD_DOWN = 1,
39 NET_EVENT_IF_CMD_UP,
40 NET_EVENT_IF_CMD_ADMIN_DOWN,
41 NET_EVENT_IF_CMD_ADMIN_UP,
42};
43
44/* IPv6 Events */
45#define _NET_IPV6_LAYER NET_MGMT_LAYER_L3
46#define _NET_IPV6_CORE_CODE 0x060
47#define _NET_EVENT_IPV6_BASE (NET_MGMT_EVENT_BIT | \
48 NET_MGMT_IFACE_BIT | \
49 NET_MGMT_LAYER(_NET_IPV6_LAYER) | \
50 NET_MGMT_LAYER_CODE(_NET_IPV6_CORE_CODE))
51
52enum net_event_ipv6_cmd {
53 NET_EVENT_IPV6_CMD_ADDR_ADD = 1,
54 NET_EVENT_IPV6_CMD_ADDR_DEL,
55 NET_EVENT_IPV6_CMD_MADDR_ADD,
56 NET_EVENT_IPV6_CMD_MADDR_DEL,
57 NET_EVENT_IPV6_CMD_PREFIX_ADD,
58 NET_EVENT_IPV6_CMD_PREFIX_DEL,
59 NET_EVENT_IPV6_CMD_MCAST_JOIN,
60 NET_EVENT_IPV6_CMD_MCAST_LEAVE,
61 NET_EVENT_IPV6_CMD_ROUTER_ADD,
62 NET_EVENT_IPV6_CMD_ROUTER_DEL,
63 NET_EVENT_IPV6_CMD_ROUTE_ADD,
64 NET_EVENT_IPV6_CMD_ROUTE_DEL,
65 NET_EVENT_IPV6_CMD_DAD_SUCCEED,
66 NET_EVENT_IPV6_CMD_DAD_FAILED,
67 NET_EVENT_IPV6_CMD_NBR_ADD,
68 NET_EVENT_IPV6_CMD_NBR_DEL,
69 NET_EVENT_IPV6_CMD_DHCP_START,
70 NET_EVENT_IPV6_CMD_DHCP_BOUND,
71 NET_EVENT_IPV6_CMD_DHCP_STOP,
72 NET_EVENT_IPV6_CMD_ADDR_DEPRECATED,
73 NET_EVENT_IPV6_CMD_PE_ENABLED,
74 NET_EVENT_IPV6_CMD_PE_DISABLED,
75 NET_EVENT_IPV6_CMD_PE_FILTER_ADD,
76 NET_EVENT_IPV6_CMD_PE_FILTER_DEL,
77};
78
79/* IPv4 Events*/
80#define _NET_IPV4_LAYER NET_MGMT_LAYER_L3
81#define _NET_IPV4_CORE_CODE 0x004
82#define _NET_EVENT_IPV4_BASE (NET_MGMT_EVENT_BIT | \
83 NET_MGMT_IFACE_BIT | \
84 NET_MGMT_LAYER(_NET_IPV4_LAYER) | \
85 NET_MGMT_LAYER_CODE(_NET_IPV4_CORE_CODE))
86
87enum net_event_ipv4_cmd {
88 NET_EVENT_IPV4_CMD_ADDR_ADD = 1,
89 NET_EVENT_IPV4_CMD_ADDR_DEL,
90 NET_EVENT_IPV4_CMD_MADDR_ADD,
91 NET_EVENT_IPV4_CMD_MADDR_DEL,
92 NET_EVENT_IPV4_CMD_ROUTER_ADD,
93 NET_EVENT_IPV4_CMD_ROUTER_DEL,
94 NET_EVENT_IPV4_CMD_DHCP_START,
95 NET_EVENT_IPV4_CMD_DHCP_BOUND,
96 NET_EVENT_IPV4_CMD_DHCP_STOP,
97 NET_EVENT_IPV4_CMD_MCAST_JOIN,
98 NET_EVENT_IPV4_CMD_MCAST_LEAVE,
99 NET_EVENT_IPV4_CMD_ACD_SUCCEED,
100 NET_EVENT_IPV4_CMD_ACD_FAILED,
101 NET_EVENT_IPV4_CMD_ACD_CONFLICT,
102};
103
104/* L4 network events */
105#define _NET_L4_LAYER NET_MGMT_LAYER_L4
106#define _NET_L4_CORE_CODE 0x114
107#define _NET_EVENT_L4_BASE (NET_MGMT_EVENT_BIT | \
108 NET_MGMT_IFACE_BIT | \
109 NET_MGMT_LAYER(_NET_L4_LAYER) | \
110 NET_MGMT_LAYER_CODE(_NET_L4_CORE_CODE))
111
112enum net_event_l4_cmd {
113 NET_EVENT_L4_CMD_CONNECTED = 1,
114 NET_EVENT_L4_CMD_DISCONNECTED,
115 NET_EVENT_L4_CMD_IPV4_CONNECTED,
116 NET_EVENT_L4_CMD_IPV4_DISCONNECTED,
117 NET_EVENT_L4_CMD_IPV6_CONNECTED,
118 NET_EVENT_L4_CMD_IPV6_DISCONNECTED,
119 NET_EVENT_L4_CMD_DNS_SERVER_ADD,
120 NET_EVENT_L4_CMD_DNS_SERVER_DEL,
121 NET_EVENT_L4_CMD_HOSTNAME_CHANGED,
122 NET_EVENT_L4_CMD_CAPTURE_STARTED,
123 NET_EVENT_L4_CMD_CAPTURE_STOPPED,
124};
125
129#define NET_EVENT_IF_DOWN \
130 (_NET_EVENT_IF_BASE | NET_EVENT_IF_CMD_DOWN)
131
133#define NET_EVENT_IF_UP \
134 (_NET_EVENT_IF_BASE | NET_EVENT_IF_CMD_UP)
135
137#define NET_EVENT_IF_ADMIN_DOWN \
138 (_NET_EVENT_IF_BASE | NET_EVENT_IF_CMD_ADMIN_DOWN)
139
141#define NET_EVENT_IF_ADMIN_UP \
142 (_NET_EVENT_IF_BASE | NET_EVENT_IF_CMD_ADMIN_UP)
143
145#define NET_EVENT_IPV6_ADDR_ADD \
146 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ADDR_ADD)
147
149#define NET_EVENT_IPV6_ADDR_DEL \
150 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ADDR_DEL)
151
153#define NET_EVENT_IPV6_MADDR_ADD \
154 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MADDR_ADD)
155
157#define NET_EVENT_IPV6_MADDR_DEL \
158 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MADDR_DEL)
159
161#define NET_EVENT_IPV6_PREFIX_ADD \
162 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PREFIX_ADD)
163
165#define NET_EVENT_IPV6_PREFIX_DEL \
166 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PREFIX_DEL)
167
169#define NET_EVENT_IPV6_MCAST_JOIN \
170 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MCAST_JOIN)
171
173#define NET_EVENT_IPV6_MCAST_LEAVE \
174 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MCAST_LEAVE)
175
177#define NET_EVENT_IPV6_ROUTER_ADD \
178 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTER_ADD)
179
181#define NET_EVENT_IPV6_ROUTER_DEL \
182 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTER_DEL)
183
185#define NET_EVENT_IPV6_ROUTE_ADD \
186 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTE_ADD)
187
189#define NET_EVENT_IPV6_ROUTE_DEL \
190 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTE_DEL)
191
193#define NET_EVENT_IPV6_DAD_SUCCEED \
194 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DAD_SUCCEED)
195
197#define NET_EVENT_IPV6_DAD_FAILED \
198 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DAD_FAILED)
199
201#define NET_EVENT_IPV6_NBR_ADD \
202 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_NBR_ADD)
203
205#define NET_EVENT_IPV6_NBR_DEL \
206 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_NBR_DEL)
207
209#define NET_EVENT_IPV6_DHCP_START \
210 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DHCP_START)
211
213#define NET_EVENT_IPV6_DHCP_BOUND \
214 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DHCP_BOUND)
215
217#define NET_EVENT_IPV6_DHCP_STOP \
218 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DHCP_STOP)
219
221#define NET_EVENT_IPV6_ADDR_DEPRECATED \
222 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ADDR_DEPRECATED)
223
225#define NET_EVENT_IPV6_PE_ENABLED \
226 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PE_ENABLED)
227
229#define NET_EVENT_IPV6_PE_DISABLED \
230 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PE_DISABLED)
231
233#define NET_EVENT_IPV6_PE_FILTER_ADD \
234 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PE_FILTER_ADD)
235
237#define NET_EVENT_IPV6_PE_FILTER_DEL \
238 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PE_FILTER_DEL)
239
241#define NET_EVENT_IPV4_ADDR_ADD \
242 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ADDR_ADD)
243
245#define NET_EVENT_IPV4_ADDR_DEL \
246 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ADDR_DEL)
247
249#define NET_EVENT_IPV4_MADDR_ADD \
250 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_MADDR_ADD)
251
253#define NET_EVENT_IPV4_MADDR_DEL \
254 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_MADDR_DEL)
255
257#define NET_EVENT_IPV4_ROUTER_ADD \
258 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ROUTER_ADD)
259
261#define NET_EVENT_IPV4_ROUTER_DEL \
262 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ROUTER_DEL)
263
265#define NET_EVENT_IPV4_DHCP_START \
266 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_DHCP_START)
267
269#define NET_EVENT_IPV4_DHCP_BOUND \
270 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_DHCP_BOUND)
271
273#define NET_EVENT_IPV4_DHCP_STOP \
274 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_DHCP_STOP)
275
277#define NET_EVENT_IPV4_MCAST_JOIN \
278 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_MCAST_JOIN)
279
281#define NET_EVENT_IPV4_MCAST_LEAVE \
282 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_MCAST_LEAVE)
283
285#define NET_EVENT_IPV4_ACD_SUCCEED \
286 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ACD_SUCCEED)
287
289#define NET_EVENT_IPV4_ACD_FAILED \
290 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ACD_FAILED)
291
296#define NET_EVENT_IPV4_ACD_CONFLICT \
297 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ACD_CONFLICT)
298
303#define NET_EVENT_L4_CONNECTED \
304 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_CONNECTED)
305
311#define NET_EVENT_L4_DISCONNECTED \
312 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_DISCONNECTED)
313
314
316#define NET_EVENT_L4_IPV4_CONNECTED \
317 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_IPV4_CONNECTED)
318
320#define NET_EVENT_L4_IPV4_DISCONNECTED \
321 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_IPV4_DISCONNECTED)
322
324#define NET_EVENT_L4_IPV6_CONNECTED \
325 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_IPV6_CONNECTED)
326
328#define NET_EVENT_L4_IPV6_DISCONNECTED \
329 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_IPV6_DISCONNECTED)
330
332#define NET_EVENT_DNS_SERVER_ADD \
333 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_DNS_SERVER_ADD)
334
336#define NET_EVENT_DNS_SERVER_DEL \
337 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_DNS_SERVER_DEL)
338
340#define NET_EVENT_HOSTNAME_CHANGED \
341 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_HOSTNAME_CHANGED)
342
344#define NET_EVENT_CAPTURE_STARTED \
345 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_CAPTURE_STARTED)
346
348#define NET_EVENT_CAPTURE_STOPPED \
349 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_CAPTURE_STOPPED)
350
364};
365
379 int idx;
380};
381
397};
398
414};
415
424 char hostname[NET_HOSTNAME_SIZE];
425};
426
442};
443
444#ifdef __cplusplus
445}
446#endif
447
452#endif /* ZEPHYR_INCLUDE_NET_NET_EVENT_H_ */
Hostname configuration definitions.
IPv6 and IPv4 definitions.
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
IPv6 address struct.
Definition: net_ip.h:139
Network Management event information structure Used to pass information on network events like NET_EV...
Definition: net_event.h:361
struct in6_addr addr
IPv6 address related to this event.
Definition: net_event.h:363
Network Management event information structure Used to pass information on network events like NET_EV...
Definition: net_event.h:375
struct in6_addr addr
Neighbor IPv6 address.
Definition: net_event.h:377
int idx
Neighbor index in cache.
Definition: net_event.h:379
Network Management event information structure Used to pass information on network events like NET_EV...
Definition: net_event.h:437
bool is_deny_list
IPv6 filter deny or allow list.
Definition: net_event.h:441
struct in6_addr prefix
IPv6 address of privacy extension filter.
Definition: net_event.h:439
Network Management event information structure Used to pass information on network events like NET_EV...
Definition: net_event.h:407
uint8_t len
IPv6 prefix length.
Definition: net_event.h:411
struct in6_addr addr
IPv6 prefix.
Definition: net_event.h:409
uint32_t lifetime
IPv6 prefix lifetime in seconds.
Definition: net_event.h:413
Network Management event information structure Used to pass information on network events like NET_EV...
Definition: net_event.h:390
struct in6_addr addr
IPv6 address or prefix of the route.
Definition: net_event.h:394
uint8_t prefix_len
IPv6 prefix length.
Definition: net_event.h:396
struct in6_addr nexthop
IPv6 address of the next hop.
Definition: net_event.h:392
Network Management event information structure Used to pass information on NET_EVENT_HOSTNAME_CHANGED...
Definition: net_event.h:422
char hostname[NET_HOSTNAME_SIZE]
New hostname.
Definition: net_event.h:424