net: hns3: Change the dst mac addr of loopback packet
authorYunsheng Lin <linyunsheng@huawei.com>
Mon, 3 Sep 2018 10:21:54 +0000 (11:21 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Nov 2019 17:45:52 +0000 (18:45 +0100)
[ Upstream commit 7f7d9e501f4123e64b130576621d24f9379adc8f ]

Currently, the dst mac addr of loopback packet is the same as
the host' mac addr, the SSU component may loop back the packet
to host before the packet reaches mac or serdes, which will defect
the purpose of mac or serdes selftest.

This patch changes it by adding 0x1f to the last byte of dst mac
addr.

Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c

index 5bdcd92..0c34ea1 100644 (file)
@@ -137,6 +137,7 @@ static void hns3_lp_setup_skb(struct sk_buff *skb)
        packet = skb_put(skb, HNS3_NIC_LB_TEST_PACKET_SIZE);
 
        memcpy(ethh->h_dest, ndev->dev_addr, ETH_ALEN);
+       ethh->h_dest[5] += 0x1f;
        eth_zero_addr(ethh->h_source);
        ethh->h_proto = htons(ETH_P_ARP);
        skb_reset_mac_header(skb);