test mbuf attach
[dpdk.git] / app / test-pmd / macfwd.c
index 2adce70..0a89d94 100644 (file)
@@ -49,7 +49,7 @@ pkt_burst_mac_forward(struct fwd_stream *fs)
        struct rte_mbuf  *pkts_burst[MAX_PKT_BURST];
        struct rte_port  *txp;
        struct rte_mbuf  *mb;
-       struct ether_hdr *eth_hdr;
+       struct rte_ether_hdr *eth_hdr;
        uint32_t retry;
        uint16_t nb_rx;
        uint16_t nb_tx;
@@ -71,12 +71,12 @@ pkt_burst_mac_forward(struct fwd_stream *fs)
         */
        nb_rx = rte_eth_rx_burst(fs->rx_port, fs->rx_queue, pkts_burst,
                                 nb_pkt_per_burst);
-       if (unlikely(nb_rx == 0))
-               return;
-
 #ifdef RTE_TEST_PMD_RECORD_BURST_STATS
        fs->rx_burst_stats.pkt_burst_spread[nb_rx]++;
 #endif
+       if (unlikely(nb_rx == 0))
+               return;
+
        fs->rx_packets += nb_rx;
        txp = &ports[fs->tx_port];
        tx_offloads = txp->dev_conf.txmode.offloads;
@@ -91,14 +91,15 @@ pkt_burst_mac_forward(struct fwd_stream *fs)
                        rte_prefetch0(rte_pktmbuf_mtod(pkts_burst[i + 1],
                                                       void *));
                mb = pkts_burst[i];
-               eth_hdr = rte_pktmbuf_mtod(mb, struct ether_hdr *);
-               ether_addr_copy(&peer_eth_addrs[fs->peer_addr],
+               eth_hdr = rte_pktmbuf_mtod(mb, struct rte_ether_hdr *);
+               rte_ether_addr_copy(&peer_eth_addrs[fs->peer_addr],
                                &eth_hdr->d_addr);
-               ether_addr_copy(&ports[fs->tx_port].eth_addr,
+               rte_ether_addr_copy(&ports[fs->tx_port].eth_addr,
                                &eth_hdr->s_addr);
-               mb->ol_flags = ol_flags;
-               mb->l2_len = sizeof(struct ether_hdr);
-               mb->l3_len = sizeof(struct ipv4_hdr);
+               mb->ol_flags &= IND_ATTACHED_MBUF | EXT_ATTACHED_MBUF;
+               mb->ol_flags |= ol_flags;
+               mb->l2_len = sizeof(struct rte_ether_hdr);
+               mb->l3_len = sizeof(struct rte_ipv4_hdr);
                mb->vlan_tci = txp->tx_vlan_id;
                mb->vlan_tci_outer = txp->tx_vlan_id_outer;
        }