[dpdk-dev] [PATCH 0/4] Link Bonding Library
From: Declan Doherty Initial release of Link Bonding Library (lib/librte_bond) with support for bonding modes : 0 - Round Robin 1 - Active Backup 2 - Balance l2 / l23 / l34 3 - Broadcast patches split: 1 - library + makefile changes 2 - Unit test suite, including code to generate packet bursts for testing rx and tx functionality of bonded device and a virtual/stubbed out ethdev for use as slave ethdev in testing 3 - Link bonding integration into testpmd, including : - Includes the ability to create new bonded devices. - Add /remove bonding slave devices. - Interogate bonded device stats/configuration - Change bonding modes and select balance transmit polices 4 - Add Link Bonding Library to Doxygen app/test-pmd/cmdline.c| 550 + app/test-pmd/parameters.c |4 +- app/test-pmd/testpmd.c| 28 +- app/test-pmd/testpmd.h|2 + app/test/Makefile |3 + app/test/commands.c |3 + app/test/packet_burst_generator.c | 276 +++ app/test/packet_burst_generator.h | 85 + app/test/test.h |1 + app/test/test_link_bonding.c | 4007 + app/test/virtual_pmd.c| 580 ++ app/test/virtual_pmd.h| 74 + config/common_bsdapp |5 + config/common_linuxapp|5 + doc/doxy-api-index.md |1 + doc/doxy-api.conf |1 + lib/Makefile |1 + lib/librte_bond/Makefile | 28 + lib/librte_bond/rte_bond.c| 1679 lib/librte_bond/rte_bond.h| 228 +++ mk/rte.app.mk |5 + 21 files changed, 7564 insertions(+), 2 deletions(-) create mode 100644 app/test/packet_burst_generator.c create mode 100644 app/test/packet_burst_generator.h create mode 100644 app/test/test_link_bonding.c create mode 100644 app/test/virtual_pmd.c create mode 100644 app/test/virtual_pmd.h create mode 100644 lib/librte_bond/Makefile create mode 100644 lib/librte_bond/rte_bond.c create mode 100644 lib/librte_bond/rte_bond.h -- 1.8.5.3
[dpdk-dev] [PATCH 0/4] Link Bonding Library
On Wed, May 28, 2014 at 04:32:00PM +0100, declan.doherty at intel.com wrote: > From: Declan Doherty > > Initial release of Link Bonding Library (lib/librte_bond) with support for > bonding modes : > 0 - Round Robin > 1 - Active Backup > 2 - Balance l2 / l23 / l34 > 3 - Broadcast > Why make this a separate library? That requires exposure of yet another API to applications. Instead, why not write a PMD that can enslave other PMD's and treat them all as a single interface? That way this all works with the existing API. Neil > patches split: > 1 - library + makefile changes > 2 - Unit test suite, including code to generate packet bursts for > testing rx and tx functionality of bonded device and a > virtual/stubbed out ethdev for use as slave ethdev in testing > 3 - Link bonding integration into testpmd, including : > - Includes the ability to create new bonded devices. > - Add /remove bonding slave devices. > - Interogate bonded device stats/configuration > - Change bonding modes and select balance transmit polices > 4 - Add Link Bonding Library to Doxygen > > > app/test-pmd/cmdline.c| 550 + > app/test-pmd/parameters.c |4 +- > app/test-pmd/testpmd.c| 28 +- > app/test-pmd/testpmd.h|2 + > app/test/Makefile |3 + > app/test/commands.c |3 + > app/test/packet_burst_generator.c | 276 +++ > app/test/packet_burst_generator.h | 85 + > app/test/test.h |1 + > app/test/test_link_bonding.c | 4007 > + > app/test/virtual_pmd.c| 580 ++ > app/test/virtual_pmd.h| 74 + > config/common_bsdapp |5 + > config/common_linuxapp|5 + > doc/doxy-api-index.md |1 + > doc/doxy-api.conf |1 + > lib/Makefile |1 + > lib/librte_bond/Makefile | 28 + > lib/librte_bond/rte_bond.c| 1679 > lib/librte_bond/rte_bond.h| 228 +++ > mk/rte.app.mk |5 + > 21 files changed, 7564 insertions(+), 2 deletions(-) > create mode 100644 app/test/packet_burst_generator.c > create mode 100644 app/test/packet_burst_generator.h > create mode 100644 app/test/test_link_bonding.c > create mode 100644 app/test/virtual_pmd.c > create mode 100644 app/test/virtual_pmd.h > create mode 100644 lib/librte_bond/Makefile > create mode 100644 lib/librte_bond/rte_bond.c > create mode 100644 lib/librte_bond/rte_bond.h > > -- > 1.8.5.3 > >
[dpdk-dev] [PATCH 0/4] Link Bonding Library
Hi declan, Do you send out Patch 1,2, 3 for link bonding? Only see patch 0 and 4. Thanks Waterman -Original Message- From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of declan.dohe...@intel.com Sent: Wednesday, May 28, 2014 11:32 PM To: dev at dpdk.org; dev at dpdk.org Subject: [dpdk-dev] [PATCH 0/4] Link Bonding Library From: Declan Doherty Initial release of Link Bonding Library (lib/librte_bond) with support for bonding modes : 0 - Round Robin 1 - Active Backup 2 - Balance l2 / l23 / l34 3 - Broadcast patches split: 1 - library + makefile changes 2 - Unit test suite, including code to generate packet bursts for testing rx and tx functionality of bonded device and a virtual/stubbed out ethdev for use as slave ethdev in testing 3 - Link bonding integration into testpmd, including : - Includes the ability to create new bonded devices. - Add /remove bonding slave devices. - Interogate bonded device stats/configuration - Change bonding modes and select balance transmit polices 4 - Add Link Bonding Library to Doxygen app/test-pmd/cmdline.c| 550 + app/test-pmd/parameters.c |4 +- app/test-pmd/testpmd.c| 28 +- app/test-pmd/testpmd.h|2 + app/test/Makefile |3 + app/test/commands.c |3 + app/test/packet_burst_generator.c | 276 +++ app/test/packet_burst_generator.h | 85 + app/test/test.h |1 + app/test/test_link_bonding.c | 4007 + app/test/virtual_pmd.c| 580 ++ app/test/virtual_pmd.h| 74 + config/common_bsdapp |5 + config/common_linuxapp|5 + doc/doxy-api-index.md |1 + doc/doxy-api.conf |1 + lib/Makefile |1 + lib/librte_bond/Makefile | 28 + lib/librte_bond/rte_bond.c| 1679 lib/librte_bond/rte_bond.h| 228 +++ mk/rte.app.mk |5 + 21 files changed, 7564 insertions(+), 2 deletions(-) create mode 100644 app/test/packet_burst_generator.c create mode 100644 app/test/packet_burst_generator.h create mode 100644 app/test/test_link_bonding.c create mode 100644 app/test/virtual_pmd.c create mode 100644 app/test/virtual_pmd.h create mode 100644 lib/librte_bond/Makefile create mode 100644 lib/librte_bond/rte_bond.c create mode 100644 lib/librte_bond/rte_bond.h -- 1.8.5.3
[dpdk-dev] [PATCH 0/4] Link Bonding Library
-Original Message- > From: Neil Horman [mailto:nhorman at tuxdriver.com] > Sent: Wednesday, May 28, 2014 6:49 PM > To: Doherty, Declan > Cc: dev at dpdk.org > Subject: Re: [dpdk-dev] [PATCH 0/4] Link Bonding Library > > On Wed, May 28, 2014 at 04:32:00PM +0100, declan.doherty at intel.com wrote: > > From: Declan Doherty > > > > Initial release of Link Bonding Library (lib/librte_bond) with support > > for bonding modes : > > 0 - Round Robin > > 1 - Active Backup > > 2 - Balance l2 / l23 / l34 > > 3 - Broadcast > > > Why make this a separate library? That requires exposure of yet another API > to applications. Instead, why > not write a PMD that can enslave other PMD's > and treat them all as a single interface? That way this all > > works with > the existing API. > > Neil Hi Neil, the link bonding device is essentially a software PMD, and as such supports all the standard PMD APIs, the only new APIs which the link bonding library introduces are for the control operations of the bonded device which are currently unsupported by the standard PMD API. Operations such as creating, adding/removing slaves, and configuring the modes of operation of the device have no analogous APIs in the current PMD API and required new ones to be created . Declan -- Intel Shannon Limited Registered in Ireland Registered Office: Collinstown Industrial Park, Leixlip, County Kildare Registered Number: 308263 Business address: Dromore House, East Park, Shannon, Co. Clare This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.
[dpdk-dev] [PATCH 0/4] Link Bonding Library
> From: Cao, Waterman > Sent: Thursday, May 29, 2014 4:23 AM > To: Doherty, Declan; dev at dpdk.org; dev at dpdk.org > Cc: Cao, Waterman > Subject: RE: [dpdk-dev] [PATCH 0/4] Link Bonding Library > > Hi declan, > > Do you send out Patch 1,2, 3 for link bonding? > Only see patch 0 and 4. > > Thanks > Waterman Hi Waterman, As far as I can see all the patches have been submitted, and are visible on the mailing list archives. Declan -- Intel Shannon Limited Registered in Ireland Registered Office: Collinstown Industrial Park, Leixlip, County Kildare Registered Number: 308263 Business address: Dromore House, East Park, Shannon, Co. Clare This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.
[dpdk-dev] [PATCH 0/4] Link Bonding Library
On Thu, May 29, 2014 at 10:33:00AM +, Doherty, Declan wrote: > -Original Message- > > From: Neil Horman [mailto:nhorman at tuxdriver.com] > > Sent: Wednesday, May 28, 2014 6:49 PM > > To: Doherty, Declan > > Cc: dev at dpdk.org > > Subject: Re: [dpdk-dev] [PATCH 0/4] Link Bonding Library > > > > On Wed, May 28, 2014 at 04:32:00PM +0100, declan.doherty at intel.com wrote: > > > From: Declan Doherty > > > > > > Initial release of Link Bonding Library (lib/librte_bond) with support > > > for bonding modes : > > > 0 - Round Robin > > > 1 - Active Backup > > > 2 - Balance l2 / l23 / l34 > > > 3 - Broadcast > > > > > Why make this a separate library? That requires exposure of yet another > > API to applications. Instead, why > not write a PMD that can enslave other > > PMD's and treat them all as a single interface? That way this all > > > > works with the existing API. > > > > Neil > > Hi Neil, > the link bonding device is essentially a software PMD, and as such supports > all the standard PMD APIs, the only new APIs which the link bonding library > introduces are for the control operations of the bonded device which are > currently unsupported by the standard PMD API. Operations such as creating, > adding/removing slaves, and configuring the modes of operation of the device > have no analogous APIs in the current PMD API and required new ones to be > created . Thats really only true in spirit, in the sense that this library transmits and receives frames like a PMD does. In practice it doesn't work and isn't architected the same way. You don't register the driver using the same method as the other PMDs, which means that using --vdev on the command line wont work for this type of device. It also implies that applications have to be made specifically aware of the fact that they are using a bonded interface (i.e. they need to call the bonding setup routines to create the bond). I would recommend: 1) Register the pmd using the PMD_DRIVER_REGISTER macro, like other PMD's 2) Use the kvargs library to support configuration via the --vdev command line option, so bonds can be created administratively, rather than just programatically 3) Separate the command api from the PMD functionality into separate libraries (use control mbufs to communicate configuration changes to the pmd). This will allow users to dynamically load the pmd functionality (without compile or run time linking requirements), and then optionally use the programatic interface (or not if they want to save memory) Regards Neil > > Declan > -- > Intel Shannon Limited > Registered in Ireland > Registered Office: Collinstown Industrial Park, Leixlip, County Kildare > Registered Number: 308263 > Business address: Dromore House, East Park, Shannon, Co. Clare > > This e-mail and any attachments may contain confidential material for the > sole use of the intended recipient(s). Any review or distribution by others > is strictly prohibited. If you are not the intended recipient, please contact > the sender and delete all copies. > > >