IETF MONAMI6 Working Group H. Soliman Internet-Draft Qualcomm Expires: August 31, 2006 N. Montavont GET/ENST-B N. Fikouras K. Kuladinithi University of Bremen February 27, 2006 Flow Bindings in Mobile IPv6 draft-soliman-monami6-flow-binding-00.txt Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. 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. This Internet-Draft will expire on August 31, 2006. Copyright Notice Copyright (C) The Internet Society (2006). Abstract This document introduces extensions to Mobile IPv6 [1] that allow nodes to bind a particular flow to a care-of address. These extensions allow multihomed nodes to take full advantage of the different properties associated with each of their interfaces. Soliman, et al. Expires August 31, 2006 [Page 1] Internet-Draft Flow bind February 2006 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Flow Identification option . . . . . . . . . . . . . . . . . . 5 3. Protocol operations . . . . . . . . . . . . . . . . . . . . . 11 3.1. Default binding . . . . . . . . . . . . . . . . . . . . . 11 3.2. Adding flow bindings . . . . . . . . . . . . . . . . . . . 12 3.3. Replacing flow bindings . . . . . . . . . . . . . . . . . 12 3.4. Deleting flow bindings . . . . . . . . . . . . . . . . . . 12 4. Usage scenario . . . . . . . . . . . . . . . . . . . . . . . . 14 5. Mobile Node operations . . . . . . . . . . . . . . . . . . . . 16 5.1. Conceptual Data Structures . . . . . . . . . . . . . . . . 16 5.2. Establishing Flow Bindings . . . . . . . . . . . . . . . . 16 5.2.1. Sending Flow Identifications to Home Agents and Correspondent Nodes . . . . . . . . . . . . . . . . . 16 5.2.2. Using Alternate Care-Of Address . . . . . . . . . . . 17 5.2.3. Receiving Binding Acknowledgements . . . . . . . . . . 17 5.2.4. Receiving Binding Refresh Requests . . . . . . . . . . 18 5.3. Packet Processing . . . . . . . . . . . . . . . . . . . . 18 5.4. Movement . . . . . . . . . . . . . . . . . . . . . . . . . 18 5.5. Returning Home . . . . . . . . . . . . . . . . . . . . . . 18 6. Correspondant node operations . . . . . . . . . . . . . . . . 19 6.1. Modification to the binding cache . . . . . . . . . . . . 19 6.2. Return Routability Procedure . . . . . . . . . . . . . . . 19 7. Home Agent operations . . . . . . . . . . . . . . . . . . . . 20 7.1. Modification to the binding cache . . . . . . . . . . . . 20 7.2. Receiving BU without flow identification option . . . . . 21 7.3. Receiving BU with flow identification option(s) . . . . . 21 7.4. Deleting an entry in the binding cache . . . . . . . . . . 22 7.4.1. A binding cache entry expires . . . . . . . . . . . . 22 7.4.2. The mobile node explicitly requests to remove a binding . . . . . . . . . . . . . . . . . . . . . . . 23 8. Mobility Anchor Point operations . . . . . . . . . . . . . . . 24 9. Security considerations . . . . . . . . . . . . . . . . . . . 25 10. Open discussion - future work . . . . . . . . . . . . . . . . 26 10.1. Usage of the FID . . . . . . . . . . . . . . . . . . . . . 26 10.2. Multiple Care-of addresses . . . . . . . . . . . . . . . . 26 10.3. Network in Motion . . . . . . . . . . . . . . . . . . . . 26 Soliman, et al. Expires August 31, 2006 [Page 2] Internet-Draft Flow bind February 2006 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 28 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 29 Intellectual Property and Copyright Statements . . . . . . . . . . 30 Soliman, et al. Expires August 31, 2006 [Page 3] Internet-Draft Flow bind February 2006 1. Introduction Mobile IPv6 allows a mobile node to manage its mobility using the binding update message, which binds one care-of address to one home address. The binding update message can be sent to the home agent or a correspondent node or to a mobility anchor point [2]. The semantics of the binding update in Mobile IPv6 are limited to address changes. That is, [1] does not allow a mobile node to bind more than one address to the home address. Furthermore, the binding granularity is limited to the address. Therefore, a mobile node cannot associate one of the connections using the home address with a different care-of address. In [3] Mobile IPv6 is extended to allow the binding of more than one care-of address to a home address. This specification extends Mobile IPv6 to allow it to specify policies associated with each binding. A policy can contain a request for a special treatment of a particular flow. Hence, this specification allows a mobile node to bind a particular flow to a care-of address without affecting other flows using the same home address. In this document, a flow is defined as one or more connections that are identified by a flow identifier. A single connection is typically identified by the source and destination IP addresses, transport protocol number and the source and destination port numbers. Alternatively a flow can be identified in a simpler manner using the flow label field in the IPv6 header [4] or the Security Parameter Index (SPI) when [IPsec] is used. Flow bindings are useful in cases where the MN is connected to different access technologies with different characteristics. When using the flow identifier option introduced in this specification, a mobile node is able to bind one flow to an interface while maintaining the reception of other flows on another interface. Requesting the flow binding can be decided based on local policies within the MN and based on the link characteristics and the types of applications running at the time. It should be noted that the flow identification option can be associated with any binding update, whether it is sent to a correspondent node, home agent or mobility anchor point. A Similar mechanism for Mobile IPv4 is described in [5]. Note that this specification is an ongoing work and some parts of the document are still under discussion. Soliman, et al. Expires August 31, 2006 [Page 4] Internet-Draft Flow bind February 2006 2. Flow Identification option The Flow identification option is included in the binding update and acknowledgement messages. This option contains information that allows the receiver of a BU to identify a traffic flow and route it to a given address. Multiple options may exist within a binding update message. The Flow identification option has a flexible format that allows different fields to appear in the option based on the way the mobile node chooses to represent the flow. The flags following the option length field indicate which of the fields used to identify the flow are present in the option. As a result, there is no fixed format for the flow identification option. This may result in slight complexity in the implementation; however, this option will minimise the size of the option sent, which is particularly important for bandwidth- limited links. Soliman, et al. Expires August 31, 2006 [Page 5] Internet-Draft Flow bind February 2006 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Option Type | Option Len |S|E|F|L|O|W|T|I| Action | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | FID | Status |R|H|D| Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Source Address + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Destination Address + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source port | Destination port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Protocol | Flow Label | C. S. | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | SPI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+ Figure 1: The flow identification option Option Type TBD Option Len Length of option in 8-octet units S When set, this flag indicates the presence of the Source address field in this option. Soliman, et al. Expires August 31, 2006 [Page 6] Internet-Draft Flow bind February 2006 E When set, this flag indicates the presence of the Destination address field in this option. F When set, this flag indicates the presence of the Source port field in this option. L When set, this flag indicates the presence of the Destination port field in this option. O When set, this flag indicates the presence of the Protocol field in this option. W When set, this flag indicates the presence of the Flow label field in this option. T When set, this flag indicates the presence of the Class of service field in this option. I When set, this flag indicates the presence of the SPI field in this option. Action This field specifies the action that needs to be taken by the receiver of the binding update containing the flow identification option. FID The Flow Identifier field is a 16-bit unsigned integer that includes the identifier for the flow binding. This field is used to refer to an existing binding or to create a new binding. Soliman, et al. Expires August 31, 2006 [Page 7] Internet-Draft Flow bind February 2006 R When set, this flag indicates that the source address associated with this flow is the address of the node receiving this binding update and MUST be used to identify the flow. H When set, this flag indicates that the destination address associated with this flow is the address included in the home address option in the binding update and MUST be used to identify the flow. D When set, this flag indicates the default entry. It indicates that the source address of the binding update, or the address included in the alternate Care-of address option, is the default address that the receiving node MUST use to redirect a flow which does not map a flow binding. Status This field indicates the success or failure of the flow binding operation for the particular flow in the option. This field is not relevant to the binding update message as a whole or to other flow identification options. Values from 0 to 127 indicate success. Values of 128 and higher indicate failure. Source Address This field identifies the source address of the data packet as seen by the receiver of this binding update. That is, the address of the correspondent node. An IPv4 address of the correspondent must be included in the IPv4-mapped IPv6 address format. Destination Address This field identifies the destination address of the data packet as seen by the receiver of the binding update. For a correspondent node, the destination is the home address of the mobile node. However, a mobility anchor point would see the destination address as the regional care-of address of the mobile node. Hence, the mobile node needs to specify this field as seen by the receiver of the binding update. Soliman, et al. Expires August 31, 2006 [Page 8] Internet-Draft Flow bind February 2006 Source Port This field identifies the source port number that will be used in data packets, as seen by the receiver of the binding update. Destination Port This field identifies the destination port number that will be used in data packets as seen by the receiver of the binding update. Protocol A 16-bit unsigned integer representing value of the transport protocol number associated with the port numbers in data packets. Flow Label The Flow label present in the IPv6 header of the data packet seen by the receiver of the binding update. C.S. (Class of Service) The Class of Service field in the data packet as seen by the receiver of the binding update. SPI The Security Parameter Index present in the IPsec header of the data packet seen by the receiver of the binding update. The following values are reserved for the Action field in this option: 0 Add a flow binding 1 Replace a flow binding 2 Discard a flow 255 Remove a flow binding The following values are reserved for the status field within the flow movement option: 0 Flow binding successful. Soliman, et al. Expires August 31, 2006 [Page 9] Internet-Draft Flow bind February 2006 128 Flow binding rejected, reason unspecified. 129 Flow binding option poorly formed. 130 Administratively prohibited. 131 Flow identification by port numbers is not supported. 132 Flow identification with Class of service field is not supported. 133 Flow identification with Flow label is not supported. 134 Flow identification with SPI is not supported. 135 No default entry for the home address. 136 FID already in use 137 FID not found It should be noted that per-packet load balancing has negative impacts on TCP congestion avoidance mechanisms as it is desirable to maintain order between packets belonging to the same TCP connection. This behaviour is specified in [6]. Other negative impacts are also foreseen for other types of real time connections due to the potential variations in RTT between packets. Hence per-packet load balancing is not allowed in this extension. However, the MN can still request per-flow load balancing provided that the entire flow is moved to the new interface. Soliman, et al. Expires August 31, 2006 [Page 10] Internet-Draft Flow bind February 2006 3. Protocol operations This specification allows mobile nodes to direct flows to a particular care-of address. This can be done by aggregating many flows in the flow identification option (e.g. all TCP traffic), or by uniquely identifying a flow in the flow identification option. The flow identification option can be sent with one or more parameters. The first 8 octets of the option MUST be present in all cases, while the rest of the parameters are optional. For instance, the following constructions of the option, among others (following the first 8 octets), are all legal: Option 1: Flow label. Option 2: SPI Option 3: Source Port Option 4: Source Port, Destination Port Option 5: Source Port, Destination Port, Protocol Option 6: Source Address, Destination Address, Source Port, Destination Port Option 7: Protocol This section discusses how the mobile node can use the flow identification option when sending binding updates to the correspondent node, home agent or mobility anchor point. Addition, deletion and modification of bindings are all discussed below. 3.1. Default binding Any distant node which supports the flow identification option MUST maintain a default binding per home address. A default binding indicates an association between a home address and a Care-of address. In addition to the default binding, several bindings may co-exist within a binding cache for the same home address, each of them indicating different bindings between flows and Care-of addresses. When a data flow is intercepted by a home agent or initiated by a correspondent node, if the said data flow does not match an existing flow identification option, the care-of address indicated in the default binding is used as destination address for the mobile node. A default care-of address is identified in a flow identification option with the D flag set to 1. Only the first 8 bytes in the Soliman, et al. Expires August 31, 2006 [Page 11] Internet-Draft Flow bind February 2006 options are required. A mobile node MUST first register a default care-of address before sending any other flow identification options. When a distant node receives a BU with a flow identification option without the D flag set, and if this node has not already a default binding for the same home address in its binding cache, the Binding Update must be rejected. A BA with the status code 135 MUST be returned to the mobile node. 3.2. Adding flow bindings When adding a new flow binding, the mobile node sends the flow identification option in the binding update. The option MUST include the first 8 octets, with a unique FID. The FID need only be unique for the receiver of the binding update, i.e. the same FID can be used across different receivers of the binding update. The Action field MUST indicate an Add operation. Adding the flow binding implies associating a flow with a particular care-of address for the mobile node. Therefore, the care-of address MUST be present in the packet. The care-of address is present in the source address of the packet or the alternate care-of address option. The mobile node may need to define the flow partially or entirely based on the source and destination addresses in packets. For instance, a mobile node may choose to forward all flows from address A to address B (the latter being one of the addresses that belong to the mobile node) to a particular care-of address. Alternatively, more granularity can be added by including port numbers and protocol. The destination address seen by the sender is usually the home address, and may be the regional care-of address in the case of [2]. The mobile node can either include the source and destination addresses in the flow identification option, or refer to those addresses using the H and R flags in the flow identification option. The latter method reduces the overall packet size and makes it more efficient to add a flow. 3.3. Replacing flow bindings When replacing a flow binding, the mobile node sends the binding update with the flow identification option. The option includes the FID for the binding being replaced, as well as the Action field set to 1, indicating a request to replace the binding. The flow identification option MUST contain the attributes needed to classify the flow. 3.4. Deleting flow bindings When deleting a flow binding, the mobile node sends a binding update Soliman, et al. Expires August 31, 2006 [Page 12] Internet-Draft Flow bind February 2006 message with the flow identification option. The Action field MUST be set to a value of 2, which indicates a request for deleting a flow binding. Only the first 8 octets in the option are required. This will provide enough information for the receiver to locate the flow binding using the FID and remove it. Soliman, et al. Expires August 31, 2006 [Page 13] Internet-Draft Flow bind February 2006 4. Usage scenario In this section, we hihglight a usage case of the flow identification option to illustrate how to use the option. Let assume a mobile node which is equipped with two interfaces namely If1 and If2, both of them connected to a different visited network. The mobile node configures one global IPv6 address on each interface, namely CoA1 and CoA2 respectively. The mobile node runs Mobile IPv6 with a home agent located in its home network. We assume that an existing IPsec security association is set up betweeen the mobile node and its home agent. We assume that the mobile node wants to exchange secure data flows over CoA1 and unsecure data flows over CoA2. To do so, the mobile node may request its home agent to redirect packets intended to the mobile node's home address to a different care-of address, depending on the type of the communication. For example, port number 22 (ssh) and 443 (https) may be tunneled to CoA1 while other communications may be tunneled to CoA2. In order to set up these flow bindings, the following messages are exchanged: o The mobile node sends a Binding Update through If2, with the source address set to CoA2. The BU includes a Flow Identification option which only consists of the 8 first bytes. The D flag (Default entry) is set to 1. o When the home agent receives the BU, it first validates the BU as recommanded in section 10.3 of [1]. If the BU is acecpted, the home agent processes the Flow Identification option. It then registers the source address of the BU as the default care-of address for the given home address and sends back a BA with exactly the same Flow Identifiaction option (with the status code = 0). o Then, the mobile node can send additional BU with Flow Identifaction options in order to indicate its usage preferences. In order to redirect source port number 22 and 443 to CoA1, the mobile node sends a BU through If1, with the source address set to CoA1, with the following Flow Identification options: Option 1: The option is 9 bytes in length. Only the flags F (source port) is set to 1, Action is set to 0 (add), FID is set to 1 and the source port number is set to 22. Option 2: the option is the same option as above, with the FID = 2, and source port number = 443. If the home agent accepts these Flow binding options, it will return a BA with a Flow Identification option with the success flag in the status field. Soliman, et al. Expires August 31, 2006 [Page 14] Internet-Draft Flow bind February 2006 o When the home agent receives the last BU which contains two Flow Identification options, it first checks the validity of the BU as recommanded in section 10.3 of [1]. If the BU is accepted, the Flow Identification options are treated. If these options are accepted by the home agent, the home agent sends back a BA to the mobile node with the same Flow Identification options (the status code is kept to 0). Thereafter, if a data flow is intended to the home address of the mobile node, the home agent will identify if the source port number is equal to 22 or 443. If yes, the home agent will tunnel the data flow to CoA1. If not, the data flow will be forwarded to CoA2. Soliman, et al. Expires August 31, 2006 [Page 15] Internet-Draft Flow bind February 2006 5. Mobile Node operations 5.1. Conceptual Data Structures Each mobile node is required by [1] to maintain a Binding Udate List containing a record of Binding Updates sent by the mobile node for which the lifetime has not expired. The fields of a Binding Update List entry are presented in detail in [1]. This draft extends the Binding Update List entry data structure to include Flow Identifications. A Flow Identification has a flexible format depending on the fields required to identify a flow or an aggregate of flows. The different fields that constitute a Flow Identification option are presented in detail in Section 2. For the support of the extensions presented in this draft, all Binding Update List entries MUST maintain a valid FID and a valid value for at least one of the rest of the fields. 5.2. Establishing Flow Bindings A mobile node MUST maintain a Default Binding in the Binding Update List for each home address retained. The Default Binding indicates the preferred Care-of Address where the mobile node wishes to receive all flows for which none of the registered flow bindings apply. Should the Default Binding expire or be removed then all bindings related to the home address are automatically removed from the Binding Update List. 5.2.1. Sending Flow Identifications to Home Agents and Correspondent Nodes A mobile node may establish a Flow Binding by issuing a Binding Update (BU) containing a Flow Identifier in its mobility options. If the mobile node does not already maintain a Default Binding with the targeted node then the the D flag MUST be enabled. The Flow Identifier option MUST indicate the FID to be associated with the registered Flow Binding. A Flow Identifier option is considered valid when it contains a valid FID and values for at least one of the rest of its fields indicating the flows to be associated with the binding. Flow bindings maintained for the same home address may not contain overlapping policies. Mobile nodes are required to scan their Binding Update List for overlapping entries prior to requesting a Flow Binding. The ACTION field of the Flow Identifier option indicates the action that the targeted node has to perform to its Bindings Cache List upon processing the Flow Identifier. A mobile node may request for any of the following actions: Soliman, et al. Expires August 31, 2006 [Page 16] Internet-Draft Flow bind February 2006 o Action = 0: Add flow binding. Create a new Flow Binding with the indicated FID and include the attached Flow Identifier. A mobile node may not issue a Flow Identifier with the ACTION field set to zero for an existing FID. o Action = 1: Replace a flow binding. This action enables the mobile node to replace the Filter Identifiers associated with the Filter Binding indicated by FID. A mobile node may not issue a Flow Identifier with the ACTION field set to one for a non existent FID. o Action = 255: Remove a flow binding. This action enables a mobile node to remove the Flow Binding indicated by FID from the targeted node's Binding Cache List. All associated Flow Identifiers are also removed automatically. A mobile node requesting for the Default Binding to be removed will cause all other bindings for its home address to be removed from the Binding Cache List of the targeted node. A mobile node may not issue a Flow Identifier with the ACTION field set to 255 for a non existent FID. 5.2.2. Using Alternate Care-Of Address A mobile node can use an alternate care-of address to issue a Flow Identifier for a different Flow Binding. For that a mobile node is required to send a Binding Update including an Alternate Care-of Address option followed by the Flow Identifier option. The Alternate Care-of Address option shall indicate the care-of address to be associated with the Flow Identifier options. The Flow Identifier options shall contain the FID to be allocated to the Flow Binding. 5.2.3. Receiving Binding Acknowledgements According to [1] all nodes are required to silently ignore mobility options not understood while processing Binding Updates. As such a mobile node receiving a Binding Acknowledgement (BA) in response to the transmission of a Binding Request MUST determine if the BA contains a copy of every Flow Identification option included in the BU. A BA without Filter Identification options would indicate inabillity on behalf of the source node to support the extensions presented in this document. In addition to the Status values presented in [1] the following Status values are defined: TBD Flow Binding successfully established. Flow Binding was created in the Binding Cache List and Flow Identifier was successfully associated, Soliman, et al. Expires August 31, 2006 [Page 17] Internet-Draft Flow bind February 2006 TBD +1 No Default Binding found. Mobile node may not establish a Flow Binding because it does not maintain a Default Binding. TBD +2 FID not found. Mobile node has requested an action for a FID that does not exist. 5.2.4. Receiving Binding Refresh Requests Upon receiving a Binding Refresh Request the mobile node is required to act as described in Section 11.7.4 of [1]. 5.3. Packet Processing The extensions presented in this draft affect the manner in which a mobile node manages bindings in order to influence the point of delivery of incoming flows. The policies that drive these extensions are considered beyond the scope of this specification. Similarly, the mechanisms the affect the mobile node's choice on the return path are also considered out of scope. 5.4. Movement As described in Section 11.5.2 of [1], a mobile node MAY use more than one care-of address at a time. The extensions presented in this draft are compatible with the multiple care-of addresses facility. A mobile node may associate a different Flow Identifier with each available care-of address to register Flow Bindings. Each Flow Binding is allocated a FID that is unique for each home address retained by the mobile node. It is noted that, for a given home address a mobile node may not maintain overlapping Flow Identifiers. 5.5. Returning Home Whenever a mobile node acquires a point of attachment to the home network and wishes to abolish all Flow Bindings associated with the respective home address, it is required to act as described in Section 11.5.4 of [1]. This will cause the home agent to remove all Flow Bindings as well as all related Flow Identifiers. Soliman, et al. Expires August 31, 2006 [Page 18] Internet-Draft Flow bind February 2006 6. Correspondant node operations Every Correspondent Node (CN) is required to maintain a Binding Cache containing records of associations between mobile node home addresses and care-of addresses (bindings) as they roam away from the home network. [1] allows mobile nodes to register only a single binding per home address with every CN. This specification extends the binding cache structure, and enables CNs to (1) maintain multiple bindings for a given home address and (2) to associate multiple Flow Identification options with every binding, termed as Flow Binding. A flow matching the a Flow Identification policy would be directed to the Care-of address indicated by the Flow Binding. A CN may maintain one ore more Flow Bindings for a mobile node in their Binding Cache. However, only one of the Flow Bindings is considered as the Default Bindind. The Default Binding is applicable for all flows for which no other Flow Binding is applicable. 6.1. Modification to the binding cache The binding cache structure needs to be extended to include the fields of the flow identification option described in Section 2. 6.2. Return Routability Procedure RFC 3775 [1] describes the Return Routability Procedure, a mechanism that enables the CN to confirm that a mobile node is addressable at its aclaimed care-of address as well as at its home address. The Return Routability Procedure dictates that every CN should transmit a Home Test and Care-of Test messages in response to the receipt of a Home Test Init and Care-of Test Init messages from a mobile node. Regarding the extensions described in this document, the exchange of the Home Test and Home Test Init messages will only be necessary for the registration of the first Flow Binding for a gieven home address. Any subsequent Flow Bindings will require only the exchange of the Care-of Test and Care-of Init messages. Soliman, et al. Expires August 31, 2006 [Page 19] Internet-Draft Flow bind February 2006 7. Home Agent operations A home agent maintains a Binding Cache in order to record associations between home addresses and care-of addresses of mobile nodes that are away from the home link. RFC 3775 [1] allows mobile nodes to register only one care-of address per home address. Thus a binding cache entry is uniquely identified by the home address. This specification extends the binding cache structure, and allows mobile node to (1) register multiple care-of addresses for a given home address and (2) associate flow binding policies with the registered care-of addresses. As several entries for the same home address may co-exist in the binding cache of a home agent, an entry is uniquely identified by the pair (mobile node's home address, FID). The home agent MUST maintain a default binding for each home address as explained in Section 3.1. This default binding associates a home address with a default (or primary) care-of address of the mobile node. This entry is used by the home agent when incoming data packets are intended to a home address and does not match any registered flow binding policies. 7.1. Modification to the binding cache The binding cache structure needs to be extended to include the flow identification fields. In addition to the fields described in section 9.1 of [1], a binding cache entry MUST contain: o Flow Binding identifier (FID): identifies an entry in the binding cache, in association with a home address o Source address o Destination address o Source port number o Destination port number o Protocol number o IPv6 flow label o Class of Service o SPI Soliman, et al. Expires August 31, 2006 [Page 20] Internet-Draft Flow bind February 2006 7.2. Receiving BU without flow identification option When the home agent receives a BU without a flow identification option, it must follow the rules specified in section 10.2 of RFC 3775. If the BU is accepted, the home agent will create, delete or update an entry in its Binding Cache. Three situations may occur: o No existing binding for the given home address: the BU is treated as specified in [1]. o Exising bindings without flow identification option for the given home address: the BU is treated as specified in [1]. o Existing bindings with flow identification option for the given home address: all existing bindings associated with the given home address are deleted and the Care-of address transported in the BU is uniquely associated with the home address. 7.3. Receiving BU with flow identification option(s) When the home agent receives a BU which includes at least one Flow Identification option, it first performs the operation described in section 10.3.1 of RFC3775. If the BU is accepted, the home agent checks if the FID of the Flow Identification option is already used in its binding cache. If yes, the BU should delete or update an existing entry, otherwise it should add a new entry. Then the home agent checks if the D flag (Default binding) is set. If the D flag is not set, the BU is rejected if the home agent has not an existing entry for the given home address, or if the home agent has a standard entry for the given home address, without any flow identification information. If the D flag is set, different operations may be performed depending on the status of the home agent's binding cache: o The home agent's binding cache does not have any entry for the given home address: the home agent may create a new default entry in its binding cache depending on the action defined in the Flow Identification option (see below) o The home agent's binding cache contains an association between the given home address and a Care-of address without any information on flow identification: the home agent may udpate the exisintg entry with a new default entry in its binding cache depending on the action defined in the Flow Identification option (see below) Soliman, et al. Expires August 31, 2006 [Page 21] Internet-Draft Flow bind February 2006 o The home agent's binding cache contains one or several associations between the given home address and one or several Care-of address(es) with flow identification information. The home agent may update/delete these existing association depending on the action field of the Flow Identitification option (see below). Then the home agent identifies which fields are set in the flow identification option and which action to take: o Action = 0: add flow binding. If the FID in the BU is the same as the FID in an existing binding cache entry for the same home address, the home agent sends back to the mobile node a BA with a error code 136 (FID already in use). Otherwise, the home agent needs to create a new entry in the binding cache with the associated flow policies. o Action = 1: Replace a flow binding. If the FID in the BU is not already identifying an existing entry in the binding cache for the same home address, the home agent sends back to the mobile node a BA with error code 137 (FID not found). Otherwise, the home agent updates the existing entry. This update may update the lifetime of the binding or to change the CoA if the flow policies are the same, and/or extend the flow policies. o Action = 2: TBD o Action = 255: Remove a flow binding. If the FID in the BU is not already identifying an existing entry in the binding cache for the same home address, the home agent sends back to the mobile node a BA with error code 137 (FID not found). Otherwise, the home agent removes the corresponding entry in the binding cache. 7.4. Deleting an entry in the binding cache A home agent might delete an entry in its binding cache for two reasons: either an entry expires, or the MN explitly requests the home agent to remove a specific entry. If an entry is going to expire, the home agent SHOULD send a Binding Refresh Advice. 7.4.1. A binding cache entry expires If the default entry in the binding cache expires, the home agent MUST delete all other entries associated with the same home address, even for different CoAs. If an entry other than the default entry expires (i.e., with a flow binding policies), the home agent MUST delete the entry. This does Soliman, et al. Expires August 31, 2006 [Page 22] Internet-Draft Flow bind February 2006 not affect other bindings that might be present for the same home address. 7.4.2. The mobile node explicitly requests to remove a binding If the home agent receives a valid BU with a flow identification option where action is set to 255 (Remove), the home agent MUST remove the corresponding entry. The home agent looks up the entry corresponding to the FID of the BU. If an entry is found, the entry is removed from the Binding cache and a BA is sent back to the mobile node with a success value for the status of the flow identification option. This operation does not modify any other binding that may appear with the same home address. If the FID is not present in the binding cache entry for the corresponding home address, the home agent MUST send back to the mobile node a BA with error code 137 (FID not found). Soliman, et al. Expires August 31, 2006 [Page 23] Internet-Draft Flow bind February 2006 8. Mobility Anchor Point operations The MAP operation is very similar to the home agent operation. Flow bindings sent to the MAP are associated with the regional care-of address. When a MAP receives a binding update that includes the flow identification option, it checks if such option is valid according to the requirements above. If the option is valid, the MAP installs the flow binding associated with the flow identified in the option. The lifetime of the binding is the lifetime of the binding update. Once the binding is successfully installed, the MAP sends the binding acknowledgement and includes the flow identification option. Only the first eight octets are required in the option. The MAP sets the status field to a value indicating success. In all cases, a flow identification option SHOULD be included in the binding acknowledgement to indicate success or failure of the flow binding installation. Soliman, et al. Expires August 31, 2006 [Page 24] Internet-Draft Flow bind February 2006 9. Security considerations This draft introduces a new option that adds more granularity to the binding update message. The new option allows the mobile node to associate some flows to an interface and other flow to another interface. Since the flow identification option is part of the mobility header, it uses the same security as the binding update, whether it is sent to the home agent, correspondent node, or MAP. However, since the flow identification option can optionally include an address identifying the mobile node (the destination address field), it is pertinent for the receiver of the binding update to ensure that such address (if included) is in fact assigned to the mobile node. For instance, the home agent must check that the address included in the flow identification option is assigned to the mobile node as one of its home addresses. When sending a binding update to the correspondent node, the message is authenticated using the two tokens associated with the home and care-of addresses. Hence, if a new care-of address is being added, a new care-of address test must be run to produce an appropriate keygen token [1]. Soliman, et al. Expires August 31, 2006 [Page 25] Internet-Draft Flow bind February 2006 10. Open discussion - future work 10.1. Usage of the FID The document [3] defines extensions to Mobile IPv6 to register multiple Care-of addresses to a single home address. Flags included in the Binding Update indicate to the receiver how to treat the new Care-of address: either the Care-of address will be added to the existing entries, or the new Care-of address will replace an old Care-of address. In order to differentiate between several bindings for the same home address, a Flow Identifier (FID) is used. It can be noted that [3] does not define policies for multiple Care-of addresses usage. Considering the registration of flow policies as presented in this document, it can be considered to use the Flow Identifier as defined in [3] to select a CoA to register a flow policies. This solution is currently under discussion. 10.2. Multiple Care-of addresses Multiple flow identification options may co-exist in BU/BA. However, all these flow identification options indicate policies for the usage of a single CoA (either the source address of the BU, or the address included in the Alternate care-of address sub-option). It could be considered to propose a method to combine a flow identification option with a care-of address option in order to transport multiple Flow Identification options associated with different care-of addresses in the same BU. 10.3. Network in Motion NEMO Basic Support proposes extensions to Mobile IPv6 to provide a continuous access to an entire IPv6 network which is in motion. Mobility of the entire network is hidden to the mobile network nodes inside the mobile network by mobile router(s). The Binding Update message has been extended with a new option to convey a Mobile Node Prefix to moible routers' home agent(s). Bi-directionnal tunnels are set up between mobile router(s) and their respective home agent(s). Packets from / to mobile network nodes are encapsulated to and from the home network between the home agent and mobile router(s). A Mobile network can be multihomed for various reasons, including redundancy, ubiquitous access or to get more aggregated bandwidth[7]. A mobile network is said multihomed when (i) a single mobile router has several egress interfaces, (ii) when several mobile networks are operating the same mobile network, (iii) the mobile network is associated with multiple home agents, or (iv) multiple global Soliman, et al. Expires August 31, 2006 [Page 26] Internet-Draft Flow bind February 2006 prefixes are available in the mobile network. The application of the flow binding option to mobile network will be studied in the next revsion of this document. In particular, solution for binding a particular flow to a mobile router's care-of address, or to a mobile network prefix will be analysed. Soliman, et al. Expires August 31, 2006 [Page 27] Internet-Draft Flow bind February 2006 11. Acknowledgements We would like to thank all authors of initial I-Ds that were merged together to create this document; in alphabetical order: C. Castelluccia, K. ElMalki, K. Georgios, , C. Goerg, T. Noel, F.-N. Pavlidou. 12. References [1] Johnson, D., Perkins, C., and J. Arkko, "Mobility Support in IPv6", RFC 3775, June 2004. [2] Soliman, H., Castellucia, C., ElMalki, K., and L. Bellier, "Hierarchical MIPv6 mobility management", RFC 4140, August 2005. [3] Wakikawa, R., "Multiple Care-of Addresses Registration", draft-wakikawa-mobileip-multiplecoa-04 (work in progress), June 2005. [4] Deering, S. and R. Hinden, "Internet Protocol Version 6 (IPv6)", IETF RFC 2460, December 1998. [5] Zhao, X., Castelluccia, C., and M. Baker, "Flexible Network Support for Mobile Hosts", Journal ACM MONET, April 2001. [6] Awduche, D., Malcolm, J., Agogbua, J., O Dell, M., and J. McManus, "Requirements for Traffic Engineering Over MPLS", RFC 2702, September 1999. [7] Ernst, T., "Motivations and Scenarios for Using Multiple Interfaces and Global Addresses", draft-ietf-monami6-multihoming-motivations-scenarios (work in progress), February 2006. Soliman, et al. Expires August 31, 2006 [Page 28] Internet-Draft Flow bind February 2006 Authors' Addresses Hesham Soliman Qualcomm Flarion Phone: Email: H.Soliman@flarion.com URI: Nicolas Montavont Ecole Nationale Superieure des telecommunications de Bretagne 2, rue de la chataigneraie Cesson Sevigne 35576 France Phone: (+33) 2 99 12 70 23 Email: nicolas.montavont@enst-bretagne.fr URI: http://www-r2.u-strasbg.fr/~montavont/ Nikolaus A. Fikouras University of Bremen ComNets-ikom,University of Bremen. Otto-Hahn-Allee NW 1 Bremen, Bremen 28359 Germany Phone: +49-421-218-8264 Fax: +49-421-218-3601 Email: niko@comnets.uni-bremen.de URI: http://www.comnets.uni-bremen.de Koojana Kuladinithi University of Bremen ComNets-ikom,University of Bremen. Otto-Hahn-Allee NW 1 Bremen, Bremen 28359 Germany Phone: +49-421-218-8264 Fax: +49-421-218-3601 Email: koo@comnets.uni-bremen.de URI: http://www.comnets.uni-bremen.de/~koo/ Soliman, et al. Expires August 31, 2006 [Page 29] Internet-Draft Flow bind February 2006 Intellectual Property Statement The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Disclaimer of Validity This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Copyright Statement Copyright (C) The Internet Society (2006). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. Acknowledgment Funding for the RFC Editor function is currently provided by the Internet Society. Soliman, et al. Expires August 31, 2006 [Page 30]