From mboxrd@z Thu Jan 1 00:00:00 1970 From: Panu Matilainen Subject: Re: [PATCH v2 4/6] bond mode 4: allow external state machine Date: Mon, 22 Feb 2016 15:03:05 +0200 Message-ID: <56CB0709.6010407@redhat.com> References: <8CEF83825BEC744B83065625E567D7C219FB2C51@IRSMSX108.ger.corp.intel.com> <1455909473-13539-1-git-send-email-ehkinzie@gmail.com> <1455909473-13539-5-git-send-email-ehkinzie@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Cc: Eric Kinzie To: Eric Kinzie , dev@dpdk.org Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 56B0756B7 for ; Mon, 22 Feb 2016 14:03:08 +0100 (CET) In-Reply-To: <1455909473-13539-5-git-send-email-ehkinzie@gmail.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 02/19/2016 09:17 PM, Eric Kinzie wrote: > From: Eric Kinzie > > Provide functions to allow an external 802.3ad state machine to transmit > and recieve LACPDUs and to set the collection/distribution flags on > slave interfaces. > > Signed-off-by: Eric Kinzie > Signed-off-by: Stephen Hemminger > Acked-by: Declan Doherty [...] > diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.h b/drivers/net/bonding/rte_eth_bond_8023ad.h > index ebd0e93..8cfa3d3 100644 > --- a/drivers/net/bonding/rte_eth_bond_8023ad.h > +++ b/drivers/net/bonding/rte_eth_bond_8023ad.h > @@ -64,6 +64,8 @@ extern "C" { > #define MARKER_TLV_TYPE_INFO 0x01 > #define MARKER_TLV_TYPE_RESP 0x02 > > +typedef void (*rte_eth_bond_8023ad_ext_slowrx_fn)(uint8_t slave_id, struct rte_mbuf *lacp_pkt); > + > enum rte_bond_8023ad_selection { > UNSELECTED, > STANDBY, > @@ -157,6 +159,7 @@ struct rte_eth_bond_8023ad_conf { > uint32_t tx_period_ms; > uint32_t rx_marker_period_ms; > uint32_t update_timeout_ms; > + rte_eth_bond_8023ad_ext_slowrx_fn slowrx_cb; > }; This still is a likely an ABI break, previously discussed around here: http://dpdk.org/ml/archives/dev/2015-November/027321.html It might not be embedded anywhere in DPDK codebase, but there's no telling what others might have done with it (have an array of them, embed in other structs etc). Also ultimately ABI compatibility goes both ways: when the library soname does not change then an application is free to assume both downgrading and upgrading are safe. In this case, upgrading *might* be okay, downgrading certainly is not. So by that measure it definitely is an ABI break. [...] > diff --git a/drivers/net/bonding/rte_eth_bond_version.map b/drivers/net/bonding/rte_eth_bond_version.map > index 22bd920..33d73ff 100644 > --- a/drivers/net/bonding/rte_eth_bond_version.map > +++ b/drivers/net/bonding/rte_eth_bond_version.map > @@ -27,3 +27,9 @@ DPDK_2.1 { > rte_eth_bond_free; > > } DPDK_2.0; > + > +DPDK_2.2 { > + rte_eth_bond_8023ad_ext_collect; > + rte_eth_bond_8023ad_ext_distrib; > + rte_eth_bond_8023ad_ext_slowtx; > +} DPDK_2.1; > These symbols are not part of DPDK 2.2, the version here is wrong. Technically it would not actually matter much but better not to confuse things unnecessarily. - Panu -