 So what's too much for the redo and we're gonna have Kevin and Reshma talk about adding softnik capability to DPDK So hi everyone, my name is Kevin and this is Reshma We're both network software engineers from Intel Shadden in Ireland and We'll be presenting on how to enrich your nicks capabilities with DPK softnik today So I'll give a quick overview of what will go through so I'll go through this why you should use softnik I'll give a quick overview of what softnik is and how it works and then reshma We'll go into some more internal details of it and give you some use cases and that's pretty much it for this slot So why should we use softnik well if we think of it in terms of what we have in DPDK We notice that we have a lot of ETH APIs We have a lot of nick vendors and there's lots of differences in the features that are supported by those nicks So with that we face inconsistencies in the development environment It's difficult for applications to accommodate for all of the nicks And it just makes it even harder to write the applications and maintain them So that's where softnik comes to the rescue Softnik provides us with a software fallback for physical nicks by augmenting the features that are missing This is brilliant for the applications because now we have a sort of layer between the physical nick and the application That Makes all nicks look the same to the application so they consist art the Development environment is suddenly consistent to the application and doesn't care about what actual hardware is underneath Some other benefits that come with it are Usability so it's easy to use advanced features in DPDK by using softnik without redesigning your application and Some consumer applications Also get some performance improvements But that's completely dependent on what you're actually running So a quick overview of softnik It's a DPDK polymer driver That means it's easy to use with any application all you have to do is add the minus minus Vdev option in the CLI for your application and that will spin up a virtual device being your softnik and You pass a what we call firmware script So it's just a configuration script as a parameter with that minus minus Vdev option Inside the firmware script you can enable and disable whatever features you want to have that are missing and that firmware script is a nice sort of abstraction and reduces the complexity of configuring the internals That DPDK runs on So just a general overview of how a packet will go through softnik So if we look at what components we have first in the orange on the far left and far right we have physical nicks Then attached to those we have hardware cues The green in the middle is or application and the bigger blue boxes either side are or softnik Rx and Tx Between the hardware cues and the application we can have multiple pipelines to augment the features So you could have whatever features you want. You could have routing flow classification Anything like that and you can have any number of them either side Chain them together to make things as complex or easy as you like and Each softnik component has three main parts being tables actions and ports So if we follow a packets life through Your Hardware nicks your softnik and the application your packet will come in on the nick It'll get assigned to a hardware cue and that how hard work you is matched to a table So that table will pull the packet from the hardware cue then we have a bunch of rules inside that table and Those rules check the packet if a packet matches that rule and action is applied to the rule That rule then decides where the packets going to go next So this can be either to another table or to an outbound port which in this case is a software cue So let's just take the easier option. It's going to go through to a software cue then It's ready for the application So the application can pick the packet from the software cue do whatever packet processing it has to do and then it puts it on to or Tx software cue and It's ready for a softnik to take it back and do all the Tx stuff that it likes to do So then the Tx side is practically the opposite of the RX so The softnik takes the packet off the software cue goes to a table checks for rules matches a rule applies the action Then that goes through multiple tables Potentially gets put back on to a hardware cue and then from the hardware cue out the port back on to the wire out to wherever you're sending it So I hope that made some sense I'll pass you over to Reshma now for some more deeper internals Yeah So far Now we have learned that softnik provides a software for the missing features of the hardware So let's see how this can be achieved internally so for this To achieve a number of features softnik needs some configuration script It's of course a Configuration script where applications can go and these configure Define the script such a way that what features they want to like to have that are missing in the hardware so the script on the right side of the slide is a default example script which Which can be used as a reference to configure a complex of scripts for the So in terms of what the Who creates this softnik and who has to do the configuration all these status or something like this So as the application threads or the service course Has to do this job. So service course or something dedicated and course Which will be doing Service related work items For the missing features of the hardware The service course are I mean facilitated by the So other than the service course application threats also can do by themselves if they would like to Do this one figuration and creation of the software so first This is what they have to do is they have to create a softnik device as a virtual device To that creation they need to pass this from base group as a input Then then after creating a softnik device they have to take care of creating a number of preview Q's of the softnik and transmit Q's of the software That defines the length of those cues and Then after the Q of creation it it will be the the next step could be Starting the softnik the creative softnik device and the start is the step where the actual magic starts Where it loads the from a script that application had defined to do certain job So at this stage, I would like to go through the from a script it is So it does take care of her As a first step it will create a it will detect the list that are available on the on the board and Then it will the next step would be creating a pipeline and Then followed by creating the input and output ports That should be for the pipeline and then followed by associating those input and output ports to the pipeline and creating the set of tables that the pipeline should be handling and Then the creator table should be again mapped to the pipeline Then it will be once the from this Next the next step would be like application Threats they can upload these tables with a certain set of rules rules will be a actions that are going to be applied on the packets To do that they can call existing flow viewers and security and case that are available in the DVD game Once that is done These threads has to take care of running a softnik run API in order to present the pipelines action which will be doing the Handling the packets receive transmit and operating are applying the rules that are confident in the pipeline tables So next slide will be Uses cases let's start with the basic use cases Which we can achieve with the softnik basic use cases could be switching and routing and Some flow classification related use cases would be firewall encapsulations like a And then not related applications also can be achieved and traffic management related like QoS Policing and metering also can be done with this softnik and it does support To achieve all this softnik internally uses the optimized DVDK libraries like liberty port table and the TM and Metering API So apart from these basic use cases they can be a complex use cases like BNG and BRAS and we can come we can implement complex Pipelines uplink and downlink pipelines of this BNG and BRAS if you take the First picture in the let's say the physical it has a We have certain color markings there the orange will be available features that are available in the physical And the gray would be a missing features that are not there in the physical link And the green will be a so With with softnik what you can do is whatever is missing you can implement using softnik and you can load them On a particular course where you would like to run them So that's how You can achieve the missing features with the softnik So Okay, so just to wrap it up Four main key takeaways Software provides a software fallback for nicks. So whatever your Nick can't do softnik and fill in We can consume complex dbtk features without application redesign. So you can just call that with softnik You potentially get a performance improvement for consumer applications which I don't think anyone will complain about and The many use cases we have go from simple forwarding to as complex as you want to make it The complex most complex ones we've had there are BRAS and BNG But the possibilities are really endless We've some documentation here. It's just on dbtk.org. It's for softnik So if anyone wants to play around with it go have a look at that it should help And that's pretty much it I'd like to say thank you and if you want to get in touch with any one of us Feel free to do that if you have questions Probably don't have much time for questions, but if anyone has some fire away You can so there's a telnet client and you can just call that up and just put in things Okay Something Does provide this kind of Encapsulation it does has a weeks and encapsulation this is so softnik uses them As of now and it has a support for doing the Vxl and encapsulation on the back And you can indicate it the cost So very quickly, I don't think we've benchmarked out But what you can do is you can make a pipeline that does that Vxl and offload Pin that to one core and then just see what that core is doing specifically and then you could have your numbers here Happy to talk to you afterwards if you've questions, but we're out of time. Thanks everyone