From 9f18194547335d957eb102cfb6aa2e4c0a63a079 Mon Sep 17 00:00:00 2001 From: Paul Donald Date: Thu, 25 Apr 2024 13:40:50 +0200 Subject: [PATCH] Extra capabilities bitflags and configurability. No attempt is made to detect such functionality yet. --- src/client/conf-system.c | 6 ++++++ src/client/display.c | 6 +++++- src/lldp-const.h | 3 +++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/client/conf-system.c b/src/client/conf-system.c index 0700ec26..e9e977c4 100644 --- a/src/client/conf-system.c +++ b/src/client/conf-system.c @@ -268,6 +268,12 @@ cmd_capability(struct lldpctl_conn_t *conn, struct writer *w, struct cmd_env *en value |= LLDP_CAP_DOCSIS; } else if (!strcmp(token, "station")) { value |= LLDP_CAP_STATION; + } else if (!strcmp(token, "cvlan")) { + value |= LLDP_CAP_CVLAN; + } else if (!strcmp(token, "svlan")) { + value |= LLDP_CAP_SVLAN; + } else if (!strcmp(token, "tpmr")) { + value |= LLDP_CAP_TPMRCOMP; } else { log_warnx("lldpctl", "capability %s not found", token); diff --git a/src/client/display.c b/src/client/display.c index 6e3ec781..6b23ec5b 100644 --- a/src/client/display.c +++ b/src/client/display.c @@ -31,7 +31,8 @@ #include "client.h" static void -display_cap(struct writer *w, lldpctl_atom_t *chassis, u_int8_t bit, const char *symbol) +display_cap(struct writer *w, lldpctl_atom_t *chassis, u_int16_t bit, + const char *symbol) { if (lldpctl_atom_get_int(chassis, lldpctl_k_chassis_cap_available) & bit) { tag_start(w, "capability", "Capability"); @@ -276,6 +277,9 @@ display_chassis(struct writer *w, lldpctl_atom_t *chassis, int details) display_cap(w, chassis, LLDP_CAP_TELEPHONE, "Tel"); display_cap(w, chassis, LLDP_CAP_DOCSIS, "Docsis"); display_cap(w, chassis, LLDP_CAP_STATION, "Station"); + display_cap(w, chassis, LLDP_CAP_CVLAN, "CVLAN"); + display_cap(w, chassis, LLDP_CAP_SVLAN, "SVLAN"); + display_cap(w, chassis, LLDP_CAP_TPMRCOMP, "TPMR"); tag_end(w); } diff --git a/src/lldp-const.h b/src/lldp-const.h index 454424d0..591b47d3 100644 --- a/src/lldp-const.h +++ b/src/lldp-const.h @@ -255,6 +255,9 @@ #define LLDP_CAP_TELEPHONE 0x20 #define LLDP_CAP_DOCSIS 0x40 #define LLDP_CAP_STATION 0x80 +#define LLDP_CAP_CVLAN 0x100 +#define LLDP_CAP_SVLAN 0x200 +#define LLDP_CAP_TPMRCOMP 0x400 #define LLDP_PPVID_CAP_SUPPORTED (1 << 1) #define LLDP_PPVID_CAP_ENABLED (1 << 2) -- 2.39.5