Internet Draft
Network Working Group                 Dan Guo        (Sorrento Networks)
Internet Draft                        Leah Zhang     (Sorrento Networks)
Expiration Date: Jan 2001             James Fu       (Sorrento Networks)
				      Raymond Cheung (Sorrento Networks)


        Extensions to RSVP-TE for Bi-directional Optical Path Setup

	            draft-sorrento-rsvp-bi-osp-00.txt

1. 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 made obsolete 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. 
    
2. Abstract 
    
   We propose an extension to RSVP-TE for setting up and maintaining 
   Bi-directional Optical Switched Paths (BOSPs) in optical networks 
   with symmetric traffic patterns. The requirement for wavelength 
   continuity for some types of optical networks with no (or partial) 
   wavelength conversion is also supported. It follows the framework 
   of MPLS and extends the RSVP-TE to support the signaling for the 
   provisioning of BOSPs. We introduce a new c-types for bi-directional
   LSPs in both Label Request object and Label object. Each LSR (OXC), 
   upon receiving an RESV message for a BOSP, will allocate a pair of 
   labels. One label is for the incoming port from the next hop and 
   the other is for the incoming port from the previous hop. The labels
   here include fiber ID, wavelength ID and sub-channel ID (if 
   applicable). This extension requires a minimum change to the 
   existing RSVP-TE protocol. It avoids the problem of contention where
   two OXCs assign the same wavelength on a uni-directional link for 
   two different sessions. This contention arises in both [4] and [5].
   As a result, no additional mechanism  for contention resolution is 
   needed. 

3. Introduction

   It is desired to provision bi-directional end-to-end optical paths 
   in optical networks operated by carriers and CLECs. This is driven 
   largely by symmetric traffic requirement in the networks. Setting 
   up two uni-directional paths between two end-points as an equivalent 
   of a bi-directional path has the following drawbacks:
     1. Two uni-directional paths may follow two different physical 
        (fiber) routes;
     2. There is a time gap for setting up two uni-directional paths 
        between two end-points. This may introduce a contention for 
	resources. It is possible that we will get a deadlock. It may 
	have to abort the setup of a bi-directional path because only 
	one uni-directional path is established.
     3. Longer setup latency may be needed. 

   The overall framework for this document is the MPLS as applied to 
   optical networks. We take the approach of RSVP-TE for label 
   distribution.

   This subject has been studied in the earlier works of [4] and [5]. 
   In [4], the approach is to introduce a Label object in the Path
   message for allocating the label in the direction from the source 
   to the destination. This deviates from the receiver-initiated 
   approach of path setup (i.e., initiated by RESV messages) in the 
   RSVP. In [5], the approach is for RESV messages to allocate two 
   labels for both incoming and outgoing ports. Both approaches must 
   handle the potential race condition that two set-up attempts at the 
   same time may result in a contention for allocating labels. [5] 
   introduces a mechanism for a pair of OXCs to form master-slave pair 
   and specifies that only master (which has a higher IP address) can
   allocate the label. A similar mechanism involving IP address is also
   used in [4] to resolve the contention. 

   We introduce a new c-type for bi-directional LSP in both Path 
   messages and Resv messages. When each OXC receives an RESV message, 
   it allocates two labels, one for the incoming link from the 
   next OXC and the other for incoming link from the other direction. 
   The label is referred to the object containing information for fiber,
   wavelength and sub-channel (if applicable). 

   Because each uni-directional link can be considered to be an incoming
   link for only one OXC, no OXCs can engage in a contention scenario
   where two OXCs assign the same wavelength on a uni-directional link 
   for two different sessions. This reduces the complexity of the 
   protocol. Our approach minimizes the change to the original RSVP-TE 
   protocol.

   Another issue is the wavelength continuity requirement for certain 
   types of optical networks where OXCs provide no (or partial) 
   function of wavelength conversion. As a result, an optical path from
   the source to destination may have to stick to a wavelength in this
   type of networks. RSVP-TE need to be extended to support this type 
   of optical path setup. 

   We organize the rest of this document as follows.  In Section 4,
   we define the necessary new c-types for our proposed extension. In 
   Section 5, we discuss the Path message for pair-wise label request. 
   In section 6, we discuss the Resv messages for pair-wise label 
   allocation. We briefly discuss how BOSPs are torn down in section 7.

