Author(s): Qing Li, Tatuya Jinmei, Keiichi Shima,
Year: 2006
Language: English
Pages: 969
IPv6 Core Protocols Implementation......Page 4
Copyright Page......Page 5
Contents......Page 8
Foreword......Page 20
Preface......Page 22
About the Authors......Page 30
1.2 A Brief History of IPv6 and KAME......Page 32
1.3 Overview of the KAME Distribution......Page 37
1.4 Overview of BSD Network Implementation......Page 42
1.5 Source Code Narrations......Page 45
1.6 Mbufs and IPv6......Page 48
2.1 Introduction......Page 60
2.2 IPv6 Addresses......Page 61
2.3 Textual Representation of IPv6 Addresses......Page 62
2.4 Address Scopes......Page 64
2.5 IPv6 Address Format......Page 71
2.6 Node Address Requirements......Page 77
2.8 Code Introduction......Page 78
2.9 Handling Scope Zones......Page 82
2.10 Interface Address Structures......Page 95
2.11 IPv6 Prefix Structure......Page 101
2.12 Overview of Address Manipulation Routines......Page 104
2.13 Interface Initialization for IPv6......Page 107
2.14 IPv6 Interface Address Configuration......Page 126
2.15 Deleting an IPv6 Address......Page 153
2.16 Operation with Address Configuration Utility......Page 158
3.1 Introduction......Page 162
3.2 IPv6 Header Format......Page 163
3.3 IPv6 Extension Headers......Page 165
3.4 Source Address Selection......Page 175
3.5 Code Introduction......Page 180
3.6 IPv6 Packet Address Information in Mbuf......Page 191
3.7 Input Processing: ip6_input() Function......Page 195
3.8 Processing Hop-by-Hop Options Header: ip6_hopopts_input() Function......Page 210
3.9 Processing Destination Options Header: dest6_input() Function......Page 216
3.10 Reassembling Fragmented Packets......Page 218
3.11 Processing Routing Header: route6_input() Function......Page 235
3.12 Forwarding: ip6_forward() Function......Page 240
3.13 Output Processing......Page 250
4.1 Introduction......Page 318
4.2 ICMPv6 Message......Page 319
4.3 Path MTU Discovery Mechanism......Page 327
4.4 Node Information Query......Page 328
4.5 Code Introduction......Page 335
4.6 ICMPv6 Input Processing......Page 339
4.7 Path MTU Discovery Implementation......Page 360
4.8 ICMPv6 Output Processing......Page 363
4.9 Node Information Query Implementation......Page 379
4.10 Node Information Operation......Page 418
5.1 Introduction......Page 420
5.2 Neighbor Discovery Protocol Overview......Page 421
5.3 Stateless Address Autoconfiguration Overview......Page 422
5.4 ND Protocol Messages......Page 423
5.5 Example Exchanges of ND Protocol Messages......Page 424
5.6 ND Protocol Packet Types and Formats......Page 426
5.7 Neighbor Discovery Option Types and Formats......Page 436
5.8 Next-Hop Determination and Address Resolution......Page 441
5.9 Neighbor Unreachability Detection Algorithm......Page 442
5.10 Stateless Address Autoconfiguration......Page 443
5.11 Router Specific Operation......Page 450
5.12 Host Specific Operation......Page 454
5.13 Code Introduction......Page 457
5.14 Initialization Functions......Page 470
5.15 Neighbor Cache Management Functions......Page 472
5.16 ND Protocol Messages Processing Functions......Page 509
5.17 ND Protocol Message Options Processing Functions......Page 567
5.18 Default Router Management Functions......Page 571
5.19 Prefix Management Functions......Page 586
5.20 Stateless Address Autoconfiguration Functions......Page 611
5.21 Duplicate Address Detection Functions......Page 621
5.22 Miscellaneous Functions......Page 633
6.1 Introduction......Page 646
6.3 Pseudo Header for IPv6......Page 647
6.4 Checksum Difference between IPv4 and IPv6......Page 648
6.6 Code Introduction......Page 649
6.7 General Operations on PCBs and Sockets......Page 658
6.8 TCP-over-IPv6......Page 694
6.9 UDP-over-IPv6......Page 716
6.10 Raw IPv6......Page 740
6.11 Summary of Operation with IPv4-mapped IPv6 Addresses......Page 769
6.12 Viewing IPv6 Connections with netstat......Page 774
6.13 Configuring IPv4-mapped IPv6 Address Support......Page 776
7.1 Introduction......Page 778
7.2 The Basic Socket API—[RFC3493]......Page 779
7.3 The Advanced Socket API—[RFC3542]......Page 795
7.4 Kernel Implementation of IPv6 Socket APIs......Page 814
7.5 Socket Options and Ancillary Data Examples......Page 879
7.6 Implementation of Library Functions—libinet6......Page 884
References......Page 940
Index......Page 946