Robust Header Compression (rohc) WG Rajeev Koodli INTERNET DRAFT Manish Tiwari 13 July 2000 Charles E. Perkins Communication Systems Laboratory Nokia Research Center Header Compression State Relocation in IP Mobile Networks draft-koodli-rohc-hc-relocate-00.txt 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. This document is an individual submission for the ROHC Working Group of the Internet Engineering Task Force (IETF). Comments should be submitted to the rohc@cdt.luth.se mailing list. Distribution of this memo is unlimited. Abstract In networks with limited bandwidths, such as wireless cellular networks, compression of IP and transport headers may be employed to obtain better utilization of the available spectrum capacity. When header compression is used along with handoffs in such networks, the header compression context needs to be relocated from one IP access point (i.e., a router) to another in order to achieve seamless operation. In this document, we propose a mechanism to achieve this compression context relocation using IPv6 and Mobile IPv6. Koodli, Tiwari, Perkins Expires 13 January 2001 [Page i] Internet Draft Header Compression State Relocation 13 July 2000 Contents Status of This Memo i Abstract i 1. Introduction 2 2. Terminology 3 3. Overview 4 4. Message Formats 5 5. Considerations 10 5.1. MN Considerations . . . . . . . . . . . . . . . . . . . . 10 5.2. New-Router Considerations . . . . . . . . . . . . . . . . 10 5.3. Previous Router Considerations . . . . . . . . . . . . . 11 6. Security Considerations 11 7. IANA Considerations 11 Addresses 11 Koodli, Tiwari, Perkins Expires 13 January 2001 [Page 1] Internet Draft Header Compression State Relocation 13 July 2000 1. Introduction In IP networks, header compression may be employed to obtain better utilization of the link layer for delivering useful payload to applications. Such header compression may include the IP layer and the transport layers such as UDP/RTP and TCP, and perhaps application layers (such as http) in the future. A good example of a network that may employ header compression is a cellular network where the limited link bandwidth makes the use of header compression quite compelling. In such a network, a Mobile Node (MN), which is attached to the cellular network through an air interface, could change its point of attachment (and hence potentially the IP access point as well) due to mobility of the user. This device mobility then requires potential transfer of header compression state from one network element to another in order to seamlessly continue existing compression contexts. Consider the scenario shown in Figure 1. Prior to hand-off, the MN maintains a compression context for both the downlink and uplink packets. When hand-off takes place, for seamless operation, the New-Router must have appropriate compression state. The failure to possess this state could result in discarding the uplink packets and transmission of uncompressed packets in the downlink as shown in Figure 1 | MN +-----------+ +-+ <~~~~ | Previous | <-### < ###->: Uncompressed | | ---------- | Router | ------ > ----\ packet stream +-+ ~~~~> | (R1) | ###-> < \ ~~~~>: Compressed | | \ packet stream | +-----------+ +--------+ | | IP | Corr. | | | Network |Node(CN)| V | +--------+ | / | MN +-----------+ / +-+ <-### | New | <-### < / | | ---------- | Router | ------ > ----/ +-+ ~~~~> *| (R2) | < *| | *+-----------+ * * * V discard Figure 1: Effect of Handoff on Header Compression Koodli, Tiwari, Perkins Expires 13 January 2001 [Page 2] Internet Draft Header Compression State Relocation 13 July 2000 In this document, we provide a mechanism to relocate header compression state from Previous-Router to New-Router in order to achieve seamless operation of header compression during handoffs. For this purpose, we make use of the new smooth handoff messages defined in [2] and specific suboptions for header compression defined in this document. 2. Terminology We define the following terms in this document. New-Router The router to which the MN attaches to subsequent to handoff Previous-Router The MN's default router prior to handoff New-CoA The Care-of-Address of the Mobile Node (MN) when attached to New-Router Previous-CoA The Care-of-Address of the Mobile Node (MN) when attached to Previous-Router Context Identifier (CID) 8 or 16-bit unsigned integer that identifies a particular header compression context. In order to make compression context unique across handoffs, this field may be used in conjunction with an identifier such as link-layer address. Filter This field identifies the flow undergoing compression that matches the CID. This field is further sub-divided into Filter-Type and Filter-Value. Filter-Type is a field which identifies the particular Filter-Value that is used. The size of Filter-Value is understood from the Filter-Type field. Size of this field is TBD. Compression Profile Type (CPT) This is an object that indicates what type of header compression is desired. Possible types are: 1. IPv6 header compression 2. IP/UDP/RTP header compression Koodli, Tiwari, Perkins Expires 13 January 2001 [Page 3] Internet Draft Header Compression State Relocation 13 July 2000 3. IP/TCP header compression Each CPT is allocated an IANA type number. Size of each of the CPTs is fixed. 3. Overview We follow the handoff classification outlined in [2] for our purposes. The framework there describes "Network-Controlled, Mobile-Assisted" (NCMA) and "Mobile-Controlled, Network-(un)Assisted" (MCNA) scenarios. We start with the MCNA case first. When the MN moves to a new point of IPv6 attachment, the IP layer in the MN sends a standard Router Solicitation message. The New-Router responds back with a Router Advertisement message. This Router Advertisement message is enhanced to include a `C' bit in the Reserved field that indicates header compression capability, including the ability to support header compression subsequent to handoff, at the New-Router. The MN uses the Router Advertisement message to form a New-CoA and parses the `C' bit to verify header compression support at the New-Router. Subsequently, following the framework in [2], the MN sends a combined Binding Update message (intended for its mobility agent) and a Smooth Handover Initiate (SHIN) message to the New-Router. In the SHIN message the MN includes sub-options for header compression state relocation for both the New-Router and the Previous-Router. In response to receiving the SHIN message with header compression sub-options destined to the New-Router, the New-Router MUST activate new header compression context if it already has the compression state available. This is possible in Network-Controlled-Mobile-Assisted (NCMA) handoffs, in which the Previous-Router pushes state information to the New-Router as discussed in [2]. The number and the type (i.e., the Compression Profile Type (CPT)) of such contexts activated depends on the semantics of the sub-option. The default behavior is to simply provide support as prior to handoff. If the New-Router can activate header compression context in response to the SHIN message, it SHOULD send a SHACK message back to the MN immediately, enabling header compression to be used at the MN as soon as possible. In addition, the New-Router MUST send a Smooth Handover Request (SHREQ) message to the Previous-Router (since this message creates a binding for the MN at the Previous-Router) and this SHREQ message MAY contain header compression sub-options. These header compression sub-options SHOULD be ignored by the Previous-Router if it has already supplied the context to the New-Router. If header compression state is not available, the New Router must then construct a Smooth Handover Request (SHREQ) with header compression sub-options for the Previous-Router. These sub-options must include Koodli, Tiwari, Perkins Expires 13 January 2001 [Page 4] Internet Draft Header Compression State Relocation 13 July 2000 the sub-options supplied by the MN for both the New-Router and the Previous-Router, as well as those intended for the Previous-Router only. If the header compression sub-options intended for the New-Router alone cannot be processed due to the absence of compression state, as would be the case in MCNA, the New-Router MUST include those sub-options as well in the SHREQ message (as sub-options from New-Router to the Previous-Router only). This allows the Previous-Router to supply back these same sub-options along with the required context information so that compression context initialization can take place when the SHREP message arrives at the New-Router. In response to receiving the SHREQ message, the Previous-Router prepares to transfer the requested header compression state to the New-Router after proper authentication of the request by the MN, and optionally that of the originator of the SHREQ message itself. The Previous-Router constructs a Smooth Handover Reply (SHREP) message containing the appropriate sub-options for the New-Router that allow it to initialize each of the new header compression contexts. In the SHREP message, the Previous-Router MUST also copy the sub-options present in ``MN to New-Router and Previous-Router'' and those present in ``New-Router to Previous-Router'' in the SHREQ message when the New Router does not yet have a compression state for the MN. The header compression options meant for the Previous Router SHOULD be ignored if it has already transferred the state to the New Router. The Previous-Router must also keep the context active for CONTEXT_SAVE_TIME in order to recover from lost SHREP messages. When the New-Router receives a SHREP message with appropriate header compression sub-options, it MUST generate a Smooth Handover Acknowledgement (SHACK) message back to the MN with destination sub-options containing the response codes for the sub-options requested in the SHIN message. A successful header compression context activation at the New-Router allows the MN to resume transmission and reception of compressed packets with its correspondent nodes. 4. Message Formats The header compression sub-option is defined as a part of destination option used by mobile IPv6. The general format for the sub-option is as shown in Figure 2. The guidelines for the relative ordering of sub-options in the SHIN, SHREQ, SHREP and SHACK messages are presented in [2]. The MN, the New-Router and the Previous-Router MUST follow those guidelines for individual messages while constructing the header compression sub-options. As an example, in the SHIN message, the structure shown in Figure 3 is used for including the sub-options. Koodli, Tiwari, Perkins Expires 13 January 2001 [Page 5] Internet Draft Header Compression State Relocation 13 July 2000 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Sub-Option Type| Sub-Option Len| Sub-Option Data... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2: Sub-options Format 1. SHIN Destination Options hdr 2. Suboptions for New-Router 3. Suboptions for use by both New-Router and Previous-Router 4. Suboptions for Previous-Router Figure 3: Suboptions Structure for SHIN Destination Option For header compression state transfer purposes, the following common sub-options from the MN to the New-Router and the Previous-Router are currently defined. These sub-options are included for use by both New-Router and Previous-Router as shown in item 3 in Figure 3. The processing by each router is outlined below under each sub-option definition. Sub-option Type: 5 Sub-option Length: variable When this suboption type does not have suboption data, i.e., the suboption length is zero, it indicates to the Previous-Router MN's willingness to continue with header compression at the New-Router as prior to handoff. The Previous-Router then prepares to transfer all the [CID, CPT, Filter] tuples along with the header compression state appropriate for the CPT object. When the suboption length is non-zero, the MN supplies [CID, New-CPT] tuple, indicating that it wishes to use a new CPT for the context identified by the CID. The Previous-Router MUST ignore the New-CPT and simply supply the state indexed by the CID. Once the New-Router has the required state, it determines whether it can support the New-CPT or not. If it does support the New-CPT, the New-Router simply uses the appropriate state for the New-CPT. Sub-option Type: 6 Koodli, Tiwari, Perkins Expires 13 January 2001 [Page 6] Internet Draft Header Compression State Relocation 13 July 2000 Sub-option Length: variable When suboption length is zero, this sub-option type indicates that the MN does not wish to continue compression at the New-Router. Thus, the Previous-Router MUST NOT send any state information to the New-Router. When the length is non-zero, the MN includes a list of CIDs for which it does not wish to have header compression. In response to this suboption, the New-Router MUST generate a SHACK message with suboption 8 defined below if it has the required compression context. If the New-Router does not possess the state, and there is valid compression context at the Previous-Router, the Previous-Router MUST include suboption 8 defined below in the SHREP message. For header compression state transfer purposes from the Previous-Router to the New-Router, the following sub-options are valid. Sub-option Type: 7 Sub-option Length: variable This sub-option type includes the necessary state for the New-Router to "carry-over" header compression, and is in response to sub-option type 5 in the BU message. The sub-option data field consists of the following tuple [CID, CPT, Filter, Header Compression State variables]. For a particular CPT, the size of header compression state variables field is fixed. There can be more than one such tuple as a part of this sub-option. In addition to this sub-option, the Previous-Router MAY include a sub- option specifically for the MN for acknowledging any applicable header compression sub-option request. The following sub-option may originate from either the New-Router or the Previous-Router, depending on the availability of the appropriate header compression context. Sub-option Type: 8 Sub-option Length: 0 This sub-option type indicates that the router understands that the MN does not wish to continue header compression at the New-Router. The router possessing the header compression state MAY perform garbage collection after CONTEXT_SAVE_TIME defined in [2]. Koodli, Tiwari, Perkins Expires 13 January 2001 [Page 7] Internet Draft Header Compression State Relocation 13 July 2000 For header compression state transfer purposes from the New-Router to the MN, the following sub-options are valid. Sub-option Type: 9 Sub-option Length: variable When the suboption length is zero, this sub-option type indicates to the MN that its request to continue header compression at the New-Router was accepted, and that the MN may ensue sending compressed packets. When the suboption length is non-zero, then this suboption indicates to the MN that its request was accepted with the new CID(s) outlined as [Old-CID, New-CID] tuple(s) in the suboption data. Sub-option Type: 10 Sub-option Length: variable This sub-option indicates that the requested CPT is not supported and a matching [CID, New-CPT] tuple is included in the sub-option data field. The following sub-option (sub-option 11) can originate either at the New-Router or at the Previous-Router. Sub-option Type: 11 Sub-option Length: variable This sub-option indicates that there was an error in transferring state from the Previous-Router to the New-Router, and the error code, followed by error data is included in the sub-option data field. The following error codes are currently defined: Code: 00 Data: [CID, New-CPT] tuple(s) Meaning: Existing CPT in use. This code indicates that the requested CPT is in use and New-CPT(s) are outlined as [CID, New-CPT] tuple(s) in the Data field. Code: 01 Data: None Koodli, Tiwari, Perkins Expires 13 January 2001 [Page 8] Internet Draft Header Compression State Relocation 13 July 2000 Meaning: No resources. The new router does not have the resources required to set up a header compression state for this MN. The MN MAY start sending full headers in this case, and relinquish compression, or it may re-negotiate with the New-Router. Code: 02 Data: Details Meaning: Wrong format of sub-option. If the New-Router or the Previous-Router do not understand the format of a particular sub-option, they SHOULD send the sub-option with this code, and the data part MAY contain the details of the sub-option which caused this error. Code: 03 Data: Details Meaning: Administratively prohibited. The new router or the previous router does not support a particular sub-option due to administrative reasons. The data part consists of the details of the sub-option which caused this error. Code: 04 Data: None Meaning: Timed Out. If a sub-option requires creation of a state at the new router, before a SHREQ message is sent to the previous router, the new router MUST time out and remove that state, so that lost SHREQ messages between the new router and the previous router do not lead to a zombie state at the new router. The new router MUST also send a SHACK message to the MN with this error code in this case. Code: 05 Data: Details Koodli, Tiwari, Perkins Expires 13 January 2001 [Page 9] Internet Draft Header Compression State Relocation 13 July 2000 Meaning: Reason Unspecified. The data part MAY contain details of sub-options which led to this error. Code: 06 Data: Details Meaning: Context not available. This might happen because the context has already been removed at the previous router and the new router, in the MCNA case. The new router MUST remove the state pushed by the previous router after a timeout if the MN does not come up within that time. 5. Considerations 5.1. MN Considerations After sending the SHIN message, the MN MUST either wait for SHIN_WAIT_TIME for the SHACK message or send full headers until it receives a SHACK message from the New Router. When the required state is available at the New-Router, it may start sending compressed packets to the MN even before it receives a SHIN message from the MN. If this happens, then the MN may resume header compression without having to wait for the SHACK message to arrive from the New-Router. The MN MUST stop sending compressed packets over the previous link either after it receives a SHACK message or a compressed packet from the New-Router. 5.2. New-Router Considerations In response to the arrival of a SHIN message containing header compression sub-options to it only, the New-Router MUST include those sub-options in the SHREQ message to the Previous-Router when the header compression context is not present. When it receives a SHREP message with suitable sub-options and the header compression context, the New-Router MUST activate the header compression context. The New-Router MUST inform the MN about the availability of a compression state as soon as possible, either by sending an explicit SHACK message or by forwarding compressed packets to the mobile node. If the New-Router has a compression state for the MN when it receives a SHIN message, it SHOULD reply to the message immediately by sending a SHACK message. When the New-Router establishes the compression state for the MN, it can potentially recieve packets for the MN either from correspondent nodes, or from the Previous Router. The New Router SHOULD Koodli, Tiwari, Perkins Expires 13 January 2001 [Page 10] Internet Draft Header Compression State Relocation 13 July 2000 maintain the context needed to compress the packets recieved from the Previous-Router, and MAY provide indication to the MN regarding the path (i.e., tunneled through the Previous-Router or directly received by the New-Router) traversed by a particular packet. 5.3. Previous Router Considerations The Previous-Router SHOULD attempt to forward the compression state corresponding to an MN undergoing handoff as soon as it can, to the New-Router. The packets destined to the MN, which reach the Previous-Router after the SHREP message has been sent, are encapsulated and forwarded to the New Router. The previous router should not apply any compression to these packets. The Previous-Router MUST replicate the sub-options supplied by the New-Router in the SHREQ message in its response message (SHREP). 6. Security Considerations All context transfer for header compression SHOULD be secured by use of the Authentication suboption [2], or for some circumstances IPv6 Authentication Header [1]. Thus, no additional vulnerability has been introduced. 7. IANA Considerations The Compression Profile Type (CPT) defined in this document requires IANA Type numbers. References [1] S. Kent and R. Atkinson. IP Authentication Header. Request for Comments (Proposed Standard) 2402, Internet Engineering Task Force, November 1998. [2] R. Koodli and C. Perkins. A Framework for Smooth Handovers with Mobile IPv6 (work in progress). Internet Draft, Internet Engineering Task Force. draft-ietf-koodli-smoothv6-00.txt, July 2000. Addresses The working group can be contacted via the current chairs: Koodli, Tiwari, Perkins Expires 13 January 2001 [Page 11] Internet Draft Header Compression State Relocation 13 July 2000 Basavaraj Patil Phil Roberts Nokia Corporation Motorola 6000 Connection Drive 1501 West Shure Drive M/S M8-540 Irving, Texas 75039 Arlington Heights, IL 60004 USA USA Phone: +1 972-894-6709 Phone: +1 847-632-3148 Fax : +1 972-894-5349 EMail: Basavaraj.Patil@nokia.com EMail: QA3445@email.mot.com Questions about this memo can also be directed to the authors: Rajeev Koodli Manish Tiwari Communications Systems Lab Communications Systems Lab Nokia Research Center Nokia Research Center 313 Fairchild Drive 313 Fairchild Drive Mountain View, California 94043 Mountain View, California 94043 USA USA Phone: +1-650 625-2359 Phone: +1-650 625-2610 EMail: rajeev.koodli@nokia.com EMail: manisht@iprg.nokia.com Fax: +1 650 625-2502 Fax: +1 650 625-2502 Charles E. Perkins Communications Systems Lab Nokia Research Center 313 Fairchild Drive Mountain View, California 94043 USA Phone: +1-650 625-2986 EMail: charliep@iprg.nokia.com Fax: +1 650 625-2502 Koodli, Tiwari, Perkins Expires 13 January 2001 [Page 12]