4. Extensions for Bi-directional OSPs
   We define a new C_Type for the label request object defined in [3] 
   as follows:

   Label Request with BOSP

   Class=19, c_type = 8 (Bi-directional OSP_Tunnel)

      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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Reserved      |   Flags       |              L3PID            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |         Minimum Port #        |  Maximum Port #               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      Minimum Wavelength #     |  Maximum Wavelength #         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      Minimum Subchannel #     |  Maximum Subchannel #         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Reserved: This field is reserved. It MUST be set to zero on 
   transmission and MUST be ignored on receipt.
    
   Flags (8 bits):
   
   01 Bi-directional OSP without wavelength continuity requirement
   02 Bi-directional OSP with wavelength continuity requirement

   L3PID (16 bits): An identifier of the layer 3 protocol using this 
   path. Standard Ethertype values are used.

   Minimum Port # (16 bits): This field specifies the lower bound of a 
   a range of port numbers supported on the originating OXC.

   Maximum Port # (16 bits): This field specifies the upper bound of a
   range of port numbers supported on the originating OXC.

   Minimum Wavelength # (16 bits): This field specifies the lower bound
   of a range of wavelengths supported on the originating OXC. In the 
   case of Bi-directional OSP with wavelength continuity requirement, 
   this field suggests the wavelength that should be used for the data 
   path from the  originating OXC to destination OXC.

   Maximum Wavelength # (16 bits): This field specifies the upper bound
   of a range of wavelengths supported on the originating OXC. In the 
   case of Bi-directional OSP with wavelength continuity requirement, 
   this field suggests the wavelength that should be used for the 
   reverse data path from the destination OXC to originating OXC.

   Minumum Subchannel # (16 bits): This field specifies the lower bound
   of a range of subchannel supported within a single wavelength on the 
   originating OXC.
    
   Maximum Subchannel # (16 bits): This field specifies the upper bound
   of a range of subchannel supported within a single wavelength on the
   originating OXC.
    
   We also add a new C_Types to the Label objects. The LABEL objects 
   have the following format:

   LABEL class = 16, C_Type = 8
      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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                           Port ID1                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                          Wavelength ID1                       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                          Sub-channel ID1                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                           Port ID2                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                          Wavelength ID2                       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                          Sub-channel ID2                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   
5. Operation for Pair-wise Label Request

   We list our assumptions below:
    a) An ingress OXC is a sender and a receiver of the 
       SAME traffic class. All optical channel are uni-directional. 
    b) At each OXC, there is a table containing the information which
       spell out how a uni-directional fiber in one direction is paired 
       to another uni-directional fiber in other direction. This table
       also spells out the adjacency of OXCs and how ports are connected
       to the neighbors of this OXC. This table will be dynamically 
       updated.
   
   A Path Message is initiated by one OXC (called the initiating OXC) 
   and forwarded to the other end (called the responding OXC) of the 
   bi-directional path. We introduce a new c-type to identify a bi-
   directional label request. Upon receiving a Path message, an OXC 
   will record the bi-directional label request into its Path State 
   Block (PSB).

