From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH v7 1/1] bond: add mode 4 support v7 Date: Thu, 27 Nov 2014 19:09:20 +0100 Message-ID: <1503684.yXJvT1DJi7@xps13> References: <1417111270-12792-1-git-send-email-michalx.k.jastrzebski@intel.com> <1417111270-12792-2-git-send-email-michalx.k.jastrzebski@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev-VfR2kkLFssw@public.gmane.org To: Michal Jastrzebski Return-path: In-Reply-To: <1417111270-12792-2-git-send-email-michalx.k.jastrzebski-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" 2014-11-27 18:01, Michal Jastrzebski: > From: Pawel Wodkowski > > This patch set add support for dynamic link aggregation (mode 4) to the > librte_pmd_bond library. This mode provides auto negotiation/configuration > of peers and well as link status changes monitoring using out of band > LACP (link aggregation control protocol) messages. For further details of > LACP specification see the IEEE 802.3ad/802.1AX standards. It is also > described here > https://www.kernel.org/doc/Documentation/networking/bonding.txt. > > In this implementation we have an array of mode 4 settings for each slave. > There is also assumption that for every port is one aggregator (it might > be unused if better is found). > > Difference in this implementation vs Linux implementation: > - this implementation it is not directly based on state machines but current > state is calculated from actor and partner states (and other things too). > > Some implementation details: > - during rx burst every packet Is checked if this is LACP or marker packet. > If it is LACP frame it is passed to mode 4 logic using slaves rx ring and > removed from rx buffer before it is returned > - in tx burst, packets from mode 4 (if any) are injected into each slave. > - there is a timer running in background to process/produce mode 4 > frames form rx/to tx functions. > > Some requirements for this mode: > - for LACP mode to work rx and tx burst functions must be invoked > at least in 100ms intervals (testpmd modified to satisfy this requirement) > - provided buffer to rx burst should be at least 2x slave count size. This is > not needed but might increase performance especially during initial > handshake. > > Signed-off-by: Pawel Wodkowski I guess it is acked by Declan? -- Thomas