Network Buffers and Memory Management
Ethernet is probably the most common physical interface type that can be handled. The kernel provides a set of general purpose Ethernet support routines that such drivers can use.
eth_header() is the standard Ethernet handler for the dev-hard_header routine, and can be used in any Ethernet driver. Combined with eth_rebuild_header() for the rebuild routine it provides all the ARP lookup required to put Ethernet headers on IP packets.
The eth_type_trans() routine expects to be fed a raw Ethernet packet. It analyses the headers and sets skb->pkt_type and skb->mac itself as well as returning the suggested value for skb->protocol. This routine is normally called from the Ethernet driver receive interrupt handler to classify packets.
eth_copy_and_sum(), the final Ethernet support routine is internally quite complex, but offers significant performance improvements for memory mapped cards. It provides the support to copy and checksum data from the card into a sk_buff in a single pass. This single pass through memory almost eliminates the cost of checksum computation when used and improves IP throughput.
Alan Cox has been working on Linux since version 0.95, when he installed it in order to do further work on the AberMUD game. He now manages the Linux Networking, SMP, and Linux/8086 projects and hasn't done any work on AberMUD since November 1993.
- Readers' Choice Awards 2013
- IBM Will Minimize Impact of Future Disasters
- RSS Feeds
- Sublime Text: One Editor to Rule Them All?
- Tech Tip: Really Simple HTTP Server with Python
- Linux Systems Administrator
- December 2013 Issue of Linux Journal: Readers' Choice
- Senior Perl Developer
- Technical Support Rep
- New Products
- Reply to comment | Linux Journal
10 hours 31 min ago
- It's Jupiter
11 hours 31 min ago
- GIMP is certainly a graphic
12 hours 33 min ago
- Thanks For Your Sharing
17 hours 19 min ago
- Studying linux, and looking
20 hours 44 min ago
- voting for Best Linux Distribution
1 day 5 hours ago
- tizen vs android
1 day 9 hours ago
- i switch my choice from KDE
1 day 9 hours ago
1 day 12 hours ago
- Belanja Online
1 day 15 hours ago