RFC 3301

Layer Two Tunnelling Protocol (L2TP): ATM access network extensions

πŸ“… published June 2002, from ietf

RFC 3301: Layer Two Tunnelling Protocol (L2TP): ATM access network extensions ✨

Okay bestie, so this one is RFC 3301, published in June 2002 as a Standards Track document. Y. T'Joens (Alcatel), B. Sales (Alcatel) and P. Crivellari (Belgacom) wrote it, and it's all about making L2TP work for ATM access networks πŸ¦‹. The title block doesn't list anything it obsoletes or updates, so it's a standalone add-on. It augments the procedures in RFC 2661 πŸ’–.


Status of This Memo πŸ“œ

Okay so this is an Internet standards track protocol for the Internet community, and the authors are literally asking for discussion and suggestions for improvements 🫢. If you want to know where this protocol sits in the standardization process, check the current edition of "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited, so share away πŸ’….

Copyright (C) The Internet Society (2002). All Rights Reserved. πŸ”₯

Abstract ✨

Okay so this document adds to what RFC 2661 already does, so L2TP can better support ATM SVC (Switched Virtual Circuits) or PVC (Permanent Virtual Circuits) based access networks 🌸. L2TP (Layer 2 Tunneling Protocol) is a protocol for tunnelling PPP packets over packet based networks, and IP networks in particular πŸ¦‹. It also supports remote access over ISDN and PSTN networks. The extensions in this document allow for asymmetric bi-directional call establishment and service selection in the ATM access network. It's giving flexibility πŸ’œ.

Table Of Contents πŸ—‚οΈ

1. Introduction ..................................................  2
1.1 Conventions ..................................................  2
2. Assumptions ...................................................  3
2.1 Topology .....................................................  3
2.2 Connection Establishment .....................................  3
2.3 LCP Negotiation ..............................................  3
3. ATM access enhanced procedures ................................  3
3.1 ATM connectivity .............................................  4
3.2 Tunnel establishment .........................................  4
3.3 Call establishment ...........................................  5
3.3.1 Incoming Call Establishment ................................  5
3.3.2 Outgoing Call Establishment ................................  6
3.4 Framing ......................................................  6
4. Service model issues ..........................................  7
4.1 Authentication ...............................................  7
4.2 Authorization ................................................  7
5. New and extended AVPs .........................................  7
5.1 New AVP Summary ..............................................  7
5.2 New AVP definition ...........................................  8
5.3 Changed AVP Definition ....................................... 12
6. IANA considerations ........................................... 16
7. Security considerations ....................................... 17
8. Acknowledgements .............................................. 17
9. References .................................................... 17
10. Authors Addresses ............................................ 18
11. Full Copyright Statement ..................................... 19

1. Introduction πŸŽ€

Okay so L2TP [RFC2661] is the thing that defines how PPP sessions get tunnelled between a so called L2TP Access Concentrator (LAC) and an L2TP Network Server (LNS) πŸ’…. The main focus of [RFC2661] is supporting HDLC based ISDN/PSTN access networks.

This document augments the procedures in [RFC2661] so they also support ATM SVC or PVC based access networks πŸ¦‹. To cope with ATM access networks, L2TP needs extensions for:

  • (a) the traffic management aspects of ATM connections (e.g. asymmetric bandwidth allocation and service category selection capabilities),
  • (b) the addressing format to be used in switched ATM networks [AESA], and
  • (c) the limitations imposed on LCP negotiation by transporting PPP over AAL5 over the access network segment of the PPP connection [RFC2364].

Within this document, the necessary extensions to [RFC2661] are defined to cope with issues (a) and (b) πŸ’–. Issue (c) isn't specific to ATM, so it may be solved as described in [L2TP_link] ✨.

1.1 Conventions πŸ“–

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 [RFC2119] πŸ”₯.

2. Assumptions 🧠

Okay so this section is all about the assumptions that led to the extensions in this document πŸ’­.

2.1 Topology πŸ—ΊοΈ

The procedures in [RFC2661] mainly apply to access network technology such as PSTN and ISDN, which may be asynchronous HDLC or synchronous HDLC based, respectively 🌈. The aim of this document is to extend L2TP support so user / LAC communication can be based on ATM access network technology. Iconic glow-up πŸ’….

