INTERNET DRAFT Yutaka Ezaki June 2002 Yuji Imai Expires January 2003 Fujitsu Labs. Mobile IPv6 handoff by Explicit Multicast Status of This Memo: This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract: A handover process on Mobile IPv6 requires a time period referred as handoff latency. This latency is not acceptable to support real-time application. We propose a new smooth handoff method using the Explicit Multicast (xcast) technique. On the wired section, control/user packets are multicasted by Xcast scheme to the Base Stations where Mobile Node (MN) can receive, and then packets are passed to the air-link activated between a BS and the MN. This procedure provides mobility in heterogeneous media environment because this handoff mechanism is basically able to implemented without additional control or intelligence of neither intermediate routers. 1. Introduction In this draft, we propose another smooth handoff method using the Small Group Multicast (SGM) / explicit multicast (xcast) technique. In Mobile IPv6 (MIPv6)[1], a Mobile Node (MN) sends a Binding Update (BU) packet to his Home Agent (HA) to modify the Binding Cache in the HA. Packets from Correspondent Node (CN) are encapsulated at the HA and tunneled to the MN. Recently, fast-handover method is proposed [2]. Fast-handover process is executed by the Access Routers (ARs) on the old subnet and the new subnet with a complex handover sequences and a tunnel between two ARs. The complexity of current MIPv6 or fast-handover comes from the basic restriction that a packet from the CN must NOT duplicate over the network (e.g. CN-HA-MN). In the mobile communication, the resource for the air-link is still important, whereas resource on wired network becomes sufficient because of the remarkable development of the transport equipment (e.g. WDM). Actual MIPv6 handoff procedure involves two type of the function: re-routing on the wired region of the network and the activation of the air-link on the wireless region. A cellular phone service achieves fast hand off scheme and saving of mobility administration table on Home Location Register (HLR) using the zone calling up technique for multiple cells [9]. Introducing the same idea, simple and fast handoff can be achieved on Mobile IP by multicasting the packet from HA. The MN to select some BSs, which receive the packet with the best condition, can realize low delay and no packet loss. Several handoff methods using multicast are proposed [9, 10, 11]. They describe that smooth handoff by multicast is effective in reducing datagram transmission latency, simplifying the intermediate routers logic and saving bandwidth of the wired network. However, in the past, it could not be achieved because using a classical multicast technique (e.g. DVMRP, PIM), it is difficult to maintain the large number of multicast group and routing spanning tree. In this draft, we propose a smooth handoff method for MIPv6 by SGM/Xcast6 with few modifications to the MIPv6 architecture. This handoff mechanism provides mobility in heterogeneous media environment because this handoff mechanism is basically able to implement without additional control or intelligence of neither intermediate routers. SGM/Xcast6 technique supplements a classical multicast. Since Xcast6 has some characteristics that intermediate routers forward multicast datagrams only by unicast routing information, Xcast6 supports huge number of restless multicast groups that is necessary for handoff. 2. Overview of Small Group Multicast Multicast technique is important for the broadcast application, many-to-many videoconference, or the advertisement of the router information. Using a group (class D) address, many protocols have been proposed and experimented. However, present multicast technique has some problems that it requires a state management for each group address. Recently, a BoF has been established to study the multicast technique for small group on IPv4/IPv6 environment without a complex routing protocol [7]. For a large number of small group communications, Small Group Multicast (SGM) scheme will be suitable. SGM is based on the 'Xcast' (explicit multicast) technique meaning that the every datagram includes all the addresses to deliver on the header of the packet. There are several experimental variant protocols [5] proposed in SGM/Xcast BoF. Recently, unified specification for Xcast has been published [13]. In the next section, we introduce a summary of the spec. 2.1 Xcast overview Xcast is multicast delivery mechanism that depends only on the existing unicast routing environment. The destination of a multicast datagram is specified by a list of unicast addresses instead of a group multicast address. Xcast is available for IPv4 or IPv6 environment with slightly modifying the header format. For IPv6 datagram, a destination list is stored in an IPv6 routing extension header with a bitmap that represents the destinations to send. For example, suppose that node A is trying to get packets distributed to B, C and D in Figure 2.1 below: R4 ---- B / / A----- R1 ---- R2 ---- R3 R8 ---- C \ / \ / R5 ---- R6 ---- R7 \ \ R9 ---- D Figure 2.1 Sample network This is accomplished as follows: node A sends an Xcast packet with the list of destinations in its Xcast header to the first router, R1. Ignoring the details, the packet that A sends to R1 looks like this: [ src = A | dest = B C D | payload ] . When R1 receives this packet, it needs to process the Xcast header as follows: - Perform a route table lookup to determine the next hop for each of the destinations listed in the packet. - Partition the set of destinations based on their next hops. - Replicate the packet so that there's one copy of the packet for each of the next hops found in the previous steps. - Modify the list of destinations in each of the copies so that the list in the copy for a given next hop includes just the destinations that ought to be routed through that next hop. - Send the modified copies of the packet on to the next hops. - Optimization: If there is only one destination for a particular next hop, send the packet as a standard unicast packet to the destination (X2U). So, in the example above, R1 will send a single packet on to R2 with a destination list of < B C D > and R2 will send a single packet to R3 with the same destination list. The following routers forward the Xcast packet with performing the same process. Since routers can branch and forward the Xcast datagram only by unicast routing table, it has a good scalability concerning with the number of multicast group that is necessary for our handoff. The format of the Xcast6 (Xcast for IPv6) datagram is [IPv6 header | Xcast6 header | transport header | payload ]. Detail formats of these headers are explained in [13]. Recently, some implementations and applications are published for NetBSD and Linux [15]. 3. Fast handoff extension for Mobile IPv6 by Xcast6 In this section, we describe the fast handoff extension for Mobile IPv6 (MIPv6) [1] using Xcast6 technique. Now, we assume that a Mobile Node (MN) moves from area 1 to area 4 for a network model shown in Fig.3.1. CN HA (MN): shadow | | | ---+--- --+--+--+-- (Home link) | | +---+---------------+---+ | Core Network | +---+---------------+---+ | | --+---+-----+-- --+---------+-- (Access network) | | | | BS1 BS2 BS3 BS4 / \ / \ / \ / \ <- Wireless link ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ SubnetFarea 1 area 2 area 3 area 4 | +--+ |MN| ==Movement==>> +--+ COA: COA#1 COA#2 COA#3 COA#4 Figure 3.1: Example of a mobile network MN detects his movement by receiving a Router Advertisement from a router, and then he generates his Care-of-Address (COA) with a stateless or a stateful address allocating procedure. MN sends this information to his Home Agent (HA) by a Binding Update (BU) message. HA modifies the information on the address entry in his Binding Cache and returns a Binding Acknowledgement (BAck) message to MN. Packets from a Correspondent Node (CN) or the other node to the shadow of the MN on the Home Link are blocked by the HA and are tunneled to the MN for the destination in his Binding Cache. At this situation, smooth handoff operation will be available with the extension that MN can treat multiple Care-of-Addresses (COAs) and that HA sends a multicast packet to the appropriate subnets. Normally, Mobile Station (terminal) in current cellular system has a function of selecting the Base Station (BS), which can receive the data with the best condition [9]. Applying this method, MN is able to get multiple information about BSs. If the MN receives some IPv6 prefix announcements from the subnets, MN can generate multiple COAs. When MN sends them to HA by the Binding Update (BU) message, HA can create the addresses in his Binding Cache to multicast. Differing from the MIPv6, it is important that the HA should be able to treat multiple addresses for a single MN. Modification to the BS nor to the router is not needed. Now, assume that MN generates the two COAs (COA#1 and COA#2); MN will send these addresses to his HA by BU message. Original Mobile IPv6 requires MN to select primary COA from candidate and send BU message to HA. It requires also HA keeping only one entry of the binding cache. By our extension, MN treats each address equally and makes BU for each of them. HA generates the appropriate entry for each of them without overwriting previous entry in their Binding Cache. Packets from a CN or the other node to the shadow of the MN on its Home Link are blocked by the HA and are compared with the Binding Cache. Because the entry for the MN has two COAs, HA multicasts the packet to the MN with the Xcast6 extension header (Fig.3.2 and Fig.3.3). CN HA BS1 BS2 BS3 MN | | | | | | | | | | (Subnet Info.) | | | +---------------------------->|Genarate COA#1 | | | | (Subnet Info.) | | | | +------------------>|Generate COA#2 | | | (BUs for COA#1 & COA#2) | | |<--------------------------------------+ | |<--------------------------------------+ | | | | | | | Packet | | | | | +-------->|multicast| | | | | +=====+===+---------------------------->| | | \ | | | | | | +===========+------------------>| | | | | | | | | | | | | Fig.3.2 Multiple COA registration and packet multicast +---------------------------------------+ | Outer IPv6 Header | | (SRC=HA, DST=one of CoAs) | +=======================================+ === | Inner IPv6 Header | | | (SRC=HA, DST='all_xcast address') | | +---------------------------------------+ for Xcast6 operation | Routing Extension Header | | | (Explicit address list of Xcast6) | | +=======================================+ === | Destination Option Headers | | | (Binding-Acknowledgement if needed) | for Mobile IPv6 operation +=======================================+ === | Original IPv6 Header | | | (SRC=CN, DST=MN's Home Address) | | +---------------------------------------+ original IPv6 packet | | | | (datagram from a CN) | | | | | | | | +---------------------------------------+ === Fig.3.3 Packet format from the HA to MN Using Xcast6 extension, smooth handoff for MIPv6 is realized. We show the example in Fig.3.4. Even if the receiving condition from BS1 becomes wrong, multicast packet can still receive via BS2, and then a session will not break. If the air-link to the BS3 will be activate, sending COA#3 to the HA, MN can receive the multicast packet from BS3. In this way, seamless communication can be realized. CN HA BS1 BS2 BS3 MN | | | | | | | Packet | | | | | +-------->|multicast| | | | | +=====+===+--..........(hard to receive)| | | \ | | | | | | +===========+------------------>| | | | (BU for COA #3) | | |<--------------------------------------+ | | | (BU: Delete COA #1) | | |<--------------------------------------+ | Packet | | | | | +-------->|multicast| | | | | +===+ | | | | | | \ | | | | | | +=============+------------------>| | | \ | | | | | | +=====================+-------->| | | | | | | | | | | | | Fig.3.4 Smooth handoff sequence example To save the resource of the air-link, MN may select one of the packets sent via multicast distribution. It will be accomplished by making a negotiation between BS and MN (Fig.3.5). The negotiation will be available with Layer 2 or Layer 3 function. The detail should be for further study. The BS deletes packets silently in the air-links that are not activated. ICMP-Destination Unreachable error must not be returned [6]. Actually, delete process are defined by the option header on the multicast packet [3]. CN HA BS1 BS2 BS3 MN | | | | | | | | | | |(inactivation) | | | | |<--------+ | Packet | | | | | +-------->|multicast| | | | | +===+ | | | | | | \ | | | | | | +=============+------------------>| | | \ | | | | | | +=====================+-X | | | | | | | | | | | | | Fig.3.5 Air-link operation If MN cannot receive the packet from BS2 by the movement of MN, fast link exchange is available by the procedure in the Fig.3.6. CN HA BS1 BS2 BS3 MN | | | | | | | | | | |(activation) | | | | |<--------+ | | | | |(inactivation) | | | |<------------------+ | Packet | | | | | +-------->|multicast| | | | | +===+ | | | | | | \ | | | | | | +=============+-X | | | | \ | | | | | | +=====================+-------->| | | | | | | | | | | | | Fig.3.6 Fast handoff by air-link operation In addition, it is applicable to use the route optimization procedure of MIPv6. In this environment, CN must have a function of receiving the BU message and sending the Xcast6 packets like HA. A packet format is like Fig.3.7. +---------------------------------------+ | Outer IPv6 Header | | (SRC=CN, DST=one of CoAs) | +=======================================+ === | Inner IPv6 Header | | | (SRC=CN, DST='all_xcast address') | | +---------------------------------------+ for Xcast6 operation | Routing Extension Header | | | (Explicit address list of Xcast6) | | +=======================================+ === | Destination Option Headers | | | (Binding-Acknowledgement if needed) | for Mobile IPv6 operation +=======================================+ === | Original IPv6 Header | | | (SRC=CN, DST=MN's Home Address) | | +---------------------------------------+ original IPv6 packet | | | | (datagram from a CN) | | | | | | | | +---------------------------------------+ === Fig.3.7 Packet format from the CN to MN The method for the authentication and the integrity of the data is based on the MIPv6. In other words, security association should be created between MN and HA or MN and CN, then Authentication Header (AH) and Encapsulating Security Payload (ESP) are used. 4. MN operation In this section, we describe the detail operation of the Mobile Node (MN) and the modification from the original Mobile IPv6 (MIPv6) specification [1]. Basically, MN operation is compatible with MIPv6. Route optimization is also available. With our extension, MN may require the multicast distribution to his Home Agent (HA) or the Correspondent Node (CN). This function has an advantage when the MN rapidly moves through multiple subnets. 4.1 Address registration MN generates his Care-of-Address (COA) by the Router advertisement from the routers. At the same time, MN gets the HA lists by ICMP-Address Discovery procedure [1]. MN sends his COA to his HA by the Binding Update (BU) message. If the registration on the HA is succeeded, MN is ready to receive the packets after receiving the Binding Acknowledgement (BAck) message. A packet from a CN or the other node to the shadow of the MN on the home link is blocked by the HA and tunneled to the MN according to HA's Binding Cache. 4.2 Multiple subnet registration If the MN is available to receive the multiple information of the subnets, MN may register the multiple COAs to a HA repeating the procedure on the section 4.1. Now assume that a MN receives the two Care-of-Address (COA) of COA#1 and COA#2 on the network in Fig.3.1. If the HA is Xcast6-aware, MN may send these COAs to a HA with the BU message individually. We show a registration sequence in Fig.4.1. The packet format for BU message is the same as that of the MIPv6 (Fig.4.2). CN HA BS1 BS2 BS3 MN | | | | | | | | | | (Subnet Info.) | | | +---------------------------->|Genarate COA#1 | | | (BU for COA #1)| | | |<--------------------------------------+ | | | | (Subnet Info.) | | | | +------------------>|Generate COA#2 | | | (BU for COA #2)| | | |<--------------------------------------+ | | | | | | | | | | | | Fig.4.1 Binding Update for individual registration +---------------------------------------+ | IPv6 Header | | (Source & Destination addresses) | +---------------------------------------+ === | Destination Option Headers | for Mobile IPv6 operation | (Binding-Update & Home Address option)| | +---------------------------------------+ === | | | (datagram for a HA) | | | | | +---------------------------------------+ Fig.4.2 Packet Format for Binding Update message 4.3 Multicast the packet for tunneling HA will block a packet to the Home Address of MN and multicast it with adding the Xcast6 header including all the registered addresses. Procedure is shown in Fig.4.3. Packet format from HA is shown in Fig.4.4. Note: The BAck message may be either piggy-backed on a multicast packet or a unicast (i.e. non piggy-backed) packet. CN HA BS1 BS2 BS3 MN | | | | | | | Packet | | | | | +-------->|multicast| | | | | +=====+===+---------------------------->| | | \ | | | | | | +===========+------------------>| | | | | | | | | | | | | Fig.4.3 Multicast a packet from HA +---------------------------------------+ | Outer IPv6 Header | | (SRC=HA, DST=one of CoAs) | +=======================================+ === | Inner IPv6 Header | | | (SRC=HA, DST='all_xcast address') | | +---------------------------------------+ for Xcast6 operation | Routing Extension Header | | | (Explicit address list of Xcast6) | | +=======================================+ === | Destination Option Headers | | | (Binding-Acknowledgement if needed) | for Mobile IPv6 operation +=======================================+ === | Original IPv6 Header | | | (SRC=CN, DST=MN's Home Address) | | +---------------------------------------+ original IPv6 packet | | | | (datagram from a CN) | | | | | | | | +---------------------------------------+ === Fig.4.4 Packet format from the HA to MN 4.4 Selection of links for BSs To save the bandwidth of the air-link, MN may decide the Base Station (BS) to receive the packet, and negotiate with it before receiving the packet. For example, MN can receive a packet only from the BS1 inactivating the link to BS2 (Fig.4.5). The procedure of the negotiation is considered in Layer 2 or Layer 3. A detail is for further study. CN HA BS1 BS2 BS3 MN | | | | | | | | | | (inactivation)| | | | |<------------------+ | Packet | | | | | +-------->|multicast| | | | | +=====+===+---------------------------->| | | \ | | | | | | +===========+-X | | | | | | | | | | | | | | Fig.4.5 Link selection for BS If the MN uses a Xcast6 extension of this draft, when MN moves the other subnet that are already registered, fast link change is available only activating the appropriate air-link between the BS and the MN (Fig.4.6). CN HA BS1 BS2 BS3 MN | | | | | | | Packet | | | | | +-------->|multicast| | | | | +=====+===+---------------------------->| | | \ | | | | | | +===========+-X | | | | | | (activation)| | | | |<------------------+ | | | | (inactivation)| | | |<----------------------------+ | Packet | | | | | +-------->|multicast| | | | | +=====+===+-X | | | | | \ | | | | | | +===========+------------------>| | | | | | | | | | | | | Fig.4.6 Fast link change sequence 4.5 Route optimization On receiving a packet via the HA, MN may send a BU message to the CN based on the MIPv6 route optimization procedure. After confirming the capability of Xcast6, MN may send some COAs to the CN. If the CN is Xcast6-aware, multicast packet will be sent with an Xcast6 header. Otherwise, CN will send a unicast packet to the destination of MN. If a MN sends the BU messages to the CN with two COAs (COA#1 and COA#2), CN will multicast the Xcast6 packet including these COAs (Fig.4.7). Packet format from CN is also shown in Fig.4.8. CN HA BS1 BS2 BS3 MN | | | | | | | Packet | | | | | +-------->|multicast| | | | | +=====+===+---------------------------->| | | \ | | | | | | +===========+-X | | | | | | | | | | | (BUs for COA#1 & COA#2) | |<------------------------------------------------+ |<------------------------------------------------+ | | | | | | | Packet | | | | | +=====+=============+---------------------------->| | \ | | | | | | +=====================+-X | | | | | | | | | | | | | | Fig.4.7 Route optimization +---------------------------------------+ | Outer IPv6 Header | | (SRC=CN, DST=one of CoAs) | +=======================================+ === | Inner IPv6 Header | | | (SRC=CN, DST='all_xcast address') | | +---------------------------------------+ for Xcast6 operation | Routing Extension Header | | | (Explicit address list of Xcast6) | | +=======================================+ === | Destination Option Headers | | | (Binding-Acknowledgement if needed) | for Mobile IPv6 operation +=======================================+ === | Original IPv6 Header | | | (SRC=CN, DST=MN's Home Address) | | +---------------------------------------+ original IPv6 packet | | | | (datagram from a CN) | | | | | | | | +---------------------------------------+ === Fig.4.8 Packet format from the CN to MN 5. HA operation In this section, we describe the detail function of the Home Agent (HA) and modification from the Mobile IPv6 (MIPv6) specification [1]. Basically, the HA actions are the same as that of the MIPv6 specification. Adding our extension, a smooth handoff operation will be available without re-routing in the wired network. 5.1 Sending a Router Advertisement message HA sends a Router Advertisement message to his network. After relayed through the routers, a Mobile Node (MN) receives the message. This operation is the same as the MIPv6 [1]. 5.2 Receiving a Binding Update message In original MIPv6, Binding Cache is modified by the information of the Binding Update (BU) message that HA received recently. In the Xcast6 extension, adding the previous BU information, MN may send the new subnet information with BU message. Therefore, we introduce a new procedure for HA to add the new multicast entry in the Binding Cache. The deadline of the information is administrated by the 'Lifetime' in the BU message. To delete an entry in the Binding Cache, MN should send a BU message with Lifetime equal zero. When the MN sends an extra COA with a BU message, MN sets the 'X'-bit to inform to use the multiple COA procedure. If the HA is Xcast6-aware, HA adds this COA, and returns a Binding Acknowledge (BAck) message with the 'X'-bit still set. Otherwise HA replace the old COA with the new COA. Then HA returns a BAck message with the 'X'-bit not set. The formats of the BU and BAck message are described in chapter 7. 5.3 Forwarding the packets from CN A packet from a Correspondent Node (CN) or the other nodes to the shadow of MN on the Home Link is blocked by HA. HA sends it to the MN's addresses written in the Binding Cache. The packet are encapsulated by HA based on the MIPv6 specification and are added the explicit multicast addresses on the option header of the Xcast6. 5.4 Action of the Xcast6-unaware HA If a HA is not Xcast6-aware, HA acts as the original MIPv6 HA. On binding sequence, MN should make a negotiation with his HA to check the capability of Xcast6-awareness. This procedure has described in section 5.2. 6. CN operations In this section, we describe the detail action of the Correspondent Node (CN) and the modification from the Mobile IPv6 (MIPv6) specification [1]. Basically, the action of the CN is the same as that of MIPv6. Route optimization is also available. 6.1 Triangle routing (CN -> HA => MN) Before a route optimization, CN sends a normal packet to a shadow of the Mobile Node (MN) on the Home Link. The packet is tunneled by the Home Agent (HA), and then sent to the actual MN. A packet from the MN to the CN is sent directly. 6.2 Route optimization (CN => MN) If a CN is Xcast6-aware, when the MN sends the route optimization requirement, MN may send some COAs to the CN by the Binding Update (BU) message with the 'X'-bit set. CN will register these addresses on his Binding Cache and send the success information over a Binding Acknowledgement (BAck) message. CN will multicast a packet including the explicit destination addresses of COAs on the Xcast6 extension header. 6.3 Action of the Xcast6-unaware CN If a CN is not Xcast6-aware, CN acts as the original MIPv6 CN. MN may still realize the fast handoff by sending a packet to the Xcast6-aware HA. The selection of sending a CN's packet directly to MN or via HA is decided by the MN. Notice that MN should send the COA to CN concerning the air-link activated by MN. On binding sequence, MN should make a negotiation with his CN to check the capability of Xcast6-awareness. This procedure has already described in section 5.2. 6.4 Consideration about MN-MN operation If the Xcast6-aware CN is also a MN, a communication may be done between each MN. Basically, this operation will be available with our extension. A control message of the MIPv6 may be piggy-backed on the Xcast6 multicast packet. A detail operation is for further study. 7. Message format To inform the Xcast6 awareness, we need to add the 'X'-bit to the Binding Update and Binding Acknowledge messages. 7.1 Modified Binding Update (BU) Message The Binding Update (BU) message is used by a Mobile Node (MN) to notify other nodes of a new care-of address for itself. The BU message uses the Mobility Header (MH) Type value 5. When MN sends the additional COA, MN sets 'X'-bit as follows: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |A|H|S|D| Reserved |X| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence # | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Home Address + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . . . Mobility options . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Extra COA (X) The Extra COA (X) bit is set by the sending mobile node to request a new entry of the COA for Xcast6 operation. Reserved These fields are unused. They MUST be initialized to zero by the sender and MUST be ignored by the receiver. Another flags and parameter fields have the same meaning of original MIPv6 [1]. 7.2 Binding Acknowledgement (BAck) Message The Binding Acknowledgement message is used to acknowledge receipt of a BU message. When an Xcast6-aware node receives a packet containing a Binding Update message, with this node being the destination of the packet, this node MUST return a Back message to the mobile node, with the 'X'-bit still set. Otherwise, a node resets the 'X'-bit. The BAck message has the MH Type value 6. Format is as follows: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Status | Reserved |X| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence # | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Refresh | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . . . Mobility options . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Extra COA (X) The Extra COA (X) bit is set by the sender to inform the request of creating a new entry of the COA is accepted. Reserved These fields are unused. They MUST be initialized to zero by the sender and MUST be ignored by the receiver. Status 8-bit unsigned integer indicating the disposition of the Binding Update. Values of the Status field are the same as defined in [1]. Another flags and parameter fields have the same meaning of original MIPv6 [1]. 8. Compatibility of existing Mobile IPv6 specification In the extension of this draft, there are few modifications from the Mobile IPv6 [1] specification. Home Agent (HA) may be added the Small Group Multicast (SGM) function by adding the routing header of the addresses registered by the BU messages. If the HA is not Xcast6-aware, HA is still act as an ordinary MIPv6 node. MN is needed to add the functions of sending the multiple subnet information and selecting the one of subnets. A protocol to select a subnet will be considered in Layer 2 or Layer 3. MN also needs to have a negotiation function to recognize that the HA and CN are Xcast6-aware described in the previous chapter. 8.1 Data structures The Mobile IPv6 (MIPv6) specification defines some conceptual data structures [1]. In this section, we will review them briefly then make clear the part to modify for the Xcast6 extension. Binding Cache: A cache, maintained by each IPv6 node, of bindings for other nodes. When sending a packet, the Binding Cache is searched before the Neighbor Discovery conceptual Destination Cache [14]. Each Binding Cache entry conceptually contains the following fields: - The home address of the mobile node. - Number of the COAs effective in this home address. - A flag indicating whether or not this Binding Cache entry is a "home registration" entry. - A flag indicating whether or not this Binding Cache entry represents a mobile node that should be advertised as a router in proxy Neighbor Advertisements sent by this node on its behalf. This flag is only valid if the Binding Cache entry indicates that this is a "home registration" entry. - The value of the Prefix Length field received in the Binding Update that created or last modified this Binding Cache entry. This field is only valid if the "home registration" flag is set on this Binding Cache entry. Below six fields are created and maintained individually corresponding to the COAs to be multicasted. - A flag that indicate that this COA is available. - The care-of address (COA) for the mobile node indicated by the home address field in this Binding Cache entry. In the Xcast6 extension, plural entries are needed to record the addresses corresponding to the Xcast6 routes. - A lifetime value, indicating the remaining lifetime for this Binding Cache entry. In the Xcast6 extension, the lifetime value for each COA is maintained individually. They are initialized from the Lifetime field in the Binding Update (BU) that created or last modified this Binding Cache entry. - The maximum value of the Sequence Number field (16 bits) received in previous Binding Updates for this mobile node home address. - Recent usage information for this Binding Cache entry. - The time at which a Binding Request was last sent for this entry. Binding Update List: A list, maintained by each mobile node, recording information for each Binding Update sent by this mobile node, for which the Lifetime sent in that Binding Update has not yet expired. The Binding Update List includes all bindings sent by the mobile node: those to correspondent nodes, those to the mobile node's home agent, and those to a home agent on the link on which the mobile node's previous care-of address is located. In the Xcast6 extension, entries are created and maintained individually corresponding to each COA to be multicast. Each Binding Update List entry conceptually contains the following fields: - The IP address of the node to which a Binding Update was sent. - The home address for which that Binding Update was sent. - The care-of address sent in that Binding Update. - The initial value of the Lifetime field sent in that Binding Update. - The remaining lifetime of that binding. This lifetime is initialized from the Lifetime value sent in the Binding Update and is decremented until it reaches zero, at which time this entry MUST be deleted from the Binding Update List. - The maximum value of the Sequence Number field sent in previous Binding Updates to this destination. - The time at which a Binding Update was last sent to this destination, as needed to implement the rate limiting restriction for sending Binding Updates. - The state of any retransmissions needed for this Binding Update, if the Acknowledge (A) bit was set in this Binding Update. This state includes the time remaining until the next retransmission attempt for the Binding Update, and the current state of the exponential back-off mechanism for retransmissions. - A flag that indicates that future Binding Updates should not be sent to this destination. Home Agents List: A list, maintained by each home agent and each mobile node, recording information about each home agent from which this node has received a Router Advertisement in which the Home Agent (H) bit is set, for which the remaining lifetime for this list entry (defined below) has not yet expired. The home agents list is thus similar to the Default Router List conceptual data structure maintained by each host for Neighbor Discovery [14], although the Home Agents List MAY be implemented in any manner consistent with the external behavior described in this document. In the Xcast6 extension, there is no modification for this list. Each Home Agents List entry conceptually contains the following fields: - The link-local IP address of a router on the link that this node currently believes is operating as a home agent for that link. A new entry is created or an existing entry is updated in the Home Agents List in response to receipt of a valid Router Advertisement in which the Home Agent (H) bit is set. The link-local address of the home agent is learned through the Source Address of the Router Advertisements received from it [14]. - One or more global IP addresses for this home agent, learned through Prefix Information options with the Router Address (R) bit set, received in Router Advertisements from this link-local address. - The remaining lifetime of this Home Agents List entry. - The preference for this home agent taken from the Home Agent Preference field; higher values indicate a more preferable home agent. 9. Security consideration The extension of this draft has a compatibility with the AAA (Authentication, Authorization and Accounting) function studied in the Mobile IPv6 (MIPv6) [1]. The procedure of the authentication and the integrity of a packet will be based on the MIPv6 specification. In other words, security associations are engaged between a Mobile Node (MN) and a Home Agent (HA) or MN and Correspondent Node (CN). Authentication Header (AH) and Encapsulating Security Payload (ESP) are also used. In addition, a further AAA function based on the MIPv6 should be adapted as it is. 10. References: [1] D. Johnson, C. Perkins, J. Arkko, "Mobility Support in IPv6", , May 2002. [2] G. Dommety, A. Yegin, C. Perkins, G. Tsirtsis, K. El-Malki, M. Khalil, " Fast Handovers for Mobile IPv6", , March 2002. [3] S. Deering, R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", rfc2460, December 1998. [4] C. Perkins, Editor. "IP Mobility Support", rfc2002, October 1996. [5] IMAI Yuji, "Multiple Destination option on IPv6(MDO6)", , March, 2000. [6] A. Conta, S. Deering, "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification", rfc2463, December 1998. [7] "Small Group Multicast (sgm) BOF" agenda, http://www.ietf.org/ietf/00jul/sgm-agenda.txt [8] IANA, "IP Address Services", http://www.iana.org/ipaddress/ip-addresses.htm [9] S. Seshan, "Low-Latency Handoff for Cellular Data Networks", Ph.D. Thesis, University of California at Berkeley, December 1995. http://www.seshan.org/papers.html [10] J. Mysore and V. Bharghavan, "A New Multicasting-Based Architecture for Internet Host Mobility", ACM Mobicom'97, Budapest, Hungary, October 1997. [11] Ahmed Helmy, "Multicast-based Architecture for IP Mobility: Simulation Analysis and Comparison with Basic Mobile IP", Technical Report USC Computer Science Department, 2000 [12] James D. Solomon, "Mobile IP", Prentice-Hall, 1998. [13] R. Boivie, N. Feldman, Y. Imai, W. Livens, D. Ooms, O. Paridaens, "Explicit Multicast (Xcast) Basic Specification", , March, 2001. [14] T. Narten, E. Nordmark, W. Simpson, "Neighbor Discovery for IP Version 6 (IPv6)", rfc2461, December 1998. [15] Xcast6 implementation page. http://sourceforge.net/projects/xcast6 11. Changes V01> - Modified the descriptions in the chapter of the 'Overview of Small Group Multicast'. (Section 2) - Added the Xcast Basic Specification to the references [13]. - Added the data structures (e.g. Binding Cache, Binding Update List) in the HA/MN/CN according to the MIPv6 specification. (Section 8.1) Xcast6 v00> - Modified a file name. - Added a note that the BAck message may be either piggy-backed on a multicast packet or a unicast packet. (Section 4.3) - Added the Binding Update & Binding Acknowledge format to negotiate a capability of Xcast6 handoff. (Chapter 5 and Chapter 7) - Added the Xcast6 Implementation page [15]. - Updated the referenced document's revision [1], [2]. 11. Authors addresses Contact: Yutaka Ezaki ezaki@flab.fujitsu.co.jp Yuji Imai kimai@flab.fujitsu.co.jp Mail: Fujitsu Laboratories Ltd. 4-1-1 Kami-kodanaka, Nakahara-ku, Kawasaki, 211-8588, Japan Phone: +81-44-777-1111 Fax: +81-44-754-2741 /end Internet Draft draft-ezaki-handoff-xcast6-00.txt June 2002