在使用vpp收发包的过程中,除了大部分处理报文输入之外,
我们还有可能会遇到主动发包的情况,主动申请一个buf,
填充报文各层信息和payload后,将其发送到指定网口出去,
下面提供一个我自己写的主动发包的例子
{
u8 have_packet_rewrite = 1;
u32 bi0;
vlib_buffer_t *b0;
vlib_frame_t *f;
upu_main_t * ump = &upu_main;
unformat_input_t ininput;
u32 phy_sw_if_index;
u32 *to_next;
unformat_init_string(&ininput, "fpp3",
strlen("fpp3"));
if (unformat(&ininput, "%U", unformat_vnet_sw_interface,
ump->vnet_main, &phy_sw_if_index) == 0) {
return clib_error_return (0,
"get %s index fail", "fpp3");
}
unformat_free(&ininput);
/* Allocate a buffer */
if (vlib_buffer_alloc (vm, &bi0, 1) != 1)
break;
b0 = vlib_get_buffer (vm, bi0);
/* Initialize the buffer */
VLIB_BUFFER_TRACE_TRAJECTORY_INIT