2.2 Connection Establishment πŸ“ž

There are so many existing signalling protocols and ATM service categories, and they're supported to different degrees within ATM based access networks 😭. So this document takes the approach of providing a flexible way to identify ATM connection characteristics while establishing outgoing and incoming L2TP calls. The procedures here allow asymmetric bandwidth allocation and service category selection, in terms of real or non-real time requirements, on the ATM portion of the access network ✨.

The detailed signalling protocol specific information elements that are necessary for switched VC service are explicitly not negotiated during call establishment over the L2TP tunnel. Not me being like "wait, why not?" πŸ™ˆ but that's the design.

To identify the endpoint of the ATM connection within the ATM access network, SVCs can be established based on the ATM end system addressing format [AESA] 🫢. For PVC based services, the PVC can be referred to either by using the ATM end system addressing procedure (Called/Calling Number), or by using a textual name (Service Name). The textual name approach is inspired by the procedures defined within [Auto_PVC] πŸ¦‹.

2.3 LCP negotiation 🀝

The procedures in this document may be combined with the procedures in [L2TP_link] to limit LCP negotiation between the LNS and the user. That way, PPP over AAL5 specific LCP negotiation [RFC2364] gets enforced πŸ’œ.

3. ATM access enhanced procedures 🌸

To illustrate the procedures in this document, this section gives an operational description of Virtual dial-up access through an ATM based access network (e.g., ADSL) 🧚.

Note that the emphasis is on the changes this document proposes relative to [RFC2661] πŸ‘‘.

3.1 ATM connectivity πŸ”Œ

Before the PPP protocol layer gets initiated, a Virtual Connection (VC) MUST be established between the user and the Network Access Server (LAC) 🚨. This virtual connection MAY either be a preconfigured Permanent VC (PVC), where the access network provider, NAS and user agree beforehand on the characteristics of the PVC, or MAY be an on-demand switched VC (SVC), where the negotiation between user, network and NAS takes place by means of an ATM signalling protocol. For establishing PVCs, you can alternatively use the procedures described in [Auto_PVC] ✨.

In both cases, the user is referred to as the virtual dial-in user πŸŽ€.

Before accepting the switched connection from the virtual dial-in user, the LAC MAY check with the LNS whether the call should be accepted. In that situation, the LAC MAY determine, based on parameters in the call establishment message, that this concerns a virtual dial-in user. Or it MAY undertake a partial authentication of the end system/user, in order to bind the end system/user to a specific LNS πŸ”₯.

For PVC based users, the LAC MAY be triggered by the arrival of an LCP Configure Request, or a PPP Authentication request message, from the virtual dial-in user, so it can start talking to the LNS πŸ’…. The exact timing of triggering communication between LAC and LNS is outside the scope of this document, so that's not on us πŸ™Œ.

3.2 Tunnel establishment πŸš‡

If there's no tunnel connection currently to the desired LNS, one is initiated πŸ’–. During tunnel establishment, the LNS and LAC indicate their bearer and framing capabilities to each other, following the normal procedures.

The bearer capability is extended so the LAC can indicate its support for ATM bearer devices πŸ¦‹. Once this indication is positively received, both the LAC and the LNS can use the extensions defined in this document to support ATM based incoming and outgoing calls ✨.

If there's no compatibility between the LNS and LAC according to the extensions in this document, no tunnel establishment can take place 😭. This would happen if the LAC doesn't support any bearer capability that the LNS expects (e.g., an ATM based LAC that only signals the "Broadband" Bearer Capability), or vice versa. That said, LAC and LNS implementations are encouraged to allow seamless interworking with peer devices that don't implement the extensions in this document 🫢. One way to do that is by allowing a graceful fallback to digital bearer capability 🌈.

3.3 call establishment πŸ“ž

During incoming and outgoing broadband call establishment, the following extensions are defined to the existing procedures πŸ’œ.

3.3.1 Incoming Call Establishment πŸ“₯

The ATM connection between the virtual Dial-in user and the LAC MAY either be dynamically or statically established 🌟. When the VC connection is dynamically established (Switched VC), the LAC will receive a SETUP message over the interface that connects it to the ATM network. This specification doesn't assume any specific interface type (UNI or NNI). Permanent VC connections MAY either be manually configured, or configured by using the extensions to the ILMI procedures defined by [Auto_PVC] πŸŽ€.

