Understanding Linux Network Internals

First Edition Januar 2006
ISBN 978-0-596-00255-8
Seiten 1062
EUR48.00, SFR78.90


Weitere Informationen zu diesem Buch

Inhaltsverzeichnis | Index | Probekapitel | Rezensionen |


Index

	
[ Numbers ], [ A ], [ B ], [ C ], [ D ], [ E ], [ F ], [ G ], [ H ], [ I ], [ J ], [ K ], [ L ], [ M ], [ N ], [ O ], [ P ], [ Q ], [ R ], [ S ], [ T ], [ U ], [ V ], [ W ], [ X ], [ Y ], [ Z ],

Numbers[ Top ]
802.1d device (see bridge)
802.1D-1998 standard, 309
802.1D-2004 standard, 309
802.1Q device, 101, 102
802.1Q-2002 standard, 309
802.1s standard, 309
802.1w standard, 309
802.3 standard, compared to Ethernet protocols, 281-287
802.4 device (see Token Bus device)
802.5 device (see Token Ring 4 MB/s device)

A[ Top ]
aarp_rcv function, 291
accept_fastpath function pointer, net_device structure, 56
accept_redirects file, 963, 965
accept_redirects variable, 963
accept_source_route file, 963, 965
accept_source_route variable, 963
access bridges, 312
addbr command, brctl utility, 392, 395
addif command, brctl utility, 395
addifr command, brctl utility, 392
addr field
      bridge_id structure, 399
      cork structure, 565
      net_bridge_fdb_entry structure, 399
addrconf.c file, 44
address class, 783
address learning by bridge, 302-305
Address Resolution Protocol (see ARP)
addr_len field, net_device structure, 47, 142
AF_PACKET sockets, 268
af_packet_priv field, packet_type structure, 280
ageing_time field, net_bridge structure, 401
ageing_timer field, net_bridge_fdb_entry structure, 399
age_list field, net_bridge structure, 401
age_list structure, 360
aging
      of addresses, by bridge, 304, 336, 341
      of BPDUs, 326
Aging timer, STP, 336, 341
AH (IP Authentication Header Protocol), 570
alg_table_lock lock, 844, 986
aliasing interfaces, 101, 792
allmulti field, net_device structure, 51
alloc_etherdev function, 139
alloc_fcdev function, 139
alloc_fddidev function, 139
alloc_hippi_dev function, 139
alloc_irdadev function, 139
alloc_netdev function, 138, 140, 145, 172
allocs field, neigh_statistics structure, 771
alloc_skb function, 33-35
alloc_trdev function, 139
alloc_xxxdev functions, 172
anycast_delay field, neigh_parms structure, 767
anycast_delay file, 755
anycast_delay variable, 755
AppleTalk Address Resolution Protocol, 291
AppleTalk Datagram Delivery Protocol, 291
AppleTalk protocol, xxi
application layer
      communication choices made by, 271
      data units for (messages), 267
app_probes field, neigh_parms structure, 767
app_probes variable, 755
app_solicit file, 755
arch_initcall macro, 126
Arkin, Ofir ("ICMP Usage in Scanning"), 585
ARP (Address Resolution Protocol)
      compared to ND, 748
      compile-time options, 708
      configuration, 708-714
      destination address types, 701
      devices needing, 720
      devices not needing, 720
      events generated, 743
      events received, 742
      examples, 740-742
      flux problem, 707
      gratuitous ARP, 702-707
      initialization, 714-716
      LVS (Linux Virtual Servers) and, 709
      packet format, 700-702
      proxying, 735-740
      receiving packets, 722, 726-734
      responding from multiple interfaces, 707
      routing and, 800
      RTO_ONLINK flag and, 873
      solicitation requests, 724
      transaction, example of, 702
      transmitting packets, 722-726
      Wake-on-LAN (WOL) events, 743
ARP cache
      arpd daemon implementing, 746
      binding routing cache to, 868
      updated with gratuitous ARP, 704
      viewing contents of, 714
arp command, 749, 750, 752
arp file, 714, 753
ARP over IP protocol, 687
ARP protocol, 635
      direct calls to, 634
      initialization and cleanup, 687
      instance of neigh_ops structure for, 657
      proxying for, 637-640
arp_announce file, 757
ARP_ANNOUNCE option, 709, 725
arp_bind_neighbour function, 868
arp_broken_ops structure, 718
arp_cache file, 753
arp_constructor function, 719, 720
arpd daemon, 665, 744-746
ARPD option, 708
arp_direct_ops structure, 718
arp_error_report function, 743
arp_filter file, 757
ARP_FILTER option, 711
arp_find function, 773
arp_fwd_proxy function, 714
arp_generic_ops structure, 718
arphdr structure, 700
arp_hh_ops structure, 718
arp_ignore file, 757
ARP_IGNORE option, 707, 709
arping command, 18, 704
arp_init function, 687, 714-716
ARPOP_REPLY packets, 701, 727, 733-734
ARPOP_REQUEST message type, 702
ARPOP_REQUEST packets, 701, 727, 729-732, 734
arp_parms field, in_device structure, 562
arp_process function, 711, 727-734, 735
arp_queue field, neighbour structure, 696, 761
arp_rcv function, 281, 722, 726, 773
arp_req_delete function, 752
arp_req_set function, 752
arp_send function, 722
arp_solicit function, 709, 724
arp_tbl structure, 715, 761, 773
ARP_UNSOLICITED option, 708
arrays (vectors), 3
asymmetric routes, 783, 828
asynchronous garbage collection, 8
      neighboring infrastructure, 675, 677
      routing cache, 796, 891
atalk_ptr field, net_device structure, 50
atalk_rcv function, 276, 291
atm_clip_exit function, 687
atm_clip_init function, 687
attribution for code examples, xxii
autoconfig field, ipv4_config structure, 564
avg_blog field, softnet_data structure, 207, 208, 226, 227
AVL data structure, 536
avl_height field, inet_peer structure, 561
avl_left field, inet_peer structure, 561
avl_right field, inet_peer structure, 561
AX25 device, tx_queue_len value for, 52
ax25_kiss_rcv function, 276
ax25_ptr field, net_device structure, 50

B[ Top ]
backlog queue, 223, 231-235
backlog_dev field, softnet_data structure, 207
BADCLASS macro, 843, 986
base_addr field, net_device structure, 44, 142
base_reachable_time field, neigh_parms structure, 766
base_reachable_time file, 755
base_reachable_time variable, 755
bf_fdb_change_addr function, 404
BH (see bottom half)
Big Endian format, 15
big_endian.h file, 16
BIRD routing protocol daemon, 820, 860
black hole route, 794
bonding device, 43, 101
      notifications on, 170
      processing of ingress frames, 237
      tx_queue_len value for, 53
books (see publications)
BOOTP protocol, IP configuration using, 545
boot-time initialization routines, 128-130
boot-time kernel options, 85, 93, 116-122
boot-time PCI device activities, 112
bottom half (BH), 4
bottom half handlers, 184-186
      implementations of, 186
      old style, concurrency and, 187
      requirements for, 190
      software interrupts for (version 2.4 and higher), 193-196
      tasklets for, 196-198
      version 2.2 and earlier, 190-193
BPDUs (Bridge Protocol Data Units), 316, 323-328
      aging of, 326
      compared to data frames, 376
      configuration BPDUs, 323, 324-326
      encapsulation of, 344
      ingress BPDUs, handling, 347, 383
      processing of, 371-372
      TCN BPDU, 323
      transmitting, 385
bpq_rcv function, 282
br field, net_bridge_port structure, 399
br_add_bridge function, 361, 392, 403
br_add_if function, 361, 364, 374, 392, 403
br_become_designated_port function, 381
br_become_root_bridge function, 381, 389
br.c file, 360
br_change_mtu function, 363
br_config_bpdu structure, 360, 404
br_configuration_update function, 381, 386
brctl utility, 391
      commands, list of, 391
      configuring bridge devices and ports, 395
      creating bridge devices and ports, 395
br_deinit function, 361, 403
br_del_bridge function, 361, 364, 392, 403
br_del_if function, 361, 392, 403
br_deliver function, 372
br_designated_port_selection function, 381
br_dev_close function, 363
br_dev_ioctl function, 363
br_dev_open function, 363, 367
br_dev_setup function, 363
br_dev_stop function, 368
br_dev_xmit function, 363, 380
br_fdb_cache variable, 404
br_fdb_change_addr function, 374
br_fdb_cleanup function, 375, 404
br_fdb_delete_by_port function, 375
_ _br_fdb_get function, 373, 404
br_fdb_get function, 373, 374, 404
br_fdb_init function, 373, 403
br_fdb_insert function, 366, 374, 404
br_fdb_put function, 374
br_fdb_update function, 375, 404
br_features_recompute function, 367
br_flood function, 372, 404
br_forward function, 372, 404
br_forward_delay_timer_expired function, 388, 389
br_get_port function, 382
br_get_tick function, 386, 404
br_handle_bridge function, 375
br_handle_frame function, 376, 404
br_handle_frame_finish function, 376, 378, 404
br_handle_frame_hook function pointer, 360
br_handle_frame_hook variable, 404
br_hello_timer_expired function, 388
br_hold_timer_expired function, 388
bridge, 101, 297-299
      access bridges, 312
      adding ports to, 364
      address learning by, 302-305
      aging mechanism for addresses, 304, 336, 341
bridge (continued)
      between LANs of different technologies, 302
      binding real device to, 355
      broadcast address, handling, 304
      compared to switch, 299
      creating, 361, 362, 395
      cut-through bridge, 298
      deleting, 364
      deleting ports from, 367
      disabling, 363, 367
      enabling, 363, 367
      enabling STP on, 383
      flooding by, 304
      forwarding database for, 373-375
      frames addressed to, 299
      garbage collection timer for, 375
      host for, 300
      loop topology not working with, 307
      merging LANs using, 300
      multicast address, handling, 304
      multiple, advantages of, 314
      multiple bridge scenarios, 305-309
      naming, 362
      net_device field for, 53
      notifying of topology change, 342
      passive learning by, 302
      setup routine for, 362
      store and forward bridge, 298
      transparency of, 305, 307
      tx_queue_len value for, 53
bridge ID, STP, 321, 322, 359, 382
bridge MAC address, 382
bridge ports, 311
      adding to bridge, 364
      changing state of, 340, 370
      creating, 361, 395
      deleting, 367
      disabling, 368-369
      enabling, 368-369
      RSTP, 351
      STP, 318-320
bridge priority, STP, 321, 322, 323
Bridge Protocol Data Units (see BPDUs)
bridge timers, STP, 336, 388
bridged network, 311
bridge_fdb_entry structure, 404
bridge_forward_delay field, net_bridge structure, 402
bridge_hello_time field, net_bridge structure, 402
bridge_id field, net_bridge structure, 401
bridge_id structure, 359, 398, 404
bridge_max_age field, net_bridge structure, 402
bridging
      abstraction of bridge device, 355-357
      configuration, 396
      configuring, user-space tools for, 391-396
      data structures for, 359-360, 398-402, 404
      data structures for, list of, 404
      files and directories for, list of, 405
      frame processing by, 371-372
      functions for, list of, 403
      ingress traffic, handling, 375-380
      initialization of code for, 360
      performance of, 355
      solicitation request processing and, 641
      statistics on, 398
      transmission using, 380
      variables for, list of, 404
Bridging-Firewalling, 360
br_init function, 360, 403
br_initial_port_cost function, 366
br_ioctl_hook function pointer, 360
br_is_designated_for_some_port function, 381
br_is_designated_port function, 381
br_is_root_bridge function, 381
br_make_blocking function, 370, 388, 404
br_make_forwarding function, 370, 404
br_make_port_id function, 366
BR_MAX_PORTS variable, 404
br_message_age_timer_expired function, 386, 388
br_min_mtu function, 403
br_netfilter_init function, 360, 403
broadcast address, 284
      bridge handling of, 304
      static translation of, 633
broadcast field, net_device structure, 47, 142
broadcasts
      ARP handling, 702
      directed broadcasts, 788
      ICMP, 607
      ignoring, 621
      limited broadcasts, 930
      local delivery of, 929
      packet, testing for, 464
      packet type for, 284
      subnet broadcasts, 930
Brooks, Frederick P. (quote about data), 22
br_pass_frame_up function, 378, 379, 404
br_pass_frame_up_finish function, 379, 404
br_port field, net_device structure, 53, 376
br_port_state_selection function, 369, 382
br_private.h file, 360
br_private_stp.h file, 360
br_received_config_bpdu function, 385, 386, 404
br_received_tcn function, 389
br_received_tcn_bpdu function, 385, 404
br_record_config_information function, 382
br_record_config_timeout_values function, 382
br_reply function, 385, 404
br_root_selection function, 381
br_send_bpdu function, 404
br_set_tick function, 386, 404
br_should_become_designated_port function, 381
br_should_become_root_port function, 381
BR_STATE_BLOCKING state, 370
BR_STATE_DISABLED state, 366
BR_STATE_FORWARDING state, 369, 370, 376, 389
BR_STATE_LEARNING state, 370, 389
BR_STATE_LISTENING state, 370
BR_STATE_XXX enumeration list, 399
br_stp_change_bridge_id function, 386, 387
br_stp_disable_bridge function, 403
br_stp_disable_port function, 368, 386, 387, 403
br_stp_enable_bridge function, 367, 403
br_stp_enable_port function, 368, 403
br_stp_handle_bpdu function, 376, 383, 386, 404
br_stp_port_timer_init function, 388, 403
br_stp_recalculate_bridge function, 403
br_stp_recalculate_bridge_id function, 363, 366, 382
br_stp_set_bridge_priority function, 386, 387, 392
br_stp_set_path_cost function, 386, 392
br_stp_set_port_priority function, 392
br_stp_timer_init function, 375, 388, 403
br_supersedes_port_info function, 381
br_sysfs_addbr function, 403
br_sysfs_addif function, 366, 403
br_sysfs_delbr function, 403
br_sysfs_removeif function, 403
br_tcn_timer_expired function, 388
br_topology_change_acknowledge function, 382
br_topology_change_acknowledged function, 382
br_topology_change_detection function, 382
br_topology_change_timer_expired function, 388
br_transmit_config function, 385, 386, 404
br_transmit_tcn function, 385, 404
br_uninit function, 360
buffers (see sk_buff structure)
bug catching, 17
BUG_ON macro, 17
BUG_TRAP macro, 17
byteorder.h file, 16
byte-ordering conversions, 15
bytes, 3

C[ Top ]
caching
      hash tables implementing, 6
      in neighboring subsystem, 666-668
      L2 headers, 683-687
      memory caches, 5
      multipath caching, 836, 873-878, 943
      multipath routing, 811-812
      (see also ARP cache; DST; routing cache)
call_usermodehelper function, 96, 104
Carrier Sense Multiple Access with Collision Detection protocol (CSMA/CD), 630-631
cb field, sk_buff structure, 29
change_mtu function pointer, net_device structure, 56, 142
change_nexthops macro, 842, 942
channeling, 779
check virtual function, dst_ops structure, 880, 983
checksum field, ICMP header, 587
CHECKSUM_HW flag, 442, 443
CHECKSUM_NONE flag, 441, 443
checksums, 432-438
      algorithms for, 432
      for frame transmission, 250
      functions for, 434-436
      L3 checksum, 473
      L4 checksum, 437-438, 473, 502, 533
      net_device structure fields for, 441
      reliability of, 432
      sk_buff structure fields for, 441-443
      status values for, 441
      updating, when required, 433
CHECKSUM_UNNECESSARY flag, 442, 443
child field, dst_entry structure, 981
class A addresses, 784
class B addresses, 784
class C addresses, 784
class D addresses, 784
class E addresses, 784
class_dev field, net_device structure, 54
cleanup_module function, 122, 135
cleanup_once function, 540
Click router, xxi
clip_tbl structure, 761, 773
cloned field, sk_buff structure, 30, 40
cnf field, in_device structure, 562
cng_level field, softnet_data structure, 207, 208, 226, 227
code examples, use of, xxii
code field, ICMP header, 586
coding patterns, 4-18
      bug catching, 17
      byte-ordering conversions, 15
      condition checks, compile-time optimization for, 13
      conditional directives, 11-13
      function pointers, 8-10
      garbage collection, 8
      goto statement, 10
      hash tables, 6
      measuring time, 17
      memory caches, 5
      mutual exclusion, 14-15
      reference counts, 6
      statistics, 17
      vector definitions, 11
      VFT (virtual function table), 10
collisions, 630
compile options, finding symbols associated with, 24
compiler directives, conditional, 11-13
completion_queue field, softnet_data structure, 207
components (see subsystems)
concurrency, interrupts and, 186
condition checks, compile-time optimization for, 13
conditional directives, 11-13
CONFIG_ARPD option, 708
CONFIG_HOTPLUG symbol, 133
CONFIG_IP_ACCEPT_UNSOLICITED_ARP option, 708
CONFIG_IP_MROUTE symbol, 831
CONFIG_IP_MULTIPLE_TABLES symbol, 832
CONFIG_IP_MULTIPLE_TABLES variable, 911
CONFIG_IP_PIMSM_V1 symbol, 831
CONFIG_IP_PIMSM_V2 symbol, 831
CONFIG_IP_ROUTE_FWMARK symbol, 832
CONFIG_IP_ROUTE_MULTIPATH symbol, 832
CONFIG_IP_ROUTE_MULTIPATH_CACHED symbol, 832
CONFIG_IP_ROUTE_NAT symbol, 833
CONFIG_IP_ROUTE_VERBOSE symbol, 833
CONFIG_MODULE symbol, 132
CONFIG_NET_CLS_ACT symbol, 24
CONFIG_NET_FASTROUTE symbol, 833
CONFIG_NET_HW_FLOWCONTROL symbol, 833
CONFIG_NET_SCHED symbol, 24
config_pending field, net_bridge_port structure, 400
configuration
      bridging, 396
      changes to, serialization used for, 71
      device initialization, 103
      Ethernet, 293
      frame reception, 262
      ICMPv4, 620
      initialization options for, 85, 93
      IPv4, 553-555
      neighboring subsystem, 752-757
      PCI layer, 114
      routing, 958-966
      Token Ring, 293
      virtual devices, 102
