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

Initialization of a neighbour Structure

As we saw in earlier chapters, a neighbour structure stores all of the information needed to perform the neighboring protocol's job—translating an L3 address to an L2 address—for a single L3-to-L2 address mapping. Each protocol specifies the function used to create a neighbour structure in its neigh_table->constructor virtual function. ARP's initialization function, as you can see from the definition of the arp_tbl structure in the previous section, is arp_constructor.

Basic Initialization Sequence

Figure 28-11 shows the basic steps in creating a neighbor entry.

Initialization sequence for a new neighbour structure

Figure 28-11. Initialization sequence for a new neighbour structure

We saw in the section "Creating a neighbour Entry" in Chapter 27 that a neighbor can be created for different reasons and in different initial states. Because of that, the default values assigned to the fields of the neighbour structure can be overridden by the caller. For instance, neigh->nud_state is set to NUD_NONE when the neighbour structure is created as a consequence of a transmission request toward the associated neighbor. But it could also be NUD_PERMANENT or NUD_STALE if the entry was created from the command line. Broadcast and multicast IP addresses do not need any help from ARP to be translated to an L2 broadcast or multicast corresponding address, so in these cases, nud_state is set to NUD_NOARP.

Particularly ...

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