For the loopback driver provided in the previous article, we write a simple RAW socket program to send a packet directly to the virtual network driver. The code is provided below for reference. The above code is pretty much self explanatory. However, a short description is provided below The loopback driver load and application output […]
Creating a loopback virtual network driver in Linux
In the previous article (provided here), we looked a t a skeleton network Linux device driver module. In the current article, we will add some more substance to the skeleton device driver by providing a path back up the stack. That is, a packet sent to the virtual network device driver will be sent up […]
Understanding GENERIC_NETLINK interface
The number of netlink families are 32. The netlink families which are presently available as of Kernel 6.13.2 are provided in the article here (Netlink Protocol Families). The number of protocol families were seen to be limited and needed a mechanism that would allow different independently defined Netlink families to be defined. To address this […]
Understanding the network device driver sample – part 2
The interested reader can check the previous articles (links: sample skeleton driver and loading the skeleton driver) before going through this article. In the sample skeleton driver, a set of callbacks were defined and later registered with the Linux network stack. The code snippet is shown below In the above code snippets, the network device […]
Understanding the network device driver sample
The skeleton network device driver that is discussed in the current article can be found in this previous article here . Kindly refer the code which can be used to compile a network skeleton drive module, loaded and can be used to perform a few basic network operations to understand Linux networking. Compile the code […]
Sample skeleton network device driver in Linux
The below sample network driver does pretty much nothing. Hence, the term skeleton network driver. It does allow the understanding of basic concepts regarding how a network device driver works in the Linux kernel. The network devices are connected to the network stack and communicate with the outside world using network packets. The network device […]
A few other SKB APIs
The previous article (here) discussed a few of the commonly used Socket Buff (SKB) APIs to modify the socket buffer allocated. The below APIs are also used to access different regions of the buffer or to act on the buffer in a desired manner and more widely seen. There are quite a few APIs that […]
Socket Buffer(SKB) Manipulation APIs
The SKB structure buffer for data is manipulated using various support APIs. Some of the APIs are described below with a pictorial representation of how the operation takes place. A few other SKB APIs
Linux Socket Buffer (SKB)
The socket buffer is the most commonly heard data structure in the Linux networking code. It forms the basis of how data packets are handled in the Linux network stack. The data structure can be viewed in the header file – skbuff.h. The structure – struct sk_buff contains numerous parameters. We look at some of […]
OWE parameters and OWE key generation
The Authentication key management (AKM) that is introduced for Opportunistic Wireless Encryption (OWE) is AKM type 18. The RFC 8110 describes OWE operation. The below excerpt from the RFC shows the OWE IE that is part of the RSN element. The Key management type is mentioned as “This document” to refer to RFC 8110. RFC […]