configuration BPDUs, 323, 324-326
      ingress, handling, 347
      ingress, processing, 385
      priority vector, 325
      transmitting, 346, 386
      when to transmit, 326
configuration updates, STP, 386
CONFIG_WAN_ROUTER symbol, 832
confirmed field, neighbour structure, 759
congestion control algorithms, fragmentation incompatible with, 424
congestion management for reception of frames, 225-228
connected_output function, neigh_ops structure, 770
constructor function, neigh_table structure, 672, 763
contact information for this book, xxiii
conventions used in this book, xxii
core_initcall macro, 126
cork structure, 440, 508, 564
cpu_collision field, netif_rx_stats structure, 262
CPU_DEAD notification, 204
CPU_ONLINE notification, 203
CPU_PREPARE_UP notification, 204
CPU_UP_CANCELLED notification, 204
CPU_UP_PREPARE notification, 203
cscope tool, 19
CSMA/CD (Carrier Sense Multiple Access with Collision Detection protocol), 630-631
csum field, sk_buff structure, 30, 441-443
csum_add function, 533
csum_block_add function, 436
csum_block_sub function, 436
csum_fold function, 435
csum_partial function, 436
csum_tcpudp_magic function, 436
ctl_data structure, 62
ctl_table structure, 62
      initializing, 64
      instances of, location of, 67
cut-through bridge, 298

D[ Top ]
daddr field, ipq structure, 559
_data field, ip_options structure, 557
data field, sk_buff structure, 26
data structures, 22
      (see also specific data structures)
data units, terminology for, 4, 267
data_len field, icmp_bxm structure, 602
data_len field, sk_buff structure, 26
datalink_proto structure, 291, 293
dataref field, sk_buff structure, 40
dead code, 19
dead field
      in_device structure, 562
      neighbour structure, 760
      neigh_parms structure, 767
debugging, bug catching macros for, 17
DECnet protocol, xxi, 687
default gateway, 788
      selection of, 939, 940
      selection of, with policy routing, 946
default route, 779
defragmentation of packets (see fragmentation/defragmentation of packets)
delay_first_probe_time file, 755
delay_probe_time field, neigh_parms structure, 766
delay_probe_time variable, 755
delbr command, brctl utility, 395
del_br function, 364
delbrr command, brctl utility, 392
delif command, brctl utility, 395
delifr command, brctl utility, 392
Denial of Service (DoS) attacks
      directed broadcasts used for, 788
      fragmentation timer for, 424, 512
      randomization of hash table for, 6, 666
      randomization of timer delays and, 95
dequeue function, 246
designated bridges, STP, 318
designated port, STP, 320, 330
designated_bridge field, net_bridge_port structure, 400
designated_cost field, net_bridge_port structure, 400
designated_port field, net_bridge_port structure, 400
designated_root field
      net_bridge structure, 401
      net_bridge_port structure, 400
Destination Address field, IP header, 414
destination cache (see DST)
Destination NAT (DNAT), 736
Destination Service Access Point (DSAP), 268, 287, 290
destination-based proxying, 639
destroy virtual function, dst_ops structure, 880, 983
destroys field, neigh_statistics structure, 771
destructor function pointer
      neigh_ops structure, 769
      net_device structure, 55, 156, 169
      sk_buff structure, 27
dev field
      dst_entry structure, 981
      in_device structure, 562
      neighbour structure, 759
      net_bridge structure, 401
      net_bridge_port structure, 399
      packet_type structure, 279
      sk_buff structure, 27
dev file, 103
dev_activate function, 160
dev_add_pack function, 279, 280, 293, 444
dev_addr field, net_device structure, 47, 363
dev_alloc_name function, 139, 172
dev_alloc_skb function, 33-35
dev_base variable, 43, 145, 146, 172
dev_base_lock variable, 172
dev_boot_phase variable, 96, 104
dev_boot_setup variable, 135
dev_close function, 160
dev_cpu_callback function, 95
dev_deactivate function, 161
dev_ethtool function, 168, 172
_ _devexit macro, 127, 132, 134
_ _devexitdata macro, 127, 134
_ _devexit_p macro, 127, 134
dev_get_by_index function, 147
dev_get_by_name function, 147
dev_hold function, 158, 172
device driver
      disabling transmissions, 89
      initializations by, 143
      loading, causing registration of device, 137
      notifying kernel of frame reception, 178-183
      unloading, causing unregistration of device, 138
device round-robin algorithm, multipath routing, 811, 812, 878
device status changes, handling, 856-858
device-based proxying, 639
device_initcall macro, 126
devices (see network devices; virtual devices)
dev_id field
      irqaction structure, 92
      net_device structure, 44
dev_index_head hash table, 146, 172
devinet_init function, 845, 987
devinet_sysctl_forward function, 967
_ _devinit macro, 127, 132, 134
_ _devinitdata macro, 124, 127, 132, 134
dev_ioctl function, 362
dev_kfree_skb function, 35, 264
dev_kfree_skb_any function, 264
dev_kfree_skb_irq function, 255, 257, 264
dev_mcast file, 103
dev_mcast_init function, 95, 103
dev_name_head hash table, 146, 172
dev_new_index function, 155
dev_open function, 159
dev_proc_init function, 95, 103
dev_put function, 158, 172
dev_queue_xmit function, 239, 243, 249-255, 264
      bridging code using, 372
      connected to L3 protocols via neighboring layer, 655
      neighboring subsystem and, 635, 660, 693, 772
