From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 51AB01288 for ; Tue, 2 Jun 2015 12:52:32 +0200 (CEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga101.jf.intel.com with ESMTP; 02 Jun 2015 03:52:29 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,539,1427785200"; d="scan'208";a="501463120" Received: from irsmsx101.ger.corp.intel.com ([163.33.3.153]) by FMSMGA003.fm.intel.com with ESMTP; 02 Jun 2015 03:52:28 -0700 Received: from irsmsx105.ger.corp.intel.com ([169.254.7.73]) by IRSMSX101.ger.corp.intel.com ([169.254.1.217]) with mapi id 14.03.0224.002; Tue, 2 Jun 2015 11:52:27 +0100 From: "Ananyev, Konstantin" To: "Wang, Liang-min" , "dev@dpdk.org" Thread-Topic: [PATCH 1/2] ethdev: add api to set default mac address Thread-Index: AQHQmkVzlNttpZWkD0O/3bvTIYNUrp2ZC5Xw Date: Tue, 2 Jun 2015 10:52:28 +0000 Message-ID: <2601191342CEEE43887BDE71AB977258214345AB@irsmsx105.ger.corp.intel.com> References: <1432927612-12244-1-git-send-email-liang-min.wang@intel.com> <1432927612-12244-2-git-send-email-liang-min.wang@intel.com> In-Reply-To: <1432927612-12244-2-git-send-email-liang-min.wang@intel.com> Accept-Language: en-IE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [163.33.239.182] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH 1/2] ethdev: add api to set default mac address X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2015 10:52:35 -0000 > -----Original Message----- > From: Wang, Liang-min > Sent: Friday, May 29, 2015 8:27 PM > To: dev@dpdk.org > Cc: Richardson, Bruce; Ananyev, Konstantin; dharton@cisco.com; agh@cisco.= com; Wang, Liang-min > Subject: [PATCH 1/2] ethdev: add api to set default mac address >=20 > add a new api: rte_eth_dev_default_mac_addr_set to > support changing default mac address of a NIC >=20 > Signed-off-by: Liang-Min Larry Wang > --- > lib/librte_ether/rte_ethdev.c | 16 ++++++++++++++++ > lib/librte_ether/rte_ethdev.h | 14 ++++++++++++++ > lib/librte_ether/rte_ether_version.map | 1 + > 3 files changed, 31 insertions(+) >=20 > diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.= c > index 024fe8b..96ee00e 100644 > --- a/lib/librte_ether/rte_ethdev.c > +++ b/lib/librte_ether/rte_ethdev.c > @@ -2752,6 +2752,22 @@ rte_eth_dev_mac_addr_remove(uint8_t port_id, struc= t ether_addr *addr) > } >=20 > int > +rte_eth_dev_default_mac_addr_set(uint8_t port_id, struct ether_addr *add= r) > +{ > + struct rte_eth_dev *dev; > + > + if (!rte_eth_dev_is_valid_port(port_id)) { > + PMD_DEBUG_TRACE("Invalid port_id=3D%d\n", port_id); > + return -ENODEV; > + } > + > + dev =3D &rte_eth_devices[port_id]; > + FUNC_PTR_OR_ERR_RET(*dev->dev_ops->mac_addr_set, -ENOTSUP); > + > + return (*dev->dev_ops->mac_addr_set)(dev, addr); > +} As I can see mac_addr_set() is implemented now only for virtio. Which means that for all Intel HW your new rte_eth_dev_default_mac_addr_set= () would not work right now? Probably rte_eth_dev_default_mac_addr_set() should combine both approaches: If mac_addr_set() is implemented by dev, then use it, otherwise try to use = addr_remove()/addr_add() (as your first version did)? Konstantin =20 > + > +int > rte_eth_dev_set_vf_rxmode(uint8_t port_id, uint16_t vf, > uint16_t rx_mode, uint8_t on) > { > diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.= h > index 16dbe00..5f07e0d 100644 > --- a/lib/librte_ether/rte_ethdev.h > +++ b/lib/librte_ether/rte_ethdev.h > @@ -2982,6 +2982,20 @@ int rte_eth_dev_mac_addr_add(uint8_t port, struct = ether_addr *mac_addr, > int rte_eth_dev_mac_addr_remove(uint8_t port, struct ether_addr *mac_add= r); >=20 > /** > + * Set the default MAC address. > + * > + * @param port > + * The port identifier of the Ethernet device. > + * @param mac_addr > + * New default MAC address. > + * @return > + * - (0) if successful, or *mac_addr* didn't exist. > + * - (-ENOTSUP) if hardware doesn't support. > + * - (-ENODEV) if *port* invalid. > + */ > +int rte_eth_dev_default_mac_addr_set(uint8_t port, struct ether_addr *ma= c_addr); > + > +/** > * Update Redirection Table(RETA) of Receive Side Scaling of Ethernet de= vice. > * > * @param port > diff --git a/lib/librte_ether/rte_ether_version.map b/lib/librte_ether/rt= e_ether_version.map > index a2d25a6..2dbbaa7 100644 > --- a/lib/librte_ether/rte_ether_version.map > +++ b/lib/librte_ether/rte_ether_version.map > @@ -102,6 +102,7 @@ DPDK_2.0 { > rte_eth_tx_queue_setup; > rte_eth_xstats_get; > rte_eth_xstats_reset; > + rte_eth_dev_default_mac_addr_set; >=20 > local: *; > }; > -- > 2.1.4