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: fix coverity warnings in l2_fwd.c
[vpp.git]
/
src
/
vnet
/
l2
/
l2_fwd.c
diff --git
a/src/vnet/l2/l2_fwd.c
b/src/vnet/l2/l2_fwd.c
index
9fb7b7d
..
a1674e0
100644
(file)
--- a/
src/vnet/l2/l2_fwd.c
+++ b/
src/vnet/l2/l2_fwd.c
@@
-61,8
+61,7
@@
typedef struct
typedef struct
{
/* per-pkt trace data */
typedef struct
{
/* per-pkt trace data */
- u8 src[6];
- u8 dst[6];
+ u8 dst_and_src[12];
u32 sw_if_index;
u16 bd_index;
l2fib_entry_result_t result;
u32 sw_if_index;
u16 bd_index;
l2fib_entry_result_t result;
@@
-79,8
+78,9
@@
format_l2fwd_trace (u8 * s, va_list * args)
s =
format (s,
"l2-fwd: sw_if_index %d dst %U src %U bd_index %d result [0x%llx, %d] %U",
s =
format (s,
"l2-fwd: sw_if_index %d dst %U src %U bd_index %d result [0x%llx, %d] %U",
- t->sw_if_index, format_ethernet_address, t->dst,
- format_ethernet_address, t->src, t->bd_index, t->result.raw,
+ t->sw_if_index, format_ethernet_address, t->dst_and_src,
+ format_ethernet_address, t->dst_and_src + 6,
+ t->bd_index, t->result.raw,
t->result.fields.sw_if_index, format_l2fib_entry_result_flags,
t->result.fields.flags);
return s;
t->result.fields.sw_if_index, format_l2fib_entry_result_flags,
t->result.fields.flags);
return s;
@@
-92,7
+92,7
@@
l2fwd_main_t l2fwd_main;
extern l2fwd_main_t l2fwd_main;
#endif
extern l2fwd_main_t l2fwd_main;
#endif
-
static
vlib_node_registration_t l2fwd_node;
+
extern
vlib_node_registration_t l2fwd_node;
#define foreach_l2fwd_error \
_(L2FWD, "L2 forward packets") \
#define foreach_l2fwd_error \
_(L2FWD, "L2 forward packets") \
@@
-324,8
+324,9
@@
l2fwd_node_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
l2fwd_trace_t *t = vlib_add_trace (vm, node, b[0], sizeof (*t));
t->sw_if_index = sw_if_index0;
t->bd_index = vnet_buffer (b[0])->l2.bd_index;
l2fwd_trace_t *t = vlib_add_trace (vm, node, b[0], sizeof (*t));
t->sw_if_index = sw_if_index0;
t->bd_index = vnet_buffer (b[0])->l2.bd_index;
- clib_memcpy (t->src, h0->src_address, 6);
- clib_memcpy (t->dst, h0->dst_address, 6);
+ clib_memcpy_fast (t->dst_and_src, h0->dst_address,
+ sizeof (h0->dst_address) +
+ sizeof (h0->src_address));
t->result = result0;
}
if (b[1]->flags & VLIB_BUFFER_IS_TRACED)
t->result = result0;
}
if (b[1]->flags & VLIB_BUFFER_IS_TRACED)
@@
-333,8
+334,9
@@
l2fwd_node_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
l2fwd_trace_t *t = vlib_add_trace (vm, node, b[1], sizeof (*t));
t->sw_if_index = sw_if_index1;
t->bd_index = vnet_buffer (b[1])->l2.bd_index;
l2fwd_trace_t *t = vlib_add_trace (vm, node, b[1], sizeof (*t));
t->sw_if_index = sw_if_index1;
t->bd_index = vnet_buffer (b[1])->l2.bd_index;
- clib_memcpy (t->src, h1->src_address, 6);
- clib_memcpy (t->dst, h1->dst_address, 6);
+ clib_memcpy_fast (t->dst_and_src, h1->dst_address,
+ sizeof (h1->dst_address) +
+ sizeof (h1->src_address));
t->result = result1;
}
if (b[2]->flags & VLIB_BUFFER_IS_TRACED)
t->result = result1;
}
if (b[2]->flags & VLIB_BUFFER_IS_TRACED)
@@
-342,8
+344,9
@@
l2fwd_node_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
l2fwd_trace_t *t = vlib_add_trace (vm, node, b[2], sizeof (*t));
t->sw_if_index = sw_if_index2;
t->bd_index = vnet_buffer (b[2])->l2.bd_index;
l2fwd_trace_t *t = vlib_add_trace (vm, node, b[2], sizeof (*t));
t->sw_if_index = sw_if_index2;
t->bd_index = vnet_buffer (b[2])->l2.bd_index;
- clib_memcpy (t->src, h2->src_address, 6);
- clib_memcpy (t->dst, h2->dst_address, 6);
+ clib_memcpy_fast (t->dst_and_src, h2->dst_address,
+ sizeof (h2->dst_address) +
+ sizeof (h2->src_address));
t->result = result2;
}
if (b[3]->flags & VLIB_BUFFER_IS_TRACED)
t->result = result2;
}
if (b[3]->flags & VLIB_BUFFER_IS_TRACED)
@@
-351,8
+354,9
@@
l2fwd_node_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
l2fwd_trace_t *t = vlib_add_trace (vm, node, b[3], sizeof (*t));
t->sw_if_index = sw_if_index3;
t->bd_index = vnet_buffer (b[3])->l2.bd_index;
l2fwd_trace_t *t = vlib_add_trace (vm, node, b[3], sizeof (*t));
t->sw_if_index = sw_if_index3;
t->bd_index = vnet_buffer (b[3])->l2.bd_index;
- clib_memcpy (t->src, h3->src_address, 6);
- clib_memcpy (t->dst, h3->dst_address, 6);
+ clib_memcpy_fast (t->dst_and_src, h3->dst_address,
+ sizeof (h3->dst_address) +
+ sizeof (h3->src_address));
t->result = result3;
}
}
t->result = result3;
}
}
@@
-387,8
+391,9
@@
l2fwd_node_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
l2fwd_trace_t *t = vlib_add_trace (vm, node, b[0], sizeof (*t));
t->sw_if_index = sw_if_index0;
t->bd_index = vnet_buffer (b[0])->l2.bd_index;
l2fwd_trace_t *t = vlib_add_trace (vm, node, b[0], sizeof (*t));
t->sw_if_index = sw_if_index0;
t->bd_index = vnet_buffer (b[0])->l2.bd_index;
- clib_memcpy (t->src, h0->src_address, 6);
- clib_memcpy (t->dst, h0->dst_address, 6);
+ clib_memcpy_fast (t->dst_and_src, h0->dst_address,
+ sizeof (h0->dst_address) +
+ sizeof (h0->src_address));
t->result = result0;
}
t->result = result0;
}
@@
-412,7
+417,7
@@
VLIB_NODE_FN (l2fwd_node) (vlib_main_t * vm,
}
/* *INDENT-OFF* */
}
/* *INDENT-OFF* */
-VLIB_REGISTER_NODE (l2fwd_node
,static
) = {
+VLIB_REGISTER_NODE (l2fwd_node) = {
.name = "l2-fwd",
.vector_size = sizeof (u32),
.format_trace = format_l2fwd_trace,
.name = "l2-fwd",
.vector_size = sizeof (u32),
.format_trace = format_l2fwd_trace,