The following data structures are needed to facilitate the processes of IPv6 mobility:
The binding cache is a table maintained by each correspondent node and home agent and contains the current bindings for mobile nodes. Each binding cache entry contains the following information:
If this flag is set, the home agent will advertise the mobile node as a router (by setting the Router flag) when proxying Neighbor Advertisement messages on behalf of the mobile node. This flag is valid only for home registration entries and set only for the binding cache entries on home agents.
The actual implementation details for the binding cache are not specified, as long as the external behavior is consistent with the IPv6 mobility draft. For example, you could either maintain a separate binding cache or combine the binding cache with the destination cache. If you have a separate binding cache, you could either check it before you check the destination cache or have a pointer from the destination cache entry to the corresponding binding cache entry.
In any case, the information in the binding cache takes precedence over the information in the neighbor cache. For mobile destinations that are away from home, packets should be sent to the home address by way of the care-of address. If packets are sent directly to the home address while the mobile node is away from home, the home agent must intercept the packets and tunnel them to the mobile node, lowering the efficiency and performance of the communication between the correspondent node and the mobile node.
For the IPv6 protocol for Windows XP and the Windows .NET Server 2003 family, a separate binding cache is maintained. Each binding cache entry stores the home address, its current care-of address, and a pointer to the entry in the destination cache for the care-of address. A destination cache entry for a home address of a mobile node that is away from home has a pointer to an entry in the binding cache. The entry in the binding cache maps the home address to its care-of address and indicates the entry in the destination cache for the care-of address. The care-of address destination cache entry stores the next-hop address and interface for the care-of address. You can view the binding cache entries with the netsh interface ipv6 show bindingcacheentries command.
For more information about how a node sends a packet in an IPv6 mobility environment, see the "IPv6 Mobility Host Sending Algorithm" section in this chapter.
The binding update list is maintained by a mobile node to record the most recent binding updates sent for the home agent and correspondent nodes. A binding update list entry contains:
The initial value is the value of the Lifetime field in the binding update. When the lifetime expires, the entry is deleted from the binding update list.
This flag is set when the mobile node receives an ICMPv6 Parameter Problem-Unrecognized IPv6 Option Encountered message in response to a binding update.
The home agents list is maintained by home agents and mobile nodes, and records information about each router from which a router advertisement was received on the home link with the Home Agent (H) flag set. Home agents maintain the home agents list so that they can send the list of home agents to a requesting mobile node away from home during home agent address discovery. Mobile nodes maintain the home agents list so that they can select a home agent.
A home agents list entry contains the following:
The initial lifetime is obtained from either the Home Agent Lifetime field in the Home Agent Information option or the Router Lifetime field in the Router Advertisement message. When the lifetime expires, the entry is deleted from the home agents list.
If the router advertisement does not contain a Home Agent Information option, the preference is set to 0. Based on the definition of the Home Agent Preference field, 0 is a medium priority level. A mobile node uses the preference value to select the home agent. A home agent uses the preference value to order by preference value the list of home agents returned to a mobile node during home agent address discovery. When the mobile node receives the list of home agents, it chooses the first home agent in the list.