VIDEOS 》 IPUtils - Source Code Walk

GitHub iputils - https://github.com/iputils/iputils
ping.c - https://github.com/iputils/iputils/blob/master ...
ping.h - https://github.com/iputils/iputils/blob/master ...
ping6_common.c - https://github.com/iputils/iputils/blob/master ...
ping_common.c - https://github.com/iputils/iputils/blob/master ...

Refer my Google Drive export diagram of the IPUtils :: Ping command implementation architecture:

  • [+] green box represents function pointer set
  • [+] yellow boxes are the important APIs/functions
  • [+] gray boxes are the standard external APIs (such as system calls and glibc library)
  • [+] pink/purple box(es) are the additional helper APIs (which are not as critical as those yellow ones)

* please note that I am not expanding deliberately ping6_run() and ping6_function_set since it is quite obvious that it has the same identical architecture as that of IPv4 implementation (i.e: ping4_run() and ping4_func_set).
The Linux Channel - IP Utils ping command implementation API flow Architecture

Suggested Topics:

Video Episodes :: Linux (user-space), Systems Architecture and Networking

Code Snippets ↗
Saturday' 13-Mar-2021

Online Course - Networking Protocols ↗
Saturday' 13-Mar-2021

Ethtool - Source Code Walk ↗
Saturday' 13-Mar-2021

CPU Performance and Benchmarks ↗
Saturday' 13-Mar-2021

Online Course - Linux CLI Scripting ↗
Saturday' 13-Mar-2021

Building my own Userspace Network Stack - Platform/OS and Hardware Independent ↗
Saturday' 13-Mar-2021

IPUtils - Source Code Walk ↗
Saturday' 13-Mar-2021

Oracle VM VirtualBox ↗
Saturday' 13-Mar-2021

CUDA GPU Distributed Parallel Computing ↗
Saturday' 13-Mar-2021

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.

VRF - Virtual Routing and Forwarding ↗
Saturday' 13-Mar-2021

Wireshark Packet Capture ↗
Saturday' 13-Mar-2021

Systems Architecture ↗
Saturday' 13-Mar-2021

NAS (Network Attached Storage) Operating Systems - FreeNAS, OpenZFS, etc ↗
Saturday' 13-Mar-2021

Networking and Q&A ↗
Saturday' 13-Mar-2021

Data Visualization and Analytics ↗
Saturday' 13-Mar-2021

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

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

Online Course - Linux TUN/TAP virtual network interfaces ↗
Saturday' 13-Mar-2021

Linux (user-space) RAW Socket Programming ↗
Saturday' 13-Mar-2021

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 - [483//0] x237 Selective module compilation in mainline kernel | Linux Kernel Programming ↗

What is purpose of Kernel Development - Example SMOAD Networks SDWAN Orchestrator Firewall Kernel Engine ↗
Monday' 18-Jul-2022
Often aspiring students may have this question, that what is the purpose of Linux Kernel Development. Since Linux Kernel is very mature and it has almost everything one would need. Usually, we need custom kernel development in the case of any new driver development for new upcoming hardware. And this happens on and on. But at times we may also come across few features/modules/components which are already provided by the Linux Kernel which are not adequate or atleast not the way we exactly intended to use. So, this is the real-world example, sometimes no matter what Linux Kernel provides as a part of stock Kernel/OS features, sometimes we have to write our own custom kernel stack or module(s) which can specifically cater our exact needs.

Roadmap - How to become Systems Software Developer ↗
Friday' 13-May-2022
When you are at the beginning of your career or a student, and aspire to become a software developer, one of the avenues to choose is to become a hard-core Systems Software Developer. However it is easier said than done, since there are many aspects to it as you explore further. As a part of systems developer, you can get into core kernel space developer, kernel device drivers developer, embedded developer and get into things like board bring-up, porting, etc, or can become a user-space systems programmer, and so on. So here is my detailed multi-episode Youtube video series on Roadmap - How to become Systems Software Developer.

The Linux Channel :: Sponsors ↗
Monday' 30-May-2022
Here is a list of all The Linux Channel sponsors/donors (individual/companies).

Linux Kernel /sysfs Interface ↗
Saturday' 14-May-2022
/sysfs is one of the most popular kernel to user-space interface which you can leverage to add an interface to your Kernel code such as Kernel modules, Kernel Device Drivers, etc. Although personally I prefer /proc interface than other alternatives such as /sysfs, ioctl() and so on for my personal Kernel modules/stack. So here is my detailed multi-episode Youtube video series on /sysfs Interface.

Support, Donate and Contribute - The Linux Channel ↗
Saturday' 13-Mar-2021
Help shape the future and make an impact by donating/sponsor The Linux Channel. Your donation will transform lives !

Research Socket overhead in Linux vs Message Queues and benchmarking ↗
Saturday' 13-Mar-2021

Linux Kernel Data-Structures ↗
Saturday' 13-Mar-2021
Here is a quick reference of important Linux Kernel Data Structures of various assorted Kernel Subsystems such as: Process, Memory Management, Networking, File System, Device Drives, IPC and so on. So when you write custom Kernel code, it is often you may need to populate a new instance of one of these data-structures or just access the existing ones. Hence it is very important to know some of these and get familiarized with. You can bookmark this page, so that you can use this as a quick reference when you write your own custom Linux Kernel Modules.

IPUtils - Source Code Walk ↗
Saturday' 13-Mar-2021

Network Packet Processing Hardware Offload ↗
Saturday' 13-Mar-2021
Here are the quick links or architecture images of various Network Packet Processing Hardware Offload via NIC card. And also here is my detailed video and demo on GRO (Generic Receive Offload).

Bluefish IDE - a simple versatile light-weight best editor to edit kernel source files, html files, c source code, text files, SQL schema and so on ↗
Saturday' 13-Mar-2021

Trending Video:
Watch on Youtube - [19669//0] Q&A - Relationship between SIP, RTP, RTCP protocol packets in VoIP ? ↗

Linux Kernel Network stack and architecture ↗
Saturday' 13-Mar-2021

Recommended Video:
Watch on Youtube - [976//0] Linux Kernel skbuff data-structure - part11 - skb_put() ↗