ip_interface_address_t *ia;
vnet_sw_interface_t *sif;
- pool_foreach(sif, vnm->interface_main.sw_interfaces,
- ({
+ pool_foreach (sif, vnm->interface_main.sw_interfaces)
+ {
if (im->fib_index_by_sw_if_index[sw_if_index] ==
im->fib_index_by_sw_if_index[sif->sw_if_index])
{
}
}));
}
- }));
+ }
}
/* *INDENT-ON* */
u32 tx_sw_if_index0, tx_sw_if_index1;
u8 *p;
- vlib_prefetch_buffer_header (b[6], LOAD);
- vlib_prefetch_buffer_header (b[7], LOAD);
+ if (is_midchain)
+ {
+ vlib_prefetch_buffer_header (b[6], LOAD);
+ vlib_prefetch_buffer_header (b[7], LOAD);
+ }
adj_index0 = vnet_buffer (b[0])->ip.adj_index[VLIB_TX];
adj_index1 = vnet_buffer (b[1])->ip.adj_index[VLIB_TX];
if (is_midchain)
{
if (error0 == IP4_ERROR_NONE)
- adj_midchain_fixup (vm, adj0, b[0]);
+ adj_midchain_fixup (vm, adj0, b[0], VNET_LINK_IP4);
if (error1 == IP4_ERROR_NONE)
- adj_midchain_fixup (vm, adj1, b[1]);
+ adj_midchain_fixup (vm, adj1, b[1], VNET_LINK_IP4);
}
if (is_mcast)
b[0]) + rw_len0);
if (is_midchain)
- adj_midchain_fixup (vm, adj0, b[0]);
+ adj_midchain_fixup (vm, adj0, b[0], VNET_LINK_IP4);
if (is_mcast)
/* copy bytes from the IP address into the MAC rewrite */
vlib_buffer_length_in_chain (vm, b[0]) + rw_len0);
if (is_midchain)
- adj_midchain_fixup (vm, adj0, b[0]);
+ adj_midchain_fixup (vm, adj0, b[0], VNET_LINK_IP4);
if (is_mcast)
/* copy bytes from the IP address into the MAC rewrite */
};
/* *INDENT-ON* */
-#ifndef CLIB_MARCH_VARIANT
-int
-vnet_set_ip4_flow_hash (u32 table_id, u32 flow_hash_config)
-{
- u32 fib_index;
-
- fib_index = fib_table_find (FIB_PROTOCOL_IP4, table_id);
-
- if (~0 == fib_index)
- return VNET_API_ERROR_NO_SUCH_FIB;
-
- fib_table_set_flow_hash_config (fib_index, FIB_PROTOCOL_IP4,
- flow_hash_config);
-
- return 0;
-}
-#endif
-
static clib_error_t *
set_ip_flow_hash_command_fn (vlib_main_t * vm,
unformat_input_t * input,
{
if (unformat (input, "table %d", &table_id))
matched = 1;
-#define _(a,v) \
- else if (unformat (input, #a)) { flow_hash_config |= v; matched=1;}
+#define _(a, b, v) \
+ else if (unformat (input, #a)) \
+ { \
+ flow_hash_config |= v; \
+ matched = 1; \
+ }
foreach_flow_hash_bit
#undef _
else
return clib_error_return (0, "unknown input `%U'",
format_unformat_error, input);
- rv = vnet_set_ip4_flow_hash (table_id, flow_hash_config);
+ rv = ip_flow_hash_set (AF_IP4, table_id, flow_hash_config);
switch (rv)
{
case 0: