Internet DRAFT - draft-koodli-seamoby-hc-relocate
draft-koodli-seamoby-hc-relocate
Seamoby Working Group Rajeev Koodli
INTERNET DRAFT Charles E. Perkins
20 July 2001 Communication Systems Laboratory
Nokia Research Center
Manish Tiwari
Juniper Networks
Context Relocation for Seamless Header Compression in IP Networks
draft-koodli-seamoby-hc-relocate-01.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 seamoby Working
Group of the Internet Engineering Task Force (IETF). Comments should be
submitted to the seamoby@cdma2000:org mailing list.
Distribution of this memo is unlimited.
Abstract
In networks with bandwidth constraints, 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 handovers 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 options for the handover ICMP
messages defined for IPv6 and suboptions for the destination options
used by mobile nodes to request smooth handovers.
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page i]
Internet Draft Header Compression Context Relocation 20 July 2001
Contents
Status of This Memo i
Abstract i
1. Introduction 2
2. Terminology 3
3. Compression Profiles and Compression Profile Types 4
3.1. Handover Uplink and Downlink CPT . . . . . . . . . . . . 6
3.2. New-IP-Address-Uplink Extension . . . . . . . . . . . . . 6
3.3. Tunneling Extension for Downlink . . . . . . . . . . . . 8
3.3.1. Extension for packets tunneled to MN's new IP
Address . . . . . . . . . . . . . . . . . . . . . 8
3.3.2. Handling packets tunneled to MN's New Router . . 9
4. Compression Context Transfer with Handover signaling 10
5. Header Compression ICMP Option Processing Rules at Routers 11
6. Message Formats 12
6.1. Header Compression Context Transfer Request ICMP Option . 12
6.2. Header Compression Context Transfer Reply ICMP Option . . 13
6.3. Header Compression Context Transfer Request SHIN Suboption 14
6.4. Header Compression Context Transfer SHAK Suboption . . . 14
7. Configurable Parameters 15
8. Security Considerations 15
9. IANA Considerations 15
A. Response Codes in the SHAK message 16
A.1. Compression Profile Unavailable Acknowledgment Code Format 16
A.2. Header Compression Context Transfer Error SHAK Suboption 16
A.3. Resource Unavailable Error Data Format . . . . . . . . . 17
A.4. Bad Format Error Data Format . . . . . . . . . . . . . . 17
A.5. Context Unavailable Error Data Format . . . . . . . . . . 18
B. Requesting Header Compression without Handover 19
Addresses 19
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page 1]
Internet Draft Header Compression Context Relocation 20 July 2001
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 in the future, perhaps
application layers (such as http). 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 router as well) due to mobility
of the user. This device mobility then requires 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 handover, the
Previous Router maintains a compression context for both the downlink
and uplink packets. When handover takes place, for seamless operation,
the New Router must have appropriate compression state. When it does
not possess this state, some uplink packets can get discarded while
downlink packets are sent uncompressed until context is re-established
at the New Router.
Observe that context re-establishment is always an alternative to
context relocation. The crucial distinction is that of performance
benefits that context relocation, if engineered well, could offer to
transport layers. At the same time, it is extremely important to
note that the ability to establish packet forwarding through route
establishment is the basic necessity without which ``treating packets
with feature contexts'' is not feasible. When contexts are not present,
a transport layer can always re-establish them. It, however, cannot
establish basic network layer connectivity, which is handled by the IP
layer mobility process. Hence, any context transfer must not inhibit
the (mobility) process from expeditiously establishing the connectivity.
It should however, be capable of making use of the mobility process to
effect ``fast context transfers''.
This document specifies a mechanism to relocate header compression
state from a Previous Router to a New Router in order to achieve
seamless operation of header compression during handovers. For this
purpose, we make use of the new seamless handover options defined in [4]
and specific options for header compression defined in this document.
As defined here, header compression contexts are created or destroyed
always as a result of application events. In particular, a fresh
compression context is never created except by some event that can be
associated with a change in state related to some application. This
means that new header compression state is typically not created nor is
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page 2]
Internet Draft Header Compression Context Relocation 20 July 2001
| +------------+
+-+ <.... | Previous | <==== < ====>: Uncompressed
| | ---------- | Router | ------ > ----\ packet stream
+-+ ....> | (Prtr) | ====> < \ ....>: Compressed
MN | | \ packet stream
| +------------+ +---------------+
| | IP | Correspondent |
| | Network | Node(CN) |
V | +---------------+
| /
| +------------+ /
+-+ <==== | New | <==== < /
| | ---------- | Router | ------ > ----/
+-+ ....>. | (Nrtr) | <
MN .+------------+
.
.
.
.
V discard
Figure 1: Effect of Handover on Header Compression
destroyed as part of a context transfer. We use this observation to
effect a substantial simplification for the control structures needed
during handovers, at the cost of the need for additional specification
for the creation and destruction of header compression contexts. The
specification for the latter protocol operations is outside the scope
of this document; they need to be closely aligned with results to be
obtained in the "Robust Header Compression" [rohc] working group.
Furthermore, such protocol specifications should be associated with
an appropriate programming interface in order to be effectively used
by applications. While we make this distinction, we do explain how
compression context instantiation and destruction can be carried out
using our proposal in the appendix.
2. Terminology
We define the following terms for use in this document.
HAck Message
The ICMP Handover Acknowledgment message, sent from the
New Router to the Previous Router, and defined in [6].
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page 3]
Internet Draft Header Compression Context Relocation 20 July 2001
HI Message
The ICMP Handover Initiate message, sent from the
Previous Router to the New Router, and defined in [6].
New Router (Nrtr)
The router to which the MN attaches after handover
Previous Router (Prtr)
The MN's default router prior to handover
New access address (Naddr) The access IP address of the Mobile
Node (MN) when attached to the link served by the New
Router
Previous access address (Paddr)
The access IP Address of the Mobile Node (MN) when
attached to the link served by the Previous Router
Context Identifier (CID)
A 16-bit unsigned integer that identifies a particular
header compression context.
Compression Profile Type (CPT)
A 16-bit unsigned integer that indicates the type of
header compression (see section 3).
SHAK Message
Any IPv6 message received by the mobile node containing
the SHAK Destination Option defined in [4].
SHIN Message
Any IPv6 message sent by the mobile node containing the
SHIN Destination Option defined in [4].
SHREP Message
The ICMP Smooth Handover Reply message, sent between
access routers, and defined in [4].
SHREQ Message
The ICMP Smooth Handover Request message, sent between
access routers, and defined in [4].
3. Compression Profiles and Compression Profile Types
A compression profile specifies the structure of the state variables
which are used for header compression. The Compression Profile Type
(CPT) provides a way to indicate which compression profile is in use
for a particular packet stream. For seamless header compression, the
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page 4]
Internet Draft Header Compression Context Relocation 20 July 2001
compression engines located at separate network nodes must agree on the
structure of these state variables. When the target compression engine
receives the compression state from the appropriate handover message,
it will instantiate an instance of a compression state machine for the
packet stream in question. That new state machine will be created with
the values of the state variables taken from the header compression
option contained in the handover message, and interpreted according to
the data structure and format selected by the CPT.
The CPT defined here maps, one-to-one, to the ``Profile'' defined
in [1]. However, a Profile in [1] is embedded within a packet type,
e.g., an IR packet. A CPT on the other hand, is visible to the context
transfer code for demultiplexing the contexts.
Possible types for the CPT are:
0: reserved
1: IPv4 header compression
2: IPv6 header compression
3: IPv4/UDP/RTP header compression
4: IPv6/UDP/RTP header compression
5: IPv4/TCP header compression
6: IPv6/TCP header compression
Each CPT value is allocated by IANA. The size of each of compression
profile is fixed. A value of zero has special meaning in suboption
processing as outlined in Section 6. Note that CPTs may be used in
options and suboptions specified as part of protocols outside the scope
of this document.
We specify the Compression Profiles for uplink (from the MN towards
the New Router) packet streams as well as for downlink (packets destined
towards the MN) during handover. These Compression Profiles, as we
mentioned at the begining of this section, specify the compression
context for the particular CPT. We also specify some extensions to
convey the New IP address of the MN and to handle the possible tunneling
of packets from the Previous Router to the MN.
In the following, we provide the definitions for IPv6/UDP/RTP CPT.
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page 5]
Internet Draft Header Compression Context Relocation 20 July 2001
3.1. Handover Uplink and Downlink CPT
When the MN changes its default router, typically its IP address
changes. The New Router needs to know the new IP address in order to
correctly decompress the packets arriving from the MN. We propose that
the MN supply this information once it definitively establishes its new
IP address. This update is sent as an extension in any appropriate
compressed packet similar to other extensions currently defined in [1].
The Previous Router includes an IR packet containing both the static
chain and the dynamic chain as part of the Compression Profile. This
IR packet is included as an option as shown in Figure 2. For details
regarding the individual fields in the IR packet, see [1], section
5.7.7. The CPT type is set to CPT-v6-RTP.
Two new [rohc] Profiles, IR-CT-U and IR-CT-D, are defined to
distinguish these contexts from those normally sent by a mobile node.
The `D' bit MUST be set to one to include the dynamic chain, which
needs to be padded appropriately depnding on the entries in the Generic
Extension Header list. Note that the payload only carries the UDP and
RTP static and dynamic header chains. The payload length field is
inferred from the link layer in the compressed packets as in [1].
When the MN undergoes handover and acquires a new IP address, it MUST
send a new extension specified below. This packet contains the new IP
address of the MN, and other possible extensions defined in Section
5.7.5 in [1].
3.2. New-IP-Address-Uplink Extension
When the compressor module in the MN determines that only its source
address is different for an existing packet stream, it sends this
extension in any appropriate packet. This particular extension is
currently not defined in [1]. We show the existing format in Figure 3
and identify our extension.
TC The IPv6 Traffic Class bit. If set, the extension
includes the new absolute value
HL The IPv6 Hop Limit bit. If set, the extension includes
the new absolute value
DF Don't Fragment bit. Recast to New IP address extension.
If set, the extension includes the new absolute value
NH The IPv6 Next Header bit. If set, the extension includes
the new absolute value
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page 6]
Internet Draft Header Compression Context Relocation 20 July 2001
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Type (TBD) ! Length ! CPT-v6-RTP !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Add-CID Octet |1 1 1 1 1 1 0 1| 0-2 octets of CID info |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Profile=IR-CT-U| CRC | Length | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ``Static Chain'' |
| [version field, flow label, next header, |
~ previous IP address of the MN, ~
| IP address of the correspondent node] | Uplink
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ context
| ``Dynamic Chain'' |
| [Traffic Class, Hop Limit, |
~ Generic Extension Header List ~
| (e.g., Home Address Destination option) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ``Paload'' |
| UDP static chain |
| UDP dynamic chain |
~ RTP static chain ~
| RTP dynamic chain |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Add-CID Octet |1 1 1 1 1 1 0 1| 0-2 octets of CID info |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Profile=IR-CT-D| CRC | Length | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ``Downlink Context'' |
| [Same fields as in Uplink Context |
~ Generic Extension Header List contains routing header ~
| for MIPv6 packets] | Downlink
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ context
Figure 2: Composition of Uplink and Downlink Contexts
IPX The IPv6 Extension Header bit. If set, the extension
includes the new absolute values of extension headers.
NBO See [1]
RND See [1]
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page 7]
Internet Draft Header Compression Context Relocation 20 July 2001
0 1 2 3 4 5 6 7
+-----+-----+-----+-----+-----+-----+-----+-----+
| 1 | 1 | S |R-TS | Tsc | I |ip=1 | rtp |
+-----+-----+-----+-----+-----+-----+-----+-----+
| TC | HL | DF=1| NH | IPX | NBO | RND | ip2 | (Inner IP header flags)
+-----+-----+-----+-----+-----+-----+-----+-----+
| |
~ Other fields conditionally present ~
| |
+-----+-----+-----+-----+-----+-----+-----+-----+
| |
~ New IP address ~
| |
+-----+-----+-----+-----+-----+-----+-----+-----+
Figure 3: New IP Address Extension
The first byte contains fields defined in [1] as-is. The Don't
Fragment (DF) bit is not applicable to IPv6. We recast this bit
to indicate ``New IP address'', which is included following other
information that may be present. Note that the MN may also send other
updates including Hop Limit, Traffic Class etc.
3.3. Tunneling Extension for Downlink
Sometimes, the Previous Router may tunnel packet to the MN. For
example, in fast handovers, the Previous Router tunnels packets either
directly to the MN's new IP address or to the New Router. In basic
mobile ip handovers, the MN may send a binding update to the Previous
Router requesting forwarding packets sent to its previous IP address.
The Previous Router then tunnels those packets to the MN's new IP
address. In the following, we provide new tunneling extensions that the
New Router uses when it receives packets from the Previous Router.
3.3.1. Extension for packets tunneled to MN's new IP Address
Observe that the New Router possesses (or should possess) the context
state necessary for compressing packets destined to the MN's previous IP
address. When it receives a packet tunneled to the MN's new IP address,
it must send the information pertaining to the outer IP header to the MN
since the latter does not possess the context for it. The extension in
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page 8]
Internet Draft Header Compression Context Relocation 20 July 2001
Figure 4 allows the New Router to send only a subset of the outer header
fields (Traffic Class and Hop Limit fields), thus substantially reducing
the overhead.
0 1 2 3 4 5 6 7
+-----+-----+-----+-----+-----+-----+-----+-----+
| 1 | 1 | S |R-TS | Tsc | I |ip=1 | rtp |
+-----+-----+-----+-----+-----+-----+-----+-----+
| TC | HL |DF=0 | NH | IPX | NBO | RND|ip2=1| (Inner IP header flags)
+-----+-----+-----+-----+-----+-----+-----+-----+
|TC=1 |HL=1 |DF=0 | NH | IPX | NBO | RND | 0 | (Outer IP header flags)
+-----+-----+-----+-----+-----+-----+-----+-----+
| Other fields that may be present |
~ (Seq Num, Timestamp, Inner IP header fields) ~
| |
+-----+-----+-----+-----+-----+-----+-----+-----+
| Traffic Class field for the outer IP header |
+-----+-----+-----+-----+-----+-----+-----+-----+
| Hop Limit field for the outer IP header |
+-----+-----+-----+-----+-----+-----+-----+-----+
Figure 4: Tunneling to New IP Address Extension
When the MN receives the above extension, it recognizes the presence
of a tunneling extension for a packet stream that did not include
encapsulation before. The compression module infers the rest of the
fields. The source IP address is that of its Previous Router, the
destination address is its own new IP address, the Next Header is IPv6,
Vesrion field is 6 and the flow label is assumed to be zero. Using the
inferred values as well as the received values, the compression module
constructs the outer IP header. The inner IP header is constructed
based on the context present and optionally the values received in the
extension header.
3.3.2. Handling packets tunneled to MN's New Router
The Previous Router may tunnel packets destined for the MN's previous
IP address to the MN's New Router, which in turn forwards the packet
to the MN. In such a case, the New Router processes the inner packet
using the context present and sends the compressed packet alone (without
any encapsulation extensions) to the MN (perhaps with some extensions).
Thus, there is no separate extension necessary for this case.
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page 9]
Internet Draft Header Compression Context Relocation 20 July 2001
4. Compression Context Transfer with Handover signaling
In this section, we provide an illustration of how the compression
context defined in the previous section can be carried along-with
handover signaling. We note that the compression contexts can be
carried in other forms of messages as well, e.g., they could be carried
in a Paging Message [3]. We use fast handover signaling for Mobile IPv6
for our illustration here.
The Previous Router, in response to either the network-initiated
handover or the mobile-initiated handover, sends a HI message to the
New Router. In this HI message, it includes the Unsolicited Seamless
Handover Reply (U-SHREP) option defined in [4], which carries the
appropriate compression contexts. The actual contexts that are carried
could depend on the knowledge that the Previous Router possesses
regarding the compression capabilities of the New Router. We anticipate
however, that some well-known CPTs would be supported by many different
implementations. The Unsolicited SHREP option carries an authentication
token for the New Router to verify prior to authorizing the feature
contexts. This token uses the session key that gets established when
the MN first connects to the Previous Router. Alternative to carrying
the token, the Unsolicited SHREP message could instead carry the session
key itself as one of the sub options. In any case, the network policy
may require the New Router to authenticate the MN prior to granting
network access as well as feature contexts. In such a case, the MN has
to respond to an appropriate challenege from the New Router providing
its own token that must match the one that the New Router possesses.
See [3] for how this is performed for IP Paging. Once authorized
(whenever enforced), the New Router makes the compression contexts
available to the MN. The New Router SHOULD include a SHREP-Ack option in
the HAck message to the Previous Router.
Sometimes the transfer of compression contexts prior to the MN's
arrival at the New Router may not be possible. In such a case, the
MN may request the New Router to fetch the contexts from the Previous
Router. We provide the Seamless Handover Initiate (SHIN) option for the
MN to request specific contexts, or all the contexts, which we assume to
be the default case. This SHIN option can be embedded in the network
authentication message, or it can also be sent along-with the Binding
Update message. In response to the SHIN message, recognizing that the
required state is not available, the New Router transmits a Seamless
Handover Request (SHREQ) message with compression sub options. And, the
Previous Router responds back with a Seamless Handover Reply (SHREP)
message containing the actual QoS context information. See [4] for the
details.
It is worth noting that the New Router does not always possess the
knowledge of MN's previous router and its previous IP address which
are both needed in order to fetch the contexts. For instance, due to
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page 10]
Internet Draft Header Compression Context Relocation 20 July 2001
unfavorable terrain conditions, the MN may lose link connectivity with
its current AR and establish a new link with a new AR. In such a case,
the MN supplies the required information in the SHIN option, which in
the default case contains the Previous Router address, MN's Previous
IP Address and an optional authentication token. Since there is no
established means for a MN to be certain in all the handover cases that
the New Router has knowledge of its Previous Router and its Previous
IP address, we propose including the SHIN option in all the handover
scenarios. When the context is already present at the New Router,
SHIN facilitates explicit authorization of feature contexts. When the
context is not present, it triggers reactive context transfer.
5. Header Compression ICMP Option Processing Rules at Routers
This section specifies certain detailed handling by the previous and
new access routers (Prtr and Nrtr respectively) for header compression
options.
When Prtr receives a SHREQ message, it MUST verify the Authentication
Data of the SHREQ according to its security association with the mobile
node. Furthermore, Prtr MUST check the IPsec Authentication Header
(AH) included in the SHREQ message by Nrtr, the originator of the SHREQ
message. If the authentications are valid, Prtr MUST subsequently
return the requested header compression state in options in a Seamless
Handover Reply (SHREP) message sent to Nrtr.
The new access router (Nrtr) obeys the following:
1. If the required header compression state for the MN is available,
the New Router MUST make the contexts available to the MN as
soon as the authorization (when present) is successful. It MAY
indicate this to the MN through an appropriate sub option in the
Seamless Handover Acknowledgment (SHAK) message. Instead, it can
simply start sending the compressed packets.
2. If the compression state requested by a mobile node is not
already available from a HI message received from the Previous
Router, the New Router MUST formulate the corresponding options
in an ICMP Seamless Handover Request (SHREQ) message to obtain
the requested header compression state options from the Previous
Router.
After sending SHREP, Prtr MUST maintain the header compression
contexts for HC_CONTEXT_SAVE_TIME in order to recover from lost
SHREP messages. Prtr SHOULD also maintain the contexts until
HC_CONTEXT_PURGE_TIME. After that time, Prtr MUST purge all context
associated to the mobile node.
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page 11]
Internet Draft Header Compression Context Relocation 20 July 2001
6. Message Formats
Header compression options and suboptions are defined for use in
several different protocol message types:
- as an option or a sub option to a HI, HAck, SHREQ, or SHREP
ICMPv6 messages.
- as a suboption of an IPv6 destination option.
- as an extension to a Mobile IPv4 registration request to be
processed by a Foreign Agent.
- as an extension to some other seamless handover message to be
defined in the future for mobile nodes using IPv4.
The general format for the options is the same in all cases, as shown
in Figure 5.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| HCOpt Type | HCOpt Len | HCOpt Data...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5: Header Compression Options, Suboptions,
and Extensions Format
6.1. Header Compression Context Transfer Request ICMP Option
The HCReq suboption is sent by Nrtr to Previous Router in the SHREQ
message to obtain header compression context on behalf of the mobile
node.
The New Router MAY request all of the relevant header compression
context associated with the mobile node, by sending HCReq with suboption
length equal to zero.
Suboption Type: HCReq-ICMP
Suboption Length: Variable
The processing of this ICMP option at the Previous Router depends on
the availability of required header compression state, and is done in
accordance with requirements outlined in Section 5. The New Router MAY
respond with the SHAK suboption defined in section 6.4. The New Router,
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page 12]
Internet Draft Header Compression Context Relocation 20 July 2001
possibly using the information sent by the Previous Router, MAY include
suboption HCErr (defined below) in the SHAK message.
6.2. Header Compression Context Transfer Reply ICMP Option
The Header Compression Context Transfer Reply suboption (HCRep)
suboption is defined for Prtr to transfer state to Nrtr in the HI or
SHREP ICMP messages. The HCRep suboption includes the necessary state
for Nrtr to "carry-over" header compression.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CID | CPT |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Header Compression State Variables ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 6: Header Compression Reply Data Elements
The Option Type and Option Length fields of the HCRep ICMP option are
followed by blocks consisting of [CID, CPT, Header Compression State
variables] tuple(s). Each block has the format illustrated in figure 6.
CID Compression Context Identifier
CPT Compression Profile Type
Header Compression State Variables
Values for header compression state variables, in the
format defined by the CPT
The CID and CPT are 16-bit fields. For a particular CPT, the size of
header compression state variables field is fixed; this allows inclusion
of multiple tuples without requiring a length indicator.
If the suboption length is zero, it indicates that Prtr cannot supply
the required header compression state to Nrtr. In case of errors, Prtr
SHOULD include the HCErr suboption defined in section A.2 in the SHREP
message.
When the value of CPT is zero in a tuple, it indicates that the
Previous Router cannot supply state information for the associated
context identified by the CID. In this case also, Prtr SHOULD include
suboption HCErr (e.g., to indicate that suboption HCReq was incorrectly
formatted) in the packet.
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page 13]
Internet Draft Header Compression Context Relocation 20 July 2001
The processing of this suboption depends on the availability of
required header compression state, and is done in accordance with
requirements outlined in subsection 5.
6.3. Header Compression Context Transfer Request SHIN Suboption
Note that the default operation of the SHIN message is to include
request for all the contexts including the compression contexts. When
the mobile node wishes to specifically continue header compression at
Nrtr, it sends the Header Compression Context Transfer Request (HCReq)
suboption in a message addressed to Nrtr containing a SHIN Destination
Option.
Suboption Type: HCReq-SHIN
Suboption Length: Variable
When the HCReq is present in a SHIN message and the suboption length
is zero (the default value), this suboption indicates the MN's desire to
continue with the same header compression features as prior to handover.
6.4. Header Compression Context Transfer SHAK Suboption
The Header Compression Context Transfer Acknowledge suboption (HCAck)
is defined for inclusion in the SHAK IPv6 Destination Option, and is
used by Nrtr to respond to the mobile node.
Suboption Type: HCAck-SHAK
Suboption Length: Variable
When the suboption length is zero (the default value), this suboption
indicates that MN's request to continue with header compression was
accepted at Nrtr without any modifications to the context parameters.
When the suboption length is non-zero, the HCAck data has the format
shown in Figure 7.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| HCAck Code | HCAck Len | HCAck Data...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 7: Header Compression Context Transfer SHAK
Suboption (HCAck) format
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page 14]
Internet Draft Header Compression Context Relocation 20 July 2001
Each acknowledgment code specifies the format of the HCAck data
field, which contains the data associated with the acknowledgment. The
currently defined acknowledgment code is specified in the appendix.
7. Configurable Parameters
The nodes supporting mobility defined in this document SHOULD be able
to configure the parameters outlined below as well those in [5]. Each
table entry contains the name of the parameter and the default value.
Parameter Name Default Value
-------------------------------------------------
HC_CONTEXT_SAVE_TIME 2 * SHREQ_REXMIT_TIME
HC_CONTEXT_PURGE_TIME 5 * SHREQ_REXMIT_TIME
SHIN_WAIT_TIME 1000 milliseconds
8. Security Considerations
All context transfer for header compression MUST be secured by use of
the Authentication suboption [5], or the IPv6 Authentication Header [2].
Thus, no additional vulnerability has been introduced.
9. IANA Considerations
The Compression Profile Type (CPT) defined in this document requires
IANA Type numbers.
References
[1] C. Bormann and et al. RObust Header Compression (ROHC):
Framework and four profiles: RTP, UDP, ESP, and uncompressed
(work in progress). Technical report, Internet Engineering Task
Force.
draft-ietf-rohc-rtp-09.txt, 2001.
[2] S. Kent and R. Atkinson. IP Authentication Header. Request for
Comments (Proposed Standard) 2402, Internet Engineering Task
Force, November 1998.
[3] R. Koodli and Malinen J. Idle Mode Handover Support in IPv6
Networks(work in progress). Internet Draft, Internet Engineering
Task Force.
draft-koodli-seamoby-idle-mode-ct-00.txt, November 2000.
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page 15]
Internet Draft Header Compression Context Relocation 20 July 2001
[4] R. Koodli and C. Perkins. A Context Transfer Framework for
Seamless Mobility (work in progress). Internet Draft, Internet
Engineering Task Force.
draft-koodli-seamoby-ctv6-00.txt, November 2000.
[5] R. Koodli and C. Perkins. A Framework for Smooth Handovers
with Mobile IPv6 (work in progress). Internet Draft, Internet
Engineering Task Force.
draft-koodli-mobileip-smoothv6-01.txt, November 2000.
[6] G. Tsirtsis and et al. Fast Handovers for Mobile IPv6(work in
progress). Internet Draft, Internet Engineering Task Force.
draft-designteam-fast-mipv6-01.txt, February 2001.
A. Response Codes in the SHAK message
A.1. Compression Profile Unavailable Acknowledgment Code Format
The HC Acknowledgment Code block for CPT_UNAVAILABLE is as shown in
figure 8
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| HCAck Code=2 | Length | [CID,New-CID] pairs...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 8: CPT UNAVAILABLE Acknowledgment Data format
Code: 02 (CPT_UNAVAILABLE)
Length: Variable
The data for the CPT_UNAVAILABLE acknowledgment code consists
of [CID, New-CPT] tuple(s), one for each requested CPT that was
unavailable. When the value of CPT is zero in a tuple, it indicates
that the associated context identified by the CID was not activated. In
this case, Nrtr MAY include suboption HCErr with an appropriate error
code indicating the reason for failure to activate the context.
A.2. Header Compression Context Transfer Error SHAK Suboption
The Header Compression Context Transfer SHAK Error Suboption (HCErr)
allows the access routers to supply error codes when activation fails
for one or more header compression contexts. The HCErr data format is
shown in Figure 9.
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page 16]
Internet Draft Header Compression Context Relocation 20 July 2001
Suboption Type: HCErr-SHAK
Suboption Length: Variable
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| HCErr Code | HCErr Length | HCErr Error Code Blocks...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 9: Header Compression Context Transfer Error format
Each error code specifies the format of the HCErr data field, which
contains the data associated with the error condition. The currently
defined error codes are specified in the following sections.
A.3. Resource Unavailable Error Data Format
The HC Error Code block for RESOURCE_UNAVAILABLE is as shown in
figure 10
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| HCErr Code=1 | Length = 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 10: RESOURCE UNAVAILABLE error format
Code: 01 (RESOURCE_UNAVAILABLE)
Length: 0
The RESOURCE_UNAVAILABLE error has no associated error data. This
error is returned when no resources are available. This code indicates
that Nrtr does not have the resources required to set up header
compression context(s) for this MN. The MN MUST deactivate the previous
compression state. It MAY either start sending full headers in this
case, or it may re-negotiate with Nrtr to activate a new compression
profile.
A.4. Bad Format Error Data Format
The HC Error Code block for BAD_FORMAT is as shown in figure 11
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page 17]
Internet Draft Header Compression Context Relocation 20 July 2001
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| HCErr Code=2 | Length | Offending Suboption ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 11: BAD FORMAT error format
Code: 02 (BAD_FORMAT)
Length: Variable
This error indicates that the context transfer request was poorly
formatted. If a router does not understand the format of a particular
suboption, it sends HCErr with this code; and the data part contains the
details of the suboption which caused this error. The Previous Router
SHOULD send this suboption to Nrtr whenever appropriate, and Nrtr MAY
send this suboption to the MN.
A.5. Context Unavailable Error Data Format
The HC Error Code block for CONTEXT_UNAVAILABLE is as shown in
figure 12
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| HCErr Code=3 | Length | Unavailable CIDs ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 12: CONTEXT UNAVAILABLE error format
Code: 03 (CONTEXT_UNAVAILABLE)
Length: Variable
The HCErr data for this code contains the CIDs representing contexts
which are not available for transfer. This might happen because
the context has already been removed at both the routers in the
fast handover case. Note that Nrtr MAY remove the state supplied
by Prtr if Nrtr does not receive a SHIN message from the MN within
HC_CONTEXT_SAVE_TIME.
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page 18]
Internet Draft Header Compression Context Relocation 20 July 2001
B. Requesting Header Compression without Handover
In this section we provide a simple extension to the HCReq suboption
for the MN to request header compression features independent of
handover. The following extensions are destination suboptions that the
MN can use when using explicit signaling to request header compression
support. The following extensions can also be used along with
well-defined compression messages, such as a Full Header packet, with
appropriate modifications to those messages.
Recall that the suboption length field in the HCReq message for
handover purposes is zero. When this suboption length is non-zero,
the MN supplies [CID, CPT] tuple(s) as parameters. Depending on the
value of CPT, there are two cases. When CPT is non-zero in a tuple,
it indicates that the MN wishes to make use of header compression for
the context identified by CID using the specified CPT. The network node
implementing header compression may then reply back using HCAck or HCErr
suboptions. All of these suboptions can be sent piggy-backed to a
well-defined compression message, or as destination option in explicit
signaling messages.
When the value of CPT is zero in a tuple, it indicates that the MN
does not wish to continue header compression for the context identified
by the associated CID. In this way, the MN can dynamically indicate its
intention to tear down an existing compression context. When CPT is
non-zero in a tuple, but its value is other than the existing value,
it indicates that the MN wishes to continue header compression for the
context identified by CID, but with a new CPT. In this way, the MN can
dynamically indicate its intention to change the compression profile of
an existing context. In both of these re-negotiation cases, the network
node implementing header compression may then respond using HCAck or
HCErr suboptions. Any of these suboptions can be sent piggy-backed to
a well-defined compression message, or as a destination option in an
explicit signaling message.
The HCReq sub option itself may be sent in response to an
application-driven event, such as a socket system call.
Addresses
Questions about this memo can be directed to the authors:
Koodli, Tiwari, Perkins Expires 20 January 2002 [Page 19]
Internet Draft Header Compression Context Relocation 20 July 2001
Rajeev Koodli Manish Tiwari
Communications Systems Lab 1194 North Mathilda Avenue
Nokia Research Center Sunnyvale, California 95089
313 Fairchild Drive USA
Mountain View, California 94043 EMail: mtiwari@juniper.net
USA
Phone: +1-650 625-2359
EMail: rajeev.koodli@nokia.com
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 20 January 2002 [Page 20]