zephyr/include/net/net_event.h
Jukka Rissanen c3c76f35cc net: ipv6: Notify others if we join/leave IPv6 mcast group
Send management event if we joined or leaved IPv6 multicast
group.

Change-Id: Ieeb407ef88fb3bf4cd92d4fb4b69f03b260474e7
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2017-03-09 20:33:48 +02:00

101 lines
2.7 KiB
C

/*
* Copyright (c) 2016 Intel Corporation.
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file
* @brief Network Events code public header
*/
#ifndef __NET_EVENT_H__
#define __NET_EVENT_H__
/* Network Interface events */
#define _NET_IF_LAYER NET_MGMT_LAYER_L1
#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 = 0,
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 0x600
#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 = 0,
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,
};
#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)
/* IPv4 Events*/
#define _NET_IPV4_LAYER NET_MGMT_LAYER_L3
#define _NET_IPV4_CORE_CODE 0x400
#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 = 0,
NET_EVENT_IPV4_CMD_ADDR_DEL,
NET_EVENT_IPV4_CMD_ROUTER_ADD,
};
#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)
#endif /* __NET_EVENT_H__ */