Errata

Understanding Linux Network Internals

Errata for Understanding Linux Network Internals

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted By Date submitted Date corrected
Printed
Page 2
should be (3)

Anonymous    May 01, 2008
Printed
Page 3
should be (4)

Anonymous    May 01, 2008
Printed
Page 4
should be (5)

Add (2) to the right of the icon for Router RT1.

Anonymous    May 01, 2008
Printed
Page 14
3rd par

Because of the waste cause by looping ... should be Because of the waste caused by looping ...

Anonymous    May 01, 2008
Printed
Page 39
code line above "Cloning and copying buffers"

skb_shinfo(skb)->dataref++; should be skb_shinfo(skb)->nr_frags++;

Anonymous    Feb 01, 2007
Printed
Page 39
code line above "Cloning and copying buffers"

skb_shinfo(skb)->dataref++; should be skb_shinfo(skb)->nr_frags++;

Anonymous    May 01, 2008
Printed
Page 40
Figure 2-9

Interchange sk_shinfo(clone) and sk_shinfo(skb

Anonymous    May 01, 2008
Printed
Page 42
Code at bottom of page

___function_name should be __function_name

Anonymous    Feb 01, 2007
Printed
Page 42
Code at bottom of page

___function_name should be __function_name

Anonymous    May 01, 2008
Printed
Page 47
unsigned char addr_len, line 3

Ethernet addresses are 6 octets long. 8 should be: 6

Anonymous    Feb 01, 2007
Printed
Page 47
unsigned char addr_len, line 3

Ethernet addresses are 6 octets long. 8 should be: 6

Anonymous    May 01, 2008
Printed
Page 51
3rd paragraph

all_multi should be allmulti

Anonymous    May 01, 2008
Printed
Page 57
figure 2-11

One of the directories, listed in the figure reads "kernal", but that should be "kernel".

Anonymous    May 01, 2008
Printed
Page 68
Figure 3-3

sysctel_jiffies should be sysctl_jiffies sysctel_local_port_range should be sysctl_local_port_range sysct1_local_port_range should be sysctl_local_port_range

Anonymous    May 01, 2008
Printed
Page 69
Figure 3-4

SIOC S DEL DLCI should be SIOC DEL DLCI

Anonymous    May 01, 2008
Printed
Page 76
Figure 4-2

The connection from Network A to Network F is not shown.There is one line missing between Network F and Network A (it would be a line like the one between Network E and Network F).

Anonymous    May 01, 2008
Printed
Page 93
First call of module_param()

module_param(multicast_filter_limit, int 0444); should be module_param(multicast_filter_limit, int, 0444);

Anonymous    May 01, 2008
Printed
Page 97
Figure 5-3.

request_model should be request_module. Under request_module, arg[i] should be arg[1]. Under /sbin/modprobe, insmod3c59x should be "insmod 3c59x".

Anonymous    May 01, 2008
Printed
Page 98
kmod bullet 1 line 4

prorobe.conf should be modprobe.conf.

Anonymous    Feb 01, 2007
Printed
Page 98
kmod bullet 1 line 4

prorobe.conf should be modprobe.conf.

Anonymous    May 01, 2008
Printed
Page 131
12th line from the bottom

However, a few architectures discard it a runtime... should be However, a few architectures discard it at runtime...

Anonymous    May 01, 2008
Printed
Page 140
Figure 8-1 (a)

the second call of alloc_etherdev() should be alloc_netdev()

Anonymous    May 01, 2008
Printed
Page 144
Footnote +

In line 2, "habit" should be "habitat".

Anonymous    May 01, 2008
Printed
Page 150
Split Operations: netdev_run_todo last line of first paragraph after head

reference to Figure 8-4 should be 8-5(a)

Anonymous    Feb 01, 2007
Printed
Page 150
Split Operations: netdev_run_todo last line of first paragraph after head

reference to Figure 8-4 should be 8-5(a)

Anonymous    May 01, 2008
Printed
Page 150
Figure 8-4

dev->unit should be dev->uninit "dev->destruct or" should be dev->destructor

Anonymous    May 01, 2008
Printed
Page 160
Figure 8-6

The transision [Send notification]-><Any linkwatch event pending on the device> should not be labeled with the word "no."

Anonymous    May 01, 2008
Printed
Page 164
Figure 8-7

kevent_wq should be keventd_wq

Anonymous    May 01, 2008
Printed
Page 167
Figure 8-8

The second ocurrence of SIOCGMIIREG should be SIOCSMIIREG The first ocurrence of SIOCGMIIRG should be SIOCGMIIREG The second ocurrence of SIOCGMIIRG should be SIOCSMIIREG

Anonymous    May 01, 2008
Printed
Page 168
Last line of first paragraph

8-9 should be 8-8.

Anonymous    Feb 01, 2007
Printed
Page 168
Last line of first paragraph

8-9 should be 8-8.

Anonymous    May 01, 2008
Printed
Page 178
Line 2 of paragraph 3

"the does" should be "does".

Anonymous    May 01, 2008
Printed
Page 183
2nd paragraph

"vortex_interrupt keeps processing incoming frames until the register says..." should be "vortex_interrupt keeps processing incoming frames as long as the register says..."

Anonymous    May 01, 2008
Printed
Page 192
do_IRQ line 3

"transmission" should be "execution"

Anonymous    May 01, 2008
Printed
Page 194
raise_softirq_irqoff line 1

__cpu_raise_softirq should be __raise_softirq_irqoff

Anonymous    May 01, 2008
Printed
Page 195
line 30 (including lines of code)

"(there are no softirqs pending, etc.)" should be: "(there are softirqs pending, etc.)"

Anonymous    Feb 01, 2007
Printed
Page 195
line 30 (including lines of code)

"(there are no softirqs pending, etc.)" should be: "(there are softirqs pending, etc.)"

Anonymous    May 01, 2008
Printed
Page 204
Talklet Processing, line 1

"low-latency" should be "low-priority". "high-latency" should be "high-priority".

Anonymous    May 01, 2008
Printed
Page 209
First line of last paragraph.

softnet_data->blog_dev should be softnet_data.backlog_dev

Anonymous    May 01, 2008
Printed
Page 211
Line 3 of last paragraph.

open should be opened

Anonymous    May 01, 2008
Printed
Page 216
Figure 10-1

_LINK_STATE_RX_SCHED should be __LINK_STATE_RX_SCHED

Anonymous    May 01, 2008
Printed
Page 220
in Figure 10-3

NETROLL should be NETPOLL and Move cpu out of the throttling stats should be Move cpu out of the throttling state

Anonymous    May 01, 2008
Printed
Page 232
First line of last paragraph.

dev->quota should be backlog_dev->quota

Anonymous    May 01, 2008
Printed
Page 233
Figure 10-6

refont should be reference count

Anonymous    May 01, 2008
Printed
Page 237
Line 4 of fourth paragraph from the bottom

above should be upper

Anonymous    May 01, 2008
Printed
Page 238
bullet 1

L4 should be L3

Anonymous    May 01, 2008
Printed
Page 240
Figure 11-1 (a)

(__LINK_STATE_RX_SCHED)) should be (__LINK_STATE_RX_SCHED)

