以DPDK的kni example分析用户态kni实现:
1、DPDK初始化;
2、申请mbuf pool内存池:pktmbuf_pool;
3、init_kni
若网卡的kni_port_params_array的nb_lcore_k未设置,设置nb_lcore_k为1;
rte_kni_init:打开kni设备文件,获取kni设备文件fd:kni_fd;
4、查找ports_mask设置的使能kni功能的端口,对使能kni功能的端口执行以下操作:
4.1、init_port:
1、rte_eth_dev_configure设置端口配置:收发队列为1、dev_conf为port_conf
port_conf = {
.rxmode = {
.split_hdr_size = 0,
},
.txmode = {
.mq_mode = ETH_DCB_NONE,
},
2、rte_eth_dev_adjust_nb_rx_tx_desc
传入收发队列的描述符个数为1024,将1024与网卡最多和最小的描述符做参照,进行设置3、rte_eth_tx_queue_setup:
初始化收发队列的描述符空间
4、rte_eth_dev_start
启动网卡
DPDK用户态kni实现
猜你喜欢
转载自blog.csdn.net/qq_29044159/article/details/103187420
今日推荐
周排行