For switched VC connections, the LAC MAY select the peer LNS based on connection establishment information, or by allowing partial PPP authentication of the virtual Dial-in user πŸ’…. The connection establishment information the LAC can use includes Called Party AESA, Called Party AESA Subaddress, Calling Party AESA or Calling Party AESA Subaddress 🧠.

For Permanent VC connections, the LAC MAY be triggered by (a) the establishment of the PVC, (b) an LCP configure request, (c) partially authenticating the virtual Dial-in user, or (d) means outside the scope of this specification πŸ¦‹.

Within the ICRQ, the LAC MUST indicate a broadband bearer in the Bearer Type AVP (B bit set to 1), MAY include the Service Category AVP, and MAY include the Service Name AVP 🚨. If the LNS would not support the B Bearer bit, it will return an error on the ICRQ message. In that case, the implementation MAY decide to fall back to digital bearer capability, and SHOULD refrain from using the extensions defined in this document 😭. Further, the ICRQ message MAY contain the VPI/VCI identifier AVP. This identifier can further be used at the LNS for management purposes, next to or as an alternative to the Physical Channel ID AVP πŸ’–.

Within the ICCN, both the Tx Connect Speed AVP and the Rx Connect Speed AVP SHOULD be used if an asymmetric connection has been established πŸ”₯.

3.3.2 Outgoing Call Establishment

Okay so for an OCRQ πŸ’… the LNS MUST tell the LAC the minimum and maximum speeds for receive and transmit traffic, from the LAC's point of view 🫢. This is because ATM traffic is bi-directional and asymmetric, so the traffic contracts can look totally different in each direction ✨. Also, to support UBR connections between the LAC and the user, the Minimum BPS MUST be set to zero πŸ™ˆ.

Further during the OCRQ, the LNS MAY include the required Service Category AVP πŸŽ€. That tells the LAC whether the service is real time (rt) or non-real time (nrt) πŸ¦‹. The min and max receive and transmit speeds plus the service category let the LAC set up an ATM connection based on its own capabilities and the ATM access network's capabilities, but still within the service requirements for the PPP layer πŸ’œ.

Real time connectivity can be provided by either CBR or rt-VBR ATM service categories 🌸. Non-real time connectivity can be provided by UBR, nrt-VBR, ABR or GFR ATM service categories 🧚.

Further, the LNS MUST indicate to the LAC in the OCRQ message the called number according to the format described in this document (NSAP format) πŸ’–. When the called number carries an all zero payload, the LAC SHOULD look at the Service Name AVP to bind the tunnel call to an ATM VC connection πŸ‘‘.

Next to the normal AVPs, the OCRP message MAY contain the VPI/VCI identifier AVP πŸ¦‹. This identifier can further be used at the LNS for management purposes, either next to or as an alternative to the Physical Channel ID AVP 🌈.

3.4 Framing

Within this document, the PPP PDU refers to the concatenation of PPP protocol ID, PPP Information and PPP padding fields πŸ“.

In the direction of user to LNS, the PPP PDU is carried on top of an AAL5 connection between user and LAC. The LAC MUST strip off the AAL5 specific fields based on the encapsulation mechanism in use on the ATM connection, i.e. VC multiplexed or LLC encapsulated [RFC2364], and MUST encapsulate the PPP PDU with address and control field, as per HDLC procedures, on the L2TP tunnel πŸŽ€.

In the direction of LNS to user, the PPP PDU is carried on top of an AAL5 connection between LAC and user. The LAC MUST strip the PPP PDU from the address and control field on the L2TP tunnel, and insert the AAL5 specific fields based on the encapsulation mechanism in use on the ATM connection, i.e. VC multiplexed or LLC encapsulated 🫧.

4. Service model issues ✨

4.1 Authentication

In case of ATM switched VC establishment, calling party number information may be used for first level authentication, much the same way as for PSTN or ISDN access πŸ“ž. In case of permanent VC establishment, authentication may not be an issue from the LAC side, because the VC is permanent πŸ”’. Bilateral agreement between LAC and LNS providers may eliminate the authentication phase in the latter case 🀝.

4.2 Authorization

