| < draft-perkins-manet-aodvqos-00.txt | draft-perkins-manet-aodvqos-01.txt > | |||
|---|---|---|---|---|
| Mobile Ad Hoc Networking Working Group Charles E. Perkins | Mobile Ad Hoc Networking Working Group Charles E. Perkins | |||
| INTERNET DRAFT Nokia Research Center | INTERNET DRAFT Nokia Research Center | |||
| 14 November 2001 Elizabeth M. Belding-Royer | 14 October 2003 Elizabeth M. Belding-Royer | |||
| University of California, Santa Barbara | University of California, Santa Barbara | |||
| Quality of Service for Ad hoc On-Demand Distance Vector Routing | Quality of Service for Ad hoc On-Demand Distance Vector Routing | |||
| draft-perkins-manet-aodvqos-00.txt | draft-perkins-manet-aodvqos-01.txt | |||
| Status of This Memo | Status of This Memo | |||
| This document is a submission by the Mobile Ad Hoc Networking Working | This document is a submission by the Mobile Ad Hoc Networking Working | |||
| Group of the Internet Engineering Task Force (IETF). Comments should | Group of the Internet Engineering Task Force (IETF). Comments should | |||
| be submitted to the manet@itd.nrl.navy.mil mailing list. | be submitted to the manet@itd.nrl.navy.mil mailing list. | |||
| Distribution of this memo is unlimited. | Distribution of this memo is unlimited. | |||
| This document is an Internet-Draft and is in full conformance with | This document is an Internet-Draft and is in full conformance with | |||
| skipping to change at page 1, line 40 ¶ | skipping to change at page 1, line 40 ¶ | |||
| The list of current Internet-Drafts can be accessed at: | The list of current Internet-Drafts can be accessed at: | |||
| http://www.ietf.org/ietf/1id-abstracts.txt | http://www.ietf.org/ietf/1id-abstracts.txt | |||
| The list of Internet-Draft Shadow Directories can be accessed at: | The list of Internet-Draft Shadow Directories can be accessed at: | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| Abstract | Abstract | |||
| The Ad hoc On-Demand Distance Vector (AODV) routing protocol is | The Ad hoc On-Demand Distance Vector (AODV) routing protocol is | |||
| intended for use by mobile nodes in an ad hoc network. It offers | intended for use by mobile nodes in an ad hoc network. It offers | |||
| quick adaptation to dynamic link conditions, low processing and | quick adaptation to dynamic link conditions, low processing and | |||
| memory overhead, low network utilization, and determines both | memory overhead, low network utilization, and determines routes | |||
| unicast and multicast routes between sources and destinations. To | between source and destination addresses. To provide quality of | |||
| provide quality of service, extensions can be added to the messages | service, extensions can be added to the messages used during route | |||
| used during route discovery. These extensions specify the service | discovery. These extensions specify the service requirements which | |||
| requirements which must be met by nodes rebroadcasting a Route | must be met by nodes rebroadcasting a Route Request or returning a | |||
| Request or returning a Route Reply for a destination. This draft | Route Reply for a destination. This draft describes how service | |||
| describes how service guarantees are met using these extensions. | partners discover routes that can satisfy QoS service conditions by | |||
| using these extensions. | ||||
| 1. Introduction | 1. Introduction | |||
| Route discovery in AODV is on-demand and follows a route | Route discovery in AODV is on-demand and follows a route | |||
| request/route reply query cycle. When a source is in need of a route | request/route reply query cycle. When a source is needs a route | |||
| to a destination, it broadcasts a Route Request (RREQ) control in | to a destination, it broadcasts a Route Request (RREQ) control in | |||
| search of a route. Nodes having a current route to the indicated | search of a route. Nodes having a current route to the indicated | |||
| destination respond by unicasting a Route Reply (RREP) to the source | destination respond by unicasting a Route Reply (RREP) to the source | |||
| node. To provide quality of service, extensions can be added to | node. To provide quality of service, extensions can be added to | |||
| these messages during the route discovery process. A node which | these messages during the route discovery process. A node which | |||
| receives a RREQ with a quality of service extension must be able to | receives a RREQ with a quality of service extension must agree to | |||
| meet that service requirement in order to either rebroadcast the RREQ | meet that service requirement in order to either rebroadcast the RREQ | |||
| (if it does not have a route to the destination) or unicast a RREP to | (if it does not have a route to the destination) or unicast a RREP to | |||
| the source. For more details on the route discovery process, please | the source. For more details on the route discovery process, please | |||
| see the AODV Internet Draft [2]. | see the AODV base specification [3]. | |||
| This document specifies extensions which can be used to ensure | In particular, this document specifies extensions which can be used | |||
| maximum delay and minimum bandwidth along a route between a source | to ensure that delay does not exceed a maximum value, or to ensure | |||
| and destination. | that a certain amount of network capacity (i.e., bandwidth) is made | |||
| available along a route between communication partners. | ||||
| This protocol specification uses conventional meanings [1] for | This protocol specification uses conventional meanings [1] for | |||
| capitalized words such as MUST, SHOULD, etc., to indicate requirement | capitalized words such as MUST, SHOULD, etc., to indicate requirement | |||
| levels for various protocol features. | levels for various protocol features. | |||
| 2. Quality of Service | 2. Quality of Service Overview | |||
| Using the extensions in this document, AODV enables mobile nodes | Using the extensions in this document, AODV enables mobile nodes | |||
| in an ad hoc network to specify, as part of a RREQ, Quality of | in an ad hoc network to specify, as part of a RREQ, Quality of | |||
| Service requirements that a route to a destination must satisfy. | Service requirements that a route to a destination must satisfy. | |||
| In particular, a RREQ MAY include a QoS Object extension (see | In particular, the RREQ MAY include a QoS Object extension (see | |||
| Section 3.2) which includes bandwidth and delay parameters. In order | Section 3) which specifies bandwidth and/or delay parameters. In | |||
| to enable accumulated measurement for end-to-end delay, AODV also | order to enable measurements to be accumulated for end-to-end delay, | |||
| provides an Maximum Permissible Delay extension (see Section 3.4). | AODV also provides an Accumulated Value extension (see Section 4.3). | |||
| Any QoS parameters that have to be measured and accumulated at each | ||||
| hop along the way can be stored along with the associated RREQ | ||||
| message. | ||||
| Every RREQ QoS extension also carries with it a "session-ID" value | ||||
| which is used to identify the particular QoS flow that will be | ||||
| established according to the parameters of the RREQ. The session-ID | ||||
| has to be stored along with the route table information associated | ||||
| with the particular flow that might be created because of the | ||||
| extended RREQ. Every flow is uniquely identified by the triplet | ||||
| including the source IP address, the destination IP address, and the | ||||
| session-ID. This places a limitation of 65,535 unique flows between | ||||
| any two nodes in an ad hoc network. | ||||
| If, after establishment of such a route, any node along the path | If, after establishment of such a route, any node along the path | |||
| detects that the requested Quality of Service parameters can no | detects that the requested Quality of Service parameters can no | |||
| longer be maintained, that node MUST originate a ICMP QOS_LOST | longer be maintained, that node MUST transmit a ICMP QOS_LOST | |||
| message back to the node which had originally requested the now | message back to the node which had originally requested the now | |||
| unavailable parameters. | unmaintainable level of service. This typically requires additional | |||
| information to be stored in each per-destination route table entry | ||||
| 3. Extensions | (see section 4.1). The ICMP QOS_LOST message identifies the broken | |||
| flow by including the session-ID value associated with the flow. | ||||
| Several extensions are needed in the routing table structure and the | ||||
| RREQ and RREP messages for supporting QoS routing. The extensions | ||||
| defined in this section conform to the format defined for extensions | ||||
| to RREQ and RREP messages as specified in [2]. We first describe the | ||||
| extensions needed for the routing table. | ||||
| 3.1. Routing Table Extensions | ||||
| The following fields are added to each route table entry | ||||
| corresponding to each destination requesting QoS. | ||||
| - Maximum Delay | ||||
| - Minimum Available Bandwidth | ||||
| - List of Sources Requesting Delay Guarantees | For QoS parameters that are affected by cumulative measures at each | |||
| intermediate node of a routing path, an extension is defined to | ||||
| enable a running total to be maintained for that measure as the RREQ | ||||
| is propagated. Each intermediate node that elects to forward a | ||||
| RREQ MUST adjust the accumulated value in the extension so that an | ||||
| accurate determination must be made. This approach is better than | ||||
| modifying the values in the QoS object directly, because it enables | ||||
| the original request to be authenticated whenever that is required. | ||||
| - List of Sources Requesting Bandwidth Guarantees | An intermediate node that can satisfy a RREQ with QoS parameters | |||
| specified typically SHOULD always rebroadcast the RREQ, even if it | ||||
| has a route to the destination. This contrasts with the situation | ||||
| with unconstrained RREQ messages, because without any need for QoS | ||||
| an intermediate is allowed to answer with an RREP message if it has | ||||
| a route to the destination. Unfortunately, the intermediate node | ||||
| is not likely to have current enough information about whether the | ||||
| remaining nodes along the path to the destination can also satisfy | ||||
| the requested QoS. Effectively, according to this specification, | ||||
| every QoS path to the destination will be ultimately approved by the | ||||
| destination itself along with every intermedate node along the path | ||||
| from the source to the destination. | ||||
| 3.2. QoS Object Format | When the destination issues the RREP message, it MUST also copy | |||
| over the QoS extension into the RREP message. Each intermediate | ||||
| node forwarding the RREP message back to the originator of the RREQ | ||||
| message also MUST copy over the QoS extension. | ||||
| The QoS information about a microflow is expected to be encoded into | In the future, if a specification is made enabling an intermediate | |||
| a standard format [3], illustrated in figure 1. The standard format | node to have reliable information about the remaining nodes along | |||
| allows both complete flexibility for specification of arbitrary | the path, then the node could issue an RREP, along with a gratuitous | |||
| values for various QoS requirements, and also allows very compact | RREP unicast towards the destination. The gratuitous RREP would | |||
| representation, especially for well-known requirements for common | then enable the remaining nodes to make the appropriate resource | |||
| applications such as voice over IP (VoIP). In this section, we | reservations that would be needed to satisfy the QoS route discovery | |||
| present the standard object format. This object format is used as | request. | |||
| the main part of the QoS Object Extension (see section 3.3). | ||||
| Reservd Sent as 0, value unused and undefined on reception | 3. QoS Object Format | |||
| QoS Profile Type | QoS information is expected to be encoded into a standard format, | |||
| If nonzero, an index for a list of QoS parameter | illustrated in figure 1. The standard format allows both complete | |||
| field definitions and default values for those | flexibility for specification of arbitrary values for various QoS | |||
| fields. If zero, the fields are as listed below in | requirements, and also allows very compact representation, especially | |||
| this section, and there are no default values. | for the well-known requirements of common applications such as voice | |||
| over IP (VoIP). In this section, we present the standard object | ||||
| format. This object format is used as the main part of the QoS | ||||
| Object Extension (see section 4.2). | ||||
| 0 1 2 3 | 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 | 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| |Reservd| QoS Profile Type | | |A|N|rsv| QoS Profile Type | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| :N: Non-Default Values Bit Vector | | | Session ID |Non-Dflt Bit Vect. (if present)| | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| :N| Additional Non-Default Values Bit Vector (if present) : | :N| Additional Non-Default Values Bit Vector (if present) : | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Authentication Data (32 bits) (if present) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| : QoS fields with non-default values (if present) : | : QoS fields with non-default values (if present) : | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| : More QoS fields with non-default values (if present) : | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Figure 1: QoS Object Format | Figure 1: QoS Object Format | |||
| NNNNN If QoS Profile Type is zero, this bit is not defined | rsv Sent as 0, value unused and undefined on reception | |||
| to be part of the QoS Object format. Otherwise, if | ||||
| the QoS Profile Type is nonzero, when the `N' bit is | ||||
| set, the next 31 bits are part of the "Non-Default | ||||
| Values" bit vector | ||||
| Non-Default Values | QoS Profile Type | |||
| A bit vector with one bit for each field parameter | If nonzero, an index for a list of QoS parameter | |||
| field definitions and default values for those | ||||
| fields. If zero, the fields are as listed below in | ||||
| this section, and there are no default values. | ||||
| A If this bit is set, the Authentication Data field | ||||
| is present following the bit vectors indicating the | ||||
| non-default values. | ||||
| N If QoS Profile Type is zero, this bit MUST be zero. | ||||
| Otherwise, if if the QoS Profile Type is nonzero, | ||||
| when the `N' bit is set, the 16 bits following the | ||||
| "session-ID" field are present and part of the | ||||
| "Non-Default Values" bit vector | ||||
| Session-ID 16-bit value identifying the flow which could be | ||||
| set up as a result of the extended route discovery | ||||
| operation controlled by this RREQ message. | ||||
| Non-Default Values Bit Vector | ||||
| a bit vector with one bit for each field parameter | ||||
| field defined for the particular QoS Profile Type | field defined for the particular QoS Profile Type | |||
| number. | number. | |||
| Authentication Data | ||||
| When present, supplies authentication data so that | ||||
| nodes receiving the RREQ can check whether or not the | ||||
| data in the QoS object is the same as specified by | ||||
| the source node. | ||||
| QoS Parameter Fields | QoS Parameter Fields | |||
| Defined in accordance with the QoS Profile Type. If | defined in accordance with the QoS Profile Type. If | |||
| the profile type is 0, then the fields are as defined | the profile type is 0, then the fields are as defined | |||
| below in this section. | below in this section. | |||
| For QoS Profile Type zero, the following parameter fields are defined | For QoS Profile Type zero, the following parameter fields are | |||
| defined, and MUST appear in this order as indicated by the | ||||
| corresponding bit in the "Non-Default Values Bit Vector": | ||||
| Capacity Requirement | Capacity Requirement | |||
| 32-bit number, measured in bits/second | ||||
| 32-bit number, measured in bits/second | ||||
| Maximum Permissible Delay | Maximum Permissible Delay | |||
| 16-bit number, measured in milliseconds | ||||
| 16-bit number, measured in milliseconds | ||||
| Maximum Permissible Jitter | Maximum Permissible Jitter | |||
| 16-bit number, measured in milliseconds | ||||
| 16-bit number, measured in milliseconds | ||||
| Traffic Class | Traffic Class | |||
| According to Differentiated Services Code Points | ||||
| According to Differentiated Services Code Points | Some fields that might occur for profile type not equal 0 | |||
| Peak data rate, Maximum permissible BER, ... | ||||
| 3.3. QoS Object Extension Format | 4. Extensions | |||
| A node MAY append a QoS Object extension to a RREQ in order to find a | Several extensions are needed in the routing table structure and | |||
| the RREQ and RREP messages for supporting QoS routing. We first | ||||
| describe the extensions needed for the routing table. The extensions | ||||
| defined in the section after that conform to the format defined for | ||||
| extensions to RREQ and RREP messages as specified in [3]. | ||||
| 4.1. Routing Table Extensions | ||||
| Certain fields are conceptually added to each route table entry | ||||
| corresponding to each network node requesting QoS. The fields are | ||||
| needed to notify endpoint nodes in cases where QoS parameter value | ||||
| are agreed upon, but the associated service qualities can no longer | ||||
| be supplied or maintained. The specific additional fields depend on | ||||
| the QoS object field entries (see section 3), but the following list | ||||
| illustrates the general idea. | ||||
| - Session-ID | ||||
| - Maximum Delay | ||||
| - Minimum Available Bandwidth | ||||
| - List of Sources Requesting Delay Guarantees | ||||
| - List of Sources Requesting Bandwidth Guarantees | ||||
| 4.2. QoS Object Extension Format | ||||
| A node appends a QoS Object extension to a RREQ in order to disover a | ||||
| path that satisfies the QoS parameters which are present in the QoS | path that satisfies the QoS parameters which are present in the QoS | |||
| Object, which is situated within the QoS Object extension data. | Object, which is situated within the QoS Object extension data. | |||
| 0 1 2 3 | 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 | 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 | Length | QoS Object (variable) ... : | | Type | Length | QoS Object (variable) ... : | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type TBD | Type TBD | |||
| Length variable | Length variable | |||
| QoS Object variable length; as defined in section 3.2. | QoS Object varliable length; as defined in section 3. | |||
| A node originating a RREQ message MAY append a QoS Object Extension | A node originating a RREQ message MAY append a QoS Object Extension | |||
| after the RREQ data. If a delay parameter is specified, either | after the RREQ data, optionally followed by one or more Accumulated | |||
| explicitly or implicitly by a default value for some QoS Profile | Value extensions according to the specific data in the QoS Object | |||
| type, the originating node MUST also append a Maximum Delay Extension | extension. | |||
| for use of the intermediate nodes that need to accumulate the | ||||
| expected value for delay across various candidate paths. | ||||
| Likewise, if an originating node specifies a maximum value for | ||||
| allowable Jitter as part of the QoS parameter data, either explicitly | ||||
| or implicitly, it MUST also append a Maximum Jitter Extension after | ||||
| the QoS Object extension. | ||||
| 3.4. Maximum Delay Extension Format | 4.3. Accumulated Value Extension Format | |||
| The Maximum Delay Extension Format may only be applied to RREQ | The Accumulated Value Extension Format may be applied to RREQ | |||
| messages containing the QoS Object extension. It provides | messages containing the QoS Object extension. It provides | |||
| information about the cumulative delay that has been experienced by | information about the cumulative value that has been experienced by | |||
| nodes along the path from the originating node to the node currently | nodes along the path from the originating node to the node currently | |||
| processing the RREQ. | processing the RREQ. | |||
| 0 1 2 3 | 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 | 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 | Length | Delay | | | Type | Length | Value Type | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Accumulated Value | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type TBD | Type TBD | |||
| Length 2 | Length 2 | |||
| Delay This field indicates the current estimate of | Value Type 8 bits specifying the type of the value stored in the | |||
| cumulative delay from the originating node up to the | Accumulated Value field. | |||
| intermediate node retransmitting the RREQ on behalf | ||||
| of the originating node. | ||||
| The Maximum Delay Extension can be appended to a RREQ by a node | Reserved Sent as zero, ignored on reception | |||
| requesting a QoS route in order to measure the existing delay from | ||||
| the originating node, in order to determine whether the path can | ||||
| still meet the required Maximum Delay specification within the QoS | ||||
| Object data. | ||||
| Before forwarding the RREQ, an intermediate node MUST compare its | Accumulated Value | |||
| NODE_TRAVERSAL_TIME to the (remaining) Delay indicated in the Maximum | This field indicates the current estimate of | |||
| Delay Extension. If the Delay is less, the node MUST discard the | cumulative parameter value from the originating node | |||
| RREQ and not process it any further. Otherwise, the node subtracts | up to the intermediate node retransmitting the RREQ | |||
| NODE_TRAVERSAL_TIME from the Delay value in the extension and | on behalf of the originating node. | |||
| continues processing the RREQ as specified in [2]. | ||||
| A node forwarding a RREP also records the Source IP address in RREP | The Accumulated Value Extension MUST be appended to a RREQ by a node | |||
| message in the list of source nodes requesting delay guarantees in | rebroadcasting a request for a QoS route whenever it is needed to | |||
| the corresponding destination's route table entry. These source | measure the accumulated value of the parameter of the type given in | |||
| nodes are to be notified with an ICMP QOS_LOST message in case there | the Value Type field; the accumulation occurs at each node starting | |||
| is a change in NODE_TRAVERSAL_TIME at this node. | from the originating node. This allows each next intermediate node, | |||
| or the destination, to determine whether the path can still meet the | ||||
| required parameter specification within the QoS Object data. | ||||
| 3.5. Maximum Jitter Extension Format | The following table gives the currently specified subtype values | |||
| for the Accumulated Value extension. The last column gives the | ||||
| conventional name of the Accumulated Value extension when used with | ||||
| the particular subtype. | ||||
| The Maximum Jitter Extension Format may only be applied to | Delay == 1 Accumulated Delay Extension | |||
| RREQ messages containing the QoS Object extension. It provides | ||||
| information about the cumulative jitter that has been experienced by | Jitter == 2 Accumulated Jitter Extension | |||
| nodes along the path from the originating node to the node currently | ||||
| processing the RREQ. | 4.4. QoS Object Authentication Extension | |||
| The QoS Object Authentication Extension may be used so that nodes | ||||
| receiving QoS route discovery message may verify that the QoS request | ||||
| was in fact originated by the source node. This extension does | ||||
| not verify the contents of any extension other than the QoS Object | ||||
| extension, because other extensions may have mutable fields that are | ||||
| modified in transit. | ||||
| 0 1 2 3 | 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 | 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 | Length | Jitter | | | Type | Length |S| Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | SPI (32 bits) (if present) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| : Authentication Data : | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type TBD | Figure 2: QoS Object Authentication Extension Format | |||
| Length 2 | S If this bit is set, the SPI field is present. | |||
| Jitter This field indicates the current estimate of | Authentication Data | |||
| cumulative jitter from the originating node up to | When present, supplies authentication data so that | |||
| the intermediate node retransmitting the RREQ on | nodes receiving the RREQ can check whether or not the | |||
| behalf of the originating node. | data in the QoS object is the same as specified by | |||
| the source node. | ||||
| The Maximum Jitter Extension can be appended to a RREQ by a node | 5. Link Capacity | |||
| requesting a QoS route in order to measure the existing jitter from | ||||
| the originating node, in order to determine whether the path can | ||||
| still meet the required Maximum Jitter specification within the QoS | ||||
| Object data. | ||||
| Before forwarding the RREQ, an intermediate node MUST compare its | A capacity (bandwidth) specification in a QoS object does not require | |||
| approximate jitter to the (remaining) Jitter indicated in the Maximum | the inclusion of any Accumulated Value extension in the RREQ. Any | |||
| Jitter Extension. If the Jitter is less, the node MUST discard the | node that has sufficient unreserved link capacity to forward data, | |||
| RREQ and not process it any further. Otherwise, the node subtracts | or in the case of the destination to supply data, does not modify | |||
| its estimated jitter value from the (remaining) Jitter value in the | any contents of the RREQ for the purpose of fulfilling a bandwidth | |||
| extension and continues processing the RREQ as specified in [2]. | specification in the QoS object. | |||
| A node forwarding a RREP also records the Source IP address in RREP | Note, however, that in order to properly fulfill such a | |||
| message in the list of source nodes requesting jitter guarantees in | specification, a node has to take into account neighborhood | |||
| the corresponding destination's route table entry. These source | traffic conditions. If recent history indicates that neighboring | |||
| transmissions will likely interfere with the node's ability to carry | ||||
| out the indicated bandwidth specification, then the node SHOULD NOT | ||||
| rebroadcast the RREQ. Exact mechanisms for estimating neighborhood | ||||
| traffic levels are beyond the scope of this document. Additional | ||||
| signaling and protocols may be defined in the future in order to | ||||
| obtain a higher probability of collecting the necessary neighborhood | ||||
| bandwidth utilization information. | ||||
| 6. Delay | ||||
| If the QoS object in the RREQ specifies a delay parameter, then any | ||||
| node forwarding the request MUST ensure that an Accumulated Delay | ||||
| extension is present in the RREQ before forwarding the message. A | ||||
| node that agrees to satisfy delay constraints has to measure the | ||||
| average time it is currently requiring to forward a data packet, | ||||
| including processing time, average queuing delays and propagation | ||||
| delays. Call this average time the FORWARDING_DELAY. Before | ||||
| forwarding the RREQ, an intermediate node MUST compare the current | ||||
| value of its FORWARDING_DELAY to the current value of the difference | ||||
| between the Maximum Delay value in the QoS object extension, and | ||||
| the value in the Accumulated Delay Extension. If the remaining | ||||
| delay is less, the node MUST discard the RREQ and not retransmit it. | ||||
| Otherwise, the node subtracts FORWARDING_DELAY from the value in the | ||||
| Accumulated Value extension and continues processing the RREQ as | ||||
| specified in [3]. | ||||
| A node forwarding a RREP also records the Source IP address in the | ||||
| RREP message in the list of source nodes requesting delay guarantees | ||||
| in the corresponding destination's route table entry. These source | ||||
| nodes are to be notified with an ICMP QOS_LOST message in case there | nodes are to be notified with an ICMP QOS_LOST message in case there | |||
| is a substantial change in the jitter experienced at this node. | is a signficant change in FORWARDING_DELAY at this node. | |||
| 4. ICMP QOS LOST Message | 7. Jitter | |||
| If the QoS object in the RREQ specifies a jitter parameter, then any | ||||
| node forwarding the request MUST ensure that an Accumulated Jitter | ||||
| extension is present in the RREQ before forwarding the message. | ||||
| Before forwarding the RREQ, an intermediate node MUST compare its | ||||
| recently computed typical jitter value (call it NODE_JITTER) to the | ||||
| current value of the difference between the Maximum Jitter value in | ||||
| the QoS object extension, and the value in the Accumulated Jitter | ||||
| Extension. If the remaining allowable jitter is less, the node MUST | ||||
| discard the RREQ and not process it any further. Otherwise, the | ||||
| node subtracts NODE_JITTER from the value in the Accumulated Jitter | ||||
| extension and continues processing the RREQ as specified in [3]. | ||||
| A node forwarding a RREP with the QoS extension also records the | ||||
| Source IP address in RREP message in the list of source nodes | ||||
| requesting jitter guarantees in the corresponding destination's route | ||||
| table entry. These source nodes are to be notified with an ICMP | ||||
| QOS_LOST message in case there is a change in NODE_JITTER at this | ||||
| node. | ||||
| 8. ICMP QOS LOST Message | ||||
| An ICMP QOS_LOST message is generated when an intermediate node | An ICMP QOS_LOST message is generated when an intermediate node | |||
| experiences a significant change in its ability to live up to th QoS | experiences a significant change in its ability to live up to the QoS | |||
| guarantees it has made as part of generating a RREP during the QoS | guarantees it has made as part of generating a RREP during the QoS | |||
| Route Discovery process. The format of this message is as follows. | Route Discovery process. The format of this message is as follows. | |||
| 0 1 2 3 | 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 | 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 | Destination IP address | | Type | Value Type | Session-ID | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Destination IP address | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| Type 8 | Type TBD | |||
| Value Type | ||||
| The type of the parameter which can no longer be guaranteed | ||||
| to conform to the value indicated in the original QoS | ||||
| Object data of the RREQ. The subtype values are as | ||||
| specified in section 4.3. | ||||
| Destination IP address | Destination IP address | |||
| IP address of the destination node using the link for which | IP address of the destination node using the link for | |||
| there has been a change in a QoS parameter. | which there has been a change in the QoS parameter of the | |||
| indicated subtype. | ||||
| This message is extended using the QoS Object Extension (see | The QOS_LOST message is forwarded to all sources potentially affected | |||
| section 3.2). Typically, QoS Profile Type zero is used, with field | by the change in the QoS parameter. These are those sources to which | |||
| reporting the actual measured parameter which fails to meet some | a RREP with a QoS extension has been forwarded in the past (see | |||
| previously requested QoS. For instance, the Minimum Bandwidth field | section 4.1 for a method of determining these sources). | |||
| is used when there is a drop in link capacity and the change in | ||||
| bandwidth is indicated in the Capacity Requirement field. The | 9. ICMPv6 QOS LOST Message | |||
| Maximum Permissible Delay parameter is present when there is a | ||||
| substantial increase in the forwarding delay at a particular node; | The ICMPv6 QOS_LOST message is generated when an intermediate node | |||
| likewise for the Maximum Permissible Jitter parameter. | experiences a significant change in its ability to live up to th QoS | |||
| guarantees it has made as part of generating a RREP during the QoS | ||||
| Route Discovery process. The format of this message is as follows. | ||||
| 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 | Value Type | Session-ID | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | | | ||||
| | 128-bit Destination | | ||||
| | IPv6 address | | ||||
| | | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type TBD | ||||
| Value Type | ||||
| The type of the parameter which can no longer be guaranteed | ||||
| to conform to the value indicated in the original QoS | ||||
| Object data of the RREQ. The subtype values are as | ||||
| specified in section 4.3. | ||||
| Destination IP address | ||||
| IP address of the destination node using the link for | ||||
| which there has been a change in the QoS parameter of the | ||||
| indicated subtype. | ||||
| The QOS_LOST message is forwarded to all sources potentially affected | The QOS_LOST message is forwarded to all sources potentially affected | |||
| by the change in the QoS parameter. These are those sources to which | by the change in the QoS parameter. These are those sources to which | |||
| a RREP with a QoS extension has been forwarded before. Recall that | a RREP with a QoS extension has been forwarded before. These sources | |||
| these sources are recorded in a list as a part of the route table | are able to be conveniently stored in a list as a part of the route | |||
| entry. | table entry. | |||
| 5. Security Considerations | 10. IANA Considerations | |||
| The type number for the ICMP QoS_LOST message is to be taken from | ||||
| the space of available type numbers for the Internet Control Message | ||||
| Protocol, ICMP [4]. The type number for the ICMPv6 QoS_LOST message | ||||
| is to be taken from the space of available type numbers for the | ||||
| Internet Control Message Protocol for IPv6 [2]. | ||||
| The type numbers for the extensions in section 4 are to be taken from | ||||
| the space of extensions to AODV [3]. | ||||
| 11. Security Considerations | ||||
| This draft specifies mechanisms for handling quality of service. It | This draft specifies mechanisms for handling quality of service. It | |||
| does not introduce any special security considerations which were not | does not introduce any special security vulnerabilities which were | |||
| already present in the AODV routing protocol [2]. | not already present in the AODV routing protocol [3]. | |||
| References | References | |||
| [1] S. Bradner. Key words for use in RFCs to Indicate Requirement | [1] S. Bradner. Key words for use in RFCs to Indicate Requirement | |||
| Levels. RFC 2119, March 1997. | Levels. Request for Comments (Best Current Practice) 2119, | |||
| Internet Engineering Task Force, Mar. 1997. | ||||
| [2] C. E. Perkins, E. M. Belding-Royer, and S. R. Das. Ad hoc | [2] A. Conta and S. Deering. Internet Control Message Protocol | |||
| On-Demand Distance Vector (AODV) Routing. IETF Internet Draft, | (ICMPv6) for the Internet Protocol version 6 (IPv6) | |||
| draft-ietf-manet-aodv-09.txt, November 2001. (Work in Progress). | specification. Request for Comments (Draft Standard) 2463, | |||
| Internet Engineering Task Force, Dec. 1998. | ||||
| [3] C. Westphal, R. Koodli, and C. E. Perkins. Context Relocation | [3] C. Perkins, E. Royer, and S. Das. Ad hoc on demand distance | |||
| of QoS Parameters in IP Networks. IETF Internet Draft, | vector (AODV) routing (work in progress). Internet Draft, | |||
| draft-westphal-seamoby-qos-relocate-00.txt, November 2001. (Work | Internet Engineering Task Force, Feb. 2003. | |||
| in Progress). | ||||
| [4] J. Postel. Internet Control Message Protocol. Request for | ||||
| Comments (Standard) 792, Internet Engineering Task Force, Sept. | ||||
| 1981. | ||||
| Author's Addresses | Author's Addresses | |||
| Questions about this memo can be directed to: | Questions about this memo can be directed to: | |||
| Charles E. Perkins | Charles E. Perkins | |||
| Communications Systems Laboratory | Communications Systems Laboratory | |||
| Nokia Research Center | Nokia Research Center | |||
| 313 Fairchild Drive | 313 Fairchild Drive | |||
| Mountain View, CA 94303 | Mountain View, CA 94303 | |||
| USA | USA | |||
| +1 650 625 2986 | +1 650 625 2986 | |||
| +1 650 625 2502 (fax) | +1 650 625 2502 (fax) | |||
| charliep@iprg.nokia.com | charles.perkins@nokia.com | |||
| Elizabeth M. Belding-Royer | Elizabeth M. Belding-Royer | |||
| Dept. of Computer Science | Dept. of Computer Science | |||
| University of California, Santa Barbara | University of California, Santa Barbara | |||
| Santa Barbara, CA 93106 | Santa Barbara, CA 93106 | |||
| +1 805 893 3411 | +1 805 893 3411 | |||
| +1 805 893 8553 (fax) | +1 805 893 8553 (fax) | |||
| ebelding@cs.ucsb.edu | ebelding@cs.ucsb.edu | |||
| End of changes. 67 change blocks. | ||||
| 171 lines changed or deleted | 350 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||