LAPD
LAPD (Link Access Protocol - Channel D) ist ein Layer 2 Protokoll definiert in CCITT Q.920/921 bzw. ETS 300 125. LAPD arbeitet ausschließlich im Asynchronous Balanced Mode (ABM). Eine der typischen Anwendungen ist X31 im D-Kanal (Paket-Dienst).
Die hier aufgeführten Daten dienen einzig als Kurzübersicht über die Arten von LAPD-Paketen. Für detailierte Informationen ist einzig die ETS 300 125 zuständig.
allgemein:
Flag | SAPI | TEI | CF | Parameter / Daten | FCS | Flag |
7Eh | ------------------- | 7Eh |
SAPI | Service access point identifer • bit-1: C/R-Command/Response bit. (Frames from the user with this bit set to 0 are command frames, as are frames from the network with this bit set to 1. Other values indicate a response frame.) • bit-0: EA1-First Address Extension bit which is always set to 0. |
TEI | Terminal endpoint identifer • bit-0: EA2-Second Address Extension bit which is always set to 1 |
CF | Control Field - Typ des Paketes |
Parameter / Daten | abhängig vom Typ |
FCS | Frame Check Sequence |
SAPI - Service Access Point Identifier:
0 | Used by CCITT signaling |
1 | Not defined |
16 | Used for paket-data communication |
32 | Used for internal loop-tests only (national !!!) |
63 | Used for management(TEI) in all services |
für X31 im D-Kanal gilt dabei fix: SAPI = 16 (bis auf TEI-Management)
TEI - Terminal Endpoint Identifier:
0-63 | Used by non-automatic TEI assignment user equipment |
64-126 | Used by automatic TEI assignment equipment |
127 | Used for a broadcast connection meant for all Terminal Endpoints |
allgemein üblich für X31 (jedoch nicht fix !): TEI=1
Die Numerierung erfolgt nach Modulo-128.
Typen:
SABME
" set asyncronous balanced mode extended "
Flag | SAPI | TEI | 7Fh | FCS | Flag |
7Fh | Typ: SABME • bit-4: poll-bit |
DM
" disconnected mode "
Flag | SAPI | TEI | 1Fh | FCS | Flag |
1Fh | Typ: DM • bit-4: final-bit |
DISC
" disconnect "
Flag | SAPI | TEI | 53h | FCS | Flag |
53h | Typ: DISC • bit-4: poll-bit |
UA
" unnumbered acknowledgement "
Flag | SAPI | TEI | 73h | FCS | Flag |
73h | Typ: UA • bit-4: final-bit |
FRMR
!!! soll nicht verwendet werden !!!
" frame reject "
Flag | SAPI | TEI | 87h | data-field | FCS | Flag |
87h | Typ: FRMR • bit-4: final-bit |
data-field | see ETS 300 125 |
XID
!!! soll nicht verwendet werden !!!
" exchange identification node "
Flag | SAPI | TEI | AFh | data-field | FCS | Flag |
AFh | Typ: XID • bit-4: poll/final-bit |
data-field | see ETS 300 125 |
REJ
" reject "
Flag | SAPI | TEI | 09h | xxh | FCS | Flag |
09h | Typ: REJ • bit-4: poll/final-bit |
xxh | • bit-7..1: receive sequence number |
RNR
" receive not ready "
Flag | SAPI | TEI | 05h | xxh | FCS | Flag |
09h | Typ: RNR • bit-4: poll/final-bit |
xxh | • bit-7..1: receive sequence number |
RR
" receive ready "
Flag | SAPI | TEI | 01h | xxh | FCS | Flag |
01h | Typ: RR • bit-4: poll/final-bit |
xxh | • bit-7..1: receive sequence number |
I-frame
" data-frame "
Flag | SAPI | TEI | xx..xx0b | xxh | data | FCS | Flag |
01h | Typ: I-frame • bit-7..1: send sequence number • bit-0: must be zero |
xxh | • bit-7..1: receive sequence number • bit-0: poll -bit |
UI
" unnumbered information "
Flag | SAPI | TEI | 03h | [data-field] | FCS | Flag |
03h | Typ: UI • bit-4: poll-bit |
[data-field] | optional (for example: TEI-management) - see ETS 300 125 |
Im Standard zu LAPD sind aufwendige State-Diagramme zu den jeweiligen Übergängen und Fehlerbehandlungen dargestellt. Eine Variante um einen platzsparenden und gleichzeitig gut zu pflegenden Zustands/Übergangs-Mechanismus zu erhalten, ist die Implementation mittels einer State-Table. Dabei wird der aktuelle Status als Zeile und der empfangene Paket-Typ als Spalte verwendet. Das dort hinterlegte Byte gibt im oberen Nibble die erforderliche Reaktion und das untere Nibble den neuen State wieder.
Da ausreichend Ausnahmeregelungen existieren, sind jedoch noch weitere Auswertungen um solch eine Tabelle herum nötig (siehe ETS 300 125).