Netdev 0x17 venue
Vancouver, Canada
Previous editions
Fosstodon
NETDEV VIDEOS
Session
Lightweight Approach to Kickstart Development of a NIC Driver
Instructors
David Ahern
Label
Nuts and Bolts
Session Type
Tutorial
Contents
Description
Typically, writing S/W drivers for H/W in development involves building the PCIe stubs for qemu, building the actual data pipeline models, writing S/W drivers which use the pipeline, and eventually getting to system effects and integration with the kernel networking stack - both control plane and data plane APIs. However, the most interesting initial questions are around the system effects and what changes to the H/W-S/W interfaces will cause.
This tutorial shows a lighter weight approach for developing S/W and H/W in parallel. As H/W design discussions progress, a simplified software model can be built in parallel, capturing the essence of the data pipeline and descriptors. When run with the Linux networking stack, design proposals can be examined from a S/W perspective with actual data based on a networking load.
There are limitations to the approach of course - no interrupts, DMA setup, and such - but those fall into the standardized domain of NIC driver operation. The limitations can be managed to allow exercising what is important for the specific hardware under development, as well as allowing code to be written for many of the Linux APIs associated with ethernet drivers.
This tutorial will show how to integrate a S/W only device model with Linux and the networking stack - from mimicking PCI probe and init, creating a netdevice, configuring queues and using those queues to send and receive data. Namespaces are used to imitate hosts and allow end-to-end connectivity, facilitating a complete, closed-loop datapath.
Recent News
Group Booking Discount at Paradox Hotel
[Mon, 16, Oct. 2023]
Bronze Sponsor, Relianoid
[Fri, 06, Oct. 2023]
Registration is now Open
[Mon, 18, Sep. 2023]
Bronze Sponsor, NVIDIA
[Fri, 15, Sep. 2023]
Silver Sponsor, Intel®
[Tue, 12, Sep. 2023]
Important Dates
Closing of CFS | Aug 27th, 2023 |
Notification by | Sep 15th, 2023 |
Conference dates | Oct 30th - Nov 3rd, 2023 |