Because ATM connections can be set up with lots of different parameters, some authorization may be required before accepting the establishment of a switched ATM connection from the user with certain ATM traffic parameters 🚦. This authorization may be performed against the ATM specific authentication information (e.g. calling line id), or it may be performed after partial authentication of the user at the PPP level πŸͺͺ. Non authorized access requests result in connection release πŸ’€.

5. New and extended AVPs 🌷

5.1 New AVP Summary

Here's the table of the extra AVPs defined in this document πŸ“‹. The "attr" column is the integer value assigned to each attribute, and it's relative to the vendor ID πŸ”’. The "M" column shows the setting of the "Mandatory" bit in the AVP header for each attribute 🏷️. The "LEN" column is the size of the AVP including the AVP header, and a "+" there means the length changes depending on how long the value field's contents are πŸ“.

The usage list for each entry shows which message types use each AVP. If the abbreviation is in mixed or upper case, that AVP MUST be present in that message type πŸ’ͺ. All lower case means the AVP MAY optionally appear in that message type πŸŒ™. Some AVPs MAY be present only when a corresponding optional AVP or specific setting within the AVP is present, and those are shown in lower case too 🧩.

   Attr    M       Len     Attribute Name (usage)

   40      0       10      Rx Minimum BPS (ocrq)
      32-bit integer indicating the lowest acceptable line speed for the
      call in the receive direction.  Rx indicates the user to LAC
      direction.
   41      0       10      Rx Maximum BPS (ocrq)
      32-bit integer indicating the highest acceptable line speed for
      call in the receive direction.  Rx indicates the user to LAC
      direction.
   42      0       8       Service Category (ocrq, icrq)
      The Service Category indicates the service expected for the call,
      e.g., real time or non-real time.
   43      0       6+      Service Name (ocrq, icrq)
      The Service Name indicates the service name linked to a
      preestablished PVC.
   44      0       26      Calling Sub-Address(icrq)
      20 octet binary encoded NSAP subaddress indicating the Calling
      Party Sub-Address.
   45      0       10      VPI/VCI identifier (icrq, ocrp)
      10 octet binary encoded identification of VPI/VCI values used for
      incoming calls.

5.2. New AVP definition ✨

okay so this is where every new AVP gets its own spotlight πŸŽ€ the list below names the new AVPs defined in this document and explains how each one should behave when it shows up in a message πŸ’…

Rx Minimum BPS (OCRQ) πŸ¦‹

Rx Minimum BPS is Attribute Type 40 and it encodes the lowest acceptable line speed for this call in the receive direction, for the cases where asymmetric transmission is needed 🌸

The Attribute Value field looks like this:

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Rx Minimum BPS                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The Rx Minimum BPS is a 32 bit value indicating the speed in bits per second πŸ’œ

This AVP MAY be included within the OCRQ, and SHOULD only be included when the LAC indicated broadband bearer support in the bearer capabilities AVP during tunnel establishment.

This AVP may be hidden (the H-bit may be set to 0 or 1). The M- bit for this AVP must be set to 0. The Length (before hiding) of this AVP is 10 🧚

Rx Maximum BPS (OCRQ) 🌈

Rx Maximum BPS is Attribute Type 41, and it's the mirror image of the one above: it encodes the highest acceptable line speed for this call in the receive direction, again for asymmetric transmission cases πŸ¦‹

The Attribute Value field:

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Rx Maximum BPS                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The Rx Maximum BPS is a 32 bit value indicating the speed in bits per second.

This AVP MAY be included within the OCRQ, and SHOULD only be included when the LAC indicated broadband bearer support in the bearer capabilities AVP during tunnel establishment.

This AVP may be hidden (the H-bit may be set to 0 or 1). The M- bit for this AVP must be set to 0. The Length (before hiding) of this AVP is 10 ✨

Service Category πŸ’…

Service Category is Attribute Type 42 and it's the optional extra info about the Quality of Service you expect for call establishment on the broadband bearer medium. It's giving "bonus details" energy πŸŽ€

The Attribute Value field:

   0                   1
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Resvd for future QoS ind.   |S|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The Attribute Value field is a 16-bit mask with one bit defined. The S bit tells you whether the service requirement is non real time (S bit set to 0) or real time (S bit set to 1) πŸ•°οΈ The other bit fields are reserved for future use, so hands off for now πŸ™…β€β™€οΈ

