#include <rte_eal.h>
#include <rte_per_lcore.h>
#include <rte_lcore.h>
-#include <rte_atomic.h>
#include <rte_branch_prediction.h>
#include <rte_mempool.h>
#include <rte_mbuf.h>
txp = &ports[fs->tx_port];
tx_offloads = txp->dev_conf.txmode.offloads;
if (tx_offloads & RTE_ETH_TX_OFFLOAD_VLAN_INSERT)
- ol_flags = PKT_TX_VLAN_PKT;
+ ol_flags = RTE_MBUF_F_TX_VLAN;
if (tx_offloads & RTE_ETH_TX_OFFLOAD_QINQ_INSERT)
- ol_flags |= PKT_TX_QINQ_PKT;
+ ol_flags |= RTE_MBUF_F_TX_QINQ;
if (tx_offloads & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT)
- ol_flags |= PKT_TX_MACSEC;
+ ol_flags |= RTE_MBUF_F_TX_MACSEC;
for (i = 0; i < nb_rx; i++) {
if (likely(i < nb_rx - 1))
rte_prefetch0(rte_pktmbuf_mtod(pkts_burst[i + 1],
ð_hdr->dst_addr);
rte_ether_addr_copy(&ports[fs->tx_port].eth_addr,
ð_hdr->src_addr);
- mb->ol_flags &= IND_ATTACHED_MBUF | EXT_ATTACHED_MBUF;
+ mb->ol_flags &= RTE_MBUF_F_INDIRECT | RTE_MBUF_F_EXTERNAL;
mb->ol_flags |= ol_flags;
mb->l2_len = sizeof(struct rte_ether_hdr);
mb->l3_len = sizeof(struct rte_ipv4_hdr);
get_end_cycles(fs, start_tsc);
}
+static void
+stream_init_mac_forward(struct fwd_stream *fs)
+{
+ bool rx_stopped, tx_stopped;
+
+ rx_stopped = ports[fs->rx_port].rxq[fs->rx_queue].state ==
+ RTE_ETH_QUEUE_STATE_STOPPED;
+ tx_stopped = ports[fs->tx_port].txq[fs->tx_queue].state ==
+ RTE_ETH_QUEUE_STATE_STOPPED;
+ fs->disabled = rx_stopped || tx_stopped;
+}
+
struct fwd_engine mac_fwd_engine = {
.fwd_mode_name = "mac",
.port_fwd_begin = NULL,
.port_fwd_end = NULL,
+ .stream_init = stream_init_mac_forward,
.packet_fwd = pkt_burst_mac_forward,
};