关于在dpdk环境中编译安装pktgen失败问题

编译时报错:
== app
CC cli-functions.o
In file included from /home/Pktgen-DPDK/pktgen-dpdk/app/pktgen.h:83:0,

             from /home/Pktgen-DPDK/pktgen-dpdk/app/cli-functions.c:30:

/home/Pktgen-DPDK/pktgen-dpdk/app/pktgen-port-cfg.h: In function ‘rte_get_rx_capa_list’:
/home/Pktgen-DPDK/pktgen-dpdk/app/pktgen-port-cfg.h:386:4: error: ‘DEV_RX_OFFLOAD_SCTP_CKSUM’ undeclared (first use in this function)
{ DEV_RX_OFFLOAD_SCTP_CKSUM, _(SCTP_CKSUM) },

^

/home/Pktgen-DPDK/pktgen-dpdk/app/pktgen-port-cfg.h:386:4: note: each undeclared identifier is reported only once for each function it appears in
/home/Pktgen-DPDK/pktgen-dpdk/app/pktgen-port-cfg.h:387:4: error: ‘DEV_RX_OFFLOAD_OUTER_UDP_CKSUM’ undeclared (first use in this function)
{ DEV_RX_OFFLOAD_OUTER_UDP_CKSUM, _(OUTER_UDP_CKSUM) }

^

/home/Pktgen-DPDK/pktgen-dpdk/app/pktgen-port-cfg.h: In function ‘rte_get_tx_capa_list’:
/home/Pktgen-DPDK/pktgen-dpdk/app/pktgen-port-cfg.h:440:4: error: ‘DEV_TX_OFFLOAD_OUTER_UDP_CKSUM’ undeclared (first use in this function)
{ DEV_TX_OFFLOAD_OUTER_UDP_CKSUM, _(OUTER_UDP_CKSUM) },

^

/home/Pktgen-DPDK/pktgen-dpdk/app/pktgen-port-cfg.h:440:2: warning: initialization makes integer from pointer without a cast [enabled by default]
{ DEV_TX_OFFLOAD_OUTER_UDP_CKSUM, _(OUTER_UDP_CKSUM) },
^
/home/Pktgen-DPDK/pktgen-dpdk/app/pktgen-port-cfg.h:440:2: warning: (near initialization for ‘tx_flags[20].flag’) [enabled by default]
/home/Pktgen-DPDK/pktgen-dpdk/app/pktgen-port-cfg.h:441:4: error: ‘DEV_TX_OFFLOAD_MATCH_METADATA’ undeclared (first use in this function)
{ DEV_TX_OFFLOAD_MATCH_METADATA, _(MATCH_METADATA) },

^

/home/Pktgen-DPDK/pktgen-dpdk/app/pktgen-port-cfg.h:441:2: warning: initialization makes integer from pointer without a cast [enabled by default]
{ DEV_TX_OFFLOAD_MATCH_METADATA, _(MATCH_METADATA) },
^
/home/Pktgen-DPDK/pktgen-dpdk/app/pktgen-port-cfg.h:441:2: warning: (near initialization for ‘tx_flags[21].flag’) [enabled by default]
make[2]: * [cli-functions.o] Error 1
make[1]: * [all] Error 2
make: * [app] Error 2

不知道是为啥出了此问题,求大神讲解

阅读 6.6k
1 个回答

DPDK稳定版本例如17.11缺少很多API函数,pktgen碰巧要求使用DPDK最高版本18.xx以及19.xx中的少量高级功能,包括DEV_xxx_OFFLOAD_xxx选项。Intel家的DPDK如果版本过低或过高,都无法编译第三方提供的Pktgen源代码。

DPDK补丁-2018年9月13日添加了下列新功能
官网可查询到的代码提交记录:

代码

#define DEV_RX_OFFLOAD_SCTP_CKSUM    0x00020000
#define DEV_RX_OFFLOAD_OUTER_UDP_CKSUM    0x00040000
#define DEV_RX_OFFLOAD_OUTER_TCP_CKSUM    0x00080000
#define DEV_RX_OFFLOAD_OUTER_SCTP_CKSUM    0x00100000
/** Device supports outer UDP checksum */
#define DEV_TX_OFFLOAD_OUTER_UDP_CKSUM  0x00100000
/** Device supports outer TCP checksum */
#define DEV_TX_OFFLOAD_OUTER_TCP_CKSUM  0x00200000
/** Device supports outer SCTP checksum */
#define DEV_TX_OFFLOAD_OUTER_SCTP_CKSUM 0x00400000
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题