From mboxrd@z Thu Jan 1 00:00:00 1970 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) Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (Postfix) with ESMTPS id 7A7907EBAD; Mon, 22 Feb 2016 13:03:07 +0000 (UTC) Received: from sopuli.koti.laiskiainen.org (vpn1-6-141.ams2.redhat.com [10.36.6.141]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u1MD35c1014952; Mon, 22 Feb 2016 08:03:06 -0500 To: Eric Kinzie , dev@dpdk.org 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> From: Panu Matilainen Message-ID: <56CB0709.6010407@redhat.com> Date: Mon, 22 Feb 2016 15:03:05 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: <1455909473-13539-5-git-send-email-ehkinzie@gmail.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 Cc: Eric Kinzie Subject: Re: [dpdk-dev] [PATCH v2 4/6] bond mode 4: allow external state machine 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: Mon, 22 Feb 2016 13:03:08 -0000 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 -