Layer Two Tunneling Protocol (L2TP) Differentiated Services Extension
Extracted elements (17)
CCDS AVP and SDS AVP are independent; CCDS handles diffserv for the control connection while SDS handles data sessions. The PHB code in one SHOULD NOT imply anything about the PHB code in the other, allowing implementations to support either or both.
Signaling PHBs via L2TP is more appropriate than signaling DSCPs because it maintains a consistent end-to-end differentiated service as the L2TP connection traverses arbitrary DS domain boundaries, where DSCPs may be rewritten at each boundary node.
It is acceptable that outer DS field markings on packets arriving on a given control connection or session differ from what the tunnel ingress node originally set, because DSCPs may be legitimately rewritten at DS domain boundaries.
A set of PHBs signaled using a single PHB ID MUST NOT cause additional packet reordering within an individual connection versus using a single PHB, per RFC 3140.
If the session initiator is unwilling to omit SDS upon receiving a response with no SDS AVP, it MUST send a CDN containing Result Code 12 indicating SDS AVP value (48) as the reason.
If the session terminator does not support the requested PHB code upon receipt of ICRQ/OCRQ with SDS AVP, it MUST ignore the SDS AVP and send ICRP/OCRP without the SDS AVP.
If the tunnel initiator receives an SCCRP with a CCDS AVP value different from that requested and is unwilling to use it, it MUST send a StopCCN with Result Code 8 indicating CCDS AVP value (47).
If the tunnel terminator cannot support the requested PHB code, it MUST send an SCCRP with a CCDS AVP indicating the PHB code it is willing to use, serving as a counter-offer.
If the tunnel terminator provides no support for the CCDS AVP upon receipt of an SCCRQ containing it, it MUST ignore the AVP and send an SCCRP without the CCDS AVP.
Upon successful establishment of an L2TP tunnel control connection or session employing DS AVPs, both LAC and LNS MUST use their own PHB-to-DSCP mappings to map the PHB to a DSCP and place it in the DS field of the outer IP header of transmitted packets.
The Control Connection DS (CCDS) AVP (Attribute Type 47, Vendor ID 0) is used to negotiate the desired Per Hop Behavior (PHB) code for all packets within an L2TP tunnel's control connection. It is carried in SCCRQ and SCCRP messages.
The PHB code is a left-justified 16-bit field using Per Hop Behavior (PHB) encoding as defined in RFC 3140. Both CCDS and SDS AVPs use this same encoding.
The Session DS (SDS) AVP (Attribute Type 48, Vendor ID 0) is used to negotiate the desired PHB code for all packets within an individual L2TP session. It is carried in ICRQ, ICRP, OCRQ, and OCRP messages.
IANA assigned AVP Attribute Type 47 for the CCDS AVP and Attribute Type 48 for the SDS AVP within the L2TP namespace. IANA also assigned Result Code 8 (StopCCN, mismatching CCDS value) and Result Code 12 (CDN, mismatching SDS value).
Modifying a DSCP MAY constitute theft or denial of service, so protocols using this encoding MUST be adequately protected. No new security issues beyond those in RFC 2474 and RFC 2475 are introduced.
The CCDS AVP is encoded as a fixed 8-octet AVP with Vendor ID 0, Attribute Type 47, optional M and H bits, and a 16-bit left-justified PHB Code field in the last two octets. The length (before hiding) MUST be 8 octets.
The SDS AVP is encoded as a fixed 8-octet AVP with Vendor ID 0, Attribute Type 48, optional M and H bits, and a 16-bit left-justified PHB Code field. The length (before hiding) MUST be 8 octets.