dev_remove_pack function, 281, 293
dev_set_mtu function, 366
dev_set_promiscuity function, 366
dev_shutdown function, 157
dev_watchdog function, 259
dev_weight file, 263
DF (Don't Fragment) field, IP header, 413, 423, 507
DHCP protocol
      duplicate addresses and, 703
      IP configuration using, 545, 632
DiffServ Code Point (see DSCP)
directed broadcasts, 788
directives, conditional, 11-13
directories
      bridging, list of, 405
      component initialization, list of, 135
      device registration and initialization, list of, 173
      ICMP, list of, 622
      IPv4, list of, 568
      L4 protocols, list of, 583
      neighboring subsystem, list of, 774
      network device initialization, list of, 105
      networking, list of, 66
      notification chains, list of, 83
      PCI layer, list of, 115
      protocol handlers, list of, 294
      routing, list of, 989
      transmission and reception, list of, 265
disabling network devices, 137
divert field, net_device structure, 53
Diverter
      allocating configuration block for, 155
      net_device fields for, 53
      processing ingress frames, 238
dma field, net_device structure, 44
DMA, Scatter/Gather, 155
DMA transmission, 89
dma.c file, 44
DNAT (Destination NAT), 736
dn_dev_create function, 768
dn_neigh_cleanup function, 687
dn_neigh_init function, 687
dn_neigh_table structure, 761, 773
dn_ptr field, net_device structure, 50
dn_route_rcv function, 282
do_basic_setup function, 85
do_bottom_half function, 192
do_initcalls macro, 85, 128, 134
do_ioctl function pointer, net_device structure, 56, 142, 168
do_IRQ function, 192, 195, 264
Don't Fragment (DF) field, IP header, 413, 423, 507
DOS attacks (see Denial of Service attacks)
_ _do_softirq function, 200
do_softirq function, 199, 202, 264
dropped field, netif_rx_stats structure, 262
drr_select_route function, 878
DSAP (Destination Service Access Point), 268, 287, 290
DSCP (DiffServ Code Point), 412, 803
DST, 836, 861
      external events, handling, 883
      initialization, 95
      interface to calling protocols, 879-885
      interface to IPsec, 882
dst field
      net_bridge_fdb_entry structure, 399
      sk_buff structure, 29, 445, 450
dst_alloc function, 865, 880, 987
DST_BALANCED flag, 875
dst.c file, 879
dst_confirm function, 649
dst_destroy function, 880, 893, 988
dst_dev_event function, 988
dst_discard_in function, 921, 923
dst_discard_out function, 921, 923
dst_entry structure, 836, 981-983
      garbage collection for, 886
      interface to higher layers, 879
      neighboring subsystem and, 652
      routing cache and, 862, 864
dst_free function, 893, 988
dst_garbage_list variable, 894, 988
dst_gc_timer timer, 894
dst_gc_timer_expires variable, 894
dst_gc_timer_inc variable, 894
dst.h file, 879
dst_ifdown function, 881, 988
dst_init function, 95, 987
dst_input function, 453, 988
dst_link_failure function, 881, 988
dst_negative_advice function, 881, 988
dst_ops structure, 836, 879-881, 983
dst_output function, 471, 474, 507, 566, 988
dst_pmtu function, 445
dst_release function, 893
dst_set_expires function, 892, 988
dtime field, inet_peer structure, 561
dynamic macro definition, 132-134
dynamic probing for device driver, 109
dynids field, pci_driver structure, 108

E[ Top ]
early_param macro, 118
ebtables framework, 376
econet_rcv function, 276
ec_ptr field, net_device structure, 50
editors, 19
egress (output), 4
      (see also transmission)
egress queues, 212, 241-243
Emacs editor, 19
embedded devices, Linux used for, xv
enable_wake function, pci_driver structure, 108
Encapsulating Security Payload Protocol (ESP), 570
end field, sk_buff structure, 26
End of Options List, IP option type field, 415, 416
endfor_ifa macro, 841, 986
endfor_nexthops macro, 842
endianness, 15
enqueue function, 246
entries field
      dst_ops structure, 983
      neigh_parms structure, 766
      neigh_table structure, 763
entry_size field
      dst_ops structure, 983
      neigh_table structure, 762
EQL device, tx_queue_len value for, 52
equalization algorithm, per packet distribution, 814
equalizer load balancer (EQL device), 52
err_handler function pointer
      inet6_protocol structure, 582
      inet_protocol structure, 616, 619
      net_protocol structure, 571
error field
      dst_entry structure, 982
      icmp_control structure, 601
error messages, ICMP, 587, 605
      (see also ICMP messages)
error_burst file, 960, 962
error_cost file, 960, 962
error_report function, neigh_ops structure, 689, 743, 769
ESP (IP Encapsulating Security Payload Protocol), 570
ether= keyword, 117, 120
EtherChannel device, 43
      MTU value for, 46
      tx_queue_len value for, 52
Ethernet device
      alloc_netdev wrapper for, 139
      MTU value for, 46
      transmission failure by, 89
      tx_queue_len value for, 52
Ethernet protocols
      choice of, 268
      compared to 802.3 standard, 281-287
      configuration, 293
      CSMA/CD support, 631
      header for, 282
      list of, 281
      LLC protocol, 287-290
      packet type, setting, 284
      setting protocol and length, 286
      SNAP protocol, 290-292
      (see also L2)
Ethernet: The Definitive Guide (O'Reilly), 630
ethhdr structure, 282
ETH_P_8021Q protocol, 282
ETH_P_802_2 protocol, 276
ETH_P_802_3 protocol, 276
ETH_P_ALL protocol, 276, 279
ETH_P_ARP protocol, 281
ETH_P_AX25 protocol, 276
ETH_P_BPQ protocol, 282
ETH_P_DNA_RT protocol, 282
ETH_P_ECONET protocol, 276
ETH_P_HDLC protocol, 276
ETH_P_IP protocol, 281
ETH_P_IPV6 protocol, 282
ETH_P_IPX protocol, 282
ETH_P_IRDA protocol, 276
ETH_P_LOCALTALK protocol, 276
ETH_P_PPP_DISC protocol, 282
ETH_P_PPP_SES protocol, 282
ETH_P_PPPTALK protocol, 276
ETH_P_RARP protocol, 282
ETH_P_TR_802_2 protocol, 276
ETH_P_WAN_PPP protocol, 276
ETH_P_X25 protocol, 281
ethtool tool, 166-168
ethtool_ops function pointer, net_device structure, 55, 142, 166
eth_type_trans function, 283, 293
      packet type, setting, 284
      setting protocol and length, 286
examples (see code examples)
_ _exit macro, 124, 126, 131, 133, 134
_ _exitcall macro, 126, 129, 131, 134
_ _exitdata macro, 126, 134
expires field, dst_entry structure, 982

F[ Top ]
faddr field, ip_options structure, 557
failover system, gratuitous ARP used for, 704
fa_info field, fib_alias structure, 971
fa_list field, fib_alias structure, 971
family field
      dst_ops structure, 983
      neigh_ops structure, 769
      neigh_table structure, 762
fa_scope field, fib_alias structure, 838, 971
fast network translation, 833
fast switching, 56, 833
fa_state field, fib_alias structure, 971
fastroute_defer field, netif_rx_stats structure, 262
fastroute_deferred_out field, netif_rx_stats structure, 262
fastroute_hit field, netif_rx_stats structure, 262
fastroute_latency_reduction field, netif_rx_stats structure, 262
fastroute_success field, netif_rx_stats structure, 262
fa_tos field, fib_alias structure, 971
fa_type field, fib_alias structure, 971
fdb_create function, 373, 404
fdb_delete function, 375
fdb_find function, 373
FDDI device
      alloc_netdev wrapper for, 139
      MTU value for, 46
      tx_queue_len value for, 52
feature initialization, 86
features field, net_device structure, 45, 142, 441
fi field, fib_result structure, 978
FIB (Forwarding Information Base) (see routing table)
fib_add_ifaddr function, 850-854, 987
fib_advmss macro, 974
fib_alias structure, 835, 899, 906, 916, 971
fib_clntref field, fib_info structure, 972
fib_combine_itag function, 949
fib_create_info function, 839, 902
fib_dead field, fib_info structure, 972
fib_del_ifaddr function, 854, 987
fib_dev macro, 974
fib_disable_ip function, 849
Fiber Distributed Data Interface (see FDDI device)
fib_flags field, fib_info structure, 972
fib_flush function, 848, 910
fib_get_table function, 842, 911
fib_hash field, fib_info structure, 972
fib_hash_init function, 904, 987
fib_hash_lock lock, 843, 909, 986
fib_inetaddr_event function, 846-849, 849-856, 987
fib_info structure, 835, 899, 902, 971-974
fib_info_cnt variable, 902, 988
fib_info_devhash hash table, 904, 989
fib_info_hash hash table, 902, 988
fib_info_laddrhash hash table, 902, 988
fib_info_lock lock, 843, 986
fib_iter_state structure, 836
fib_lhash field, fib_info structure, 972
fib_lookup function, 919, 987
      double definition of, 911, 912
      input routing and, 927
      policy routing and, 944
fib_magic function, 958, 987
fib_metrics field, fib_info structure, 973
fib_mp_alg field, fib_info structure, 974
fib_mtu macro, 974
fib_multipath_lock lock, 844, 986
fib_netdev_event function, 846-849, 856, 987
fib_new_table function, 843, 911
fib_nh field, fib_info structure, 942, 974
fib_nh structure, 835, 903, 975
fib_nhs field, fib_info structure, 942, 974
fib_node structure, 835, 899, 970
fib_power field, fib_info structure, 942, 943, 974
fib_prefsrc field, fib_info structure, 973
fib_priority field, fib_info structure, 973
fib_props array, 919, 989
fib_protocol field, fib_info structure, 972
Fibre Channel device
      alloc_netdev wrapper for, 139
      tx_queue_len value for, 52
fib_result structure, 834, 978
FIB_RES_XXX macros, 842, 986
fib_rtt macro, 974
fib_rule structure, 835, 944, 976
fib_rules variable, 988
fib_rules_attach function, 857, 987
fib_rules.c file, 912
fib_rules_detach function, 857, 987
fib_rules_event function, 845, 856
fib_rules_init function, 845, 987
fib_rules_lock lock, 843, 986
fib_rules_tclass function, 949
fib_scope field, fib_nh structure, 839
fib_select_default function, 911, 938, 939, 940, 987
fib_select_multipath function, 938, 939, 941-944, 987
fib_semantic_match function, 916, 916-919, 987
fib_semantics.c file, 919
fib_sync_down function, 846, 910
fib_sync_up function, 848
fib_table structure, 835, 899, 905, 968
fib_tables variable, 988
fib_treeref field, fib_info structure, 972
fib_validate_source function, 913, 928
fib_window macro, 974
files
      bridging, list of, 405
      component initialization, list of, 135
      data structures, list of, 57
      device registration and initialization, list of, 173
      ICMP, list of, 622
      IPv4, list of, 568
      L4 protocols, list of, 583
      neighboring subsystem, list of, 774
      network device initialization, list of, 105
      networking, list of, 66
      notification chains, list of, 83
      PCI layer, list of, 115
      protocol handlers, list of, 294
      routing, list of, 989
      transmission and reception, list of, 265
filesystems, network, xxi
find_portno function, 382
firewall-based classifier, 808, 818, 832, 859
firewalling (see Netfilter)
fl field
      cork structure, 565
      rtable structure, 980
flags field
      cork structure, 564
      dst_entry structure, 982
      flowi structure, 984
      irqaction structure, 92
      neighbour structure, 759
      net_device structure, 45, 142, 147, 154
flooding, by bridge, 304
flowi structure, 835, 984
FLOWI_FLAG_MULTIPATHOLDROUTE flag, 984
flush file, 961, 962
flush_delay variable, 962
flux problem, ARP, 707
fn_alias field, fb_node structure, 970
fn_hash field, fb_node structure, 970
fn_hash structure, 835
fn_hash_delete function, 858, 905, 906, 988
fn_hash_dump function, 905
fn_hash_flush function, 905
fn_hash_insert function, 839, 858, 905, 988
fn_hash_kmem memory pool, 904
fn_hash_lookup function, 905, 912, 914-919, 987
fn_hash_select_default function, 905, 941
fn_key field, fb_node structure, 971
fn_key variable, 899
fn_new_zone function, 902
fn_rehash_zone function, 906
fn_zone structure, 835, 899, 969
fonts used in this book, xxii
forced_gc_runs field, neigh_statistics structure, 771
for_ifa macro, 548, 567, 841, 986
for_nexthops macro, 842
for_primary_ifa macro, 548, 567, 841, 986
Forward Delay timer, STP, 336, 338, 388
forward_delay field, net_bridge structure, 402
forward_delay_timer field, net_bridge_port structure, 400
forwarding database, 373-375
      adding entries to, 374
      aging of, 375
      lookups in, 373
      reference counts for, 374
      removing entries from, 375
      updating entries in, 374
forwarding, enabling and disabling, 966
forwarding file, 963, 965, 967
Forwarding Information Base (FIB) (see routing table)
forwarding packets, 411, 455, 466-471
forwarding variable, 963
Fragment Offset field, IP header, 413, 423
fragmentation/defragmentation of packets, 411, 420-422, 512
      associating fragments with packets, 426
      checksum updates triggered by, 433
      defragmentation, 521-526
      effect on higher layers, 422
      example of, 485
      fast fragmentation, 513, 519-520
      functions for, 474, 514, 524
      garbage collection for, 533
      handling fragmented buffers, 491-496
      hash table for, 521, 534
      initialization of, 512
      IP header fields for, 423
      IP ID generation for, 427
      ip_append_data creating fragments, 496-501
      ip_append_data function creating fragments, 481, 484-490
      NAT and, problems with, 427
      path MTU discovery and, 429-432
      problems with, 424-428
      resources used by, 422
      retransmissions, 424
      slow fragmentation, 513, 516-519
      statistics about, 544
fragments field, ipq structure, 559
frags vector, 487, 488, 492
fragsize field, cork structure, 565
frame diverter, xxi
frames, 4, 267
      bridging code processing of, 371-372
      compared to BPDUs, 376
      multiple, processing during interrupt, 180
      paths taken by, 178
      reception of (see reception of frames)
      transmission of (see transmission of frames)
free_fib_info function, 902
free_init_mem function, 85
free_irq function, 88, 104
free_netdev function, 141, 172
fs_initcall macro, 126
func field, packet_type structure, 280
function pointers, 8-10
      (see also specific functions)
fz_divisor field, fn_zone structure, 901, 970
fz_hash field, fn_zone structure, 901, 970
fz_hashmask field, fn_zone structure, 970
FZ_HASHMASK macro, 970
fz_mask field, fn_zone structure, 970
FZ_MASK macro, 970
fz_nent field, fn_zone structure, 970
fz_next field, fn_zone structure, 969
fz_order field, fn_zone structure, 970

G[ Top ]
garbage collection, 8
      inet_peer structure, 538
      IP fragmentation, 533
      neighboring subsystem, 669, 675-679
      routing cache, 796-798, 886-896
      routing table, 910
garbage collection timer, 375
GateD routing protocol daemon, 820, 860
gateway, 297
gc field, dst_ops structure, 983
gc virtual function, dst_ops structure, 880, 887
gc_dst_overflow field, rt_cache_stat structure, 985
gc_elasticity file, 960, 962
gc_goal_miss field, rt_cache_stat structure, 985
gc_ignored field, rt_cache_stat structure, 985
gc_interval field, neigh_table structure, 764
gc_interval file, 755, 892, 960, 962
gc_interval variable, 755
gc_min_interval file, 960
gc_min_interval_ms file, 962
gc_staletime field, neigh_parms structure, 766
gc_stale_time file, 755
gc_staletime variable, 755
gc_thresh field, dst_ops structure, 983
gc_thresh file, 960, 962
gc_thresh1 field, neigh_table structure, 764
gc_thresh1 file, 755
gc_thresh1 variable, 755
gc_thresh2 field, neigh_table structure, 764
gc_thresh2 file, 755
gc_thresh2 variable, 755
gc_thresh3 field, neigh_table structure, 764
gc_thresh3 file, 755
gc_thresh3 variable, 755
gc_timeout file, 960, 962
gc_timer field
      neigh_table structure, 669, 764
      net_bridge structure, 375, 402
gc_total field, rt_cache_stat structure, 985
Generalized Routing Encapsulation (GRE), 101, 570
generic.h file, 16
getfrag function, 497, 566
get_mss virtual function
      dst_entry structure, 983
      dst_ops structure, 881
get_page function, 504
get_random_bytes function, 535
get_sample_stats function, 226, 227
get_stats function pointer, net_device structure, 48, 55, 142
get_wireless_stats function pointer, net_device structure, 48, 55, 142
gflags field, net_device structure, 45
goto statement, 10
granularity of timer-driven interrupt, 181
gratuitous ARP, 702-707
GRE (Generalized Routing Encapsulation), 101, 570

H[ Top ]
h field, sk_buff structure, 28
ha field, neighbour structure, 717, 760
handle_bridge function, 372, 375, 404
handle_diverter function, 238
handler function pointer
      icmp_control structure, 601
      inet6_protocol structure, 582
      irqaction structure, 91
      net_protocol structure, 571
hard_header function pointer, net_device structure, 55, 142, 685
hard_header_cache function pointer, net_device structure, 55, 142, 685
hard_header_len field, net_device structure, 46, 142
hard_header_parse function pointer, net_device structure, 55, 142, 686
hard_start_xmit function pointer, net_device structure, 55, 142, 243, 249
HARD_TX_LOCK macro, 255
HARD_TX_UNLOCK macro, 255
hardware address (see L2 address)
hardware initialization, 86
hardware interrupts, 88-92
Hardware size field, arphdr structure, 700
Hardware type field, arphdr structure, 700
hash field, net_bridge structure, 401
hash function, neigh_table structure, 763
hash tables, 6
      IP fragmentation, 521, 534
      neighboring subsystem, 666
      net_device structure, 146
hash_buckets field, neigh_table structure, 653, 763
hash_chain_gc field, neigh_table structure, 764
hash_grows field, neigh_statistics structure, 771
hash_lock field, net_bridge structure, 401
hash_mask field, neigh_table structure, 763
hash_rnd field, neigh_table structure, 764
hdlc_rcv function, 276
head field, sk_buff structure, 26
Header Checksum field, IP header, 414
Header Length (IHL) field, IP header, 412
header_cache_update function pointer, net_device structure, 55, 142, 685
header_len field, dst_entry structure, 981
header_length field, datalink_proto structure, 291
head_len field, icmp_bxm structure, 602
heartbeat timer, 704
Hello timer, 336, 352, 383, 388
hello_time field, net_bridge structure, 402
hello_timer field, net_bridge structure, 402
hh field
      dst_entry structure, 982
      neighbour structure, 760
hh_cache structure, 652, 655, 683, 770
hh_data field, hh_cache structure, 771
hh_len field, hh_cache structure, 770
hh_lock field, hh_cache structure, 770
hh_next field, hh_cache structure, 770
hh_output function
      hh_cache structure, 770
      neigh_ops structure, 770
hh_refcnt field, hh_cache structure, 770
hh_type field, hh_cache structure, 770
hierarchical switched L2 topology, 311-314
High Performance Parallel Interface (see HIPPI device)
HIPPI device
      alloc_netdev wrapper for, 139
      sk_buff field for, 32
      tx_queue_len value for, 52
HI_SOFTIRQ type, 193, 196, 198
hits field, neigh_statistics structure, 771
hlist_head structure, 837
hlist_node structure, 837
Hold timer, 338, 347, 388
hold_timer field, net_bridge_port structure, 400
host byte order, converting, 15
host scope for IP addresses, 785
host scope for routes, 786, 838
hosts, 300
      configured with multiple addresses, 787
      nonrouting multihomed hosts, 779
hotplug helper, 96, 98-100, 103
hot-pluggable devices, 84, 96, 98-100
      inserting, causing registration of device, 137
      name changes of, 139
      removing, causing unregistration of device, 138
htonl macro, 16
htons macro, 16
HTTP proxying, 637
Hyperchannel device, MTU value for, 46

I[ Top ]
ic_bootp_recv function, 281
ICMP header, 586, 600
ICMP messages
      categories of, 587
      ingress, replying to, 607
      pinging and, 578
      rate limiting, 608-610
      receiving, 611-617
      sending to multicast IP address, 611
      transmitting, 602-610
      types, list of, 588-590
      Verbose Monitoring generating, 822
ICMP payload, 587
ICMP protocol, 569
      (see also L4)
"ICMP Usage in Scanning" (Arkin), 585
icmp_address function, 611
ICMP_ADDRESS message type, 594, 611
icmp_address_reply function, 611
ICMP_ADDRESSREPLY message type, 594, 611, 617
icmp_bxm structure, 600, 602, 622
icmp_control structure, 600, 601, 611, 622
ICMP_DEST_UNREACH message type, 590, 597, 604, 611, 614, 620
icmp_echo function, 611
ICMP_ECHO message type, 590, 595, 608, 611, 613
icmp_echo_ignore_all flag, 620
icmp_echo_ignore_broadcasts file, 960
icmp_echo_ignore_broadcasts flag, 621
ICMP_ECHOREPLY message type, 590, 595, 596, 604, 607, 613
ICMP_ECHO_REQUEST message type, 928
icmp_err_convert function, 620, 622
icmp_errors_use_inbound_ifaddr flag, 621
ICMP_EXC_FRAGTIME message type, 593, 604
ICMP_EXC_TTL message type, 593, 595, 604
ICMP_FRAGMENTATION_NEEDED message type, 797, 892
ICMP_FRAG_NEEDED message type, 590, 604, 614, 620
icmp_glue_bits function, 497
icmph field, icmp_bxm structure, 602
icmp.h file, 588
icmphdr structure, 600, 622
ICMP_HOST_ANO message type, 591, 604, 620
ICMP_HOST_ISOLATED message type, 590, 620
ICMP_HOST_UNKNOWN message type, 590, 620
ICMP_HOST_UNREACH message type, 590, 604, 620
ICMP_HOST_UNR_TOS message type, 591, 620
icmp_ignore_bogus_error_responses flag, 621
ICMP_INC_STATS macro, 618, 622
ICMP_INC_STATS_BH macro, 618, 622
ICMP_INC_STATS_USER macro, 618, 622
ICMP_INFO_REPLY message type, 594
ICMP_INFO_REQUEST message type, 594
icmp_init function, 599, 622
icmp_mib structure, 617, 622
ICMP_MIB_INERRORS field, 618
ICMP_MIB_INMSG field, 618
ICMP_MIB_INXXX field, 619
ICMP_MIB_OUTERRORS field, 619
ICMP_MIB_OUTMSG field, 619
ICMP_MIB_OUTXXX field, 619
ICMP_NET_ANO message type, 591, 604, 620
ICMP_NET_UNKNOWN message type, 590, 620
ICMP_NET_UNREACH message type, 590, 604, 620
ICMP_NET_UNR_TOS message type, 591, 620
icmp_out_count function, 622
ICMP_PARAMETERPROB message type, 593, 604, 611, 614
ICMP_PKT_FILTERED message type, 591, 604, 620
icmp_pointers vector, 611
ICMP_PORT_UNREACH message type, 590, 597, 604, 620
ICMP_PREC_CUTOFF message type, 591, 620
ICMP_PREC_VIOLATION message type, 591, 620
ICMP_PROT_UNREACH message type, 590, 604, 620
icmp_ratelimit flag, 621
icmp_ratemask flag, 621
icmp_rcv function, 611, 619, 622
icmp_redirect function, 611, 616
ICMP_REDIRECT message type, 467, 470, 591, 604, 611, 616, 798
      adding routing cache entries when received, 865
      next-hop router structures and, 904
      processing, 827
      rate limiting for, 896
      routing and, 822-828
      transmitting, 825
      Verbose Monitoring and, 822
ICMP_REDIR_HOST message type, 592
ICMP_REDIR_HOSTTOS message type, 592
ICMP_REDIR_NET message type, 592
ICMP_REDIR_NETTOS message type, 592
icmp_reply function, 599, 602, 622
icmp_send function, 599, 602, 605, 622
icmp_socket macro, 600
ICMP_SOURCE_QUENCH message type, 591, 611, 614
ICMP_SR_FAILED message type, 590, 604, 614, 620
icmp_statistics variable, 622
ICMP_TIME_EXCEEDED message type, 593, 595, 604, 611
icmp_timestamp function, 611
ICMP_TIMESTAMP message type, 593, 611, 616
ICMP_TIMESTAMPREPLY message type, 593, 604, 616
icmp_unreach function, 611, 614
ICMP_UNREACHABLE message type, 797, 892, 927, 931
ICMPv4 (Internet Control Message Protocol Version 4), 585
      configuration, 620
      data structures for, 600-602, 622
      files and directories for, list of, 622
      functions for, list of, 622
      initialization, 599
      ping command using, 595
      RFCs about, 585
      security and, 585
      statistics for, 617-619
      subsystems interacting with, 598-599
      traceroute command using, 595
      variables for, list of, 622
icmpv4_xrlim_allow function, 622
icmp_xmit_lock function, 603, 622
icmp_xmit_unlock function, 603, 622
icons used in this book, xxii, xxiii
ic_rarp_recv function, 282
id field
      ipq structure, 559
      neigh_table structure, 762
ID field, IP header, 424
Identification field, IP header, 412
idev field, rtable structure, 979
id_table field, pci_driver structure, 107
IEEE 802.1d device (see bridge)
IEEE 802.1D-1998 standard, 309
IEEE 802.1D-2004 standard, 309
IEEE 802.1Q device, 101, 102
IEEE 802.1Q-2002 standard, 309
IEEE 802.1s standard, 309
IEEE 802.1w standard, 309
IEEE 802.4 device (see Token Bus device)
IEEE 802.5 device (see Token Ring 4 MB/s device)
ifa_address field, in_ifaddr structure, 563
ifa_anycast field, in_ifaddr structure, 563
ifa_broadcast field, in_ifaddr structure, 563
ifa_dev field, in_ifaddr structure, 563
ifa_flags field, in_ifaddr structure, 563
IFA_F_SECONDARY flag, 841
ifa_label field, in_ifaddr structure, 563
ifa_list field, in_device structure, 562
ifa_local field, in_ifaddr structure, 563
ifa_mask field, in_ifaddr structure, 563
ifa_next field, in_ifaddr structure, 563
ifa_prefixlen field, in_ifaddr structure, 563
if_arp.h file, 46, 701
ifa_scope field, in_ifaddr structure, 563, 839
ifconfig command, 67, 166, 550
      address configuration using, 792
      IP configuration using, 545
#ifdef directive, 11
ifdown virtual function, dst_ops structure, 881, 983
if_ether.h file, 31, 46
IFF_EBRIDGE flag, 363
IFF_PROMISC flag, 285
IFF_UP flag, 147, 160, 161
if.h file, 45
ifindex field, net_device structure, 44
iflink field, net_device structure, 44
ifmap structure, 135
#ifndef directive, 12
ifobj field, net_bridge structure, 401
if_packet.h file, 30
if_port field, net_device structure, 44, 142
IGMP (Internet Group Management Protocol), 570
IHL (Header Length) field, IP header, 412
iif field
      flowi structure, 984
      ipq structure, 560
in_brd field, rt_cache_stat structure, 985
IN_DEV_ARP_ANNOUNCE macro, 708
IN_DEV_ARPFILTER macro, 708
IN_DEV_ARP_IGNORE macro, 708
_ _in_dev_get function, 440
in_dev_get function, 440, 566
in_device structure, 440, 561, 653
IN_DEV_PROXY_ARP macro, 735
in_dev_put function, 440
IN_DEV_XXX macros, 964
index_hlist field, net_device structure, 50
inet6_add_protocol function, 582
inet6addr_chain, 78, 81
inet6_del_protocol function, 582
inet6_dev structure, 653
inet6_protos table, 582
inet_add_protocol function, 571-574, 583
inetaddr_chain, 78, 81
inetaddr_chain notification chain, 548
inet_addr_onlink function, 725
inet_addr_type function, 701, 725
inet_alloc_ifa function, 546, 567
inet_del_ifa function, 546, 567
inet_del_protocol function, 571-574, 583
inetdev_destroy function, 546
inetdev_event function, 858
inetdevice.h file, 757
inetdev_init function, 546, 768
inet_dump_fib function, 954
inet_dump_ifaddr function, 567
inet_dumpifaddr function, 550
inet_dump_rules function, 955
inet_fill_ifaddr function, 548
inet_forward_change function, 967
inet_free_ifa function, 546, 567
inet_getpeer function, 537, 540, 567
inet_ifa_byprefix function, 842
inet_ifa_match function, 548, 567
inet_init function, 583
inet_initpeers function, 537, 567
inet_insert_ifa function, 546, 567
inet_make_mask function, 547, 567
inet_mask_len function, 547, 567
inet_peer structure, 439, 536, 560, 834
      fields used in, 538
      garbage collection for, 538
      initialization for, 537
      lookups for, 537
      setting packet ID using, 541
inet_peer_gc_maxtime file, 554, 555
inet_peer_gc_maxtime variable, 538, 554
inet_peer_gc_mintime file, 554, 555
inet_peer_gc_mintime variable, 538, 554
inet_peer_maxttl file, 554, 555
inet_peer_maxttl variable, 538, 554
inet_peer_minttl file, 554, 555
inet_peer_minttl variable, 538, 554
inet_peer_threshold file, 554, 555
inet_peer_threshold variable, 537, 538, 554, 568
inet_peer_unused_head variable, 538
inet_peer_unused_lock variable, 539, 568
inet_peer_unused_tailp variable, 538
inet_protocol structure, 619
inet_proto_lock lock, 572
inet_protos table, 571, 581, 583
inet_rtm_deladdr function, 550, 567
inet_rtm_delroute function, 954, 955
inet_rtm_delrule function, 955
inet_rtm_getroute function, 954
inet_rtm_newaddr function, 550, 567
inet_rtm_newroute function, 954, 955
inet_rtm_newrule function, 955
inet_select_addr function, 547, 567, 725, 913
inet_set_ifa function, 547, 567
inet_skb_parm structure, 451
inet_sock structure, 476
info field, dst_entry structure, 983
Infrared Data Association device, alloc_netdev wrapper for, 139
ingress (input), 4
      (see also reception)
ingress queues, 212, 223-225
ingress_lock field, net_device structure, 52, 171
in.h file, 571
in_hit counter, 870
in_hit field, rt_cache_stat structure, 984
in_hlist_search field, rt_cache_stat structure, 985
in_ifaddr structure, 440, 562
in_interrupt function, 187
in_irq function, 188
init function pointer, net_device structure, 55, 142, 149, 169
_ _init macro, 124, 126, 131, 133, 134
init program, 85
init_bh function, 191
_ _initcall macro, 126, 129, 130, 134
xxx_initcall macros, 128
_ _initdata macro, 126, 134
initialization, 84
      boot-time initialization routines, 128-130
      boot-time kernel options, 85, 93, 116-122
      configuration parameters for, 103
      data structures for, list of, 134
      device handling layer, 94-96
      files and directories for, list of, 135
      functions for, list of, 134
      interrupts, 85
      IPv4, 443
      memory optimization, 130-134
      module options, 93
      modules, 122-125
      net_device structure fields, 141-145
      network devices, 86, 141-145
      NICs, 86
      options, 85, 93, 116-122
      PCI devices and, 112
      subsystems, 116
      timers, 85
      user-space tools for, 96-100
      variables for, list of, 134
      virtual devices, 101
init_ipv4_mibs function, 542, 617
init_module function, 122, 135
in_martian_dst field, rt_cache_stat structure, 985
in_martian_src field, rt_cache_stat structure, 985
in_no_route field, rt_cache_stat structure, 985
input virtual function, dst_entry structure, 920-922, 923, 982
input_dev field, sk_buff structure, 28
input_entry field, icmp_control structure, 601
input_pkt_queue field, softnet_data structure, 207
in_slow_mc field, rt_cache_stat structure, 984
in_slow_tot field, rt_cache_stat structure, 984
in_softirq function, 187
interface, 311
Internet Control Message Protocol Version 4 (see ICMPv4)
Internet Group Management Protocol (IGMP), 570
Internet Protocol Version 4 (see IPv4)
Internet Protocol Version 6 (see IPv6)
Internet Service Provider (ISP), 783
interrupt context, 184
interrupt handlers, 88
      bottom half handlers, 184-186
            implementations of, 186
            old style, concurrency and, 187
            requirements for, 190
            software interrupts for (version 2.4 and higher), 193-196
            tasklets for, 196-198
            version 2.2 and earlier, 190-193
      events started by, 210
interrupts (IRQ), 4
      concurrency and, 186
      devices communicating with kernel using, 87, 180
      enabling and disabling, 187-188
      events started by, 184, 185
      hardware interrupts, 88-92
      initialization of, 85
      locking and, 186
      mapping to handlers, 90
      mixing with polling (see NAPI)
      multiple frames processed during, 180
      sharing, 90
      software interrupts, 193-196
            concurrency and, 187
            initialization of, 198
            kernel threads for, 202-204
            networking code's use of, 206
            pending, handling of, 199-201
            per-architecture processing of, 202
      timer-driven interrupts, 181
      types of, 88
invoke_softirq function, 264
I/O ports for NICs, 87
ioctl command, 59, 67
      bridging configuration using, 392-393
      IP configuration using, 545
      serialization used by, 71
ip addr add command, 852
ip addr commands, 567
ip address command, 792
IP addresses
      adding, 850-854
      address classes for, 783
      configuration changes, handling, 849-856
      configuring, 792
      dynamic configuration of, 632
      functions for manipulation and configuration of, 546-548
      multiple, configured on one NIC, 789-793, 841
      netmask for, 789
      nonroutable, 784
      preferred source IP address, 928
      primary addresses, 789-793, 841
      removing, 854
      routable, 784
      scope of, 785-788, 839, 936
      secondary addresses, 789-793, 841
IP Authentication Header Protocol (AH), 570
ip command
      ip addr add command, 852
      ip addr commands, 567
      ip address command, 792
      IP configuration using, 545, 549
      ip link command, 166
      ip link set command, 852
      ip monitor route command, 957
      ip route command, 811, 817, 859, 954
      ip rule command, 816, 954, 976
      neighbor administration, 749, 750-752
      routing configuration, 952, 954-956
IP configuration, 545-550
      changes, handling, 849-856
      device status changes affecting, 858
IP Encapsulating Security Payload Protocol (ESP), 570
IP header, 411-414
      building for transmission, 480
      ID for, selecting, 540
      pseudoheader from, 437
IP ID field
      defragmentation and, 426
      generation of, 427
ip link command, 166
ip link set command, 852
ip monitor route command, 957
IP multicast (see multicast)
IP Payload Compression Protocol (IPcomp), 570
ip route command, 811, 817, 859, 954
ip rule command, 816, 954, 976
IP Security protocol (see IPsec)
IP tunneling (see IPIP)
IP virtual server, xxi
ip6_output_finish function, 773
ip6_ptr field, net_device structure, 50
ip_append_data function, 475, 481-503, 566
      memory allocation for, 484-486
      memory allocation with Scatter/Gather I/O, 487-490
      using with ip_push_pending_frames function, 508
ip_append_page function, 503
ip_autoconfig file, 553, 554
ip_build_and_send_pkt function, 475
ip_build_xmit_slow function, 513
ip_call_ra_chain function, 467, 567
ip_check_mc function, 871
ipcm_cookie structure, 439, 558
IPcomp (IP Payload Compression Protocol), 570
ip_compute_csum function, 435
ip-cref.ps file, 815
ip_decrease_ttl function, 435, 566
ip_default_ttl file, 553, 554
ip_defrag function, 472, 511, 524, 526, 566
ip_dont_fragment function, 514, 566
ip_dynaddr file, 554, 555
ip_error function, 921, 931
ip_evictor function, 524, 526, 533, 566
ip_expire function, 534, 566
ip_fallback_id variable, 541
ip_fast_csum function, 434, 435, 448, 566
ip_fib_check_default function, 904
ip_fib.h file, 912, 919
ip_fib_init function, 845, 904, 987
ip_fib_local_table routing table, 904, 910
ip_fib_local_table variable, 988
ip_fib_main_table routing table, 904, 910
ip_fib_main_table variable, 988
ip_find function, 525, 526, 566
ip_finish_output function, 471, 510, 566
ip_finish_output2 function, 566, 692, 773
ip_forward file, 553, 554, 960, 967
ip_forward function, 455, 466, 467-470, 566, 921
ip_forward_finish function, 455, 466, 470, 566
ip_forward_options function, 454, 470, 566
ip_frag_destroy function, 525, 566
ipfrag_hash_rnd variable, 535
ipfrag_high_thresh file, 554, 555
ipfrag_init function, 512, 535, 566
ipfrag_lock variable, 560, 567
ipfrag_low_thresh file, 554, 555
ip_frag_mem variable, 533, 567
ip_fragment fragment, 511
ip_fragment function, 512, 514, 566
ip_frag_queue function, 525, 526, 527-533, 566
ip_frag_reasm function, 525, 527, 533, 566
ipfrag_secret_interval file, 554, 555
ipfrag_secret_rebuild function, 535
ipfrag_time file, 554, 555
ip_generic_getfrag function, 497
ip.h file, 545
iphdr structure, 439, 556
ip_id_count field, inet_peer structure, 538, 561
IP_INC_STATS macro, 544, 567
IP_INC_STATS_BH macro, 544, 567
IP_INC_STATS_USER macro, 544, 567
ip_init function, 443, 565
IPIP (IP-over-IP tunneling), 101, 550, 570, 800
ip_local_deliver function, 472, 566, 921, 922
ip_local_deliver_finish function, 472, 566, 574-582, 583, 599
ip_local_port_range file, 67, 554, 555
ip_mc_output function, 921, 923
ip_mkroute_input function, 923, 931, 987
ip_mkroute_input_def function, 923, 987
ip_mkroute_output function, 923, 987
ip_mkroute_output_def function, 923, 987
ip_mp_alg_ops structure, 836, 874, 986
ip_mr_cache file, 966
ip_mr_input function, 921
ip_mr_vif file, 966
ip_netdev_event function, 856
ip_nonlocal_bind file, 553, 554
ip_no_pmtu_disc file, 553, 554
ip_option_compile function, 451
ip_options structure, 439, 457, 556
ip_options_build function, 454, 481, 506, 566
ip_options_compile function, 453, 455, 457, 566
ip_options_echo function, 455
ip_options_fragment function, 454, 514
ip_options_get function, 454
ip_options_parse function, 566
ip_options_rcv_srr function, 452, 946
ip_output function, 455, 921, 922
IP-over-IP (see IPIP)
IPPROTO_XXX symbols, 571
ip_ptr field, net_device structure, 50, 440
ip_push_pending_frames function, 474, 481, 504-509, 566
ipq structure, 439, 522, 558-560
      adding fragment to, 527
      functions for, 524
      garbage collection and, 534
      new instance initialization, 526
ipq_hash table, 522, 534, 560
ipq_kill function, 525, 534
ipq_put function, 525
ip_queue_xmit function, 474, 477-481, 566
ipq_unlink function, 534
ip_rcv function, 281, 446, 565, 922
ip_rcv_finish function, 450-453, 922
ip_reply_glue_bits function, 497
IPROUTE2 package, 18
      aliasing devices and, 793
      configuring routes, 821
      ip addr add command, 852
      ip addr commands, 567
      ip address command, 792
      IP configuration using, 545, 549
      ip link command, 166
      ip link set command, 852
      ip monitor route command, 957
      ip route command, 811, 817, 859, 954
      ip rule command, 816, 954, 976
      neighbor administration, 749, 750-752
      routing configuration, 952, 954-956
      tc command, 689
ip_route_connect function, 987
ip_route_input function, 445, 868, 870-872, 922, 987
ip_route_input_mc function, 987
ip_route_input_slow function, 869, 872, 922, 923-933, 987
ip_route_newports function, 987
ip_route_output_flow function, 445, 473, 478, 479, 987
_ _ip_route_output_key function, 869, 872-873, 922, 987
ip_route_output_key function, 599, 868, 987
ip_route_output_slow function, 869, 872, 922, 923, 933-941, 987
ip_rt_acct structure, 834
ip_rt_bug function, 921
ip_rt_error_burst variable, 962
ip_rt_error_cost variable, 962
ip_rt_frag_needed function, 599
ip_rt_gc_elasticity variable, 865, 868, 962
ip_rt_gc_interval variable, 892, 962
ip_rt_gc_min_interval variable, 868, 887, 962
ip_rt_gc_timeout variable, 962
ip_rt_init function, 844, 861, 987
ip_rt_max_delay variable, 962
ip_rt_max_size variable, 888, 962
ip_rt_min_advmss variable, 962
ip_rt_min_delay variable, 962
ip_rt_min_pmtu variable, 962
ip_rt_mtu_expires variable, 962
ip_rt_redirect function, 599, 616
ip_rt_redirect_load variable, 897, 962
ip_rt_redirect_number variable, 897, 962
ip_rt_redirect_silence variable, 897, 962
ip_rt_secret_interval variable, 886, 962
ip_run_ipprot function, 572
IPsec, xx, 570
      dst_entry structure used by, 882
      forwarding packets and, 467
      interaction with neighboring subsystem, 689
      L4 packet delivery and, 582
      sk_buff field for, 32
      transformation bundles, 882
ip_select_fb_ident function, 541
_ _ip_select_ident function, 540
ip_select_ident function, 540, 567
ip_select_ident_more function, 481, 540, 567
ip_send_check function, 435, 566
ip_send_reply function, 475, 497
ip_statistics structure, 542
ip_statistics variable, 544, 568
ipstats_mib structure, 440, 542, 561
IPSTATS_MIB_FRAGCREATES field, 544
IPSTATS_MIB_FRAGFAILS field, 544
IPSTATS_MIB_FRAGOKS field, 544
IPSTATS_MIB_INADDRERRORS field, 543
IPSTATS_MIB_INDELIVERS field, 543
IPSTATS_MIB_INDISCARDS field, 543
IPSTATS_MIB_INHDRERRORS field, 542
IPSTATS_MIB_INMCASTPKTS field, 543
IPSTATS_MIB_INNOROUTES field, 542
IPSTATS_MIB_INRECEIVES field, 542
IPSTATS_MIB_INTOOBIGERRORS field, 542
IPSTATS_MIB_INTRUNCATEDPKTS field, 543
IPSTATS_MIB_INUNKNOWNPROTOS field, 543
IPSTATS_MIB_OUTDISCARDS field, 543
IPSTATS_MIB_OUTFORWDATAGRAMS field, 543
IPSTATS_MIB_OUTMCASTPKTS field, 543
IPSTATS_MIB_OUTNOROUTES field, 543
IPSTATS_MIB_OUTREQUESTS field, 543
IPSTATS_MIB_REASMFAILS field, 544
IPSTATS_MIB_REASMOKS field, 544
IPSTATS_MIB_REASMREQDS field, 544
IPSTATS_MIB_REASMTIMEOUT field, 544
IPSTATS_MIB_XXX enumeration list, 542
ip_summed field, sk_buff structure, 30, 441-443
iputils tool, 18
IPv4 (Internet Protocol Version 4), 409-411
      ARP protocol and, 635
      checksums, 432-438, 440-443, 473, 502
      configuration, 545-550, 553-555
      data structures for, 439-443, 555-565, 568
      files and directories for, list of, 568
      forwarding packets, 466-471
      functions for, list of, 565-567
      ICMP interactions with, 599
      initialization, 443
      input packets, handling, 446-453
      interface to neighboring subsystem, 510
      IP header, 411-414
      L3 to L4 protocol interface and, 582
      local delivery of packets, 472
      long-living peer information kept by, 536-540
      Netfilter and, 444
      options, 411, 414, 414-420, 453-465
      problems with, 551-553
      routing subsystem and, 445
      security and, 552
      statistics for, 541-545
      transmission of packets, 473-476, 504-509
      variables for, list of, 567
      (see also fragmentation/defragmentation of packets; L3)
ipv4_config structure, 440, 564
ipv4_config.autoconfig variable, 553
ipv4_config.no_pmtu_disc variable, 553
ipv4_devconf structure, 440, 564, 567, 757
ipv4_devconf.arp_announce variable, 757
ipv4_devconf.arp_filter variable, 757
ipv4_devconf.arp_ignore variable, 757
ipv4_devconf_dflt variable, 567
ipv4_devconf.forwarding variable, 553, 960
ipv4_devconf.medium_id variable, 757
ipv4_devconf.proxy_arp variable, 757
ipv4_dst_ops.gc_thresh variable, 962
IPv4-over-IPv4 (see IPIP)
ipv4_sysctl_forward function, 967
IPv6 (Internet Protocol Version 6), xx
      fragmentation, 428
      improvements over IPv4, 551
      L3 to L4 protocol interface and, 582
      ND protocol and, 635
      (see also L3)
ipv6_add_dev function, 768
IPv6-over-IPv4 (Simple Internet Transition, SIT), 570
IPv6-over-IPv6, 570
ipv6_rcv function, 282
IPX protocol, xxi, 288, 291
ipx_rcv function, 276, 282, 288, 291
irlap_driver_rcv function, 276
irq field, net_device structure, 44, 142
IRQ lines for NICs, 87
IRQ (see interrupts)
irq_action structure, 105
irqaction structure, 91-92
irq.c file, 88
irq_desc variable, 91, 104
irq_exit function, 195
is_changed field, ip_options structure, 556
is_data field, ip_options structure, 557
ISDN device
      MTU value for, 46
      tx_queue_len value for, 52
is_local field, net_bridge_fdb_entry structure, 399
ISP (Internet Service Provider), 783
is_setbyuser field, ip_options structure, 557
is_static field, net_bridge_fdb_entry structure, 399
is_strictroute field, ip_options structure, 557
iw_statistics field, 48

J[ Top ]
jiffies global variable, 17

K[ Top ]
kconfig files, 24
kernel component, 5
      (see also subsystems)
kernel (see Linux kernel)
kernel_param structure, 119, 135
kern_rta structure, 836
key_len field, neigh_table structure, 763
keywords, registering, 117
kfree function, 5
kfree_skb function, 35
kmalloc function, 5
kmem_cache_alloc function, 5, 6
kmem_cache_create function, 5
kmem_cache_destroy function, 5
kmem_cache_free function, 5
kmem_cachep field
      dst_ops structure, 983
      neigh_table structure, 763
kmod kernel module loader, 98
kobj field, net_bridge_port structure, 400
kobject_hotplug function, 99
ksoftirqd function, 202
ksoftirqd kernel threads, 202-204

L[ Top ]
L2 address
      change of, gratuitous ARP used for, 702
      configuring, 632
      static translation of L3 address to, 633
      translating L3 address to, 628-634
L2 bridged topology, 311-314
L2 headers, caching, 683-687
L2 (link layer), 3, 4
      communication choices made by, 272, 273
      data units for (frames), 267
      protocol choices for, 268, 274
L2 network, 311
L3 address
      changing, situations for, 632
      duplicate, gratuitous ARP used for, 703-704
      static translation to L2 address, 633
      translating to L2 address, 628-634
      (see also IP addresses)
L3 (network layer), 3, 4
      communication choices made by, 271, 273
      data units for (packets), 267
      L3 to L4 packet delivery, 574-582
      VFT interface with neighboring subsystem, 655-665
L4 checksum, 437-438
L4 (transport layer), 3, 4
      communication choices made by, 271
      data structures for, list of, 583
      data units for (segments), 267
      files and directories for, list of, 583
      functions for, list of, 583
      L3 to L4 packet delivery, 574-582
      passing error notifications to, 619
      protocol registration, 571-574
      protocols, xx
      protocols for, list of, 569-570
      raw IP and, 577-581
      raw sockets and, 577-581
      variables for, list of, 583
LANs, 311
      loop topology, 307
      loop-free topology, 308
      merging with bridges, 300
      of different technologies, bridging, 302
last_flush field, neigh_table structure, 764
last_in field, ipq structure, 559
last_rand field, neigh_table structure, 763
last_rx field, net_device structure, 50
lastuse field, dst_entry structure, 875, 982
late_initcall macro, 126
Layer two address (see L2 address)
layers of TCP/IP network stack, terminology for, 3
len field
      ipq structure, 560
      sk_buff structure, 25
length field, cork structure, 565
likely macro, 13
limited broadcasts, 930
link between bridges, 311
link layer address (see L2 address)
link layer multicast, net_device fields for, 51
link layer (see L2)
link scope for IP addresses, 786
link scope for routes, 786, 838
link state change detection, 163-165
link_failure virtual function, dst_ops structure, 881, 983
_ _LINK_STATE_LINKWATCH_EVENT flag, 148
_ _LINK_STATE_LINKWATCH_PENDING flag, 164, 165
_ _LINK_STATE_NOCARRIER flag, 148, 163
_ _LINK_STATE_PRESENT flag, 148, 155, 162
_ _LINK_STATE_RX_SCHED flag, 148
_ _LINK_STATE_SCHED flag, 239, 244
_ _LINK_STATE_SHED flag, 148
_ _LINK_STATE_START flag, 148, 159, 161, 211
_ _LINK_STATE_XOFF flag, 148, 241
linkwatch_event function, 165
linkwatch_fire_event function, 163
linkwatch_run_queue function, 165
Linux
      embedded devices using, xv
      performance of, xv
      university projects using, xv
Linux Device Drivers (O'Reilly), xvi
Linux kernel
      books about, xvi
      browsing source code, 19
      dead code in, 19
      interaction with devices, 87-92
      new features of, learning, xviii
      notification of frame reception for, 212-219
      patches for, 20
      preemption of, 188
Linux Network Development List Archives, 19
Linux Virtual Servers (see LVS)
list field
      net_bridge_fdb_entry structure, 399
      net_bridge_port structure, 399
      packet_type structure, 280
      sk_buff structure, 25
Little Endian format, 15
little_endian.h file, 16
LLC (Logical Link Control), 268, 287-290
      Linux implementation of, 289
      reception of frames, 290
llc_rcv function, 276
llc_sap_close function, 293
llc_sap_open function, 293
local delivery of packets, 472
local_bh_disable function, 188
_ _local_bh_enable function, 188
local_bh_enable function, 188, 196
local_irq_disable function, 188
local_irq_enable function, 188
local_irq_restore function, 188
local_irq_save function, 188
LOCAL_MCAST macro, 843, 986
local_softirq_pending function, 188
lock field
      ipq structure, 560
      neighbour structure, 760
      neigh_table structure, 762
      net_bridge structure, 401
locking
      for creating bridge devices and bridge ports, 361
      for frame transmission, 247, 256
      for frame transmission on queueless devices, 255
      for ICMP transmissions, 603
      for net_device structure changes, 171
      for routing, 843
      for routing cache, 864
      interrupts and, 186
      mutual exclusion mechanisms, 14-15
      RCU (Read-Copy-Update), 14, 864
      (see also spin locks)
locktime field, neigh_parms structure, 767
locktime file, 755
locktime variable, 755
lo_cong file, 263
lo_cong variable, 263, 264
Logical Link Control (see LLC)
log_martians field, ipv4_config structure, 564
log_martians file, 963, 965
log_martians variable, 963
Longest Prefix Match (LPM) algorithm, 798, 914
lookup macro, 537
lookups field, neigh_statistics structure, 771
loop topology, bridges not working with, 307
loopback device
      frame transmission for, 254
      queues not used by, 212
      tx_queue_len value for, 53
LOOPBACK macro, 843, 986
loop-free topology, 308
Loose Source and Record Route, IP option type field, 415, 416, 460
LPM (Longest Prefix Match) algorithm, 798, 914
lru_list field, ipq structure, 559
lspci command, 114
ltalk_rcv function, 276
LVS (Linux Virtual Servers), ARP and, 709
lw_event structure, 164, 172
lweventlist variable, 172
lweventlist_lock variable, 172
LW_RUNNING flag, 165
LW_SE_USED flag, 165

M[ Top ]
MAC address (see L2 address)
mac field, sk_buff structure, 28
mac_addr structure, 359, 404
mac_len field, sk_buff structure, 26
macro-based tagging, 124, 125-127
macros, dynamic definition of, 132-134
"Magic Packets", 109
make config options (see compile options)
manage.c file, 88
Management Information Base (see MIB)
mark_bh function, 191
master field, net_device structure, 50
Max Age timer, 388
max_age field, net_bridge structure, 402
max_delay file, 961, 962
Maximum Transmission Unit (see MTU)
max_size file, 960, 962
mcast_probes field, neigh_parms structure, 767
mcast_probes variable, 755
mcast_solicit file, 755
mc_count field, net_device structure, 51
mc_forwarding file, 963, 965
mc_forwarding variable, 963
McKenney, Paul (article about RCU), 15
mc_list field, net_device structure, 51
meat field, ipq structure, 560
Media Independent Interface (MII), 168
medium ID feature, ARP, 712-714
medium_id file, 757
mem_end field, net_device structure, 44
memory
      allocating, 33-35
      device, registration of, 87
      freeing, 35
      optimization of, in initialization code, 130-134
memory caches, 5
mem_start field, net_device structure, 44
Message Age timer, 336, 386
message_age_timer field, net_bridge_port structure, 400
messages, 4, 267
messages, ICMP (see ICMP messages)
methods (function pointers), 8-10
metrics field, dst_entry structure, 982
metrics, for routes, 783
      (see also statistics)
MF (More Fragments) field, IP header, 413, 423
MIB (Management Information Base), IP layer statistics using, 440
MII (Media Independent Interface), 168
mii-tool tool, 168
min_adv_mss file, 961, 962
min_delay file, 67, 961, 962
min_pmtu file, 961, 962
_ _mkroute_input function, 923
_ _mkroute_output function, 923
mod_cong file, 263
mod_cong variable, 263, 264
mod_devicetable.h file, 106
modprobe helper, 96, 98, 103
module options, 93
MODULE symbol, 132
module_exit macro, 122, 129, 130, 133, 135
module_init macro, 122, 129, 135
      dependency with net_dev_init function, 130
      memory optimization and, 130, 133
module_param macro, 93, 104, 119, 135
modules
      initialization, 122-125
      loading, 98
More Fragments (MF) field, IP header, 413, 423
mp_alg_flush function, ip_mp_alg_ops structure, 986
mp_alg_remove function, ip_mp_alg_ops structure, 986
mp_alg_select_route function pointer, ip_mp_alg_ops structure, 874, 875, 986
mp_alg_set_nhinfo function, ip_mp_alg_ops structure, 986
MRT routing daemon, 860
MSG_DONTROUTE flag, 873
MSTP (Multiple Spanning Tree Protocol), 309, 351, 352
mtu field, net_device structure, 45, 142, 145
MTU (Maximum Transmission Unit), 45, 429-432, 449
mtu_expires file, 961, 962
multibyte options, IPv4, 414
multicast, xx
      ARP handling, 702
      disabling for device, 858
      enabling for device, 858
      link layer multicast, 51
      packet, testing for, 464
      packet type for, 284
      transmission of packets and, 476
multicast address
      as route destination, 871
      bridge handling of, 304
      class of, 784
      sending ICMP messages to, 611
      static translation for, 633
MULTICAST macro, 843, 986
multicast routing, xx, 831
multihomed hosts, 779
multipath caching, 836, 873-878, 943
multipath routing, 808-815
      cache for, 811-812
      enabling, 832
      for default route, 939
      next hop selection for, 810, 941-944
      per connection distribution, 814
      per flow distribution, 814
      per packet distribution, 814
      selection of, 939
multipath_alg_register function, 874, 988
multipath_alg_unregister function, 874, 988
multipath_bucket structure, 837
multipath_candidate structure, 837
multipath_comparekeys function, 875, 876
multipath_dest structure, 837
multipath_device structure, 836
multipath_drr.c file, 878
multipath_flush function, 874, 988
_ _multipath_lookup_weight function, 878
multipath_random.c file, 876, 878
multipath_remove function, 874, 988
multipath_route structure, 837
multipath_rr.c file, 878
multipath_select_route function, 874, 988
multipath_set_nhinfo function, 874, 944, 988
Multiple Spanning Tree Protocol (MSTP), 309, 351, 352
mutual exclusion, 14-15

N[ Top ]
name field
      irqaction structure, 92
      net_device structure, 44
      pci_driver structure, 107
name_hlist field, net_device structure, 50
nameif tool, 139
NAPI
      advantages of, 214
      net_device fields for, 54, 215
      net_rx_action function and, 216
      notifying kernel of frame reception, 212, 214-219
NAT (Network Address Translation)
      checksum updates triggered by, 433
      fragmentation and, problems with, 427
      limitations of, 552
      stateless, 21
ND (Neighbor Discovery) protocol, 635
      compared to ARP, 748
      initialization and cleanup, 687
ndisc_cache file, 753
ndisc_cleanup function, 687
ndisc_init function, 687
ndisc_rcv function, 773
nd_tbl structure, 761, 773
negative_advice virtual function, dst_ops structure, 881, 983
neigh_add function, 751, 772
neigh_alloc function, 672, 772
neigh_app_notify function, 745
neigh_apps_ns function, 745
neigh_blackhole function, 661, 772
neighbor advertisement (see solication replies)
Neighbor Discovery protocol (see ND protocol)
neighbor solicitation (see solication requests)
neighboring subsystem, 625-628, 634-636
      ARP protocol and (see ARP (Address Resolution Protocol))
      arpd notifications, 665
      caching used by, 666-668
      cases where not required, 633
      configuration, 752-757
      creating a neighbor, 671-673
      data structures for, 651-655, 757-772, 773
      deleting a neighbor, 673-679
      events generated by, 689
      events received by, 690-692
      files and directories for, list of, 774
      functions for, list of, 772
      garbage collection, 669, 675-679
      initialization, 657-661
      interaction with IPsec, 689
neighboring subsystem (continued)
      interaction with L3 transmission functions, 692-693
      interaction with Netfilter, 689
      interaction with routing, 689
      interaction with TEQL, 689
      interface to L3 transmission function, 510
      L2 header caching, 683-687
      link layer address, changing, 665
      NUD (network unreachability detection), 644-647
      packet transmission, 634, 642
      protocol initializatin and cleanup, 687
      protocol mappings for, 5
      protocols for, 635-636
      proxying, 637-640, 679-683
      queuing, 696-698
      reachability of neighbors, 643, 647-650
      reasons for, 628-634
      reference counts, 670
      solicitation replies, 634
      solicitation requests, 634
      states of neighbors, 642, 644-647
      statistics about, 771
      system administration for, 749-752
      timers, 669
      updating neighbor information, 661-665
      variables for, list of, 773
      VFT interface with L3 protocols, 655-665
neighbour field, dst_entry structure, 982
neighbour structure, 651, 655, 758-761
      caching, 666
      creating, 671-673
      deleting, 673-679
      initialization, 716-721
      reference counts on, 670
neighbour.h file, 651
NEIGH_CACHE_STAT_INC macro, 772
neigh_changeaddr function, 690, 692
neigh_compat_output function, 660, 772
neigh_confirm function, 649, 772
neigh_connect function, 659, 772
neigh_connected_output function, 660, 772
neigh_create function, 666, 671, 772
neigh_delete function, 751, 772
neigh_destroy function, 674, 772
neigh_dump_info function, 751
neigh_forced_gc function, 676, 772
neigh_hash_alloc function, 666
neigh_hash_free function, 666
neigh_hash_grow function, 667
neigh_hh_init function, 773
neigh_hold function, 670, 773
neigh_ifdown function, 690, 690-691, 772
_ _neigh_lookup function, 668, 773
neigh_lookup function, 668, 773
_ _neigh_lookup_errno function, 668, 773
neigh_ops structure, 652, 769-770
      functions assigned to virtual functions of, 660
      instances for each protocol, 657
      VFT implemented as, 655
neigh_parms structure, 652, 653, 753, 765-769
neigh_parms_alloc function, 768
neigh_parms_clone function, 768
neigh_parms_destroy function, 768
_ _neigh_parms_put function, 768
neigh_parms_put function, 768
neigh_parms_release function, 768
neigh_periodic_timer function, 649, 673, 677, 772
neigh_proxy_process function, 772
neigh_rcu_free_parms function, 769
neigh_recv_ns function, 679
neigh_release function, 670, 674, 773
neigh_resolve_output function, 660, 686, 772
neigh_setup function, neigh_parms structure, 765
neigh_setup function pointer, net_device structure, 55, 672
neigh_statistics structure, 652, 771
neigh_suspect function, 659, 772
neigh_sync function, 772
neigh_sysctl_register function, 715, 755-757
neigh_table structure, 652, 653, 761-765
neigh_table_clear function, 688
neigh_table_init function, 688, 714, 772
neigh_tables variable, 773
neigh_timer_handler function, 690, 772
neigh_update function, 658, 661-665, 750, 772
NEIGH_UPDATE_F_ADMIN flag, 661
NEIGH_UPDATE_F_OVERRIDE flag, 661
NEIGH_UPDATE_F_OVERRIDE_ISROUTER flag, 662
NEIGH_UPDATE_F_WEAK_OVERRIDE flag, 662
neigh_update_hhs function, 687, 772
NEIGH_UPDATE_ISROUTER flag, 662
net.agent agent, 100
NET_BH type, 191
net_bridge structure, 360, 373, 401, 404
net_bridge_fdb_entry structure, 360, 399
net_bridge_port structure, 360, 399, 404
netdev= keyword, 117, 120
netdev_boot function, 135
netdev_boot_setup function, 117, 120
netdev_boot_setup structure, 135
netdev_boot_setup_add function, 135
netdev_boot_setup_check function, 140
NETDEV_BOOT_SETUP_MAX variable, 135
netdev_chain notification chain, 81, 152
      registration and unregistration to, 78
      virtual devices using, 170
NETDEV_CHANGE event, 153, 165, 389, 856
NETDEV_CHANGEADDR event, 153, 389, 692, 742
NETDEV_CHANGEMTU event, 389, 856, 858
NETDEV_CHANGENAME event, 153, 858
NETDEV_DOWN event, 152, 390
      disabling device, 161, 856, 883
      disabling multicast configuration, 858
      DST handling of, 884
      removing of IP address, 549, 850
NETDEV_FEATCHANGE event, 389
NETDEV_GOING_DOWN event, 152, 160
netdevice notification chain, 389
net_device structure, 22, 43, 105, 653
      allocating, 138, 140
      bridge, field for, 53
      checksum fields, 441
      configuration fields, 44-48
      deallocating, 141
      device status, 49
      Diverter, field for, 53
      fields defining state of device, 147-148
      fields, initializing, 141-145, 154
      freeing, 156, 157, 158
      function pointers, 55
      function pointers, initializing, 86, 142
      generic fields, 54
      global list of, 146
      hash tables for, 146
      identifiers, 44
      interface types and ports, 47
      link layer multicast fields, 51
      list management, 50
      locking for, 171
      lookups on, 146, 147
      NAPI fields, 54, 215
      Netpoll fields, 54
      organization of, 145
      promiscuous mode, 47
      reference counts for, 158
      statistics, 48
      Traffic Control fields, 52
      VLAN function pointers, 54
      watchdog timer fields, 258
      wireless device fields, 54
netdevice.h file, 43, 48, 49
net_device_stats structure, 48, 398
net_dev_init function, 94-96, 104
      dependency with module_init functions, 130
      files created by, 103
netdev_max_backlog file, 67, 263
netdev_max_backlog variable, 223, 263, 264
netdev_nit variable, 279, 293
NETDEV_REBOOT event, 153
NETDEV_REGISTER event, 153
netdev_run_todo function, 150, 150-152, 154
netdev_state_change function, 165
netdev_sysfs_init function, 95
NETDEV_UNREGISTER event, 153, 390, 884
      DST handling of, 883
      IP configuration and, 858
      reference counts and, 158
      routing table and, 856
      unregister_netdevice generating, 157
NETDEV_UP event, 152, 160, 390
      adding of IP address, 549, 850
      enabling device, 856
      enabling multicast configuration, 858
netdev_wait_allrefs function, 150, 158, 159
Netfilter, xxi, 444
      interaction with neighboring subsystem, 689
      IPv4 using, 411
      masquerading feature, 549
      sk_buff fields for, 32
      transmission of packets and, 481
netif_carrier_off function, 163, 172
netif_carrier_ok function, 172
netif_carrier_on function, 163, 172
netif_device_attach function, 162, 172
netif_device_detach function, 162, 172
NETIF_F_HW_CSUM flag, 441
NETIF_F_IP_CSUM flag, 441
NETIF_F_LLTX, 255
NETIF_F_LLTX flag, 247
NETIF_F_NO_CSUM flag, 441
netif_poll_disable function, 218
netif_poll_enable function, 218
netif_queue_stopped function, 172, 241, 263
netif_receive_skb function, 235-238, 264, 276, 375, 446, 447
      bridging code using, 371
      function handler called by, 280
netif_running function, 211
netif_rx function, 212, 213, 227, 263
_ _netif_rx_complete function, 218
netif_rx_complete function, 218, 263
_ _netif_rx_schedule function, 218, 263
netif_rx_schedule function, 218, 263
netif_rx_stats structure, 261
_ _netif_schedule function, 243
netif_schedule function, 244, 264
netif_start_queue function, 172, 241, 242, 263
netif_stop_queue function, 172, 241, 263
      interrupts and, 90
      memory availability and, 242
      suspending a device, 162
netif_wake_queue function, 244, 264
      re-enabling egress queue, 243
      triggering net_tx_action function, 255
Netlink, 60, 70
      notifications to routing subsystem, 858
      serialization used by, 71
NETLINK_FIREWALL protocol, 70
NETLINK_ROUTE protocol, 70
net_local structure, 49
netmask, 789
netmask field, fib_result structure, 978
netplugd daemon, 154
Netpoll, 211
      net_device fields for, 54
      processing ingress frames, 237
netpoll_rx field, net_device structure, 54
net_protocol structure, 571, 583
net_random_init function, 95
NETREG_REGISTERED flag, 149
NETREG_REGISTERING flag, 149
NETREG_RELEASED flag, 149
NETREG_UNINITIALIZED flag, 149
NETREG_UNREGISTERED flag, 149
NETREG_UNREGISTERING flag, 149
net_rx function, 219-225
net_rx_action function, 216, 228-238, 264
NET_RX_SOFTIRQ type
      initialization of, 199
      processing of, 228-238
      registration of, 206
      scheduling of, 225
net_set_todo function, 150, 154
net_todo_list array, 150
net-tools package, 749, 752, 952, 956
net-tools suite, 18
net_tx_action function, 239, 255-260, 264
NET_TX_SOFTIRQ type, 239
      initialization of, 199
      processing of, 255-260
      registration of, 206
      scheduling of, 244
Network Address Translation (see NAT)
network byte order, converting, 15
network cards (see NICs)
network devices
      configuring from user space, 166-169
      configuring with boot options, 120
      data structures for, list of, 172
      disabling, 137, 159, 211
      enabling, 137, 159, 211
      files and directories for, list of, 105
      functions for, list of, 104, 172
      hot-pluggable, 84, 96, 98-100
      initialization of, 86, 93, 127, 141-145
      initializing device handling layer, 94-96
      interaction with kernel, 87-92
      link state change detection, 163-165
      loading as components, 93
      loading as modules, 93, 96, 98
      name of, 138
      notification of registration status, 152-154
      queuing discipline, 148, 155
      registering, 86, 136, 137, 140, 149-154, 154-155
      registration state, 148, 149
      resuming after suspending, 162
      state of, 147-149
      suspending, 162
      transmission
            enabling and disabling, 241-243
            scheduling, 243-245
      unique identifyer for, 155
      unregistering, 136, 138, 141, 149-154, 156-159
      variables for, list of, 104, 172
      (see also net_device structure; NICs; virtual devices)
network field, fib_result structure, 978
network filesystems, xxi
network layer (see L3)
Network Safari Bookshelf, xxiii
network stack, 266
      communication points of, handling, 269-274
      going down (egress traffic), 268, 271
      going up (ingress traffic), 267, 272
network unreachability detection (NUD), 644-647, 657-661
New API (see NAPI)
new_bridge_dev function, 362
new_nbp function, 366
next field
      dst_entry structure, 981
      ipq structure, 558
      irqaction structure, 92
      neighbour structure, 758
      neigh_parms structure, 765
      neigh_table structure, 762
      net_device structure, 50, 145
      sk_buff structure, 24
next hop selection for multipath routing, 941-944
next_header field, IPv6 header, 582
next-hop router structures, 903-904
next-hop scope, 839
next_sched field, net_device structure, 52
nf_bridge field, sk_buff structure, 32
nfcache field, sk_buff structure, 32
nfct field, sk_buff structure, 32
nfctinfo field, sk_buff structure, 32
nfdebug field, sk_buff structure, 32
NF_HOOK function, 444
nfmark field, sk_buff structure, 32
nh field, sk_buff structure, 28
nh_dev field, fib_nh structure, 975
nh_flags field, fib_nh structure, 975
nh_gw field, fib_nh structure, 839, 975
nh_hash field, fib_nh structure, 975
nh_oif field, fib_nh structure, 975
nh_parent field, fib_nh structure, 975
nh_power field, fib_nh structure, 942, 975
nh_scope field, fib_nh structure, 975
nh_sel field, fib_result structure, 978
nh_tclassid field, fib_nh structure, 949, 975
nh_weight field, fib_nh structure, 942, 975
NICs
      controlling packet transmission, 833
      initialization of, 86
      interaction with kernel, 87-92
      I/O ports for, 87
      IRQ line for, 87
      memory registration for, 87
      multiple
            implementing bridge using, 300
            in nonrouting multihomed hosts, 779
            in router, 778
      multiple IP addresses configured on, 789-793, 841
      PCI NICs
            device driver registration, 108, 110-112
            multiport, 300
      registering, 140
      unregistering, 141
      (see also network devices)
nl_u field, flowi structure, 984
No Operation, IP option type field, 415, 416
no_cong file, 263
no_cong variable, 263, 264
no_cong_thresh file, 263
no_cong_thresh variable, 263, 264
nonroutable addresses, 784
nonrouting multihomed hosts, 779
no_pmtu_disc field, ipv4_config structure, 564
no_policy field, net_protocol structure, 571
notification chains, 75-78
      components registering with, 78
      data structures for, list of, 83
      defining, 78
      files and directories for, list of, 83
      functions for, list of, 83
      list of, 81
      netdevice notificatin chain, 389
      notifying events on, 79
      registering, 82
      wrappers for, 78, 81
      (see also netdev_chain notification chain)
notifier_block structure, 78, 83
notifier_call_chain function, 79, 83
notifier_chain_register function, 78, 83
notifier_chain_unregister function, 79, 83
nowhere scope for routes, 838
ntohl macro, 16
ntohs macro, 16
NUD (network unreachability detection), 644-647, 657-661
NUD_CONNECTED state, 646
NUD_DELAY state, 646, 647, 648, 650, 659
NUD_FAILED state, 645, 673
NUD_INCOMPLETE state, 645, 647, 650, 665
NUD_IN_TIMER state, 647
NUD_NOARP state, 646, 665
NUD_NONE state, 644, 647, 650, 665
NUD_PERMANENT state, 646, 665
NUD_PROBE state, 646, 647, 648, 650, 659
NUD_REACHABLE state, 645, 646, 649, 650, 659
NUD_STALE state, 646, 648, 650, 659
nud_state field, neighbour structure, 657-661, 717, 759
NUD_VALID state, 646, 665

O[ Top ]
obs_kernel_param structure, 118, 120, 135
obsolete field, dst_entry structure, 981
_ _obsolete_setup macro, 118
octets, 3
OFFLINE_SAMPLE symbol, 95, 227
offset field, icmp_bxm structure, 602
oif field, flowi structure, 984
open function pointer, net_device structure, 55, 142, 159
Open Shortest Path First IGP (OSPFIGP) protocol, 574
open_softirq function, 194, 264
Oper field, arphdr structure, 701
ops field
      dst_entry structure, 983
      neighbour structure, 655, 656, 657, 717-719, 761
opt field, cork structure, 565
optbuf field, icmp_bxm structure, 602
Options field, IP header, 414
options, IPv4, 411, 414, 414-420
      functions for, 453-455
      parsing, 457
      processing, 455-465
optlen field, ip_options structure, 556
O'Reilly contact information, xxiii
OSI model, 266
OSPFIGP (Open Shortest Path First IGP) protocol, 574
out_hit counter, 870
out_hit field, rt_cache_stat structure, 984
out_hlist_search field, rt_cache_stat structure, 985
output function
      dst_entry structure, 982
            initialization of, 920-923
      neighbour structure, 655, 657-661, 717
      neigh_ops structure, 769
output_entry field, icmp_control structure, 601
output_queue field, softnet_data structure, 207, 239, 244
out_slow_mc field, rt_cache_stat structure, 985
out_slow_tot field, rt_cache_stat structure, 985

P[ Top ]
Packet Action, 211
packet ID, selecting, 540
packet type, setting, 284
packets, 4, 267
      ARP packets, 700-702, 722-734
      forwarding, 272, 411, 455, 466-471
      paths taken by, 178
      reception of (see reception of packets)
      transmission of (see transmission of packets)
      (see also fragmentation/defragmentation of packets)
packet_type structure, 278, 279, 293
_ _pad1 field, ip_options structure, 558
_ _pad2 field, ip_options structure, 558
padded field, net_device structure, 145
page field, skb_frag_t structure, 565
page_offset field, skb_frag_t structure, 565
parms field
      neighbour structure, 758
      neigh_table structure, 763
parms_list field, neigh_table structure, 763
parse_args function, 85, 116, 117
parse_early_param function, 85
parse_early_params function, 118
passive learning by bridge, 302
patches, 20
path field, dst_entry structure, 981
Path MTU (PMTU), 429-432, 881
path_cost field, net_bridge_port structure, 400
patterns (see coding patterns)
PCI devices
      boot time activities for, 112
      power management, 109
      WOL (Wake-on-LAN), 109
PCI layer, 106-108
      configuration, 114
      data structures for, list of, 114
      files and directories for, list of, 115
      functions for, list of, 114
PCI NICs
      device driver registration, 108, 110-112
      multiport, 300
pci_dev structure, 107, 114
pci_device_id structure, 106, 108, 112, 114
pci_driver structure, 107, 108, 112, 114
pci.h file, 106
pci_module_init function, 108, 112, 114
pci_register_driver function, 108, 112, 114
pci_unregister_driver function, 108, 114
pconstructor function, neigh_table structure, 764
pde field, neigh_table structure, 762
pdestructor function, neigh_table structure, 764
peer field, rtable structure, 981
peer information kept at IP layer, 536-540
peer_check_expire function, 538, 540
peer_periodic_timer timer, 538
peer_pool_lock variable, 537, 568
peer_total variable, 537, 538, 568
per connection distribution, multipath routing, 814
per flow distribution, multipath routing, 814
per packet distribution, multipath routing, 814
per-destination proxying, 682
per-device proxying, 682
performance
      compile-time optimization for condition checks, 13
      of Linux, xv
"Performance Evaluation of Linux Bridge" (Yu), 355
periodic_gc_runs field, neigh_statistics structure, 771
Peripheral Component Interconnect (PCI) NICs (see PCI NICs)
per-netmask tables, routing tables, 898-902
PF_INET protocol family, 268
PF_KEY protocol family, 268
PF_LLC protocol family, 268
PF_NETLINK protocol family, 70, 268
PF_PACKET protocol family, 268
phash_buckets field, neigh_table structure, 653, 683, 764
PIM (Protocol Independent Multicast) protocol, 832
PIMv1 (Protocol Independent Multicast, version 1), 570
PIMv2 (Protocol Independent Multicast, version 2), 570
ping command, 18, 595
pkt_type field, sk_buff structure, 30, 284, 447
PLIP device
      MTU value for, 46
      tx_queue_len value for, 52
Plug and Play (PnP), 98
PMTU (Path MTU), 429-432, 881
pneigh_enqueue function, 682, 773
pneigh_entry structure, 652, 653
pneigh_lookup function, 683, 773
pneigh_update function, 750
PnP (Plug and Play), 98
point-to-point medium
      neighboring subsystem not needed for, 630
      only one host on, 633
policy realms, 816, 948
policy routing, 802-808
      configuring, 803-806
      default gateway selection and, 946
      device status changes affecting, 857
      enabling, 832
      firewall-based classifier, 808, 818, 859
      initialization, 845
      lookups, 806, 944-946
      routing table based classifier, 948-951
      routing table definitions affected by, 910
      selecting routing table for, 806-808
      TOS affecting, 808
poll field, net_device structure, 54
poll virtual function, net_device structure, 142, 215, 216
poll_controller field, net_device structure, 54
polling of device by kernel, 87, 179
      mixing with interrupts (see NAPI)
      Netpoll framework for, 211
poll_list field, net_device structure, 54, 215
      manipulating, 218
      queuing input device to, 217
poll_list field, softnet_data structure, 207, 239
port cost, STP, 321, 323
port ID, STP, 321, 382
port priority, STP, 321, 322, 323
port timers, STP, 336, 388
port_id field, net_bridge_port structure, 400
port_list field, net_bridge structure, 401
port_no field, net_bridge_port structure, 400
ports (see bridge ports)
postcore_initcall macro, 126
power management
      PCI devices, 109
      queuing discipline state and, 161-162
PPP device
      MTU value for, 46
      tx_queue_len value for, 53
pppoe_disc_rcv function, 282
pppoe_rcv function, 282
pprev field, ipq structure, 559
preempt_check_resched function, 189
preempt_count counter, 189
preempt_disable function, 189
preempt_enable function, 189
preempt_enable_no_resched function, 189
preemption, 188
preferred source IP address, 928
prefixlen field, fib_result structure, 978
prev field, sk_buff structure, 24
primary addresses, 789-793, 841, 854
primary_key field, neighbour structure, 761
prio field, bridge_id structure, 398
priority field
      net_bridge_port structure, 400
      sk_buff structure, 31
priority vector, configuration BPDUs, 325
priv field
      neigh_parms structure, 766
      net_device structure, 48, 142
private field, sk_buff structure, 32
priv_flags field, net_device structure, 45
probe function, pci_driver structure, 107
probes field, neighbour structure, 760
probing mechanism for device driver, 109
/proc filesystem (procfs), 58, 60
      ARP protocol, 708-714
      bridging information in, 396
      Ethernet and Token Ring information in, 293
      frame reception information in, 262
      ICMP information in, 620
      IP configuration using, 545, 553-555
      neighboring subsystem, 752-757
      network device information in, 103
      PCI device information in, 114
      routing, 958-966
proc_dointvec function, 63
proc_dointvec_jiffies function, 63
proc_dointvec_minmax function, 63
proc_dointvec_ms_jiffies function, 63
proc_dostring function, 63
proc_doulongvec_minmax function, 63
proc_doulongvec_ms_jiffies_minmax function, 63
process_backlog function, 264
process_backlog virtual function, 231-235
procfs (see /proc filesystem)
proc_handler function, 62, 63
/proc/net directory, 959, 966
/proc/net/stat directory, 959, 966
/proc/sys directory (see sysctl command)
/proc/sys/net/ipv4 directory, 959, 960
/proc/sys/net/ipv4/conf directory, 752, 757, 959, 962-965
/proc/sys/net/ipv4/neigh directory, 752, 753-757
/proc/sys/net/ipv4/route directory, 959, 960-961
/proc/sys/net/ipv6/conf directory, 752
/proc/sys/net/ipv6/neigh directory, 752
prohibit route, 794
promiscuity field, net_device structure, 47
promiscuous mode, 277, 285, 366
proto field, flowi structure, 984
protocol field
      dst_ops structure, 983
      IP header, 413, 574
      ipq structure, 559
      sk_buff structure, 31, 274, 276
protocol handlers, 266
      data structures for, list of, 293
      execution of, 274-278
      files and directories for, list of, 294
      functions for, list of, 293
      organization of, 278
      registration, 279-281
      variables for, list of, 293
Protocol Independent Destination Cache (see DST)
Protocol Independent Multicast (PIM) protocol, 832
Protocol Independent Multicast, version 1 (PIMv1), 570
Protocol Independent Multicast, version 2 (PIMv2), 570
Protocol size field, arphdr structure, 701
Protocol type field, arphdr structure, 700
protocols
      OSI model for, 266
      TCP/IP model for, 266
      (see also specific protocols)
proxy_arp file, 757
proxy_delay field, neigh_parms structure, 681, 767
proxy_delay file, 755
proxy_delay variable, 755
proxying
      ARP, 735-740
      destination-based, 639
      device-based, 639
      for neighboring protocol, 637-640
      neighboring subsystem, 679-683
proxy_qlen field, neigh_parms structure, 681, 766
proxy_qlen file, 755
proxy_qlen variable, 755
proxy_queue field, neigh_table structure, 680, 682, 764
proxy_redo function, neigh_table structure, 680, 765
proxy_timer field, neigh_table structure, 670, 680, 765
pseudoheader, from IP header, 437
pskb_copy function, 40
pskb_may_pull function, 447
_ _pskb_trim function, 449
pskb_trim_rcsum function, 449
ptype_all variable, 279, 293
ptype_base variable, 95, 278, 293
publications
      article about RCU (McKenney), 15
      Ethernet: The Definitive Guide (O'Reilly), 630
      "ICMP Usage in Scanning" (Arkin), 585
      Linux Device Drivers (O'Reilly), xvi
      "Performance Evaluation of Linux Bridge" (Yu), 355
      RFCs about ICMP protocol, 585
      Understanding Multiple Spanning Tree Protocol (802.1s), 351
      Understanding Rapid Spanning Tree Protocol (802.1w), 351
      Understanding the Linux Kernel (O'Reilly), xvi

Q[ Top ]
qdisc field, net_device structure, 52
qdisc_ingress field, net_device structure, 52
qdisc_list field, net_device structure, 52
qdisc_restart function, 246, 246-249
qdisc_run function, 246, 264
qdisc_sleeping field, net_device structure, 52
QoS (Quality of Service), xx
      networking options for, 24
      policy routing based on, 803
      queuing discipline implementing, 155
      sk_buff priority field for, 31
      TOS field and, 412
      (see also Traffic Control)
Quagga routing protocol daemon, 820, 860
Quality of Service (see QoS)
query messages, ICMP, 587
      (see also ICMP messages)
queue_len field, neigh_parms structure, 766
queue_len variable, 755
queue_lock field, net_device structure, 52, 171, 247
queues
      egress queues, 212, 241-243
      ingress queues, 212, 223-225
      neighboring system, 696-698
queue_xmit function, neigh_ops structure, 657, 770
queuing discipline, 155, 245-249
      disabling, 161
      frame transmission and, 252
      initializing, 160
      link state change detection and, 163-165
      power management and, 161-162
      state of, 148
quota field, net_device structure, 54, 215

R[ Top ]
r field, fib_result structure, 978
race conditions, locks protecting against, 843
r_action field, fib_rule structure, 976
raise_softirq function, 188, 194, 264
_ _raise_softirq_irqoff function, 188, 194
raise_softirq_irqoff function, 188, 194, 264
random algorithm, multipath routing, 811, 876
random number generation, 95
Rapid Spanning Tree Protocol (RSTP), 309, 351
RARP (Reverse Address Resolution Protocol), 545, 746
rate limiting, 608-610
      ICMP_REDIRECT messages, 896
      ICMP_UNREACHABLE messages, 931-933
rate_last field, dst_entry structure, 897, 982
rate_tokens field, dst_entry structure, 897, 982
raw IP, 577-581, 873
raw sockets, 510, 577-581
raw_rcv function, 581
raw_v4_htable table, 581, 583
raw_v4_input function, 581, 583
r_clntref field, fib_rule structure, 976
rcu field
      net_bridge_fdb_entry structure, 399
      net_bridge_port structure, 400
RCU (Read-Copy-Update), 14, 864
rcu_head field
      dst_entry structure, 983
      in_device structure, 562
      in_ifaddr structure, 564
      neigh_parms structure, 767
rcu_read_lock lock, 573
rcu_read_unlock lock, 573
rcvfunc function, datalink_proto structure, 292
rcv_probes_mcast field, neigh_statistics structure, 771
rcv_probes_ucast field, neigh_statistics structure, 771
r_dead field, fib_rule structure, 977
rdisc command, 18
r_dst field, fib_rule structure, 977
r_dst_len field, fib_rule structure, 976
r_dstmask field, fib_rule structure, 977
reachability of neighbors, 643, 647-650
reachable_time field, neigh_parms structure, 766
Read-Copy-Update (RCU), 14, 864
real_dev field, sk_buff structure, 28
realms for routing table based classifier, 783, 815-818
rebuild_header function pointer, net_device structure, 55, 142, 686
receive-livelock condition, 180
reception of frames
      backlog queue for, 231-235
      configuration, 262
      congestion management for, 225-228
      data structures for, list of, 264
      disabling, 211
      drivers notifying kernel of, 178-183
      files and directories for, list of, 265
      functions for, list of, 263
      ingress queues for, 212
      notifying kernel of, 212-219
      processing multiple frames during interrupt, 180
      processing of, 228-238
      queue for incoming frames, 206-209
      receive-livelock condition, 180
      scheduling software interrupts for, 219-225
      statistics about, 261
      STP bridge handling, 347
      variables for, list of, 264
      with LLC, 290
reception of ICMP messages, 611-617
reception of messages, 267
reception of packets, 411, 446-453
      routing table and, 800
      statistics about, 542
reception (RX), 4
Record Route, IP option type field, 415, 417, 462
redirect_load file, 961, 962
redirect_number file, 961, 962
redirect_silence file, 961, 962
refcnt field
      in_device structure, 562
      inet_peer structure, 561
      ipq structure, 560
      neighbour structure, 670, 760
      neigh_parms structure, 767
      net_device structure, 54, 158
_ _refcnt field, dst_entry structure, 981
reference counts, 6, 374
      neighbour structure, 670
      net_device structure, 158
register_8022_client function, 293
register_inet6addr_notifier function, 78
register_inetaddr_notifier function, 78, 548
register_netdev function, 149, 172
register_netdevice function, 96, 149, 154, 169, 172
register_netdevice_notifier function, 78, 152, 715
register_snap_client function, 291, 293
register_sysctl_table function, 62, 64-66
registration of network devices, 136, 137, 140, 149-154, 154-155
      virtual devices, 169
reg_state field, net_device structure, 49, 147, 148
release_region function, 87, 104
remove function, pci_driver structure, 107
remove_bh function, 191
repeater, 297
replyopts field, icmp_bxm structure, 602
request function, datalink_proto structure, 292
request_irq function, 88, 91, 104
request_module function, 98
request_region function, 87, 104
requeue function, 246
res_failed field, neigh_statistics structure, 771
resources (see publications; web site resources)
resume function, pci_driver structure, 107, 162
retrans_time field, neigh_parms structure, 766
retrans_time file, 755
retrans_time variable, 755
Reverse Address Resolution Protocol (RARP), 545, 746
reverse path filtering, 828
r_flags field, fib_rule structure, 977
r_fwmark field, fib_rule structure, 977
r_ifindex field, fib_rule structure, 977
r_ifname field, fib_rule structure, 977
RJ-45 wire, 630
r_next field, fib_rule structure, 976
roles
      RSTP ports, 351
      STP ports, 319
root bridge, STP, 317, 328, 387
      changing ID of, 341
      notified of topology change, 342
root node, STP, 315
root port, STP, 319, 329
root_path_cost field, net_bridge structure, 402
root_port field, net_bridge structure, 402
round-robin algorithm, multipath routing, 811, 878
routable addresses, 784
route command, 859, 956
route file, 966
Route NAT, 736
route realms, 817
Routed routing protocol daemon, 820, 860
router, 297, 778
      forwarding packets, process for, 272
      proxy ARP server as, 737-740
Router Alert, IP option type field, 415, 419, 465, 467
router_alert field, ip_options structure, 558
routes, 779
      adding, 859
      asymmetric, 783
      default gateway for, 788
      default route, 779
      inserted by kernel, 958
      inserting in routing tables, 819-821
      metrics for, 783
      scope of, 785-788, 838, 839
      symmetric, 783
      types of, 794
routing, 777, 781-785
      change notifications for, 957
      configuration, 830-833, 952-958, 958-966
      configurations of, 780
      data structures for, 834-837, 968-986, 989
      device status changes, handling, 856-858
      directed broadcasts and, 788
      external events affecting, 845-858
      files and directories for, list of, 989
      forwarding, enabling and disabling, 966
      functions for, list of, 986-988
      global locks for, 843
      helper routines and macros for, 842
      ICMP messages and, 599
      ICMP_REDIRECT messages and, 822-828
      initialization, 844
      interaction with neighboring subsystem, 689
      interaction with Traffic Control subsystem, 815-818
      IP configuration changes, handling, 849-856
      IP layer and, 445
      multipath routing, 808-815
      Netlink notifications, handling, 858
      packet reception, 800
      packet transmission, 800
      policy routing, 802-808
      primary and secondary addresses for, 789-793, 841
      rate limiting for ICMP_REDIRECT messages, 896
      reverse path filtering, 828
      shared media and, 823-825, 828
      source routing, 946
      statistics, 834, 958
      user-space tools for, 952-958
      variables for, list of, 988
      Verbose Monitoring, 821
      on WAN devices, 832
routing cache, 795, 836, 861
      adding entries to, 864, 865
      allocating entries, 865
      binding to ARP cache, 868
      compared to routing table, 795
      creating entries in, 927
routing cache (continued)
      data structures for, 862
      deleting entries in, 864, 893-894
      enabling, 832
      expiration of entries in, 892
      external events, handling, 883
      flushing, 885
      garbage collection for, 796-798, 886-896
      initialization, 861
      interface to calling protocols, 879-885
      interface to IPsec, 882
      locking for, 864
      lookups, 798, 864, 868-873
      multipath caching, 873-878
      preferred source IP address in, 928
      size of, 862
routing protocol daemons, 819-821, 859
routing protocols, 778
routing table, 778, 793-798
      actions taken by, 794
      adding routes to, 905
      compared to routing cache, 795
      configuring for policy routing, 805
      default routing tables, 904
      device status changes affecting, 856
      garbage collection for, 910
      initialization, 904
      local and non-local addresses in, 794
      lookups, 798-800, 912, 914-920
            delivery to other hosts, 938
            egress traffic, 920-923, 933-941
            forwarding, 931
            helper routines for, 913
            ingress traffic, 920-922, 923, 923-933
            local delivery, 929, 937
            policy routing and, 944-946
            routing failure, 931-933
            search key initialization, 935
            source IP address selection, 936
      memory cache for, 5
      next-hop router structures for, 903-904
      number of, 794
      number of, with policy routing, 802
      organization of, 898-904
      per-netmask tables, 898-902
      policy routing affecting, 910
      removing routes from, 905, 906
      selecting, for policy routing, 806-808
routing table based classifier, 815-818, 834, 948-951
routing tag, 817, 950
rp_filter file, 963, 965
rp_filter variable, 963
r_preference field, fib_rule structure, 976
rr field, ip_options structure, 557
rr_needaddr field, ip_options structure, 557
r_src field, fib_rule structure, 977
r_src_len field, fib_rule structure, 976
r_srcmap field, fib_rule structure, 977
r_srcmask field, fib_rule structure, 977
RSTP (Rapid Spanning Tree Protocol), 309, 351
rt field, cork structure, 565
rt structure, 469, 477
r_table field, fib_rule structure, 976
rtable structure, 652, 836, 862, 978-981
rt_acct file, 966
RTAX_ADVMSS metric, 974
RTAX_CWND metric, 974
RTAX_FEATURES metric, 974
RTAX_HOPLIMIT metric, 974
RTAX_INITCWND metric, 974
RTAX_LOCK metric, 974
RTAX_MTU metric, 974
RTAX_REORDERING metric, 974
RTAX_RTT metric, 974
RTAX_RTTVAR metric, 974
RTAX_SSTHRESH metric, 974
RTAX_WINDOW metric, 974
rt_cache file, 958, 966
rt_cache_flush function, 743, 846, 885
rt_cache_stat structure, 834, 958, 984
RT_CACHE_STAT_INC function, 988
RT_CACHE_STAT_INC macro, 870
RTCF_BROADCAST flag, 979
RTCF_DIRECTDST flag, 979
RTCF_DIRECTSRC flag, 979
RTCF_DNAT flag, 737, 979
RTCF_DOREDIRECT flag, 979
RTCF_FAST flag, 979
RTCF_LOCAL flag, 979
RTCF_MASQ flag, 979
RTCF_MULTICAST flag, 979
RTCF_NAT flag, 979
RTCF_NOTIFY flag, 979
RTCF_REDIRECTED flag, 979
RTCF_REJECT flag, 979
RTCF_SNAT flag, 979
RTCF_TPROXY flag, 979
rt_check_expire function, 891
r_tclassid field, fib_rule structure, 948, 977
rt_drop function, 893
rt_dst field, rtable structure, 980
rtentry structure, 836
rt_flags field, rtable structure, 979
rt_flush_lock lock, 843, 986
rt_free function, 891, 893, 988
rt_garbage_collect function, 868, 880, 887-891, 988
rt_gateway field, rtable structure, 980
rt_hash_bucket structure, 862
rt_hash_log variable, 862
rt_hash_mask variable, 862, 988
rt_hash_rnd variable, 862
rt_hash_table hash table, 862
rt_hash_table variable, 988
rt_iif field, rtable structure, 980
rt_intern_hash function, 865, 868, 923, 988
rt_may_expire function, 886, 890, 988
RTM_DELADDR event, 548
RTMGRP_IPV4_ROUTE group, 858, 957
RTMGRP_LINK multicast group, 152, 154
RTM_NEWADDR event, 548
RTM_NEWLINK event, 165
rtmsg_fib function, 858, 987
rtmsg_ifa function, 548, 567
rtmsg_ifinfo function, 154
rt_multipath_alg field, rtable structure, 980
RTN_ANYCAST route type, 919, 980
RTN_BLACKHOLE route type, 919, 980
RTN_BROADCAST route type, 919, 980
RTnetlink RTMGRP_LINK multicast group, 152, 154
RTNH_F_DEAD flag, 918, 972
RTNH_F_ONLINK flag, 972
RTNH_F_PERVASIVE flag, 972
rtnl_lock function, 150, 171, 361
RTN_LOCAL route type, 919, 980
rtnl_sem function, 71
rtnl_unlock function, 150, 171, 361
RTN_MULTICAST route type, 919, 980
RTN_NAT route type, 919, 980
RTN_PROHIBIT route type, 919, 980
RTN_THROW route type, 919, 980
RTN_UNICAST route type, 919, 980
RTN_UNREACHABLE route type, 919, 980
RTN_UNSPEC route type, 919, 980
RTN_XRESOLVE route type, 919, 980
RTO_ONLINK flag, 873
r_tos field, fib_rule structure, 977
rt_periodic_timer timer, 891, 987
RTPROT_BIRD protocol, 973
RTPROT_BOOT protocol, 973
RTPROT_DNROUTED protocol, 973
RTPROT_GATED protocol, 973
RTPROT_KERNEL protocol, 973
RTPROT_MRT protocol, 973
RTPROT_RA protocol, 973
RTPROT_REDIRECT protocol, 973
RTPROT_STATIC protocol, 973
RTPROT_UNSPEC protocol, 973
RTPROT_XORP protocol, 973
RTPROT_ZEBRA protocol, 973
rt_remove_balanced_route function, 891
rt_remove_balanced_routes function, 875
rt_run_flush function, 885
RT_SCOPE_HOST scope, 838
RT_SCOPE_LINK scope, 838
RT_SCOPE_NOWHERE scope, 838
RT_SCOPE_UNIVERSE scope, 838
rt_score function, 865
rt_secret_rebuild function, 886
rt_secret_timer timer, 886, 987
rt_set_nexthop function, 914
rt_spec_dst field, 928
rt_spec_dst field, rtable structure, 981
rt_src field, rtable structure, 980
rt_type field, rtable structure, 979
run_bottom_half function, 192
run_init_process function, 85
RX (see reception)
rx_bytes field, net_device_stats structure, 398
rx_packets field, net_device_stats structure, 398

S[ Top ]
saddr field, ipq structure, 559
Safari Enabled icon, xxiii
SA_INTERRUPT flag, irqaction structure, 92
sanity checks, IPv4, 410
SAPs (Service Access Points), 288
      (see also DSAP; SSAP)
SA_SAMPLE_RANDOM flag, irqaction structure, 92
SA_SHIRQ flag, irqaction structure, 92
Scatter/Gather DMA, 155
Scatter/Gather I/O, 487-490, 503
schedule function, 192
scope field, fib_result structure, 978
scope of IP addresses, 785-788, 839, 936
scope of next hop, 839
scope of routes, 785-788, 838, 839
SCTP (Stream Control Transmission Protocol), 570
secondary addresses, 789-793, 841, 854
secret_interval file, 961, 962
secure_ip_id function, 541, 567
secure_redirects file, 963, 965
secure_redirects variable, 963
security
      ICMPv4 and, 585
      (see also Denial of Service (DOS) attacks; IPsec; Netfilter)
security field, sk_buff structure, 31
Security, IP option type field, 415
segments, 4, 267
semaphores, 15
Sender Hardware Address (SHA) field, arphdr structure, 701
Sender Protocol Address (SPA) field, arphdr structure, 701
sendfile interface, 503
sendmsg system call, 497
send_redirects file, 963, 965
send_redirects variable, 963
serialization of configuration changes, 71
Service Access Points (see SAPs)
setageing command, brctl utility, 395
setageingr command, brctl utility, 392
setbridgeprio command, brctl utility, 395
setbridgeprior command, brctl utility, 392
set_class_tag function, 949
set_config function pointer, net_device structure, 56
setfd command, brctl utility, 395
setfdr command, brctl utility, 392
sethello command, brctl utility, 395
sethellor command, brctl utility, 392
set_mac_address function pointer, net_device structure, 56, 142
setmaxage command, brctl utility, 395
setmaxager command, brctl utility, 392
set_multicast_list function pointer, net_device structure, 56, 142
setpathcost command, brctl utility, 395
setpathcostr command, brctl utility, 392
setportprio command, brctl utility, 395
setportprior command, brctl utility, 392
SetTxThreshold command, 242
_ _setup macro, 93, 117, 120
setup_check function, 135
setup_irq function, 91
_ _setup_param function, 118
SHA (Sender Hardware Address) field, arphdr structure, 701
shared media
      neighboring subsystem for, 630-631
      routing and, 823-825, 828
shared_media file, 963, 965
shared_media variable, 963
show command, brctl utility, 395
"Show me your data" (Brooks), 22
showmacs command, brctl utility, 395
showmacsr command, brctl utility, 392
showr command, brctl utility, 392
showstp command, brctl utility, 395
showstpr command, brctl utility, 392
Simple Internet Transition (SIT, IPv6-over-IPv4 tunnel), 570
Simple Network Management Protocol (see SNMP)
SIP (Source IP address) field, arphdr structure, 701
SIT (Simple Internet Transition, IPv6-over-IPv4 tunnel), 570
size field, skb_frag_t structure, 565
sk field, sk_buff structure, 25
skb field, icmp_bxm structure, 602
skb function, neighbour structure, 760
skb_bond function, 237
skb_can_coalesce function, 504
skb_checksum_help function, 436
skb_checkum function, 435
skb_clone function, 39
skb_copy function, 41
skb_cow function, 451, 470
skb_dequeue function, 42
skb_dequeue_tail function, 42
skb_fill_page_desc function, 504
skb_frag_t structure, 565
skb_headlen function, 491
skb_init function, 5
skb_is_nonlinear function, 491
skb_pagelen function, 491
skb_pull function, 35-38
skb_push function, 35-38
skb_push function, sk_buff structure, 480
skb_put function, 35-38
skb_queue_head function, 42
skb_queue_head_init function, 42
skb_queue_purge function, 42
skb_queue_tail function, 42
skb_queue_walk function, 42
skb_reserve function, 23, 35-38
skb_set_owner_w function, 477
skb_share_check function, 40, 447, 727
skb_shared_info structure, 38
skb_shinfo block, 505
skb_shinfo function, 38
sk_buff structure, 22
      allocating, 5
      checksum fields, 441-443
      cloning and copying, 39-42
      created by ip_append_data function, 484
      data reservation and alignment, 35-38
      functions, 32-42
      general fields, 27-31
      HIPPI field, 32
      IPsec protocol field, 32
      layout fields, 24-27
      list (queue) management, 42
      memory
            allocating, 33-35
            freeing, 35
      Netfilter fields, 32
      networking options, 23
      skb_shared_info structure, accessing, 38
      Traffic Control fields, 32
skbuff.c file, 32, 42
skbuff.h file, 22, 32, 42
sk_buff_head structure, 24
_ _sk_dst_check function, 477, 478
sk_dst_check function, 477
_ _sk_dst_set function, 477, 479
sk_dst_set function, 477
sk_write_queue structure, 505
SLIP device
      MTU value for, 46
      tx_queue_len value for, 52
SMP (symmetric multiprocessing), 177
SNAP (Subnetwork Access Protocol), 268, 288, 290-292
snap_list variable, 293
snap_rcv function, 288
snmp file, 544
SNMP (Simple Network Management Protocol), xxi
snmp.h file, 542, 545
SNMP_INC_XXX macros, 545
sock structure, 22, 476
sock_alloc_send_skb function, 477
socket buffer descriptors, 5
socket buffer (see sk_buff structure)
socket call, 70, 578-580
socket CORK option, 440
socket layer, ICMP interactions with, 599
socket structure, 476
sock_wmalloc function, 477
softirq_init function, 198
softirq_pending function, 188
softirqs (see software interrupts)
softnet_data structure, 206-209, 264
softnet_stat file, 103
software initialization, 86
software interrupts, 193-196
      concurrency and, 187
      initialization of, 198
      kernel threads for, 202-204
      networking code's use of, 206
      pending, handling of, 199-201
      per-architecture processing of, 202
solicit function, neigh_ops structure, 769
solicitation replies, 634
solicitation requests, 634
      ARP, 724
      delayed processing of, 680
      proxy server replying to, 638-640
      when processed, 640-642
Source Address field, IP header, 414
source code, browsing, 19
Source IP address (SIP) field, arphdr structure, 701
source routing, 416, 460, 946
Source Service Access Point (SSAP), 268
sp field, sk_buff structure, 32
SPA (Sender Protocol Address) field, arphdr structure, 701
Spanning Tree Ports (see STP, ports)
Spanning Tree Protocol (see STP)
special media encapsulation, 277
spin locks, 14, 188
      ICMP transmissions using, 603
      list management functions using, 42
      ptype_base structures using, 280
      read-write spin locks, 14
      routing using, 843, 864
spin_lock_bh function, 188
spin_unlock_bh function, 188
sppp_rcv function, 276
srr field, ip_options structure, 557
srr_is_hit field, ip_options structure, 557
SSAP (Source Service Access Point), 268, 287, 290
stable network, 311
stamp field, sk_buff structure, 27
start_kernel function, 85
state field
      net_bridge_port structure, 399
      net_device structure, 49, 148, 161
state field, net_device structure, 148
stateless Network Address Translation (NAT), 21
static probing for device driver, 109
statistics, 17
      bridging, 398
      frame reception, 261
      ICMPv4, 617-619
      IP layer, 440, 541-545
      neighboring subsystem, 771
      routing, 834, 958
statistics field, net_bridge structure, 401
stats field, neigh_table structure, 763
stop function pointer, net_device structure, 55, 142, 156, 161
store-and-forward bridge, 298
stp command, brctl utility, 395
STP ports, 318-320
STP (Spanning Tree Protocol), 309, 310, 314-320
      best spanning tree criteria, 315
      bridge IDs, 321, 322, 382
      bridge priority, 321, 322, 323
      configuration update of topology, 328-334, 386
      convergence time required by, 349
      designated bridges, 318
      designated port, 330
      enabling on bridge device, 383
      example of, 331-334
      frame processing affected by, 372, 376
      functions for, list of, 381
      ingress frames, handling, 347
      port cost, 321, 323
      port IDs, 321, 382
      port priority, 321, 322, 323
      ports, 318-320
      processing ingress BPDUs, 383
      root bridge, 317, 328, 387
      root node, 315
      root port, 329
      temporary loops, avoiding, 338-340
      timers, 321, 335, 388
      topology changes, handling, 340-344, 388
      transmitting BPDUs, 385
stp_enabled field, net_bridge structure, 383, 401
stpr command, brctl utility, 392
strategy function, 63
Stream Control Transmission Protocol (SCTP), 570
Stream ID, IP option type field, 415
Strict Source and Record Route, IP option type field, 415, 416, 460
subnet broadcasts, 930
Subnetwork Access Protocol (SNAP), 268, 290-292
subsys_initcall macro, 126
subsys_initcall macros, 96
subsystems, 4
      boot-time initialization routines, 128-130
      boot-time kernel options for, 116-120
      initialization of, 84, 116
      loading as modules, initialization for, 122-125
      memory optimizations for initialization, 130-134
      (see also specific subsystems)
summed field, sk_buff structure, 441
suspend function, pci_driver structure, 107
switched network (see bridged network)
switches
      compared to bridges, 299
      neighboring subsystems and, 631
sw_write_queue list, 493
symbols, finding compile options associated with, 24
symmetric multiprocessing (see SMP)
symmetric routes, 783
sync mechanism, RSTP, 351
synchronize_net function, 573
synchronous garbage collection, 8
      neighboring infrastructure, 675, 676
      routing cache, 796, 887-891
/sys filesystem (sysfs), 7, 59
      bridging information in, 396-398
      net class registered with, 95
sysctl command, 59, 60, 61-67
sysctl_icmp_echo_ignore_all variable, 621
sysctl_icmp_echo_ignore_broadcasts variable, 621, 960
sysctl_icmp_errors_use_inbound_ifaddr variable, 621
sysctl_icmp_ignore_bogus_error_messages variable, 614
sysctl_icmp_ignore_bogus_error_responses variable, 621
sysctl_icmp_ratelimit variable, 621
sysctl_icmp_ratemask variable, 621
sysctl_intvec function, 63
sysctl_ip_default_ttl variable, 553
sysctl_ip_dynaddr variable, 554
sysctl_ipfrag_high_thresh variable, 533, 554
sysctl_ipfrag_low_thresh variable, 554
sysctl_ipfrag_secret_interval variable, 554
sysctl_ipfrag_time variable, 554
sysctl_ip_local_port_range variable, 554
sysctl_ip_nonlocal_bind variable, 553
sysctl_jiffies function, 63
sysctl_ms_jiffies function, 63
sysctl_string function, 63
sysctl_table field, neigh_parms structure, 766
sysfs (see /sys filesystem)
system entropy, 95

T[ Top ]
tag file, 963
tag variable, 963
tail field, sk_buff structure, 26
Target Hardware Address (THA) field, arphdr structure, 701
Target IP address (TIP) field, arphdr structure, 701
Target Protocol Address (TPA) field, arphdr structure, 701
tasklet_action function, 198, 204, 264
tasklet_disable function, 198, 264
tasklet_disable_nosync function, 198, 264
tasklet_enable function, 198, 264
tasklet_hi_action function, 198, 264
tasklet_hi_enable function, 198, 264
tasklet_hi_schedule function, 198, 264
tasklet_init function, 198, 264
tasklets, 196-198
      concurrency and, 187
      processing of, 204
tasklet_schedule function, 198, 264
TASKLET_SOFTIRQ type, 196, 198
tasklet_struct structure, 197, 264
tb_data field, fib_table structure, 969
tb_delete virtual function, fib_table structure, 905, 969
tb_dump virtual function, fib_table structure, 905, 969
tb_flush virtual function, fib_table structure, 905, 969
tb_id field, fib_table structure, 968
tb_insert virtual function, fib_table structure, 905, 969
tbl field
      neighbour structure, 758
      neigh_parms structure, 766
tb_lookup virtual function, fib_table structure, 905
tb_lookup virtual function, fib_table structure, 914, 969
tb_select_default virtual function, fib_table structure, 905, 969
tb_stamp field, fib_table structure, 969
tc command, 689
TC flag, 342, 344, 347
TCA flag, 344, 347
tc_classid field, sk_buff structure, 32
tc_index field, sk_buff structure, 32
tclassid field, dst_entry structure, 982
TCN timer, STP, 336, 344, 388
TCN (Topology Change Notification) BPDUs, 323, 342, 385
tcn_timer field, net_bridge structure, 402
TCP protocol, 569
      (see also L4)
TCP Segmentation Offload (TSO), 155
tcp.h file, 29
TCP/IP network stack, layers of, 3, 266
tcp_output.c file, 30
tcp_ts field, inet_peer structure, 561
tcp_v4_setup_caps function, 479
tc_verd field, sk_buff structure, 32
TEQL (Traffic equalizer), interaction with neighboring subsystem, 689
TEQL (true equalizer) device, 52, 101
THA (Target Hardware Address) field, arphdr structure, 701
thread_info structure, preempt_count in, 189
throttle field, softnet_data structure, 207, 208
throttle state, 224
throttled field, netif_rx_stats structure, 262
throttling, 242
throw route, 794
ticks, 17
time, measuring, 17
Time To Live field (see TTL field)
timer field
      ipq structure, 560
      neighbour structure, 669, 761
timer-driven interrupts, 181
timers
      fragmentation timer, 424, 512
      garbage collection, bridge, 375
      heartbeat timer, 704
      in neighboring subsystem, 669
      initialization of, 85
      STP, 321, 335, 388
      watchdog timer, 258
times field, icmp_bxm structure, 602
time_squeeze field, netif_rx_stats structure, 262
Timestamp, IP option type field, 415, 418, 463
timeval field, ipq structure, 560
TIP (Target IP address) field, arphdr structure, 701
todo_list field, net_device structure, 54
Token Bus device, MTU value for, 46
Token Ring 16 MB/s device, MTU value for, 46
Token Ring 4 MB/s device, MTU value for, 46
Token Ring device
      alloc_netdev wrapper for, 139
      configuration, 293
      tx_queue_len value for, 52
Topology Change Notification BPDU (see TCN BPDUs)
Topology Change Notification timer (see TCN timer, STP)
Topology Change timer, STP, 336, 344, 347, 388
topology_change field, net_bridge structure, 402
topology_change_ack field, net_bridge_port structure, 400
topology_change_detected field, net_bridge structure, 402
topology_change_timer field, net_bridge structure, 402
TOS (Type of Service) field, 412
      initialization, 936
      policy routing based on, 808
      priority set by, 470
total field, netif_rx_stats structure, 261
Total Length field, IP header, 412
TPA (Target Protocol Address) field, arphdr structure, 701
traceroute command, 595
Traffic Control, xx
      egress queues, 212, 241
      frame transmission, 249
      ingress frame processing, 237
      net_device fields for, 52
      packet transmission, 635
      routing and, 815-818
      sk_buff fields for, 32
      (see also QoS; queuing discipline)
trailer_len field, dst_entry structure, 981
transformation bundles, IPsec, 882
transmission of frames, 239-241
      data structures for, list of, 264
      egress queues for, 212
      enabling and disabling, 241-243
      failure of, reasons for, 249
      files and directories for, list of, 265
      for queueless devices, 254
      fragments, handling of, 250
      functions for, list of, 263
      locks for, 247
      processing, 255-260
      scheduling device for, 243-245
      transfering frame to queue, 249-255
      variables for, list of, 264
transmission of ICMP messages, 602-610
transmission of messages, 268
transmission of packets, 411, 473-476, 504-509
      buffering data for, 481-503
      functions for, 474-476
      L3 to L4 packet delivery, 574-582
      local delivery, 472
      multicast and, 476
      neighboring subsystem and, 634, 642
      Netfilter and, 481
      NICs controlling, 833
      raw sockets and, 510
      routing table and, 800
      socket data structures for, 476
      statistics about, 543
      Traffic Control and, 635
transmission (TX), 4
transparent proxy, 637
transport layer (see L4)
trans_start field, net_device structure, 49, 258
true link equalizer (see TEQL device)
truesize field, sk_buff structure, 26
trunking, 43
ts field, ip_options structure, 557
ts_needaddr field, ip_options structure, 558
ts_needtime field, ip_options structure, 558
TSO (TCP Segmentation Offload), 155
TTL (Time To Live) field, IP header, 413
      decrementing, 469, 470
      decrementing, checksum updates triggered by, 433
Tulip cards, 833
tulip driver, 182
tunnel interfaces, 101
tunneling protocols, 570
TX (see transmission)
tx_bytes field, net_device_stats structure, 398
tx_dropped field, net_device_stats structure, 398
tx_packets field, net_device_stats structure, 398
tx_queue_len field, net_device structure, 52, 142, 363
tx_timeout field, net_device structure, 259
tx_timeout function pointer, net_device structure, 56, 142
type field
      datalink_proto structure, 292
      fib_result structure, 978
      ICMP header, 586
      neighbour structure, 701, 760
      net_device structure, 46, 142
      packet_type structure, 279
Type of Service field (see TOS field)
typographical conventions used in this book, xxii

U[ Top ]
u field, rtable structure, 978
ucast_probes field, neigh_parms structure, 767
ucast_probes variable, 755
UDP protocol, 569
      MSG_DONTROUTE flag and, 873
      (see also L4)
udp_flush_pending_frames function, 508
udp_push_pending_frames function, 508
uli_u field, flowi structure, 984
Understanding Multiple Spanning Tree Protocol (802.1s), 351
Understanding Rapid Spanning Tree Protocol (802.1w), 351
Understanding the Linux Kernel (O'Reilly), xvi
uninit function pointer, net_device structure, 55, 142, 149, 156, 169
universe scope for IP addresses, 786
universe scope for routes, 786, 838
university projects, Linux used by, xv
unlikely macro, 13
unreachable route, 794
unregister_8022_client function, 293
unregister_inet6addr_notifier function, 79
unregister_inetaddr_notifier function, 79, 548
unregister_netdev function, 149, 172
unregister_netdevice function, 141, 149, 157, 169, 172
unregister_netdevice_notifier function, 79, 152
unregister_snap_client function, 291, 293
unregister_sysctl_table function, 62, 64
unregistration of network devices, 149-154, 156-159
      compared to disabling devices, 136
      conditions for, 138
      NICs, 141
      virtual devices, 169
unres_qlen file, 755
unshielded twisted pair (UTP) wire, 630
unused_next field, inet_peer structure, 561
unused_prevp field, inet_peer structure, 561
updated field, neighbour structure, 759
update_pmtu virtual function, dst_ops structure, 881, 983
_ _use field, dst_entry structure, 981
use_count field, net_bridge_fdb_entry structure, 399
used field, neighbour structure, 759
user field, ipq structure, 559
users field, sk_buff structure, 26, 40
user-space tools
      brctl utility, 391, 395
      bridge configuration using, 391-396
      device-related information, configuring, 166-169
      ethtool tool, 166-168
      hotplug helper, 96, 98-100, 103
      ifconfig command, 67, 166, 550
      initialization events handled by, 96-100
      ioctl commands, 59, 67, 71, 392-393, 545
      kmod kernel module loader, 98
      list of, 18, 58
      mii-tool tool, 168
      modprobe helper, 96, 98, 103
      neighbor system administration, 749-752
      Netlink, 60, 70, 71, 858
      net-tools package, 749, 752, 952, 956
      procfs (/proc filesystem), 58, 60
      routing, 952-958
      sysctl command, 59, 60, 61-67
      sysfs (/sys filesystem), 7, 59
      (see also IPROUTE2 package; routing protocol daemons)
UTP (unshielded twisted pair) wire, 630

V[ Top ]
v4addr field, inet_peer structure, 538
v4daddr field, inet_peer structure, 561
vector definitions, 11
vectors (arrays), 3
Verbose Monitoring, 821, 833
Version field, IP header, 411
VFT interface for neighboring subsystem, 655-665
VFT (virtual function table), 10
vi editor, 19
virtual devices, xxi, 100-103
      configuration of, 102
      external interface for, 102
      initialization of, 101
      paths taken by frames through, 178
      reception on, 278
      registering, 169
      special media encapsulation by, 277
      transmission on, 277
      unregistering, 169
virtual function table (VFT), 10
virtual IP, gratuitous ARP used for, 704
VLAN device
      net_device function pointers for, 54
      notifications on, 170
      tx_queue_len value for, 53
VLAN (Virtual LAN), 43
vlan.c file, 54
vlan_rx_add_vid field, net_device structure, 54
vlan_rx_kill_vid field, net_device structure, 54
vlan_rx_register field, net_device structure, 54
vlan_skb_rcv function, 282
vortex_interrupt function, 182

W[ Top ]
WAKE_ARP keyword, 744
Wake-on-LAN (WOL), 109, 743
WAN router, 832
watchdog timer, 258
      starting, 160
      stopping, 161
      waking egress queue for, 245
watchdog_timeo field, net_device structure, 54, 258, 259
watchdog_timeo function pointer, net_device structure, 142
watchdog_timer field, net_device structure, 54, 258
Wavelan device, MTU value for, 46
web proxying, 637
web site resources
      BIRD routing protocol daemon, 820
      brctl utility, 391
      Click router, xxi
      cscope tool, 19
      ebtables framework, 378
      frame diverter, xxi
      GateD routing protocol daemon, 820
      IP virtual server, xxi
      IPROUTE2 tool, 18
      Linux Network Development List Archives, 19
      Netfilter, xxi
      O'Reilly, xxiii
      Quagga routing protocol daemon, 820
      RFCs about ICMP protocol, 586
      RSTP, user-space simulator for, 352
      Safari Bookshelf, xxiii
      traffic control, xx
      user-space tools, 18
      XORP routing protocol daemon, 820
      Zebra routing protocol daemon, 820
weight field, net_device structure, 54, 215
weighted random algorithm, multipath routing, 811, 812, 876
weight_p variable, 263
wireless devices, net_device fields for, 54
wireless file, 103
wireless_data field, net_device structure, 54
wireless_handlers field, net_device structure, 54
WOL (Wake-on-LAN), 109, 743
work queues, 186

X[ Top ]
X25_lap_receive_frame function, 281
xfrm field, dst_entry structure, 981
xfrm4_policy_check function, 577, 582
xmit_lock field, net_device structure, 171, 247
xmit_lock_owner field, net_device structure, 50, 171
XORP routing protocol daemon, 820, 860
xrlim_allow function, 622
xxx_hold functions, 7
xxx_initcall macro, 131, 134
xxx_probe functions, 143
      net_device fields initialized by, 142
      net_device function pointers initialized by, 142
xxx_put functions, 7
xxx_release functions, 7
xxx_setup functions, 143, 172
      net_device fields initialized by, 142
      net_device function pointers initialized by, 142

Y[ Top ]
Yu, James T. ("Performance Evaluation of Linux Bridge"), 355

Z[ Top ]
Zebra routing protocol daemon, 820, 860
"zero-copy" TCP/UDP, 503
ZERONET macro, 843, 986
zone, 899

	

Zurück zu Understanding Linux Network Internals


Themen

Buchreihen

Special Interest

International Sites

O'Reilly China O'Reilly France O'Reilly USA O'Reilly Japan O'Reilly Taiwan