Update sample plugin and plugin skeletons: use driver feature arc

Change-Id: Ic0a1479e4a0408a4b93f47e50752d07c2bdccdde
Signed-off-by: Dave Barach <dave@barachs.net>
This commit is contained in:
Dave Barach
2016-11-08 16:47:34 -05:00
committed by Damjan Marion
parent 3a4ed39345
commit b7e2f3d312
5 changed files with 75 additions and 26 deletions

View File

@ -47,8 +47,18 @@ nil
typedef struct {
u32 next_index;
u32 sw_if_index;
u8 new_src_mac[6];
u8 new_dst_mac[6];
} " plugin-name "_trace_t;
static u8 *
format_mac_address (u8 * s, va_list * args)
{
u8 *a = va_arg (*args, u8 *);
return format (s, \"%02x:%02x:%02x:%02x:%02x:%02x\",
a[0], a[1], a[2], a[3], a[4], a[5]);
}
/* packet trace format function */
static u8 * format_" plugin-name "_trace (u8 * s, va_list * args)
{
@ -56,8 +66,11 @@ static u8 * format_" plugin-name "_trace (u8 * s, va_list * args)
CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *);
" plugin-name "_trace_t * t = va_arg (*args, " plugin-name "_trace_t *);
s = format (s, \"" PLUGIN-NAME ": sw_if_index %d, next index %d\",
s = format (s, \"" PLUGIN-NAME ": sw_if_index %d, next index %d\\n\",
t->sw_if_index, t->next_index);
s = format (s, \" new src %U -> new dst %U\",
format_mac_address, t->new_src_mac,
format_mac_address, t->new_dst_mac);
return s;
}
@ -193,6 +206,10 @@ static uword
vlib_add_trace (vm, node, b0, sizeof (*t));
t->sw_if_index = sw_if_index0;
t->next_index = next0;
clib_memcpy (t->new_src_mac, en0->src_address,
sizeof (t->new_src_mac));
clib_memcpy (t->new_dst_mac, en0->dst_address,
sizeof (t->new_dst_mac));
}
if (b1->flags & VLIB_BUFFER_IS_TRACED)
{
@ -200,6 +217,10 @@ static uword
vlib_add_trace (vm, node, b1, sizeof (*t));
t->sw_if_index = sw_if_index1;
t->next_index = next1;
clib_memcpy (t->new_src_mac, en1->src_address,
sizeof (t->new_src_mac));
clib_memcpy (t->new_dst_mac, en1->dst_address,
sizeof (t->new_dst_mac));
}
}
@ -257,6 +278,10 @@ static uword
vlib_add_trace (vm, node, b0, sizeof (*t));
t->sw_if_index = sw_if_index0;
t->next_index = next0;
clib_memcpy (t->new_src_mac, en0->src_address,
sizeof (t->new_src_mac));
clib_memcpy (t->new_dst_mac, en0->dst_address,
sizeof (t->new_dst_mac));
}
pkts_swapped += 1;