LLDP¶
Link Layer Discovery Protocol(LLDP, IEEE 802.1AB) http://standards.ieee.org/getieee802/download/802.1AB-2009.pdf
basic TLV format:
octets | 1 | 2 | 3 ... n + 2 |
--------------------------------------------------------
| TLV type | TLV information | TLV information string |
| (7bits) | string length | (0-507 octets) |
| | (9bits) | |
--------------------------------------------------------
bits |8 2|1|8 1|
Organizationally specific TLV format:
octets | 1 | 2 | 3 ... 5 | 6 | 7 ... n + 6 |
---------------------------------------------------------------
| TLV type | Length | OUI | Subtype | Infomation |
| (7bits) | (9bits) | (24bits) | (8bits) | (0-507 octets) |
---------------------------------------------------------------
bits |8 2|1|8 1|
LLDPDU format:
------------------------------------------------------------------------
| Chassis ID | Port ID | TTL | optional TLV | ... | optional TLV | End |
------------------------------------------------------------------------
Chasis ID, Port ID, TTL, End are mandatory optional TLV may be inserted in any order
-
class
os_ken.lib.packet.lldp.
ChassisID
(buf=None, *args, **kwargs)¶ Chassis ID TLV encoder/decoder class
Attribute
Description
buf
Binary data to parse.
subtype
Subtype.
chassis_id
Chassis id corresponding to subtype.
-
class
os_ken.lib.packet.lldp.
End
(buf=None, *args, **kwargs)¶ End TLV encoder/decoder class
Attribute
Description
buf
Binary data to parse.
-
class
os_ken.lib.packet.lldp.
ManagementAddress
(buf=None, *args, **kwargs)¶ Management Address TLV encoder/decoder class
Attribute
Description
buf
Binary data to parse.
addr_subtype
Address type.
addr
Device address.
intf_subtype
Interface type.
intf_num
Interface number.
oid
Object ID.
-
class
os_ken.lib.packet.lldp.
OrganizationallySpecific
(buf=None, *args, **kwargs)¶ Organizationally Specific TLV encoder/decoder class
Attribute
Description
buf
Binary data to parse.
oui
Organizationally unique ID.
subtype
Organizationally defined subtype.
info
Organizationally defined information string.
-
class
os_ken.lib.packet.lldp.
PortDescription
(buf=None, *args, **kwargs)¶ Port description TLV encoder/decoder class
Attribute
Description
buf
Binary data to parse.
port_description
Port description.
-
class
os_ken.lib.packet.lldp.
PortID
(buf=None, *args, **kwargs)¶ Port ID TLV encoder/decoder class
Attribute
Description
buf
Binary data to parse.
subtype
Subtype.
port_id
Port ID corresponding to subtype.
-
class
os_ken.lib.packet.lldp.
SystemCapabilities
(buf=None, *args, **kwargs)¶ System Capabilities TLV encoder/decoder class
Attribute
Description
buf
Binary data to parse.
system_cap
System Capabilities.
enabled_cap
Enabled Capabilities.
-
class
os_ken.lib.packet.lldp.
SystemDescription
(buf=None, *args, **kwargs)¶ System description TLV encoder/decoder class
Attribute
Description
buf
Binary data to parse.
system_description
System description.
-
class
os_ken.lib.packet.lldp.
SystemName
(buf=None, *args, **kwargs)¶ System name TLV encoder/decoder class
Attribute
Description
buf
Binary data to parse.
system_name
System name.
-
class
os_ken.lib.packet.lldp.
TTL
(buf=None, *args, **kwargs)¶ Time To Live TLV encoder/decoder class
Attribute
Description
buf
Binary data to parse.
ttl
Time To Live.
-
class
os_ken.lib.packet.lldp.
lldp
(tlvs)¶ LLDPDU encoder/decoder class.
An instance has the following attributes at least.
Attribute
Description
tlvs
List of TLV instance.
-
classmethod
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.
An object to describe the decoded header.
A packet_base.PacketBase subclass appropriate for the rest of the packet. None when the rest of the packet should be considered as raw payload.
The rest of packet.
-
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.
-
classmethod