调用rte_eth_rx_queue_setup 函数来分配收包线程,每个队列一个线程。 dpdk收包 dpdk 是作为一个插件来运行的,收包是由一个 input node 实现。 VLIB_REGISTER_NODE (dpdk_input_node); VLIB_NODE_FN (dpdk_input_node) (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * f) { dpdk...
熟悉dpdk的读者应该知道,dpdk的初始化主要是由rte_eal_init函数来实现。在vpp中,调用关系是dpdk_config->rte_eal_init.而dpdk_config是由宏定义VLIB_CONFIG_FUNCTION (dpdk_config, "dpdk");将dpdk_config函数到相关链表中,vpp启动的时候会进行调用。dpdk_config函数主要是对启动参数进行解析,然后将解析后的参数传...
set int promiscuous on eth0 使能我们的插件 myplugin enable-disable eth0 dpdk网口对端发包 预期结果 在发送侧:每发送一个报文,能在本端口收到一个src mac和dst mac交换的报文. 在vpp测,可以看到网口收发包统计和trace信息: 00:01:24:063351: dpdk-input eth0 rx queue 0, tid=233990336 buffer 0x13b1...
*/dpdk_device_setup(dpdk_device_t*xd){dpdk_main_t*dm=&dpdk_main;...struct rte_eth_dev_info dev_info;...if(xd->flags&DPDK_DEVICE_FLAG_ADMIN_UP){vnet_hw_interface_set_flags(dm->vnet_main,xd->hw_if_index,0);dpdk_device_stop(xd);}/* Enable flow director when flows exist */if...
(op->status==RTE_CRYPTO_OP_STATUS_NOT_PROCESSED);dpdk_op_priv_t*priv=crypto_op_get_priv(op);@@-353,6+352,7@@dpdk_esp_decrypt_inline(vlib_main_t*vm,crypto_op_setup(is_aead,mb0,op,session,cipher_off,cipher_len,0,auth_len,aad,digest,digest_paddr);+ops+=1;trace:if(PREDICT_...