HOMEVIDEOSSTUDENTSSPONSORSDONATIONSEVENTSTUTORIALSLINKSNEWSCONTACT


LINKS 》 Linux Kernel Network stack and architecture

Detailed scheme of the forwarding operations in 2.6 kernel NAPI - www.researchgate.net/profile/Roberto_Bruschi/publication:
Figure 4. Detailed scheme of the forwarding operations in 2.6 kernel NAPI.
Figure 4. Detailed scheme of the forwarding operations in 2.6 kernel NAPI.
Image courtesy/source: https://www.researchgate.net/profile/Roberto_Bruschi/publica ...


The linux networking architecture - Hugo lu, software engineer at Terawins slideshow:
Linux Kernel Network subsystem architecture
Linux Kernel Network subsystem architecture
Image courtesy/source: https://image.slidesharecdn.com/thelinuxnetworkingarchitectu ...


The linux networking architecture - Hugo lu, software engineer at Terawins slideshow:
Linux Kernel Network subsystem :: L2-bridging architecture
Linux Kernel Network subsystem :: L2-bridging architecture
Image courtesy/source: http://image.slidesharecdn.com/thelinuxnetworkingarchitectur ...


The linux networking architecture - Hugo lu, software engineer at Terawins slideshow:
Linux Kernel Network subsystem :: IPv4/TCP architecture
Linux Kernel Network subsystem :: IPv4/TCP architecture
Image courtesy/source: https://image.slidesharecdn.com/thelinuxnetworkingarchitectu ...


The Linux Networking Architecture: Design and Implementation of Network Protocols in the Linux Kernel - by Klaus Wehrle, Frank Pählke, Hartmut Ritter, Daniel Müller, Marc Bechler:
Architecture of the Bridge Implementation
Architecture of the Bridge Implementation
Image courtesy/source: http://flylib.com/books/3/475/1/html/2/images/0131777203/gra ...


Linux Kernel Programming - Device Drivers - by Kiran Kankipati:
Linux System Architecture
Linux System Architecture
Image courtesy/source: i/VIDEOS/110/Linux%20System%20Architecture.jpg

Linux Kernel Space Device Driver Instances
Linux Kernel Space Device Driver Instances
Image courtesy/source: i/VIDEOS/110/Linux%20Kernel%20Space%20Device%20Driver%20Inst ...



Suggested Topics:


☆ Links :: Linux Kernel Software Development :: Images ↗


☆ Links :: Networking and Network Software Development :: Images ↗

Join The Linux Channel :: Facebook Group ↗

Visit The Linux Channel :: on Youtube ↗


💗 Help shape the future: Sponsor/Donate