The Service Category AVP MAY be present in OCRQ and ICRQ messages, and SHOULD only be included when the LAC indicated broadband bearer support in the bearer capabilities AVP during tunnel establishment.

This AVP may be hidden (the H-bit may be set to 0 or 1). The M- bit for this AVP must be set to 0. The Length (before hiding) of this AVP is 8 πŸ’–

Service Name (OCRQ, ICRQ) 🧚

Service Name is Attribute Type 43, and it gives the peer a textual name for referring to an ATM VC connection. Basically a nickname for the connection, so everyone knows which one we mean 🌸

The Attribute Value field:

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Service Name (arbitrary number of octets) ....
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The Service Name can be any length, but must be at least 1 octet. The Service Name is UTF-8 encoded. [10646]

The Service Name should be unique at least to the LNS/LAC combination πŸ”₯

The Service Name AVP MAY only be provided when the Called Number field is encoded as all zeros in OCRQ. The Service Name AVP MAY be present in OCRQ and ICRQ messages, and SHOULD only be included when the LAC indicated broadband bearer support in the bearer capabilities AVP during tunnel establishment.

This AVP may be hidden (the H-bit may be set to 0 or 1). The M- bit for this AVP must be set to 0. The length of this attribute is arbitrary, however at least 7 🫢

Calling Sub-Address (ICRQ) πŸ‘‘

Calling Sub-Address is Attribute Type 44, and it encodes extra Calling Party subaddress info πŸ¦‹

The Attribute Value field:

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              NSAP                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         NSAP (cont'd)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         NSAP (cont'd)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         NSAP (cont'd)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         NSAP (cont'd)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The Calling Sub-Address AVP MUST be encoded as a 20 octet binary encoded NSAP address when the B bit is set in the Bearer Type AVP. This binary NSAP format covers a wider range of address encapsulation methods than an ASCII field 🌈 The structure of the NSAP address (e.g., E.164, ICD, DCC) is defined in [AESA].

The Calling Sub-Address number AVP MAY be present in ICRQ, and SHOULD only be available if the Calling Party number is also within the message.

This AVP may be hidden (the H-bit may be 0 or 1). The M-bit for this AVP MUST be set to 0. The Length (before hiding) of this AVP is 26 ✨

VPI/VCI identifier (ICRQ, OCRP) πŸ“

VPI/VCI identifier is Attribute Type 45, and it encodes the VPI/VCI value used at the ATM interface at the LAC. This is the ATM address info, and it's literally the bread and butter of this whole thing πŸ₯–πŸ’…

The Attribute Value field:

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |resvd  |           VPI         |              VCI              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The VPI/VCI identifier is a 32 bit value encoding the VPI (12 bits) and VCI (16 bits) value.

This AVP MAY be included within the ICRQ and OCRP, and SHOULD only be included when the LAC indicated broadband bearer support in the bearer capabilities AVP during tunnel establishment.

This AVP may be hidden (the H-bit may be set to 0 or 1). The M- bit for this AVP must be set to 0. The Length (before hiding) of this AVP is 10 πŸ¦‹

5.3. Changed AVP Definition πŸ’…

Okay so this part is about the AVPs whose contents changed compared to [RFC2661] so they can support everything we just went over. Let's go πŸ¦‹

Bearer Capabilities

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Resvd for future bearer capability definitions         |B|A|D|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The Bearer Capabilities AVP inside an SCCRQ or SCCRP tells you which bearer capabilities the sender can provide for outgoing calls. This document extends the existing AVP with the B bit. If bit B is set, broadband access is supported (ATM) ✨

Trying to set up an outgoing call with the bearer type set to B, when the bearer capability didn't indicate that, will get the call rejected with Result Code 5 'Call failed due to lack of appropriate facilities being available (permanent condition)'. πŸ™ˆ

In the case where the LAC only supports the B bit and the LNS wouldn't recognize the B bit, no outgoing calls are possible. Note that when the LAC only has ATM based devices, it may still opt for seamless fall back to digital bearer types πŸ’–

This specification assumes that a non-compliant LNS will categorize a Bearer Capabilities AVP where the B bit is set as an unrecognized AVP, and then the tunnel establishment fails. This is to be indicated by a Result Code '2-General error - Error Code indicates the problem', with Error Code '3- Reserved field was non-zero'. 😭

