IPv6 Advanced Protocols Implementation

Routing API (IPv6 Unicast Routing Protocols) Part 2

plen2mask() Function The plen2mask() function (Listing 1-7) is a subroutine called from the main part of the rtadd6 program. This function performs the straightforward conversion from an IPv6 prefix length to the corresponding bit mask. Listing 1-7 convertscope() Function The convertscope() function (Listing 1-8) is one of the most tricky parts of IPv6 routing programs […]

Overview of route6d Daemon (IPv6 Unicast Routing Protocols)

The route6d program is an IPv6 routing daemon that runs on BSD variants and operates RIPng. It was developed as part of the KAME IPv6 protocol stack kit and has been incorporated into the base component of BSD systems. This is a simple program but offers most of the basic features that would be required […]

Common Data Structures, Routines and Global Variables (IPv6 Unicast Routing Protocols)

This section introduces data structures that are commonly used in the route6d implementation and are frequently referred to in subsequent sections. The description in this section will also provide a run-time image about how a particular network configuration and command line options map to these data structures. Structures for RIPng Messages Listing 1-10 defines the […]

Interface Configuration (IPv6 Unicast Routing Protocols)

On startup, the route6d daemon collects information about each interface on the local node, including the link-level multicasting capability, IPv6 addresses configured on the interface, and the link MTU. The address information is also used to obtain the subnet prefix for the link to which the interface is attached, which will subsequently be advertised in […]

RIPng Protocol Operation (IPv6 Unicast Routing Protocols) Part 1

This section provides detailed descriptions of RIPng protocol processing of the route6d implementation. Figure 1-50 shows function call graphs involved in the processing. After initialization, route6d first sends out a RIPng request message on every available interface to ask neighbor routers for their routing table contents. This is done by the sendrequest() function. The route6d […]

RIPng Protocol Operation (IPv6 Unicast Routing Protocols) Part 2

Response Validation The rest of this function processes a RIPng response message. Listing 1-33 1150—1154 If the source address of a response message is not a link-local address, it was likely to be sent in response to a RIPng request generated from an off-link router. The main purpose of such a request is that a […]

RIPng Protocol Operation (IPv6 Unicast Routing Protocols) Part 3

Process RTE: Update Routing Table Listing 1-41   1257—1258 The RIPng specification discusses the metric as being either a simple hop count or a value that is set by an administrator. In the FreeBSD operating system, the ifc_metric value is defined as the additional cost of the network that may be set by the administrator using […]

RIPng Protocol Operation (IPv6 Unicast Routing Protocols) Part 4

Initiate Triggered Update Listing 1-47 1343-1344 A triggered update will be sent immediately if the next regular update is beyond a delay of 5 (RIP_TRIG_INT6_MAX) seconds. The global nextalarm variable records the time when the next regular update will be sent. This code does not really conform to the protocol specification. [RFC2080] requires that an […]

Routing Operation Using route6d (IPv6 Unicast Routing Protocols)

This section discusses the IPv6 routing operation using route6d. In a FreeBSD/KAME box, the route6d daemon can be started from the rc script executed at boot time, thereby enabling the routing and forwarding functions of the box whenever the box restarts. The configuration parameters of the program and other related information such as address information […]

IPv6 Multicast Address to Layer-2 Multicast Address Mapping

Introduction IP multicasting is one of the key technologies for the next generation of the Internet.Meantime, increasing network bandwidth makes applications such as video streaming more realistic, which then makes IP multicasting more important. Although the basic notion of multicasting is common to both IPv4 and IPv6, IPv6 multicasting brings several new characteristics based on […]