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