 Hi, my name is Rupa, I'm from previously Kimmelist Networks and now NVIDIA and I'll be talking about the DENT project, the Distributed Enterprise Linux Foundation project that started earlier this year. My co-speaker Aviath from Mellanox, who's also part of NVIDIA right now, will not be able to join us today, but yeah, let's get started. So again, a little bit about me, I was an early employee at Kimmelist, which means I was at the very beginning of the open networking revolution. So I've been at the center of all the news about all network operating systems that came along since the last 10 years. A few goals and an outline of the talk. Sorry, I have a bit of an echo. I'll be talking about introduction to the open networking, DENT architecture, Linux native software architecture for Switch A6, Linux switch dev drivers, DENT project itself, and where can you find the DENT project details. So this screen is familiar to most of us who have been in the center of open networking revolution. It's been close to a decade now, but legacy systems are still around, but then the whole open networking revolution with OCP, with Linux Foundation, it's become very prominent in the data center and cloud and so on. So, if you see the, in this slide, if you see the evolution of open network operating systems, there are different tailored to different markets. For example, for the cloud, there is Sonic and F Boss from, Sonic is from Microsoft and F Boss is from Facebook. And for telecom, you have Danos, which I think was a contribution from AT&T. And for the data center, there have been operating systems, commercially open operating systems, not in a community sense, but the disaggregated open networking operating systems like humans, which I was part of for a really long time, or am still am. PKI8 and so on, I'm missing some names, of course, but now the recent one is distributed enterprise and that targets for the edge market, open networking, network operating system for the distributed enterprise and edge. And it's a Linux Foundation project. There is a reference to this at the end of, in the references section in the Linux Foundation announcement. So what is dent? So dent is a new operating system for the networking at the edge, and for example, campus, edge retail, remote office, branch office and so on. What, how is it different from the other network operating systems out there is basically it uses the Linux networking API and switch dev for offload to switch ASIC. I'll talk a little more about switch ASIC, switch dev, the switch dev project, the Linux kernel switch dev project. But Cumulus Linux is also a Linux networking API based network operating system. So it's very familiar to me, especially, and I was also part of when the switch dev movement started, or the project started in the next kernel. So what, sorry, the founding members of dent, the premier members are these Amazon, Cumulus, Delta, Marvel, Melanox, Winston, Edgecore, and Amazon was the leader in starting the project and it brought along the community and Linux Foundation together. So edge deployments, what are the requirements of an edge NAS, right? So a network operating system, open desegregator is all clear. For a cloud, basically you need a routing stack and the usual protocols and the switch data plane forwarding and the CPU forwarding plane and so on. So for the edge, there are a few things different. Of course, the modern open desegregator is common to all of them, build for automation and scale. And you are trying to, in this model for open networking, you are trying to uniform the operational model, leverage some of the data center automation tools or networking tools and best practices or whatever we have learned with open networking to campus and edge. What this also gives you is a simplified architecture, operations and cost efficiency. This again comes due to the nature of the open networking, flexibility and control. So what is the dent NAS critical or the central point of how it's different from the other network operating systems? So we've seen Linux kernel offloading to hardware, right? It's also called network acceleration or network hardware acceleration. Basically, the architecture or the Linux system, you submit drivers, you have those drivers in the kernel, it recognizes your device and it can accelerate your networking or any function that your device provides. So if your device is not there, that function gets executed in software and when the device is present or the driver is present or the hardware is present, it gets offloaded to the hardware. So this mix and NPUs have followed this model in the Linux world for a really long time, right? You know when your Nick driver is there and when you know you can simulate a Nick driver on in KBM or so on, but you know, when you have the hardware, it just offloads to hardware. So the model is the model of SwitchDev or the model of dent NAS is based on that. Basically your Switch ports, they appear as Nick ports. Your kernel, Linux kernel, layer 2 forwarding, layer 3 forwarding and multicast VXLAN and so on that you're very familiar with on the host OS or VM on Linux. You will see that you can do that on a dent system. So that's the whole idea of the architecture. And in the right, there's a pictures which ports as Nick ports, then you have the Linux networking API and the hardware offload API. So the software architecture guiding principles again is basically it needs to be an open source Linux based, so it's a Debian based. So for all practical purposes, it's a Debian system, right? It's Debian systems with some add ons for things. A massive, this provides you a massive Linux ecosystem to or Debian ecosystem to choose from packages from. And you have a Linux native accelerated stack that is accelerated by switching hardware open protocol implementations with FRR being the control claim. Then you have Worf and VXLAN, VRRP, all these implementations already exist on Linux. And they have been, they've gone through another big boost in open source development in these areas or in these protocol implementations with FRR and so on in the past few years. And of course, simplified modern architecture is just as plain your switch or your Edge switch is basically a plain Linux box. You do everything that you could on a Linux box on your server, for example. A little bit about the Switch Dev project. Again, like I mentioned, it's Switch Dev is a name given to the Linux kernel support for Switch ASX. And what that means is you have switch ASIC drivers in the upstream kernel. The kernel has hardware offload extensions for these Switch ASX and basically hooks in the routing code, neighbor, bridging and so on. Initial APIs were prefixed with Switch Dev and the name stuck, but the name you won't find the name in APIs and so on. But quickly evolved to using existing kernel infrastructure like notifiers and so on. There's a new Netlink API. Netlink is a protocol for kernel, Linux kernel, user space communication. It's an IPC mechanism in Linux. And a new API called Devlink was born to actually tailor to this particular Switch ASX hardware configuration and viewing resources, debugability and so on. And like any other technology in the Linux kernel, Devlink API is actually proliferated to other areas. Like, example, the NIC teams or the server teams are also, server drivers are also using them, which is a great thing. Again, this is another path to uniformity between a switch ASIC driver and, you know, a server. And that was the whole intention of the Switch Dev project. And the Linux API based open networking, an end-of-corporation system. So this is an overall picture of the dent architecture. Like I mentioned, this will be familiar to people who have looked at a network operating systems based on the Linux kernel API or Linux native networking API like Cumulus Linux. So what we're talking about here is your applications that are here are Linux applications. Some of this, for example, LLDPD comes from the Debian ecosystem. DHCP comes from the Debian ecosystem. FRR is, as you guys know, is a routing stack, an open implementation routing stack. It has BGP, OSPF and many others. And it was previously Quagga. And now it's become one of the massive protocols suite. Actually, VRRPD, it also has a VRRPD implementation. So FRR has various backends and one of his backends is Linux, and it can work on any Linux system. And it works on a Linux system as it is a Linux system. For example, you can run it on a red hat. It'll use a kernel for its data plane. But what the Switch Dev driver here, what it's going to do is it's going to... The control plane is going to interact with the Linux kernel. And the hooks in all of these subsystems will eventually lead to the driver and then to the ASIC. Okay, that's the whole idea of the architecture. So the applications don't know that there is a Switch driver on ASIC. But what this also enables you to do is you can run DentNAS as a virtual machine that comes for free. As long as if you're not running a hardware and a Switch ASIC, this top stack of Linux will continue to function like any other software Linux system. So that's the power of the architecture. The Dent ecosystem, it's a lot of... Like any other project actually, any other open source, something like a network operating system, which is huge enough to have many players. Dent has many communities coming together. ONI, which is part of the open networking revolution and OCP. Then of course, Linux, Debian, SwitchDoc project, Ansible and Puppet Chef, the other automation tools that you're very familiar with on the server. Power routing stack, OCP again with ONL. I'll talk a little bit about ONL's presence in Dent. And of course, the Linux Foundation that started this project or is hosting the project. So Dent hardware and software, a little bit of details. The three ODMs, Acton, Delta Networks and Wishtron. Two ASIC vendors, Marvel and Melanox. And of course, I am part of Melanox and NVIDIA cumulus. So the examples that I use later on in the slides are all about taken on a Melanox platform. So you have three different switches, switch configurations as seen here. And PoE, if I've not mentioned earlier, PoE is one of the different features that you will see requirement in an edge NAS or an edge detail NAS. Power over Ethernet. So what are Dent NAS components? Open Networking Linux. ONL, this is an OCP project. It provides you with a Debian based image build system and platform drivers or a platform abstraction. And it was easier for the Dent project to actually start with ONL as a base because it's an already available open project out there. So beyond that, it has the latest kernel, 5.6, and it may go to a newer kernel. And the kernel is because the kernel, being on the latest kernel is because of switch dev drivers coming from Marvel. And Melanox has had their switch dev drivers for a few years now. They are in the upstream kernel. Any Linux kernel has them. It's called as MLX SW. Marvel's drivers are in progress. They are working progress right now. It's close to be getting into the kernel. And Linux platform drivers. Again, Linux has supported platform drivers using SysFS and tools that use SysFS. So the Dent project is going to support both because of its ONL roots. It's going to support ONL P drivers. And because it's Linux, it'll also support Linux platform drivers. And the reference that I put there for the Linux platform drivers is actually from a Melanox documentation, which is public. Software and control plane. Of course, it's a Debian ecosystem. Lots of protocol implementations like LLDPD, FRR. I have done two for network interface configuration. And additional capabilities is something like Power over Ethernet. So Dent V1 features. This is, I think it goes to the next slide as well. But this is the base features that Dent V1 release will come out with. Basic LLDP SSH and so on. And in terms of networking functionality for Edge retail, it is L2 bridging, VLAN aware, routing, ECMP. Then in terms of protocols, again, there is STP, BGP. BGP is the only routing protocol. VRRP with FRR as well. Going further, again, LAG. LAG is very base feature for any NAS right now. Debug tooling, Ansible playbooks, DHCP relay, DHCP server, ETH tool, and so on. So V2 features. V2 features are still being discussed. I'm just going to have this here for just for records because the Dent technical steering committee is actually trying to come up with a list for V2. And the release, V1 is supposed to come out before the end of this year. It's almost ready. And out anytime soon once the marvels which have drivers accepted. Thanks to Steve Noble from the Dent project actually to give me some of these details, slides and features that are being worked on. So the next few slides, actually three slides, I have screenshots about how different is Linux native networking. What does that mean? So this is the first one actually just shows you that this is a Debian system. V2 are basically showing you how do you see your ports. It's the simple IP link show from the IP route to command suite to look at your switchboard details. So basically you can run all your networking commands that you run on your server on your switch. Again, ETH tool is everybody's if you're familiar with debugging networking problems on servers. ETH tool is the interface to the kernel for L1 config and show and so on. So this is an example how you can see your link states. And this is all these slides were taken on an examples were taken on a Dent spectrum melanox box. So you can see the driver melanox is MLX SW spectrum. So DevLink, I mentioned DevLink earlier. DevLink is another net link API, which is getting popular on the servers too, or is getting getting used into or adapted into different configurations on the servers. For example, SRIOV or Nix and so on. This is a simple example how DevLink is an API to look at the switch hardware on its own. It's kind of like an ETH tool if you're very familiar with ETH tool on Linux. But it will, it can work on your network interface like ETH0, ETH1 and so on. Your switchboards are here SWP1, SWP2, but it can also work on directly PCI. If you switch A6 CPUs, PCI endpoint, it can directly work on that. And port splitting, port splitting is also a function of DevLink. You can do port breakouts with DevLink. So what else does the edge deployment or what are the possibilities of having an open networking NOS at the edge, Linux-based open networking NOS? So basically the slide is just telling you what, you know, we have experiments where we run, for example, the switch dev driver or we have experimented or have deployments with, you know, a Kubernetes master running on the switch, which can manage your edge rack, right, all the other applications on the edge rack. So things like that. Container runtime comes for free because Debian actually has a container runtime docker. You can install docker and so on. So there are many possibilities. You can treat your dense switch as one of your systems in your edge rack. And what this means is you have that power of uniformity and automation, provisioning and operations across your edge cluster. Ability to extend, you know, native continuous applications to your switch to, you know, move the applications, continuous applications from a data center to your edge rack to your edge switch from the cloud and so on. And of course, you're limited by the CPU that is present on the dense or present any of these switches, but, you know, people run, do run apps on, on your, on switch, especially again, monitoring apps. You don't need another server for your monitoring app, you know, monitoring application. You can possibly run it on your switch. So though dent is edge first, the architecture doesn't stop it from being edge first. For example, the features that we're talking about in the next v2 is sometimes in some cases it's beyond, beyond edge. Where to find dent? There is an open mailing list. There is a weekly call. In fact, the call is actually sorry, and I forget that this is a recording. So it's in a few minutes from now. But the dent project, the code is there. The seat code from Amazon and the other vendors. And it is going to be public once, when vVendors released, which should be in, in about time actually in a few weeks or months. Yeah, this is what that talks about. And some references of all the projects are the projects that dent is using the switch of drivers and so on. That's that concludes my talk. Hey, hey, sorry. Hello, sorry about that feedback. So I do see a few questions. I tried to respond to a few, respond to a few, so I'm just going to read them here. Is NAT also hardware-activated at the ASIC? Yes, it's not in the dent project, but many implementations today do have NAT offloaded through Linux. Basically, Linux NAT offloaded to switch ASIC. Actually, some QMLS Linux references come up there. QMLS Linux does offload kernel NAT to ASIC. And dent, of course, if dent had to support NAT to switch ASIC, it needs the switched-dev drivers to support NAT. And as far as I know, there is no switch-dev driver supporting NAT today. The other question is, does dent implement open flow? It does not implement open flow today for the deep end release or it's not in the pipeline, but there is no reason for it to not implement or architecturally there is no limitation. As long as one of the ways open flow can be implemented is an open flow app having to translate into the kernel and kernel to switch-dev driver. Or most of the open flow implementations like open vSwitch could also run on the switch. And as long as the open switch, as you guys know, most of it on the servers today uses the TCE offloads, rule offloads. So it can and the switch-dev drivers do support some sort of TCE offload and they can be extended to support open flow, but not currently planned. What monitoring features are supported in dent, like Prometheus endpoint? There is no, I mean, the dent project is not putting out any monitoring agent right now, but there is no reason Prometheus endpoint cannot run. It's just an open Linux box. And similar example on QMLS, there are many people who do that already. It's possible. I think that's all the questions. So on the kernel version again, I did respond on chat. It's 5.6 right now. There is a plan to move to 5.8, but it could move to a long-term stable kernel once that is announced. And any other questions? And of course, I did respond to the question on how is dent and QMLS Linux different? QMLS Linux is again based on the same principles. Your apps just talk to the Linux API and QMLS does the magic. And the magic that QMLS does is it also supports user space SDKs. Translates from the kernel to the SDK. And dent is based on an open source driver for the switch ASIC. Yeah, because it's an open source project and it does not have the people closed SDKs. But in that context, you have to know, realize that QMLS started way long ago, where only SDKs are closed-source institutes. And even today, I think SDKs for any switch ASIC are critical and all vendors support them and they are usually more feature-rich. We've all the questions for now. I can wait and see if there are any questions to come. There is a weekly call for dent. It's Wednesday, 7 a.m. BST. I think the information is on the dent project. We can even join in listening. Thanks, everybody.