Cisco HDLC
Cisco HDLC is an extension to the High-Level Data Link Control network protocol, and was created by Cisco Systems, Inc. HDLC is a bit-oriented synchronous data link layer protocol that was originally developed by the International Organization for Standardization. Often described as being a proprietary extension, the details of cHDLC have been widely distributed and the protocol has been implemented by many network equipment vendors. cHDLC extends HDLC with multi-protocol support.
Framing
Cisco HDLC frames uses an alternative framing structure to the standard ISO HDLC. To support multiple protocols encapsulation, cHDLC frames contain a field for identifying the network protocol.Structure
cHDLC frame structure
The following table describes the structure of a cHDLC frame on the wire.Address | Control | Protocol Code | Information | Frame Check Sequence | Flag |
8 bits | 8 bits | 16 bits | Variable length, 0 or more bits, in multiples of 8 | 16 bits | 8 bits |
- The Address field is used to specify the type of packet contained in the cHDLC frame; 0x0F for Unicast and 0x8F for Broadcast packets.
- The Control field is always set to zero.
- The Protocol Code field is used to specify the protocol type encapsulated within the cHDLC frame.
SLARP address request–response frame structure
Three types of SLARP frame are defined: address requests, address replies, and keep-alive frames.
The following table shows the structure of a SLARP cHDLC address request–response frame.
Address | Control | Protocol Code | SLARP Op-Code | Address | Mask | Reserved | Frame Check Sequence | Flag |
8 bits | 8 bits | 16 bits | 32 bits | 32 bits | 32 bits | 16 bits | 16 bits | 8 bits |
- The op-code will be 0x00 for address requests and 0x01 for address responses.
- The Address and Mask fields are used to contain a four-octet IP address and mask. These are 0 for address requests.
- The two-byte Reserved field is currently unused and undefined.
SLARP Keep-Alive frame structure
Address | Control | Protocol Code | SLARP Op-Code | Sequence Number | Sequence Number | Reliability | Frame Check Sequence | Flag |
8 bits | 8 bits | 16 bits | 32 bits | 32 bits | 32 bits | 16 bits | 16 bits | 8 bits |
- The op-code is 0x02 for keep-alives.
- The sender sequence number increments with each keep-alive sent by this sender.
- The received sequence number is the last sequence number received by this sender.
- The two-byte Reliability field is required to be set to 0xFFFF.