LCOV - code coverage report
Current view: top level - zephyr/net - net_event.h Hit Total Coverage
Test: new.info Lines: 80 80 100.0 %
Date: 2024-12-22 00:14:23

          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/hostname.h>
      17             : 
      18             : #ifdef __cplusplus
      19             : extern "C" {
      20             : #endif
      21             : 
      22             : /**
      23             :  * @addtogroup net_mgmt
      24             :  * @{
      25             :  */
      26             : 
      27             : /** @cond INTERNAL_HIDDEN */
      28             : 
      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             : 
      37             : enum 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             : 
      52             : enum 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             : 
      88             : enum 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             : 
     114             : enum 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             : };
     127             : 
     128             : /** @endcond */
     129             : 
     130             : /** Event emitted when the network interface goes down. */
     131           1 : #define NET_EVENT_IF_DOWN                                       \
     132             :         (_NET_EVENT_IF_BASE | NET_EVENT_IF_CMD_DOWN)
     133             : 
     134             : /** Event emitted when the network interface goes up. */
     135           1 : #define NET_EVENT_IF_UP                                         \
     136             :         (_NET_EVENT_IF_BASE | NET_EVENT_IF_CMD_UP)
     137             : 
     138             : /** Event emitted when the network interface is taken down manually. */
     139           1 : #define NET_EVENT_IF_ADMIN_DOWN                                 \
     140             :         (_NET_EVENT_IF_BASE | NET_EVENT_IF_CMD_ADMIN_DOWN)
     141             : 
     142             : /** Event emitted when the network interface goes up manually. */
     143           1 : #define NET_EVENT_IF_ADMIN_UP                                   \
     144             :         (_NET_EVENT_IF_BASE | NET_EVENT_IF_CMD_ADMIN_UP)
     145             : 
     146             : /** Event emitted when an IPv6 address is added to the system. */
     147           1 : #define NET_EVENT_IPV6_ADDR_ADD                                 \
     148             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ADDR_ADD)
     149             : 
     150             : /** Event emitted when an IPv6 address is removed from the system. */
     151           1 : #define NET_EVENT_IPV6_ADDR_DEL                                 \
     152             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ADDR_DEL)
     153             : 
     154             : /** Event emitted when an IPv6 multicast address is added to the system. */
     155           1 : #define NET_EVENT_IPV6_MADDR_ADD                                \
     156             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MADDR_ADD)
     157             : 
     158             : /** Event emitted when an IPv6 multicast address is removed from the system. */
     159           1 : #define NET_EVENT_IPV6_MADDR_DEL                                \
     160             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MADDR_DEL)
     161             : 
     162             : /** Event emitted when an IPv6 prefix is added to the system. */
     163           1 : #define NET_EVENT_IPV6_PREFIX_ADD                               \
     164             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PREFIX_ADD)
     165             : 
     166             : /** Event emitted when an IPv6 prefix is removed from the system. */
     167           1 : #define NET_EVENT_IPV6_PREFIX_DEL                               \
     168             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PREFIX_DEL)
     169             : 
     170             : /** Event emitted when an IPv6 multicast group is joined. */
     171           1 : #define NET_EVENT_IPV6_MCAST_JOIN                               \
     172             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MCAST_JOIN)
     173             : 
     174             : /** Event emitted when an IPv6 multicast group is left. */
     175           1 : #define NET_EVENT_IPV6_MCAST_LEAVE                              \
     176             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MCAST_LEAVE)
     177             : 
     178             : /** Event emitted when an IPv6 router is added to the system. */
     179           1 : #define NET_EVENT_IPV6_ROUTER_ADD                               \
     180             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTER_ADD)
     181             : 
     182             : /** Event emitted when an IPv6 router is removed from the system. */
     183           1 : #define NET_EVENT_IPV6_ROUTER_DEL                               \
     184             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTER_DEL)
     185             : 
     186             : /** Event emitted when an IPv6 route is added to the system. */
     187           1 : #define NET_EVENT_IPV6_ROUTE_ADD                                \
     188             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTE_ADD)
     189             : 
     190             : /** Event emitted when an IPv6 route is removed from the system. */
     191           1 : #define NET_EVENT_IPV6_ROUTE_DEL                                \
     192             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTE_DEL)
     193             : 
     194             : /** Event emitted when an IPv6 duplicate address detection succeeds. */
     195           1 : #define NET_EVENT_IPV6_DAD_SUCCEED                              \
     196             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DAD_SUCCEED)
     197             : 
     198             : /** Event emitted when an IPv6 duplicate address detection fails. */
     199           1 : #define NET_EVENT_IPV6_DAD_FAILED                               \
     200             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DAD_FAILED)
     201             : 
     202             : /** Event emitted when an IPv6 neighbor is added to the system. */
     203           1 : #define NET_EVENT_IPV6_NBR_ADD                                  \
     204             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_NBR_ADD)
     205             : 
     206             : /** Event emitted when an IPv6 neighbor is removed from the system. */
     207           1 : #define NET_EVENT_IPV6_NBR_DEL                                  \
     208             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_NBR_DEL)
     209             : 
     210             : /** Event emitted when an IPv6 DHCP client starts. */
     211           1 : #define NET_EVENT_IPV6_DHCP_START                               \
     212             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DHCP_START)
     213             : 
     214             : /** Event emitted when an IPv6 DHCP client address is bound. */
     215           1 : #define NET_EVENT_IPV6_DHCP_BOUND                               \
     216             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DHCP_BOUND)
     217             : 
     218             : /** Event emitted when an IPv6 DHCP client is stopped. */
     219           1 : #define NET_EVENT_IPV6_DHCP_STOP                                \
     220             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DHCP_STOP)
     221             : 
     222             : /** IPv6 address is deprecated. */
     223           1 : #define NET_EVENT_IPV6_ADDR_DEPRECATED                          \
     224             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ADDR_DEPRECATED)
     225             : 
     226             : /** IPv6 Privacy extension is enabled. */
     227           1 : #define NET_EVENT_IPV6_PE_ENABLED                               \
     228             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PE_ENABLED)
     229             : 
     230             : /** IPv6 Privacy extension is disabled. */
     231           1 : #define NET_EVENT_IPV6_PE_DISABLED                              \
     232             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PE_DISABLED)
     233             : 
     234             : /** IPv6 Privacy extension filter is added. */
     235           1 : #define NET_EVENT_IPV6_PE_FILTER_ADD                            \
     236             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PE_FILTER_ADD)
     237             : 
     238             : /** IPv6 Privacy extension filter is removed. */
     239           1 : #define NET_EVENT_IPV6_PE_FILTER_DEL                            \
     240             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PE_FILTER_DEL)
     241             : 
     242             : /** IPv6 Path MTU is changed. */
     243           1 : #define NET_EVENT_IPV6_PMTU_CHANGED                             \
     244             :         (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PMTU_CHANGED)
     245             : 
     246             : /** Event emitted when an IPv4 address is added to the system. */
     247           1 : #define NET_EVENT_IPV4_ADDR_ADD                                 \
     248             :         (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ADDR_ADD)
     249             : 
     250             : /** Event emitted when an IPv4 address is removed from the system. */
     251           1 : #define NET_EVENT_IPV4_ADDR_DEL                                 \
     252             :         (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ADDR_DEL)
     253             : 
     254             : /** Event emitted when an IPv4 multicast address is added to the system. */
     255           1 : #define NET_EVENT_IPV4_MADDR_ADD                                \
     256             :         (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_MADDR_ADD)
     257             : 
     258             : /** Event emitted when an IPv4 multicast address is removed from the system. */
     259           1 : #define NET_EVENT_IPV4_MADDR_DEL                                \
     260             :         (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_MADDR_DEL)
     261             : 
     262             : /** Event emitted when an IPv4 router is added to the system. */
     263           1 : #define NET_EVENT_IPV4_ROUTER_ADD                               \
     264             :         (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ROUTER_ADD)
     265             : 
     266             : /** Event emitted when an IPv4 router is removed from the system. */
     267           1 : #define NET_EVENT_IPV4_ROUTER_DEL                               \
     268             :         (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ROUTER_DEL)
     269             : 
     270             : /** Event emitted when an IPv4 DHCP client is started. */
     271           1 : #define NET_EVENT_IPV4_DHCP_START                               \
     272             :         (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_DHCP_START)
     273             : 
     274             : /** Event emitted when an IPv4 DHCP client address is bound. */
     275           1 : #define NET_EVENT_IPV4_DHCP_BOUND                               \
     276             :         (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_DHCP_BOUND)
     277             : 
     278             : /** Event emitted when an IPv4 DHCP client is stopped. */
     279           1 : #define NET_EVENT_IPV4_DHCP_STOP                                \
     280             :         (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_DHCP_STOP)
     281             : 
     282             : /** Event emitted when an IPv4 multicast group is joined. */
     283           1 : #define NET_EVENT_IPV4_MCAST_JOIN                               \
     284             :         (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_MCAST_JOIN)
     285             : 
     286             : /** Event emitted when an IPv4 multicast group is left. */
     287           1 : #define NET_EVENT_IPV4_MCAST_LEAVE                              \
     288             :         (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_MCAST_LEAVE)
     289             : 
     290             : /** Event emitted when an IPv4 address conflict detection succeeds. */
     291           1 : #define NET_EVENT_IPV4_ACD_SUCCEED                              \
     292             :         (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ACD_SUCCEED)
     293             : 
     294             : /** Event emitted when an IPv4 address conflict detection fails. */
     295           1 : #define NET_EVENT_IPV4_ACD_FAILED                               \
     296             :         (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ACD_FAILED)
     297             : 
     298             : /** Event emitted when an IPv4 address conflict was detected after the address
     299             :  *  was confirmed as safe to use. It's up to the application to determine on
     300             :  *  how to act in such case.
     301             :  */
     302           1 : #define NET_EVENT_IPV4_ACD_CONFLICT                             \
     303             :         (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ACD_CONFLICT)
     304             : 
     305             : /** IPv4 Path MTU is changed. */
     306           1 : #define NET_EVENT_IPV4_PMTU_CHANGED                             \
     307             :         (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_PMTU_CHANGED)
     308             : 
     309             : /** Event emitted when the system is considered to be connected.
     310             :  * The connected in this context means that the network interface is up,
     311             :  * and the interface has either IPv4 or IPv6 address assigned to it.
     312             :  */
     313           1 : #define NET_EVENT_L4_CONNECTED                                  \
     314             :         (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_CONNECTED)
     315             : 
     316             : /** Event emitted when the system is no longer connected.
     317             :  * Typically this means that network connectivity is lost either by
     318             :  * the network interface is going down, or the interface has no longer
     319             :  * an IP address etc.
     320             :  */
     321           1 : #define NET_EVENT_L4_DISCONNECTED                       \
     322             :         (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_DISCONNECTED)
     323             : 
     324             : 
     325             : /** Event raised when IPv4 network connectivity is available. */
     326           1 : #define NET_EVENT_L4_IPV4_CONNECTED                     \
     327             :         (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_IPV4_CONNECTED)
     328             : 
     329             : /** Event emitted when IPv4 network connectivity is lost. */
     330           1 : #define NET_EVENT_L4_IPV4_DISCONNECTED                  \
     331             :         (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_IPV4_DISCONNECTED)
     332             : 
     333             : /** Event emitted when IPv6 network connectivity is available. */
     334           1 : #define NET_EVENT_L4_IPV6_CONNECTED                     \
     335             :         (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_IPV6_CONNECTED)
     336             : 
     337             : /** Event emitted when IPv6 network connectivity is lost. */
     338           1 : #define NET_EVENT_L4_IPV6_DISCONNECTED                  \
     339             :         (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_IPV6_DISCONNECTED)
     340             : 
     341             : /** Event emitted when a DNS server is added to the system. */
     342           1 : #define NET_EVENT_DNS_SERVER_ADD                        \
     343             :         (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_DNS_SERVER_ADD)
     344             : 
     345             : /** Event emitted when a DNS server is removed from the system. */
     346           1 : #define NET_EVENT_DNS_SERVER_DEL                        \
     347             :         (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_DNS_SERVER_DEL)
     348             : 
     349             : /** Event emitted when the system hostname is changed. */
     350           1 : #define NET_EVENT_HOSTNAME_CHANGED                      \
     351             :         (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_HOSTNAME_CHANGED)
     352             : 
     353             : /** Network packet capture is started. */
     354           1 : #define NET_EVENT_CAPTURE_STARTED                       \
     355             :         (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_CAPTURE_STARTED)
     356             : 
     357             : /** Network packet capture is stopped. */
     358           1 : #define NET_EVENT_CAPTURE_STOPPED                       \
     359             :         (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_CAPTURE_STOPPED)
     360             : 
     361             : /**
     362             :  * @brief Network Management event information structure
     363             :  * Used to pass information on network events like
     364             :  *   NET_EVENT_IPV6_ADDR_ADD,
     365             :  *   NET_EVENT_IPV6_ADDR_DEL,
     366             :  *   NET_EVENT_IPV6_MADDR_ADD and
     367             :  *   NET_EVENT_IPV6_MADDR_DEL
     368             :  * when CONFIG_NET_MGMT_EVENT_INFO enabled and event generator pass the
     369             :  * information.
     370             :  */
     371           1 : struct net_event_ipv6_addr {
     372             :         /** IPv6 address related to this event */
     373           1 :         struct in6_addr addr;
     374             : };
     375             : 
     376             : /**
     377             :  * @brief Network Management event information structure
     378             :  * Used to pass information on network events like
     379             :  *   NET_EVENT_IPV6_NBR_ADD and
     380             :  *   NET_EVENT_IPV6_NBR_DEL
     381             :  * when CONFIG_NET_MGMT_EVENT_INFO enabled and event generator pass the
     382             :  * information.
     383             :  * @note: idx will be '-1' in case of NET_EVENT_IPV6_NBR_DEL event.
     384             :  */
     385           1 : struct net_event_ipv6_nbr {
     386             :         /** Neighbor IPv6 address */
     387           1 :         struct in6_addr addr;
     388             :         /** Neighbor index in cache */
     389           1 :         int idx;
     390             : };
     391             : 
     392             : /**
     393             :  * @brief Network Management event information structure
     394             :  * Used to pass information on network events like
     395             :  *   NET_EVENT_IPV6_ROUTE_ADD and
     396             :  *   NET_EVENT_IPV6_ROUTE_DEL
     397             :  * when CONFIG_NET_MGMT_EVENT_INFO enabled and event generator pass the
     398             :  * information.
     399             :  */
     400           1 : struct net_event_ipv6_route {
     401             :         /** IPv6 address of the next hop */
     402           1 :         struct in6_addr nexthop;
     403             :         /** IPv6 address or prefix of the route */
     404           1 :         struct in6_addr addr;
     405             :         /** IPv6 prefix length */
     406           1 :         uint8_t prefix_len;
     407             : };
     408             : 
     409             : /**
     410             :  * @brief Network Management event information structure
     411             :  * Used to pass information on network events like
     412             :  *   NET_EVENT_IPV6_PREFIX_ADD and
     413             :  *   NET_EVENT_IPV6_PREFIX_DEL
     414             :  * when CONFIG_NET_MGMT_EVENT_INFO is enabled and event generator pass the
     415             :  * information.
     416             :  */
     417           1 : struct net_event_ipv6_prefix {
     418             :         /** IPv6 prefix */
     419           1 :         struct in6_addr addr;
     420             :         /** IPv6 prefix length */
     421           1 :         uint8_t len;
     422             :         /** IPv6 prefix lifetime in seconds */
     423           1 :         uint32_t lifetime;
     424             : };
     425             : 
     426             : /**
     427             :  * @brief Network Management event information structure
     428             :  * Used to pass information on NET_EVENT_HOSTNAME_CHANGED event when
     429             :  * CONFIG_NET_MGMT_EVENT_INFO is enabled and event generator pass the
     430             :  * information.
     431             :  */
     432           1 : struct net_event_l4_hostname {
     433             :         /** New hostname */
     434           1 :         char hostname[NET_HOSTNAME_SIZE];
     435             : };
     436             : 
     437             : /**
     438             :  * @brief Network Management event information structure
     439             :  * Used to pass information on network events like
     440             :  *   NET_EVENT_IPV6_PE_FILTER_ADD and
     441             :  *   NET_EVENT_IPV6_PE_FILTER_DEL
     442             :  * when CONFIG_NET_MGMT_EVENT_INFO is enabled and event generator pass the
     443             :  * information.
     444             :  *
     445             :  * This is only available if CONFIG_NET_IPV6_PE_FILTER_PREFIX_COUNT is >0.
     446             :  */
     447           1 : struct net_event_ipv6_pe_filter {
     448             :         /** IPv6 address of privacy extension filter */
     449           1 :         struct in6_addr prefix;
     450             :         /** IPv6 filter deny or allow list */
     451           1 :         bool is_deny_list;
     452             : };
     453             : 
     454             : /**
     455             :  * @brief Network Management event information structure
     456             :  * Used to pass information on network event
     457             :  *   NET_EVENT_IPV4_PMTU_CHANGED
     458             :  * when CONFIG_NET_MGMT_EVENT_INFO enabled and event generator pass the
     459             :  * information.
     460             :  */
     461           1 : struct net_event_ipv4_pmtu_info {
     462             :         /** IPv4 address */
     463           1 :         struct in_addr dst;
     464             :         /** New MTU */
     465           1 :         uint16_t mtu;
     466             : };
     467             : 
     468             : /**
     469             :  * @brief Network Management event information structure
     470             :  * Used to pass information on network event
     471             :  *   NET_EVENT_IPV6_PMTU_CHANGED
     472             :  * when CONFIG_NET_MGMT_EVENT_INFO enabled and event generator pass the
     473             :  * information.
     474             :  */
     475           1 : struct net_event_ipv6_pmtu_info {
     476             :         /** IPv6 address */
     477           1 :         struct in6_addr dst;
     478             :         /** New MTU */
     479           1 :         uint32_t mtu;
     480             : };
     481             : 
     482             : #ifdef __cplusplus
     483             : }
     484             : #endif
     485             : 
     486             : /**
     487             :  * @}
     488             :  */
     489             : 
     490             : #endif /* ZEPHYR_INCLUDE_NET_NET_EVENT_H_ */

Generated by: LCOV version 1.14