iPXE
|
Link Layer Discovery Protocol. More...
#include <stdint.h>
Go to the source code of this file.
Data Structures | |
struct | lldp_tlv |
An LLDP TLV header. More... | |
Macros | |
#define | LLDP_TLV_TYPE(type_len) ( (type_len) >> 9 ) |
Extract LLDP TLV type. More... | |
#define | LLDP_TLV_LEN(type_len) ( (type_len) & 0x01ff ) |
Extract LLDP TLV length. More... | |
#define | LLDP_TYPE_END 0x00 |
End of LLDP data unit. More... | |
#define | LLDP_SETTINGS_NAME "lldp" |
LLDP settings block name. More... | |
#define | LLDP_TAG(prefix, type, index, offset, length) |
Construct LLDP setting tag. More... | |
Functions | |
FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) | |
struct lldp_tlv | __attribute__ ((packed)) |
Variables | |
uint16_t | type_len |
Type and length. More... | |
uint8_t | data [0] |
Data. More... | |
Link Layer Discovery Protocol.
Definition in file lldp.h.
Construct LLDP setting tag.
LLDP settings are encoded as
${netX.lldp/<prefix>.<type>.<index>.<offset>.<length>}
where
<type> is the TLV type
<offset> is the starting offset within the TLV value
<length> is the length (or zero to read the from <offset> to the end)
<prefix>, if it has a non-zero value, is the subtype byte string of length <offset> to match at the start of the TLV value, up to a maximum matched length of 4 bytes
<index> is the index of the entry matching <type> and <prefix> to be accessed, with zero indicating the first matching entry
The <prefix> is designed to accommodate both matching of the OUI within an organization-specific TLV (e.g. 0x0080c2 for IEEE 802.1 TLVs) and of a subtype byte as found within many TLVs.
This encoding allows most LLDP values to be extracted easily. For example
System name: ${netX.lldp/5.0.0.0:string}
System description: ${netX.lldp/6.0.0.0:string}
Port description: ${netX.lldp/4.0.0.0:string}
Port interface name: ${netX.lldp/5.2.0.1.0:string}
Chassis MAC address: ${netX.lldp/4.1.0.1.0:hex}
Management IPv4 address: ${netX.lldp/5.1.8.0.2.4:ipv4}
Port VLAN ID: ${netX.lldp/0x0080c2.1.127.0.4.2:int16}
Port VLAN name: ${netX.lldp/0x0080c2.3.127.0.7.0:string}
Maximum frame size: ${netX.lldp/0x00120f.4.127.0.4.2:uint16}
FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |
struct lldp_tlv __attribute__ | ( | (packed) | ) |