Network Working Group                                         Lou Berger
Internet Draft                                      LabN Consulting, LLC
Expiration Date: January 2001
                                                          Jason Jeffords
                                                    Integral Access Inc.

                                                               July 2000


                  MPLS/IP Header Compression over PPP


                draft-ietf-mpls-hdr-comp-over-ppp-00.txt

Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.  Internet-Drafts are working
   documents of the Internet Engineering Task Force (IETF), its areas,
   and its working groups.  Note that other groups may also distribute
   working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   To view the current status of any Internet-Draft, please check the
   "1id-abstracts.txt" listing contained in an Internet-Drafts Shadow
   Directory, see http://www.ietf.org/shadow.html.

Abstract

   This document describes an option for negotiating the use of MPLS and
   IP header compression over the Point-to-Point Protocol [STD51].  It
   defines extensions to the PPP Control Protocol for MPLS [LABELS].  It
   is based on, and borrows heavily from, IP Header Compression over PPP
   [RFC2509].  MPLS/IP header compression is defined in [CMPLS] and may
   be applied to MPLS datagrams transporting IPv4 and IPv6 datagrams in
   combination with TCP, UDP and RTP transport protocols.











Berger & Jeffords                                               [Page 1]


Internet Draft  draft-ietf-mpls-hdr-comp-over-ppp-00.txt       July 2000


   Changes from previous version:

   o  Changed name to draft-ietf-mpls-hdr-comp-over-ppp-00.txt.
   o  Added section on open issues.
   o  Some minor text cleanup.


1. Introduction

   This document defines the operation of MPLS/IP header compression
   over PPP.  MPLS/IP header compression is defined in [CMPLS] and is
   based on [RFC2507] and [RFC2508].  The compression of MPLS headers
   with IP, IP/TCP and IP/UDP/RTP headers is supported.  This document
   will define the negotiation of MPLS/IP Header Compression related
   options and the PPP data link layer protocol field values to be used
   for datagrams with compressed headers.  This document is essentially
   a reversion of [RFC2509] that has been adapted to the support of MPLS
   header compression.

   To support MPLS/IP header compression over PPP, each end of the link
   must agree on the use of compression and on the associated set of
   configuration options.  PPP supports the negotiation of link
   parameters for network layer protocols via a family of network
   control protocols, or NCPS.  This document defines a configuration
   option to be used with the PPP network control protocol for MPLS
   defined in Section 4 of [LABELS].  The defined option is the first
   option supported by the MPLS NCP.

   MPLS/IP header compression [CMPLS] relies on the link layer
   indicating the type of datagram carried in a link layer frame.  This
   document defines ten new types for the PPP data link layer protocol
   field.  Eight of these types have corresponding values defined in
   [RFC2509] that support IP header compression.  [CMPLS] allows these
   values to be reused when supporting MPLS/IP header compression.  The
   values are not reused so that there is no ambiguity as to which types
   of headers are being compressed.

   If the perceived cost of the additional types is higher than the
   value, particularly in debugging, of uniquely identifying the
   compressed header types then the values defined in [RFC2509] will be
   reused.

   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.






Berger & Jeffords                                               [Page 2]


Internet Draft  draft-ietf-mpls-hdr-comp-over-ppp-00.txt       July 2000


2. Configuration Option

   This document specifies the MPLS-Compression-Protocol configuration
   option.  It is the first MPLS LCP configuration option.  The format
   of the MPLS-Compression-Protocol option and the RTP-Compression
   suboption are the same as defined in [RFC2209].  A new suboption is
   defined to support the negotiation of one MPLS specific compression
   parameter.


2.1. Configuration Option Format

   Only one MPLS-Compression-Protocol configuration option may be
   negotiated.  The negotiate option describes the capabilities of the
   decompressor (receiving side) of the peer that sends the Config-Req.


   Description

      This NCP configuration option is used to negotiate parameters for
      MPLS/IP Header Compression.  The option format is summarized
      below.  The fields are transmitted from left to right.

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     Type      |    Length     |  MPLS/IP-Compression-Protocol |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           TCP_SPACE           |         NON_TCP_SPACE         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |         F_MAX_PERIOD          |          F_MAX_TIME           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           MAX_HEADER          |          suboptions...
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Type
      TBD

   Length
      >= 14

      The length may be increased if the presence of additional
      parameters is indicated by additional suboptions.

   MPLS/IP-Compression-Protocol

      The MPLS/IP-Compression-Protocol field is two octets and indicates
      the compression protocol desired.  Values for this field are



Berger & Jeffords                                               [Page 3]