(Tx) Minimum BPS

The (Tx) Minimum BPS AVP encodes the lowest acceptable line speed for this call in the transmit direction. πŸ“ The (Tx) Minimum BPS AVP MAY be used in OCRQ. If the Rx Minimum BPS AVP, as defined within this document, isn't available in the message, then symmetric transmission is implied, with both minimum receive and transmit bit-rates equal to Minimum BPS. 🌸

(Tx) Maximum BPS

The (Tx) Maximum BPS AVP encodes the highest acceptable line speed for this call in the transmit direction. The (Tx) Maximum BPS AVP MAY be used in OCRQ. If the Rx Maximum BPS AVP, as defined within this document, isn't available in the message, then symmetric transmission is implied, with both maximum receive and transmit bitrates equal to Maximum BPS. 🧚

Bearer Type

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       Resvd for future bearer types definitions         |B|A|D|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The Bearer Type AVP encodes the bearer type for the requested call. This document extends the bearer types with an indication of ATM bearer support (B-bit). If bit B is set, broadband access is requested (ATM). If bit A is set, analogue access is requested. If bit D is set, digital access is requested. πŸ¦‹

Note that in the OCRQ, all 3 bits (B, A, D) may be set, which means the call may be of either type. The B bit SHOULD only be set if the Broadband capability was indicated during tunnel establishment. πŸ‘‘

Q.931 Cause Code

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          Cause Code           |   Cause Msg   | Advisory Msg...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The Cause code hasn't changed from [RFC2661], except that it can also carry Cause Codes specific to ATM signalling messages. Those cause codes can be found in ATM Forum UNI 4.0 [UNI] and the references thereof. 🌈 The Cause code should be interpreted relative to the Bearer Type in use for the specific call. 🫢

Called Number

The Called Number AVP, Attribute Type 21, encodes the AESA number to be called for an OCRQ, and the Called number at the LAC for an ICRQ. πŸ“ž

The Attribute Value field for this AVP has a changed encoding from [RFC2661]:

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              NSAP                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         NSAP (cont'd)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         NSAP (cont'd)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         NSAP (cont'd)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         NSAP (cont'd)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The Called Number AVP MUST be encoded as a 20 octet binary encoded NSAP address when the B bit is set in the Bearer Type AVP. The NSAP binary encoded address gives you a broader range of address encapsulation methods than an ASCII field, which is so iconic πŸ”₯ The structure of the NSAP address (e.g., E.164, ICD, DCC) is defined in [AESA].

The Called number AVP MUST be present in OCRQ, and MAY be present in ICRQ.

If the Called Number AVP in an OCRQ carries an all zero NSAP address, the Service Name AVP SHOULD provide further information to bind the L2TP call to a specific VC connection. See also [Auto_PVC]. 🧚

This AVP may be hidden (the H-bit may be 0 or 1). The M-bit for this AVP MUST be set to 0. The Length (before hiding) of this AVP is 26. πŸ’œ

Calling Number

The Calling Number AVP, Attribute Type 22, encodes the Calling Party AESA as received from the Virtual Dial-in User. πŸ’–

The Attribute Value field for this AVP has a changed encoding from [RFC2661]:

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              NSAP                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         NSAP (cont'd)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         NSAP (cont'd)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         NSAP (cont'd)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         NSAP (cont'd)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The Calling Number AVP MUST be encoded as a 20 octet binary encoded NSAP address when the B bit is set in the Bearer Type AVP. The NSAP binary encoded address gives you a broader range of address encapsulation methods than an ASCII field. The structure of the NSAP address (e.g., E.164, ICD, DCC) is defined in [AESA]. ✨

The Calling number AVP MAY be present in ICRQ.

This AVP may be hidden (the H-bit may be 0 or 1). The M-bit for this AVP MUST be set to 0. The Length (before hiding) of this AVP is 26. πŸŽ€

Sub-Address

The Sub-Address AVP, Attribute Type 23, encodes additional Called Party subaddress information. 🌸

