X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest-pmd%2Fmacfwd.c;h=0a89d94befe5a040ad74ed715bd033ae2352dc34;hb=c902e264f67e92437ffdb30ef3c3f3aa6ed7a3d5;hp=2adce7019081b6fb8e2745cfe9e5fa2994ccb70a;hpb=3eecba267cd60fec245000b7d44f97130a7dd2ac;p=dpdk.git diff --git a/app/test-pmd/macfwd.c b/app/test-pmd/macfwd.c index 2adce70190..0a89d94bef 100644 --- a/app/test-pmd/macfwd.c +++ b/app/test-pmd/macfwd.c @@ -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], ð_hdr->d_addr); - ether_addr_copy(&ports[fs->tx_port].eth_addr, + rte_ether_addr_copy(&ports[fs->tx_port].eth_addr, ð_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; }