Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
L2-FWD: use vlib_buffer_enqueue_to_next and cache prefetch fix
[vpp.git]
/
src
/
vnet
/
l2
/
l2_flood.c
diff --git
a/src/vnet/l2/l2_flood.c
b/src/vnet/l2/l2_flood.c
index
97f1387
..
5d9873e
100644
(file)
--- a/
src/vnet/l2/l2_flood.c
+++ b/
src/vnet/l2/l2_flood.c
@@
-23,7
+23,6
@@
#include <vnet/l2/l2_input.h>
#include <vnet/l2/feat_bitmap.h>
#include <vnet/l2/l2_bvi.h>
#include <vnet/l2/l2_input.h>
#include <vnet/l2/feat_bitmap.h>
#include <vnet/l2/l2_bvi.h>
-#include <vnet/replication.h>
#include <vnet/l2/l2_fib.h>
#include <vppinfra/error.h>
#include <vnet/l2/l2_fib.h>
#include <vppinfra/error.h>
@@
-156,11
+155,12
@@
l2flood_node_fn (vlib_main_t * vm,
while (n_left_from > 0 && n_left_to_next > 0)
{
while (n_left_from > 0 && n_left_to_next > 0)
{
- u32 next0, sw_if_index0, bi0, ci0;
u16 n_clones, n_cloned, clone0;
l2_bridge_domain_t *bd_config;
u16 n_clones, n_cloned, clone0;
l2_bridge_domain_t *bd_config;
+ u32 sw_if_index0, bi0, ci0;
l2_flood_member_t *member;
vlib_buffer_t *b0, *c0;
l2_flood_member_t *member;
vlib_buffer_t *b0, *c0;
+ u16 next0;
u8 in_shg;
i32 mi;
u8 in_shg;
i32 mi;
@@
-168,7
+168,7
@@
l2flood_node_fn (vlib_main_t * vm,
bi0 = from[0];
from += 1;
n_left_from -= 1;
bi0 = from[0];
from += 1;
n_left_from -= 1;
- next0 = L2FLOOD_NEXT_
DROP
;
+ next0 = L2FLOOD_NEXT_
L2_OUTPUT
;
b0 = vlib_get_buffer (vm, bi0);
b0 = vlib_get_buffer (vm, bi0);
@@
-263,7
+263,6
@@
l2flood_node_fn (vlib_main_t * vm,
/* Do normal L2 forwarding */
vnet_buffer (c0)->sw_if_index[VLIB_TX] = member->sw_if_index;
/* Do normal L2 forwarding */
vnet_buffer (c0)->sw_if_index[VLIB_TX] = member->sw_if_index;
- next0 = L2FLOOD_NEXT_L2_OUTPUT;
vlib_validate_buffer_enqueue_x1 (vm, node, next_index,
to_next, n_left_to_next,
vlib_validate_buffer_enqueue_x1 (vm, node, next_index,
to_next, n_left_to_next,
@@
-314,7
+313,7
@@
l2flood_node_fn (vlib_main_t * vm,
msm->vnet_main,
c0, member->sw_if_index, &msm->l3_next, &next0);
msm->vnet_main,
c0, member->sw_if_index, &msm->l3_next, &next0);
- if (PREDICT_FALSE (rc))
+ if (PREDICT_FALSE (rc
!= TO_BVI_ERR_OK
))
{
if (rc == TO_BVI_ERR_BAD_MAC)
{
{
if (rc == TO_BVI_ERR_BAD_MAC)
{
@@
-324,13
+323,13
@@
l2flood_node_fn (vlib_main_t * vm,
{
c0->error = node->errors[L2FLOOD_ERROR_BVI_ETHERTYPE];
}
{
c0->error = node->errors[L2FLOOD_ERROR_BVI_ETHERTYPE];
}
+ next0 = L2FLOOD_NEXT_DROP;
}
}
else
{
/* Do normal L2 forwarding */
vnet_buffer (c0)->sw_if_index[VLIB_TX] = member->sw_if_index;
}
}
else
{
/* Do normal L2 forwarding */
vnet_buffer (c0)->sw_if_index[VLIB_TX] = member->sw_if_index;
- next0 = L2FLOOD_NEXT_L2_OUTPUT;
}
vlib_validate_buffer_enqueue_x1 (vm, node, next_index,
}
vlib_validate_buffer_enqueue_x1 (vm, node, next_index,