Connected: An Internet Encyclopedia
5. LCP Packet Formats

Up: Connected: An Internet Encyclopedia
Up: Requests For Comments
Up: RFC 1661
Prev: 4.6. Counters and Timers
Next: 5.1. Configure-Request

5. LCP Packet Formats

5. LCP Packet Formats

There are three classes of LCP packets:

  1. Link Configuration packets used to establish and configure a link (Configure-Request, Configure-Ack, Configure-Nak and Configure-Reject).

  2. Link Termination packets used to terminate a link (Terminate- Request and Terminate-Ack).

  3. Link Maintenance packets used to manage and debug a link (Code-Reject, Protocol-Reject, Echo-Request, Echo-Reply, and Discard-Request).

In the interest of simplicity, there is no version field in the LCP packet. A correctly functioning LCP implementation will always respond to unknown Protocols and Codes with an easily recognizable LCP packet, thus providing a deterministic fallback mechanism for implementations of other versions.

Regardless of which Configuration Options are enabled, all LCP Link Configuration, Link Termination, and Code-Reject packets (codes 1 through 7) are always sent as if no Configuration Options were negotiated. In particular, each Configuration Option specifies a default value. This ensures that such LCP packets are always recognizable, even when one end of the link mistakenly believes the link to be open.

Exactly one LCP packet is encapsulated in the PPP Information field, where the PPP Protocol field indicates type hex c021 (Link Control Protocol).

A summary of the Link Control Protocol packet format is shown 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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Code      |  Identifier   |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Data ...
   +-+-+-+-+

Code

The Code field is one octet, and identifies the kind of LCP packet. When a packet is received with an unknown Code field, a Code-Reject packet is transmitted.

Up-to-date values of the LCP Code field are specified in the most recent "Assigned Numbers" RFC [2]. This document concerns the following values:

  1       Configure-Request
  2       Configure-Ack
  3       Configure-Nak
  4       Configure-Reject
  5       Terminate-Request
  6       Terminate-Ack
  7       Code-Reject
  8       Protocol-Reject
  9       Echo-Request
  10      Echo-Reply
  11      Discard-Request

Identifier

The Identifier field is one octet, and aids in matching requests and replies. When a packet is received with an invalid Identifier field, the packet is silently discarded without affecting the automaton.

Length

The Length field is two octets, and indicates the length of the LCP packet, including the Code, Identifier, Length and Data fields. The Length MUST NOT exceed the MRU of the link.

Octets outside the range of the Length field are treated as padding and are ignored on reception. When a packet is received with an invalid Length field, the packet is silently discarded without affecting the automaton.

Data

The Data field is zero or more octets, as indicated by the Length field. The format of the Data field is determined by the Code field.


Next: 5.1. Configure-Request

Connected: An Internet Encyclopedia
5. LCP Packet Formats