From e6918187568dbd01842d8d1d2c808ce16a894239 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 21 Apr 2024 13:54:28 +0200 Subject: Adding upstream version 18.2.2. Signed-off-by: Daniel Baumann --- src/spdk/dpdk/app/test-pmd/macswap.h | 40 ++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/spdk/dpdk/app/test-pmd/macswap.h (limited to 'src/spdk/dpdk/app/test-pmd/macswap.h') diff --git a/src/spdk/dpdk/app/test-pmd/macswap.h b/src/spdk/dpdk/app/test-pmd/macswap.h new file mode 100644 index 000000000..013844156 --- /dev/null +++ b/src/spdk/dpdk/app/test-pmd/macswap.h @@ -0,0 +1,40 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2018 Intel Corporation + */ + +#ifndef _MACSWAP_H_ +#define _MACSWAP_H_ + +#include "macswap_common.h" + +static inline void +do_macswap(struct rte_mbuf *pkts[], uint16_t nb, + struct rte_port *txp) +{ + struct rte_ether_hdr *eth_hdr; + struct rte_mbuf *mb; + struct rte_ether_addr addr; + uint64_t ol_flags; + int i; + + ol_flags = ol_flags_init(txp->dev_conf.txmode.offloads); + vlan_qinq_set(pkts, nb, ol_flags, + txp->tx_vlan_id, txp->tx_vlan_id_outer); + + for (i = 0; i < nb; i++) { + if (likely(i < nb - 1)) + rte_prefetch0(rte_pktmbuf_mtod(pkts[i+1], void *)); + mb = pkts[i]; + + eth_hdr = rte_pktmbuf_mtod(mb, struct rte_ether_hdr *); + + /* Swap dest and src mac addresses. */ + rte_ether_addr_copy(ð_hdr->d_addr, &addr); + rte_ether_addr_copy(ð_hdr->s_addr, ð_hdr->d_addr); + rte_ether_addr_copy(&addr, ð_hdr->s_addr); + + mbuf_field_set(mb, ol_flags); + } +} + +#endif /* _MACSWAP_H_ */ -- cgit v1.2.3