Anonymous    May 01, 2008
Printed
Page 240
Figure 11-1 (b)

engress should be egress

Anonymous    May 01, 2008
Printed
Page 244
1st paragraph

.., output_queue is used by both NAPI and non-NAPI devices, and poll_list is used only to handle NON-NAPI devices should be .., output_queue is used by both NAPI and non-NAPI devices, and poll_list is used only to handle NAPI devices

Anonymous    Feb 01, 2007
Printed
Page 244
1st paragraph

.., output_queue is used by both NAPI and non-NAPI devices, and poll_list is used only to handle NON-NAPI devices should be .., output_queue is used by both NAPI and non-NAPI devices, and poll_list is used only to handle NAPI devices

Anonymous    May 01, 2008
Printed
Page 250
2nd bullet in middle of page

"In this case, the function does not actually fail, but generates a warning with a call to BUG()" should be "In this case, the BUG macro is invoked, leading to a kernel panic"

Anonymous    Feb 01, 2007
Printed
Page 250
2nd bullet in middle of page

"In this case, the function does not actually fail, but generates a warning with a call to BUG()" should be "In this case, the BUG macro is invoked, leading to a kernel panic"

Anonymous    May 01, 2008
Printed
Page 254
Figure 11-4 (b)

netif_x should be netif_rx