Internet Draft  draft-ietf-mpls-hdr-comp-over-ppp-00.txt       July 2000


      always the same as the PPP Data Link Layer Protocol field values
      for that same compression protocol.

      Current values are assigned as follows:

      Value (in hex)          Protocol

      TBD                     MPLS/IP Header Compression

   TCP_SPACE
      The TCP_SPACE field is two octets and indicates the maximum value
      of a context identifier in the space of context identifiers
      allocated for TCP.

         Suggested value: as specified in [RFC2509] (15)

      TCP_SPACE must be at least 0 and at most 255 (The value 0 implies
      having one context).

   NON_TCP_SPACE
      The NON_TCP_SPACE field is two octets and indicates the maximum
      value of a context identifier in the space of context identifiers
      allocated for non-TCP. These context identifiers are carried in
      COMPRESSED_NON_TCP, COMPRESSED_UDP and COMPRESSED_RTP packet
      headers.

         Suggested value: as specified in [RFC2509] (15)

      NON_TCP_SPACE must be at least 0 and at most 65535 (The value 0
      implies having one context).

   F_MAX_PERIOD
      Maximum interval between full headers.  No more than F_MAX_PERIOD
      COMPRESSED_NON_TCP headers may be sent between FULL_HEADER
      headers.

         Suggested value: as specified in [RFC2509] (256)

      A value of zero implies infinity, i.e. there is no limit to the
      number of consecutive COMPRESSED_NON_TCP headers.











Berger & Jeffords                                               [Page 4]


Internet Draft  draft-ietf-mpls-hdr-comp-over-ppp-00.txt       July 2000


   F_MAX_TIME
      Maximum time interval between full headers.  COMPRESSED_NON_TCP
      headers may not be sent more than F_MAX_TIME seconds after sending
      the last FULL_HEADER header.

         Suggested value: as specified in [RFC2509] (5 seconds)

      A value of zero implies infinity.

   MAX_HEADER
      The largest header size, excluding MPLS headers, in octets that
      may be compressed.

         Suggested value: as specified in [RFC2509] (168 octets)

      The value of MAX_HEADER should be large enough so that at least
      the outer network layer header can be compressed.  To increase
      compression efficiency MAX_HEADER should be set to a value large
      enough to cover common combinations of network and transport layer
      headers.

      Note that this parameter doesn't include the MPLS headers.  To get
      the total bytes that may be compressed, the value from this
      parameter must be combined with the value of MAX_LABELS, defined
      in Section 2.3, multiplied by the size of an MPLS label entry (4
      octets.)

   suboptions
      The suboptions field consists of zero or more suboptions.  Each
      suboption consists of a type field, a length field and zero or
      more parameter octets, as defined by the suboption type.  The
      value of the length field indicates the length of the suboption in
      its entirety, including the lengths of the type and length fields.

             0                   1                   2
             0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |     Type      |    Length     |  Parameters...
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+












Berger & Jeffords                                               [Page 5]


Internet Draft  draft-ietf-mpls-hdr-comp-over-ppp-00.txt       July 2000


2.2. RTP-Compression Suboption

   The RTP-Compression suboption is included in the NCP MPLS-
   Compression-Protocol option if MPLS/IP/UDP/RTP compression is to be
   enabled.  This suboption is identical to the RTP-Compression
   suboption in [RFC2209].

   After successful negotiation of parameters for MPLS/IP Header
   Compression the use of Protocol Identifiers FULL_MPLS_HEADER,
   COMPRESSED_MPLS, COMPRESSED_TCP, COMPRESSED_TCP_NODELTA and
   COMPRESSED_NON_TCP is enabled, regardless of the presence of an RTP-
   Compression suboption.

   Description

      Enable use of Protocol Identifiers COMPRESSED_RTP, COMPRESSED_UDP
      and CONTEXT_STATE as specified in [CMPLS] and [RFC2508].

             0                   1
             0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |     Type      |    Length     |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Type
            1

         Length
            2


2.3. Stack-Depth Suboption

   The stack-depth suboption is included in the MPLS-Compression-
   Protocol option to negotiate the maximum number of MPLS label stack
   entries that can be processed by the decompressor.  If the suboptions
   is not present, the default specified in [CMPLS] must be used.
   (Currently 1.)













Berger & Jeffords                                               [Page 6]


Internet Draft  draft-ietf-mpls-hdr-comp-over-ppp-00.txt       July 2000


   Description

      Used to negotiate the maximum number of MPLS label stack entries
      that may be compressed.

             0                   1                   2
             0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |     Type      |    Length     |   MAX_LABELS  |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


         Type
            2

         Length
            3

         MAX_LABELS
            Indicates the maximum number of label stack entries (MPLS
            headers) that may be compressed.


