Zephyr API Documentation 4.1.99
A Scalable Open Source RTOS
 4.1.99
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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 NET_EVENT_IPV6_CMD_PMTU_CHANGED,
78};
79
80/* IPv4 Events*/
81#define _NET_IPV4_LAYER NET_MGMT_LAYER_L3
82#define _NET_IPV4_CORE_CODE 0x004
83#define _NET_EVENT_IPV4_BASE (NET_MGMT_EVENT_BIT | \
84 NET_MGMT_IFACE_BIT | \
85 NET_MGMT_LAYER(_NET_IPV4_LAYER) | \
86 NET_MGMT_LAYER_CODE(_NET_IPV4_CORE_CODE))
87
88enum net_event_ipv4_cmd {
89 NET_EVENT_IPV4_CMD_ADDR_ADD = 1,
90 NET_EVENT_IPV4_CMD_ADDR_DEL,
91 NET_EVENT_IPV4_CMD_MADDR_ADD,
92 NET_EVENT_IPV4_CMD_MADDR_DEL,
93 NET_EVENT_IPV4_CMD_ROUTER_ADD,
94 NET_EVENT_IPV4_CMD_ROUTER_DEL,
95 NET_EVENT_IPV4_CMD_DHCP_START,
96 NET_EVENT_IPV4_CMD_DHCP_BOUND,
97 NET_EVENT_IPV4_CMD_DHCP_STOP,
98 NET_EVENT_IPV4_CMD_MCAST_JOIN,
99 NET_EVENT_IPV4_CMD_MCAST_LEAVE,
100 NET_EVENT_IPV4_CMD_ACD_SUCCEED,
101 NET_EVENT_IPV4_CMD_ACD_FAILED,
102 NET_EVENT_IPV4_CMD_ACD_CONFLICT,
103 NET_EVENT_IPV4_CMD_PMTU_CHANGED,
104};
105
106/* L4 network events */
107#define _NET_L4_LAYER NET_MGMT_LAYER_L4
108#define _NET_L4_CORE_CODE 0x114
109#define _NET_EVENT_L4_BASE (NET_MGMT_EVENT_BIT | \
110 NET_MGMT_IFACE_BIT | \
111 NET_MGMT_LAYER(_NET_L4_LAYER) | \
112 NET_MGMT_LAYER_CODE(_NET_L4_CORE_CODE))
113
114enum net_event_l4_cmd {
115 NET_EVENT_L4_CMD_CONNECTED = 1,
116 NET_EVENT_L4_CMD_DISCONNECTED,
117 NET_EVENT_L4_CMD_IPV4_CONNECTED,
118 NET_EVENT_L4_CMD_IPV4_DISCONNECTED,
119 NET_EVENT_L4_CMD_IPV6_CONNECTED,
120 NET_EVENT_L4_CMD_IPV6_DISCONNECTED,
121 NET_EVENT_L4_CMD_DNS_SERVER_ADD,
122 NET_EVENT_L4_CMD_DNS_SERVER_DEL,
123 NET_EVENT_L4_CMD_HOSTNAME_CHANGED,
124 NET_EVENT_L4_CMD_CAPTURE_STARTED,
125 NET_EVENT_L4_CMD_CAPTURE_STOPPED,
126 NET_EVENT_L4_CMD_VPN_CONNECTED,
127 NET_EVENT_L4_CMD_VPN_DISCONNECTED,
128 NET_EVENT_L4_CMD_VPN_PEER_ADD,
129 NET_EVENT_L4_CMD_VPN_PEER_DEL,
130};
131
135#define NET_EVENT_IF_DOWN \
136 (_NET_EVENT_IF_BASE | NET_EVENT_IF_CMD_DOWN)
137
139#define NET_EVENT_IF_UP \
140 (_NET_EVENT_IF_BASE | NET_EVENT_IF_CMD_UP)
141
143#define NET_EVENT_IF_ADMIN_DOWN \
144 (_NET_EVENT_IF_BASE | NET_EVENT_IF_CMD_ADMIN_DOWN)
145
147#define NET_EVENT_IF_ADMIN_UP \
148 (_NET_EVENT_IF_BASE | NET_EVENT_IF_CMD_ADMIN_UP)
149
151#define NET_EVENT_IPV6_ADDR_ADD \
152 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ADDR_ADD)
153
155#define NET_EVENT_IPV6_ADDR_DEL \
156 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ADDR_DEL)
157
159#define NET_EVENT_IPV6_MADDR_ADD \
160 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MADDR_ADD)
161
163#define NET_EVENT_IPV6_MADDR_DEL \
164 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MADDR_DEL)
165
167#define NET_EVENT_IPV6_PREFIX_ADD \
168 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PREFIX_ADD)
169
171#define NET_EVENT_IPV6_PREFIX_DEL \
172 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PREFIX_DEL)
173
175#define NET_EVENT_IPV6_MCAST_JOIN \
176 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MCAST_JOIN)
177
179#define NET_EVENT_IPV6_MCAST_LEAVE \
180 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MCAST_LEAVE)
181
183#define NET_EVENT_IPV6_ROUTER_ADD \
184 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTER_ADD)
185
187#define NET_EVENT_IPV6_ROUTER_DEL \
188 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTER_DEL)
189
191#define NET_EVENT_IPV6_ROUTE_ADD \
192 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTE_ADD)
193
195#define NET_EVENT_IPV6_ROUTE_DEL \
196 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTE_DEL)
197
199#define NET_EVENT_IPV6_DAD_SUCCEED \
200 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DAD_SUCCEED)
201
203#define NET_EVENT_IPV6_DAD_FAILED \
204 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DAD_FAILED)
205
207#define NET_EVENT_IPV6_NBR_ADD \
208 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_NBR_ADD)
209
211#define NET_EVENT_IPV6_NBR_DEL \
212 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_NBR_DEL)
213
215#define NET_EVENT_IPV6_DHCP_START \
216 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DHCP_START)
217
219#define NET_EVENT_IPV6_DHCP_BOUND \
220 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DHCP_BOUND)
221
223#define NET_EVENT_IPV6_DHCP_STOP \
224 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DHCP_STOP)
225
227#define NET_EVENT_IPV6_ADDR_DEPRECATED \
228 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ADDR_DEPRECATED)
229
231#define NET_EVENT_IPV6_PE_ENABLED \
232 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PE_ENABLED)
233
235#define NET_EVENT_IPV6_PE_DISABLED \
236 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PE_DISABLED)
237
239#define NET_EVENT_IPV6_PE_FILTER_ADD \
240 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PE_FILTER_ADD)
241
243#define NET_EVENT_IPV6_PE_FILTER_DEL \
244 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PE_FILTER_DEL)
245
247#define NET_EVENT_IPV6_PMTU_CHANGED \
248 (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PMTU_CHANGED)
249
251#define NET_EVENT_IPV4_ADDR_ADD \
252 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ADDR_ADD)
253
255#define NET_EVENT_IPV4_ADDR_DEL \
256 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ADDR_DEL)
257
259#define NET_EVENT_IPV4_MADDR_ADD \
260 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_MADDR_ADD)
261
263#define NET_EVENT_IPV4_MADDR_DEL \
264 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_MADDR_DEL)
265
267#define NET_EVENT_IPV4_ROUTER_ADD \
268 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ROUTER_ADD)
269
271#define NET_EVENT_IPV4_ROUTER_DEL \
272 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ROUTER_DEL)
273
275#define NET_EVENT_IPV4_DHCP_START \
276 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_DHCP_START)
277
279#define NET_EVENT_IPV4_DHCP_BOUND \
280 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_DHCP_BOUND)
281
283#define NET_EVENT_IPV4_DHCP_STOP \
284 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_DHCP_STOP)
285
287#define NET_EVENT_IPV4_MCAST_JOIN \
288 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_MCAST_JOIN)
289
291#define NET_EVENT_IPV4_MCAST_LEAVE \
292 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_MCAST_LEAVE)
293
295#define NET_EVENT_IPV4_ACD_SUCCEED \
296 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ACD_SUCCEED)
297
299#define NET_EVENT_IPV4_ACD_FAILED \
300 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ACD_FAILED)
301
306#define NET_EVENT_IPV4_ACD_CONFLICT \
307 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ACD_CONFLICT)
308
310#define NET_EVENT_IPV4_PMTU_CHANGED \
311 (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_PMTU_CHANGED)
312
317#define NET_EVENT_L4_CONNECTED \
318 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_CONNECTED)
319
325#define NET_EVENT_L4_DISCONNECTED \
326 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_DISCONNECTED)
327
328
330#define NET_EVENT_L4_IPV4_CONNECTED \
331 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_IPV4_CONNECTED)
332
334#define NET_EVENT_L4_IPV4_DISCONNECTED \
335 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_IPV4_DISCONNECTED)
336
338#define NET_EVENT_L4_IPV6_CONNECTED \
339 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_IPV6_CONNECTED)
340
342#define NET_EVENT_L4_IPV6_DISCONNECTED \
343 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_IPV6_DISCONNECTED)
344
346#define NET_EVENT_DNS_SERVER_ADD \
347 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_DNS_SERVER_ADD)
348
350#define NET_EVENT_DNS_SERVER_DEL \
351 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_DNS_SERVER_DEL)
352
354#define NET_EVENT_HOSTNAME_CHANGED \
355 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_HOSTNAME_CHANGED)
356
358#define NET_EVENT_CAPTURE_STARTED \
359 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_CAPTURE_STARTED)
360
362#define NET_EVENT_CAPTURE_STOPPED \
363 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_CAPTURE_STOPPED)
364
366#define NET_EVENT_VPN_CONNECTED \
367 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_VPN_CONNECTED)
368
370#define NET_EVENT_VPN_DISCONNECTED \
371 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_VPN_DISCONNECTED)
372
374#define NET_EVENT_VPN_PEER_ADD \
375 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_VPN_PEER_ADD)
376
378#define NET_EVENT_VPN_PEER_DEL \
379 (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_VPN_PEER_DEL)
380
394};
395
409 int idx;
410};
411
428
445
454 char hostname[NET_HOSTNAME_SIZE];
455};
456
473
487
501
502#ifdef __cplusplus
503}
504#endif
505
510#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
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
IPv6 address struct.
Definition net_ip.h:143
IPv4 address struct.
Definition net_ip.h:155
Network Management event information structure Used to pass information on network event NET_EVENT_IP...
Definition net_event.h:481
struct in_addr dst
IPv4 address.
Definition net_event.h:483
uint16_t mtu
New MTU.
Definition net_event.h:485
Network Management event information structure Used to pass information on network events like NET_EV...
Definition net_event.h:391
struct in6_addr addr
IPv6 address related to this event.
Definition net_event.h:393
Network Management event information structure Used to pass information on network events like NET_EV...
Definition net_event.h:405
struct in6_addr addr
Neighbor IPv6 address.
Definition net_event.h:407
int idx
Neighbor index in cache.
Definition net_event.h:409
Network Management event information structure Used to pass information on network events like NET_EV...
Definition net_event.h:467
bool is_deny_list
IPv6 filter deny or allow list.
Definition net_event.h:471
struct in6_addr prefix
IPv6 address of privacy extension filter.
Definition net_event.h:469
Network Management event information structure Used to pass information on network event NET_EVENT_IP...
Definition net_event.h:495
uint32_t mtu
New MTU.
Definition net_event.h:499
struct in6_addr dst
IPv6 address.
Definition net_event.h:497
Network Management event information structure Used to pass information on network events like NET_EV...
Definition net_event.h:437
uint8_t len
IPv6 prefix length.
Definition net_event.h:441
struct in6_addr addr
IPv6 prefix.
Definition net_event.h:439
uint32_t lifetime
IPv6 prefix lifetime in seconds.
Definition net_event.h:443
Network Management event information structure Used to pass information on network events like NET_EV...
Definition net_event.h:420
struct in6_addr addr
IPv6 address or prefix of the route.
Definition net_event.h:424
uint8_t prefix_len
IPv6 prefix length.
Definition net_event.h:426
struct in6_addr nexthop
IPv6 address of the next hop.
Definition net_event.h:422
Network Management event information structure Used to pass information on NET_EVENT_HOSTNAME_CHANGED...
Definition net_event.h:452
char hostname[NET_HOSTNAME_SIZE]
New hostname.
Definition net_event.h:454