]> git.ipfire.org Git - thirdparty/lldpd.git/commitdiff
Extra capabilities bitflags and configurability.
authorPaul Donald <newtwen+github@gmail.com>
Thu, 25 Apr 2024 11:40:50 +0000 (13:40 +0200)
committerVincent Bernat <vincent@bernat.ch>
Wed, 1 May 2024 21:52:44 +0000 (23:52 +0200)
No attempt is made to detect such functionality yet.

src/client/conf-system.c
src/client/display.c
src/lldp-const.h

index 0700ec26ab01a53e69fbcd258dbc07604603d74b..e9e977c4adf16b4d6e971ab6e741c28e5c3b55dd 100644 (file)
@@ -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);
index 6e3ec7811a72d39a2a994d56ec24ecdb35db78e4..6b23ec5b9e33e892f420d56a8192b88ff94218cf 100644 (file)
@@ -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);
 }
index 454424d043fb00775bdfda64aac110ebfb8e1003..591b47d399d765cfef441d59233419713a91b74a 100644 (file)
 #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)