123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- /*
- * Copyright (c) 2016 Intel Corporation.
- *
- * SPDX-License-Identifier: Apache-2.0
- */
- /**
- * @file
- * @brief Network Events code public header
- */
- #ifndef ZEPHYR_INCLUDE_NET_NET_EVENT_H_
- #define ZEPHYR_INCLUDE_NET_NET_EVENT_H_
- #include <net/net_ip.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- /**
- * @addtogroup net_mgmt
- * @{
- */
- /** @cond INTERNAL_HIDDEN */
- /* Network Interface events */
- #define _NET_IF_LAYER NET_MGMT_LAYER_L2
- #define _NET_IF_CORE_CODE 0x001
- #define _NET_EVENT_IF_BASE (NET_MGMT_EVENT_BIT | \
- NET_MGMT_IFACE_BIT | \
- NET_MGMT_LAYER(_NET_IF_LAYER) | \
- NET_MGMT_LAYER_CODE(_NET_IF_CORE_CODE))
- enum net_event_if_cmd {
- NET_EVENT_IF_CMD_DOWN = 1,
- NET_EVENT_IF_CMD_UP,
- };
- #define NET_EVENT_IF_DOWN \
- (_NET_EVENT_IF_BASE | NET_EVENT_IF_CMD_DOWN)
- #define NET_EVENT_IF_UP \
- (_NET_EVENT_IF_BASE | NET_EVENT_IF_CMD_UP)
- /* IPv6 Events */
- #define _NET_IPV6_LAYER NET_MGMT_LAYER_L3
- #define _NET_IPV6_CORE_CODE 0x060
- #define _NET_EVENT_IPV6_BASE (NET_MGMT_EVENT_BIT | \
- NET_MGMT_IFACE_BIT | \
- NET_MGMT_LAYER(_NET_IPV6_LAYER) | \
- NET_MGMT_LAYER_CODE(_NET_IPV6_CORE_CODE))
- enum net_event_ipv6_cmd {
- NET_EVENT_IPV6_CMD_ADDR_ADD = 1,
- NET_EVENT_IPV6_CMD_ADDR_DEL,
- NET_EVENT_IPV6_CMD_MADDR_ADD,
- NET_EVENT_IPV6_CMD_MADDR_DEL,
- NET_EVENT_IPV6_CMD_PREFIX_ADD,
- NET_EVENT_IPV6_CMD_PREFIX_DEL,
- NET_EVENT_IPV6_CMD_MCAST_JOIN,
- NET_EVENT_IPV6_CMD_MCAST_LEAVE,
- NET_EVENT_IPV6_CMD_ROUTER_ADD,
- NET_EVENT_IPV6_CMD_ROUTER_DEL,
- NET_EVENT_IPV6_CMD_ROUTE_ADD,
- NET_EVENT_IPV6_CMD_ROUTE_DEL,
- NET_EVENT_IPV6_CMD_DAD_SUCCEED,
- NET_EVENT_IPV6_CMD_DAD_FAILED,
- NET_EVENT_IPV6_CMD_NBR_ADD,
- NET_EVENT_IPV6_CMD_NBR_DEL,
- };
- #define NET_EVENT_IPV6_ADDR_ADD \
- (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ADDR_ADD)
- #define NET_EVENT_IPV6_ADDR_DEL \
- (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ADDR_DEL)
- #define NET_EVENT_IPV6_MADDR_ADD \
- (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MADDR_ADD)
- #define NET_EVENT_IPV6_MADDR_DEL \
- (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MADDR_DEL)
- #define NET_EVENT_IPV6_PREFIX_ADD \
- (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PREFIX_ADD)
- #define NET_EVENT_IPV6_PREFIX_DEL \
- (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_PREFIX_DEL)
- #define NET_EVENT_IPV6_MCAST_JOIN \
- (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MCAST_JOIN)
- #define NET_EVENT_IPV6_MCAST_LEAVE \
- (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_MCAST_LEAVE)
- #define NET_EVENT_IPV6_ROUTER_ADD \
- (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTER_ADD)
- #define NET_EVENT_IPV6_ROUTER_DEL \
- (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTER_DEL)
- #define NET_EVENT_IPV6_ROUTE_ADD \
- (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTE_ADD)
- #define NET_EVENT_IPV6_ROUTE_DEL \
- (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_ROUTE_DEL)
- #define NET_EVENT_IPV6_DAD_SUCCEED \
- (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DAD_SUCCEED)
- #define NET_EVENT_IPV6_DAD_FAILED \
- (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_DAD_FAILED)
- #define NET_EVENT_IPV6_NBR_ADD \
- (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_NBR_ADD)
- #define NET_EVENT_IPV6_NBR_DEL \
- (_NET_EVENT_IPV6_BASE | NET_EVENT_IPV6_CMD_NBR_DEL)
- /* IPv4 Events*/
- #define _NET_IPV4_LAYER NET_MGMT_LAYER_L3
- #define _NET_IPV4_CORE_CODE 0x004
- #define _NET_EVENT_IPV4_BASE (NET_MGMT_EVENT_BIT | \
- NET_MGMT_IFACE_BIT | \
- NET_MGMT_LAYER(_NET_IPV4_LAYER) | \
- NET_MGMT_LAYER_CODE(_NET_IPV4_CORE_CODE))
- enum net_event_ipv4_cmd {
- NET_EVENT_IPV4_CMD_ADDR_ADD = 1,
- NET_EVENT_IPV4_CMD_ADDR_DEL,
- NET_EVENT_IPV4_CMD_ROUTER_ADD,
- NET_EVENT_IPV4_CMD_ROUTER_DEL,
- NET_EVENT_IPV4_CMD_DHCP_START,
- NET_EVENT_IPV4_CMD_DHCP_BOUND,
- NET_EVENT_IPV4_CMD_DHCP_STOP,
- NET_EVENT_IPV4_CMD_MCAST_JOIN,
- NET_EVENT_IPV4_CMD_MCAST_LEAVE,
- };
- #define NET_EVENT_IPV4_ADDR_ADD \
- (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ADDR_ADD)
- #define NET_EVENT_IPV4_ADDR_DEL \
- (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ADDR_DEL)
- #define NET_EVENT_IPV4_ROUTER_ADD \
- (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ROUTER_ADD)
- #define NET_EVENT_IPV4_ROUTER_DEL \
- (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_ROUTER_DEL)
- #define NET_EVENT_IPV4_DHCP_START \
- (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_DHCP_START)
- #define NET_EVENT_IPV4_DHCP_BOUND \
- (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_DHCP_BOUND)
- #define NET_EVENT_IPV4_DHCP_STOP \
- (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_DHCP_STOP)
- #define NET_EVENT_IPV4_MCAST_JOIN \
- (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_MCAST_JOIN)
- #define NET_EVENT_IPV4_MCAST_LEAVE \
- (_NET_EVENT_IPV4_BASE | NET_EVENT_IPV4_CMD_MCAST_LEAVE)
- /* L4 network events */
- #define _NET_L4_LAYER NET_MGMT_LAYER_L4
- #define _NET_L4_CORE_CODE 0x114
- #define _NET_EVENT_L4_BASE (NET_MGMT_EVENT_BIT | \
- NET_MGMT_IFACE_BIT | \
- NET_MGMT_LAYER(_NET_L4_LAYER) | \
- NET_MGMT_LAYER_CODE(_NET_L4_CORE_CODE))
- enum net_event_l4_cmd {
- NET_EVENT_L4_CMD_CONNECTED = 1,
- NET_EVENT_L4_CMD_DISCONNECTED,
- NET_EVENT_L4_CMD_DNS_SERVER_ADD,
- NET_EVENT_L4_CMD_DNS_SERVER_DEL,
- };
- #define NET_EVENT_L4_CONNECTED \
- (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_CONNECTED)
- #define NET_EVENT_L4_DISCONNECTED \
- (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_DISCONNECTED)
- #define NET_EVENT_DNS_SERVER_ADD \
- (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_DNS_SERVER_ADD)
- #define NET_EVENT_DNS_SERVER_DEL \
- (_NET_EVENT_L4_BASE | NET_EVENT_L4_CMD_DNS_SERVER_DEL)
- /** @endcond */
- #ifdef CONFIG_NET_MGMT_EVENT_INFO
- /**
- * @brief Network Management event information structure
- * Used to pass information on network events like
- * NET_EVENT_IPV6_ADDR_ADD,
- * NET_EVENT_IPV6_ADDR_DEL,
- * NET_EVENT_IPV6_MADDR_ADD and
- * NET_EVENT_IPV6_MADDR_DEL
- * when CONFIG_NET_MGMT_EVENT_INFO enabled and event generator pass the
- * information.
- */
- struct net_event_ipv6_addr {
- struct in6_addr addr;
- };
- /**
- * @brief Network Management event information structure
- * Used to pass information on network events like
- * NET_EVENT_IPV6_NBR_ADD and
- * NET_EVENT_IPV6_NBR_DEL
- * when CONFIG_NET_MGMT_EVENT_INFO enabled and event generator pass the
- * information.
- * @Note: idx will be '-1' in case of NET_EVENT_IPV6_NBR_DEL event.
- */
- struct net_event_ipv6_nbr {
- struct in6_addr addr;
- int idx; /* NBR index*/
- };
- /**
- * @brief Network Management event information structure
- * Used to pass information on network events like
- * NET_EVENT_IPV6_ROUTE_ADD and
- * NET_EVENT_IPV6_ROUTE_DEL
- * when CONFIG_NET_MGMT_EVENT_INFO enabled and event generator pass the
- * information.
- */
- struct net_event_ipv6_route {
- struct in6_addr nexthop;
- struct in6_addr addr; /* addr/prefix */
- uint8_t prefix_len;
- };
- #endif /* CONFIG_NET_MGMT_EVENT_INFO */
- #ifdef __cplusplus
- }
- #endif
- /**
- * @}
- */
- #endif /* ZEPHYR_INCLUDE_NET_NET_EVENT_H_ */
|