]> git.droids-corp.org - dpdk.git/commitdiff
app/testpmd: fix MAC address after port reset
authorYuying Zhang <yuying.zhang@intel.com>
Wed, 14 Jul 2021 02:20:27 +0000 (02:20 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Sat, 24 Jul 2021 11:28:13 +0000 (13:28 +0200)
MAC address of each port in global variable ports hasn't been updated
after resetting. It was the initial one after resetting VF MAC address.
This patch gets correct port MAC address when starting port.

Fixes: a5279d25616d ("app/testpmd: check status of getting MAC address")
Cc: stable@dpdk.org
Signed-off-by: Yuying Zhang <yuying.zhang@intel.com>
Acked-by: Aman Deep Singh <aman.deep.singh@intel.com>
Acked-by: Xiaoyun Li <xiaoyun.li@intel.com>
app/test-pmd/testpmd.c

index a48f70962f54258edb720c51663d2dc0cd689607..37aba402729b520f7303699bb98daa16b4516c31 100644 (file)
@@ -2441,7 +2441,6 @@ start_port(portid_t pid)
        int peer_pi;
        queueid_t qi;
        struct rte_port *port;
-       struct rte_ether_addr mac_addr;
        struct rte_eth_hairpin_cap cap;
 
        if (port_id_is_invalid(pid, ENABLED_WARN))
@@ -2612,11 +2611,14 @@ start_port(portid_t pid)
                        RTE_PORT_HANDLING, RTE_PORT_STARTED) == 0)
                        printf("Port %d can not be set into started\n", pi);
 
-               if (eth_macaddr_get_print_err(pi, &mac_addr) == 0)
+               if (eth_macaddr_get_print_err(pi, &port->eth_addr) == 0)
                        printf("Port %d: %02X:%02X:%02X:%02X:%02X:%02X\n", pi,
-                               mac_addr.addr_bytes[0], mac_addr.addr_bytes[1],
-                               mac_addr.addr_bytes[2], mac_addr.addr_bytes[3],
-                               mac_addr.addr_bytes[4], mac_addr.addr_bytes[5]);
+                               port->eth_addr.addr_bytes[0],
+                               port->eth_addr.addr_bytes[1],
+                               port->eth_addr.addr_bytes[2],
+                               port->eth_addr.addr_bytes[3],
+                               port->eth_addr.addr_bytes[4],
+                               port->eth_addr.addr_bytes[5]);
 
                /* at least one port started, need checking link status */
                need_check_link_status = 1;