ip0 = vlib_buffer_get_current (p0);
ip1 = vlib_buffer_get_current (p1);
- c0 =
- vnet_feature_next_with_data (vnet_buffer (p0)->sw_if_index
- [VLIB_RX], &next0, p0,
- sizeof (c0[0]));
- c1 =
- vnet_feature_next_with_data (vnet_buffer (p1)->sw_if_index
- [VLIB_RX], &next1, p1,
- sizeof (c1[0]));
+ c0 = vnet_feature_next_with_data (&next0, p0, sizeof (c0[0]));
+ c1 = vnet_feature_next_with_data (&next1, p1, sizeof (c1[0]));
mtrie0 = &ip4_fib_get (c0->fib_index)->mtrie;
mtrie1 = &ip4_fib_get (c1->fib_index)->mtrie;
- leaf0 = leaf1 = IP4_FIB_MTRIE_LEAF_ROOT;
-
- leaf0 =
- ip4_fib_mtrie_lookup_step (mtrie0, leaf0, &ip0->src_address, 0);
- leaf1 =
- ip4_fib_mtrie_lookup_step (mtrie1, leaf1, &ip1->src_address, 0);
-
- leaf0 =
- ip4_fib_mtrie_lookup_step (mtrie0, leaf0, &ip0->src_address, 1);
- leaf1 =
- ip4_fib_mtrie_lookup_step (mtrie1, leaf1, &ip1->src_address, 1);
+ leaf0 = ip4_fib_mtrie_lookup_step_one (mtrie0, &ip0->src_address);
+ leaf1 = ip4_fib_mtrie_lookup_step_one (mtrie1, &ip1->src_address);
leaf0 =
ip4_fib_mtrie_lookup_step (mtrie0, leaf0, &ip0->src_address, 2);
p0 = vlib_get_buffer (vm, pi0);
ip0 = vlib_buffer_get_current (p0);
- c0 =
- vnet_feature_next_with_data (vnet_buffer (p0)->sw_if_index
- [VLIB_RX], &next0, p0,
- sizeof (c0[0]));
+ c0 = vnet_feature_next_with_data (&next0, p0, sizeof (c0[0]));
mtrie0 = &ip4_fib_get (c0->fib_index)->mtrie;
- leaf0 = IP4_FIB_MTRIE_LEAF_ROOT;
-
- leaf0 =
- ip4_fib_mtrie_lookup_step (mtrie0, leaf0, &ip0->src_address, 0);
-
- leaf0 =
- ip4_fib_mtrie_lookup_step (mtrie0, leaf0, &ip0->src_address, 1);
+ leaf0 = ip4_fib_mtrie_lookup_step_one (mtrie0, &ip0->src_address);
leaf0 =
ip4_fib_mtrie_lookup_step (mtrie0, leaf0, &ip0->src_address, 2);
.n_next_nodes = IP4_SOURCE_CHECK_N_NEXT,
.next_nodes = {
- [IP4_SOURCE_CHECK_NEXT_DROP] = "error-drop",
+ [IP4_SOURCE_CHECK_NEXT_DROP] = "ip4-drop",
},
.format_buffer = format_ip4_header,
.n_next_nodes = IP4_SOURCE_CHECK_N_NEXT,
.next_nodes = {
- [IP4_SOURCE_CHECK_NEXT_DROP] = "error-drop",
+ [IP4_SOURCE_CHECK_NEXT_DROP] = "ip4-drop",
},
.format_buffer = format_ip4_header,
* Example of graph node before range checking is enabled:
* @cliexstart{show vlib graph ip4-source-check-via-rx}
* Name Next Previous
- * ip4-source-check-via-rx error-drop [0]
+ * ip4-source-check-via-rx ip4-drop [0]
* @cliexend
*
* Example of how to enable unicast source checking on an interface:
* Example of graph node after range checking is enabled:
* @cliexstart{show vlib graph ip4-source-check-via-rx}
* Name Next Previous
- * ip4-source-check-via-rx error-drop [0] ip4-input-no-checksum
+ * ip4-source-check-via-rx ip4-drop [0] ip4-input-no-checksum
* ip4-source-and-port-range- ip4-input
* @cliexend
*
if (~0 != table_id)
{
- fib_index = fib_table_id_find_fib_index (pfx.fp_proto, table_id);
+ fib_index = fib_table_find (pfx.fp_proto, table_id);
if (~0 == fib_index)
{
error = clib_error_return (0, "Nonexistent table id %d", table_id);
fib_table_entry_special_add (fib_index,
&pfx,
FIB_SOURCE_URPF_EXEMPT,
- FIB_ENTRY_FLAG_DROP, ADJ_INDEX_INVALID);
+ FIB_ENTRY_FLAG_DROP);
}
else
{