summaryrefslogtreecommitdiffstats
path: root/src/config/general.h
diff options
context:
space:
mode:
authorMichael Brown2023-02-05 14:07:30 +0100
committerMichael Brown2023-02-05 19:18:02 +0100
commitdc16de3204d1956d4fd17808e6d34ac926bbe932 (patch)
treeda7fdb7b513690b3c51876674d273874bd144104 /src/config/general.h
parent[ci] Update to ubuntu-22.04 GitHub actions runner (diff)
downloadipxe-dc16de3204d1956d4fd17808e6d34ac926bbe932.tar.gz
ipxe-dc16de3204d1956d4fd17808e6d34ac926bbe932.tar.xz
ipxe-dc16de3204d1956d4fd17808e6d34ac926bbe932.zip
[lldp] Add support for the Link Layer Discovery Protocol
Add support for recording LLDP packets and exposing TLV values via the settings mechanism. 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} Originally-implemented-by: Marin Hannache <git@mareo.fr> Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/config/general.h')
-rw-r--r--src/config/general.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/config/general.h b/src/config/general.h
index 2d15f500..e9ceaff5 100644
--- a/src/config/general.h
+++ b/src/config/general.h
@@ -40,6 +40,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
#define NET_PROTO_STP /* Spanning Tree protocol */
#define NET_PROTO_LACP /* Link Aggregation control protocol */
#define NET_PROTO_EAPOL /* EAP over LAN protocol */
+#undef NET_PROTO_LLDP /* Link Layer Discovery protocol */
/*
* PXE support