We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Open Source Switching: Upstreaming ONIE NVMEM and switch BSP drivers

00:00

Formal Metadata

Title
Open Source Switching: Upstreaming ONIE NVMEM and switch BSP drivers
Subtitle
An overview of a DENT upstream WG project and network switch board support in the Linux kernel
Title of Series
Number of Parts
542
Author
Contributors
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
As open source network switching gathers momentum there is significant work being done to upstream support for network switch devices in the Linux kernel. The DENT project is an open source network operating system utilizing the Linux kernel, switchdev, and other Linux-based projects, hosted under the Linux Foundation. This talk will present case studies of driver development for platforms supported by the DENT project — the ONIE NVMEM driver and the switch BSP driver.
Sheaf (mathematics)
Color managementHydraulic jumpChaos (cosmogony)Right angleFirmwarePresentation of a groupOpen sourceComputer animation
Open sourceComputer networkOpen setOSI modelData modelKernel (computing)Integrated development environmentInstallation artMultiplicationSicPlane (geometry)Computing platformBuildingProduct (business)Spectrum (functional analysis)Binary space partitioningWhiteboardPublic domainLimit (category theory)1 (number)SoftwareComputer hardwareOpen sourceProjective planeDevice driverComputing platformFamilySpectrum (functional analysis)Point (geometry)Router (computing)Computing platformEnterprise architectureEndliche ModelltheorieGradientIntegrated development environmentStandard deviationPlane (geometry)Computer animation
Computer hardwareComputing platformData storage deviceEEPROMFile formatProduct (business)Product (business)Latent heatComputer hardwareSoftwareSpacetimeProjective planeNon-volatile memoryKernel (computing)Computer animation
Physical systemComputing platformVariety (linguistics)Game controllerBinary space partitioningPatch (Unix)Computer networkPower (physics)Kernel (computing)Data managementDemonSpacetimePhysical systemData managementLimit (category theory)Complex programmable logic deviceDevice driverStandard deviationPower (physics)Projective planeInterface (computing)SoftwareVirtual LANFluid staticsGame controllerKernel (computing)Touch typingProcess (computing)SpacetimePatch (Unix)Revision controlComputer animation
Streaming mediaComputer animation
Internet service providerOpen setProgram flowchart
Transcript: English(auto-generated)
OK, so this is the lightning talk section. Like I say, please don't get up and move after every single talk, otherwise it's going to be a chaos. So you're in here for the whole 50 minutes. Well, 60 minutes, actually. So just sit down, relax, enjoy, starting with, I'm
afraid I've forgotten your name. Yacov. Yacov. Thank you. Please go. Excellent. Thank you. OK, I hope everyone can hear me now. My name is Yacov. Hello, everyone. I am currently a firmware engineer at Sartura. And today, I'll give you a very brief overview of what
we have been doing in open source switching space. So the presentation is very brief. So I'll jump right in. OK, so basically, when we talk about switching, we are talking about devices, network switches, right? Our team has started out with CPs.
So these are embedded network devices like access points and routers. But a network switch basically is a multi-port device which has a dedicated ASIC which controls packet switching. And this ASIC also has to support some kind of hardware offloading for advanced features like lag and so on.
So in this space, for the Linux kernel, we have an internal driver model which is called Switchdev. This model allows the driver to offload the data plane onto the switch ASIC, right?
And also for the switching part, we have a relevant project called ONI. ONI is actually a pre-installed environment for network switches. But ONI is not just that. It also supports various hardware standards in this domain.
So we'll get to it in a bit. OK, so where are we right now with open source switching? There are some challenges. So basically, we have a limited amount of platforms supported in the mainline kernel. The most common ones are Prestera from Marvell. We also have some spectrum devices and the SPARKS5 switch
chipset family. Obviously, in this space, we want to build a fully open source switching platform. This means that we have decided to join the Dent project and the Dent community. The Dent project is actually looking to create something
like a fully open source enterprise grade network switch, right? And in this space, we have been working to lead the Dent upstream working group, which has organized and funded work for open source switching.
OK, so one of the projects which has been organized and funded by this Dent community has been the Linux ONI NVMM project. Basically, the idea was that ONI, the specification from ONI, mandates that all network devices and hardware
must have some kind of product data stored in non-volatile memory. This chip actually has to be supported in the mainline kernel. And the idea was to expose some standardized API in the kernel to allow user space to read from it.
And this has been done by the bootling guys. So the other work that we have been doing in this space independently from Dent is actually for the Replica 1 build system project.
So we have been working on the PSU driver for the Delta chipsets. We have also done some PoE driver support and the upstreamed 48M CPLD drivers. Here we have the GPO driver and the CLPD reset controller.
These are some of the patches that we have made. You can see that there have been a lot of these revisions for the upstream process. So what are we actually planning for the future? Currently, the support is, as I said, rather limited because,
for example, one of the most important aspects is the management of power over Ethernet. There's currently no standardized power over Ethernet management interface in the Linux kernel. And this is something that we would like to work with,
for example, the Dent community to achieve. Obviously, this would imply also writing a PoE manager daemon, which would manage the PoE features of the switches. And also, this kind of work would allow other PoE controllers to be easily integrated into the kernel.
Also, on the user space side, we also have some support in system B network data for, for example, virtual LANs. Our team has been working on the DHCPv4 static leases. In this project, and also, we have been working on adding
wired 8.802.1x support in the hosted PD project. So well, that's basically it. Thank you all for listening. If you have any questions regarding this kind of work, please get in touch. And thank you, everyone.
Thank you.