Chapter 22. Network Interface Card Drivers
We all know that networking is inherent to the Linux kernel. Some years ago, Linux was only used for its network performance, but things have changed now; Linux is much more than a server, and runs on billions of embedded devices. Over the years, Linux has gained the reputation of being the best network operating system. In spite of all this, Linux cannot do everything. Given the huge variety of Ethernet controllers that exist, Linux has found no other way than to expose an API to developers who need a writing driver for their network device, or who need to perform kernel networking development in a general manner. This API offers a sufficient abstraction layer, guaranteeing the generosity of the code developed, as well as porting on other architectures. This chapter will walk-through the part of this API that deals with Network Interface Card (NIC) driver development, and discuss its data structures and methods.
In this chapter, we will cover the...