Internet DRAFT - draft-gibson-sip-qos-resv
draft-gibson-sip-qos-resv
M. Gibson, J. Crowcroft
Internet Draft Nortel Networks, UCL
Document: draft-gibson-sip-qos-resv-00.txt October 1999
Category: Informational
Use of SIP for the Reservation of QoS guaranteed Paths
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026 [1].
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.
1. Abstract
This draft defines a modification of the use of the SIP protocol to
perform route reservation. These modifications are applied to two of
the existing SIP Methods: INVITE and REGISTER. The modifications
allow the INVITE method to be used to find the best path across a
particular network based on QoS metrics. The route choice is able to
be restricted at the network edge. The proposed modifications also
allow the REGISTER method to be used as a means of disseminating
information necessary to determine these QoS metrics. This
information can be used to route INVITEs away from known areas of
congestion.
2. Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
this document are to be interpreted as described in RFC-2119 [2].
Gibson Category Informational - Expiration April 1999 1
SIP Reservation Extensions October 1999
3. Protocol Context
The purpose of this draft is to propose that, with suitable
extensions, the SIP protocol may be used to perform path
determination and reservation across a QoS-capable IP network.
This draft defines a set of extended uses of the basic SIP protocol
the motivation for which can be found in [3], however this modified
functionality has a wider applicability. The purpose of the network
is to enable guaranteed QoS session establishment across an IP trunk
network between two separate LANs. The framework document describes
solution that can be decomposed into a three-layer model that is
repeated here as Figure 1.
The top Session Layer represents a telephony style connection model
with user connection stimulus being processed by a Call Server (CS).
These CSs may interact using either of ISUP [4] or SIP [5]. The use
of this layer is application specific being used by those
applications that generate telephony style signaling.
Session Control
+--+ +--+
|CS|'''''''''''''''''ISUP/SIP'''''''''''''''''''''|CS|
+--+ +--+
: :
megaco/H.248 megaco/H.248
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: Core Management :
: /\ /\ /\ /\ /\ :
: <AM>-----|CM|-SIP----|CM|--SIP---|CM|------<AM> :
: \/ \/ \/ \/ \/ :
: ! $ $ $ ! :
: COPS COPS COPS COPS COPS :
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: ! Core Transport $ $ ! :
: ! $ $ $ ! :
+-----+ +--+ +--+ +--+ +-----+
| EP |======|R1|========|R2|========|R3|======| EP |
+-----+\\ +--+\\ //+--+\\ //+--+ //+-----+
\\ \\ // \\ // //
\\ \\// \\// //
\\ \/ \/ //
\\ /\ /\ //
\\ //\\ //\\ //
\\ // \\ // \\ //
+--+// \\+--+// \\+--+
|R4|========|R5|========|R6|
+--+ +--+ +--+
Figure 1 Extended SIP reference architecture
Gibson Category Informational - Expiration April 1999 2
SIP Reservation Extensions October 1999
The Session Layer connects directly to the Transport layer by means
of the emerging megaco protocol. This protocol is used by the CS to
instruct its endpoint (EP) to establish a new connection for a
particular session. In this mode of operation, the EP therefore
resembles a Media Gateway.
In those applications where a Session Layer is not present, the EP
will receive connection requests directly from the end-user, for
example a RSVP Path message, and in this case it resembles an IP
gateway router.
The Transport Layer consists of a number of known capacity links
capable of carrying IP traffic. The most likely solution being a set
of pre-configured LSPs across an MPLS [6] network. In the diagram,
where two tunnels meet, a LSR is pictured - however the LSP itself
may consist of a number of LSRs.
Whatever stimulus is used, the EP will request a path across the
Transport Layer using a COPS Request as specified in [7]. This is
sent to an Admission Manager (AM) in the Management Layer. The
Admission Managers are responsible for issuing requests for paths
across the network, processing these requests and issuing responses.
Only AMs can generate or terminate these message types. The COPS
interface is also used to carry the response to these requests.
The Management Layer also has a number of Connection Managers (CMs).
Note that AMs and CMs are collectively referred to as Management
Nodes (MNs). The CMs provide an administrative functionality to one
or more LSRs; namely they monitor the bandwidth along each of the
tunnels emanating from the LSRs they control and use this
information to decide whether a new session may be routed through
that tunnel. When a tunnel is established from a LSR, the LSR
indicates this to its associated CM using a suitably extended
version of COPS. When a session is admitted to or removed from a
tunnel, its new available bandwidth is updated. This information is
also forwarded to other Management Layer elements using an
advertising method on a periodic basis.
The proposed modifications to the SIP protocol contained within this
draft allow it to perform all messaging within the Management Layer.
They therefore provide for a route selection and bandwidth
reservation function between AMs and also a topology capacity
advertising function between all Management Layer elements.
3.1 Management layer elements
From Figure 1 it can be seen that there are three clearly
functionally different elements in the Management Layer: Admission
Manager, Edge Connection Manager and Core Connection Manager. It is
likely, however, in a real implementation that a single Management
Node might be required to perform at least two of these roles,
depending upon the physical topology of the Transport Network.
Gibson Category Informational - Expiration April 1999 3
SIP Reservation Extensions October 1999
Certainly, were an AM to be attached to the middle CM, it is easy to
see that this CM would continue to function as a Core CM to the
existing AMs, but as an Edge CM to the newly added AM.
This section will therefore define the functionality that the three
MN types will display.
3.1.1 Admission Manager
The Admission Manager is responsible for initiating and terminating
session requests. It controls access to the network via a COPS
interface to an Endpoint. It receives requests for new sessions over
this interface and issues Decision messages based on the outcome of
the resultant negotiation and any defined policies (these policies
are outside the scope of this document).
The AM will receive and must store the information contained within
topology advertisements to determine suitable paths for INVITE
messages. It will not generate any advertisements itself. The
advertising scheme operates such that the path to each of the Core
CMs and the congestion on each of these paths is well known. Each of
the reachable Core CMs also advertises the set of domains that can
be reached through it. The AM must store all of this information to
enable informed path choice.
The AM may also choose to store the complete 4-hop paths used to
reach particular destination AMs for re-use in subsequent INVITEs to
those AMs. This, however, has the drawback that the congestion
information along the length of these paths will be less well known
and that large information tables will have to be stored. However,
it does allow for a default path across the network to be specified
where known.
The AM is therefore able to perform session request blocking at the
edge of a network. If there is insufficient capacity on any of the
outgoing links the session request is automatically denied.
The AM must also store congestion information on incoming tunnels
too. This information is used in the selection of a session path
when multiple INVITEs are used.
3.1.2 Edge Connection Manager
An Edge Connection Manager has a peering relationship with an
Admission Manager. It is responsible for advertising a set of Core
CMs that is reachable by an AM. It must also advertise to its peer
Core CMs the set of AMs that it has connection to - this permits the
Core CM to build up its set of reachable domains.
In common with Core CMs, an Edge CM will operate in a similar manner
to a SIP proxy by processing and forwarding INVITEs. It will use the
Gibson Category Informational - Expiration April 1999 4
SIP Reservation Extensions October 1999
Record-Route header to ensure its continued presence in the return
signalling path.
3.1.3 Core Connection Manager
A Core Connection Manager has connections only to Edge CMs. A Core
CM must use the advertisements it receives from these Edge CMs to
determine the set of domains that it can reach. It must then
advertise this information in a broadcast manner such that it is
received by all AMs. (Note: it is the responsibility of the AM to
determine whether it has received a reachable domain message from a
MN that is one of its Core CMs).
As an AM will only have a clear picture of the network up to a Core
CM, when forming a path for an INVITE to traverse it is likely that
the next hop after the Core CM address will be wildcarded (See
section 5.2.4). The Core CM will be responsible for correctly
forwarding these INVITEs with wildcarded path values.
3.2 Applicability to non-MPLS Networks
Although the remainder of this draft will use the above MPLS-based
network as a basis for discussion, the SIP modifications proposed
are intended to allow operation over any QoS-capable IP network.
Providing a network of IP routers are connected by well-defined
Layer Two links whose capacity is well known, our proposal is
equally applicable. The term LSR can therefore be read as a
reference to any IP cross-connect between these Layer two links.
4. Basic Protocol Operation
This section shows the basic operation of the modified SIP protocol
within the network described above. The messaging used is outlined
along with the operation sequence. This is done by way of session
messaging examples. The exact content of the messages is dealt with
in later sections.
The descriptions of the following message types are based on the
four-hop network specified in [3] and pictured in Figure 1. In this
case the extended SIP protocol is seen to operate in the Core
Management Layer.
4.1 Set-up messaging example
The following is a simple example of the messaging used to establish
a session reservation and path within the Management Layer.
4.1.1 INVITE Generation
On receipt of a COPS Request, the AM will form one or more INVITE
messages. The process of forming this INVITE follows these steps:
Gibson Category Informational - Expiration April 1999 5
SIP Reservation Extensions October 1999
1) Before any route determination can take place, the AM must
determine the resource requirements of the new session. These may
come to it in a number of forms, carried by a suitably extended
version of COPS, namely:
- SDP [8] session description
- RSVP [9] TSPEC [10]
- RSVP ADSPEC
- RSVP FLOWSPEC
- CR-LDP [11] Traffic Resource TLV
- Simple Bandwidth Object
This information will be coupled with the destination information
and used to form a SDP description of the session (see section 5).
2)(Optional) The originating AM must assign the session a resource
class, where this parameter is used when advertising the tunnel
characteristics. The mechanism by which a resource class is
allocated is to be decided - as yet the MPLS drafts themselves give
no clear indication - but will probably be a function of media type,
the payment mechanism (where applicable), the DiffServ class or one
of a number of other parameters.
3) Examine available topology information and decide on a route. The
AM has a database that contains the information of all its
successful session paths plus the information from the advertising
REGISTERs that it has received. It can therefore use this
information to determine a route for the new session across the
network. The proposed extensions to the SIP protocol have been
designed such that an incomplete definition of this route can be
used. This is implemented by defining part of the path using
wildcard values. Note that the chosen path may not have sufficient
bandwidth for the session if either another session seizes the
resource, or the topology information is out of date, or the path is
incompletely specified.
4) Having chosen a path, the AM now assigns it a rank. This rank is
based on the AM's view of the congestion of the network, in
conjunction with any local policy in force. For example, it is
likely that the most favourable path to a particular destination
will be that with the lowest congestion. However, a more congested
link may have a lower latency and therefore be far more suitable to
a real-time session. Also, this allows economic rules to be applied
where different service providers own different sections of the
Transport Layer. In the case where only one INVITE is sent, the AM
may skip this part.
5) The AM must now form a SDP description of the session from the
description it is passed by the EP. This is attached to the INVITE
in the normal manner for SIP.
Gibson Category Informational - Expiration April 1999 6
SIP Reservation Extensions October 1999
6) The AM now forms one INVITE per path selected - the exact number
will be dependant on a local policy and may be restricted to reduce
the total signaling load on the network. The AM examines the first
address in the chosen path and forwards the INVITE to all CMs that
match this address. This uses a process like forking in standard
SIP.
4.1.2 INVITE processing at Connection Manager
When a CM receives an INVITE, it should perform the following
processing:
1) Examine the path list and determine if it has a connection to the
next hop in the path. If the CM does not have an outgoing tunnel to
the next listed CM, it must return an error message to that effect
to the originating AM.
2) The CM now examines the next but one MN in the path too, to
ensure this is reachable. Each advertising REGISTER traverses two
hops and therefore each CM should have topology information up to
two hops away. If none of the available next hop tunnels can be used
to reach this two-hop distant MN the CM returns an error message to
this effect. Intermediate MNs may read this error message on the
path back to the originating AM to update their topology
information.
3) The CM now examines the SDP description and determines the
resource requirements for the session. Where a choice of next hops
is available, the CM may use some policy information to pick how
many of the next hop tunnels will be used. Any tunnels that cannot
support the session are at this point discarded.
4) The CM can now determine the set of tunnels that can support the
session. The CM examines the Call-ID of the INVITE. If a temporary
reservation exists for this Call-ID, the tunnel already has
sufficient capacity for the session and may be used as a forward
path. No extra session bandwidth reservation need be made.
5) Otherwise the CM makes a temporary resource reservation for the
new session on each of the tunnels capable of supporting the
session. This reservation should match the requirements of the
session and will be tagged with the Call-ID of the INVITE that
prompted it. No other session may now be offered this part of the
tunnel resource.
6) The CM adds its SIP-URL into the Record Route header of the
INVITE and then forwards the INVITE to the MNs at the other end of
those tunnels.
This process is repeated at each CM along the route to the
destination AM. The INVITEs will thus fan out towards the centre of
the network and converge at the destination AM.
Gibson Category Informational - Expiration April 1999 7
SIP Reservation Extensions October 1999
4.1.3 INVITE processing at destination Admission Manager
The destination AM will probably receive a number of INVITEs,
depending on how tightly defined each original INVITE's path was,
how many INVITEs were sent and how may of the paths could be used.
These will arrive asynchronously, however the AM may process each
individually before issuing a response. The AM must perform the
following on each of the INVITEs:
1) Examine the Record-Route header and compare it to the topology
information the AM has stored. Using this topology information it
too assigns a rank to the path in the INVITE. Note this may result
in multiple ranks assigned to a single original INVITE due to
forking - identical Record Routes should have identical ranks.
2) By convolution with the original rank assigned by the originating
AM, the preferred path is chosen. This should happen after a time
period long enough to allow all INVITEs to arrive but short enough
to avoid too much setup latency.
3) The INVITE that contained the chosen path is now replied to with
a 200 OK. The Record-Route header is copied into a Route header to
direct the 200 OK through the MNs that forwarded the INVITE. The
same Call-ID must be used in this response, again copied from the
INVITE.
+--+ +--+ +--+
..1.>|CM|....1*....>|CM|. .>|CM|.3..
. |11| . |24| . .##|31|<###.
. +--+ . +--+ 1* .# +--+ #.
. 1 . .200OK #.
/\. . .# #.>/\
|AM| . .#. #|AM|
\/. . 3# . .>\/
#. . .# . .
200OK. +--+ . +--+.# . +--+ .
#...2.>|CM|....2.....>|CM|...1......>|CM|.1/1*
######|13|<##200OK###|29|<# |36|
+--+ +--+ +--+
...n... INVITE n Path
####### 200OK Path
Figure 2. 200 OK operation
Gibson Category Informational - Expiration April 1999 8
SIP Reservation Extensions October 1999
4.1.4 Action of 200 OK Response
The 200 OK response is directed back over the same path as the
INVITE to which it is responding. At each CM in the path is has the
action of confirming the temporary resource reservation made by the
INVITE. This is achieved simply by correlating the Call-ID of the
response with the Call-ID used to tag of the temporary reservation.
The tag should not be discarded, as it will aid in the removal of
the reservation using a BYE message. The principle of this operation
can be seen in Figure 2. The left hand AM sends 2 INVITEs that get
routed over diverse paths to the destination AM. This AM chooses
INVITE 2 as the preferred route and issues a 200 OK back over the
same path. At each CM in this path the 200 OK confirms the temporary
reservation, made by the INVITE, for the duration of the session.
That is, until it is explicitly removed.
4.1.5 200 OK processing at originating Admission Manager
When the 200 OK is received at the originating AM it does the
following:
1) The AM makes the temporary reservation on the LSP to its Edge CM
permanent. The path across the network for the new session request
from the EP is now fully specified at the Connection Layer.
2) Replies to the EP using a COPS Decision, indicating that the
session reservation was successful. This message must contain the
list of LSRs that will support the session (and whose CMs have
accepted the session). The AM must therefore convert the SIP-URLs in
the Route header of the 200 OK into IP addresses. This will be
achieved through DNS lookup, either from the set of locally stored
values from previous sessions or from a central server.
3) If no 200 OK responses are received, the AM may either respond
with a COPS Decision rejecting the session, or try another set of
routes across the network by issuing further INVITEs.
4) To complete the INVITE process, an ACK is returned to the
destination AM, providing a 200 OK was received. This message is
purely informational.
Once the EP receives a COPS Decision, the session path can be
considered fully provisioned and the CR-LDP process can be initiated
using the returned LSR address list.
4.2 Session Tear-down example
This section gives an example of how session reservations are
removed as the session itself is torn-down.
4.2.1 Tear-down stimulus
Gibson Category Informational - Expiration April 1999 9
SIP Reservation Extensions October 1999
Either participant in the session can initiate the tear down of a
session. The stimulus for the removal will be a COPS Delete Request
State (DRQ) with the same Client Handle as a previously received
Request. The AM matches this to the original session Request and re-
uses the session information in the teardown process.
4.2.2 Originating AM action
The originating AM will correlate the Client Handle of the DRQ with
the Call-ID used to originally establish the reservation. A BYE will
now be issued with the corresponding Call-ID and will also include
the QoS characteristics used to establish the session, described
using SDP.
A Route header must be used in the BYE message that corresponds to
the route that the session has reserved across the network. This
should again be identified using the Client Handle as an index to a
table.
4.2.3 BYE operation at each CM
When a CM receives a BYE, it should remove from its set of confirmed
reservations, the one that corresponds to the Call-ID of the BYE.
The SDP description can be used as a fail-safe check of the resource
to be freed.
If it is unable to perform this then it must resolve the size of
reservation described by the SDP description. It must also examine
the next SIP-URL in the Route header to determine the tunnel along
which the original reservation was made. It then frees this amount
of resource from the tunnel. This is accomplished either by removing
a specific reservation identified by the Call-ID and re-calculating
the total bandwidth.
The CM then forwards the BYE to the next CM in the Route header.
4.2.4 Session Clearing notes
The Removal of reservations in the Management Layer can occur
concurrently with the removal of label mappings in the Transport
Layer.
The action of a BYE is unidirectional therefore a similar BYE must
be issued in the opposite direction to remove the other half of a
two-way session. The trigger for this will be provided by the
session application and signaled using a COPS DRQ at the other
Endpoint.
Gibson Category Informational - Expiration April 1999 10
SIP Reservation Extensions October 1999
4.3 Resource advertisement example
This section offers an overview of how SIP can be extended to
advertise topology information. This information includes the size
and destination of tunnels and the set of reachable domains via
particular CMs.
This advertisement mechanism will be implemented using the REGISTER
method that exists within SIP, modified such that the status of the
tunnel initially registered is regularly updated using a new message
body type that uses a similar syntax to that of SDP.
4.3.1 Initial tunnel advertisement
When a tunnel is established in the Transport Layer, its presence
must be indicated to the Management Layer in order for sessions to
be routed over it. The mechanism and reasons by which a tunnel is
initiated is outside of the scope of the document - it will likely
be driven by the owner of the network and may be caused by network
initialisation or re-provisioning.
Whatever the reason, the tunnel must always be established using a
known set of traffic parameters which are tightly controlled. Once
the tunnel exists, the LSR issues a COPS Request to its MN to
register the tunnel. The issuing of a COPS Decision is more of a
formality, as the MN is unlikely to refuse to allow the tunnel. The
Request must include at a minimum the address of the destination LSR
and the bandwidth of the tunnel. More likely it will include the
full description of its QoS parameters e.g. the Traffic TLV used by
CR-LDP. This information will be included in the message body.
When the MN has received this information, it must advertise it for
it to be of any use within the Management Layer. The MN that has
received the information will be at the upstream end of the tunnel
and will be controlling admission to the tunnel for sessions towards
the destination LSR. The MN must therefore perform a DNS lookup on
the IP address of the destination LSR to determine the SIP-URL of
the MN controlling it. It is this SIP-URL that will be used in the
advert.
The MN is now able to form a REGISTER message that it will send to
all of its peer MNs plus the MN that is the destination of the
tunnel. The contents of the REGISTER will be the resource
characteristics of the tunnel and the SIP-URLs of the MNs it runs
between. The purpose of this REGISTER message is twofold:
1) It establishes two-hop topology information in those upstream
(peer) MNs that receive the REGISTER. That is, each of these MNs now
has a route to the tunnel destination via the REGISTER sending MN.
2) It establishes a peering relationship with the MN at the
destination of the tunnel. On receipt of the REGISTER, the
Gibson Category Informational - Expiration April 1999 11
SIP Reservation Extensions October 1999
destination MN now knows that there is a new inbound tunnel to it
and therefore a new upstream MN that will want to receive its update
REGISTERs.
The above process can be seen in Figure 3. CM_X receives a COPS
Request for the new tunnel from LSR_X to LSR_Z. CM_X therefore forms
an REGISTER which it sends to its existing peer CM_Y telling it of
the new route. CM_X also sends the same REGISTER to CM_Z. The action
this time is to inform CM_Z that a new peering relationship should
be formed.
In general terms, if a MN receives a REGISTER that has a From:
header containing the URI of a MN it does not recognise, this should
be regarded as a request for peering from that MN.
Peering REGISTER messages should be sent to the new peer directly,
not multicast. A MN without a peer relationship will ignore
multicast REGISTERs from a MN it is not yet the peer of, as it has
not been told to listen for them.
+----+ +----+ +----+
|CM_Y|<===new route===|CM_X|==new peering==>|CM_Z|
+----+ +----+ +----+
^
|
|
REQ: tunnel CM_X->CM_Z
|
|
_______________ | ________________
(LSR)()______________)(LSR)()_______________)(LSR)
Existing tunnel New Tunnel
Figure 3. Action of Tunnel Advert
4.3.2 Tunnel update advertisement
Each MN must update the information about the capacity of each of
its tunnels on a regular basis. This information should be sent to
each of its peers based on the following metrics:
Time - as a baseline, each MN must send an advertising REGISTER
on a regular basis at the expiry of a timer - every time an
advertising REGISTER is sent, the timer should be restarted;
Gibson Category Informational - Expiration April 1999 12
SIP Reservation Extensions October 1999
Activity - a MN may choose to send a new advert based on a
number of INVITE/BYE messages;
Resource - every time there is a significant change in tunnel
resource a MN may choose to send a new ADVERT.
Once a peering relationship is established, the same Call-ID for
each subsequent REGISTER to the same peer should be retained to
allow easy tunnel identification. The CSeq header should be used to
indicate an updated value. The peer should always use the
advertising REGISTER information with the highest CSeq value and
discard all lower value REGISTERs with the same Call-ID. Multiple
tunnel descriptions can be included in a single REGISTER as each
description is self-contained (See section 5.3.2) however care
should be taken that the total message length does not get too long.
As the tunnel advert information is contained in a message body, the
update information could be piggybacked on other messages as they
traverse the network to reduce the total messaging.
4.3.3 Reachable domain advertisement
Over time, a MN will build up a view of the domains it is two hops
distant from, based on the REGISTERs it receives from its peers.
This information may be advertised too to aid route selection and
ranking. This information should be cascaded back to the edges of
the Management Layer to the AMs. The To header of each domain
REGISTER will be formed from the end descriptor of the tunnel
adverts the Core CM receives. The SIP-URL used in the To header may
only ever have a MN-type of AM (see section 5.3.2 for details).
When an AM is choosing a route to a destination AM, it will only
have detailed topology information for the first two hops of the
journey to a set of reachable Core CMs. It therefore is essential
that the AM knows the set of nodes reachable from each of these Core
CMs so that the final two MNs in the path to the destination AM can
be determined.
The domain information can be gleaned by examining the domain
segment of the destination SIP-URL from a tunnel advertisement. A
Core CM is capable of choosing an onward route for an INVITE based
on its topology information, so by sending an INVITE via a certain
Core CM and allowing (through wildcarding) the CM to choose the
route for the final two hops of the path, the AM can reduce the
total amount of information it needs to store.
5. Protocol details
Gibson Category Informational - Expiration April 1999 13
SIP Reservation Extensions October 1999
The aim of this section is to describe in some detail the format and
use of the messages described in brief above. It will concentrate on
the areas where there is significant divergence from the standard
operation of SIP, either in operation or interpretation of fields,
and on the key message elements used where operation is similar.
5.1 Standard SIP
The message format of the standard SIP protocol, represented using
Augmented Backus-Naur format (ABNF, as described in Appendix C of
[5]), is as follows:
generic-message = start-line
*message-header
CRLF
[ message body ]
start-line = Request-Line |
Status-Line
message-header = ( general-header
| request-header
| response-header
| entity header )
The first element is always a start-line, which can be either
Request line or Status line. Generally a Request line describes the
SIP method that the message is instigating and the Status line shows
the nature of a response to such a message. The Request line has the
following format:
Request-Line = Method SP Request-URI SP SIP-Version CRLF
e.g. INVITE sip:mark@nortelnetworks.com SIP/2.0
This would be for an INVITE from mark@nortelnetworks.com using
version 2.0 of the SIP software. For a response to this INVITE, the
following might be used as the Status-Line of the message:
Statue-Line = SIP-Version SP Status-Code SP Reason-Phrase CRLF
e.g. SIP/2.0 200 OK
in this case an OK response that has a Status-Code of 200.
After the start-line there are multiple message-headers (denoted by
the * in ABNF) that can be any of the shown types except that a
request-header is specific to a request and similarly a response-
header is specific to a response message. This draft proposes a
number of changes to the standard set of these headers as detailed
in section 5.3.
Gibson Category Informational - Expiration April 1999 14
SIP Reservation Extensions October 1999
Finally, in the generic message, comes any message body attached to
the message. The format and length of the body type is described by
the entity-headers at the end of the message-header list. A message
body is attached in native format, hence a SDP body is included
using its standard text-description. In order to accommodate
capacity advertisements we will describe an additional advert body
type.
5.1.1 Change of INVITE meaning
The meaning of the INVITE message is changed when compared to the
standard SIP protocol. Under normal operation, this message is used
to invite the called party to join a session and indicates the type
of media that the caller can receive. The indication of what is to
be sent is an option.
The INVITE is now used to make a forward reservation for the session
from the caller. Therefore the session description contained within
the INVITE is that for the forward direction and should be used to
reserve bandwidth in tunnels from the caller to the callee.
5.1.2 Change of REGISTER use
The REGISTER method is currently used to register the address listed
in the To header with a SIP server. This draft proposes two
alterations to the use of the message.
In the link advertisement we REGISTER the existence of a link to the
location described by the To header and advertise its available
capacity. The description of this path is then included in a new
message body type, as described in section 5.3.2.
Secondly, the set of domains reachable via a particular CM is
registered with other MNs. In this instance the To header has no
real meaning, with the information stored in the reachable domains
body type attached to the REGISTER message, as described in section
5.3.3.
To accommodate this functionality, all MNs must operate as
Registration servers for both path and reachable domain REGISTER
messages. These REGISTER messages should be sent using a different
multicast address than the well-known "all SIP servers" address
"sip.mcast.net" (224.0.1.75). It is suggested that two new well-
known addresses be used: "sip-path.mcast.net" for path REGISTER
messages; "sip-domain.mcast.net" for reachable domain REGISTER
messages.
To control the level of signalling information present in the
network, the REGISTER messages must be controlled using the TTL
field. It is recommended that in the 4-hop network shown in Figure
1, the value TTL = 1 be used for path REGISTER messages and TTL = 2
for reachable domain messages.
Gibson Category Informational - Expiration April 1999 15
SIP Reservation Extensions October 1999
The information in both new REGISTER message types must be
periodically updated without the need for outside stimulus. Updates
will be indicated by an increased CSeq. Previously stored
information must be discarded and the new information used instead.
5.2 Message formats
We now address the specific SIP headers that need to be modified to
allow path reservation described within this draft to be performed.
Also included in this section is the details of the single new
header type required.
5.2.1 From header
The From header takes the standard SIP form. It will only ever have
the SIP-URL of the Admission Manager that is originating the INVITE
or of the Connection Manager originating the REGISTER method. To aid
the determination the MN-type originating the message, it is
recommended that the tag is used to identify the type of MN node
originating the message.
The From header also has a vital role in the establishment of a
peering relationship between adjacent Management Nodes. If a path
REGISTER is received with a SIP-URL in its From header of a
Management Node that the receiving Management Node does not already
have a peering relationship with, the SIP-URL must be added to its
peer list.
The from header takes the standard SIP form as described below:
From = ( "From" | "f" ) ":" ( name-addr | addr-spec)
*( ";" addr-params )
name-addr = [display name] "<" addr-spec ">"
addr-spec = SIP-URL|URI
display-name = *token|quoted-string
addr-params = tag-param
tag-param = "tag=" UUID
UUID = 1*( hex | "-" )
e.g. From: "M. Gibson" <sip:mrg@nortelnetworks.com>; tag=AM
The above example shows that the message originated from user mrg
whose SIP application has AM functionality.
5.2.2 To header
The main part of the To header is used in the normal SIP manner. It
will only ever contain the address of the Admission Manager that is
the destination of the INVITE.
Gibson Category Informational - Expiration April 1999 16
SIP Reservation Extensions October 1999
The use of the tag part, however, is to be changed to accommodate
the formation of multiple INVITEs for a particular session. It will
be used to indicate which of how many total INVITEs for the session
this INVITE is.
The To address takes the standard SIP form as described below:
To = ( "To" | "t" ) ":" ( name-addr | addr-spec)
*( ";" addr-params )
addr-params = tag-param|alternate-param
alternate-param = instance "(" total ")" ;instance <= total
instance = 1*digit
total = 1*digit
e.g. To: sip:j.bloggs@sip.net; tag=2(4)
The above example is for an INVITE to j.bloggs and indicates that
this is the second of four different INVITEs.
5.2.3 Record-Route header
The Record-Route header is formed in the exact same manner as normal
SIP. It must always be used in an INVITE to allow determination of
the path over which reservation is being made.
The Record-Route header will never be used in an ADVERT message
type. The Record-Route header takes the standard SIP form as
described below:
Record-Route = "Record-Route" ":" 1# name-addr
e.g Record-Route: <sip:a.g.bell@bell-telephone.com>,
<sip:a.bell@ieee.org>
This indicates that the request has traversed the host ieee.org then
bell-telephone.com.
5.2.4 Route header
The Route header is used in an INVITE to define the path it should
take across the network. In contrast to normal SIP, the list of SIP-
URLs may contain non-explicit information. E.g. *@domain.name.com is
an acceptable value. Where this is used, the INVITE may be forwarded
to all MNs that match the non-asterisked parts of the SIP-URL. The
determination of which of these MNs to use is performed using the
topology information stored by the MN in conjunction with the next
element in the Route header. Only those matches that provide a route
to the two-hop distant SIP-URL may be used. The chosen value is
written into the Record-Route header as above. The Route header uses
the standard SIP form as described below:
Route = "Route" ":" 1# name-addr|wildcard-addr
Gibson Category Informational - Expiration April 1999 17
SIP Reservation Extensions October 1999
Wildcard-addr = "*@" *("*" | domainlabel ".") ("*" | toplabel
[ "." ])
e.g Route: <sip:a.g.bell@bell-telephone.com>,
<sip:*@ieee.org>
The Route header of an INVITE should be discarded by the AM that
receives it. Only the Record-Route header will contain useful route
information.
It is recommended that the Route header is not used in REGISTER
messages, thereby reducing the packet size and therefore signaling
overhead within the Management Layer.
5.2.4.1 Wildcard Usage
The SIP-URL contained in a Route header may be replaced in total or
just part by a wildcard value, as illustrated in the ABNF rule
above. This allows the originator to direct an INVITE through a
particular domain but to allow local SIP servers to determine the
path across that domain.
Where the whole of a Route element is wildcarded the INVITE may be
forwarded over any next hop, provided that there is a route to the
next but one Route element via the chosen next hop. This forwarding
decision should be made using the reachable domain information
REGISTER'd for this next hop. See Annex B for further usage
examples.
The Route header must always contain the SIP_URL of the destination
AM its last element. It must never be wildcarded. This ensures that
looping is avoided and allows the looping detection afforded by the
use of Via headers to be suppressed. Where there is any doubt about
the address of the destination AM, the originating AM must set the
TTL header of an INVITE such that it will time-out shortly after it
should have reached its destination. In the four-hop network
example, this implies a TTL=5.
5.2.5 No-Loop header
The use of wildcards within the route header allows INVITEs to
diverge and then converge at the same point as they travel across a
network. Under normal operation, SIP proxies will add Via headers to
allow for loop detection. However, this would suppress the multiple
route finding function that the wildcarded Route header introduces.
A No_Loop header is therefore introduced to suppress this action:
No-Loop = "noloop"
Care must obviously be taken when using this header that looping is
not introduced. By use of the reachable domains message body and the
Route header it is possible to ensure that looping is avoided by
Gibson Category Informational - Expiration April 1999 18
SIP Reservation Extensions October 1999
rejecting INVITEs whose next-hop Route SIP-URL cannot be reached
through the current MN.
5.3 Body formats
This section sets out the body formats needed to perform session
reservations. Firstly the extensions needed to SDP are detailed.
Then secondly the two new message body types needed to implement
advertisement are detailed.
5.3.1 SDP extensions
To exploit SDP so that it properly most profitably interworks with
the modified SIP protocol proposed within this draft, both the
bandwidth (b) and session information (i) fields need an extended
useage and new fields of route favourability (f) and resource class
(r) need to be defined.
5.3.1.1 Bandwidth (b)
The current bandwidth definition used by the SDP protocol is used to
indicate only the required bandwidth in kilobits per second of the
session. While this may sufficient for simple implementations, there
is a need to support more complex description of the session to make
better use of an MPLS or similar tunnel technology. This also allows
for a better mapping of RSVP TSpec and FlowSpec and CR-LDP Traffic
TLV parameters.
The bandwidth description will be in terms of the policed session
flow from the AM. As the AM will tell the EP what committed rates
the network will offer, the AM need only use these rates in INVITE.
The process by which the committed rates are derived from the
requested rates is outside the scope of this document.
The 3-tuple that defines the peak and maximum date rates is
therefore defined to be used in the bandwidth description
containing:
Data rate - the mean data rata of the application. (This correlates
roughly to the Token Bucket Rate of RSVP and PDR parameter of CR-LDP
Traffic TLV.)
Peak rate - the peak data rate of the application. (This correlates
roughly to the Token Bucket Size of RSVP and PBR parameter of CR-LDP
Traffic TLV.)
Burst rate - either the maximum burst rate that the application
might produce, or the maximum burst size that a tunnel can support.
(This correlates roughly to the Peak Data Rate of RSVP and EBS
parameter of CR-LDP Traffic TLV.)
The syntax for this SDP description is as shown:
b= <Data rate> <Peak rate> <Burst rate>
Gibson Category Informational - Expiration April 1999 19
SIP Reservation Extensions October 1999
5.3.1.1.1 Peak vs Burst rate
The use of the Peak and Burst Rate parameters will depend on the
context of the bandwidth parameter. In an INVITE, the bandwidth
parameter will be used to describe the session requirements.
Therefore the Peak rate and Burst rate should be a good match to
each other as the AM will provide a policing function for the
session.
In an ADVERT the Peak rate may be used to indicate a preferred
maximum burst rate for new sessions and the Burst rate can indicate
the maximum rate that the tunnel can support. A tunnel may therefore
accept a session with a higher Peak rate than the advertised burst
rate - this will probably have the action of reducing the advertised
Burst rate next time around.
5.3.1.2 Information (i)
The information description of SDP can be used to convey the same
information as the tag used in the To header. Namely which of
multiple INVITEs this message is. This implies that the INVITEs are
forked at the originating AM using Route headers, which may not sit
comfortably with the SIP standard. However, it does allow a single
200 OK to be legitimately issued for all the different paths and
keeps the differentiation at the session level.
The syntax for this SDP description is as shown:
i=<m> of <n>
Where m < n and n is the maximum number of different routes that an
AM may attempt reservation over.
5.3.1.3 Favourability (f)
This type is used to indicate the rank or favourability of the route
in the INVITE for a particular session, as perceived by the
originating AM. The higher the value assigned, the more favourable
the route is. It is recommended that this be an integer value with a
pre-agreed maximum value. The method for deriving the favourability
value and how it is interpreted by the receiving AM is beyond the
scope of this document.
The syntax for this description is as shown below:
f=<value>
5.3.1.4 Resource Class (r)
The resource class will be decided by the AM for a particular
session and used in MPLS networks where multiple tunnels exist
Gibson Category Informational - Expiration April 1999 20
SIP Reservation Extensions October 1999
between LSRs. It must be included in all INVITEs to enable suitable
route choice.
The syntax for this description is as shown below:
r=<value>
When used in an INVITE, every effort must be made to match the
resource class of the INVITE sdp with that of the tunnel the session
is to be forwarded along.
5.3.2 Advert body type
The Advert body type is used to advertise the existence of a tunnel
between two LSRs and will be carried by a REGISTER message. It is
sent initially to announce the establishment of a new tunnel - part
of the peering establishment operation - and then subsequently to
update the spare capacity it has left.
The Advert body type takes the same basic syntax form as the SDP
protocol and has six descriptors:
Start [s] - the starting LSR of the tunnel
End [e] - the end or terminating LSR of the tunnel
Total Capacity [c*] - the total size of the tunnel
Free Capacity [f] - the available capacity of the tunnel
Latency [l*] - the time taken to traverse the tunnel
Resource Class [r*] - the resource class of the traffic carried by
the tunnel.
The descriptors marked with an asterisk are all optional in every
Advert and their use will depend upon the complexity of the network
and the parameters used to make routing decisions. This set of
descriptors is not seen as necessarily definitive and there is scope
to add further descriptors as required.
Each of the above descriptors will now be dealt with in more depth
in the following sub-sections.
5.3.2.1 Start [s] descriptor
This is used to indicate the LSR (or other Layer Two element) at the
beginning of the path being advertised. The Start descriptor must
always be present in an advert message body. Note: the tunnel is
seen as running from the start to the end such that the start
performs the label mapping of incoming session packets to send them
to the end.
Gibson Category Informational - Expiration April 1999 21
SIP Reservation Extensions October 1999
Although it is the LSRs that form the tunnel's endpoints, it is the
SIP-URL of the MN controlling the LSR at the start of the tunnel
that is advertised. This simplifies the peering process and allows
multiple different LSRs controlled by the same MN to appear as one
super-LSR. The SIP-URL used to describe the start of the tunnel will
be that of the MN controlling the LSR. The syntax for the Start
descriptor is shown below:
s=<SIP-URL>
e.g. s=CM_london@SIP.co.uk
There is no assumed policy for the allocation of SIP-URLs to
describe the endpoints of a tunnel and is left flexible to allow
tailoring to particular situations and architectures.
5.3.2.2 End [e] descriptor
The End descriptor is used to indicate the destination of the path
being advertised. It must always be present in an advertisement.
As each advertisement is sent by a MN to each of its peers, the End
descriptor not only describes the path destination but also provides
reachable domain information as the destination MN of the path is
two hops distant from each of these peers. A CM that is acting as a
Core CM should therefore log all advertisements that emanate from
AM-type SIP-URLs.
The End descriptor has the following syntax:
e=<SIP-URL>
e.g. e=AM_Paris@SIP.fr
5.3.2.3 Total Capacity [c] descriptor
The total capacity descriptor indicates the size of the path being
advertised in terms of its bandwidth. The same 3-tuple used in the
extended bandwidth descriptor for SDP is re-used here. The tunnel is
therefore described in terms of:
Total data rate (kbps) - essentially the capacity of the path
Preferred peak rate (kbps) - the preferred maximum session burst
rate
Maximum allowable data burst (kbps) - the largest burst the path can
handle.
This descriptor is optional in all Adverts as in the most part, the
useful information when forwarding an INVITE is the free tunnel
capacity. If advertising the total capacity is deemed necessary, it
is recommended that the total capacity be sent only once in an
Gibson Category Informational - Expiration April 1999 22
SIP Reservation Extensions October 1999
initial REGISTER and only re-sent if it changes during the lifetime
of the tunnel.
The syntax for the total capacity descriptor is:
c=<total data rate> <peak rate> <max burst>
e.g. c=10000 50 200
5.3.2.4 Free Capacity [f] descriptor
The free capacity descriptor is mandatory in all tunnel REGISTER
messages. It uses the same format as the tunnel capacity descriptor
but advertises the free or available capacity of the tunnel.
The syntax for the free capacity descriptor is:
f=<available data rate> <peak rate> <max burst>
e.g. f=300 40 200
While the maximum allowable data burst size will likely remain
constant, if a large number of bursty sessions have already been
routed along the path, the preferred peak/burst rate may be reduced
to inhibit the admission of further bursty sessions. The available
data rate will indicate the amount of free bandwidth along the path.
5.3.2.5 Latency [l] descriptor
The latency descriptor describes the time taken to traverse the path
and is optional. As with the total path capacity, this figure is
unlikely to change over time and so where used it need only be sent
once, unless the path changes - note resizing of the path will
likely have no effect.
The latency descriptor will have the following syntax:
l=<time (ms)>
e.g. l=10
The means of determining the latency is outside the scope of this
document, however it will always be in milliseconds.
5.3.2.6 Resource Class [r] descriptor
The resource class descriptor describes the MPLS resource class
assigned to the path and is optional. The resource class is used to
group similar types of traffic together, though its complete use is
still poorly defined in MPLS drafts. Where used, it will help in the
forwarding of INVITEs along the correct paths for the session type.
The syntax for the resource class descriptor is:
r=<resource class>
Gibson Category Informational - Expiration April 1999 23
SIP Reservation Extensions October 1999
e.g. r=45
5.3.2.7 SIP-URL usage in REGISTER messages and their Responses
SIP-URLs have a basic form of user@host.domain. As noted in section
5.2.2, it is proposed that the tag be used to indicate the type of
MN node that generated the REGISTER message.
When sending the first in a sequence of REGISTER messages about a
particular path, the originating MN must include its MN type in the
To header tag.
However, the use of the SIP-URL within the Advert message body will
be changed such that the information it contains is unambiguous. The
user part will be altered according to the following rules:
1) The user part must take the form <MN-type>_<identifier>
2) The MN-type must be either AM or CM
The recipient of an Advert body type can therefore determine the
destination of the path it is advertising without examination of the
SIP headers of the message it arrived in.
When a Core CM is logging domain information it should discard all
the user part and just use the host.domain information.
5.3.3 Domains body type
The domains body type is used to list the set of reachable domains
from a particular Core CM. It will be included in a REGISTER message
and will be sent to the AMs the Core CM is serving i.e. those to
which it has a REGISTER'd path.
This body type will again use an SDP type notation and will consist
of a list of domains. The syntax is as shown:
n=<number of domains in list>
d=<domain.name>
e.g. n=3
d=london.sip.co.uk
d=harlow.sip.co.uk
d=cambridge.sip.co.uk
5.4 New Status Codes
To indicate the status of the amended INVITE method proposed within
this draft requires the introduction of a number of new Status
Codes, to deal with the QoS-based nature of the protocol extensions.
A new set of numbers, using the format 8xx will be used to
differentiate them from normal SIP codes. The following subsections
list these codes and provide guidelines for their usage.
Gibson Category Informational - Expiration April 1999 24
SIP Reservation Extensions October 1999
5.4.1 Informational Status Codes
The first set are informational error codes and are used between MNs
to indicate the progress of a forked INVITE. They may optionally be
sent back to the INVITE originator to update topology knowledge.
These are denoted by 88x codes.
5.4.1.1 881 No capacity in tunnel
This error message will be issued when the bandwidth of the new
session is greater than the free capacity of the tunnel.
5.4.1.2 882 Not available
This error message indicates that the LSP is not currently available
for reasons other than it has reached its maximum capacity. This may
be due to some fault in the Connection Layer or because the
destination CM/AM has developed a fault. The process by which either
of these events is detected is beyond the scope of this document.
5.4.1.3 883 No such Tunnel
This error message is sent back in response to an INVITE that cannot
be forwarded to its next-hop AM/CM because there is not now, nor has
there been in the recent past, a tunnel to the AM/CM. The definition
of recent past will depend on the rate of reconfiguration of tunnel
within the network. For very static networks, it will probably be
minutes.
5.4.2 Other Status Codes
A Second set of status codes are needed to indicate that an INVITE
has failed to make a reservation across a network. These are denoted
by 8xx codes.
5.4.2.1 801 No Path
This response will be sent by a forking proxy that has been unable
to find a single forward path for the INVITE's resource
requirements. This should be sent back to the INVITE originator.
5.4.2.2 802 Unable to change
This error message is sent when there is insufficient spare capacity
in the tunnel for a session to increase its reserved bandwidth. This
will occur when an INVITE is sent for an existing reservation whose
extra bandwidth requirements are in excess of the spare capacity of
the tunnel.
6. Messaging Examples
Gibson Category Informational - Expiration April 1999 25
SIP Reservation Extensions October 1999
To show the full use of the extended SIP headers, there now follows
a series of example messages. These will also highlight the use of
the new body types.
This section gives details of the amended message formats from the
standard SIP protocol and shows the use of the various header and
message bodies described in this document.
6.1 INVITE
Having received the COPS Request and decoded its contents, the
originating AM is now ready to form an INVITE.
The first action that must be performed is the computation of the
number of paths that the AM wants to use to attempt reservation
over. The SIP-URL derived from the To information of the COPS
Address object will be used as the final element of the Route header
for each of these paths. The other SIP-URLs of the Route header will
be decided upon using the REGISTER information the AM has. Having
decided the set of paths, the AM also assigns a rank to each of
them, which will be encoded as a favourability SDP string.
The From and To headers can be directly filled in from the converted
COPS Address object. The Record-Route header is added to the INVITE
and the SIP-URL of the originating AM is filled in, with AM added as
a tag. The Route header is added after this and the Alternative
header added to indicate which of the INVITEs for the session this
is.
A Call-ID will be assigned for the new SIP exchange and a CSeq, so
that changes to the session characteristics can be logged.
The SDP description of the session is now appended to the end of the
INVITEs. The bandwidth string can be formed directly from the COPS
Bandwidth object and the favourability string assigned to the
particular Route will be added after this. A completed INVITE should
therefore be formed as illustrated below. Note that the user strings
here contain the MN-type to aid readability. They are not mandatory
but may improve message parsing.
INVITE sip:AM_Croydon@London.SIP.co.uk SIP/2.1
From: sip:AM_Croydon@London.SIP.co.uk; tag=AM
To: sip:AM_Fort_Worth@Dallas.SIP.com; tag=1(1)
Route: <sip:CM_London_Gateway@London.SIP.co.uk>,
<sip:*@New_York.SIP.com>,
<sip:*@*>, <sip:AM_Fort_Worth@Dallas.SIP.com>
Record-Route: <sip:AM_Croydon@London.SIP.co.uk>
Call-ID: 2496513480@London.SIP.co.uk
CSeq: 1 INVITE
No-Loop: noloop
Content-Type: application/sdp
Content-Length: 74
Gibson Category Informational - Expiration April 1999 26
SIP Reservation Extensions October 1999
v=1
o=croydon 56348948 20159786 IN IP4 47.25.3.106
s=new session
b=8 32 64
f=6
The above INVITE is for a session reservation from an AM in Croydon
to an AM in Fort Worth, Dallas. It has selected a path through the
London CM Gateway, via New York with an unspecified penultimate node
to its destination. The CSeq count is set to 1 for the start of a
new session - any changes to the session will re-use the unique
Call-ID but increment the CSeq by 1. The tag in the To header
indicates that this is the INVITE generated for this session. Notice
though, that by underspecifying the Route, it is going to end up
with a number of paths beyond the London Gateway.
The AM has also used SDP to describe the specifics of the session.
It indicates it is the owner of the description - if the original
description had been passed up over the COPS interface it would have
been modified and used in preference. As the AM has issued the
description, only the bandwidth and favourability strings are used -
it knows nothing of media types.
Notice the favourability has a rank of 6. Despite the fact that only
one Path is specified that might lead you to expect a rank of 10,
this clearly is not an optimal solution for this new session.
6.2 200 OK
A 200 OK response to an INVITE will be formed directly from one of
the incoming INVITEs. The receiving AM will examine the Record-Route
header and use its ADVERT information to assign a rank to the path
it describes. It does this for each forked and alternative INVITE it
receives. Then by convolution with the original rank, it chooses the
highest overall ranked path.
So the information used in the response is virtually that used in
the chosen INVITE.
SIP/2.1 200 OK
From: sip:AM_Croydon@London.SIP.co.uk; tag=AM
To: sip:AM_Fort_Worth@Dallas.SIP.com; tag=1(1)
Route: <sip:CM_Chicago_Transit@Chicago.SIP.com>,
<sip:CM_Manhattan_Gateway@New_York.SIP.com>,
<sip:CM_London_Gateway@London.SIP.co.uk>,
<sip:AM_Croydon@London.SIP.co.uk>
Call-ID: 2496513480@London.SIP.co.uk
CSeq: 1 INVITE
Notice that the sdp is no longer needed as the Call-ID identifies
the session and the favourability does not need to be returned as it
Gibson Category Informational - Expiration April 1999 27
SIP Reservation Extensions October 1999
has been processed. The Alternative, however, is needed so that the
originating EP can determine which Route was successful.
The contents of the Record-Route header of the successful INVITE is
used as the Route header for the 200 OK. This is vital to update the
temporary reservations at each traversed MN.
6.3 Forking
In this section we will consider the process of forking an INVITE
based on the Route header contained in an INVITE. We will re-use the
diagram shown in Figure 2, only this time we will specify the Route
for each of the two INVITEs. For the purposes of this section we
will assume that the session characteristics can be supported across
the network by each hop in the end-to-end route. We will therefore
leave the SDP message body out of the INVITEs in this section.
+--+ +--+ +--+
..1.>|CM|....1*....>|CM|. .>|CM|.3..
. |11| . |24| . .##|31|<###.
. +--+ . +--+ 1* .# +--+ #.
__ . 1 . .200OK #. __
/ \. . .# #.>/ \
|AM_O| . .#. #|AM_T|
\__/. . 3# . .>\__/
#. . .# . .
200OK. +--+ . +--+.# . +--+ .
#...2.>|CM|....2.....>|CM|...1......>|CM|.1/1*
######|13|<##200OK###|29|<# |36|
+--+ +--+ +--+
...n... INVITE n Path
####### 200OK Path
INVITE 1: Route {CM11, *, CM36, AM}
INVITE 2: Route {CM13, CM29, CM31, AM}
Figure 4. Routed INVITEs
The originating AM issues two INVITEs. The first of the two takes
the following form:
AM->CM11
INVITE sip:AM_O@SIP.net SIP/2.1
From: sip:AM_O@SIP.net; tag=AM
To: sip:AM_T@SIP.net; tag=1(2)
Route: <sip:CM11@SIP.net>, <sip:*@SIP.net>,
<sip:CM36@SIP.net>, <sip:AM_T@SIP.net>
Gibson Category Informational - Expiration April 1999 28
SIP Reservation Extensions October 1999
Call-ID: 2496513480@SIP.net
CSeq: 1 INVITE
No-Loop: noloop
Content-Type: application/sdp
Content-Length: 74
...
with the second INVITE as:
AM->CM13
INVITE sip:AM_O@SIP.net SIP/2.1
From: sip:AM_O@SIP.net; tag=AM
To: sip:AM_T@SIP.net; tag=2(2)
Route: <sip:CM13@SIP.net>, <sip:CM29@SIP.net>,
<sip:CM31@SIP.net>, <sip:AM_T@SIP.net>
Call-ID: 2496513480@SIP.net
CSeq: 1 INVITE
No-Loop: noloop
Content-Type: application/sdp
Content-Length: 74
...
Notice that the difference between the two is merely the Route
header and the tag on the To header. Both INVITEs are transmitted at
the same time towards their differing first CMs. At CM11, the Route
header of INVITE 1 is examined to determine where to forward it. The
next hop is wildcarded and CM11 has paths to both CM24 and CM29. It
therefore logs the session characteristics in a temporary store and
adjusts the available capacity of both forwarding tunnels
accordingly. It then forwards the following INVITE over both
tunnels:
CM11->CM24 and CM11->CM29
INVITE sip:AM_O@SIP.net SIP/2.1
From: sip:AM_O@SIP.net; tag=AM
To: sip:AM_T@SIP.net; tag=1(2)
Route: <sip:CM11@SIP.net>, <sip:*@SIP.net>,
<sip:CM36@SIP.net>, <sip:AM_T@SIP.net>
Record-Route: <sip:CM11@SIP.net>
Call-ID: 2496513480@SIP.net
CSeq: 1 INVITE
No-Loop: noloop
Content-Type: application/sdp
Content-Length: 74
...
Meanwhile CM13 only has CM29 as the forwarded path, so it makes a
temporary reservation along that path and sends the following:
CM13->CM29
Gibson Category Informational - Expiration April 1999 29
SIP Reservation Extensions October 1999
INVITE sip:AM_O@SIP.net SIP/2.1
From: sip:AM_O@SIP.net; tag=AM
To: sip:AM_T@SIP.net; tag=2(2)
Route: <sip:CM13@SIP.net>, <sip:CM29@SIP.net>,
<sip:CM31@SIP.net>, <sip:AM_T@SIP.net>
Record-Route: <sip:CM13@SIP.net>
Call-ID: 2496513480@SIP.net
CSeq: 1 INVITE
No-Loop: noloop
Content-Type: application/sdp
Content-Length: 74
...
At CM24, INVITE 1 is received. It determines that it must forward to
CM36, so makes a temporary reservation for this forwarding path and
sends the following:
CM24->CM36
INVITE sip:AM_O@SIP.net SIP/2.1
From: sip:AM_O@SIP.net; tag=AM
To: sip:AM_T@SIP.net; tag=1(2)
Route: <sip:CM11@SIP.net>, <sip:*@SIP.net>,
<sip:CM36@SIP.net>, <sip:AM_T@SIP.net>
Record-Route: <sip:CM24@SIP.net>, <sip:CM11@SIP.net>
Call-ID: 2496513480@SIP.net
CSeq: 1 INVITE
No-Loop: noloop
Content-Type: application/sdp
Content-Length: 74
...
At CM29, we will make the assumption that INVITE 2 arrives first.
CM29 examines the Route header and determines that CM31 is the next
CM in the path. It makes a reservation along the path to that node
and sends:
CM29->CM31
INVITE sip:AM_O@SIP.net SIP/2.1
From: sip:AM_O@SIP.net; tag=AM
To: sip:AM_T@SIP.net; tag=2(2)
Route: <sip:CM13@SIP.net>, <sip:CM29@SIP.net>,
<sip:CM31@SIP.net>, <sip:AM_T@SIP.net>
Record-Route: <sip:CM29@SIP.net>, <sip:CM13@SIP.net>
Call-ID: 2496513480@SIP.net
CSeq: 1 INVITE
No-Loop: noloop
Content-Type: application/sdp
Content-Length: 74
...
Gibson Category Informational - Expiration April 1999 30
SIP Reservation Extensions October 1999
Meanwhile it also receives INVITE 1. It examines its Route header
and determines that the next CM is CM36. It makes a separate
temporary reservation along the path to this CM and forwards:
CM29->CM36
INVITE sip:AM_O@SIP.net SIP/2.1
From: sip:AM_O@SIP.net; tag=AM
To: sip:AM_T@SIP.net; tag=1(2)
Route: <sip:CM11@SIP.net>, <sip:*@SIP.net>,
<sip:CM36@SIP.net>, <sip:AM_T@SIP.net>
Record-Route: <sip:CM29@SIP.net>, <sip:CM11@SIP.net>
Call-ID: 2496513480@SIP.net
CSeq: 1 INVITE
No-Loop: noloop
Content-Type: application/sdp
Content-Length: 74
...
At CM31, INVITE 2 is received and CM31 determines that it has a
route to AM_T, so it makes a reservation along that path and
forwards the INVITE:
CM31->AM_T
INVITE sip:AM_O@SIP.net SIP/2.1
From: sip:AM_O@SIP.net; tag=AM
To: sip:AM_T@SIP.net; tag=2(2)
Route: <sip:CM13@SIP.net>, <sip:CM29@SIP.net>,
<sip:CM31@SIP.net>, <sip:AM_T@SIP.net>
Record-Route: <sip:CM31@SIP.net>, <sip:CM29@SIP.net>,
<sip:CM13@SIP.net>
Call-ID: 2496513480@SIP.net
CSeq: 1 INVITE
No-Loop: noloop
Content-Type: application/sdp
Content-Length: 74
...
At CM36, two versions of INVITE 1 are received. The CM makes a
reservation for the first to AM_T but not for the second. As the
reservation is indexed using the Call-ID a 200OK response for either
INVITE would have the same Call-ID and there is therefore no need
for two reservations along the same path. The CM logs itself in the
Record-Route headers of both INVITEs and forwards them both:
CM36->AM_T
INVITE sip:AM_O@SIP.net SIP/2.1
From: sip:AM_O@SIP.net; tag=AM
To: sip:AM_T@SIP.net; tag=1(2)
Gibson Category Informational - Expiration April 1999 31
SIP Reservation Extensions October 1999
Route: <sip:CM11@SIP.net>, <sip:*@SIP.net>,
<sip:CM36@SIP.net>, <sip:AM_T@SIP.net>
Record-Route: <sip:CM36@SIP.net>, <sip:CM29@SIP.net>,
<sip:CM11@SIP.net>
Call-ID: 2496513480@SIP.net
CSeq: 1 INVITE
No-Loop: noloop
Content-Type: application/sdp
Content-Length: 74
...
INVITE sip:AM_O@SIP.net SIP/2.1
From: sip:AM_O@SIP.net; tag=AM
To: sip:AM_T@SIP.net; tag=1(2)
Route: <sip:CM11@SIP.net>, <sip:*@SIP.net>,
<sip:CM36@SIP.net>, <sip:AM_T@SIP.net>
Record-Route: <sip:CM36@SIP.net>, <sip:CM24@SIP.net>,
<sip:CM11@SIP.net>
Call-ID: 2496513480@SIP.net
CSeq: 1 INVITE
No-Loop: noloop
Content-Type: application/sdp
Content-Length: 74
...
AM_T will receive all 3 INVITEs and uses their favourability rank
along with its own congestion information to choose one of them. In
this case, INVITE 2 is chosen and its Record-Route header is used as
the Route for the 200 OK response message:
SIP/2.1 200 OK
From: sip:AM_O@SIP.net; tag=AM
To: sip:AM_T@SIP.net; tag=2(2)
Route: <sip:CM31@SIP.net>,<sip:CM29@SIP.net>,
<sip:CM13@SIP.net>
Call-ID: 2496513480@SIP.net
CSeq: 1 INVITE
At each of the CMs it traverses, the soft reservation is now made
permanent before the response is forwarded.
Finally, the process is completed by sending an ACK:
ACK sip:AM_O@SIP.net SIP/2.1
From: sip:AM_O@SIP.net
To: sip:AM_T@SIP.net
Route: <sip:CM13@SIP.net>, <sip:CM29@SIP.net>,
<sip:CM31@SIP.net>
Call-ID: 2496513480@SIP.net
CSeq: 1 ACK
Gibson Category Informational - Expiration April 1999 32
SIP Reservation Extensions October 1999
7. Future Work
1) Investigation is needed into the frequency of transmission of
advertisement traffic. The information within the messages must
remain relevant and timely, however there must not be so many that
the network becomes overloaded.
2) Control of the number of possible routes that can be examined
using a wildcarded Route in an INVITE.
3) Control of the number of simultaneous INVITEs to the same
destination AM. Where a Call Server model is used, this may be
solved by using call-blocking at the destination AM.
4) Investigation of the apparent synergy between the extensions
proposed in the draft and those proposed by the DCS Group.
5) Investigation of the OA&M mechanisms needed to ensure safe
delivery of messages and recovery from Layer Two failure.
8. Security Considerations
This draft makes no explicit considerations about security over and
above those already made for the basic SIP protocol.
9. Notice Regarding Intellectual Property Rights
Nortel Networks may seek patent or other intellectual property
protection for some or all of the technologies disclosed in the
document. If any standards arising from this disclosure are or
become protected by one or more patents assigned to Nortel Networks,
Nortel Networks intends to disclose those patents and license them
on reasonable and non-discriminatory terms. Future revisions of this
draft may contain additional information regarding specific
intellectual property protection sought or received.
10. References
1 S. Bradner, "The Internet Standards Process -- Revision 3", BCP
9, RFC 2026, October 1996.
2 S. Bradner, "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997
3 M. Gibson, "The management of MPLS LSPs for scalable QoS Service
Provision", <draft-gibson-manage-mpls-qos-00.txt>, October 1999.
4 "Integrated Services Digital Network User Part (ISDN UP)", CCITT
Recommendations Q.761 - Q. 766, (ITU, Geneva).
Gibson Category Informational - Expiration April 1999 33
SIP Reservation Extensions October 1999
5 M. Handley et al., "SIP: Session Initiation Protocol", RFC 2543,
March 1999.
6 R. Callon et al., "A Framework for Multiprotocol Label Switching",
<draft-ietf-mpls-framework-05.txt>, September 1999.
7 J. Boyle et al., "The COPS (Common Open Policy Service) Protocol",
<draft-ietf-rap-cops-07.txt>, August 1999.
8 M. Handley et al., "SDP: Session Description Protocol", RFC 2327,
April 1998.
9 R. Braden et al., "Resource ReSerVation Protocol (RSVP) -- Version
1 Functional Specification", RFC 2205, September 1997.
10 J. Wroclawski, "The use of RSVP with IETF Integrated Services",
RFC 2210, September 1999.
11 B. Jamoussi et al., "Constraint-Based LSP Setup using LDP",
<draft-ietf-mpls-cr-ldp-03.txt>, September 1999.
11. Acknowledgments
Thanks go to Tom Taylor, Roy Mauger, Simon Brueckheimer and Dave
Stacey of Nortel Networks for their comments on the design of the
protocol extensions.
12. Author's Addresses
Mark Gibson
Nortel Networks
London Road, Harlow, Essex, UK
Phone: +44 1279 402621
Email: mrg@nortelnetworks.com
Jon Crowcroft
Department of Computer Science
University College London
Gower Street, London, UK
Email: J.Crowcroft@cs.ucl.ac.uk
Gibson Category Informational - Expiration April 1999 34
SIP Reservation Extensions October 1999
Appendix A: Terminal to Terminal Communications
The proposed extensions to SIP have use outside of the management of
MPLS network resource. There is much scope for its use in terminal
to terminal setup procedures, though this operation requires a
slight change in the operational philosophy.
o A terminal is now seen to act like an AM.
o The reservation being made by an INVITE is now for a bi-
directional path and resource is allocated based on the
description in the calling party's INVITE. Where only one media
description is listed, this is assumed to reflect the
requirements in both directions.
o Each CM is capable of issuing a CANCEL for a particular INVITE,
if the session description in a 200 OK exceeds the resource
allocated for the new session. A new Response Code is needed to
indicate to the caller, that this event has occurred.
The use of wildcards in the Route header of an INVITE can be used to
allow a user to specify the set of service providers they wish to
use to place a call, with the best match to the user's needs being
chosen.
Imagine the scenario depicted in Figure 5. Terminals A and B are
hosted on the networks of two different ISPs. Terminal A wishes to
call Terminal B using its local ISP_A but is prepared to let the
network decide its best path to Terminal B. ISP_A has a connection
to 3 different carriers, namely Carrier_X, Carrier_Y and Carrier_Z.
+---------+
/|Carrier_X|\
//+---------+\\
// \\
+------+ OooO0oO // \\ OoooO0o +------+
| | O )/ +---------+ \O ) | |
|Term_A|===( ISP_A )===|Carrier_Y|===( ISP_B )===|Term_B|
| | o 0\ +---------+ o 0 | |
+------+ 0ooOoo0 \\ 0ooOoo0 +------+
\\
\\+---------+
\|Carrier_Z|
+---------+
Figure 5. Multi-domain route selection
Gibson Category Informational - Expiration April 1999 35
SIP Reservation Extensions October 1999
Terminal B is hosted on ISP_B. ISP_B has connections to two of the
above Carriers, Carrier_X and Carrier_Y. For the purposes of this
example, we will ignore the session description except to say that
it is used to derive a service level requirement for the new
session.
Terminal A therefore issues the following INVITE:
INVITE sip:Term_A@ISP_A.com SIP/2.1
From: sip:Term_A@ISP_A.com; tag=AM
To: sip:Term_B@ISP_B.com; tag=1(1)
Route: <sip:CM@ISP_A.com>, <*@*>, <sip:*@ISP_B.com>
Call-ID: 563845256-26@ISP_A.com
CSeq: 1 INVITE
No-Loop: noloop
Content-Type: application/sdp
Content-Length: ..
...
Notice that Term_A acts like an AM in this case. When this INVITE is
received at the CM of ISP_A, it examines the Route header to
determine the next hop. It sees that is has a choice of next hops,
as long as they provide a path to ISP_B.
Of the set of possible Carriers, the CM sees that Carrier_Z has no
forwarding path and therefore it is immediately discarded. The CM
therefore forward the following INVITE to Carrier_X and Carrier_Y:
INVITE sip:Term_A@ISP_A.com SIP/2.1
From: sip:Term_A@ISP_A.com; tag=AM
To: sip:Term_B@ISP_B.com; tag=1(1)
Route: <sip:CM@ISP_A.com>, <*@*>, <sip:*@ISP_B.com>
Record-Route: <sip:CM@ISP_A.com>
Call-ID: 563845256-26@ISP_A.com
CSeq: 1 INVITE
No-Loop: noloop
Content-Type: application/sdp
Content-Length: ..
...
The INVITE is received at both the Carrier networks. At Carrier_X,
the SDP requirements are examined and the Carrier decides it is
unwilling to support the session. An error response is therefore
sent back to the calling terminal, via CM at ISP_A as follows:
SIP/2.1 802 Not Available
From: sip:Term_A@ISP_A.com; tag=AM
To: sip:Term_B@ISP_B.com; tag=1(1)
Route: <sip:CM@ISP_A.com>
Call-ID: 563845256-26@ISP_A.com
CSeq: 1 INVITE
Gibson Category Informational - Expiration April 1999 36
SIP Reservation Extensions October 1999
The CM at ISP_A should log this response for use in future
forwarding decisions.
At Carrier_Y, the SDP requirements are also examined and the Carrier
decides it can support the session. It therefore forwards the INVITE
to the CM at ISP_B, which has REGISTER'd its connection to Term_B,
as below:
INVITE sip:Term_A@ISP_A.com SIP/2.1
From: sip:Term_A@ISP_A.com; tag=AM
To: sip:Term_B@ISP_B.com; tag=1(1)
Route: <sip:CM@ISP_A.com>, <*@*>, <sip:*@ISP_B.com>
Record-Route: <CM@Carrier_Y.com>, <sip:CM@ISP_A.com>
Call-ID: 563845256-26@ISP_A.com
CSeq: 1 INVITE
No-Loop: noloop
Content-Type: application/sdp
Content-Length: ..
...
The CM at ISP_B receives the INVITE and determines that it has a
connection to Term_B. It is willing to support the new session and
therefore forwards the INVITE as below:
INVITE sip:Term_A@ISP_A.com SIP/2.1
From: sip:Term_A@ISP_A.com; tag=AM
To: sip:Term_B@ISP_B.com; tag=1(1)
Route: <sip:CM@ISP_A.com>, <*@*>, <sip:*@ISP_B.com>
Record-Route: <sip:CM@ISP_B.com>, <sip:CM@Carrier_Y.com>,
<sip:CM@ISP_A.com>
Call-ID: 563845256-26@ISP_A.com
CSeq: 1 INVITE
No-Loop: noloop
Content-Type: application/sdp
Content-Length: ..
...
When Term_B receives the INVITE it chooses to accept the session and
therefore the following response is sent back, using the Record-
Route header as the Route:
SIP/2.1 200 OK
From: sip:Term_A@ISP_A.com; tag=AM
To: sip:Term_B@ISP_B.com; tag=1(1)
Route: <sip:CM@ISP_B.com>, <sip:CM@Carrier_Y.com>,
<sip:CM@ISP_A.com>
Call-ID: 563845256-26@ISP_A.com
CSeq: 1 INVITE
When the 200 OK response is received by Term_A, the new reservation
is confirmed using an ACK:
Gibson Category Informational - Expiration April 1999 37
SIP Reservation Extensions October 1999
ACK sip:Term_A@ISP_A.com SIP/2.1
From: sip:Term_A@ISP_A.com
To: sip:Term_B@ISP_B.com
Route: <sip:CM@ISP_A.com>, <sip:CM@Carrier_Y.com>,
<sip:CM@ISP_B.com>
Call-ID: 563845256-26@ISP_A.com
CSeq: 1 ACK
A.1 Return Path Failure
We now consider the above example where the session indicated by the
200 OK to be propagated in the return direction is significantly
different to that described in the INVITE. The INVITE processing
occurs as above and Term_B forms its 200 OK response, except that
the SDP it contains now has a resource requirement significantly
greater than that indicated in the INVITE.
The 200 OK is propagated to CM@ISP_B, which is able to cope with the
increased load. It now forwards the 200 OK to CM@Carrier_Y.com,
which is not able to carry the session under the new resource
requirements. It therefore issues a CANCEL for the INVITE to Term_B
and sends an error response back to Term_A.
CANCEL sip:CM@Carrier_Y.com SIP/2.1
From: sip:Term_A@ISP_A.com; tag=AM
To: sip:Term_B@ISP_B.com; tag=1(1)
Route: <sip:CM@ISP_B.com>
Call-ID: 563845256-26@ISP_A.com
CSeq: 1 INVITE
It also issues an 801 response back upstream.
SIP/2.1 801 No Path
From: sip:Term_A@ISP_A.com; tag=AM
To: sip:Term_B@ISP_B.com; tag=1(1)
Route: <sip:CM@ISP_A.com>
Call-ID: 563845256-26@ISP_A.com
CSeq: 1 INVITE
Gibson Category Informational - Expiration April 1999 38
SIP Reservation Extensions October 1999
Full Copyright Statement
"Copyright (C) The Internet Society (date). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implmentation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph
are included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into
Gibson Category Informational - Expiration April 1999 39
SIP Reservation Extensions October 1999
Gibson Category Informational - Expiration April 1999 40