adj->lookup_next_index = IP_LOOKUP_NEXT_MCAST;
adj->ia_nh_proto = proto;
adj->ia_link = link_type;
adj->lookup_next_index = IP_LOOKUP_NEXT_MCAST;
adj->ia_nh_proto = proto;
adj->ia_link = link_type;
- vnet_rewrite_init(vnm, sw_if_index,
- adj_get_mcast_node(proto),
+ vnet_rewrite_init(vnm, sw_if_index, link_type,
+ adj->ia_node_index,
* NB: the adj being updated may be handling traffic in the DP.
*/
void
adj_mcast_update_rewrite (adj_index_t adj_index,
u8 *rewrite,
* NB: the adj being updated may be handling traffic in the DP.
*/
void
adj_mcast_update_rewrite (adj_index_t adj_index,
u8 *rewrite,
- * set the fields corresponding to the mcast IP address rewrite
- * The mask must be stored in network byte order, since the packet's
- * IP address will also be in network order.
+ * set the offset corresponding to the mcast IP address rewrite
}
/**
* adj_mcast_midchain_update_rewrite
*
* Update the adjacency's rewrite string. A NULL string implies the
}
/**
* adj_mcast_midchain_update_rewrite
*
* Update the adjacency's rewrite string. A NULL string implies the
* src,dst, this is all we need.
*/
ASSERT(adj->lookup_next_index == IP_LOOKUP_NEXT_MCAST);
* src,dst, this is all we need.
*/
ASSERT(adj->lookup_next_index == IP_LOOKUP_NEXT_MCAST);
adj_mcast_hw_sw_interface_state_change (vnet_main_t * vnm,
u32 sw_if_index,
void *arg)
{
adj_mcast_interface_state_change(vnm, sw_if_index, (uword) arg);
adj_mcast_hw_sw_interface_state_change (vnet_main_t * vnm,
u32 sw_if_index,
void *arg)
{
adj_mcast_interface_state_change(vnm, sw_if_index, (uword) arg);
{
index_t index = va_arg(*ap, index_t);
CLIB_UNUSED(u32 indent) = va_arg(*ap, u32);
{
index_t index = va_arg(*ap, index_t);
CLIB_UNUSED(u32 indent) = va_arg(*ap, u32);
s = format(s, "%U-mcast: ",
format_fib_protocol, adj->ia_nh_proto);
s = format(s, "%U-mcast: ",
format_fib_protocol, adj->ia_nh_proto);
.dv_unlock = adj_dpo_unlock,
.dv_format = format_adj_mcast,
.dv_get_urpf = adj_dpo_get_urpf,
.dv_unlock = adj_dpo_unlock,
.dv_format = format_adj_mcast,
.dv_get_urpf = adj_dpo_get_urpf,
};
const static dpo_vft_t adj_mcast_midchain_dpo_vft = {
.dv_lock = adj_dpo_lock,
.dv_unlock = adj_dpo_unlock,
.dv_format = format_adj_mcast_midchain,
.dv_get_urpf = adj_dpo_get_urpf,
};
const static dpo_vft_t adj_mcast_midchain_dpo_vft = {
.dv_lock = adj_dpo_lock,
.dv_unlock = adj_dpo_unlock,
.dv_format = format_adj_mcast_midchain,
.dv_get_urpf = adj_dpo_get_urpf,