L2TP Disconnect Cause Information
Extracted elements (16)
The AVP is intended primarily for the compulsory tunneling case where the LAC and LNS are owned or managed by different entities, making PPP-specific disconnect information especially valuable for accounting and debugging. It has no effect on tunnel or PPP session functioning.
A draft form of this AVP used Vendor ID 43 (3Com Corporation) and vendor-specific Attribute Type 46. Implementations MAY accept AVPs with these values as equivalent, but SHOULD NOT transmit AVPs using these legacy values.
For authentication errors (Disconnect Codes 13–16), the Control Protocol Number MUST correspond to the PPP Control Protocol number for the authentication protocol in use.
For LCP errors (Disconnect Codes 5–12), the Control Protocol Number MUST be set to C021 hexadecimal (LCP). These codes cover FSM timeout, no LCP packets received, magic number error, echo request timeout, and MP bundle negotiation failures.
For NCP errors (Disconnect Codes 17–20), the Control Protocol Number SHOULD correspond to the PPP Network Control Protocol number in use. Where multiple NCPs are in use, multiple copies of this AVP MAY be given; otherwise the Control Protocol Number SHOULD reflect the last failing NCP.
The length of the Value field in the PPP Disconnect Cause Code AVP MUST be at least 11 octets. Any additional octets MUST contain descriptive text in UTF-8 format.
The PPP Disconnect Cause Code AVP MAY be sent by either the LNS or LAC, and is generally expected to be most useful for LNS-to-LAC notification in the compulsory tunneling case.
The PPP Disconnect Cause Code AVP MUST NOT be marked Mandatory (M bit MUST be 0). The AVP is valid only in the CDN message.
Disconnect Codes 0–20 are defined in this document. Codes 21–32767 require IESG Approval for IANA assignment. Codes 32768–65279 are assigned First Come First Served for vendor-specific features. Codes 65280–65535 are Private or Experimental Use.
Global error Disconnect Codes (0–4) do not relate to a specific PPP Control Protocol; the Control Protocol Number for these errors MUST be set to 0. These cover administrative disconnect, LCP renegotiation disabled, normal LCP termination, and compulsory encryption refusal.
The Control Protocol Number field (2 octets) carries the PPP Control Protocol number of the primary protocol known to have caused the error. It may be 0 unless specified otherwise in the Disconnect Code descriptions.
The Direction field (1 octet) specifies whether the Disconnect Code applies globally (0), at the peer (1), at local (2), or reserved (3-255). It SHOULD be 0 unless documented otherwise for a specific Disconnect Code.
The PPP Disconnect Cause Code AVP (Attribute Type 46, Vendor ID 0) is an L2TP AVP extension that carries PPP-specific disconnect information. It is valid only in the Call-Disconnect-Notify (CDN) message and is for informational and logging purposes only.
IANA assigned L2TP Attribute Type 46 for the PPP Disconnect Cause Code AVP, and maintains a registry of Disconnect Code values. Values 0–20 defined here; 21–32767 by IESG Approval; 32768–65279 First Come First Served; 65280–65535 Private/Experimental.
The integrity and confidentiality of this AVP relies on underlying L2TP security mechanisms. The AVP MAY be hidden as described in RFC 2661 section 4.3. Future extensions must not provide distinguishing information that would help an attacker determine a correct authentication name with wrong password.
The PPP Disconnect Cause Code AVP encodes: M/H bits (1 bit each), 4-bit reserved, 10-bit Length (minimum 11 octets), 2-octet Vendor ID (0), 2-octet Attribute Type (46), 2-octet Disconnect Code, 2-octet Control Protocol Number, 1-octet Direction, and optional UTF-8 descriptive text in remaining octets.