Anonymous    May 01, 2008
Printed
Page 268
5th(?) paragraph - near middle of the page

In "...and Ethereal are common users of AF_SOCKET sockets.", AF_SOCKET should be AF_PACKET

Anonymous    Feb 01, 2007
Printed
Page 268
5th(?) paragraph - near middle of the page

In "...and Ethereal are common users of AF_SOCKET sockets.", AF_SOCKET should be AF_PACKET

Anonymous    May 01, 2008
Printed
Page 273
Figure 13-4 (occurs twice in figure)

Dst MAC-00:20.... should be Dst MAC=00:20...

Anonymous    May 01, 2008
Printed
Page 281
Last line of last paragraph

isdiscussed should be is discussed

Anonymous    May 01, 2008
Printed
Page 283
Figure 13-8 (a), Protocol field

1534 should be 1536

Anonymous    May 01, 2008
Printed
Page 284
last paragraph (above 1st bullet)

"The two most significant bits of the first byte..." should read "The two least significant bits of the first byte..."

Anonymous    Feb 01, 2007
Printed
Page 284
last paragraph (above 1st bullet)

"The two most significant bits of the first byte..." should read "The two least significant bits of the first byte..."

Anonymous    May 01, 2008
Printed
Page 305
3rd paragraph

In the sentence "...from Bridge 1's perspective, Hosts A, B, C and D are all located in LAN2,..." Bridge 1 should be: Bridge 2

Anonymous    Feb 01, 2007
Printed
Page 305
3rd paragraph

In the sentence "...from Bridge 1's perspective, Hosts A, B, C and D are all located in LAN2,..." Bridge 1 should be: Bridge 2

Anonymous    May 01, 2008
Printed
Page 308
Last paragraph, line 5.

14-8 should be 14-9

Anonymous    May 01, 2008
Printed
Page 324
Figure 15-8(b) caption.

BPDU should be TCN BPDU

Anonymous    May 01, 2008
Printed
Page 347
Ingress BPDUs, paragraph 2, line 2.

Figure 15-7 should be Figure 15-8

Anonymous    May 01, 2008
Printed
Page 351
2nd-to-last bullet, line 2

old, disabled should be old disabled

Anonymous    May 01, 2008
Printed
Page 361
Paragraph 1, line 3.

Ethernel should be Ethernet

Anonymous    May 01, 2008
Printed
Page 371
Figure 16-11

ENGRESS should be EGRESS

Anonymous    May 01, 2008
Printed
Page 377
Figure 16-12

E thernet should be Ethernet

Anonymous    May 01, 2008
Printed
Page 385
br_transmit_config line 2

...in Chapter 15." should be ...in Chapter 15.

Anonymous    May 01, 2008
Printed
Page 390
NETDEV_UP, line 2.

br_stp_enabled_port should be br_stp_enable_port

Anonymous    May 01, 2008
Printed
Page 395
Table 17-3, argument for showstp

BRCTL_SET_BRIDGE_INFO should be BRCTL_GET_BRIDGE_INFO

Anonymous    May 01, 2008
Printed
Page 397
CLASS_DEV_ATTR line

S_IURGO should be S_IRUGO

Anonymous    May 01, 2008
Printed
Page 398
BRPORT_ATTR line

S_IURGO should be S_IRUGO

Anonymous    May 01, 2008
Printed
Page 432
Checksums, line 2

Some checksums cannot only detect errors... should be Some checksums can not only detect errors...

Anonymous    May 01, 2008
Printed
Page 444
third bullet from the top

