DOWNLOAD_DIR := $(CURDIR)/downloads
MESON_DIR := $(CURDIR)/meson
-DPDK_VERSION ?= 20.11
+DPDK_VERSION ?= v21.11
DPDK_SRC_DIR ?= $(RTE_OUTPUT)-src
DPDK_BUILD_DIR ?= $(RTE_OUTPUT)-build
DPDK_INSTALL_DIR ?= $(RTE_OUTPUT)
B := $(DPDK_BUILD_DIR)
I := $(DPDK_INSTALL_DIR)
-DPDK_GIT_REPO ?= http://dpdk.org/git/dpdk-stable
+DPDK_GIT_REPO ?= http://dpdk.org/git/dpdk
JOBS := $(shell grep processor /proc/cpuinfo | wc -l)
eth = (struct rte_ether_hdr *)dst->hdr;
- rte_ether_addr_copy(&bed->port.mac, ð->s_addr);
- rte_ether_addr_copy(&bdp->mac, ð->d_addr);
+ rte_ether_addr_copy(&bed->port.mac, ð->src_addr);
+ rte_ether_addr_copy(&bdp->mac, ð->dst_addr);
eth->ether_type = rte_cpu_to_be_16(l3_type);
if (l3_type == RTE_ETHER_TYPE_IPV4) {
/* set up the ethernet data */
eth = rte_pktmbuf_mtod(m, struct rte_ether_hdr *);
- eth->d_addr = eth->s_addr;
- eth->s_addr = dev->port.mac;
+ eth->dst_addr = eth->src_addr;
+ eth->src_addr = dev->port.mac;
/* set up the arp data */
ahdr = rte_pktmbuf_mtod_offset(m, struct rte_arp_hdr *, m->l2_len);
m->packet_type |= RTE_PTYPE_L4_UDP;
/* fix reassemble setting TX flags. */
- m->ol_flags &= ~PKT_TX_IP_CKSUM;
+ m->ol_flags &= ~RTE_MBUF_F_TX_IP_CKSUM;
/* fix l3_len after reassemble. */
if (RTE_ETH_IS_IPV6_HDR(m->packet_type))
__func__, uprt->id);
port_conf.rxmode.offloads |= uprt->rx_offload & RX_CSUM_OFFLOAD;
}
- port_conf.rxmode.max_rx_pkt_len = uprt->mtu + RTE_ETHER_CRC_LEN;
- if (port_conf.rxmode.max_rx_pkt_len > RTE_ETHER_MAX_LEN)
- port_conf.rxmode.offloads |= DEV_RX_OFFLOAD_JUMBO_FRAME;
+ port_conf.rxmode.mtu = uprt->mtu - RTE_ETHER_HDR_LEN;
rc = update_rss_conf(uprt, &dev_info, &port_conf, proto);
if (rc != 0)
if ((dev_prm->tx_offload & DEV_TX_OFFLOAD_UDP_CKSUM) != 0 &&
ctx->prm.proto == TLE_PROTO_UDP) {
- dev->tx.ol_flags[TLE_V4] |= PKT_TX_IPV4 | PKT_TX_UDP_CKSUM;
- dev->tx.ol_flags[TLE_V6] |= PKT_TX_IPV6 | PKT_TX_UDP_CKSUM;
+ dev->tx.ol_flags[TLE_V4] |= RTE_MBUF_F_TX_IPV4 | RTE_MBUF_F_TX_UDP_CKSUM;
+ dev->tx.ol_flags[TLE_V6] |= RTE_MBUF_F_TX_IPV6 | RTE_MBUF_F_TX_UDP_CKSUM;
} else if ((dev_prm->tx_offload & DEV_TX_OFFLOAD_TCP_CKSUM) != 0 &&
ctx->prm.proto == TLE_PROTO_TCP) {
- dev->tx.ol_flags[TLE_V4] |= PKT_TX_IPV4 | PKT_TX_TCP_CKSUM;
- dev->tx.ol_flags[TLE_V6] |= PKT_TX_IPV6 | PKT_TX_TCP_CKSUM;
+ dev->tx.ol_flags[TLE_V4] |= RTE_MBUF_F_TX_IPV4 | RTE_MBUF_F_TX_TCP_CKSUM;
+ dev->tx.ol_flags[TLE_V6] |= RTE_MBUF_F_TX_IPV6 | RTE_MBUF_F_TX_TCP_CKSUM;
}
if ((dev_prm->tx_offload & DEV_TX_OFFLOAD_IPV4_CKSUM) != 0)
- dev->tx.ol_flags[TLE_V4] |= PKT_TX_IPV4 | PKT_TX_IP_CKSUM;
+ dev->tx.ol_flags[TLE_V4] |= RTE_MBUF_F_TX_IPV4 | RTE_MBUF_F_TX_IP_CKSUM;
dev->prm = *dev_prm;
dev->ctx = ctx;
s1 = ipv4_hdr->dst_addr;
CKSUM_ADD_CARRY(s0, s1);
- if (ol_flags & PKT_TX_TCP_SEG)
+ if (ol_flags & RTE_MBUF_F_TX_TCP_SEG)
s1 = 0;
else
s1 = rte_cpu_to_be_16(
uint16_t csum;
int32_t ret;
- fl4 = ol_flags & PKT_RX_L4_CKSUM_MASK;
+ fl4 = ol_flags & RTE_MBUF_F_RX_L4_CKSUM_MASK;
fl3 = (type == TLE_V4) ?
- (ol_flags & PKT_RX_IP_CKSUM_MASK) : PKT_RX_IP_CKSUM_GOOD;
+ (ol_flags & RTE_MBUF_F_RX_IP_CKSUM_MASK) : RTE_MBUF_F_RX_IP_CKSUM_GOOD;
/* case 0: both ip and l4 cksum is verified or data is valid */
- if ((fl3 | fl4) == (PKT_RX_IP_CKSUM_GOOD | PKT_RX_L4_CKSUM_GOOD))
+ if ((fl3 | fl4) == (RTE_MBUF_F_RX_IP_CKSUM_GOOD | RTE_MBUF_F_RX_L4_CKSUM_GOOD))
return 0;
/* case 1: either ip or l4 cksum bad */
- if (fl3 == PKT_RX_IP_CKSUM_BAD || fl4 == PKT_RX_L4_CKSUM_BAD)
+ if (fl3 == RTE_MBUF_F_RX_IP_CKSUM_BAD || fl4 == RTE_MBUF_F_RX_L4_CKSUM_BAD)
return 1;
/* case 2: either ip or l4 or both cksum is unknown */
m->l2_len);
ret = 0;
- if (fl3 == PKT_RX_IP_CKSUM_UNKNOWN && l3h4->hdr_checksum != 0) {
+ if (fl3 == RTE_MBUF_F_RX_IP_CKSUM_UNKNOWN && l3h4->hdr_checksum != 0) {
csum = _ipv4x_cksum(l3h4, m->l3_len);
ret = (csum != UINT16_MAX);
}
- if (ret == 0 && fl4 == PKT_RX_L4_CKSUM_UNKNOWN) {
+ if (ret == 0 && fl4 == RTE_MBUF_F_RX_L4_CKSUM_UNKNOWN) {
/*
* for IPv4 it is allowed to have zero UDP cksum,
((uintptr_t)tcph + offsetof(struct rte_tcp_hdr, src_port));
pi->tf.flags = tcph->tcp_flags;
pi->tf.type = type;
- pi->csf = m->ol_flags & (PKT_RX_IP_CKSUM_MASK | PKT_RX_L4_CKSUM_MASK);
+ pi->csf = m->ol_flags & (RTE_MBUF_F_RX_IP_CKSUM_MASK | RTE_MBUF_F_RX_L4_CKSUM_MASK);
pi->port.raw = prt->raw;
get_seg_info(tcph, si);
l3h->packet_id = rte_cpu_to_be_16(pid);
l3h->total_length = rte_cpu_to_be_16(plen + dst->l3_len + l4);
- if ((ol_flags & PKT_TX_TCP_CKSUM) != 0)
+ if ((ol_flags & RTE_MBUF_F_TX_TCP_CKSUM) != 0)
l4h->cksum = _ipv4x_phdr_cksum(l3h, m->l3_len,
ol_flags);
else if (swcsm != 0)
l4h->cksum = _ipv4_udptcp_mbuf_cksum(m, len, l3h);
- if ((ol_flags & PKT_TX_IP_CKSUM) == 0 && swcsm != 0)
+ if ((ol_flags & RTE_MBUF_F_TX_IP_CKSUM) == 0 && swcsm != 0)
l3h->hdr_checksum = _ipv4x_cksum(l3h, m->l3_len);
} else {
struct rte_ipv6_hdr *l3h;
l3h = (struct rte_ipv6_hdr *)(l2h + dst->l2_len);
l3h->payload_len = rte_cpu_to_be_16(plen + l4);
- if ((ol_flags & PKT_TX_TCP_CKSUM) != 0)
+ if ((ol_flags & RTE_MBUF_F_TX_TCP_CKSUM) != 0)
l4h->cksum = rte_ipv6_phdr_cksum(l3h, ol_flags);
else if (swcsm != 0)
l4h->cksum = _ipv6_udptcp_mbuf_cksum(m, len, l3h);
m->l2_len);
l3h->hdr_checksum = 0;
l3h->packet_id = rte_cpu_to_be_16(pid);
- if ((m->ol_flags & PKT_TX_IP_CKSUM) == 0)
+ if ((m->ol_flags & RTE_MBUF_F_TX_IP_CKSUM) == 0)
l3h->hdr_checksum = _ipv4x_cksum(l3h, m->l3_len);
}
/* have to calculate TCP checksum in SW */
- if ((m->ol_flags & PKT_TX_TCP_CKSUM) == 0) {
+ if ((m->ol_flags & RTE_MBUF_F_TX_TCP_CKSUM) == 0) {
l4h->cksum = 0;
l3h->total_length = rte_cpu_to_be_16(plen + dst->l3_len +
sizeof(*l4h));
- if ((ol_flags & PKT_TX_UDP_CKSUM) != 0)
+ if ((ol_flags & RTE_MBUF_F_TX_UDP_CKSUM) != 0)
l4h->cksum = _ipv4x_phdr_cksum(l3h, m->l3_len,
ol_flags);
else
l4h->cksum = _ipv4_udptcp_mbuf_cksum(m, len, l3h);
- if ((ol_flags & PKT_TX_IP_CKSUM) == 0)
+ if ((ol_flags & RTE_MBUF_F_TX_IP_CKSUM) == 0)
l3h->hdr_checksum = _ipv4x_cksum(l3h, m->l3_len);
} else {
struct rte_ipv6_hdr *l3h;
l3h = (struct rte_ipv6_hdr *)(l2h + dst->l2_len);
l3h->payload_len = rte_cpu_to_be_16(plen + sizeof(*l4h));
- if ((ol_flags & PKT_TX_UDP_CKSUM) != 0)
+ if ((ol_flags & RTE_MBUF_F_TX_UDP_CKSUM) != 0)
l4h->cksum = rte_ipv6_phdr_cksum(l3h, ol_flags);
else
l4h->cksum = _ipv6_udptcp_mbuf_cksum(m, len, l3h);
mf->ol_flags = ms->ol_flags;
mf->tx_offload = ms->tx_offload;
- if (type == TLE_V4 && (ms->ol_flags & PKT_TX_IP_CKSUM) == 0) {
+ if (type == TLE_V4 && (ms->ol_flags & RTE_MBUF_F_TX_IP_CKSUM) == 0) {
l3h = rte_pktmbuf_mtod(mf, struct rte_ipv4_hdr *);
l3h->hdr_checksum = _ipv4x_cksum(l3h, mf->l3_len);
}
while (i != num && frg == 0) {
frg = pkt[i]->pkt_len > mtu;
if (frg != 0)
- ol_flags &= ~PKT_TX_UDP_CKSUM;
+ ol_flags &= ~RTE_MBUF_F_TX_UDP_CKSUM;
rc = udp_fill_mbuf(pkt[i], type, ol_flags, pid + i,
udph, &dst);
if (rc != 0) {
socket_id = rte_eth_dev_socket_id(port);
memset(&port_conf, 0, sizeof(struct rte_eth_conf));
- port_conf.rxmode.max_rx_pkt_len = RTE_ETHER_MAX_LEN;
+ port_conf.rxmode.mtu = RTE_ETHER_MAX_LEN;
/* Configure the Ethernet device. */
retval = rte_eth_dev_configure(port, rx_rings, tx_rings, &port_conf);