Logical Link Control(LLC, IEEE 802.2) parser/serializer http://standards.ieee.org/getieee802/download/802.2-1998.pdf
LLC format:
+-----------------+--------------+
| DSAP address | 8 bits |
+-----------------+--------------+
| SSAP address | 8 bits |
+-----------------+--------------+
| Control | 8 or 16 bits |
+-----------------+--------------+
DSAP address field:
LSB
+-----+---+---+---+---+---+---+---+
| I/G | D | D | D | D | D | D | D |
+-----+---+---+---+---+---+---+---+
I/G bit = 0 : Individual DSAP
I/G bit = 1 : Group DSA
D : DSAP address
SSAP address field:
LSB
+-----+---+---+---+---+---+---+---+
| C/R | S | S | S | S | S | S | S |
+-----+---+---+---+---+---+---+---+
C/R bit = 0 : Command
C/R bit = 1 : Response
S : SSAP address
Control field:
Information transfer command/response (I-format PDU):
1 2 3 4 5 6 7 8 9 10-16
+---+---+---+---+---+---+---+---+-----+------+
| 0 | N(S) | P/F | N(R) |
+---+---+---+---+---+---+---+---+-----+------+
Supervisory commands/responses (S-format PDUs):
1 2 3 4 5 6 7 8 9 10-16
+---+---+---+---+---+---+---+---+-----+------+
| 1 0 | S S | 0 0 0 0 | P/F | N(R) |
+---+---+---+---+---+---+---+---+-----+------+
Unnumbered commands/responses (U-format PDUs):
1 2 3 4 5 6 7 8
+---+---+----+---+-----+---+----+---+
| 1 1 | M1 M1 | P/F | M2 M2 M2 |
+---+---+----+---+-----+---+----+---+
N(S) : sender send sequence number (Bit 2=lower-order-bit)
N(R) : sender receive sequence number (Bit 10=lower-order-bit)
S : supervisory function bit
M1/M2: modifier function bit
P/F : poll bit - command LLC PDUs
final bit - response LLC PDUs
os_ken.lib.packet.llc.
ControlFormatI
(send_sequence_number=0, pf_bit=0, receive_sequence_number=0)¶LLC sub encoder/decoder class for control I-format field.
An instance has the following attributes at least. Most of them are same to the on-wire counterparts but in host byte order. __init__ takes the corresponding args in this order.
Attribute | Description |
---|---|
send_sequence_number | sender send sequence number |
pf_bit | poll/final bit |
receive_sequence_number | sender receive sequence number |
os_ken.lib.packet.llc.
ControlFormatS
(supervisory_function=0, pf_bit=0, receive_sequence_number=0)¶LLC sub encoder/decoder class for control S-format field.
An instance has the following attributes at least. Most of them are same to the on-wire counterparts but in host byte order. __init__ takes the corresponding args in this order.
Attribute | Description |
---|---|
supervisory_function | supervisory function bit |
pf_bit | poll/final bit |
receive_sequence_number | sender receive sequence number |
os_ken.lib.packet.llc.
ControlFormatU
(modifier_function1=0, pf_bit=0, modifier_function2=0)¶LLC sub encoder/decoder class for control U-format field.
An instance has the following attributes at least. Most of them are same to the on-wire counterparts but in host byte order. __init__ takes the corresponding args in this order.
Attribute | Description |
---|---|
modifier_function1 | modifier function bit |
pf_bit | poll/final bit |
modifier_function2 | modifier function bit |
os_ken.lib.packet.llc.
llc
(dsap_addr, ssap_addr, control)¶LLC(IEEE 802.2) header encoder/decoder class.
An instance has the following attributes at least. Most of them are same to the on-wire counterparts but in host byte order. __init__ takes the corresponding args in this order.
Attribute | Description |
---|---|
dsap_addr | Destination service access point address field includes I/G bit at least significant bit. |
ssap_addr | Source service access point address field includes C/R bit at least significant bit. |
control | Control field [16 bits for formats that include sequence numbering, and 8 bits for formats that do not]. Either os_ken.lib.packet.llc.ControlFormatI or os_ken.lib.packet.llc.ControlFormatS or os_ken.lib.packet.llc.ControlFormatU object. |
parser
(buf)¶Decode a protocol header.
This method is used only when decoding a packet.
Decode a protocol header at offset 0 in bytearray buf. Returns the following three objects.
serialize
(payload, prev)¶Encode a protocol header.
This method is used only when encoding a packet.
Encode a protocol header. Returns a bytearray which contains the header.
payload is the rest of the packet which will immediately follow this header.
prev is a packet_base.PacketBase subclass for the outer protocol header. prev is None if the current header is the outer-most. For example, prev is ipv4 or ipv6 for tcp.serialize.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.