When I compiled it following the TLDK installation instructions, an error occurred. The following is error.
In file included from /root/tldk/lib/libtle_l4p/ctx.c:23:
/root/tldk/lib/libtle_l4p/stream.h: In function ‘stream_get_dest’:
/root/tldk/lib/libtle_l4p/stream.h:156:6: error: dereferencing pointer to incomplete type ‘struct rte_ipv4_hdr’
l3h->src_addr = dev->prm.local_addr4.s_addr;
^~
/root/tldk/lib/libtle_l4p/stream.h:161:17: error: dereferencing pointer to incomplete type ‘struct rte_ipv6_hdr’
rte_memcpy(l3h->src_addr, &dev->prm.local_addr6,
^~
In file included from /root/tldk/lib/libtle_l4p/ctx.c:24:
/root/tldk/lib/libtle_l4p/misc.h: At top level:
/root/tldk/lib/libtle_l4p/misc.h:210:32: warning: ‘struct rte_ipv4_hdr’ declared inside parameter list will not be visible outside of this definition or declaration
_ipv4x_phdr_cksum(const struct rte_ipv4_hdr *ipv4_hdr, size_t ipv4h_len,
^~~~~~~~~~~~
/root/tldk/lib/libtle_l4p/misc.h: In function ‘_ipv4x_phdr_cksum’:
/root/tldk/lib/libtle_l4p/misc.h:215:15: error: dereferencing pointer to incomplete type ‘const struct rte_ipv4_hdr’
s0 = ipv4_hdr->src_addr;
^~
/root/tldk/lib/libtle_l4p/misc.h: At top level:
/root/tldk/lib/libtle_l4p/misc.h:246:15: warning: ‘struct rte_ipv4_hdr’ declared inside parameter list will not be visible outside of this definition or declaration
const struct rte_ipv4_hdr *ipv4_hdr)
^~~~~~~~~~~~
/root/tldk/lib/libtle_l4p/misc.h: In function ‘_ipv4_udptcp_mbuf_cksum’:
/root/tldk/lib/libtle_l4p/misc.h:250:28: warning: passing argument 1 of ‘_ipv4x_phdr_cksum’ from incompatible pointer type [-Wincompatible-pointer-types]
cksum = _ipv4x_phdr_cksum(ipv4_hdr, mb->l3_len, 0);
^~~~~~~~
/root/tldk/lib/libtle_l4p/misc.h:210:46: note: expected ‘const struct rte_ipv4_hdr *’ but argument is of type ‘const struct rte_ipv4_hdr *’
_ipv4x_phdr_cksum(const struct rte_ipv4_hdr *ipv4_hdr, size_t ipv4h_len,
~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/root/tldk/lib/libtle_l4p/misc.h: At top level:
/root/tldk/lib/libtle_l4p/misc.h:270:15: warning: ‘struct rte_ipv6_hdr’ declared inside parameter list will not be visible outside of this definition or declaration
const struct rte_ipv6_hdr *ipv6_hdr)
^~~~~~~~~~~~
/root/tldk/lib/libtle_l4p/misc.h: In function ‘_ipv6_udptcp_mbuf_cksum’:
/root/tldk/lib/libtle_l4p/misc.h:274:30: warning: passing argument 1 of ‘rte_ipv6_phdr_cksum’ from incompatible pointer type [-Wincompatible-pointer-types]
cksum = rte_ipv6_phdr_cksum(ipv6_hdr, 0);
^~~~~~~~
In file included from /root/tldk/lib/libtle_l4p/ctx.c:21:
/root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ip.h:390:44: note: expected ‘const struct ipv6_hdr *’ but argument is of type ‘const struct rte_ipv6_hdr *’
rte_ipv6_phdr_cksum(const struct ipv6_hdr *ipv6_hdr, uint64_t ol_flags)
~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
In file included from /root/tldk/lib/libtle_l4p/ctx.c:24:
/root/tldk/lib/libtle_l4p/misc.h: In function ‘check_pkt_csum’:
/root/tldk/lib/libtle_l4p/misc.h:322:44: error: dereferencing pointer to incomplete type ‘const struct rte_ipv4_hdr’
if (fl3 == PKT_RX_IP_CKSUM_UNKNOWN && l3h4->hdr_checksum != 0) {
^~
/root/tldk/lib/libtle_l4p/misc.h:336:39: error: dereferencing pointer to incomplete type ‘const struct rte_udp_hdr’
csum = (proto == IPPROTO_UDP && l4h->dgram_cksum == 0) ?
^~
/root/tldk/lib/libtle_l4p/misc.h:338:28: warning: passing argument 3 of ‘_ipv4_udptcp_mbuf_cksum’ from incompatible pointer type [-Wincompatible-pointer-types]
m->l2_len + m->l3_len, l3h4);
^~~~
/root/tldk/lib/libtle_l4p/misc.h:246:29: note: expected ‘const struct rte_ipv4_hdr *’ but argument is of type ‘const struct rte_ipv4_hdr *’
const struct rte_ipv4_hdr *ipv4_hdr)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/root/tldk/lib/libtle_l4p/misc.h:341:28: warning: passing argument 3 of ‘_ipv6_udptcp_mbuf_cksum’ from incompatible pointer type [-Wincompatible-pointer-types]
m->l2_len + m->l3_len, l3h6);
^~~~
/root/tldk/lib/libtle_l4p/misc.h:270:29: note: expected ‘const struct rte_ipv6_hdr *’ but argument is of type ‘const struct rte_ipv6_hdr *’
const struct rte_ipv6_hdr *ipv6_hdr)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/root/tldk/lib/libtle_l4p/ctx.c: At top level:
cc1: warning: unrecognized command line option ‘-Wno-address-of-packed-member’
make[3]: *** [/root/dpdk/mk/internal/rte.compile-pre.mk:116: ctx.o] Error 1
make[2]: *** [/root/tldk/mk/tle.lib.mk:27: all] Error 2
make[1]: *** [/root/tldk/mk/tle.subdir.mk:23: libtle_l4p] Error 2
make: *** [Makefile:44: lib] Error 2
Environment:
system version: debian 10.2
linux kernel version: 4.19.249-2
gcc version: 8.3.0
make version: 4.2.1
dpdk version: 18.11.11
Environment variables have been configured.