DPDK pdump个人学习笔记

本文介绍了DPDK 20.08版本中pdump工具的使用,包括初始化环境、参数解析、核心功能等。pdump用于捕获网络包并保存为pcap文件。文章详细解析了pdump的主要函数和参数配置,如初始化mempool、rte_ring和vdev,以及多线程配置。同时,讨论了如何根据参数创建mempool、rte_ring和vdev,并启动抓包流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DPDK 20.08 PDUMP工具学习

pdump是DPDK自带的调试工具,可以将抓到的包存储为pcap文件。
本人接触DPDK时间相对较短,本博客仅为本人学习记录与笔记,肯定是错误连篇,而且由于本人比较笨,所以写的比较像流水账,便于本人理解。这些写在前面,希望不要误导别人(或者被大佬喷)。

pdump主函数如下:

int
main(int argc, char **argv)
{
	int diag; 
	int ret;
	int i;

	char n_flag[] = "-n4";
	char mp_flag[] = "--proc-type=secondary";
	char *argp[argc + 2];

	/* catch ctrl-c so we can print on exit */
	signal(SIGINT, signal_handler);

	argp[0] = argv[0];
	argp[1] = n_flag;
	argp[2] = mp_flag;

	for (i = 1; i < argc; i++)
		argp[i + 2] = argv[i];

	argc += 2;

	diag = rte_eal_init(argc, argp);  //初始化eal
	if (diag < 0)
		rte_panic("Cannot init EAL\n");

	if (rte_eth_dev_count_avail() == 0)  
		rte_exit(EXIT_FAILURE, "No Ethernet ports - bye\n");

	argc -= diag;
	argv += (diag - 2);

	/* parse app arguments */
	if (argc > 1) {
		ret = launch_args_parse(argc, argv, argp[0]);
		if (ret < 0)
			rte_exit(EXIT_FAILURE, "Invalid argument\n");
	}

	/* create
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值