From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Hemminger Subject: Re: [PATCH v2] net/bonding: add add/remove mac addrs Date: Mon, 18 Jun 2018 12:00:19 -0700 Message-ID: <20180618120019.66b3bfbb@xeon-e3> References: <20180618122720.5B3F51559@dpdk.org> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: Chas Williams , "dev@dpdk.org" To: Alex Kiselev Return-path: Received: from mail-pg0-f68.google.com (mail-pg0-f68.google.com [74.125.83.68]) by dpdk.org (Postfix) with ESMTP id E1C241559 for ; Mon, 18 Jun 2018 21:00:22 +0200 (CEST) Received: by mail-pg0-f68.google.com with SMTP id l65-v6so7949414pgl.8 for ; Mon, 18 Jun 2018 12:00:22 -0700 (PDT) In-Reply-To: <20180618122720.5B3F51559@dpdk.org> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Mon, 18 Jun 2018 15:27:16 +0300 Alex Kiselev wrote: > +/* > + * Remove additional MAC addresses from the slave > + */ > +int > +slave_remove_mac_addresses(struct rte_eth_dev *bonded_eth_dev, > + uint16_t slave_port_id) > +{ > + int i, ret; > + struct ether_addr *mac_addr; > + > + /* add additional MACs to the slave */ > + for (i = 1; i < BOND_MAX_MAC_ADDRS; i++) { > + mac_addr = &bonded_eth_dev->data->mac_addrs[i]; > + if (is_same_ether_addr(mac_addr, &null_mac_addr)) > + break; > + > + ret = rte_eth_dev_mac_addr_remove(slave_port_id, mac_addr); > + if (ret < 0) > + return ret; > + } Not sure this is the best semantic if remove fails on one of many slaves. Perhaps it should always remove it from all slaves. Or maybe a first pass to see if the address exists, then a no-fail removal pass.