Recommended Topics:
Featured Video:
Watch on Youtube - [461//0] x237 Selective module compilation in mainline kernel | Linux Kernel Programming ↗

Smart NIC Cards ↗
Saturday' 13-Mar-2021
NIC Cards (Network Interface Cards) traditionally contain controller chip which takes care of the core aspects, such as packet reception, buffering (till they are read by OS device drivers), etc. But these days increasingly modern NIC cards can perform several CPU Network Offload functions such as packet/frame checksum, etc. Such hardware offload features of modern NIC cards is crucial to process packets and support packet data transfer rates of around 1Gbps, 10Gbps, even 40Gbps and so on. But beyond that such as 100Gbps and so on, at times even a high-end Xeon/ Intel/ AMD processors will struggle if need to support transfer rates of around 100Gbps or beyond (situations like Link Bonding). These are the situations we need what we call as Smart NIC Cards. A Smart NIC card implements most of the network traffic processing on the NIC itself that would necessarily be performed by the CPU (i.e Operating System) in the case of a traditional NIC card.

Linux Kernel Module to Drop Packets captured via netfilter hooks ↗
Saturday' 13-Mar-2021
Here is my sample Kernel Module to drop packets (i.e sk_buff instance) captured via netfilter hooks. When you want to drop packets in your custom netfilter hooks make sure you never do a manual kfree_skb(skb) API call. Since it is anyway performed once the flow of the code moves out of your kernel module netfilter hook. All you need to do is to return NF_DROP to drop gracefully the desired packet. Here is my detailed video and a sample Linux Kernel module.

Raspberry Pi GPIO Pins - Raw Kernel Access via sysfs - GPIO Linux Kernel Drivers ↗
Saturday' 01-Jan-2022
Here is a my multi-episode Youtube video series of me doing a live code (Code with Kiran Series). Linux Kernel GPIO drivers of Raspberry Pi offers access/control directly via sysfs filesystem interface. But often people don't see this aspect, instead as a part of IoT, they assume these GPIO pins can be only accessed by some Python, Java or C/C++ code libraries. But in the real case those libraries are just an abstract layer written around the core Kernel GPIO driver's sysfs filesystem. So here is an attempt where we learn this aspect in systems architecture point of view. And then later try to attempt writing such user-space GPIO control code without any third-party libraries. Since the sysfs driver access is via regular files (user-space context), we can now use any language of our choice and access the same like any files. In that process we can attempt writing our own bunch of abstract APIs resembling a typical GPIO access library.

Adding your own Kernel Modules into Linux Kernel Source | Linux Kernel Programming ↗
Saturday' 13-Mar-2021
Whenever you do custom kernel modules, you can optionally make it a part of existing Linux Kernel source. This does not mean you are submitting your kernel module to the mainline kernel source (i.e kernel.org Linux Kernel Foundation). What I meant is, you can make your kernel module(s) part of Linux Kernel source so that when you compile your kernel you can automatically compile your kernel module(s) too. As well when you create/modify kernel .config configuration file (such as via make menuconfig, etc), you can enable or disable your kernel module(s) too.
To do the same you have to register (and include) your custom Kernel Module's Kconfig and Makefile to the existing Kconfig and Makefile of the Linux Kernel source Here is a detailed multi-episode video of mine which gives the overall idea and the big-picture.

Linux Operating System - User-space Processes ↗
Saturday' 14-May-2022

Linux Kernel Programming ↗
Saturday' 13-Mar-2021

OpenWRT - BusyBox and Embedded Linux ↗
Saturday' 13-Mar-2021

Linux Kernel Oops ↗
Saturday' 13-Mar-2021

Dynamic linking without STDLIB in Linux user-space C programming ↗
Saturday' 13-Mar-2021

net-tools - Source Code Walk ↗
Saturday' 13-Mar-2021


Trending Video:
Watch on Youtube - [995//0] 262 Linux Kernel struct socket and struct sock data-structure - Introduction and code-walk - Ep1 ↗

Quagga Routing Suite - OSPF, RIP, RIPng BGP4 | GNU Zebra fork | ZebOS ↗
Saturday' 13-Mar-2021
GNU Zebra is one of the oldest open-source Dynamic Routing Protocol suite stack developed by Kunihiro Ishiguro. Zebra supports features such as RIPv1/RIPv2 for IPv4 and RIPng for IPv6, OSPFv2 and OSPFv3, BGPv4+ and so on. Zebra is an active project for many years. After many years of active support Zebra is discontinued, and sometime down the lane a new fork is created from Zebra called Quagga which is now maintained by a separate independent open-source community. Quagga is a routing software suite, providing implementations of OSPFv2, OSPFv3, RIP v1 and v2, RIPng and BGP-4 for Unix platforms, particularly FreeBSD, Linux, Solaris and NetBSD. Quagga is a fork of GNU Zebra which was developed by Kunihiro Ishiguro. The Quagga architecture consists of a core daemon, zebra, which acts as an abstraction layer to the underlying Unix kernel and presents the Zserv API over a Unix or TCP stream to Quagga clients.



Recommended Video:
Watch on Youtube - [995//0] 262 Linux Kernel struct socket and struct sock data-structure - Introduction and code-walk - Ep1 ↗