3. Demultiplexing of Datagrams

   A total of ten header format values are defined to support MPLS/IP
   header compression over PPP.  Three of these values are defined to
   support the new formats defined in MPLS/IP header compression
   [CMPLS].  The remaining were previously defined in [RFC2209] to
   support IP and IP/UDP/RTP compression.  While these header format
   values could be reused used to support MPLS/IP header compression,
   they are not.  They are not reused so that there is no ambiguity as
   to which types of headers are being compressed.  Note that the
   FULL_HEADER type define in [RFC2209] is not used by [CMPLS].

   The term "M_" is prepended to the defined values to distinguish them
   from [RFC2209] values.  The "M_" should be ignored when mapping the
   types to the types used in [CMPLS].

      M_FULL_MPLS_HEADER
         The frame contains a datagram with a compressed header with the
         format specified in [CMPLS].
            Value: TBD

      M_COMPRESSED_MPLS_8
         The frame contains a datagram with a compressed header with the
         format specified in [CMPLS], using 8-bit CIDs.
            Value: TBD



Berger & Jeffords                                               [Page 7]


Internet Draft  draft-ietf-mpls-hdr-comp-over-ppp-00.txt       July 2000


      M_COMPRESSED_MPLS_16
         The frame contains a datagram with a compressed header with the
         format specified in [CMPLS], using 16-bit CIDs.
            Value: TBD

      M_COMPRESSED_TCP
         The frame contains a datagram with a compressed header with the
         format specified in [RFC2507] and as modified by [CMPLS].
            Value: TBD

      M_COMPRESSED_TCP_NODELTA
         The frame contains a datagram with a compressed header with the
         format specified in [RFC2507] and as modified by [CMPLS].
            Value: TBD

      M_COMPRESSED_NON_TCP
         The frame contains a datagram with a compressed header with the
         format specified in [RFC2507] and as modified by [CMPLS].
            Value: TBD

      M_COMPRESSED_RTP_8
         The frame contains a datagram with a compressed header with the
         format specified in [RFC2508] and as modified by [CMPLS], using
         8-bit CIDs.
            Value: TBD

      M_COMPRESSED_RTP_16
         The frame contains a datagram with a compressed header with the
         format specified in [RFC2508] and as modified by [CMPLS], using
         16-bit CIDs.
            Value: TBD

      M_COMPRESSED_UDP_8
         The frame contains a datagram with a compressed header with the
         format specified in [RFC2508] and as modified by [CMPLS], using
         8-bit CIDs.
            Value: TBD

      M_COMPRESSED_UDP_16
         The frame contains a datagram with a compressed header with the
         format specified in [RFC2508] and as modified by [CMPLS], using
         16-bit CIDs.
            Value: TBD

   The value for CONTEXT_STATE defined in [RFC2509], 2065 (hex), is
   reused to support MPLS/IP header compression.





Berger & Jeffords                                               [Page 8]


Internet Draft  draft-ietf-mpls-hdr-comp-over-ppp-00.txt       July 2000


4. Security Considerations

   No new security issues are raised by this document.  Please see
   [RFC2509] for a discussion of existing considerations associated with
   the negotiation of header compression.  See [RFC2507] and [RFC2508]
   for a detailed discussion of existing considerations associated with
   header compression.


5. IANA Considerations

   TBD


6. Acknowledgments

   This document steals heavily from the text and ideas of [RFC2509].


7. Open/Potential Issues

   This draft uses format values new values for all types used in MPLS
   header compression.  Most of these values could be shared with
   standard IP header compression, but are not in order to allow for
   unambiguous decoding of frames, primarily for debugging purposes.  If
   it is deemed that this isn't sufficient reason to allocate these new
   values, the document will need to be updated to share the [RFC2209]
   values.























Berger & Jeffords                                               [Page 9]


Internet Draft  draft-ietf-mpls-hdr-comp-over-ppp-00.txt       July 2000


8. References


   [CMPLS] Berger, L., Jeffords, J., "MPLS/IP Header Compression",
           draft-berger-mpls-hdr-comp-00.txt, January 2000.

   [LABELS] Rosen, Rekhter, Tappan, Farinacci, Fedorkow, Li, Conta,
            "MPLS Label Stack Encoding",
            draft-ietf-mpls-label-encaps-07.txt, September 1999.

   [RFC1144] Jacobson, V., "TCP/IP Compression for Low-Speed Serial
             Links", RFC 1144, February 1990.

   [RFC2507] Degermark, M., Nordgren, B. and S. Pink, "IP Header
             Compression", RFC 2507, February 1999.

   [RFC2508] Casner, S., Jacobson, V., "Compressing IP/UDP/RTP
             Headers for Low-Speed Serial Link", RFC 2508, February
             1999

   [RFC2509] Engan, M., Casner, S., Bormann, C., "IP Header Compression
             over PPP", RFC 2509, February 1999

   [STD51] Simpson, W., "The Point-to-Point Protocol (PPP)", STD 51,
           RFC 1661, July 1994.


9. Authors' Addresses

   Lou Berger                       Jason Jeffords
   LabN Consulting, LLC             Integral Access Inc.
   Voice:  +1 301 468 9228          6 Omni Way
   Email:  lberger@labn.net         Chelmsford, MA 01824
                                    Voice:  +1 978 256 8833
                                    Email:  jjeffords@integralaccess.com
















Berger & Jeffords                                              [Page 10]