Hi Ben,this is code change: https://gerrit.fd.io/r/c/vpp/+/46828/5. please
help to review it, I have already verified it locally and it works fine.

Thanks & Regards
Amelia

Benoit Ganne (bganne) via lists.fd.io <[email protected]>
于2026年9月11日周五 15:15写道:

> Hi Amelia,
>
> thank you for this report. Can you post a patch in gerrit with your
> proposal? See https://s3-docs.fd.io/vpp/26.10/contributing/gitreview.html
> Feel free to report here with the link once done.
>
> Best
> ben
>
> ________________________________________
> From: [email protected] <[email protected]> on behalf of amelia yin
> via lists.fd.io <[email protected]>
> Sent: Friday, September 11, 2026 4:59
> To: [email protected]
> Subject: [vpp-dev] [VPP-2606]The MAC address setting for Bond(mode:xor)
> members has failed.
>
> Hi Team,
>
> I encountered a problem where a member of the bond failed to set the MAC
> address in VPP26.06.
> I configured the bond interface with the mode set to XOR,
> The member ports of BondEthernet0 are VirtualFunctionEthernet4b/0/4 and
> VirtualFunctionEthernet4b/1/2 .
> After deleting the pod and the first deployment of the pod, the MAC
> addresses of the bond interface and the two member interfaces were
> consistent.
> However, when I killed the container and restarted the pod, I found that
> the MAC address setting for the second member interface failed,
> log print: vpp[11]: dpdk: ETHDEV: New default address for port 1 was
> already in the address list. Please remove it first.
>
> I reviewed the DPDK code and found this patch:
> https://mails.dpdk.org/archives/dev/2023-February/260884.html?utm_source=chatgpt.com
> .
> It requires the caller need to ensure that the new default address is
> removed from the rest of the list if the address was already in the list.
> Therefore, dpdk_set_mac_address should be adapted to handle the case where
> the return value of rte_eth_dev_default_mac_addr_set is -EEXIST.
> As follows
>
> static clib_error_t *
> dpdk_set_mac_address (vnet_hw_interface_t * hi,
>      const u8 * old_address, const u8 * address)
> {
>   int error;
>   dpdk_main_t *dm = &dpdk_main;
>   dpdk_device_t *xd = vec_elt_at_index (dm->devices, hi->dev_instance);
>
>   error = rte_eth_dev_default_mac_addr_set (xd->port_id, (void *) address);
>
>   /*
>    * rte_eth_dev_default_mac_addr_set() refuses to set a
>    * default MAC that already exists in the port's MAC address list and
>    * returns -EEXIST ("New default address for port %u was already in the
>    * address list. Please remove it first.").
>    * Follow the API's own guidance: remove the duplicate entry first, then
>    * retry setting it as the default MAC.
>    */
>   if (error == -EEXIST)
>     {
>       int rem_rv = rte_eth_dev_mac_addr_remove (xd->port_id, (void *)
> address);
>       if (rem_rv == 0)
>         error = rte_eth_dev_default_mac_addr_set (xd->port_id, (void *)
> address);
>     }
>
>   if (error)
>     {
>       return clib_error_return (0, "mac address set failed: %U",
> format_dpdk_rte_err, error);
>     }
>   else
>     {
>       vec_reset_length (xd->default_mac_address);
>       vec_add (xd->default_mac_address, address, sizeof (mac_address_t));
>       return NULL;
>     }
> }
>
> vpp# show hardware-interfaces
>                   Name                Idx   Link  Hardware
>     BondEthernet0                      4     up   BondEthernet0
>       Link speed: unknown
>       Ethernet address 6a:27:af:45:00:37
>     Ethernet2                          3     up   Ethernet2
>       Link speed: 10.000000 Gbps
>       RX Queues:
>         queue thread         mode
>         0     vpp_wk_0 (1)   polling
>       TX Queues:
>         TX Hash: [name: hash-eth-l34 priority: 50 description: Hash
> ethernet L34 headers]
>         queue shared thread(s)
>         0     yes    0-1
>       Ethernet address 20:00:20:00:20:00
>       Nwfsock PMD
>         carrier up full duplex max-frame-size 0
>         flags: admin-up maybe-multiseg int-unmaskable
>         Devargs:
> iface=/tmp/nwfsock0,rx_appq_shared_file=/tmp/appq_rx_shared,nb_rxq=1,nb_txq=1,nb_rx_elems=8192,nb_tx_elems=8192,nb_paps=4,interrupt_mode=0
>         rx: queues 1 (max 1), desc 4096 (min 0 max 65535 align 1)
>         tx: queues 1 (max 1), desc 4096 (min 0 max 65535 align 1)
>         max rx packet len: -1
>         promiscuous: unicast off all-multicast off
>         vlan offload: strip off filter off qinq off
>         rx offload avail:  scatter
>         rx offload active: scatter
>         tx offload avail:  multi-segs
>         tx offload active: multi-segs
>         rss avail:         none
>         rss active:        none
>         tx burst function: nwfsock_tx
>         rx burst function: nwfsock_rx
>
>         tx frames ok                                         999
>         rx frames ok                                        1088
>         extended stats:
>           rx_good_packets                                   1088
>           tx_good_packets                                    999
>     VirtualFunctionEthernet4b/0/4      1     up
>  VirtualFunctionEthernet4b/0/4
>       Link speed: 100.000000 Gbps
>       RX Queues:
>         queue thread         mode
>         0     vpp_wk_0 (1)   polling
>       TX Queues:
>         TX Hash: [name: hash-eth-l34 priority: 50 description: Hash
> ethernet L34 headers]
>         queue shared thread(s)
>         0     yes    0-1
>       Ethernet address 6a:27:af:45:00:37
>       Mellanox ConnectX-4/5/6 Family
>         carrier up full duplex max-frame-size 9022
>         flags: admin-up maybe-multiseg tx-offload rx-ip4-cksum
>         Devargs:
>         rx: queues 1 (max 1024), desc 4096 (min 0 max 32768 align 1)
>         tx: queues 1 (max 1024), desc 4096 (min 0 max 32768 align 1)
>         pci: device 15b3:101e subsystem 15b3:0058 address 0000:4b:00.04
> numa 0
>         switch info: name 0000:4b:00.4 domain id 0 port id 65535
>         max rx packet len: 10000
>         promiscuous: unicast off all-multicast on
>         vlan offload: strip off filter off qinq off
>         rx offload avail:  vlan-strip ipv4-cksum udp-cksum tcp-cksum
> tcp-lro
>                            vlan-filter scatter timestamp rss-hash
> buffer-split
>         rx offload active: ipv4-cksum scatter
>         tx offload avail:  vlan-insert ipv4-cksum udp-cksum tcp-cksum
> tcp-tso
>                            outer-ipv4-cksum vxlan-tnl-tso gre-tnl-tso
> geneve-tnl-tso
>                            multi-segs mbuf-fast-free
>         tx offload active: ipv4-cksum udp-cksum tcp-cksum outer-ipv4-cksum
> multi-segs
>         rss avail:         ipv4-frag ipv4-tcp ipv4-udp ipv4-other ipv4
> ipv6-tcp-ex
>                            ipv6-udp-ex ipv6-frag ipv6-tcp ipv6-udp
> ipv6-other
>                            ipv6-ex ipv6 esp l4-dst-only l4-src-only
> l3-dst-only
>                            l3-src-only
>         rss active:        none
>         tx burst mode: Enhanced MPW + MULTI + TSO + SWP  + CSUM + METADATA
>         tx burst function: mlx5_tx_burst_mtsc_empw
>         rx burst mode: Scalar
>         rx burst function: mlx5_rx_burst
>
>         tx frames ok                                         837
>         tx bytes ok                                        84140
>         rx frames ok                                      850664
>         rx bytes ok                                     60513528
>         extended stats:
>           rx_good_packets                                 850664
>           tx_good_packets                                    837
>           rx_good_bytes                                 60513528
>           tx_good_bytes                                    84140
>           rx_q0_packets                                   850664
>           rx_q0_bytes                                   60513528
>           tx_q0_packets                                      837
>           tx_q0_bytes                                      84140
>           rx_unicast_bytes                                655464
>           rx_multicast_bytes                            30477228
>           rx_broadcast_bytes                            32832256
>           rx_unicast_packets                                7039
>           rx_multicast_packets                            331382
>           rx_broadcast_packets                            513004
>           tx_unicast_bytes                                 49732
>           tx_multicast_bytes                                  70
>           tx_broadcast_bytes                               44880
>           tx_unicast_packets                                  89
>           tx_multicast_packets                                 1
>           tx_broadcast_packets                               748
>     VirtualFunctionEthernet4b/1/2      2     up
>  VirtualFunctionEthernet4b/1/2
>       Link speed: 100.000000 Gbps
>       RX Queues:
>         queue thread         mode
>         0     vpp_wk_0 (1)   polling
>       TX Queues:
>         TX Hash: [name: hash-eth-l34 priority: 50 description: Hash
> ethernet L34 headers]
>         queue shared thread(s)
>         0     yes    0-1
>       Ethernet address e2:9e:af:c2:11:dd
>       Mellanox ConnectX-4/5/6 Family
>         carrier up full duplex max-frame-size 9022
>         flags: admin-up maybe-multiseg tx-offload rx-ip4-cksum
>         Devargs:
>         rx: queues 1 (max 1024), desc 4096 (min 0 max 32768 align 1)
>         tx: queues 1 (max 1024), desc 4096 (min 0 max 32768 align 1)
>         pci: device 15b3:101e subsystem 15b3:0058 address 0000:4b:01.02
> numa 0
>         switch info: name 0000:4b:01.2 domain id 1 port id 65535
>         max rx packet len: 10000
>         promiscuous: unicast off all-multicast on
>         vlan offload: strip off filter off qinq off
>         rx offload avail:  vlan-strip ipv4-cksum udp-cksum tcp-cksum
> tcp-lro
>                            vlan-filter scatter timestamp rss-hash
> buffer-split
>         rx offload active: ipv4-cksum scatter
>         tx offload avail:  vlan-insert ipv4-cksum udp-cksum tcp-cksum
> tcp-tso
>                            outer-ipv4-cksum vxlan-tnl-tso gre-tnl-tso
> geneve-tnl-tso
>                            multi-segs mbuf-fast-free
>         tx offload active: ipv4-cksum udp-cksum tcp-cksum outer-ipv4-cksum
> multi-segs
>         rss avail:         ipv4-frag ipv4-tcp ipv4-udp ipv4-other ipv4
> ipv6-tcp-ex
>                            ipv6-udp-ex ipv6-frag ipv6-tcp ipv6-udp
> ipv6-other
>                            ipv6-ex ipv6 esp l4-dst-only l4-src-only
> l3-dst-only
>                            l3-src-only
>         rss active:        none
>         tx burst mode: Enhanced MPW + MULTI + TSO + SWP  + CSUM + METADATA
>         tx burst function: mlx5_tx_burst_mtsc_empw
>         rx burst mode: Scalar
>         rx burst function: mlx5_rx_burst
>
>         tx frames ok                                        6303
>         tx bytes ok                                       464122
>         rx frames ok                                      844343
>         rx bytes ok                                     59928887
>         extended stats:
>           rx_good_packets                                 844343
>           tx_good_packets                                   6303
>           rx_good_bytes                                 59928887
>           tx_good_bytes                                   464122
>           rx_q0_packets                                   844343
>           rx_q0_bytes                                   59928887
>           tx_q0_packets                                     6303
>           tx_q0_bytes                                     464122
>           rx_unicast_bytes                                191322
>           rx_multicast_bytes                            30476401
>           rx_broadcast_bytes                            32831232
>           rx_unicast_packets                                1492
>           rx_multicast_packets                            331376
>           rx_broadcast_packets                            512988
>           tx_unicast_bytes                                464122
>           tx_multicast_bytes                                  70
>           tx_unicast_packets                                6303
>           tx_multicast_packets                                 1
>
> Thanks & Regards
> Amelia
>
> 
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#27197): https://lists.fd.io/g/vpp-dev/message/27197
Mute This Topic: https://lists.fd.io/mt/121193161/21656
Group Owner: [email protected]
Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/14379924/21656/631435203/xyzzy 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to