On 08/27/2016 06:26 PM, Pankaj Chauhan wrote: > Introduce generic vswitch framework in vhost-switch application. Following > are the goals/aim of the framework: > > 1. Make vhost-switch application generic so that it can support devices > which don't support VMDQ. > > 2. Provide a framework so that any switching logic (generic in software or > vendor specefic like VMDQ) can work with vhost-switch. Thus making > vhost-switch > applicable for multiple platforms of different vendors. > > 3. Make vhost-switch and switching logic scalable in terms of ports or > policies > of doing rx/tx across the ports added to switch. > > The patchset includes three patches: > 1. "Add vswitch(generic switch) framework": This adds the generic framework, > it provides > the APIs/accessor functions which the vhos-switch application uses without > knowing > anything about underlying switching logic. The framework introduces the > concept of > vswitch_device, vswitch_port, and vswitch_ops. The idea is that vhost-switch > will > sit over the framework and different switching logics will plug into the > framework > underneath it. Please refer the patch description for more details of > devices, ports > and ops. > > 2. "Add vswitch command line options": Adds two new command line options for > vswitch. > 3. "Add VMDQ vswitch device": This patch basically delinks existing > vhost/main.[c,h] > from VMDQ and adds VMDQ as a vswitch device implmentation which plugs into > the vswitch > framework. Any other vendor logic for switching can also be plugged in same > way. > > Thanks to Tan Jianfeng, Yuanhan Liu, Maxime coquelin for early discussions > and inputs > on this concept. > > ** Caution and disclaimer ** > 1. The patch set is not tested, it just compiles fine: I just finished the > coding and > sending the RFC patch so that it can be reviewed early. In parallel i will > start testing it > and therefore please forgive if you find some code which you think will crash > shamelessly > (i know it will crash :), it is not tested). So please review the concept, > meanwhile > i will test and send the next version soon. > > 2. This patchset is first step towards using vhost-switch on platforms other > than > intel and making it generic. It is no way complete, so i expect that we > discuss/develop > toghether towards the goals i mentioned in this cover letter. > > TODO list: > 1. Test obviously : i will do it in comming week, once basic things are > working i will > send another version which you can use for your testing. Till then don't > spend your > time in test because i am sure it will waste your time for my silly mistakes. > > 2. Addd constructor based logic for registration of Vswitch implmentations > like VMDQ. > we will use similar mechanism as registration of PMD drivers (base on > constructor function) > to register all the switch implmentations in vhost-switch and then select the > required > implementation using command line option 'switch'. > > Pankaj Chauhan (3): > examples/vhost: Add vswitch (generic switch) framework > examples/vhost: Add vwitch command line options > examples/vhost: Add VMDQ vswitch device > > examples/vhost/Makefile | 2 +- > examples/vhost/main.c | 603 +++++++++++-------------------------- > examples/vhost/main.h | 10 + > examples/vhost/vmdq.c | 649 > ++++++++++++++++++++++++++++++++++++++++ > examples/vhost/vmdq.h | 59 ++++ > examples/vhost/vswitch_common.c | 467 +++++++++++++++++++++++++++++ > examples/vhost/vswitch_common.h | 175 +++++++++++ > 7 files changed, 1528 insertions(+), 437 deletions(-) > create mode 100644 examples/vhost/vmdq.c > create mode 100644 examples/vhost/vmdq.h > create mode 100644 examples/vhost/vswitch_common.c > create mode 100644 examples/vhost/vswitch_common.h >
Thanks Pankaj, that was fast for such a big change! I'll start the review beginning of next week. Regards, Maxime