The Attribute Value field for this AVP has a changed encoding from [RFC2661]:

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              NSAP                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         NSAP (cont'd)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         NSAP (cont'd)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         NSAP (cont'd)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         NSAP (cont'd)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The Sub-Address AVP MUST be encoded as a 20 octet binary encoded NSAP address when the B bit is set in the Bearer Type AVP. The NSAP binary encoded address gives you a broader range of address encapsulation methods than an ASCII field. The structure of the NSAP address (e.g., E.164, ICD, DCC) is defined in [AESA]. πŸ¦‹

The Sub-Address number AVP MAY be present in ICRQ and OCRQ, and SHOULD only be available if the Called Party number is also within the message. πŸ’…

This AVP may be hidden (the H-bit may be 0 or 1). The M-bit for this AVP MUST be set to 0. The Length (before hiding) of this AVP is 26. 🌈


6. IANA Considerations πŸ”₯

This document requires IANA to allocate 6 new type values for the following AVPs (see section 5.2) :

  • Rx Minimum BPS
  • Rx Maximum BPS
  • Service Category
  • Service Name
  • Calling Sub-Address
  • VPI/VCI Identifier

This document further defines a new bit (B) in the bearer capabilities and bearer type AVPs (section 5.3). πŸ‘‘

This document defines a flag field in the Service Category AVP. Only one bit in this flag has been assigned within this document (S). Further assignments fall under the rule of "Specification Required", i.e. values and their meaning must be documented in an RFC or other permanent and readily available reference, in sufficient detail so that interoperability between independent implementations is possible. πŸ“œ

7. Security Considerations πŸ’€

No extra security risk outside these specified by [RFC2661] are foreseen. 😳 Bestie, this is the one part where we don't add anything new, so keep [RFC2661] in your back pocket πŸ”

8. Acknowledgements 🫢

The authors would like to thank Laurent Hermans for his work on earlier versions of this document, Juha Heinanen (Telia) and David Allen (Nortel Networks) for their constructive discussion on the document during the Minneapolis IETF meeting, and Mark Townsley (cisco) for his hint on the use of the VPI/VCI identifier AVP. The whole squad really came through 🌟

9. References πŸ“šβœ¨

Okay bestie, here's the reading list! These are all the docs this spec leans on, so you can go deep if you want πŸ€“

  • [RFC2661]: Townsley, W., Valencia, A., Rubens, A., Singh Pall, G., Zorn, G. and B. Palter, "Layer Two Tunnelling Protocol (L2TP)", RFC 2661, August 1999.
  • [RFC2119]: Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
  • [RFC2364]: Gross, G., Kaycee, M., Lin, A., Malis, A. and J. Stephens, "PPP over AAL5", RFC 2364, July 1998.
  • [UNI]: User-Network Interface (UNI) Specification, Version 4.0, ATM Forum, July, 1996
  • [AESA]: ATM Forum Addressing : Reference Guide, version 1.0, ATM Forum, Final Ballot, January 1999
  • [L2TP_link]: Townsley, M. and W. Palter, "L2TP Link Extensions", Work in Progress.
  • [Auto_PVC]: ATM Forum, "Auto-configuration of PVCs", af-nm-0122.000, March 1999
  • [10646]: ISO/IEC, Information Technology - Universal Multiple-Octet Coded Character Set (UCS) - Part 1: Architecture and Basic Multilingual Plane, May 1993, with amendments

10. Authors Addresses πŸ’ŒπŸŽ€

Here's where you can find the authors, bestie! Yves, Paolo, and Bernard all worked on this one 🫢

Yves T'joens
Alcatel Network Strategy Group
Francis Wellesplein 1, 2018 Antwerp, Belgium
Phone : +32 3 240 7890
EMail : yves.tjoens@alcatel.be
Paolo Crivellari
Belgacom
bd du Roi Albert II 27
B-1030 Bruxelles
Phone: +32 2 202 9698
EMail: paolo.crivellari@belgacom.be
Bernard Sales
Alcatel Network Strategy Group
Francis Wellesplein 1, 2018 Antwerp, Belgium
Phone : +32 3 240 9574
EMail : bernard.sales@alcatel.be

Okay so the legal part is super important, so I'm keeping it word for word πŸ’… No cap, you don't want to mess with this stuff.

Copyright (C) The Internet Society (2002).  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 implementation 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 languages other than
English.

The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgement 🫢

Funding for the RFC Editor function is currently provided by the Internet Society. Thank you, Internet Society! πŸ’–

πŸ“¦ where this page comes from