LCOV - code coverage report
Current view: top level - zephyr/net - net_event.h Coverage Total Hit
Test: new.info Lines: 100.0 % 84 84
Test Date: 2025-09-05 22:20:39

            Line data    Source code
       1            1 : /*
       2              :  * Copyright (c) 2016 Intel Corporation.
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : /**
       8              :  * @file
       9              :  * @brief Network Events code public header
      10              :  */
      11              : 
      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/net_mgmt.h>
      17              : #include <zephyr/net/hostname.h>
      18              : 
      19              : #ifdef __cplusplus
      20              : extern "C" {
      21              : #endif
      22              : 
      23              : /**
      24              :  * @addtogroup net_mgmt
      25              :  * @{
      26              :  */
      27              : 
      28              : /** @cond INTERNAL_HIDDEN */
      29              : 
      30              : /* Network Interface events */
      31              : #define NET_IF_LAYER            NET_MGMT_LAYER_L2
      32              : #define NET_IF_CORE_CODE        NET_MGMT_LAYER_CODE_IFACE
      33              : #define NET_EVENT_IF_BASE       (NET_MGMT_EVENT_BIT |                   \
      34              :                                  NET_MGMT_IFACE_BIT |                   \
      35              :                                  NET_MGMT_LAYER(NET_IF_LAYER) | \
      36              :                                  NET_MGMT_LAYER_CODE(NET_IF_CORE_CODE))
      37              : 
      38              : enum {
      39              :         NET_EVENT_IF_CMD_DOWN_VAL,
      40              :         NET_EVENT_IF_CMD_UP_VAL,
      41              :         NET_EVENT_IF_CMD_ADMIN_DOWN_VAL,
      42              :         NET_EVENT_IF_CMD_ADMIN_UP_VAL,
      43              : 
      44              :         NET_EVENT_IF_CMD_MAX
      45              : };
      46              : 
      47              : BUILD_ASSERT(NET_EVENT_IF_CMD_MAX <= NET_MGMT_MAX_COMMANDS,
      48              :              "Number of events in net_event_if_cmd exceeds the limit");
      49              : 
      50              : enum net_event_if_cmd {
      51              :         NET_MGMT_CMD(NET_EVENT_IF_CMD_DOWN),
      52              :         NET_MGMT_CMD(NET_EVENT_IF_CMD_UP),
      53              :         NET_MGMT_CMD(NET_EVENT_IF_CMD_ADMIN_DOWN),
      54              :         NET_MGMT_CMD(NET_EVENT_IF_CMD_ADMIN_UP),
      55              : };
      56              : 
      57              : /* IPv6 Events */
      58              : #define NET_IPV6_LAYER          NET_MGMT_LAYER_L3
      59              : #define NET_IPV6_CORE_CODE      NET_MGMT_LAYER_CODE_IPV6
      60              : #define NET_EVENT_IPV6_BASE     (NET_MGMT_EVENT_BIT |                   \
      61              :                                  NET_MGMT_IFACE_BIT |                   \
      62              :                                  NET_MGMT_LAYER(NET_IPV6_LAYER) |       \
      63              :                                  NET_MGMT_LAYER_CODE(NET_IPV6_CORE_CODE))
      64              : 
      65              : enum {
      66              :         NET_EVENT_IPV6_CMD_ADDR_ADD_VAL,
      67              :         NET_EVENT_IPV6_CMD_ADDR_DEL_VAL,
      68              :         NET_EVENT_IPV6_CMD_MADDR_ADD_VAL,
      69              :         NET_EVENT_IPV6_CMD_MADDR_DEL_VAL,
      70              :         NET_EVENT_IPV6_CMD_PREFIX_ADD_VAL,
      71              :         NET_EVENT_IPV6_CMD_PREFIX_DEL_VAL,
      72              :         NET_EVENT_IPV6_CMD_MCAST_JOIN_VAL,
      73              :         NET_EVENT_IPV6_CMD_MCAST_LEAVE_VAL,
      74              :         NET_EVENT_IPV6_CMD_ROUTER_ADD_VAL,
      75              :         NET_EVENT_IPV6_CMD_ROUTER_DEL_VAL,
      76              :         NET_EVENT_IPV6_CMD_ROUTE_ADD_VAL,
      77              :         NET_EVENT_IPV6_CMD_ROUTE_DEL_VAL,
      78              :         NET_EVENT_IPV6_CMD_DAD_SUCCEED_VAL,
      79              :         NET_EVENT_IPV6_CMD_DAD_FAILED_VAL,
      80              :         NET_EVENT_IPV6_CMD_NBR_ADD_VAL,
      81              :         NET_EVENT_IPV6_CMD_NBR_DEL_VAL,
      82              :         NET_EVENT_IPV6_CMD_DHCP_START_VAL,
      83              :         NET_EVENT_IPV6_CMD_DHCP_BOUND_VAL,
      84              :         NET_EVENT_IPV6_CMD_DHCP_STOP_VAL,
      85              :         NET_EVENT_IPV6_CMD_ADDR_DEPRECATED_VAL,
      86              :         NET_EVENT_IPV6_CMD_PE_ENABLED_VAL,
      87              :         NET_EVENT_IPV6_CMD_PE_DISABLED_VAL,
      88              :         NET_EVENT_IPV6_CMD_PE_FILTER_ADD_VAL,
      89              :         NET_EVENT_IPV6_CMD_PE_FILTER_DEL_VAL,
      90              :         NET_EVENT_IPV6_CMD_PMTU_CHANGED_VAL,
      91              : 
      92              :         NET_EVENT_IPV6_CMD_MAX
      93              : };
      94              : 
      95              : BUILD_ASSERT(NET_EVENT_IPV6_CMD_MAX <= NET_MGMT_MAX_COMMANDS,
      96              :              "Number of events in net_event_ipv6_cmd exceeds the limit");
      97              : 
      98              : enum net_event_ipv6_cmd {
      99              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_ADDR_ADD),
     100              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_ADDR_DEL),
     101              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_MADDR_ADD),
     102              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_MADDR_DEL),
     103              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_PREFIX_ADD),
     104              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_PREFIX_DEL),
     105              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_MCAST_JOIN),
     106              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_MCAST_LEAVE),
     107              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_ROUTER_ADD),
     108              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_ROUTER_DEL),
     109              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_ROUTE_ADD),
     110              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_ROUTE_DEL),
     111              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_DAD_SUCCEED),
     112              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_DAD_FAILED),
     113              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_NBR_ADD),
     114              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_NBR_DEL),
     115              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_DHCP_START),
     116              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_DHCP_BOUND),
     117              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_DHCP_STOP),
     118              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_ADDR_DEPRECATED),
     119              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_PE_ENABLED),
     120              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_PE_DISABLED),
     121              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_PE_FILTER_ADD),
     122              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_PE_FILTER_DEL),
     123              :         NET_MGMT_CMD(NET_EVENT_IPV6_CMD_PMTU_CHANGED),
     124              : };
     125              : 
     126              : /* IPv4 Events*/
     127              : #define NET_IPV4_LAYER          NET_MGMT_LAYER_L3
     128              : #define NET_IPV4_CORE_CODE      NET_MGMT_LAYER_CODE_IPV4
     129              : #define NET_EVENT_IPV4_BASE     (NET_MGMT_EVENT_BIT |                   \
     130              :                                  NET_MGMT_IFACE_BIT |                   \
     131              :                                  NET_MGMT_LAYER(NET_IPV4_LAYER) |       \
     132              :                                  NET_MGMT_LAYER_CODE(NET_IPV4_CORE_CODE))
     133              : 
     134              : enum {
     135              :         NET_EVENT_IPV4_CMD_ADDR_ADD_VAL,
     136              :         NET_EVENT_IPV4_CMD_ADDR_DEL_VAL,
     137              :         NET_EVENT_IPV4_CMD_MADDR_ADD_VAL,
     138              :         NET_EVENT_IPV4_CMD_MADDR_DEL_VAL,
     139              :         NET_EVENT_IPV4_CMD_ROUTER_ADD_VAL,
     140              :         NET_EVENT_IPV4_CMD_ROUTER_DEL_VAL,
     141              :         NET_EVENT_IPV4_CMD_DHCP_START_VAL,
     142              :         NET_EVENT_IPV4_CMD_DHCP_BOUND_VAL,
     143              :         NET_EVENT_IPV4_CMD_DHCP_STOP_VAL,
     144              :         NET_EVENT_IPV4_CMD_MCAST_JOIN_VAL,
     145              :         NET_EVENT_IPV4_CMD_MCAST_LEAVE_VAL,
     146              :         NET_EVENT_IPV4_CMD_ACD_SUCCEED_VAL,
     147              :         NET_EVENT_IPV4_CMD_ACD_FAILED_VAL,
     148              :         NET_EVENT_IPV4_CMD_ACD_CONFLICT_VAL,
     149              :         NET_EVENT_IPV4_CMD_PMTU_CHANGED_VAL,
     150              : 
     151              :         NET_EVENT_IPV4_CMD_MAX
     152              : };
     153              : 
     154              : BUILD_ASSERT(NET_EVENT_IPV4_CMD_MAX <= NET_MGMT_MAX_COMMANDS,
     155              :              "Number of events in net_event_ipv4_cmd exceeds the limit");
     156              : 
     157              : enum net_event_ipv4_cmd {
     158              :         NET_MGMT_CMD(NET_EVENT_IPV4_CMD_ADDR_ADD),
     159              :         NET_MGMT_CMD(NET_EVENT_IPV4_CMD_ADDR_DEL),
     160              :         NET_MGMT_CMD(NET_EVENT_IPV4_CMD_MADDR_ADD),
     161              :         NET_MGMT_CMD(NET_EVENT_IPV4_CMD_MADDR_DEL),
     162              :         NET_MGMT_CMD(NET_EVENT_IPV4_CMD_ROUTER_ADD),
     163              :         NET_MGMT_CMD(NET_EVENT_IPV4_CMD_ROUTER_DEL),
     164              :         NET_MGMT_CMD(NET_EVENT_IPV4_CMD_DHCP_START),
     165              :         NET_MGMT_CMD(NET_EVENT_IPV4_CMD_DHCP_BOUND),
     166              :         NET_MGMT_CMD(NET_EVENT_IPV4_CMD_DHCP_STOP),
     167              :         NET_MGMT_CMD(NET_EVENT_IPV4_CMD_MCAST_JOIN),
     168              :         NET_MGMT_CMD(NET_EVENT_IPV4_CMD_MCAST_LEAVE),
     169              :         NET_MGMT_CMD(NET_EVENT_IPV4_CMD_ACD_SUCCEED),
     170              :         NET_MGMT_CMD(NET_EVENT_IPV4_CMD_ACD_FAILED),
     171              :         NET_MGMT_CMD(NET_EVENT_IPV4_CMD_ACD_CONFLICT),
     172              :         NET_MGMT_CMD(NET_EVENT_IPV4_CMD_PMTU_CHANGED),
     173              : };
     174              : 
     175              : /* L4 network events */
     176              : #define NET_L4_LAYER            NET_MGMT_LAYER_L4
     177              : #define NET_L4_CORE_CODE        NET_MGMT_LAYER_CODE_L4
     178              : #define NET_EVENT_L4_BASE       (NET_MGMT_EVENT_BIT |                   \
     179              :                                  NET_MGMT_IFACE_BIT |                   \
     180              :                                  NET_MGMT_LAYER(NET_L4_LAYER) | \
     181              :                                  NET_MGMT_LAYER_CODE(NET_L4_CORE_CODE))
     182              : 
     183              : enum {
     184              :         NET_EVENT_L4_CMD_CONNECTED_VAL,
     185              :         NET_EVENT_L4_CMD_DISCONNECTED_VAL,
     186              :         NET_EVENT_L4_CMD_IPV4_CONNECTED_VAL,
     187              :         NET_EVENT_L4_CMD_IPV4_DISCONNECTED_VAL,
     188              :         NET_EVENT_L4_CMD_IPV6_CONNECTED_VAL,
     189              :         NET_EVENT_L4_CMD_IPV6_DISCONNECTED_VAL,
     190              :         NET_EVENT_L4_CMD_DNS_SERVER_ADD_VAL,
     191              :         NET_EVENT_L4_CMD_DNS_SERVER_DEL_VAL,
     192              :         NET_EVENT_L4_CMD_HOSTNAME_CHANGED_VAL,
     193              :         NET_EVENT_L4_CMD_CAPTURE_STARTED_VAL,
     194              :         NET_EVENT_L4_CMD_CAPTURE_STOPPED_VAL,
     195              :         NET_EVENT_L4_CMD_VPN_CONNECTED_VAL,
     196              :         NET_EVENT_L4_CMD_VPN_DISCONNECTED_VAL,
     197              :         NET_EVENT_L4_CMD_VPN_PEER_ADD_VAL,
     198              :         NET_EVENT_L4_CMD_VPN_PEER_DEL_VAL,
     199              : 
     200              :         NET_EVENT_L4_CMD_MAX
     201              : };
     202              : 
     203              : BUILD_ASSERT(NET_EVENT_L4_CMD_MAX <= NET_MGMT_MAX_COMMANDS,
     204              :              "Number of events in net_event_l4_cmd exceeds the limit");
     205              : 
     206              : enum net_event_l4_cmd {
     207              :         NET_MGMT_CMD(NET_EVENT_L4_CMD_CONNECTED),
     208              :         NET_MGMT_CMD(NET_EVENT_L4_CMD_DISCONNECTED),
     209              :         NET_MGMT_CMD(NET_EVENT_L4_CMD_IPV4_CONNECTED),
     210              :         NET_MGMT_CMD(NET_EVENT_L4_CMD_IPV4_DISCONNECTED),
     211              :         NET_MGMT_CMD(NET_EVENT_L4_CMD_IPV6_CONNECTED),
     212              :         NET_MGMT_CMD(NET_EVENT_L4_CMD_IPV6_DISCONNECTED),
     213              :         NET_MGMT_CMD(NET_EVENT_L4_CMD_DNS_SERVER_ADD),
     214              :         NET_MGMT_CMD(NET_EVENT_L4_CMD_DNS_SERVER_DEL),
     215              :         NET_MGMT_CMD(NET_EVENT_L4_CMD_HOSTNAME_CHANGED),
     216              :         NET_MGMT_CMD(NET_EVENT_L4_CMD_CAPTURE_STARTED),
     217              :         NET_MGMT_CMD(NET_EVENT_L4_CMD_CAPTURE_STOPPED),
     218              :         NET_MGMT_CMD(NET_EVENT_L4_CMD_VPN_CONNECTED),
     219              :         NET_MGMT_CMD(NET_EVENT_L4_CMD_VPN_DISCONNECTED),
     220              :         NET_MGMT_CMD(NET_EVENT_L4_CMD_VPN_PEER_ADD),
     221              :         NET_MGMT_CMD(NET_EVENT_L4_CMD_VPN_PEER_DEL),
     222              : };
     223              : 
     224              : /** @endcond */
     225              : 
     226              : /** Event emitted when the network interface goes down. */
     227            1 : #define NET_EVENT_IF_DOWN                                       \
     228              :         (NET_EVENT_IF_BASE | NET_EVENT_IF_CMD_DOWN)
     229              : 
     230              : /** Event emitted when the network interface goes up. */
     231            1 : #define NET_EVENT_IF_UP                                         \
     232              :         (NET_EVENT_IF_BASE | NET_EVENT_IF_CMD_UP)
     233              : 
     234              : /** Event emitted when the network interface is taken down manually. */
     235            1 : #define NET_EVENT_IF_ADMIN_DOWN                                 \
     236              :         (NET_EVENT_IF_BASE | NET_EVENT_IF_CMD_ADMIN_DOWN)
     237              : 
     238              : /** Event emitted when the network interface goes up manually. */
     239            1 : #define NET_EVENT_IF_ADMIN_UP                                   \
     240              :         (NET_EVENT_IF_BASE | NET_EVENT_IF_CMD_ADMIN_UP)
     241              : 
     242              : /** Event emitted when an IPv6 address is added to the system. */
     243            1 : #define NET_EVENT_IPV6_ADDR_ADD                                 \
     244              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ADDR_ADD)
     245              : 
     246              : /** Event emitted when an IPv6 address is removed from the system. */
     247            1 : #define NET_EVENT_IPV6_ADDR_DEL                                 \
     248              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ADDR_DEL)
     249              : 
     250              : /** Event emitted when an IPv6 multicast address is added to the system. */
     251            1 : #define NET_EVENT_IPV6_MADDR_ADD                                \
     252              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MADDR_ADD)
     253              : 
     254              : /** Event emitted when an IPv6 multicast address is removed from the system. */
     255            1 : #define NET_EVENT_IPV6_MADDR_DEL                                \
     256              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MADDR_DEL)
     257              : 
     258              : /** Event emitted when an IPv6 prefix is added to the system. */
     259            1 : #define NET_EVENT_IPV6_PREFIX_ADD                               \
     260              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PREFIX_ADD)
     261              : 
     262              : /** Event emitted when an IPv6 prefix is removed from the system. */
     263            1 : #define NET_EVENT_IPV6_PREFIX_DEL                               \
     264              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PREFIX_DEL)
     265              : 
     266              : /** Event emitted when an IPv6 multicast group is joined. */
     267            1 : #define NET_EVENT_IPV6_MCAST_JOIN                               \
     268              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MCAST_JOIN)
     269              : 
     270              : /** Event emitted when an IPv6 multicast group is left. */
     271            1 : #define NET_EVENT_IPV6_MCAST_LEAVE                              \
     272              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MCAST_LEAVE)
     273              : 
     274              : /** Event emitted when an IPv6 router is added to the system. */
     275            1 : #define NET_EVENT_IPV6_ROUTER_ADD                               \
     276              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTER_ADD)
     277              : 
     278              : /** Event emitted when an IPv6 router is removed from the system. */
     279            1 : #define NET_EVENT_IPV6_ROUTER_DEL                               \
     280              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTER_DEL)
     281              : 
     282              : /** Event emitted when an IPv6 route is added to the system. */
     283            1 : #define NET_EVENT_IPV6_ROUTE_ADD                                \
     284              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTE_ADD)
     285              : 
     286              : /** Event emitted when an IPv6 route is removed from the system. */
     287            1 : #define NET_EVENT_IPV6_ROUTE_DEL                                \
     288              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTE_DEL)
     289              : 
     290              : /** Event emitted when an IPv6 duplicate address detection succeeds. */
     291            1 : #define NET_EVENT_IPV6_DAD_SUCCEED                              \
     292              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DAD_SUCCEED)
     293              : 
     294              : /** Event emitted when an IPv6 duplicate address detection fails. */
     295            1 : #define NET_EVENT_IPV6_DAD_FAILED                               \
     296              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DAD_FAILED)
     297              : 
     298              : /** Event emitted when an IPv6 neighbor is added to the system. */
     299            1 : #define NET_EVENT_IPV6_NBR_ADD                                  \
     300              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_NBR_ADD)
     301              : 
     302              : /** Event emitted when an IPv6 neighbor is removed from the system. */
     303            1 : #define NET_EVENT_IPV6_NBR_DEL                                  \
     304              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_NBR_DEL)
     305              : 
     306              : /** Event emitted when an IPv6 DHCP client starts. */
     307            1 : #define NET_EVENT_IPV6_DHCP_START                               \
     308              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DHCP_START)
     309              : 
     310              : /** Event emitted when an IPv6 DHCP client address is bound. */
     311            1 : #define NET_EVENT_IPV6_DHCP_BOUND                               \
     312              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DHCP_BOUND)
     313              : 
     314              : /** Event emitted when an IPv6 DHCP client is stopped. */
     315            1 : #define NET_EVENT_IPV6_DHCP_STOP                                \
     316              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DHCP_STOP)
     317              : 
     318              : /** IPv6 address is deprecated. */
     319            1 : #define NET_EVENT_IPV6_ADDR_DEPRECATED                          \
     320              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ADDR_DEPRECATED)
     321              : 
     322              : /** IPv6 Privacy extension is enabled. */
     323            1 : #define NET_EVENT_IPV6_PE_ENABLED                               \
     324              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PE_ENABLED)
     325              : 
     326              : /** IPv6 Privacy extension is disabled. */
     327            1 : #define NET_EVENT_IPV6_PE_DISABLED                              \
     328              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PE_DISABLED)
     329              : 
     330              : /** IPv6 Privacy extension filter is added. */
     331            1 : #define NET_EVENT_IPV6_PE_FILTER_ADD                            \
     332              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PE_FILTER_ADD)
     333              : 
     334              : /** IPv6 Privacy extension filter is removed. */
     335            1 : #define NET_EVENT_IPV6_PE_FILTER_DEL                            \
     336              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PE_FILTER_DEL)
     337              : 
     338              : /** IPv6 Path MTU is changed. */
     339            1 : #define NET_EVENT_IPV6_PMTU_CHANGED                             \
     340              :         (NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PMTU_CHANGED)
     341              : 
     342              : /** Event emitted when an IPv4 address is added to the system. */
     343            1 : #define NET_EVENT_IPV4_ADDR_ADD                                 \
     344              :         (NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ADDR_ADD)
     345              : 
     346              : /** Event emitted when an IPv4 address is removed from the system. */
     347            1 : #define NET_EVENT_IPV4_ADDR_DEL                                 \
     348              :         (NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ADDR_DEL)
     349              : 
     350              : /** Event emitted when an IPv4 multicast address is added to the system. */
     351            1 : #define NET_EVENT_IPV4_MADDR_ADD                                \
     352              :         (NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_MADDR_ADD)
     353              : 
     354              : /** Event emitted when an IPv4 multicast address is removed from the system. */
     355            1 : #define NET_EVENT_IPV4_MADDR_DEL                                \
     356              :         (NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_MADDR_DEL)
     357              : 
     358              : /** Event emitted when an IPv4 router is added to the system. */
     359            1 : #define NET_EVENT_IPV4_ROUTER_ADD                               \
     360              :         (NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ROUTER_ADD)
     361              : 
     362              : /** Event emitted when an IPv4 router is removed from the system. */
     363            1 : #define NET_EVENT_IPV4_ROUTER_DEL                               \
     364              :         (NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ROUTER_DEL)
     365              : 
     366              : /** Event emitted when an IPv4 DHCP client is started. */
     367            1 : #define NET_EVENT_IPV4_DHCP_START                               \
     368              :         (NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_DHCP_START)
     369              : 
     370              : /** Event emitted when an IPv4 DHCP client address is bound. */
     371            1 : #define NET_EVENT_IPV4_DHCP_BOUND                               \
     372              :         (NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_DHCP_BOUND)
     373              : 
     374              : /** Event emitted when an IPv4 DHCP client is stopped. */
     375            1 : #define NET_EVENT_IPV4_DHCP_STOP                                \
     376              :         (NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_DHCP_STOP)
     377              : 
     378              : /** Event emitted when an IPv4 multicast group is joined. */
     379            1 : #define NET_EVENT_IPV4_MCAST_JOIN                               \
     380              :         (NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_MCAST_JOIN)
     381              : 
     382              : /** Event emitted when an IPv4 multicast group is left. */
     383            1 : #define NET_EVENT_IPV4_MCAST_LEAVE                              \
     384              :         (NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_MCAST_LEAVE)
     385              : 
     386              : /** Event emitted when an IPv4 address conflict detection succeeds. */
     387            1 : #define NET_EVENT_IPV4_ACD_SUCCEED                              \
     388              :         (NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ACD_SUCCEED)
     389              : 
     390              : /** Event emitted when an IPv4 address conflict detection fails. */
     391            1 : #define NET_EVENT_IPV4_ACD_FAILED                               \
     392              :         (NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ACD_FAILED)
     393              : 
     394              : /** Event emitted when an IPv4 address conflict was detected after the address
     395              :  *  was confirmed as safe to use. It's up to the application to determine on
     396              :  *  how to act in such case.
     397              :  */
     398            1 : #define NET_EVENT_IPV4_ACD_CONFLICT                             \
     399              :         (NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ACD_CONFLICT)
     400              : 
     401              : /** IPv4 Path MTU is changed. */
     402            1 : #define NET_EVENT_IPV4_PMTU_CHANGED                             \
     403              :         (NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_PMTU_CHANGED)
     404              : 
     405              : /** Event emitted when the system is considered to be connected.
     406              :  * The connected in this context means that the network interface is up,
     407              :  * and the interface has either IPv4 or IPv6 address assigned to it.
     408              :  */
     409            1 : #define NET_EVENT_L4_CONNECTED                                  \
     410              :         (NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_CONNECTED)
     411              : 
     412              : /** Event emitted when the system is no longer connected.
     413              :  * Typically this means that network connectivity is lost either by
     414              :  * the network interface is going down, or the interface has no longer
     415              :  * an IP address etc.
     416              :  */
     417            1 : #define NET_EVENT_L4_DISCONNECTED                       \
     418              :         (NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_DISCONNECTED)
     419              : 
     420              : 
     421              : /** Event raised when IPv4 network connectivity is available. */
     422            1 : #define NET_EVENT_L4_IPV4_CONNECTED                     \
     423              :         (NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_IPV4_CONNECTED)
     424              : 
     425              : /** Event emitted when IPv4 network connectivity is lost. */
     426            1 : #define NET_EVENT_L4_IPV4_DISCONNECTED                  \
     427              :         (NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_IPV4_DISCONNECTED)
     428              : 
     429              : /** Event emitted when IPv6 network connectivity is available. */
     430            1 : #define NET_EVENT_L4_IPV6_CONNECTED                     \
     431              :         (NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_IPV6_CONNECTED)
     432              : 
     433              : /** Event emitted when IPv6 network connectivity is lost. */
     434            1 : #define NET_EVENT_L4_IPV6_DISCONNECTED                  \
     435              :         (NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_IPV6_DISCONNECTED)
     436              : 
     437              : /** Event emitted when a DNS server is added to the system. */
     438            1 : #define NET_EVENT_DNS_SERVER_ADD                        \
     439              :         (NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_DNS_SERVER_ADD)
     440              : 
     441              : /** Event emitted when a DNS server is removed from the system. */
     442            1 : #define NET_EVENT_DNS_SERVER_DEL                        \
     443              :         (NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_DNS_SERVER_DEL)
     444              : 
     445              : /** Event emitted when the system hostname is changed. */
     446            1 : #define NET_EVENT_HOSTNAME_CHANGED                      \
     447              :         (NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_HOSTNAME_CHANGED)
     448              : 
     449              : /** Network packet capture is started. */
     450            1 : #define NET_EVENT_CAPTURE_STARTED                       \
     451              :         (NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_CAPTURE_STARTED)
     452              : 
     453              : /** Network packet capture is stopped. */
     454            1 : #define NET_EVENT_CAPTURE_STOPPED                       \
     455              :         (NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_CAPTURE_STOPPED)
     456              : 
     457              : /** Event emitted when VPN network connectivity is available. */
     458            1 : #define NET_EVENT_VPN_CONNECTED                         \
     459              :         (NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_VPN_CONNECTED)
     460              : 
     461              : /** Event emitted when VPN network connectivity is lost. */
     462            1 : #define NET_EVENT_VPN_DISCONNECTED                      \
     463              :         (NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_VPN_DISCONNECTED)
     464              : 
     465              : /** Event emitted when a VPN peer is added to the system. */
     466            1 : #define NET_EVENT_VPN_PEER_ADD                          \
     467              :         (NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_VPN_PEER_ADD)
     468              : 
     469              : /** Event emitted when a VPN peer is removed from the system. */
     470            1 : #define NET_EVENT_VPN_PEER_DEL                          \
     471              :         (NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_VPN_PEER_DEL)
     472              : 
     473              : /**
     474              :  * @brief Network Management event information structure
     475              :  * Used to pass information on network events like
     476              :  *   NET_EVENT_IPV6_ADDR_ADD,
     477              :  *   NET_EVENT_IPV6_ADDR_DEL,
     478              :  *   NET_EVENT_IPV6_MADDR_ADD and
     479              :  *   NET_EVENT_IPV6_MADDR_DEL
     480              :  * when CONFIG_NET_MGMT_EVENT_INFO enabled and event generator pass the
     481              :  * information.
     482              :  */
     483            1 : struct net_event_ipv6_addr {
     484              :         /** IPv6 address related to this event */
     485            1 :         struct in6_addr addr;
     486              : };
     487              : 
     488              : /**
     489              :  * @brief Network Management event information structure
     490              :  * Used to pass information on network events like
     491              :  *   NET_EVENT_IPV6_NBR_ADD and
     492              :  *   NET_EVENT_IPV6_NBR_DEL
     493              :  * when CONFIG_NET_MGMT_EVENT_INFO enabled and event generator pass the
     494              :  * information.
     495              :  * @note: idx will be '-1' in case of NET_EVENT_IPV6_NBR_DEL event.
     496              :  */
     497            1 : struct net_event_ipv6_nbr {
     498              :         /** Neighbor IPv6 address */
     499            1 :         struct in6_addr addr;
     500              :         /** Neighbor index in cache */
     501            1 :         int idx;
     502              : };
     503              : 
     504              : /**
     505              :  * @brief Network Management event information structure
     506              :  * Used to pass information on network events like
     507              :  *   NET_EVENT_IPV6_ROUTE_ADD and
     508              :  *   NET_EVENT_IPV6_ROUTE_DEL
     509              :  * when CONFIG_NET_MGMT_EVENT_INFO enabled and event generator pass the
     510              :  * information.
     511              :  */
     512            1 : struct net_event_ipv6_route {
     513              :         /** IPv6 address of the next hop */
     514            1 :         struct in6_addr nexthop;
     515              :         /** IPv6 address or prefix of the route */
     516            1 :         struct in6_addr addr;
     517              :         /** IPv6 prefix length */
     518            1 :         uint8_t prefix_len;
     519              : };
     520              : 
     521              : /**
     522              :  * @brief Network Management event information structure
     523              :  * Used to pass information on network events like
     524              :  *   NET_EVENT_IPV6_PREFIX_ADD and
     525              :  *   NET_EVENT_IPV6_PREFIX_DEL
     526              :  * when CONFIG_NET_MGMT_EVENT_INFO is enabled and event generator pass the
     527              :  * information.
     528              :  */
     529            1 : struct net_event_ipv6_prefix {
     530              :         /** IPv6 prefix */
     531            1 :         struct in6_addr addr;
     532              :         /** IPv6 prefix length */
     533            1 :         uint8_t len;
     534              :         /** IPv6 prefix lifetime in seconds */
     535            1 :         uint32_t lifetime;
     536              : };
     537              : 
     538              : /**
     539              :  * @brief Network Management event information structure
     540              :  * Used to pass information on NET_EVENT_HOSTNAME_CHANGED event when
     541              :  * CONFIG_NET_MGMT_EVENT_INFO is enabled and event generator pass the
     542              :  * information.
     543              :  */
     544            1 : struct net_event_l4_hostname {
     545              :         /** New hostname */
     546            1 :         char hostname[NET_HOSTNAME_SIZE];
     547              : };
     548              : 
     549              : /**
     550              :  * @brief Network Management event information structure
     551              :  * Used to pass information on network events like
     552              :  *   NET_EVENT_IPV6_PE_FILTER_ADD and
     553              :  *   NET_EVENT_IPV6_PE_FILTER_DEL
     554              :  * when CONFIG_NET_MGMT_EVENT_INFO is enabled and event generator pass the
     555              :  * information.
     556              :  *
     557              :  * This is only available if CONFIG_NET_IPV6_PE_FILTER_PREFIX_COUNT is >0.
     558              :  */
     559            1 : struct net_event_ipv6_pe_filter {
     560              :         /** IPv6 address of privacy extension filter */
     561            1 :         struct in6_addr prefix;
     562              :         /** IPv6 filter deny or allow list */
     563            1 :         bool is_deny_list;
     564              : };
     565              : 
     566              : /**
     567              :  * @brief Network Management event information structure
     568              :  * Used to pass information on network event
     569              :  *   NET_EVENT_IPV4_PMTU_CHANGED
     570              :  * when CONFIG_NET_MGMT_EVENT_INFO enabled and event generator pass the
     571              :  * information.
     572              :  */
     573            1 : struct net_event_ipv4_pmtu_info {
     574              :         /** IPv4 address */
     575            1 :         struct in_addr dst;
     576              :         /** New MTU */
     577            1 :         uint16_t mtu;
     578              : };
     579              : 
     580              : /**
     581              :  * @brief Network Management event information structure
     582              :  * Used to pass information on network event
     583              :  *   NET_EVENT_IPV6_PMTU_CHANGED
     584              :  * when CONFIG_NET_MGMT_EVENT_INFO enabled and event generator pass the
     585              :  * information.
     586              :  */
     587            1 : struct net_event_ipv6_pmtu_info {
     588              :         /** IPv6 address */
     589            1 :         struct in6_addr dst;
     590              :         /** New MTU */
     591            1 :         uint32_t mtu;
     592              : };
     593              : 
     594              : #ifdef __cplusplus
     595              : }
     596              : #endif
     597              : 
     598              : /**
     599              :  * @}
     600              :  */
     601              : 
     602              : #endif /* ZEPHYR_INCLUDE_NET_NET_EVENT_H_ */
        

Generated by: LCOV version 2.0-1