Go to the source code of this file.
|
static u32 | adj_get_mcast_node (fib_protocol_t proto) |
|
adj_index_t | adj_mcast_add_or_lock (fib_protocol_t proto, vnet_link_t link_type, u32 sw_if_index) |
| Mcast Adjacency. More...
|
|
void | adj_mcast_update_rewrite (adj_index_t adj_index, u8 *rewrite, u8 offset) |
| adj_mcast_update_rewrite More...
|
|
void | adj_mcast_midchain_update_rewrite (adj_index_t adj_index, adj_midchain_fixup_t fixup, const void *fixup_data, adj_flags_t flags, u8 *rewrite, u8 offset, u32 mask) |
| adj_mcast_midchain_update_rewrite More...
|
|
void | adj_mcast_remove (fib_protocol_t proto, u32 sw_if_index) |
|
static clib_error_t * | adj_mcast_interface_state_change (vnet_main_t *vnm, u32 sw_if_index, u32 flags) |
|
| VNET_SW_INTERFACE_ADMIN_UP_DOWN_FUNCTION (adj_mcast_interface_state_change) |
|
static walk_rc_t | adj_mcast_hw_sw_interface_state_change (vnet_main_t *vnm, u32 sw_if_index, void *arg) |
| Invoked on each SW interface of a HW interface when the HW interface state changes. More...
|
|
static clib_error_t * | adj_mcast_hw_interface_state_change (vnet_main_t *vnm, u32 hw_if_index, u32 flags) |
| Registered callback for HW interface state changes. More...
|
|
| VNET_HW_INTERFACE_LINK_UP_DOWN_FUNCTION (adj_mcast_hw_interface_state_change) |
|
static clib_error_t * | adj_mcast_interface_delete (vnet_main_t *vnm, u32 sw_if_index, u32 is_add) |
|
| VNET_SW_INTERFACE_ADD_DEL_FUNCTION (adj_mcast_interface_delete) |
|
void | adj_mcast_walk (u32 sw_if_index, fib_protocol_t proto, adj_walk_cb_t cb, void *ctx) |
| Walk the multicast Adjacencies on a given interface. More...
|
|
u8 * | format_adj_mcast (u8 *s, va_list *ap) |
| Format/display a mcast adjacency. More...
|
|
u8 * | format_adj_mcast_midchain (u8 *s, va_list *ap) |
|
static void | adj_dpo_lock (dpo_id_t *dpo) |
|
static void | adj_dpo_unlock (dpo_id_t *dpo) |
|
u32 | adj_mcast_db_size (void) |
| Return the size of the adj DB. More...
|
|
void | adj_mcast_module_init (void) |
| Module initialisation. More...
|
|
◆ adj_dpo_lock()
static void adj_dpo_lock |
( |
dpo_id_t * |
dpo | ) |
|
|
static |
◆ adj_dpo_unlock()
static void adj_dpo_unlock |
( |
dpo_id_t * |
dpo | ) |
|
|
static |
◆ adj_get_mcast_node()
◆ adj_mcast_add_or_lock()
Mcast Adjacency.
The multicast adjacency forwards IP traffic on an interface toward a multicast group address. This is a different type of adjacency to a unicast adjacency since the application of the MAC header is different, and so the VLIB node visited is also different. DPO types have different VLIB nodes.
Add (and lock) a new or lock an existing mcast adjacency
- Parameters
-
proto | The protocol for the neighbours that we wish to mcast |
link_type | A description of the protocol of the packets that will forward through this adj. On an ethernet interface this is the MAC header's ether-type |
sw_if_index | The interface on which to mcast |
Definition at line 51 of file adj_mcast.c.
◆ adj_mcast_db_size()
u32 adj_mcast_db_size |
( |
void |
| ) |
|
Return the size of the adj DB.
Get the sze of the mcast adj DB.
This is only for testing purposes so an efficient implementation is not needed
Definition at line 456 of file adj_mcast.c.
◆ adj_mcast_hw_interface_state_change()
Registered callback for HW interface state changes.
Definition at line 240 of file adj_mcast.c.
◆ adj_mcast_hw_sw_interface_state_change()
Invoked on each SW interface of a HW interface when the HW interface state changes.
Definition at line 227 of file adj_mcast.c.
◆ adj_mcast_interface_delete()
◆ adj_mcast_interface_state_change()
◆ adj_mcast_midchain_update_rewrite()
adj_mcast_midchain_update_rewrite
Update the rewrite string for an existing adjacecny and Convert the adjacency into a midchain.
Update the adjacency's rewrite string. A NULL string implies the rewrite is reset (i.e. when ARP/ND entry is gone). NB: the adj being updated may be handling traffic in the DP.
Definition at line 139 of file adj_mcast.c.
◆ adj_mcast_module_init()
void adj_mcast_module_init |
( |
void |
| ) |
|
◆ adj_mcast_remove()
◆ adj_mcast_update_rewrite()
void adj_mcast_update_rewrite |
( |
adj_index_t |
adj_index, |
|
|
u8 * |
rewrite, |
|
|
u8 |
offset |
|
) |
| |
adj_mcast_update_rewrite
Update the rewrite string for an existing adjacecny.
Update the adjacency's rewrite string. A NULL string implies the rewrite is reset (i.e. when ARP/ND entry is gone). NB: the adj being updated may be handling traffic in the DP.
Definition at line 105 of file adj_mcast.c.
◆ adj_mcast_walk()
Walk the multicast Adjacencies on a given interface.
Definition at line 316 of file adj_mcast.c.
◆ format_adj_mcast()
u8* format_adj_mcast |
( |
u8 * |
s, |
|
|
va_list * |
ap |
|
) |
| |
Format/display a mcast adjacency.
Definition at line 331 of file adj_mcast.c.
◆ format_adj_mcast_midchain()
u8* format_adj_mcast_midchain |
( |
u8 * |
s, |
|
|
va_list * |
ap |
|
) |
| |
◆ VNET_HW_INTERFACE_LINK_UP_DOWN_FUNCTION()
◆ VNET_SW_INTERFACE_ADD_DEL_FUNCTION()
◆ VNET_SW_INTERFACE_ADMIN_UP_DOWN_FUNCTION()
◆ adj_mcast_dpo_vft
◆ adj_mcast_ip4_nodes
const static char* const adj_mcast_ip4_nodes[] |
|
static |
Initial value:=
{
"ip4-rewrite-mcast",
NULL,
}
The per-protocol VLIB graph nodes that are assigned to a mcast object.
this means that these graph nodes are ones from which a mcast is the parent object in the DPO-graph.
Definition at line 408 of file adj_mcast.c.
◆ adj_mcast_ip6_nodes
const static char* const adj_mcast_ip6_nodes[] |
|
static |
Initial value:=
{
"ip6-rewrite-mcast",
NULL,
}
Definition at line 413 of file adj_mcast.c.
◆ adj_mcast_midchain_dpo_vft
const static dpo_vft_t adj_mcast_midchain_dpo_vft |
|
static |
◆ adj_mcast_midchain_ip4_nodes
const static char* const adj_mcast_midchain_ip4_nodes[] |
|
static |
Initial value:=
{
"ip4-mcast-midchain",
NULL,
}
The per-protocol VLIB graph nodes that are assigned to a mcast object.
this means that these graph nodes are ones from which a mcast is the parent object in the DPO-graph.
Definition at line 433 of file adj_mcast.c.
◆ adj_mcast_midchain_ip6_nodes
const static char* const adj_mcast_midchain_ip6_nodes[] |
|
static |
Initial value:=
{
"ip6-mcast-midchain",
NULL,
}
Definition at line 438 of file adj_mcast.c.
◆ adj_mcast_midchain_nodes
const static char* const * const adj_mcast_midchain_nodes[DPO_PROTO_NUM] |
|
static |
◆ adj_mcast_nodes
◆ adj_mcasts