6. Operation for Pair-wise Label Reservation

   An RESV Message is initiated by the responding OXC for this bi-
   directional path. The RESV message will be propagated to the 
   initiating OXC of this bi-directional path. 


             +-----+           +-----+   L      +-----+
    To       |     |           |     | <------- |     |      To
    Prev ----|  A  |    L'     | B   |          | C   |----  Next
    OXC      |     | --------> |     |          |     |      OXC
             +-----+           +-----+          +-----+

       Fig. 1 OXC B will allocate labels for two incoming
                   uni-directional links L and L'.

   An OXC (in Fig 1, OXC B), upon receiving an RESV message, will
   assign labels for two incoming uni-directional links (L and L'), 
   one going toward the initiating OXC and the other going toward the 
   responding OXC.  (An equally valid scheme is to assign two labels 
   for both outgoing uni-directional links of an OXC.) The label 
   allocation is atomic - either both labels are assigned or no label
   is assigned. This avoids the potential deadlock.

   The adjacent OXC at the next hop (i.e., OXC C Fig 1) need to be 
   informed about the label allocation for link L. For this purpose, 
   OXC B will send a special RESV-ERROR Message to OXC C for informing 
   the allocation. To ensure proper interpretation of this message, a 
   new error code (Error code 26) is defined. This message is intended 
   for the adjacent node only and should not be propagated further. 
   When the adjacent node receives the RESV-ERROR message with error 
   code 26, it will extract the label assignment. At that point, this
   OXC can start to program the switch fabric for this connection. 
   
   We show the messages passing at OXC B in Fig 2. 

       +-----+           +-----+     RESV      +-----+
  Prev | OXC |           |OXC  | <------------ |OXC  |      
  -----|  A  |    RESV   | B   |               | C   |---Next
  OXC  |     | <-------- |     | ------------> |     |   OXC
       +-----+           +-----+   RESV-ERR(26)+-----+


       Fig. 2 Messages passing at OXC B. OXC B allocates two labels
              for links L and L' at Fig 1.

   Because each uni-directional link serves as an incoming link for only
   one OXC, it is impossible that two OXCs can engage in a contention 
   where two OXCs assign the same wavelength on a uni-directional link 
   for two different sessions. Thus, the contention problem, as 
   addressed in both [4] and [5], does not arise. We therefore do not 
   need additional mechanism to resolve the contention. This reduces 
   the complexity of extension for setting up bi-directional OSP. 

   The assignment of labels is carried out by the label manager under 
   the consideration of bandwidth constraint and wavelength constraint.
   Under the constraint of wavelength continuity, the label manager 
   will use the wavelength suggested in the Label Request messages.
   The OSP in each direction will use the same wavelength from end to
   end.

   When no label can be assigned due to resource constraint or other
   reasons (such as rejected by policy control), an RESV-Err message 
   will be sent and propagated toward the responding OXC. That will 
   trigger the labels allocated to be torn down and cause the session 
   to fail. 

7. Operation for Teardown Messages

   An ResvTear message must delete the reserved labels for both 
   directions (one going forward and the other going backward) and 
   travels towards all OXCs to the initiating OXC. A PathTear message 
   travels towards all OXCs to the responding OXC and deletes the path 
   state, as well as all dependent reservation state, along the way. 
   A PathTear (ResvTear) message may be conceptualized as a reversed-
   sense Path message (Resv message, respectively).
 
8. Security Considerations
   
   No new security issues are raised in this document. See [1] for a 
   general discussion of security issues for RSVP. 

9. References
 
   [1] Braden, R., Zhang, L., Berson, S., et al, "Resource ReserVation 
       Protocol -- Version 1 Functional Specification," RFC 2205, 
       September 1997. 
   [2] Awduche, D. O., Rekhter, Y., Drake, J., Coltun, R., "Multi-
       Protocol Lambda Switching: Combining MPLS Traffic Engineering 
       Control with Optical Crossconnects," Internet Draft, draft-
       awduche-mpls-te-optical-00.txt, October 1999. 
   [3] Awduche, D. O., Berger, L., Gan, D.-H., Li, T., Swallow, G., 
       Srinivasan, V., "Extensions to RSVP for LSP Tunnels," Internet 
       Draft, draft-ietf-mpls-rsvp-lsp-tunnel-04.txt, September 1999. 
   [4] Lang, J. P., Mitra, K., Drake, J., "Extensions to RSVP for 
       optical networing," Internet Draft, 
       draft-lang-mpls-rsvp-oxc-00.txt,  March 2000 
   [5] Saha, D., Rajagopalan, B., Tang, B., "RSVP Extensions for 
       Signaling Optical Paths," Internet Draft,
       draft-saha-rsvp-optical-signaling-00.txt,  March 2000 

10. Acknowledgement
   
   The authors would like to thank Frank Barnes for the helpful
   discussion and encouragement.

11. Authors' Addresses

   Dan Guo                            James Fu                         
   Sorrento Networks, Inc.            Sorrento Networks, Inc.          
   9990 Mesa Rim	              9990 Mesa Rim                     
   San Diego, CA 92121	              San Diego, CA 92121               
   Voice: +1 (858) 450-4964           Voice: +1 (858) 450-4924          
   Email: dguo@sorrentonet.com        Email: jfu@sorrentonet.com        
			       
   Leah Zhang                         Raymond Cheung
   Sorrento Networks, Inc.            Sorrento Networks, Inc.           
   9990 Mesa Rim	              9990 Mesa Rim                     
   San Diego, CA 92121	              San Diego, CA 92121               
   Voice: +1 (858) 450-4977           Voice: +1 (858) 450-4952
   Email: leahz@sorrentonet.com       Email: rcheung@sorrentonet.com   

Guo et al.            Internet Draft                                6
   Internet Draft    draft-sorrento-rsvp-bi-osp-00.txt   Jan.  2001