Running in 'csum' mode, the 'from' and 'to' parameters are not in correct order when calling rte_ether_addr_copy() which means the src/dst mac addresses will be overwriten. As a result, the packets will not be recognized and received by the receiver(s). Test CLI: ./app/dpdk-testpmd -n 1 -l 1-2 -a 09:00.0 -- -i --forward-mode=csum Fixes: 10f4620(app/testpmd: modify mac in csum forwarding) Signed-off-by: Wei Xu wei1.xu@intel.com --- app/test-pmd/csumonly.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c index 8526d9158a..08484fcda2 100644 --- a/app/test-pmd/csumonly.c +++ b/app/test-pmd/csumonly.c @@ -872,10 +872,10 @@ pkt_burst_checksum_forward(struct fwd_stream *fs) * and inner headers */ eth_hdr = rte_pktmbuf_mtod(m, struct rte_ether_hdr *); - rte_ether_addr_copy(&peer_eth_addrs[fs->peer_addr], - ð_hdr->dst_addr); - rte_ether_addr_copy(&ports[fs->tx_port].eth_addr, - ð_hdr->src_addr); + rte_ether_addr_copy(ð_hdr->dst_addr, + &peer_eth_addrs[fs->peer_addr]); + rte_ether_addr_copy(ð_hdr->src_addr, + &ports[fs->tx_port].eth_addr); parse_ethernet(eth_hdr, &info); l3_hdr = (char *)eth_hdr + info.l2_len;