Skip to Content
Understanding Linux Network Internals
book

Understanding Linux Network Internals

by Christian Benvenuti
December 2005
Intermediate to advanced
1066 pages
33h 38m
English
O'Reilly Media, Inc.
Content preview from Understanding Linux Network Internals

Transmitting and Receiving ARP Packets

The functions used to send and receive ARP packets are:

arp_send

The neighboring subsystem calls neigh_ops->solicit to transmit a solicitation request. In the case of ARP, the solicit function (arp_solicit) is a simple wrapper around arp_send. arp_send fills in the ARP header and payload and uses the dev_queue_xmit function to transmit the request.

arp_rcv

Because ARP is a protocol in its own right (unlike ND for IPv6), it registers a handler in arp_init. The next section describes arp_rcv in detail, along with how the two main ARP packet types are processed.

As shown in Figure 28-13, both transmission and reception of ARP packets can be controlled by Netfilter.

The dotted lines between arp_rcv and arp_send indicate that in some cases, the reception of an ARP packet triggers the transmission of at least one other ARP packet. This occurs when:

  • Bridging is configured. A bridge receiving an ARP packet may just forward it to other bridge interfaces without processing it.

  • The ingress packet is an ARPOP_REQUEST and the neighboring subsystem decides it can reply according to its configuration. The subsystem generates an ARPOP_REPLY.

As Figure 28-13 shows, arp_send is also triggered by external events and a few kernel features such as bonding; details are provided in later sections.

Transmitting ARP Packets: Introduction to arp_send

arp_send is the routine provided by ARP to transmit both solicitation requests and replies, as shown in Figure 28-14. Chapter ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Linux Kernel Debugging

Linux Kernel Debugging

Kaiwan N. Billimoria
Linux Kernel Programming

Linux Kernel Programming

Kaiwan N. Billimoria

Publisher Resources

ISBN: 0596002556Errata Page