[00:00.000 --> 00:13.080] Okay, so this is the lightning talk section, like I say, please don't get up and move after [00:13.080 --> 00:16.000] every single talk, otherwise it's going to be a chaos. [00:16.000 --> 00:19.840] So you're in here for the whole 50 minutes, 60 minutes actually. [00:19.840 --> 00:26.000] So just sit down, relax, enjoy, starting with, I'm afraid I've forgotten your name. [00:26.000 --> 00:35.000] Okay, I hope everyone can hear me now, my name is Jaco, hello everyone. [00:35.000 --> 00:41.000] I am currently a firmware engineer at Sartura, and today I'll give you a very brief overview [00:41.000 --> 00:45.000] of what we have been doing in open-source switching space. [00:45.000 --> 00:50.000] So the presentation is very brief, so I'll jump right in. [00:50.000 --> 00:55.000] Okay, so basically when we talk about switching, we are talking about [00:55.000 --> 00:59.000] devices network switches, right? [00:59.000 --> 01:02.000] Our team has started out with CPEs. [01:02.000 --> 01:07.000] So these are embedded network devices like access points and routers. [01:07.000 --> 01:13.000] But a network switch basically is a multi-port device which has a dedicated ASIC, [01:13.000 --> 01:15.000] which controls packet switching. [01:15.000 --> 01:21.000] And this ASIC also has to support some kind of hardware offloading for advanced features [01:21.000 --> 01:24.000] like lag and so on. [01:24.000 --> 01:32.000] So in this space for the Linux kernel, we have an internal driver model, [01:32.000 --> 01:34.000] which is called switch dev. [01:34.000 --> 01:42.000] This model allows the driver to offload the data plane onto the switch ASIC, right? [01:42.000 --> 01:48.000] And also for the switching part, we have a relevant project called ONI. [01:48.000 --> 01:53.000] ONI is actually a pre-installed environment for network switches. [01:53.000 --> 01:56.000] But ONI is not just that. [01:56.000 --> 02:01.000] It also supports various hardware standards in this domain. [02:01.000 --> 02:04.000] So we'll get to it in a bit. [02:04.000 --> 02:08.000] Okay, so where are we right now with open-source switching? [02:08.000 --> 02:10.000] There are some challenges. [02:10.000 --> 02:15.000] So basically we have a limited amount of platform supported in the mainline kernel. [02:15.000 --> 02:19.000] The most common ones are Pristera from Marvel. [02:19.000 --> 02:26.000] We also have some Spectrum devices and Sparks 5 switch chipset family. [02:26.000 --> 02:32.000] Obviously in this space we want to build a fully open-source switching platform. [02:32.000 --> 02:40.000] This means that we have decided to join the DENT project and the DENT community. [02:40.000 --> 02:51.000] The DENT project is actually looking to create something like a fully open-source enterprise-grade network switch. [02:51.000 --> 02:57.000] And in this space we have been working to lead the DENT upstream working group, [02:57.000 --> 03:03.000] which has organized and funded work for open-source switching. [03:03.000 --> 03:09.000] Okay, so one of the projects which has been organized and funded by this DENT community [03:09.000 --> 03:13.000] has been the Linux ONI NVMM project. [03:13.000 --> 03:19.000] Basically the idea was that ONI, the specification from ONI, [03:19.000 --> 03:25.000] mandates that all network devices and hardware must have some kind of product data [03:25.000 --> 03:28.000] stored in non-volatile memory. [03:28.000 --> 03:34.000] This chip actually has to be supported in the mainline kernel. [03:34.000 --> 03:43.000] And the idea was to expose some standardized API in the kernel to allow user space to read from it. [03:43.000 --> 03:47.000] And this has been done by the Wootling guys. [03:47.000 --> 03:56.000] So the other work that we have been doing in this space independently from DENT [03:56.000 --> 04:00.000] is actually for the replica 1 build system project. [04:00.000 --> 04:08.000] So we have been working on the PSU driver for the Delta chipsets. [04:08.000 --> 04:18.000] We have also done some PoE driver support and the upstreamed TN48M CPLD drivers. [04:18.000 --> 04:24.000] Here we have the GPO driver and the CLPD reset controller. [04:24.000 --> 04:27.000] These are some of the patches that we have made. [04:27.000 --> 04:34.000] You can see that there have been a lot of these revisions for the upstreaming process. [04:34.000 --> 04:39.000] So what are we actually planning for the future? [04:39.000 --> 04:44.000] Currently the support is, as I said, rather limited [04:44.000 --> 04:50.000] because for example one of the most important aspects is the management of power over Ethernet. [04:50.000 --> 04:57.000] There is currently no standardized power over Ethernet management interface in the Linux kernel. [04:57.000 --> 05:02.000] And this is something that we would like to work with, for example, the DENT community to achieve. [05:02.000 --> 05:10.000] Obviously this would imply also writing a PoE manager daemon, which would manage the PoE features of the switches. [05:10.000 --> 05:19.000] And also this kind of work would allow other PoE controllers to be easily integrated into the kernel. [05:19.000 --> 05:27.000] Also on the user space side we also have some support in system B network D done. [05:27.000 --> 05:38.000] For example, virtual LANs. Our team has been working on the DHCPv4 static leases in this project. [05:38.000 --> 05:48.000] And also we have been working on adding wired 8.802.1x support in the host APD project. [05:48.000 --> 05:53.000] So that's basically it. Thank you all for listening. [05:53.000 --> 05:58.000] If you have any questions regarding this kind of work, please get in touch. [05:58.000 --> 06:00.000] And thank you everyone. [06:00.000 --> 06:02.000] Thank you.