(see the section ?Long-Living IP Peer Information? in Chapter 23. should be (see the section ?Long-Living IP Peer Information? in Chapter 23).

Anonymous    May 01, 2008
Printed
Page 451
line 1 and 2

'See the section "Local Delivery" in Chapter 20 should be ...in Chapter 35

Anonymous    Feb 01, 2007
Printed
Page 451
line 1 and 2

'See the section "Local Delivery" in Chapter 20 should be ...in Chapter 35

Anonymous    May 01, 2008
Printed
Page 452
Paragraph 2, line 2.

ip_option should be ip_options

Anonymous    May 01, 2008
Printed
Page 471
ip_forward_finish line 5

if (unlikely(opt->optlen) { should be if (unlikely(opt->optlen) )

Anonymous    May 01, 2008
Printed
Page 490
Figure 21-7

X+S1+S2<+PMTU should be X+S1+S2<=PMTU

Anonymous    May 01, 2008
Printed
Page 491
Figure 21-8

dala_len should be data_len

Anonymous    May 01, 2008
Printed
Page 493
Further handling of the buffers, paragraph 1, line3

sw_write_queue should be sk_write_queue

Anonymous    May 01, 2008
Printed
Page 500
Figure 21-11.

MSG_MOER should be MSG_MORE

Anonymous    May 01, 2008
Printed
Page 506
Figure 21-12(b)

ip_push_peinding_frames caller should be ip_push_peinding_frame's caller

Anonymous    May 01, 2008
Printed
Page 517
Line 1 of 3rd displayed block of code

sk2 should be skb2

Anonymous    May 01, 2008
Printed
Page 524
Line4 from the bottom

Last Recently Used (LRU) should be Least Recently Used (LRU)

Anonymous    May 01, 2008
Printed
Page 531
Last line above Figure 22-2.

both F3 and F4 (which is completely included). should be both F3 (which is completely included) and F4.

Anonymous    May 01, 2008
Printed
Page 536
Last line of paragraph 2

base should be basis

Anonymous    May 01, 2008
Printed
Page 537
Line 5 of bullet 2.

the most recently used should be the least recently used

Anonymous    May 01, 2008
Printed
Page 539
Figure 23-1

Delete the "No" above "Is the Create flag set?", and add a "Yes" below.

Anonymous    May 01, 2008
Printed
Page 542
Paragraph 2, line 3.

IPSTATS_MIX_XXX should be IPSTATS_MIB_XXX

Anonymous    May 01, 2008
Printed
Page 553
Table 23-2

ipfrag_high_tresh should be ipfrag_high_thresh and ipfrag_low_tresh should be ipfrag_low_thresh

Anonymous    May 01, 2008
Printed
Page 556
Figure 23-3

skhuff.h should be skbuff.h

Anonymous    May 01, 2008
Printed
Page 577
Paragraph 2, line 7.

The figure also shows that... should be Figure 24-4 also shows that...

Anonymous    May 01, 2008
Printed
Page 581
Paragraph 4, line 8.

traceroute, which needs to plays with... should be traceroute, which needs to play with...

Anonymous    May 01, 2008
Printed
Page 581
Last paragraph, line 1.

...and the ones used to store... should be ...and the one used to store...

Anonymous    May 01, 2008
Printed
Page 592
Bottom of page

Add: 5. Router RT2 forwards the packet to Host Y.

Anonymous    May 01, 2008
Printed
Page 592
Figure 25-3

Anonymous    May 01, 2008
Printed
Page 593
ICMP_TIME_EXCEEDED paragraph 2, line 3.

The intermediate host that drops the packet... should be The intermediate router that drops the packet...

Anonymous    May 01, 2008
Printed
Page 610
Paragraph 2, line 1

xlim_allow should be xrlim_allow

Anonymous    May 01, 2008
Printed
Page 615
Figure 25-13

Low Warning Message should be Log Warning Message

Anonymous    May 01, 2008
Printed
Page 615
Figure 25-13

Delete the "Yes" on the arrow out of [Deliver ICMP to raw IP sockets].

Anonymous    May 01, 2008
Printed
Page 619
ICMP_MIB_INXXX, ICMP_MIB_OUTXXX

there is one per-ICMP should be there is one per ICMP

Anonymous    May 01, 2008
Printed
Page 631
Line 3.

CMSA/CD should be CSMA/CD

Anonymous    May 01, 2008
Printed
Page 658
Paragraph 4, line 4.

"Figure 26-12" should be "Figure 26-13".

Anonymous    May 01, 2008
Printed
Page 658
Figure 27-4

The arrow pointing from NUD_STALE to NUD_REACHABLE should actually point the other way around (from NUD_REACHABLE to NUD_STALE).

Anonymous    May 01, 2008
Printed
Page 661
Last line.

the section "Final Common Processing in Chapter 28). should be the section "Final Common Processing" in Chapter 28).

Anonymous    May 01, 2008
Printed
Page 662
2nd line

NEIGH_UPDATE_ISROUTER Should be NEIGH_UPDATE_F_ISROUTER

Anonymous    May 01, 2008
Printed
Page 663
Figure 27-5(a), block b.

NUD_VALUE should be NUD_VALID

Anonymous    May 01, 2008
Printed
Page 681
Figure 27-9, top left

Form? should be From?

Anonymous    May 01, 2008
Printed
Page 681
Figure 27-9, lower middle

proxy_len should be proxy_qlen

Anonymous    May 01, 2008
Printed
Page 692
5th paragraph, 1st sentence

"The input skb buffer, ip_finish_output2, includes the packet data..." should read "The skb buffer input to ip_finish_output2, includes the packet data..." or "The input skb buffer includes the packet data..."

Anonymous    May 01, 2008
Printed
Page 694
Figure 27-13(a), lower left

dst->hh (neigh hh init) should be dst->hh (neigh_hh_init)

Anonymous    May 01, 2008
Printed
Page 707
Figure 28-5 (error occurs in three places)

AROP_ should be ARPOP_

Anonymous    May 01, 2008
Printed
Page 712
First line of last paragraph.

HostC should be Host C

Anonymous    May 01, 2008
Printed
Page 721
Last line of first displayed source code.

Delete the final #endif

Anonymous    May 01, 2008
Printed
Page 742
Bullet (b), line 1 of paragraph 2

A2 should be A

Anonymous    May 01, 2008
Printed
Page 742
Bullet (b), line 3 of paragraph 3.

accordingly to should be according to

Anonymous    May 01, 2008
Printed
Page 744
ARPD, line 3.

system performances should be system performance

Anonymous    May 01, 2008
Printed
Page 745
First entry under Kernel Side

neigh_apps_ns should be neigh_app_ns

Anonymous    May 01, 2008
Printed
Page 745
Figure 28-22 (error occurs in two places)

RTN_ should be RTM_

Anonymous    May 01, 2008
Printed
Page 747
Figure 28-23 (error occurs in two places)

RTN_ should be RTM_

Anonymous    May 01, 2008
Printed
Page 759
unsigned long confirmed, last line.

...described in . should be ...described in "Updating a Neighbor's Information: neigh_update" in Chapter 27.

Anonymous    May 01, 2008
Printed
Page 762
int entry_size, line 2.

...includes a field whose size depends on the protocol (primary_key), should be ...includes a field (primary_key) whose size depends on the protocol,

Anonymous    May 01, 2008
Printed
Page 813
Figure 31-5(c)

In the last line of the ip route add command, 10.0.0.2.1 should be 10.0.2.1

Anonymous    May 01, 2008
Printed
Page 849
Figure 32-6.

The No branch of "Have all next hops been marked DEAD?" is not labeled.

Anonymous    May 01, 2008
Printed
Page 885
First line.

"is" should be "is not".

Anonymous    May 01, 2008
Printed
Page 893
Bullet 2, line 4.

"any" should be "an".

Anonymous    May 01, 2008
Printed
Page 898
Bullet 4, line 1.

"indegiven" should be "given".

Anonymous    May 01, 2008
Printed
Page 934
Figure 35-8(b) caption.

p_route_output_slow should be ip_route_output_slow.

Anonymous    May 01, 2008
Printed
Page 961
Footnote +, line 5.

"where as" should be "whereas".

Anonymous    May 01, 2008
Printed
Page 982
metrics, paragraph 2, line 3.

"options" should be "option".

Anonymous    May 01, 2008