From e73bb90f687e04f64193930cf3e14e802e18c80e Mon Sep 17 00:00:00 2001 From: haochenstar Date: Sat, 30 Jan 2021 10:54:50 +0800 Subject: [PATCH] update lldpad to 1.1 --- lldpad.spec | 42 +- ...lldp-ecp-allow-for-failure-to-create.patch | 29 - ...22_cmds-retrieve-vsi-paramenter-data.patch | 106 - ...port-for-OUI-infrastructure-in-vdp22.patch | 172 -- ...Cisco-specific-OUI-extensions-to-VDP.patch | 650 ---- ...k-timeout-handler-to-set-the-right-t.patch | 33 - ...VDP-Changes-in-OUI-infra-for-get-tlv.patch | 333 -- ...isco-OUI-handlers-to-support-get-tlv.patch | 283 -- ...VDP-Add-vdptool-man-page-to-Makefile.patch | 27 - ...int-compile-errors-in-32-bit-systems.patch | 45 - ...dp-automake-fixes-for-dist-distcheck.patch | 130 - ...led-test-tool-building-for-distcheck.patch | 26 - open-lldp-v1.0.1-19-nltest-build-error.patch | 40 - ...p-v1.0.1-2-VDP-vdptool-first-version.patch | 1671 ---------- ...ake-fix-drop-prefix-on-vdptool_LDADD.patch | 34 - ...ix-DCBX-event-generation-from-lldpad.patch | 141 - ...mory-leak-for-modify-VSI-support-for.patch | 223 -- ....1-23-lldp-make-TTL-TLV-configurable.patch | 312 -- ...rom-sysv-to-posix-shared-memory-apis.patch | 424 --- ...correctly-process-return-value-of-ge.patch | 37 - ...pability-incorrect-advertised-as-sta.patch | 72 - open-lldp-v1.0.1-27-fix-build-warnings.patch | 94 - ...-cases-Some-test-cases-to-test-the-n.patch | 2722 ----------------- ...ake-the-interface-to-VDP22-in-lldpad.patch | 593 ---- ...ort-for-get-tlv-in-vdptool-and-VDP22.patch | 1194 -------- ...DP22-for-correct-error-code-status-t.patch | 894 ------ ...port-for-OUI-infrastructure-in-VDP22.patch | 158 - ...rt-for-OUI-infrastructure-in-vdptool.patch | 355 --- ...port-for-OUI-infrastructure-in-vdp22.patch | 524 ---- v1.0.1.tar.gz | Bin 404440 -> 0 bytes v1.1.tar.gz | Bin 0 -> 436239 bytes 31 files changed, 10 insertions(+), 11354 deletions(-) delete mode 100644 open-lldp-ecp-allow-for-failure-to-create.patch delete mode 100644 open-lldp-v1.0.1-1-VDP-vdp22_cmds-retrieve-vsi-paramenter-data.patch delete mode 100644 open-lldp-v1.0.1-10-VDP-Support-for-OUI-infrastructure-in-vdp22.patch delete mode 100644 open-lldp-v1.0.1-11-VDP-Support-for-Cisco-specific-OUI-extensions-to-VDP.patch delete mode 100644 open-lldp-v1.0.1-12-VDP22-Fix-the-ack-timeout-handler-to-set-the-right-t.patch delete mode 100644 open-lldp-v1.0.1-13-VDP-Changes-in-OUI-infra-for-get-tlv.patch delete mode 100644 open-lldp-v1.0.1-14-VDP-Changes-in-Cisco-OUI-handlers-to-support-get-tlv.patch delete mode 100644 open-lldp-v1.0.1-15-VDP-Add-vdptool-man-page-to-Makefile.patch delete mode 100644 open-lldp-v1.0.1-16-VDP-Fixed-DBG-print-compile-errors-in-32-bit-systems.patch delete mode 100644 open-lldp-v1.0.1-17-lldp-automake-fixes-for-dist-distcheck.patch delete mode 100644 open-lldp-v1.0.1-18-enabled-test-tool-building-for-distcheck.patch delete mode 100644 open-lldp-v1.0.1-19-nltest-build-error.patch delete mode 100644 open-lldp-v1.0.1-2-VDP-vdptool-first-version.patch delete mode 100644 open-lldp-v1.0.1-20-lldp-automake-fix-drop-prefix-on-vdptool_LDADD.patch delete mode 100644 open-lldp-v1.0.1-21-lldpad-Fix-DCBX-event-generation-from-lldpad.patch delete mode 100644 open-lldp-v1.0.1-22-vdp-Fixed-the-memory-leak-for-modify-VSI-support-for.patch delete mode 100644 open-lldp-v1.0.1-23-lldp-make-TTL-TLV-configurable.patch delete mode 100644 open-lldp-v1.0.1-24-switch-from-sysv-to-posix-shared-memory-apis.patch delete mode 100644 open-lldp-v1.0.1-25-l2_linux_packet-correctly-process-return-value-of-ge.patch delete mode 100644 open-lldp-v1.0.1-26-lldpad-system-capability-incorrect-advertised-as-sta.patch delete mode 100644 open-lldp-v1.0.1-27-fix-build-warnings.patch delete mode 100644 open-lldp-v1.0.1-3-VDP-vdptool-test-cases-Some-test-cases-to-test-the-n.patch delete mode 100644 open-lldp-v1.0.1-4-VDP-Changes-to-make-the-interface-to-VDP22-in-lldpad.patch delete mode 100644 open-lldp-v1.0.1-5-VDP-Support-for-get-tlv-in-vdptool-and-VDP22.patch delete mode 100644 open-lldp-v1.0.1-6-VDP-Support-in-VDP22-for-correct-error-code-status-t.patch delete mode 100644 open-lldp-v1.0.1-7-VDP-Support-for-OUI-infrastructure-in-VDP22.patch delete mode 100644 open-lldp-v1.0.1-8-VDP-Support-for-OUI-infrastructure-in-vdptool.patch delete mode 100644 open-lldp-v1.0.1-9-VDP-Support-for-OUI-infrastructure-in-vdp22.patch delete mode 100644 v1.0.1.tar.gz create mode 100644 v1.1.tar.gz diff --git a/lldpad.spec b/lldpad.spec index 9637572..52182b2 100644 --- a/lldpad.spec +++ b/lldpad.spec @@ -3,40 +3,12 @@ %global checkout 036e314 Name: lldpad -Version: 1.0.1 -Release: 15 +Version: 1.1 +Release: 1 Summary: Intel LLDP Agent License: GPLv2 URL: https://www.open-lldp.org -Source0: https://github.com/openSUSE/lldpad/archive/v1.0.1.tar.gz -Patch1: open-lldp-v1.0.1-1-VDP-vdp22_cmds-retrieve-vsi-paramenter-data.patch -Patch2: open-lldp-v1.0.1-2-VDP-vdptool-first-version.patch -Patch3: open-lldp-v1.0.1-3-VDP-vdptool-test-cases-Some-test-cases-to-test-the-n.patch -Patch4: open-lldp-v1.0.1-4-VDP-Changes-to-make-the-interface-to-VDP22-in-lldpad.patch -Patch5: open-lldp-v1.0.1-5-VDP-Support-for-get-tlv-in-vdptool-and-VDP22.patch -Patch6: open-lldp-v1.0.1-6-VDP-Support-in-VDP22-for-correct-error-code-status-t.patch -Patch7: open-lldp-v1.0.1-7-VDP-Support-for-OUI-infrastructure-in-VDP22.patch -Patch8: open-lldp-v1.0.1-8-VDP-Support-for-OUI-infrastructure-in-vdptool.patch -Patch9: open-lldp-v1.0.1-9-VDP-Support-for-OUI-infrastructure-in-vdp22.patch -Patch10: open-lldp-v1.0.1-10-VDP-Support-for-OUI-infrastructure-in-vdp22.patch -Patch11: open-lldp-v1.0.1-11-VDP-Support-for-Cisco-specific-OUI-extensions-to-VDP.patch -Patch12: open-lldp-v1.0.1-12-VDP22-Fix-the-ack-timeout-handler-to-set-the-right-t.patch -Patch13: open-lldp-v1.0.1-13-VDP-Changes-in-OUI-infra-for-get-tlv.patch -Patch14: open-lldp-v1.0.1-14-VDP-Changes-in-Cisco-OUI-handlers-to-support-get-tlv.patch -Patch15: open-lldp-v1.0.1-15-VDP-Add-vdptool-man-page-to-Makefile.patch -Patch16: open-lldp-v1.0.1-16-VDP-Fixed-DBG-print-compile-errors-in-32-bit-systems.patch -Patch17: open-lldp-v1.0.1-17-lldp-automake-fixes-for-dist-distcheck.patch -Patch18: open-lldp-v1.0.1-18-enabled-test-tool-building-for-distcheck.patch -Patch19: open-lldp-v1.0.1-19-nltest-build-error.patch -Patch20: open-lldp-v1.0.1-20-lldp-automake-fix-drop-prefix-on-vdptool_LDADD.patch -Patch21: open-lldp-v1.0.1-21-lldpad-Fix-DCBX-event-generation-from-lldpad.patch -Patch22: open-lldp-v1.0.1-22-vdp-Fixed-the-memory-leak-for-modify-VSI-support-for.patch -Patch23: open-lldp-v1.0.1-23-lldp-make-TTL-TLV-configurable.patch -Patch24: open-lldp-v1.0.1-24-switch-from-sysv-to-posix-shared-memory-apis.patch -Patch25: open-lldp-v1.0.1-25-l2_linux_packet-correctly-process-return-value-of-ge.patch -Patch26: open-lldp-v1.0.1-26-lldpad-system-capability-incorrect-advertised-as-sta.patch -Patch27: open-lldp-v1.0.1-27-fix-build-warnings.patch -Patch28: open-lldp-ecp-allow-for-failure-to-create.patch +Source0: https://github.com/intel/lldpad/archive/v%{version}.tar.gz BuildRequires: automake autoconf libtool flex kernel-headers libconfig-devel BuildRequires: libnl3-devel readline-devel systemd git @@ -60,7 +32,7 @@ The package contains header files used for building applications that use %{name %package_help %prep -%autosetup -n %{name}-%{version} -p1 -S git +%autosetup -n openlldp-%{version} -p1 -S git %build ./bootstrap.sh @@ -111,6 +83,12 @@ make check %{_mandir}/man*/* %changelog +* Sat Jan 30 2021 xihaochen - 1.1-1 +- Type:requirements +- Id:NA +- SUG:NA +- DESC:update lldpad to 1.1 + * Tue Jan 26 2021 zengwefeng - 1.0.1-15 - Type:bugfix - Id:NA diff --git a/open-lldp-ecp-allow-for-failure-to-create.patch b/open-lldp-ecp-allow-for-failure-to-create.patch deleted file mode 100644 index b2c88ac..0000000 --- a/open-lldp-ecp-allow-for-failure-to-create.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 488051ae0b88b8b77081fadff8154dbd4ddfd54c Mon Sep 17 00:00:00 2001 -From: rpm-build -Date: Tue, 26 Jan 2021 16:16:17 +0800 -Subject: [PATCH] ecp-allow-for-failure-to-create.patch - ---- - qbg/ecp22.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/qbg/ecp22.c b/qbg/ecp22.c -index 4640701..ba8f891 100644 ---- a/qbg/ecp22.c -+++ b/qbg/ecp22.c -@@ -782,7 +782,11 @@ void ecp22_start(char *ifname) - ecp = find_ecpdata(ifname, eud); - if (!ecp) - ecp = ecp22_create(ifname, eud); -- ecp->max_retries = ECP22_MAX_RETRIES_DEFAULT; -+ if (!ecp) { -+ LLDPAD_DBG("%s:%s failed creating ECP22 instance\n", __func__, ifname); -+ return; -+ } -+ ecp->max_retries = ECP22_MAX_RETRIES_DEFAULT; - ecp->max_rte = ECP22_ACK_TIMER_DEFAULT; - LIST_INIT(&ecp->inuse.head); - ecp->inuse.last = 0; --- -2.23.0 - diff --git a/open-lldp-v1.0.1-1-VDP-vdp22_cmds-retrieve-vsi-paramenter-data.patch b/open-lldp-v1.0.1-1-VDP-vdp22_cmds-retrieve-vsi-paramenter-data.patch deleted file mode 100644 index fb2968a..0000000 --- a/open-lldp-v1.0.1-1-VDP-vdp22_cmds-retrieve-vsi-paramenter-data.patch +++ /dev/null @@ -1,106 +0,0 @@ -From dff810b2e546eb74e8b9cebb7185ca5bcb5ecc9d Mon Sep 17 00:00:00 2001 -From: Thomas Richter -Date: Wed, 21 Jan 2015 03:35:59 +0000 -Subject: [PATCH] VDP: vdp22_cmds retrieve vsi paramenter data - -This patch adds support for the retrieval of the -vsi parameter data to a command line client. - -Signed-off-by: Thomas Richter -Signed-off-by: John Fastabend ---- - include/qbg_vdpnl.h | 1 + - qbg/vdp22_cmds.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 64 insertions(+) - -diff --git a/include/qbg_vdpnl.h b/include/qbg_vdpnl.h -index 7b26bc7..510a20c 100644 ---- a/include/qbg_vdpnl.h -+++ b/include/qbg_vdpnl.h -@@ -78,4 +78,5 @@ int event_trigger(struct nlmsghdr *, pid_t); - int vdp_str2vdpnl(char *, struct vdpnl_vsi *, char *); - int vdp_vdpnl2str(struct vdpnl_vsi *, char *, size_t); - int vdp22_sendevent(struct vdpnl_vsi *); -+void vdp22_freemaclist(struct vdpnl_vsi *); - #endif -diff --git a/qbg/vdp22_cmds.c b/qbg/vdp22_cmds.c -index a75c02d..f055441 100644 ---- a/qbg/vdp22_cmds.c -+++ b/qbg/vdp22_cmds.c -@@ -471,10 +471,73 @@ static int test_arg_vsi(struct cmd *cmd, UNUSED char *arg, char *argvalue, - return set_arg_vsi2(cmd, argvalue, true); - } - -+/* -+ * Concatenate all VSI information into one string. -+ * Return length of string in bytes. -+ */ -+static int catvsis(struct vdpnl_vsi *vsi, char *out, size_t out_len) -+{ -+ int rc, i; -+ size_t used = 0; -+ unsigned char wanted_req = vsi->request; -+ -+ for (i = 1; vdp22_status(i, vsi, 1) > 0; ++i) { -+ if (wanted_req != vsi->request) { -+ vdp22_freemaclist(vsi); -+ continue; -+ } -+ rc = vdp_vdpnl2str(vsi, out + used, out_len - used); -+ vdp22_freemaclist(vsi); -+ if (rc) { -+ strcat(out, ";"); -+ used = strlen(out); -+ } else -+ return 0; -+ } -+ return used; -+} -+ -+/* -+ * Return all VSIs on a particular interface into one string. -+ */ -+static int get_arg_vsi(struct cmd *cmd, char *arg, UNUSED char *argvalue, -+ char *obuf, int obuf_len) -+{ -+ cmd_status good_cmd = vdp22_cmdok(cmd, cmd_gettlv); -+ struct vdpnl_vsi vsi; -+ char vsi_str[MAX_CLIF_MSGBUF]; -+ int rc; -+ -+ if (good_cmd != cmd_success) -+ return good_cmd; -+ if (!port_find_by_ifindex(get_ifidx(cmd->ifname))) -+ return cmd_device_not_found; -+ good_cmd = ifok(cmd); -+ if (good_cmd != cmd_success) -+ return good_cmd; -+ -+ memset(obuf, 0, obuf_len); -+ memset(&vsi, 0, sizeof(vsi)); -+ vsi.request = cmd->tlvid; -+ strncpy(vsi.ifname, cmd->ifname, sizeof(vsi.ifname) - 1); -+ good_cmd = cmd_failed; -+ if (!catvsis(&vsi, vsi_str, sizeof(vsi_str))) -+ goto out; -+ rc = snprintf(obuf, obuf_len, "%02x%s%04x%s", -+ (unsigned int)strlen(arg), arg, (unsigned int)strlen(vsi_str), -+ vsi_str); -+ if (rc > 0 || rc < obuf_len) -+ good_cmd = cmd_success; -+out: -+ return good_cmd; -+} -+ -+ - static struct arg_handlers arg_handlers[] = { - { - .arg = ARG_VDP22_VSI, - .arg_class = TLV_ARG, -+ .handle_get = get_arg_vsi, - .handle_set = set_arg_vsi, - .handle_test = test_arg_vsi - }, --- -2.1.0 - diff --git a/open-lldp-v1.0.1-10-VDP-Support-for-OUI-infrastructure-in-vdp22.patch b/open-lldp-v1.0.1-10-VDP-Support-for-OUI-infrastructure-in-vdp22.patch deleted file mode 100644 index 9f8ab5e..0000000 --- a/open-lldp-v1.0.1-10-VDP-Support-for-OUI-infrastructure-in-vdp22.patch +++ /dev/null @@ -1,172 +0,0 @@ -From 7289ac24898ae74a3a47fb4e4378d1535c21adba Mon Sep 17 00:00:00 2001 -From: padkrish -Date: Wed, 21 Jan 2015 03:39:47 +0000 -Subject: [PATCH] VDP: Support for OUI infrastructure in vdp22. - -This commit is a framework for supporting OUI fields -in VDP22. This specific patch adds helper functions -(functions exported by VDP to OUI code) to be called by OUI -specific handler code. - -Signed-off-by: padkrish -Signed-off-by: John Fastabend ---- - Makefile.am | 2 +- - include/qbg_utils.h | 1 + - include/qbg_vdp22_oui.h | 48 +++++++++++++++++++++++++++++++++++++ - qbg/vdp22_oui.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++ - 4 files changed, 113 insertions(+), 1 deletion(-) - create mode 100644 qbg/vdp22_oui.c - -diff --git a/Makefile.am b/Makefile.am -index 403088b..f63311c 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -70,7 +70,7 @@ include/lldp_evb22.h lldp_evb22.c lldp_evb22_cmds.c \ - include/qbg22.h include/qbg_ecp22.h qbg/ecp22.c \ - include/qbg_vdp22.h qbg/vdp22.c qbg/vdpnl.c qbg/vdp22sm.c qbg/vdp22br.c \ - include/qbg_vdp22def.h qbg/vdp22_cmds.c qbg/vdp_ascii.c \ --include/qbg_vdp22_oui.h -+include/qbg_vdp22_oui.h qbg/vdp22_oui.c - - lib_LTLIBRARIES = liblldp_clif.la - liblldp_clif_la_LDFLAGS = -version-info 1:0:0 -diff --git a/include/qbg_utils.h b/include/qbg_utils.h -index 6033556..963cb87 100644 ---- a/include/qbg_utils.h -+++ b/include/qbg_utils.h -@@ -42,4 +42,5 @@ int modules_notify(int, int, char *, void *); - - /* Convert VSI IDs to strings */ - int vdp_uuid2str(const unsigned char *, char *, size_t); -+int vdp_str2uuid(unsigned char *, char *, size_t); - #endif -diff --git a/include/qbg_vdp22_oui.h b/include/qbg_vdp22_oui.h -index 0cce31e..79e1ff5 100644 ---- a/include/qbg_vdp22_oui.h -+++ b/include/qbg_vdp22_oui.h -@@ -92,4 +92,52 @@ struct vdp22_oui_handler_s { - unsigned long (*oui_ptlv_size_hndlr)(void *); - }; - -+unsigned char vdp22_oui_get_vsi22_fmt(void *); -+unsigned char *vdp22_oui_get_vsi22_len(void *, unsigned char *); -+int oui_vdp_str2uuid(unsigned char *, char *, size_t); -+bool oui_vdp_hndlr_init(struct vdp22_oui_handler_s *); -+int oui_vdp_hexstr2bin(const char *hex, unsigned char *buf, size_t len); -+ -+static inline size_t oui_append_1o(unsigned char *cp, const unsigned char data) -+{ -+ *cp = data; -+ return 1; -+} -+ -+static inline size_t oui_append_2o(unsigned char *cp, const unsigned short data) -+{ -+ *cp = (data >> 8) & 0xff; -+ *(cp + 1) = data & 0xff; -+ return 2; -+} -+ -+static inline size_t oui_append_3o(unsigned char *cp, const unsigned long data) -+{ -+ *cp = (data >> 16) & 0xff; -+ *(cp + 1) = (data >> 8) & 0xff; -+ *(cp + 2) = data & 0xff; -+ return 3; -+} -+static inline size_t oui_append_4o(unsigned char *cp, const unsigned long data) -+{ -+ *cp = (data >> 24) & 0xff; -+ *(cp + 1) = (data >> 16) & 0xff; -+ *(cp + 2) = (data >> 8) & 0xff; -+ *(cp + 3) = data & 0xff; -+ return 4; -+} -+ -+static inline size_t oui_append_nb(unsigned char *cp, const unsigned char *data, -+ const size_t nlen) -+{ -+ memcpy(cp, data, nlen); -+ return nlen; -+} -+ -+static inline unsigned short oui_get_tlv_head(unsigned short type, -+ unsigned short len) -+{ -+ return (type & 0x7f) << 9 | (len & 0x1ff); -+} -+ - #endif /* __VDP22_OUI_H__ */ -diff --git a/qbg/vdp22_oui.c b/qbg/vdp22_oui.c -new file mode 100644 -index 0000000..3a2d0cc ---- /dev/null -+++ b/qbg/vdp22_oui.c -@@ -0,0 +1,63 @@ -+/******************************************************************************* -+ -+ Implementation of OUI Functionality for VDP2.2 -+ This file contains the exported functions from VDP to the OUI handlers file. -+ Copyright (c) 2012-2014 by Cisco Systems, Inc. -+ -+ Author(s): Padmanabhan Krishnan -+ -+ This program is free software; you can redistribute it and/or modify it -+ under the terms and conditions of the GNU General Public License, -+ version 2, as published by the Free Software Foundation. -+ -+ This program is distributed in the hope it will be useful, but WITHOUT -+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+ more details. -+ -+ You should have received a copy of the GNU General Public License along with -+ this program; if not, write to the Free Software Foundation, Inc., -+ 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+ -+ The full GNU General Public License is included in this distribution in -+ the file called "COPYING". -+*******************************************************************************/ -+ -+#include -+#include -+#include -+#include -+#include -+#include "messages.h" -+#include "lldp_util.h" -+#include "qbg_vdp22.h" -+#include "qbg_utils.h" -+#include "qbg_vdp22_oui.h" -+ -+unsigned char vdp22_oui_get_vsi22_fmt(void *vsi_data) -+{ -+ if (vsi_data != NULL) -+ return ((struct vsi22 *)(vsi_data))->vsi_fmt; -+ LLDPAD_ERR("%s: NULL Arg\n", __func__); -+ return 0; -+} -+ -+unsigned char *vdp22_oui_get_vsi22_len(void *vsi_data, unsigned char *len) -+{ -+ if ((vsi_data != NULL) && (len != NULL)) { -+ *len = VDP22_IDSZ; -+ return ((struct vsi22 *)(vsi_data))->vsi; -+ } -+ LLDPAD_ERR("%s: NULL Arg\n", __func__); -+ return NULL; -+} -+ -+int oui_vdp_str2uuid(unsigned char *to, char *buffer, size_t max) -+{ -+ return vdp_str2uuid(to, buffer, max); -+} -+ -+int oui_vdp_hexstr2bin(const char *hex, unsigned char *buf, size_t len) -+{ -+ return hexstr2bin(hex, buf, len); -+} --- -2.1.0 - diff --git a/open-lldp-v1.0.1-11-VDP-Support-for-Cisco-specific-OUI-extensions-to-VDP.patch b/open-lldp-v1.0.1-11-VDP-Support-for-Cisco-specific-OUI-extensions-to-VDP.patch deleted file mode 100644 index de37ade..0000000 --- a/open-lldp-v1.0.1-11-VDP-Support-for-Cisco-specific-OUI-extensions-to-VDP.patch +++ /dev/null @@ -1,650 +0,0 @@ -From 409b8d4027d391a401b1d3c0f56569d6402679f7 Mon Sep 17 00:00:00 2001 -From: padkrish -Date: Wed, 21 Jan 2015 03:40:09 +0000 -Subject: [PATCH] VDP: Support for Cisco specific OUI extensions to VDP22 - -This commit has Cisco specific extensions to VDP22. vdptool is also -modified to carry Cisco's extensions for OUI. -The parameters to vdptool that are added for supporting Cisco OUI are: -"-c oui=cisco,vm_name=myname -c oui=cisco,ipv4_addr=a.b.c.d -c oui=cisco,vm_uuid=aaa" - -The description of the files are: - -vdp22cisco_oui.c: ------------------ -This file contain all the handler implementation. -vdp_cisco.h: ------------- -Cisco specific OUI definitions and structures. -vdptool_cisco_oui.c: --------------------- -Cisco specific OUI extensions for user input. - -Signed-off-by: padkrish -Signed-off-by: John Fastabend ---- - Makefile.am | 5 +- - include/vdp_cisco.h | 121 ++++++++++++++++++ - qbg/vdp22.c | 2 + - qbg/vdp22cisco_oui.c | 355 +++++++++++++++++++++++++++++++++++++++++++++++++++ - vdptool.c | 2 + - vdptool_cisco_oui.c | 58 +++++++++ - 6 files changed, 541 insertions(+), 2 deletions(-) - create mode 100644 include/vdp_cisco.h - create mode 100644 qbg/vdp22cisco_oui.c - create mode 100644 vdptool_cisco_oui.c - -diff --git a/Makefile.am b/Makefile.am -index f63311c..abc9348 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -70,14 +70,15 @@ include/lldp_evb22.h lldp_evb22.c lldp_evb22_cmds.c \ - include/qbg22.h include/qbg_ecp22.h qbg/ecp22.c \ - include/qbg_vdp22.h qbg/vdp22.c qbg/vdpnl.c qbg/vdp22sm.c qbg/vdp22br.c \ - include/qbg_vdp22def.h qbg/vdp22_cmds.c qbg/vdp_ascii.c \ --include/qbg_vdp22_oui.h qbg/vdp22_oui.c -+include/qbg_vdp22_oui.h qbg/vdp22_oui.c include/vdp_cisco.h \ -+qbg/vdp22cisco_oui.c - - lib_LTLIBRARIES = liblldp_clif.la - liblldp_clif_la_LDFLAGS = -version-info 1:0:0 - liblldp_clif_includedir = ${srcdir}/include - liblldp_clif_la_SOURCES = clif.c - --vdptool_SOURCES = vdptool.c lldp_util.c qbg/vdp22_clif.c -+vdptool_SOURCES = vdptool.c lldp_util.c qbg/vdp22_clif.c vdptool_cisco_oui.c - vdptool_LDADD = ${srcdir}/liblldp_clif.la - vdptool_LDFLAGS = -llldp_clif $(LIBNL_LIBS) - -diff --git a/include/vdp_cisco.h b/include/vdp_cisco.h -new file mode 100644 -index 0000000..339d479 ---- /dev/null -+++ b/include/vdp_cisco.h -@@ -0,0 +1,121 @@ -+/******************************************************************************* -+ -+ Implementation of Cisco Specific OUI for VDP2.2 -+ Copyright (c) 2012-2014 by Cisco Systems, Inc. -+ -+ Author(s): Padmanabhan Krishnan -+ -+ This program is free software; you can redistribute it and/or modify it -+ under the terms and conditions of the GNU General Public License, -+ version 2, as published by the Free Software Foundation. -+ -+ This program is distributed in the hope it will be useful, but WITHOUT -+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+ more details. -+ -+ You should have received a copy of the GNU General Public License along with -+ this program; if not, write to the Free Software Foundation, Inc., -+ 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+ -+ The full GNU General Public License is included in this distribution in -+ the file called "COPYING". -+*******************************************************************************/ -+ -+#ifndef __VDP22_VISCO_H__ -+#define __VDP22_VISCO_H__ -+ -+#include "lldp.h" -+#include -+#include -+#include "qbg_vdp22_oui.h" -+ -+#define MAX_VM_NAME 100 -+#define CISCO_OUI_VAL "00000C" -+#define CISCO_OUI_HEX 0xC -+ -+#define CISCO_OUI_NAME_ARG_STR "vm_name" -+#define CISCO_OUI_NAME_UUID_ARG_STR "vm_uuid" -+#define CISCO_OUI_L3V4ADDR_ARG_STR "ipv4_addr" -+#define MAX_VM_AF 3 -+ -+#define KEYLEN 16 -+#define PORT_UUID_MAX 16 -+ -+enum oui_key_arg { -+ CISCO_OUI_NAME_ARG = 0, -+ CISCO_OUI_NAME_UUID_ARG, -+ CISCO_OUI_L3V4ADDR_ARG, -+ CISCO_OUI_INVALID_ARG -+}; -+ -+enum cisco_oui_subtype { -+ CISCO_OUI_NAME_SUBTYPE = 0xF1, -+ CISCO_OUI_L3ADDR_SUBTYPE = 0xF2, -+}; -+ -+/* -+ * Name SubTLV -+ * OUI: => 3B = 00-00-0C -+ * subtype => 1B = 0xF1 -+ * VSI ID Frmt => 1B -+ * VSI ID => 16B -+ * VM ID Frmt => 1B -+ * VM ID => 16B -+ * VM Name => Variable -+ * Total => 38 + VM name len -+ */ -+ -+/* -+ * L3 Addr SubTLV -+ * OUI: => 3B = 00-00-0C -+ * subtype => 1B = 0xF2 -+ * VSI ID Frmt => 1B -+ * VSI ID => 16B -+ * AFI => 2B -+ * L3 Addr => Variable -+ * Total => 23 + L3 Addr Len -+ */ -+ -+ /* Subtype Len w/o the 3B Cisco OUI Len */ -+enum cisco_oui_subtype_len { -+ CISCO_VM_NAME_TLV_LEN = 35, /* minus the variable name len */ -+ CISCO_VM_L3ADDR_TLV_LEN = 20 /* minus the variable addr len */ -+}; -+ -+struct oui_keyword_handler { -+ char *keyword; -+ enum oui_key_arg val; -+}; -+ -+typedef union l3_addrtype_ { -+ struct in_addr ipv4_address; -+ struct in6_addr ipv6_address; -+} l3_addr_t; -+ -+typedef struct vdp_cisco_oui_s { -+ char key[KEYLEN]; /* Profile name */ -+ u8 uuid[PORT_UUID_MAX]; /* Instance ID */ -+ size_t vm_name_len; -+ char vm_name[MAX_VM_NAME]; -+ u16 afi; -+ u8 vm_addr_len; -+ l3_addr_t l3_addr; -+} vdp_cisco_oui_t; -+ -+bool cisco_str2vdpnl_hndlr(struct vdpnl_oui_data_s *, char *); -+bool cisco_vdp_free_oui(struct vdp22_oui_data_s *); -+bool cisco_vdpnl2vsi22_hndlr(void *, struct vdpnl_oui_data_s *, -+ struct vdp22_oui_data_s *); -+size_t cisco_vdp_tx_hndlr(char unsigned *, struct vdp22_oui_data_s *, size_t); -+bool cisco_vdp_rx_hndlr(); -+unsigned long cisco_vdp_oui_ptlvsize(void *); -+ -+static inline void fill_cisco_oui_type(unsigned char *oui_type) -+{ -+ oui_type[0] = 0x00; -+ oui_type[1] = 0x00; -+ oui_type[2] = 0x0c; -+} -+ -+#endif /* __VDP22_VISCO_H__ */ -diff --git a/qbg/vdp22.c b/qbg/vdp22.c -index 5cae83f..ab170ed 100644 ---- a/qbg/vdp22.c -+++ b/qbg/vdp22.c -@@ -48,6 +48,7 @@ - #define EXTERN_FN(name)\ - extern bool name##_oui_init() - -+EXTERN_FN(cisco); - /* Init handlers for OUI. OUI handlers should be added in vdp22_oui_init_list. - * First argument specifies the OUI code assigned to the Organization. - * Second argument is the string which should match with the CLI and the third -@@ -55,6 +56,7 @@ extern bool name##_oui_init() - */ - - struct vdp22_oui_init_s vdp22_oui_init_list[] = { -+ {{0x00, 0x00, 0x0c}, "cisco", INIT_FN(cisco)} - }; - - struct vdp22_oui_handler_s vdp22_oui_list[MAX_NUM_OUI]; -diff --git a/qbg/vdp22cisco_oui.c b/qbg/vdp22cisco_oui.c -new file mode 100644 -index 0000000..ef6c307 ---- /dev/null -+++ b/qbg/vdp22cisco_oui.c -@@ -0,0 +1,355 @@ -+/******************************************************************************* -+ -+ Implementation of Cisco Specific OUI for VDP2.2 -+ Copyright (c) 2012-2014 by Cisco Systems, Inc. -+ -+ Author(s): Padmanabhan Krishnan -+ -+ This program is free software; you can redistribute it and/or modify it -+ under the terms and conditions of the GNU General Public License, -+ version 2, as published by the Free Software Foundation. -+ -+ This program is distributed in the hope it will be useful, but WITHOUT -+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+ more details. -+ -+ You should have received a copy of the GNU General Public License along with -+ this program; if not, write to the Free Software Foundation, Inc., -+ 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+ -+ The full GNU General Public License is included in this distribution in -+ the file called "COPYING". -+*******************************************************************************/ -+ -+#include -+#include -+#include -+#include -+#include -+#include "messages.h" -+#include "qbg_vdp22def.h" -+#include "vdp_cisco.h" -+ -+struct vdp22_oui_handler_s cisco_oui_hndlr = { -+ {0x00, 0x00, 0x0c}, "cisco", cisco_str2vdpnl_hndlr, -+ cisco_vdpnl2vsi22_hndlr, -+ cisco_vdp_tx_hndlr, cisco_vdp_rx_hndlr, cisco_vdp_free_oui, -+ cisco_vdp_oui_ptlvsize}; -+ -+struct oui_keyword_handler oui_key_handle[] = { -+ {CISCO_OUI_NAME_ARG_STR, CISCO_OUI_NAME_ARG}, -+ {CISCO_OUI_NAME_UUID_ARG_STR, CISCO_OUI_NAME_UUID_ARG}, -+ {CISCO_OUI_L3V4ADDR_ARG_STR, CISCO_OUI_L3V4ADDR_ARG} }; -+ -+enum oui_key_arg get_oui_key(char *token, u8 key_len) -+{ -+ int count, key_str_size; -+ -+ key_str_size = sizeof(oui_key_handle) / sizeof(oui_key_handle[0]); -+ for (count = 0; count < key_str_size; count++) { -+ if ((key_len <= strlen(token)) && -+ (!strncmp(token, oui_key_handle[count].keyword, key_len))) -+ return oui_key_handle[count].val; -+ } -+ return CISCO_OUI_INVALID_ARG; -+} -+ -+/* -+ * This function fills the vdpnl structure of OUI from the command separated -+ * arguments containing the OUI information. -+ * The input to this function is right from the OUI data after the ORG specific -+ * OUI Type. -+ */ -+ -+bool cisco_str2vdpnl_hndlr(struct vdpnl_oui_data_s *vdp_oui_p, char *token) -+{ -+ vdp_cisco_oui_t *vdp_cisco_oui_p; -+ char *uuid, *v4_addr_str; -+ int ret, offset = 0, len; -+ bool vm_name_flag = false, l3_addr_flag = false; -+ enum oui_key_arg oui_argtype; -+ u16 data_len; -+ u8 key_len; -+ -+ if ((vdp_oui_p == NULL) || (token == NULL)) { -+ LLDPAD_ERR("%s: NULL arg\n", __func__); -+ return false; -+ } -+ fill_cisco_oui_type(vdp_oui_p->oui_type); -+ vdp_oui_p->len = sizeof(vdp_cisco_oui_t); -+ vdp_cisco_oui_p = (vdp_cisco_oui_t *)vdp_oui_p->data; -+ len = strlen(token); -+ while (offset < len) { -+ oui_vdp_hexstr2bin(token, &key_len, sizeof(key_len)); -+ token += 2; -+ offset += 2; -+ oui_argtype = get_oui_key(token, key_len); -+ token += key_len; -+ offset += key_len; -+ oui_vdp_hexstr2bin(token, (u8 *)&data_len, sizeof(data_len)); -+ data_len = htons(data_len); -+ token += 4; -+ offset += 4; -+ if ((offset + data_len) > len) { -+ LLDPAD_ERR("%s Incorrect len offset %d key %d data %d" -+ " Len %d\n", __func__, offset, key_len, -+ data_len, len); -+ return false; -+ } -+ switch (oui_argtype) { -+ case CISCO_OUI_NAME_ARG: -+ if (vm_name_flag) { -+ LLDPAD_ERR("%s: Incorrect arguments: Single VSI" -+ " containing multiple VM Name\n", -+ __func__); -+ return false; -+ } -+ vm_name_flag = true; -+ strncpy(vdp_cisco_oui_p->vm_name, token, data_len); -+ vdp_cisco_oui_p->vm_name[data_len] = '\0'; -+ vdp_cisco_oui_p->vm_name_len = data_len; -+ LLDPAD_DBG("Name %s Len %ld\n", -+ vdp_cisco_oui_p->vm_name, -+ vdp_cisco_oui_p->vm_name_len); -+ break; -+ case CISCO_OUI_NAME_UUID_ARG: -+ uuid = calloc(data_len, sizeof(char)); -+ if (uuid == NULL) { -+ LLDPAD_ERR("%s: NULL uuid\n", __func__); -+ return false; -+ } -+ strncpy(uuid, token, data_len); -+ if (oui_vdp_str2uuid(vdp_cisco_oui_p->uuid, uuid, -+ sizeof(vdp_cisco_oui_p->uuid))) -+ memset(vdp_cisco_oui_p->uuid, 0, -+ sizeof(vdp_cisco_oui_p->uuid)); -+ free(uuid); -+ break; -+ case CISCO_OUI_L3V4ADDR_ARG: -+ if (l3_addr_flag) { -+ LLDPAD_ERR("%s: Incorrect arguments: Single VSI" -+ " containing multiple L3 Address\n", -+ __func__); -+ return true; -+ } -+ l3_addr_flag = true; -+ vdp_cisco_oui_p->afi = MANADDR_IPV4; -+ vdp_cisco_oui_p->vm_addr_len = -+ sizeof(vdp_cisco_oui_p->l3_addr.ipv4_address); -+ v4_addr_str = calloc(data_len, sizeof(char)); -+ if (v4_addr_str == NULL) { -+ LLDPAD_ERR("%s: NULL L3 Address\n", __func__); -+ return false; -+ } -+ strncpy(v4_addr_str, token, data_len); -+ ret = inet_aton(v4_addr_str, -+ &vdp_cisco_oui_p->l3_addr.ipv4_address); -+ LLDPAD_DBG("V4adr %s 0x%lx\n", v4_addr_str, -+ (unsigned long) -+ vdp_cisco_oui_p->l3_addr.ipv4_address.s_addr); -+ free(v4_addr_str); -+ if (!ret) { -+ LLDPAD_ERR("%s: Incorrect addr\n", __func__); -+ return false; -+ } -+ break; -+ default: -+ LLDPAD_ERR("%s: unknown subtype %d\n", __func__, -+ oui_argtype); -+ return false; -+ } -+ token += data_len; -+ offset += data_len; -+ } -+ return true; -+} -+ -+/* -+ * This function converts the OUI information from vdpnl struct to vdp22 struct -+ * vsi is not used here, but can be used for storing the pointer to the parent -+ * struct -+ */ -+ -+bool cisco_vdpnl2vsi22_hndlr(void *vsi_data, struct vdpnl_oui_data_s *from, -+ struct vdp22_oui_data_s *to) -+{ -+ if ((from == NULL) || (to == NULL)) { -+ LLDPAD_ERR("%s: NULL arg\n", __func__); -+ return false; -+ } -+ to->data = calloc(1, from->len); -+ if (to->data == NULL) { -+ LLDPAD_ERR("%s: calloc failure\n", __func__); -+ return false; -+ } -+ memcpy(to->oui_type, from->oui_type, sizeof(to->oui_type)); -+ strncpy(to->oui_name, from->oui_name, sizeof(to->oui_name)); -+ /* Parent Pointer */ -+ to->vsi_data = vsi_data; -+ to->len = from->len; -+ memcpy(to->data, from->data, to->len); -+ return true; -+} -+ -+/* -+ * This function deletes the OUI information associated with a VSI -+ */ -+ -+bool cisco_vdp_free_oui(struct vdp22_oui_data_s *vdp_oui_p) -+{ -+ if ((vdp_oui_p == NULL) || (vdp_oui_p->data == NULL)) { -+ LLDPAD_ERR("%s: NULL arg\n", __func__); -+ return false; -+ } -+ free(vdp_oui_p->data); -+ vdp_oui_p->len = 0; -+ vdp_oui_p->data = NULL; -+ return true; -+} -+ -+/* -+ * This gets called for any VDP specific response. Currently not implemented. -+ */ -+ -+bool cisco_vdp_rx_hndlr() -+{ -+ return true; -+} -+ -+static inline unsigned long cisco_vdp_name_subtlv_len(vdp_cisco_oui_t *ptr) -+{ -+ return CISCO_VM_NAME_TLV_LEN + ptr->vm_name_len; -+} -+ -+static inline unsigned long cisco_vdp_l3addr_subtlv_len(vdp_cisco_oui_t *ptr) -+{ -+ return CISCO_VM_L3ADDR_TLV_LEN + ptr->vm_addr_len; -+} -+ -+/* -+ * Returns the size -+ * ORG TLV's are sent separately for Name and IP, which is why the T,L of 2B -+ * and 3B for OUI_TYPE_LEN is added for both. This is done to be compatible -+ * with Cisco switch implementation. -+ */ -+ -+unsigned long cisco_vdp_oui_ptlvsize(void *arg_ptr) -+{ -+ vdp_cisco_oui_t *ptr = (vdp_cisco_oui_t *)arg_ptr; -+ unsigned long cnt = 0; -+ -+ if (ptr == NULL) { -+ LLDPAD_ERR("%s: Incorrect arg\n", __func__); -+ return 0; -+ } -+ if (ptr->vm_name_len != 0) { -+ cnt += 2 + VDP22_OUI_TYPE_LEN; -+ cnt += cisco_vdp_name_subtlv_len(ptr); -+ } -+ /* Only V4 or V6 is supported */ -+ if ((ptr->afi == MANADDR_IPV4) || (ptr->afi == MANADDR_IPV6)) { -+ cnt += 2 + VDP22_OUI_TYPE_LEN; -+ cnt += cisco_vdp_l3addr_subtlv_len(ptr); -+ } -+ return cnt; -+} -+ -+static inline size_t cisco_vdp22_gen_l3addr(char unsigned *cp, size_t offset, -+ struct vdp22_oui_data_s *oui_ptr) -+{ -+ vdp_cisco_oui_t *vdp_cisco_oui_str; -+ unsigned char *vsi = NULL; -+ unsigned short head; -+ unsigned char len = 0; -+ unsigned long net_l3_addr; -+ -+ vdp_cisco_oui_str = (vdp_cisco_oui_t *)oui_ptr->data; -+ head = oui_get_tlv_head(VDP22_OUI, VDP22_OUI_TYPE_LEN + -+ cisco_vdp_l3addr_subtlv_len(oui_ptr->data)); -+ offset += oui_append_2o(cp + offset, head); -+ offset += oui_append_3o(cp + offset, CISCO_OUI_HEX); -+ offset += oui_append_1o(cp + offset, CISCO_OUI_L3ADDR_SUBTYPE); -+ offset += oui_append_1o(cp + offset, -+ vdp22_oui_get_vsi22_fmt(oui_ptr->vsi_data)); -+ vsi = vdp22_oui_get_vsi22_len(oui_ptr->vsi_data, &len); -+ if (vsi != NULL) -+ offset += oui_append_nb(cp + offset, vsi, len); -+ else -+ LLDPAD_ERR("%s: get vsi22 return error\n", __func__); -+ offset += oui_append_2o(cp + offset, vdp_cisco_oui_str->afi); -+ if (vdp_cisco_oui_str->afi == MANADDR_IPV4) { -+ net_l3_addr = htonl(vdp_cisco_oui_str->l3_addr. -+ ipv4_address.s_addr); -+ offset += oui_append_4o(cp + offset, net_l3_addr); -+ } else { -+ offset += oui_append_4o(cp + offset, 0); -+ LLDPAD_ERR("%s: Not supported for now\n", __func__); -+ } -+ LLDPAD_DBG("%s: Valid VM Addr offset %ld\n", __func__, offset); -+ return offset; -+} -+ -+static inline size_t cisco_vdp22_gen_vmname(char unsigned *cp, size_t offset, -+ struct vdp22_oui_data_s *oui_ptr) -+{ -+ vdp_cisco_oui_t *vdp_cisco_oui_str; -+ unsigned char *vsi = NULL; -+ unsigned short head; -+ unsigned char len = 0; -+ -+ vdp_cisco_oui_str = (vdp_cisco_oui_t *)oui_ptr->data; -+ head = oui_get_tlv_head(VDP22_OUI, VDP22_OUI_TYPE_LEN + -+ cisco_vdp_name_subtlv_len(oui_ptr->data)); -+ offset += oui_append_2o(cp + offset, head); -+ offset += oui_append_3o(cp + offset, CISCO_OUI_HEX); -+ offset += oui_append_1o(cp + offset, CISCO_OUI_NAME_SUBTYPE); -+ offset += oui_append_1o(cp + offset, -+ vdp22_oui_get_vsi22_fmt(oui_ptr->vsi_data)); -+ vsi = vdp22_oui_get_vsi22_len(oui_ptr->vsi_data, &len); -+ if (vsi != NULL) -+ offset += oui_append_nb(cp + offset, vsi, len); -+ else -+ LLDPAD_ERR("%s: get vsi22 return error\n", __func__); -+ offset += oui_append_1o(cp + offset, VDP22_ID_UUID); -+ offset += oui_append_nb(cp + offset, vdp_cisco_oui_str->uuid, -+ sizeof(vdp_cisco_oui_str->uuid)); -+ offset += oui_append_nb(cp + offset, -+ (char unsigned *)vdp_cisco_oui_str->vm_name, -+ vdp_cisco_oui_str->vm_name_len); -+ LLDPAD_DBG("%s: Valid VM Name offset %ld\n", __func__, offset); -+ return offset; -+} -+ -+/* -+ * This function takes care of converting the OUI for Tx. -+ */ -+ -+size_t cisco_vdp_tx_hndlr(char unsigned *cp, struct vdp22_oui_data_s *oui_ptr, -+ size_t offset) -+{ -+ vdp_cisco_oui_t *vdp_cisco_oui_str; -+ -+ if ((cp == NULL) || (oui_ptr == NULL) || (oui_ptr->data == NULL)) { -+ LLDPAD_ERR("%s: NULL Arguments\n", __func__); -+ return 0; -+ } -+ vdp_cisco_oui_str = (vdp_cisco_oui_t *)oui_ptr->data; -+ if (vdp_cisco_oui_str->vm_name_len != 0) -+ offset = cisco_vdp22_gen_vmname(cp, offset, oui_ptr); -+ if (vdp_cisco_oui_str->vm_addr_len != 0) -+ offset = cisco_vdp22_gen_l3addr(cp, offset, oui_ptr); -+ return offset; -+} -+ -+bool cisco_oui_init() -+{ -+ bool ret; -+ -+ ret = oui_vdp_hndlr_init(&cisco_oui_hndlr); -+ if (!ret) { -+ LLDPAD_ERR("%s: handler init return err\n", __func__); -+ return false; -+ } -+ return true; -+} -diff --git a/vdptool.c b/vdptool.c -index c857a85..8edd6ca 100644 ---- a/vdptool.c -+++ b/vdptool.c -@@ -65,10 +65,12 @@ - * here. The corresponding decoder handler should be in lldpad. - */ - -+EXTERN_OUI_FN(cisco); - - /* The OUI specific handlers should be added here */ - - vdptool_oui_hndlr_tbl_t oui_hndlr_tbl[] = { -+ {"cisco", OUI_ENCODE_HNDLR(cisco)} - }; - - -diff --git a/vdptool_cisco_oui.c b/vdptool_cisco_oui.c -new file mode 100644 -index 0000000..4a846ad ---- /dev/null -+++ b/vdptool_cisco_oui.c -@@ -0,0 +1,58 @@ -+/******************************************************************************* -+ -+ Implementation of Cisco Specific OUI for vdptool -+ Copyright (c) 2012-2014 by Cisco Systems, Inc. -+ -+ Author(s): Padmanabhan Krishnan -+ -+ This program is free software; you can redistribute it and/or modify it -+ under the terms and conditions of the GNU General Public License, -+ version 2, as published by the Free Software Foundation. -+ -+ This program is distributed in the hope it will be useful, but WITHOUT -+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+ more details. -+ -+ You should have received a copy of the GNU General Public License along with -+ this program; if not, write to the Free Software Foundation, Inc., -+ 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+ -+ The full GNU General Public License is included in this distribution in -+ the file called "COPYING". -+*******************************************************************************/ -+ -+#include -+#include -+#include -+#include "vdp_cisco.h" -+ -+bool cisco_oui_encode_hndlr(char *dst, char *src, int len) -+{ -+ char *src_temp = strdup(src); -+ char *key, *data; -+ bool flag = false; -+ -+ if (!src_temp) -+ return false; -+ key = src_temp; -+ data = strchr(key, '='); -+ if (!data) { -+ free(src_temp); -+ return false; -+ } -+ *data = '\0'; -+ data++; -+ if ((!strcmp(key, CISCO_OUI_NAME_ARG_STR)) || -+ (!strcmp(key, CISCO_OUI_L3V4ADDR_ARG_STR)) || -+ (!strcmp(key, CISCO_OUI_NAME_UUID_ARG_STR))) { -+ snprintf(dst, MAX_OUI_DATA_LEN - len, "%02x%s%04x%s", -+ (unsigned int)strlen(key), key, -+ (unsigned int)strlen(data), data); -+ flag = true; -+ } else -+ printf("Incorrect Cisco OUI %s\n", key); -+ free(src_temp); -+ return flag; -+} -+ --- -2.1.0 - diff --git a/open-lldp-v1.0.1-12-VDP22-Fix-the-ack-timeout-handler-to-set-the-right-t.patch b/open-lldp-v1.0.1-12-VDP22-Fix-the-ack-timeout-handler-to-set-the-right-t.patch deleted file mode 100644 index 0cb20fb..0000000 --- a/open-lldp-v1.0.1-12-VDP22-Fix-the-ack-timeout-handler-to-set-the-right-t.patch +++ /dev/null @@ -1,33 +0,0 @@ -From c26e175bea45306657c3435dc1ac2203584cf77a Mon Sep 17 00:00:00 2001 -From: padkrish -Date: Wed, 21 Jan 2015 03:40:32 +0000 -Subject: [PATCH] VDP22: Fix the ack timeout handler to set the right timeout - variable - -Currently the acktimeout handler sets the keepalive timeout boolean -variable as a result of which the profiles don't get deleted when -there's a timeout. This diff sets the acktimeout variable in the -acktimeout handler. - -Signed-off-by: padkrish -Signed-off-by: John Fastabend ---- - qbg/vdp22sm.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/qbg/vdp22sm.c b/qbg/vdp22sm.c -index db0e413..14356ac 100644 ---- a/qbg/vdp22sm.c -+++ b/qbg/vdp22sm.c -@@ -439,7 +439,7 @@ static void vdp22st_handle_ackto(UNUSED void *ctx, void *data) - LLDPAD_DBG("%s:%s timeout ack timer for %p(%02x) ackreceived:%d\n", - __func__, p->vdp->ifname, p, p->vsi[0], p->smi.ackreceived); - if (!p->smi.ackreceived) { -- p->smi.kato = true; -+ p->smi.acktimeout = true; - vdp22st_run(p); - } - } --- -2.1.0 - diff --git a/open-lldp-v1.0.1-13-VDP-Changes-in-OUI-infra-for-get-tlv.patch b/open-lldp-v1.0.1-13-VDP-Changes-in-OUI-infra-for-get-tlv.patch deleted file mode 100644 index 85a4305..0000000 --- a/open-lldp-v1.0.1-13-VDP-Changes-in-OUI-infra-for-get-tlv.patch +++ /dev/null @@ -1,333 +0,0 @@ -From 0bc166920c14081ed90d4774a52ca38813fc1739 Mon Sep 17 00:00:00 2001 -From: padkrish -Date: Wed, 21 Jan 2015 03:40:52 +0000 -Subject: [PATCH] VDP: Changes in OUI infra for get-tlv - -Changes made in OUI infra code to support retrieving OUI parameters -during get-tlv - -Signed-off-by: padkrish -Signed-off-by: John Fastabend ---- - include/qbg_vdp22_oui.h | 7 +++++++ - include/qbg_vdpnl.h | 1 + - qbg/vdp22.c | 32 ++++++++++++++++++++++++++++++++ - qbg/vdp22_cmds.c | 4 ++++ - qbg/vdp22_oui.c | 5 +++++ - qbg/vdp_ascii.c | 37 +++++++++++++++++++++++++++++++++++++ - qbg/vdpnl.c | 14 ++++++++++++++ - vdptool.c | 38 ++++++++++++++++++++++++++++++++++---- - 8 files changed, 134 insertions(+), 4 deletions(-) - -diff --git a/include/qbg_vdp22_oui.h b/include/qbg_vdp22_oui.h -index 79e1ff5..923e19f 100644 ---- a/include/qbg_vdp22_oui.h -+++ b/include/qbg_vdp22_oui.h -@@ -53,6 +53,7 @@ typedef struct vdptool_oui_data_s { - typedef struct vdptool_oui_hndlr_tbl_s { - char *oui_name; - bool (*oui_cli_encode_hndlr)(char *dst, char *src, size_t len); -+ void (*oui_print_decode_hndlr)(char *dst); - } vdptool_oui_hndlr_tbl_t; - - struct vdpnl_oui_data_s { -@@ -81,6 +82,11 @@ struct vdp22_oui_handler_s { - /* This handler converts the vdpnl structure to vsi22 structure */ - bool (*vdpnl2vsi22_hndlr)(void *, struct vdpnl_oui_data_s *, - struct vdp22_oui_data_s *); -+ /* This handler converts the vdpnl structure to string */ -+ bool (*vdpnl2str_hndlr)(struct vdpnl_oui_data_s *, char *, -+ int *, int); -+ bool (*vsi2vdpnl_hndlr)(void *, struct vdp22_oui_data_s *, -+ struct vdpnl_oui_data_s *); - /* This handler creates the OUI fields for Tx */ - size_t (*vdp_tx_hndlr)(char unsigned *, - struct vdp22_oui_data_s *, size_t); -@@ -95,6 +101,7 @@ struct vdp22_oui_handler_s { - unsigned char vdp22_oui_get_vsi22_fmt(void *); - unsigned char *vdp22_oui_get_vsi22_len(void *, unsigned char *); - int oui_vdp_str2uuid(unsigned char *, char *, size_t); -+int oui_vdp_uuid2str(unsigned char *, char *, size_t); - bool oui_vdp_hndlr_init(struct vdp22_oui_handler_s *); - int oui_vdp_hexstr2bin(const char *hex, unsigned char *buf, size_t len); - -diff --git a/include/qbg_vdpnl.h b/include/qbg_vdpnl.h -index bf18e71..cb7efca 100644 ---- a/include/qbg_vdpnl.h -+++ b/include/qbg_vdpnl.h -@@ -81,6 +81,7 @@ int vdp_str2vdpnl(char *, struct vdpnl_vsi *, char *); - int vdp_vdpnl2str(struct vdpnl_vsi *, char *, size_t); - int vdp22_sendevent(struct vdpnl_vsi *); - void vdp22_freemaclist(struct vdpnl_vsi *); -+void vsinl_delete_oui(struct vdpnl_vsi *); - int vdp22_parse_str_vdpnl(struct vdpnl_vsi *, unsigned short *, char *); - struct vsi22 *vdp22_alloc_vsi_ext(struct vdpnl_vsi *, int *); - void copy_vsi_external(struct vdpnl_vsi *, struct vsi22 *, int); -diff --git a/qbg/vdp22.c b/qbg/vdp22.c -index ab170ed..10b80a4 100644 ---- a/qbg/vdp22.c -+++ b/qbg/vdp22.c -@@ -1010,6 +1010,37 @@ static void copy_fid(struct vdpnl_vsi *vsi, struct vsi22 *p) - } - - /* -+ * This function copies the OUI from VSI22 to vdpnl structure. -+ */ -+ -+static void copy_oui(struct vdpnl_vsi *vsi, struct vsi22 *p) -+{ -+ struct vdp22_oui_handler_s *oui_hndlr; -+ bool ret; -+ int idx; -+ -+ vsi->oui_list = calloc(p->no_ouidata, sizeof(*vsi->oui_list)); -+ if (!vsi->oui_list) -+ return; -+ vsi->ouisz = p->no_ouidata; -+ for (idx = 0; idx < p->no_ouidata; idx++) { -+ struct vdpnl_oui_data_s *to = &vsi->oui_list[idx]; -+ struct vdp22_oui_data_s *from = &p->oui_str_data[idx]; -+ -+ oui_hndlr = vdp22_get_oui_hndlr(from->oui_name); -+ if (oui_hndlr == NULL) { -+ LLDPAD_ERR("%s: No handler registered for OUI %s\n", -+ __func__, from->oui_name); -+ continue; -+ } -+ ret = oui_hndlr->vsi2vdpnl_hndlr(p, from, to); -+ if (!ret) -+ LLDPAD_ERR("%s: handler return error for oui %s\n", -+ __func__, from->oui_name); -+ } -+} -+ -+/* - * Fill the VSI data to return to caller. Currently returned data depends - * on requestor: - * 1. Via netlink message from libvirtd and vdptest: -@@ -1033,6 +1064,7 @@ static void copy_vsi(struct vdpnl_vsi *vsi, struct vsi22 *p, int clif) - if (clif || (p->flags & VDP22_RETURN_VID)) { - copy_fid(vsi, p); - p->flags &= ~VDP22_RETURN_VID; -+ copy_oui(vsi, p); - } - } - -diff --git a/qbg/vdp22_cmds.c b/qbg/vdp22_cmds.c -index 5b5788f..79ea9ca 100644 ---- a/qbg/vdp22_cmds.c -+++ b/qbg/vdp22_cmds.c -@@ -434,6 +434,7 @@ static int catvsis(struct vdpnl_vsi *vsi, char *out, size_t out_len) - for (i = 1; vdp22_status(i, vsi, 1) > 0; ++i) { - if (wanted_req != vsi->request) { - vdp22_freemaclist(vsi); -+ vsinl_delete_oui(vsi); - continue; - } - rc = vdp_vdpnl2str(vsi, tmp_buf, out_len - used); -@@ -443,6 +444,7 @@ static int catvsis(struct vdpnl_vsi *vsi, char *out, size_t out_len) - if ((c < 0) || ((unsigned)c >= (out_len - used))) - return 0; - vdp22_freemaclist(vsi); -+ vsinl_delete_oui(vsi); - if (rc) { - used = strlen(out); - } else -@@ -533,6 +535,8 @@ static int get_vsi_partial_arg(UNUSED char *arg, char *orig_argvalue, - len = strlen(tmp_buf); - c = snprintf(out + used, out_len - used, "%04x%s", - len, tmp_buf); -+ vdp22_freemaclist(vsinl); -+ vsinl_delete_oui(vsinl); - if ((c < 0) || ((unsigned)c >= (out_len - used))) - goto out_delvsi; - if (rc) -diff --git a/qbg/vdp22_oui.c b/qbg/vdp22_oui.c -index 3a2d0cc..4960324 100644 ---- a/qbg/vdp22_oui.c -+++ b/qbg/vdp22_oui.c -@@ -57,6 +57,11 @@ int oui_vdp_str2uuid(unsigned char *to, char *buffer, size_t max) - return vdp_str2uuid(to, buffer, max); - } - -+int oui_vdp_uuid2str(unsigned char *from, char *buffer, size_t max) -+{ -+ return vdp_uuid2str(from, buffer, max); -+} -+ - int oui_vdp_hexstr2bin(const char *hex, unsigned char *buf, size_t len) - { - return hexstr2bin(hex, buf, len); -diff --git a/qbg/vdp_ascii.c b/qbg/vdp_ascii.c -index 80a4419..709ffd9 100644 ---- a/qbg/vdp_ascii.c -+++ b/qbg/vdp_ascii.c -@@ -244,6 +244,10 @@ static bool oui_str2vdpnl(struct vdpnl_vsi *vsi, char *p, unsigned short idx) - oui_hndlr = vdp22_get_oui_hndlr(oui_name); - if (!oui_hndlr) - return false; -+ if (!vsi->oui_list) { -+ LLDPAD_ERR("%s: Null OUI List\n", __func__); -+ return false; -+ } - strncpy(vsi->oui_list[idx].oui_name, oui_name, - sizeof(vsi->oui_list[idx].oui_name)); - if (oui_hndlr->str2vdpnl_hndlr) -@@ -597,11 +601,16 @@ static void mgrid2str(char *to, struct vdpnl_vsi *p, size_t to_len) - /* - * Convert a vdpnl_vsi to string. - */ -+ - int vdp_vdpnl2str(struct vdpnl_vsi *p, char *s, size_t length) - { - int c, i; - size_t total = 0; - char instance[VDP_UUID_STRLEN + 2]; -+ struct vdp22_oui_handler_s *oui_hndlr; -+ int oui_total = 0; -+ int ret; -+ int idx; - - mgrid2str(instance, p, sizeof(instance)); - c = snprintf(s, length, "%02x%s%04x%s%02x%s%04x%s%02x%s%04x%lu%02x%s" -@@ -642,6 +651,34 @@ int vdp_vdpnl2str(struct vdpnl_vsi *p, char *s, size_t length) - if (!c) - goto out; - } -+ for (idx = 0; idx < p->ouisz; idx++) { -+ struct vdpnl_oui_data_s *from = &p->oui_list[idx]; -+ -+ oui_total = 0; -+ oui_hndlr = vdp22_get_oui_hndlr(from->oui_name); -+ if (oui_hndlr == NULL) { -+ LLDPAD_ERR("%s: Unknown OUI Name %s\n", __func__, -+ from->oui_name); -+ } else { -+ c = snprintf(s, length, "%02x%s", -+ (unsigned int)strlen(VSI22_ARG_OUI_STR), -+ VSI22_ARG_OUI_STR); -+ s = check_and_update(&total, &length, s, c); -+ if (!s) -+ goto out; -+ ret = oui_hndlr->vdpnl2str_hndlr(from, s, &oui_total, -+ length); -+ if (!ret) { -+ LLDPAD_ERR("%s: handler return error for " -+ "oui %s\n", __func__, -+ from->oui_name); -+ goto out; -+ } -+ s = check_and_update(&total, &length, s, oui_total); -+ if (!s) -+ goto out; -+ } -+ } - - out: - return s ? total : 0; -diff --git a/qbg/vdpnl.c b/qbg/vdpnl.c -index 5c0ffd4..9b8fcdd 100644 ---- a/qbg/vdpnl.c -+++ b/qbg/vdpnl.c -@@ -365,6 +365,19 @@ static int vdpnl_get(struct vdpnl_vsi *p, struct nlmsghdr *nlh) - } - - /* -+ * Delete the OUI structures of VSI22 -+ */ -+ -+void vsinl_delete_oui(struct vdpnl_vsi *p) -+{ -+ if ((p->ouisz == 0) || (p->oui_list == NULL)) -+ return; -+ p->ouisz = 0; -+ free(p->oui_list); -+ p->oui_list = NULL; -+} -+ -+/* - * Free an malloc'ed maclist array. - */ - void vdp22_freemaclist(struct vdpnl_vsi *vsi) -@@ -419,6 +432,7 @@ static int vdpnl_getlink(struct nlmsghdr *nlh, size_t len) - nla_nest_end(msg, vf_port); - } - vdp22_freemaclist(&p); -+ vsinl_delete_oui(&p); - } while (rc == 1); - nla_nest_end(msg, vf_ports); - if (rc < 0) { -diff --git a/vdptool.c b/vdptool.c -index 8edd6ca..b805372 100644 ---- a/vdptool.c -+++ b/vdptool.c -@@ -58,8 +58,11 @@ - #include "qbg_vdp22_oui.h" - - #define OUI_ENCODE_HNDLR(name) name##_oui_encode_hndlr -+#define OUI_PRNT_DECODE_HNDLR(name) name##_oui_print_decode_hndlr -+ - #define EXTERN_OUI_FN(name) \ -- extern bool name##_oui_encode_hndlr(char *, char *, size_t) -+ extern bool name##_oui_encode_hndlr(char *, char *, size_t); \ -+ extern void name##_oui_print_decode_hndlr(char *) - - /* The handler declaration for encoding OUI specific information should be - * here. The corresponding decoder handler should be in lldpad. -@@ -70,7 +73,7 @@ EXTERN_OUI_FN(cisco); - /* The OUI specific handlers should be added here */ - - vdptool_oui_hndlr_tbl_t oui_hndlr_tbl[] = { -- {"cisco", OUI_ENCODE_HNDLR(cisco)} -+ {"cisco", OUI_ENCODE_HNDLR(cisco), OUI_PRNT_DECODE_HNDLR(cisco)} - }; - - -@@ -508,6 +511,29 @@ void print_vsi_err_msg(char *key_val) - printf("\tInternal Error : %s\n", VSI22_TX_ERR_STR); - } - -+static void print_oui_vals(char *argvals) -+{ -+ char oui_name[VDP22_OUI_MAX_NAME]; -+ char *temp_argval = argvals; -+ char *oui_val; -+ int tbl_size, cnt; -+ u8 oui_name_len; -+ -+ hexstr2bin(argvals, &oui_name_len, sizeof(oui_name_len)); -+ if (oui_name_len >= VDP22_OUI_MAX_NAME) -+ return; -+ temp_argval = argvals + 2 * sizeof(oui_name_len); -+ oui_val = temp_argval + oui_name_len; -+ strncpy(oui_name, temp_argval, oui_name_len); -+ oui_name[oui_name_len] = '\0'; -+ tbl_size = sizeof(oui_hndlr_tbl) / sizeof(vdptool_oui_hndlr_tbl_t); -+ for (cnt = 0; cnt < tbl_size; cnt++) { -+ if (!strncmp(oui_hndlr_tbl[cnt].oui_name, oui_name, -+ VDP22_OUI_MAX_NAME)) -+ oui_hndlr_tbl[cnt].oui_print_decode_hndlr(oui_val); -+ } -+} -+ - static void print_vsi(char **args, char **argvals, int numargs, - bool err_flag) - { -@@ -517,8 +543,12 @@ static void print_vsi(char **args, char **argvals, int numargs, - if (err_flag && (!strcmp(args[i], VSI22_ARG_HINTS_STR))) - print_vsi_err_msg(argvals[i]); - else { -- printf("\t%s", args[i]); -- printf(" = %s\n", argvals[i]); -+ if (!strcmp(args[i], VSI22_ARG_OUI_STR)) { -+ print_oui_vals(argvals[i]); -+ } else { -+ printf("\t%s", args[i]); -+ printf(" = %s\n", argvals[i]); -+ } - } - } - } --- -2.1.0 - diff --git a/open-lldp-v1.0.1-14-VDP-Changes-in-Cisco-OUI-handlers-to-support-get-tlv.patch b/open-lldp-v1.0.1-14-VDP-Changes-in-Cisco-OUI-handlers-to-support-get-tlv.patch deleted file mode 100644 index 71466e0..0000000 --- a/open-lldp-v1.0.1-14-VDP-Changes-in-Cisco-OUI-handlers-to-support-get-tlv.patch +++ /dev/null @@ -1,283 +0,0 @@ -From ead7bc6267c87e0816ba2367b9036d8a647f3099 Mon Sep 17 00:00:00 2001 -From: padkrish -Date: Wed, 21 Jan 2015 03:41:14 +0000 -Subject: [PATCH] VDP: Changes in Cisco OUI handlers to support get-tlv - -Signed-off-by: padkrish -Signed-off-by: John Fastabend ---- - include/vdp_cisco.h | 22 ++++++++++ - qbg/vdp22cisco_oui.c | 120 ++++++++++++++++++++++++++++++++++++++++++--------- - vdptool_cisco_oui.c | 54 +++++++++++++++++++++++ - 3 files changed, 175 insertions(+), 21 deletions(-) - -diff --git a/include/vdp_cisco.h b/include/vdp_cisco.h -index 339d479..821db68 100644 ---- a/include/vdp_cisco.h -+++ b/include/vdp_cisco.h -@@ -96,6 +96,7 @@ typedef union l3_addrtype_ { - typedef struct vdp_cisco_oui_s { - char key[KEYLEN]; /* Profile name */ - u8 uuid[PORT_UUID_MAX]; /* Instance ID */ -+ bool uuid_set; - size_t vm_name_len; - char vm_name[MAX_VM_NAME]; - u16 afi; -@@ -103,10 +104,18 @@ typedef struct vdp_cisco_oui_s { - l3_addr_t l3_addr; - } vdp_cisco_oui_t; - -+struct oui_keyword_handler oui_key_handle[] = { -+ {CISCO_OUI_NAME_ARG_STR, CISCO_OUI_NAME_ARG}, -+ {CISCO_OUI_NAME_UUID_ARG_STR, CISCO_OUI_NAME_UUID_ARG}, -+ {CISCO_OUI_L3V4ADDR_ARG_STR, CISCO_OUI_L3V4ADDR_ARG} }; -+ - bool cisco_str2vdpnl_hndlr(struct vdpnl_oui_data_s *, char *); - bool cisco_vdp_free_oui(struct vdp22_oui_data_s *); - bool cisco_vdpnl2vsi22_hndlr(void *, struct vdpnl_oui_data_s *, - struct vdp22_oui_data_s *); -+bool cisco_vdpnl2str_hndlr(struct vdpnl_oui_data_s *, char *, int *, int); -+bool cisco_vsi2vdpnl_hndlr(void *, struct vdp22_oui_data_s *, -+ struct vdpnl_oui_data_s *); - size_t cisco_vdp_tx_hndlr(char unsigned *, struct vdp22_oui_data_s *, size_t); - bool cisco_vdp_rx_hndlr(); - unsigned long cisco_vdp_oui_ptlvsize(void *); -@@ -118,4 +127,17 @@ static inline void fill_cisco_oui_type(unsigned char *oui_type) - oui_type[2] = 0x0c; - } - -+enum oui_key_arg get_oui_key(char *token, u8 key_len) -+{ -+ int count, key_str_size; -+ -+ key_str_size = sizeof(oui_key_handle) / sizeof(oui_key_handle[0]); -+ for (count = 0; count < key_str_size; count++) { -+ if ((key_len <= strlen(token)) && -+ (!strncmp(token, oui_key_handle[count].keyword, key_len))) -+ return oui_key_handle[count].val; -+ } -+ return CISCO_OUI_INVALID_ARG; -+} -+ - #endif /* __VDP22_VISCO_H__ */ -diff --git a/qbg/vdp22cisco_oui.c b/qbg/vdp22cisco_oui.c -index ef6c307..e8a824c 100644 ---- a/qbg/vdp22cisco_oui.c -+++ b/qbg/vdp22cisco_oui.c -@@ -29,31 +29,14 @@ - #include - #include "messages.h" - #include "qbg_vdp22def.h" -+#include "qbg_utils.h" - #include "vdp_cisco.h" - - struct vdp22_oui_handler_s cisco_oui_hndlr = { - {0x00, 0x00, 0x0c}, "cisco", cisco_str2vdpnl_hndlr, -- cisco_vdpnl2vsi22_hndlr, -- cisco_vdp_tx_hndlr, cisco_vdp_rx_hndlr, cisco_vdp_free_oui, -- cisco_vdp_oui_ptlvsize}; -- --struct oui_keyword_handler oui_key_handle[] = { -- {CISCO_OUI_NAME_ARG_STR, CISCO_OUI_NAME_ARG}, -- {CISCO_OUI_NAME_UUID_ARG_STR, CISCO_OUI_NAME_UUID_ARG}, -- {CISCO_OUI_L3V4ADDR_ARG_STR, CISCO_OUI_L3V4ADDR_ARG} }; -- --enum oui_key_arg get_oui_key(char *token, u8 key_len) --{ -- int count, key_str_size; -- -- key_str_size = sizeof(oui_key_handle) / sizeof(oui_key_handle[0]); -- for (count = 0; count < key_str_size; count++) { -- if ((key_len <= strlen(token)) && -- (!strncmp(token, oui_key_handle[count].keyword, key_len))) -- return oui_key_handle[count].val; -- } -- return CISCO_OUI_INVALID_ARG; --} -+ cisco_vdpnl2vsi22_hndlr, cisco_vdpnl2str_hndlr, -+ cisco_vsi2vdpnl_hndlr, cisco_vdp_tx_hndlr, cisco_vdp_rx_hndlr, -+ cisco_vdp_free_oui, cisco_vdp_oui_ptlvsize}; - - /* - * This function fills the vdpnl structure of OUI from the command separated -@@ -124,6 +107,7 @@ bool cisco_str2vdpnl_hndlr(struct vdpnl_oui_data_s *vdp_oui_p, char *token) - sizeof(vdp_cisco_oui_p->uuid))) - memset(vdp_cisco_oui_p->uuid, 0, - sizeof(vdp_cisco_oui_p->uuid)); -+ vdp_cisco_oui_p->uuid_set = true; - free(uuid); - break; - case CISCO_OUI_L3V4ADDR_ARG: -@@ -193,6 +177,100 @@ bool cisco_vdpnl2vsi22_hndlr(void *vsi_data, struct vdpnl_oui_data_s *from, - } - - /* -+ * This function converts the OUI information from vdpnl struct to string -+ */ -+ -+bool cisco_vdpnl2str_hndlr(struct vdpnl_oui_data_s *from, char *out_buf, -+ int *total, int rem_len) -+{ -+ char tmp_out_buf[MAX_OUI_DATA_LEN]; -+ char uuid_str[VDP_UUID_STRLEN + 2]; -+ char *tmp_oui_buf; -+ vdp_cisco_oui_t *vdp_cisco_oui_p; -+ int c = 0, num_str_bytes; -+ int tmp_buf_len = sizeof(tmp_out_buf); -+ -+ tmp_oui_buf = tmp_out_buf; -+ if ((from == NULL) || (out_buf == NULL)) { -+ LLDPAD_ERR("%s: NULL arg\n", __func__); -+ return false; -+ } -+ vdp_cisco_oui_p = (vdp_cisco_oui_t *)from->data; -+ c = snprintf(tmp_oui_buf, tmp_buf_len, "%02x%s", -+ (unsigned int)strlen("cisco"), "cisco"); -+ tmp_buf_len -= c; -+ tmp_oui_buf += c; -+ if (vdp_cisco_oui_p->vm_name_len != 0) { -+ c = snprintf(tmp_oui_buf, tmp_buf_len, -+ "%02x%s%04x%s", -+ (unsigned int)strlen(CISCO_OUI_NAME_ARG_STR), -+ CISCO_OUI_NAME_ARG_STR, -+ (unsigned int)vdp_cisco_oui_p->vm_name_len, -+ vdp_cisco_oui_p->vm_name); -+ if ((c < 0) || (c >= tmp_buf_len)) -+ return false; -+ tmp_buf_len -= c; -+ tmp_oui_buf += c; -+ } -+ if (vdp_cisco_oui_p->uuid_set) { -+ oui_vdp_uuid2str(vdp_cisco_oui_p->uuid, uuid_str, -+ sizeof(uuid_str)); -+ c = snprintf(tmp_oui_buf, tmp_buf_len, -+ "%02x%s%04x%s", -+ (unsigned int)strlen(CISCO_OUI_NAME_UUID_ARG_STR), -+ CISCO_OUI_NAME_UUID_ARG_STR, -+ (unsigned int)strlen(uuid_str), uuid_str); -+ if ((c < 0) || (c >= tmp_buf_len)) -+ return false; -+ tmp_buf_len -= c; -+ tmp_oui_buf += c; -+ } -+ if (vdp_cisco_oui_p->vm_addr_len != 0) { -+ num_str_bytes = snprintf(NULL, 0, "%ul", -+ vdp_cisco_oui_p->l3_addr. -+ ipv4_address.s_addr); -+ c = snprintf(tmp_oui_buf, tmp_buf_len, "%02x%s%04x%ul", -+ (unsigned int)strlen(CISCO_OUI_L3V4ADDR_ARG_STR), -+ CISCO_OUI_L3V4ADDR_ARG_STR, num_str_bytes, -+ vdp_cisco_oui_p->l3_addr.ipv4_address.s_addr); -+ if ((c < 0) || (c >= tmp_buf_len)) -+ return false; -+ tmp_buf_len -= c; -+ tmp_oui_buf += c; -+ } -+ c = snprintf(out_buf, rem_len, "%04x%s", -+ (unsigned int)strlen(tmp_out_buf), -+ tmp_out_buf); -+ if ((c < 0) || (c >= rem_len)) -+ return false; -+ rem_len -= c; -+ out_buf += c; -+ *total += c; -+ return true; -+} -+ -+/* -+ * This function converts the OUI information from vsi22 struct to vdpnl struct -+ * vsi is not used here, but can be used for storing the pointer to the parent -+ * struct -+ */ -+ -+bool cisco_vsi2vdpnl_hndlr(UNUSED void *vsi_data, struct vdp22_oui_data_s *from, -+ struct vdpnl_oui_data_s *to) -+{ -+ if ((from == NULL) || (to == NULL)) { -+ LLDPAD_ERR("%s: NULL arg\n", __func__); -+ return false; -+ } -+ memcpy(to->oui_type, from->oui_type, sizeof(to->oui_type)); -+ strncpy(to->oui_name, from->oui_name, sizeof(to->oui_name)); -+ to->len = from->len; -+ memcpy(to->data, from->data, to->len); -+ return true; -+} -+ -+ -+/* - * This function deletes the OUI information associated with a VSI - */ - -diff --git a/vdptool_cisco_oui.c b/vdptool_cisco_oui.c -index 4a846ad..7003521 100644 ---- a/vdptool_cisco_oui.c -+++ b/vdptool_cisco_oui.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include "lldp_util.h" - #include "vdp_cisco.h" - - bool cisco_oui_encode_hndlr(char *dst, char *src, int len) -@@ -56,3 +57,56 @@ bool cisco_oui_encode_hndlr(char *dst, char *src, int len) - return flag; - } - -+void cisco_oui_print_decode_hndlr(char *token) -+{ -+ struct in_addr vm_inet; -+ char *v4_addr_str; -+ unsigned long vm_ip_addr; -+ int offset = 0, len; -+ u16 data_len; -+ u8 key_len; -+ enum oui_key_arg oui_argtype; -+ -+ if (token == NULL) -+ return; -+ len = strlen(token); -+ while (offset < len) { -+ hexstr2bin(token, &key_len, sizeof(key_len)); -+ token += 2; -+ offset += 2; -+ oui_argtype = get_oui_key(token, key_len); -+ token += key_len; -+ offset += key_len; -+ hexstr2bin(token, (u8 *)&data_len, sizeof(data_len)); -+ data_len = htons(data_len); -+ token += 4; -+ offset += 4; -+ if ((offset + data_len) > len) -+ return; -+ switch (oui_argtype) { -+ case CISCO_OUI_NAME_ARG: -+ printf("\t%s", "VM Name"); -+ printf(" = %.*s\n", data_len, token); -+ break; -+ case CISCO_OUI_NAME_UUID_ARG: -+ printf("\t%s", "VM UUID"); -+ printf(" = %.*s\n", data_len, token); -+ break; -+ case CISCO_OUI_L3V4ADDR_ARG: -+ v4_addr_str = calloc(data_len, sizeof(char)); -+ if (!v4_addr_str) -+ return; -+ strncpy(v4_addr_str, token, data_len); -+ vm_ip_addr = strtoul(v4_addr_str, NULL, 10); -+ vm_inet.s_addr = vm_ip_addr; -+ printf("\t%s", "VM IP Address"); -+ printf(" = %s\n", inet_ntoa(vm_inet)); -+ free(v4_addr_str); -+ break; -+ default: -+ break; -+ } -+ token += data_len; -+ offset += data_len; -+ } -+} --- -2.1.0 - diff --git a/open-lldp-v1.0.1-15-VDP-Add-vdptool-man-page-to-Makefile.patch b/open-lldp-v1.0.1-15-VDP-Add-vdptool-man-page-to-Makefile.patch deleted file mode 100644 index 9bc32b5..0000000 --- a/open-lldp-v1.0.1-15-VDP-Add-vdptool-man-page-to-Makefile.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 5add0baccd0c888742a00af4b17754990dbcbf93 Mon Sep 17 00:00:00 2001 -From: padkrish -Date: Wed, 21 Jan 2015 03:41:38 +0000 -Subject: [PATCH] VDP: Add vdptool man page to Makefile - -Signed-off-by: padkrish -Signed-off-by: John Fastabend ---- - Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index abc9348..27dffc2 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -109,7 +109,7 @@ dist_man_MANS = docs/lldpad.8 docs/dcbtool.8 docs/lldptool.8 \ - docs/lldptool-ets.8 docs/lldptool-pfc.8 docs/lldptool-app.8 \ - docs/lldptool-evb.8 docs/lldptool-vdp.8 docs/lldptool-med.8 \ - docs/lldptool-dcbx.8 \ -- docs/lldptool-evb22.8 -+ docs/lldptool-evb22.8 docs/vdptool.8 - if BUILD_DEBUG - nodist_man_MANS = test/qbg22sim.1 test/vdptest.1 - endif --- -2.1.0 - diff --git a/open-lldp-v1.0.1-16-VDP-Fixed-DBG-print-compile-errors-in-32-bit-systems.patch b/open-lldp-v1.0.1-16-VDP-Fixed-DBG-print-compile-errors-in-32-bit-systems.patch deleted file mode 100644 index 2cc1c3a..0000000 --- a/open-lldp-v1.0.1-16-VDP-Fixed-DBG-print-compile-errors-in-32-bit-systems.patch +++ /dev/null @@ -1,45 +0,0 @@ -From b6c5d86ea57594893d4fd95a0bf8043c45c953a4 Mon Sep 17 00:00:00 2001 -From: Paddu Krishnan -Date: Wed, 21 Jan 2015 03:42:01 +0000 -Subject: [PATCH] VDP: Fixed DBG print compile errors in 32-bit systems - -Signed-off-by: Paddu Krishnan -Signed-off-by: John Fastabend ---- - qbg/vdp22cisco_oui.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/qbg/vdp22cisco_oui.c b/qbg/vdp22cisco_oui.c -index e8a824c..272d480 100644 ---- a/qbg/vdp22cisco_oui.c -+++ b/qbg/vdp22cisco_oui.c -@@ -92,7 +92,7 @@ bool cisco_str2vdpnl_hndlr(struct vdpnl_oui_data_s *vdp_oui_p, char *token) - strncpy(vdp_cisco_oui_p->vm_name, token, data_len); - vdp_cisco_oui_p->vm_name[data_len] = '\0'; - vdp_cisco_oui_p->vm_name_len = data_len; -- LLDPAD_DBG("Name %s Len %ld\n", -+ LLDPAD_DBG("Name %s Len %zu\n", - vdp_cisco_oui_p->vm_name, - vdp_cisco_oui_p->vm_name_len); - break; -@@ -364,7 +364,7 @@ static inline size_t cisco_vdp22_gen_l3addr(char unsigned *cp, size_t offset, - offset += oui_append_4o(cp + offset, 0); - LLDPAD_ERR("%s: Not supported for now\n", __func__); - } -- LLDPAD_DBG("%s: Valid VM Addr offset %ld\n", __func__, offset); -+ LLDPAD_DBG("%s: Valid VM Addr offset %zu\n", __func__, offset); - return offset; - } - -@@ -395,7 +395,7 @@ static inline size_t cisco_vdp22_gen_vmname(char unsigned *cp, size_t offset, - offset += oui_append_nb(cp + offset, - (char unsigned *)vdp_cisco_oui_str->vm_name, - vdp_cisco_oui_str->vm_name_len); -- LLDPAD_DBG("%s: Valid VM Name offset %ld\n", __func__, offset); -+ LLDPAD_DBG("%s: Valid VM Name offset %zu\n", __func__, offset); - return offset; - } - --- -2.1.0 - diff --git a/open-lldp-v1.0.1-17-lldp-automake-fixes-for-dist-distcheck.patch b/open-lldp-v1.0.1-17-lldp-automake-fixes-for-dist-distcheck.patch deleted file mode 100644 index 2c7e1e3..0000000 --- a/open-lldp-v1.0.1-17-lldp-automake-fixes-for-dist-distcheck.patch +++ /dev/null @@ -1,130 +0,0 @@ -From c986aa5bc5f509f3cbc033212e0808a992ec48bf Mon Sep 17 00:00:00 2001 -From: John Fastabend -Date: Fri, 30 Jan 2015 08:32:07 -0800 -Subject: [PATCH] lldp: automake fixes for dist/distcheck - -This fixes the dist and distcheck automake targets for making release -archives. - -All missing header files that have been added to git are listed in -noinst_HEADERS, so they get added to the release archive but are not -installed. Some of these ( qgb_vdp22_(cmds|clif).h ) may be part of the -client API and need to be moved to lldpad_include_HEADERS? - -The srcdir prefix was removed from references to liblldp_clif.la, it's -not needed and breaks builds where the output dir is different from the -source dir as this is a generated file. - -The liblldp_clid-vdp22.3 man page was added. - -The qbg22sim and vdptest man pages were added to the release archive, -but still should only be installed if debug is configured. - -lldpad.init was added to dist_noinst_DATA to add to the release - -The custom systemd unit file install rule was replaced with a dist_DATA -definition, letting automake build the rules to handle them. Before -they were being left out of the release archive. - -Same thing with the bash completion files, just tell automake where they -go. - -Compared to git-archive, make dist now gets almost everything. -I left the test data files out for now, even though the binaries and -man pages are being included. - -Signed-off-by: Chris Leech -Signed-off-by: John Fastabend ---- - Makefile.am | 42 ++++++++++++++++++------------------------ - 1 file changed, 18 insertions(+), 24 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index 27dffc2..69deda2 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -43,7 +43,10 @@ include/lldp_8023_clif.h include/lldp_dcbx_clif.h include/lldp_evb_clif.h \ - include/lldp_evb22_clif.h include/qbg_vdp_clif.h include/qbg_vdpnl.h \ - include/qbg_vdp22_clif.h include/lldp_8021qaz_clif.h \ - include/lldp_orgspec_clif.h include/lldp_cisco_clif.h \ --include/lldptool.h include/lldp_rtnl.h include/dcbtool.h include/lldp_dcbx_cfg.h -+include/lldptool.h include/lldp_rtnl.h include/dcbtool.h include/lldp_dcbx_cfg.h \ -+include/qbg_vdp22_cmds.h include/qbg_vdp22_clif.h \ -+include/linux/ethtool.h include/linux/if_bonding.h include/linux/if_bridge.h \ -+include/linux/if.h include/linux/if_link.h include/linux/if_vlan.h - - lldpad_SOURCES = lldpad.c config.c lldp_dcbx_nl.c ctrl_iface.c \ - event_iface.c eloop.c lldp_dcbx_cmds.c log.c lldpad_shm.c \ -@@ -84,7 +87,7 @@ vdptool_LDFLAGS = -llldp_clif $(LIBNL_LIBS) - - dcbtool_SOURCES = dcbtool.c dcbtool_cmds.c parse_cli.l \ - weak_readline.c $(lldpad_include_HEADERS) $(noinst_HEADERS) --dcbtool_LDADD = ${srcdir}/liblldp_clif.la -+dcbtool_LDADD = liblldp_clif.la - dcbtool_LDFLAGS = -ldl -llldp_clif - - lldptool_SOURCES = lldptool.c lldptool_cmds.c lldp_rtnl.c \ -@@ -93,7 +96,7 @@ lldptool_SOURCES = lldptool.c lldptool_cmds.c lldp_rtnl.c \ - lldp_8021qaz_clif.c lldp_evb_clif.c qbg/vdp_clif.c \ - lldp_orgspec_clif.c lldp_cisco_clif.c lldp_evb22_clif.c \ - weak_readline.c $(lldpad_include_HEADERS) $(noinst_HEADERS) --lldptool_LDADD = ${srcdir}/liblldp_clif.la -+lldptool_LDADD = liblldp_clif.la - lldptool_LDFLAGS = -ldl -llldp_clif $(LIBNL_LIBS) - - if BUILD_DEBUG -@@ -104,14 +107,20 @@ qbg22sim_SOURCES = test/qbg22sim.c - qbg22sim_LDFLAGS = -lrt - endif - -+## put a spec file and documentation in the distribution archive -+dist_noinst_DATA = lldpad.spec README COPYING ChangeLog lldpad.init -+ - ## man pages - dist_man_MANS = docs/lldpad.8 docs/dcbtool.8 docs/lldptool.8 \ - docs/lldptool-ets.8 docs/lldptool-pfc.8 docs/lldptool-app.8 \ - docs/lldptool-evb.8 docs/lldptool-vdp.8 docs/lldptool-med.8 \ - docs/lldptool-dcbx.8 \ -- docs/lldptool-evb22.8 docs/vdptool.8 -+ docs/lldptool-evb22.8 docs/vdptool.8 \ -+ docs/liblldp_clif-vdp22.3 - if BUILD_DEBUG --nodist_man_MANS = test/qbg22sim.1 test/vdptest.1 -+dist_man_MANS += test/qbg22sim.1 test/vdptest.1 -+else -+dist_noinst_DATA += test/qbg22sim.1 test/vdptest.1 - endif - - ## force the creation of an empty configuration directory at install time -@@ -124,24 +133,9 @@ install-data-hook: installdirs-local - pkgconfigdir = ${libdir}/pkgconfig - pkgconfig_DATA = lldpad.pc liblldp_clif.pc - --## put a spec file and documentation in the distribution archive --dist_noinst_DATA = lldpad.spec README COPYING ChangeLog -+systemdsystemunitdir = $(prefix)/lib/systemd/system -+dist_systemdsystemunit_DATA = lldpad.service lldpad.socket - --## special hooks to handle the init script --install-data-local: lldpad.service lldpad.socket -- $(MKDIR_P) $(DESTDIR)/usr/lib/systemd/system -- $(INSTALL_DATA) lldpad.service $(DESTDIR)/usr/lib/systemd/system/lldpad.service -- $(INSTALL_DATA) lldpad.socket $(DESTDIR)/usr/lib/systemd/system/lldpad.socket -- --BASH_COMPLETION_DIR=/etc/bash_completion.d/ -- --install-data-hook: -- ## provide support for bash completion -- $(MKDIR_P) $(DESTDIR)/$(BASH_COMPLETION_DIR) -- $(INSTALL_DATA) ${srcdir}/contrib/bash_completion/* $(DESTDIR)/$(BASH_COMPLETION_DIR) -- --uninstall-local: -- rm -f '$(DESTDIR)/usr/lib/systemd/system/lldpad.*' -- rm -f '$(includedir)/dcbd/clif_cmds.h' -- rm -f '$(includedir)/dcbd' -+bashcompletiondir = $(sysconfdir)/bash_completion.d -+dist_bashcompletion_DATA = contrib/bash_completion/lldpad contrib/bash_completion/lldptool - --- -2.1.0 - diff --git a/open-lldp-v1.0.1-18-enabled-test-tool-building-for-distcheck.patch b/open-lldp-v1.0.1-18-enabled-test-tool-building-for-distcheck.patch deleted file mode 100644 index 6590ef8..0000000 --- a/open-lldp-v1.0.1-18-enabled-test-tool-building-for-distcheck.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 0d2fa5cd29b8ce60c5b1dfc2a68e09794e9073c8 Mon Sep 17 00:00:00 2001 -From: Chris Leech -Date: Fri, 30 Jan 2015 08:21:41 +0000 -Subject: [PATCH] enabled test tool building for distcheck - -set the --enable-debug flag when running distcheck, to test build the -debug tools as well - -Signed-off-by: Chris Leech -Signed-off-by: John Fastabend ---- - Makefile.am | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Makefile.am b/Makefile.am -index 69deda2..b1c381b 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -139,3 +139,4 @@ dist_systemdsystemunit_DATA = lldpad.service lldpad.socket - bashcompletiondir = $(sysconfdir)/bash_completion.d - dist_bashcompletion_DATA = contrib/bash_completion/lldpad contrib/bash_completion/lldptool - -+AM_DISTCHECK_CONFIGURE_FLAGS = --enable-debug --- -2.1.0 - diff --git a/open-lldp-v1.0.1-19-nltest-build-error.patch b/open-lldp-v1.0.1-19-nltest-build-error.patch deleted file mode 100644 index d0427a4..0000000 --- a/open-lldp-v1.0.1-19-nltest-build-error.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 53ebbfd6dd8cf475884fd523207e354696a0670d Mon Sep 17 00:00:00 2001 -From: Chris Leech -Date: Fri, 30 Jan 2015 08:21:42 +0000 -Subject: [PATCH] nltest build error -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -test/nltest.c: In function ‘set_hw_bcn’: -test/nltest.c:994:38: error: iteration 8u invokes undefined behavior -[-Werror=aggressive-loop-optimizations] - bcn_data->up_settings[i].rp_admin = 1; - ^ -test/nltest.c:993:3: note: containing loop - for (i = 0; i <= 8; i++) { - ^ -cc1: all warnings being treated as errors - -Signed-off-by: Chris Leech -Signed-off-by: John Fastabend ---- - test/nltest.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/test/nltest.c b/test/nltest.c -index da05463..cd28977 100644 ---- a/test/nltest.c -+++ b/test/nltest.c -@@ -990,7 +990,7 @@ static int set_hw_bcn(char *device_name, bcn_cfg *bcn_data, - oper_mode = 1; - - { -- for (i = 0; i <= 8; i++) { -+ for (i = 0; i < 8; i++) { - bcn_data->up_settings[i].rp_admin = 1; - } - bcn_data->rp_alpha = 0.5; --- -2.1.0 - diff --git a/open-lldp-v1.0.1-2-VDP-vdptool-first-version.patch b/open-lldp-v1.0.1-2-VDP-vdptool-first-version.patch deleted file mode 100644 index f1918c7..0000000 --- a/open-lldp-v1.0.1-2-VDP-vdptool-first-version.patch +++ /dev/null @@ -1,1671 +0,0 @@ -From 3b559d8d0b52e6a254dc3f59833de4308e18711e Mon Sep 17 00:00:00 2001 -From: Thomas Richter -Date: Wed, 21 Jan 2015 03:36:26 +0000 -Subject: [PATCH] VDP: vdptool first version - -This is the first version of a vdp command line interface -tool to send and retrieve data to the vdp22 module. -This tool follows similar concept as the lldptool. -The command line options are similar and some intended -functionality (such as -n to retrieve neighbor inforamtion, -that is tlv data send by bridges) is not yet implemented. - -Signed-off-by: Thomas Richter -Signed-off-by: John Fastabend ---- - .gitignore | 1 + - Makefile.am | 8 +- - docs/vdptool.8 | 280 +++++++++++ - include/qbg_vdp22_clif.h | 2 + - qbg/vdp22_clif.c | 141 ++++++ - vdptool.c | 1149 ++++++++++++++++++++++++++++++++++++++++++++++ - 6 files changed, 1579 insertions(+), 2 deletions(-) - create mode 100644 docs/vdptool.8 - create mode 100644 qbg/vdp22_clif.c - create mode 100644 vdptool.c - -diff --git a/.gitignore b/.gitignore -index c2ac5d7..e2230d9 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -31,6 +31,7 @@ missing - dcbtool - lldpad - lldptool -+vdptool - nltest - vdptest - qbg22sim -diff --git a/Makefile.am b/Makefile.am -index 4889d32..fc4f8d6 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -1,5 +1,5 @@ - # target programs to be installed in ${sbindir} --sbin_PROGRAMS = lldpad dcbtool lldptool -+sbin_PROGRAMS = lldpad dcbtool lldptool vdptool - - # package nltest and vdptest, but do not install it anywhere - if BUILD_DEBUG -@@ -41,7 +41,7 @@ include/parse_cli.h include/version.h include/lldptool_cli.h include/list.h \ - include/lldp_mand_clif.h include/lldp_basman_clif.h include/lldp_med_clif.h \ - include/lldp_8023_clif.h include/lldp_dcbx_clif.h include/lldp_evb_clif.h \ - include/lldp_evb22_clif.h include/qbg_vdp_clif.h include/qbg_vdpnl.h \ --include/lldp_8021qaz_clif.h \ -+include/qbg_vdp22_clif.h include/lldp_8021qaz_clif.h \ - include/lldp_orgspec_clif.h include/lldp_cisco_clif.h \ - include/lldptool.h include/lldp_rtnl.h include/dcbtool.h include/lldp_dcbx_cfg.h - -@@ -76,6 +76,10 @@ liblldp_clif_la_LDFLAGS = -version-info 1:0:0 - liblldp_clif_includedir = ${srcdir}/include - liblldp_clif_la_SOURCES = clif.c - -+vdptool_SOURCES = vdptool.c lldp_util.c qbg/vdp22_clif.c -+vdptool_LDADD = ${srcdir}/liblldp_clif.la -+vdptool_LDFLAGS = -llldp_clif $(LIBNL_LIBS) -+ - dcbtool_SOURCES = dcbtool.c dcbtool_cmds.c parse_cli.l \ - weak_readline.c $(lldpad_include_HEADERS) $(noinst_HEADERS) - dcbtool_LDADD = ${srcdir}/liblldp_clif.la -diff --git a/docs/vdptool.8 b/docs/vdptool.8 -new file mode 100644 -index 0000000..5110bb9 ---- /dev/null -+++ b/docs/vdptool.8 -@@ -0,0 +1,280 @@ -+.\" LICENSE -+.\" -+.\" This software program is released under the terms of a license agreement -+.\" between you ('Licensee') and Intel. Do not use or load this software or -+.\" any associated materials (collectively, the 'Software') until you have -+.\" carefully read the full terms and conditions of the LICENSE located in this -+.\" software package. By loading or using the Software, you agree to the -+.\" terms of this Agreement. If you do not agree with the terms of this -+.\" Agreement, do not install or use the Software. -+.\" -+.\" * Other names and brands may be claimed as the property of others. -+.\" -+.TH vdptool 8 "April 2014" "open-lldp" "Linux" -+.SH NAME -+vdptool \- manage the VSI associations and status of lldpad -+.SH SYNOPSIS -+.B vdptool [options] [argument] -+.br -+.SH DESCRIPTION -+.B vdptool -+is used to query and configure the VSI associations in -+.B lldpad. -+Only the ratified stardard version of the VDP protocol -+(also refered to as vdp22) is supported. -+It connects to the client interface of -+.B lldpad -+to perform these operations. -+.B vdptool -+will operate in interactive mode if it is executed without a \fIcommand\fR. -+In interactive mode, -+.B vdptool -+will also function as an event listener to print out events -+as they are received asynchronously from -+.BR lldpad "(still to be done)." -+It will use libreadline for interactive input when available -+(still to be done). -+.SH OPTIONS -+.TP -+.B \-i [ifname] -+specifies the network interface to which the command applies. Most -+.B vdptool -+commands require specifying a network interface. -+.TP -+.B -V [tlvid] -+specifies the VDP tlv identifier to be set or queried. -+.br -+The tlvid is an integer value used to identify specific -+VDP TLVs. The tlvid value is the type value for types not equal -+to 127 (the organizationally specific type). -+For organizationally specific -+TLVs, the tlvid is the value represented by the 3 byte OUI and 1 byte -+subtype - where the subtype is the lowest order byte of the tlvid. -+.br -+The tlvid can be entered as a numerical value (e.g. 10 or 0xa), or for -+supported TLVs, as a keyword (such as assoc, deassoc, preassoc, -+preassoc-rr, etc). -+Review the -+.B vdptool -+help output to see the list of supported TLV keywords. -+.sp 1 -+Use option -c to specify the parameters and its values to be set or queried. -+.TP -+.B \-n -+"neighbor" option for commands which can use it (e.g. get-tlv). -+Use this flag to retrieve the last VDP22 data returned from the -+bridge. -+(not yet supported). -+.TP -+.B \-c -+Specifies additional parameters for TLV queries and associations commands. -+The argument list varies, depending on the command option -+.B (-T) -+or -+.BR (-t) . -+To establish a VSI association use the command option -+.B (-T) -+and specify additional information as arguments in the form -+of key=value. See the -+.I "VSI Parameter" -+subsection and -+.I Example -+section below. -+To query a VSI specific association use the command option -+.B (-t) -+and specify the value of the -+VSI Instance Identifier (keywork uuid followed be the VSI -+UUID value) -+of the VSI association as configuration parameter. -+.TP -+.B \-r -+show raw client interface messages -+.TP -+.B \-R -+show only raw Client interface messages -+.SS VSI Parameter -+Each VDP22 TLVs contains a command mode, manager identifier, -+type identifier, type identifier version, VSI instance identifier, -+migiration hints and filter information. -+The fields are explained next: -+.TP -+.B "mode (Command Mode):" -+The command mode determines the type -+of the VSI association to be established. -+It is an ascii string can be one of: -+.RS -+.IP assoc: -+Create an VSI association. -+.IP preassoc: -+Create an VSI preassociation. The association -+is only announced to the switch. -+.IP preassoc-rr: -+Create an VSI preassociation. The association -+is only announced to the switch and the -+switch should reserve the resources. -+.IP deassoc: -+Delete an VSI association. -+.RE -+Other strings are not recognized and return an error. -+.TP -+.B "mgrid2 (Manager identifier):" -+The manager identifier is a string of up to 16 -+alphanumeric characters. -+It can also be an UUID according to RFC 4122 -+with optional dashes in between. -+.TP -+.B "typeid (Type Identifier):" -+The type identifier is a number in the range -+of 0 to 2^24 - 1. -+.TP -+.B "typeidver (Type Identifier Version):" -+The type identifer version is a number -+in the range of 0 to 255. -+.TP -+.B "uuid (VSI Instance Identifier):" -+The VSI instance identifier is -+an UUID according to RFC 4122 -+with optional dashes in between. -+.TP -+.B "hints (Migration Hints):" -+The migiration hints is a string aiding in -+migration of virtual machines: -+.RS -+.IP none: -+No hints available. -+.IP from: -+The virtual machine is migrating away. -+.IP to: -+The virtual machine is migrating to. -+.RE -+.TP -+.B "fid (Filter Information Data):" -+The filter information data can be supplied in four -+different formats identified by numbers in parathesis. -+Multiple filter information fields can be supplied, -+but all have to be of the same format. -+.RS -+.IP "vlan (1)" -+A vlan number only, also known as filter information format 1. -+The vlan identifier is a number in the range of 1 to 2^16 - 1. -+The high order 4 bits are used as quality of service bits. -+The vlan identifier can be zero, a vlan identifier is then -+selected by the switch. Refer to IEEE 802.1 Qbg ratified -+standard for details. -+.IP "vlan-mac (2)" -+A vlan number and MAC address delimited by a slash ('-'), -+also known as filter information format 2. -+The MAC address is specified in the format xx:xx:xx:xx:xx:xx. -+The colons are mandatory. -+For vlan details see (1). -+.IP "vlan-mac-group (4)" -+A vlan number, MAC address and group identifier, -+each delimited by a slash ('-'), -+also known as filter information format 4. -+The group identifier is a 32 bit number. -+For vlan and MAC address details see (1) and (2). -+.IP "vlan--group (3)" -+A vlan number and group identifier, -+delimited by two slashes ('--'), -+also known as filter information format 3. -+For vlan and group details see (1) and (4). -+.RE -+.SH COMMANDS -+.TP -+.B license -+show license information -+.TP -+.B \-h, help -+show usage information -+.TP -+.B \-v, version -+show version information -+.TP -+.B \-t, get-tlv -+get TLV information for the specified interface -+.TP -+.B \-T, set-tlv -+set TLV information for the specified interface -+.TP -+.B \-p, ping -+display the process identifier of the running lldpad process -+.TP -+.B \-q, quit -+exit from interactive mode -+.PP -+.SH NOTES -+This tool is in its early design and development phase. -+It it buggy, incomplete and most of the ideas have not even -+been thought of.... -+It reflects the current state of development when -+I had been given another work assignment. -+I append it so some else can continue to work on this. -+.SH EXAMPLES -+.TP -+Display process identifier of lldpad -+.br -+vdptool -p -+.TP -+Create a VSI association on interface eth2 -+.br -+.nf -+Supported today: One config parameter and comma separated list -+vdptool -i eth2 -T -V assoc -c vsi=assoc,blabla,5, \\ -+ 1122,4,none,2-52:00:00:11:22:33-200 -+ -+Planned for the future: -+vdptool -i eth2 -T -V assoc -c mgrid2=blabla -c typeid=5 \\ -+ -c uuid=1122 -c typeidver=4 -c hints=none -c fid=2-52:00:00:11:22:33-200 -+.fi -+.TP -+Query all VSI association on interface eth2 -+.br -+vdptool -i eth2 -t -V assoc -+.SH SEE ALSO -+.BR lldptool-dcbx (8), -+.BR lldptool-ets (8), -+.BR lldptool-pfc (8), -+.BR lldptool-app (8), -+.BR lldptool-med (8), -+.BR lldptool-vdp (8), -+.BR lldptool-evb (8), -+.BR lldptool-evb22 (8), -+.BR dcbtool (8), -+.BR lldpad (8) -+.br -+.SH COPYRIGHT -+vdptool - VSI configuration utility -+.br -+.IP Copyright(c) -+(c) 2014 IBM Corporation. -+.BR -+Portions of vdptool are based on: -+.IP open-lldp-0.96 -+.IP "lldptool - LLDP agent configuration utility" -+.IP Copyright(c) -+2007-2012 Intel Corporation. -+.BR -+Portions of lldptool are based on: -+.IP hostapd-0.5.7 -+.IP Copyright -+(c) 2004-2008, Jouni Malinen -+ -+.SH LICENSE -+This program is free software; you can redistribute it and/or modify it -+under the terms and conditions of the GNU General Public License, -+version 2, as published by the Free Software Foundation. -+.LP -+This program is distributed in the hope it will be useful, but WITHOUT -+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+more details. -+.LP -+You should have received a copy of the GNU General Public License along with -+this program; if not, write to the Free Software Foundation, Inc., -+51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+.LP -+The full GNU General Public License is included in this distribution in -+the file called "COPYING". -+.SH SUPPORT -+Contact Information: -+open-lldp Mailing List -diff --git a/include/qbg_vdp22_clif.h b/include/qbg_vdp22_clif.h -index 20330b8..008022a 100644 ---- a/include/qbg_vdp22_clif.h -+++ b/include/qbg_vdp22_clif.h -@@ -52,4 +52,6 @@ typedef enum { - op_delete = 0x20, - op_key = 0x40 - } vdp22_op; -+ -+struct lldp_module *vdp22_cli_register(void); - #endif -diff --git a/qbg/vdp22_clif.c b/qbg/vdp22_clif.c -new file mode 100644 -index 0000000..649305d ---- /dev/null -+++ b/qbg/vdp22_clif.c -@@ -0,0 +1,141 @@ -+/******************************************************************************* -+ -+ Implementation of VDP 22 (ratified standard) according to IEEE 802.1Qbg -+ (c) Copyright IBM Corp. 2014 -+ -+ Author(s): Thomas Richter -+ -+ This program is free software; you can redistribute it and/or modify it -+ under the terms and conditions of the GNU General Public License, -+ version 2, as published by the Free Software Foundation. -+ -+ This program is distributed in the hope it will be useful, but WITHOUT -+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+ more details. -+ -+ You should have received a copy of the GNU General Public License along with -+ this program; if not, write to the Free Software Foundation, Inc., -+ 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+ -+ The full GNU General Public License is included in this distribution in -+ the file called "COPYING". -+ -+*******************************************************************************/ -+ -+#include -+#include -+#include -+#include -+ -+#include "lldp_mod.h" -+#include "clif_msgs.h" -+#include "lldp.h" -+#include "qbg22.h" -+#include "qbg_vdp22def.h" -+#include "qbg_vdpnl.h" -+#include "qbg_vdp22_cmds.h" -+#include "qbg_vdp22_clif.h" -+#include "qbg_vdp22def.h" -+ -+static struct type_name_info vdp22_tlv_names[] = { -+ { -+ .name = "VDP VSI Association", -+ .key = "assoc", -+ .type = VDP22_ASSOC -+ }, -+ { -+ .name = "VDP VSI Deassociation", -+ .key = "deassoc", -+ .type = VDP22_DEASSOC -+ }, -+ { -+ .name = "VDP VSI Preassociation", -+ .key = "preassoc", -+ .type = VDP22_PREASSOC -+ }, -+ { -+ .name = "VDP VSI Preassociation with resource reservation", -+ .key = "preassoc-rr", -+ .type = VDP22_PREASSOC_WITH_RR -+ }, -+ { -+ .type = INVALID_TLVID -+ } -+}; -+ -+static int vdp22_print_help(void) -+{ -+ struct type_name_info *tn = &vdp22_tlv_names[0]; -+ -+ while (tn->type != INVALID_TLVID) { -+ if (tn->key && strlen(tn->key) && tn->name) { -+ printf(" %s", tn->key); -+ if (strlen(tn->key) + 3 < 8) -+ printf("\t"); -+ printf("\t: %s\n", tn->name); -+ } -+ tn++; -+ } -+ return 0; -+} -+ -+static u32 vdp22_lookup_tlv_name(char *tlvid_str) -+{ -+ struct type_name_info *tn = &vdp22_tlv_names[0]; -+ -+ while (tn->type != INVALID_TLVID) { -+ if (!strcasecmp(tn->key, tlvid_str)) -+ return tn->type; -+ tn++; -+ } -+ return INVALID_TLVID; -+} -+ -+static void vdp22_cli_unregister(struct lldp_module *mod) -+{ -+ free(mod); -+} -+ -+/* return 1: if it printed the TLV -+ * 0: if it did not -+ */ -+static int vdp22_print_tlv(u32 tlvid, u16 len, char *info) -+{ -+ struct type_name_info *tn = &vdp22_tlv_names[0]; -+ -+ while (tn->type != INVALID_TLVID) { -+ if (tlvid == tn->type) { -+ printf("%s\n", tn->name); -+ if (tn->print_info) { -+ printf("\t"); -+ tn->print_info(len - 4, info); -+ } -+ return 1; -+ } -+ tn++; -+ } -+ return 0; -+} -+ -+static const struct lldp_mod_ops vdp22_ops_clif = { -+ .lldp_mod_register = vdp22_cli_register, -+ .lldp_mod_unregister = vdp22_cli_unregister, -+ .print_tlv = vdp22_print_tlv, -+ .lookup_tlv_name = vdp22_lookup_tlv_name, -+ .print_help = vdp22_print_help, -+}; -+ -+struct lldp_module *vdp22_cli_register(void) -+{ -+ struct lldp_module *mod; -+ -+ mod = malloc(sizeof(*mod)); -+ if (!mod) { -+ fprintf(stderr, "failed to malloc module data\n"); -+ return NULL; -+ } -+ mod->id = LLDP_MOD_VDP22; -+ mod->ops = &vdp22_ops_clif; -+ return mod; -+} -diff --git a/vdptool.c b/vdptool.c -new file mode 100644 -index 0000000..e7d384a ---- /dev/null -+++ b/vdptool.c -@@ -0,0 +1,1149 @@ -+/******************************************************************************* -+ -+ LLDP Agent Daemon (LLDPAD) Software -+ Copyright(c) IBM Corp. 2014 -+ -+ Substantially modified from: -+ hostapd-0.5.7 -+ Copyright (c) 2002-2007, Jouni Malinen and -+ contributors -+ -+ This program is free software; you can redistribute it and/or modify it -+ under the terms and conditions of the GNU General Public License, -+ version 2, as published by the Free Software Foundation. -+ -+ This program is distributed in the hope it will be useful, but WITHOUT -+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+ more details. -+ -+ You should have received a copy of the GNU General Public License along with -+ this program; if not, write to the Free Software Foundation, Inc., -+ 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+ -+ The full GNU General Public License is included in this distribution in -+ the file called "COPYING". -+ -+ Contact Information: -+ open-lldp Mailing List -+ -+*******************************************************************************/ -+ -+/* -+ * Thomas Richter, IBM LTC Boeblingen, Germany, Feb 2014 -+ * -+ * Command line interface tool to connect to vdp module of lldpad to -+ * set and query VSI profile settings. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+ -+#include "version.h" -+#include "clif.h" -+#include "clif_msgs.h" -+#include "lldp_mod.h" -+ -+#include "qbg22.h" -+#include "qbg_vdp22_clif.h" -+ -+static char *print_status(cmd_status status) -+{ -+ char *str; -+ -+ switch (status) { -+ case cmd_success: -+ str = "Successful"; -+ break; -+ case cmd_failed: -+ str = "Failed"; -+ break; -+ case cmd_device_not_found: -+ str = "Device not found or inactive"; -+ break; -+ case cmd_agent_not_found: -+ str = "Agent instance for device not found"; -+ break; -+ case cmd_invalid: -+ str = "Invalid command"; -+ break; -+ case cmd_bad_params: -+ str = "Invalid parameters"; -+ break; -+ case cmd_peer_not_present: -+ str = "Peer feature not present"; -+ break; -+ case cmd_ctrl_vers_not_compatible: -+ str = "Version not compatible"; -+ break; -+ case cmd_not_capable: -+ str = "Device not capable"; -+ break; -+ case cmd_not_applicable: -+ str = "Command not applicable"; -+ break; -+ case cmd_no_access: -+ str = "Access denied"; -+ break; -+ case cmd_agent_not_supported: -+ str = "TLV does not support agent type"; -+ break; -+ default: -+ str = "Unknown status"; -+ break; -+ } -+ return str; -+} -+ -+static void get_arg_value(char *str, char **arg, char **argval) -+{ -+ unsigned int i; -+ -+ for (i = 0; i < strlen(str); i++) -+ if (!isprint(str[i])) -+ return; -+ -+ for (i = 0; i < strlen(str); i++) -+ if (str[i] == '=') -+ break; -+ -+ if (i < strlen(str)) { -+ str[i] = '\0'; -+ *argval = &str[i+1]; -+ } -+ *arg = str; -+} -+ -+static int render_cmd(struct cmd *cmd, int argc, char **args, char **argvals) -+{ -+ int len; -+ int i; -+ -+ len = sizeof(cmd->obuf); -+ -+ /* all command messages begin this way */ -+ snprintf(cmd->obuf, len, "%c%08x%c%1x%02x%08x%02x%s%02x%08x", -+ MOD_CMD, cmd->module_id, CMD_REQUEST, CLIF_MSG_VERSION, -+ cmd->cmd, cmd->ops, (unsigned int) strlen(cmd->ifname), -+ cmd->ifname, cmd->type, cmd->tlvid); -+#if PADDU -+ if (cmd->cmd == cmd_settlv) { -+ size_t len2 = 0; -+ /* -+ * Get total length and append it plus any args and argvals -+ * to the command message -+ */ -+ for (i = 0; i < argc; i++) { -+ if (args[i]) -+ len2 += 2 + strlen(args[i]); -+ if (argvals[i]) -+ len2 += 4 + strlen(argvals[i]); -+ } -+ snprintf(cmd->obuf + strlen(cmd->obuf), len - strlen(cmd->obuf), -+ "%04zx", len2); -+ } -+#endif -+ /* Add any args and argvals to the command message */ -+ for (i = 0; i < argc; i++) { -+ if (args[i]) -+ snprintf(cmd->obuf + strlen(cmd->obuf), -+ len - strlen(cmd->obuf), -+ "%02x%s", (unsigned int)strlen(args[i]), -+ args[i]); -+ if (argvals[i]) -+ snprintf(cmd->obuf + strlen(cmd->obuf), -+ len - strlen(cmd->obuf), "%04x%s", -+ (unsigned int)strlen(argvals[i]), argvals[i]); -+ } -+ return strlen(cmd->obuf); -+} -+ -+int vdp_clif_command(struct clif *, char *, int); -+ -+static int vdp_cmd_gettlv(struct clif *clif, int argc, char *argv[], -+ struct cmd *cmd, int raw) -+{ -+ int numargs = 0; -+ char **args; -+ char **argvals; -+ int i; -+ -+ if (cmd->cmd != cmd_gettlv) -+ return cmd_invalid; -+ -+ args = calloc(argc, sizeof(char *)); -+ if (!args) -+ return cmd_failed; -+ -+ argvals = calloc(argc, sizeof(char *)); -+ if (!argvals) { -+ free(args); -+ return cmd_failed; -+ } -+ -+ for (i = 0; i < argc; i++) -+ get_arg_value(argv[i], &args[i], &argvals[i]); -+ numargs = i; -+ -+ /* Default is local tlv query */ -+ if (!(cmd->ops & op_neighbor)) -+ cmd->ops |= op_local; -+ -+ if (numargs) { -+ /* Only commands with the config option should have arguments.*/ -+ if (!(cmd->ops & op_config)) { -+ printf("%s\n", print_status(cmd_invalid)); -+ goto out; -+ } -+ -+ /* Commands to get neighbor TLVs cannot have arguments. */ -+ if (cmd->ops & op_neighbor) { -+ printf("%s\n", print_status(cmd_invalid)); -+ goto out; -+ } -+ cmd->ops |= op_arg; -+ } -+ -+ for (i = 0; i < numargs; i++) { -+ if (argvals[i]) { -+ printf("%s\n", print_status(cmd_invalid)); -+ goto out; -+ } -+ } -+ -+ render_cmd(cmd, argc, args, argvals); -+ free(args); -+ free(argvals); -+ return vdp_clif_command(clif, cmd->obuf, raw); -+out: -+ free(args); -+ free(argvals); -+ return cmd_invalid; -+} -+ -+static int vdp_cmd_settlv(struct clif *clif, int argc, char *argv[], -+ struct cmd *cmd, int raw) -+{ -+ int numargs = 0; -+ char **args; -+ char **argvals; -+ int i; -+ -+ if (cmd->cmd != cmd_settlv) -+ return cmd_invalid; -+ args = calloc(argc, sizeof(char *)); -+ if (!args) -+ return cmd_failed; -+ -+ argvals = calloc(argc, sizeof(char *)); -+ if (!argvals) { -+ free(args); -+ return cmd_failed; -+ } -+ -+ for (i = 0; i < argc; i++) -+ get_arg_value(argv[i], &args[i], &argvals[i]); -+ numargs = i; -+ -+ for (i = 0; i < numargs; i++) { -+ if (!argvals[i]) { -+ printf("%s\n", print_status(cmd_invalid)); -+ goto out; -+ } -+ } -+ -+ if (numargs) -+ cmd->ops |= (op_arg | op_argval); -+ -+ render_cmd(cmd, argc, args, argvals); -+ free(args); -+ free(argvals); -+ return vdp_clif_command(clif, cmd->obuf, raw); -+out: -+ free(args); -+ free(argvals); -+ return cmd_invalid; -+} -+ -+static int hex2u8(char *b) -+{ -+ int hex = -1; -+ -+ if (isxdigit(*b) && isxdigit(*(b + 1))) -+ sscanf(b, "%02x", &hex); -+ return hex; -+} -+ -+static int hex2u16(char *b) -+{ -+ int hex = -1; -+ -+ if (isxdigit(*b) && isxdigit(*(b + 1)) && isxdigit(*(b + 2)) -+ && isxdigit(*(b + 3))) -+ sscanf(b, "%04x", &hex); -+ return hex; -+} -+ -+static int hex2u32(char *b) -+{ -+ int hex; -+ char *b_old = b; -+ -+ for (hex = 0; hex < 8; ++hex) -+ if (!isxdigit(*b++)) -+ return -1; -+ sscanf(b_old, "%08x", &hex); -+ return hex; -+} -+ -+static int vdp_parse_response(char *buf) -+{ -+ return hex2u8(buf + CLIF_STAT_OFF); -+} -+ -+static void print_pair(char *arg, size_t arglen, char *value, size_t valuelen) -+{ -+ while (arglen--) -+ putchar(*arg++); -+ putchar('='); -+ while (valuelen--) -+ putchar(*value++); -+ putchar('\n'); -+} -+ -+static int print_arg_value(char *ibuf) -+{ -+ int arglen, valuelen, offset = 0, ilen = strlen(ibuf); -+ char *arg, *value; -+ -+ while (offset < ilen) { -+ /* Length of argument */ -+ arglen = hex2u8(ibuf + offset); -+ if (arglen < 0) -+ break; -+ offset += 2; -+ arg = ibuf + offset; -+ offset += arglen; -+ -+ /* Length of argument value */ -+ valuelen = hex2u16(ibuf + offset); -+ if (valuelen < 0) -+ break; -+ offset += 4; -+ value = ibuf + offset; -+ offset += valuelen; -+ -+ print_pair(arg, arglen, value, valuelen); -+ } -+ return offset; -+} -+ -+static int get_tlvid(char *ibuf) -+{ -+ return hex2u32(ibuf); -+} -+ -+/* -+ * Print a TLV. -+ */ -+static void print_tlv2(char *ibuf) -+{ -+ size_t ilen = strlen(ibuf); -+ u16 tlv_type; -+ u16 tlv_len; -+ u32 tlvid; -+ int offset = 0; -+ int printed; -+ struct lldp_module *np; -+ -+ while (ilen > 0) { -+ tlv_len = 2 * sizeof(u16); -+ if (ilen < 2 * sizeof(u16)) { -+ printf("corrupted TLV ilen:%zd, tlv_len:%d\n", -+ ilen, tlv_len); -+ break; -+ } -+ tlv_type = hex2u16(ibuf + offset); -+ tlv_len = tlv_type; -+ tlv_type >>= 9; -+ tlv_len &= 0x01ff; -+ offset += 2 * sizeof(u16); -+ ilen -= 2 * sizeof(u16); -+ -+ if (ilen < (unsigned) 2 * tlv_len) { -+ printf("corrupted TLV ilen:%zd, tlv_len:%d\n", -+ ilen, tlv_len); -+ break; -+ } -+ tlvid = tlv_type; -+ if (tlvid == INVALID_TLVID) { -+ tlvid = get_tlvid(ibuf + offset); -+ offset += 8; -+ } -+ printed = 0; -+ LIST_FOREACH(np, &lldp_head, lldp) { -+ if (np->ops->print_tlv(tlvid, tlv_len, ibuf + offset)) { -+ printed = 1; -+ break; -+ } -+ } -+ -+ if (!printed) { -+ if (tlvid < INVALID_TLVID) -+ printf("Unidentified TLV\n\ttype:%d %*.*s\n", -+ tlv_type, tlv_len*2, tlv_len*2, -+ ibuf+offset); -+ else -+ printf("Unidentified Org Specific TLV\n\t" -+ "OUI: 0x%06x, Subtype: %d, Info: %*.*s\n", -+ tlvid >> 8, tlvid & 0x0ff, -+ tlv_len*2-8, tlv_len*2-8, -+ ibuf+offset); -+ } -+ if (tlvid > INVALID_TLVID) -+ offset += (2 * tlv_len - 8); -+ else -+ offset += 2 * tlv_len; -+ ilen -= 2 * tlv_len; -+ if (tlvid == END_OF_LLDPDU_TLV) -+ break; -+ } -+} -+ -+/* Print reply from get command */ -+static void print_tlvs(struct cmd *cmd, char *ibuf) -+{ -+ if (cmd->ops & op_config) { -+ print_arg_value(ibuf); -+ return; -+ } -+ print_tlv2(ibuf); -+} -+ -+static void print_cmd_response(char *ibuf, int status) -+{ -+ struct cmd cmd; -+ unsigned char len; -+ int ioff; -+ -+ if (status != cmd_success) { -+ printf("%s\n", print_status(status)); -+ return; -+ } -+ -+ cmd.cmd = hex2u8(ibuf + CMD_CODE); -+ cmd.ops = hex2u32(ibuf + CMD_OPS); -+ len = hex2u8(ibuf + CMD_IF_LEN); -+ ioff = CMD_IF; -+ if (len < sizeof(cmd.ifname)) { -+ memcpy(cmd.ifname, ibuf + CMD_IF, len); -+ } else { -+ printf("Response ifname too long: %*s\n", (int)len, cmd.ifname); -+ return; -+ } -+ cmd.ifname[len] = '\0'; -+ ioff += len; -+ -+ if (cmd.cmd == cmd_gettlv || cmd.cmd == cmd_settlv) { -+ cmd.tlvid = hex2u32(ibuf + ioff); -+ ioff += 2 * sizeof(cmd.tlvid); -+ } -+ -+ switch (cmd.cmd) { -+ case cmd_gettlv: -+ print_tlvs(&cmd, ibuf + ioff); -+ break; -+ case cmd_settlv: -+ printf("%s", ibuf + ioff); -+ break; -+ default: -+ return; -+ } -+} -+ -+static void vdp_print_response(char *buf, int status) -+{ -+ switch (buf[CLIF_RSP_OFF]) { -+ case PING_CMD: -+ if (status) -+ printf("FAILED:%s\n", print_status(status)); -+ else -+ printf("%s\n", buf + CLIF_RSP_OFF + 5); -+ break; -+ case ATTACH_CMD: -+ case DETACH_CMD: -+ if (status) -+ printf("FAILED:%s\n", print_status(status)); -+ else -+ printf("OK\n"); -+ break; -+ case CMD_REQUEST: -+ print_cmd_response(buf + CLIF_RSP_OFF, status); -+ break; -+ default: -+ printf("Unknown VDP command response: %s\n", buf); -+ break; -+ } -+} -+ -+static void vdp_print_event_msg(char *buf) -+{ -+ printf("%s buf:%s\n", __func__, buf); -+} -+ -+/* -+ * Dummy function to avoid linkage of many sources -+ */ -+int get_perm_hwaddr(UNUSED const char *ifname, UNUSED unsigned char *buf_perm, -+ UNUSED unsigned char *buf_san) -+{ -+ return -EIO; -+} -+ -+static int show_raw; -+ -+static const char *cli_version = -+ "vdptool v" LLDPTOOL_VERSION "\n" -+ "Copyright (c) 2014, IBM Corporation\n"; -+ -+ -+static const char *cli_license = -+"This program is free software. You can distribute it and/or modify it\n" -+"under the terms of the GNU General Public License version 2.\n" -+"\n"; -+/* -+"Alternatively, this software may be distributed under the terms of the\n" -+"BSD license. See README and COPYING for more details.\n"; -+*/ -+ -+static const char *cli_full_license = -+"This program is free software; you can redistribute it and/or modify\n" -+"it under the terms of the GNU General Public License version 2 as\n" -+"published by the Free Software Foundation.\n" -+"\n" -+"This program is distributed in the hope that it will be useful,\n" -+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -+"GNU General Public License for more details.\n" -+"\n" -+"You should have received a copy of the GNU General Public License\n" -+"along with this program; if not, write to the Free Software\n" -+"Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\n" -+"\n" -+"Alternatively, this software may be distributed under the terms of the\n" -+"BSD license.\n" -+"\n" -+"Redistribution and use in source and binary forms, with or without\n" -+"modification, are permitted provided that the following conditions are\n" -+"met:\n" -+"\n" -+"1. Redistributions of source code must retain the above copyright\n" -+" notice, this list of conditions and the following disclaimer.\n" -+"\n" -+"2. Redistributions in binary form must reproduce the above copyright\n" -+" notice, this list of conditions and the following disclaimer in the\n" -+" documentation and/or other materials provided with the distribution.\n" -+"\n" -+"3. Neither the name(s) of the above-listed copyright holder(s) nor the\n" -+" names of its contributors may be used to endorse or promote products\n" -+" derived from this software without specific prior written permission.\n" -+"\n" -+"THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n" -+"\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n" -+"LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n" -+"A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n" -+"OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n" -+"SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n" -+"LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n" -+"DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n" -+"THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n" -+"(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n" -+"OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" -+"\n"; -+ -+static const char *commands_usage = -+"Usage:\n" -+" vdptool [options] [arg] general command line usage format\n" -+" vdptool go into interactive mode\n" -+" [options] [arg] general interactive command format\n"; -+ -+static const char *commands_options = -+"Options:\n" -+" -i [ifname] network interface\n" -+" -V [tlvid] TLV identifier\n" -+" may be numeric or keyword (see below)\n" -+" -c used with get TLV command to specify\n" -+" that the list of configuration elements\n" -+" -n \"neighbor\" option for command (To be done)\n" -+" -r show raw message\n" -+" -R show only raw messages\n"; -+ -+static const char *commands_help = -+"Commands:\n" -+" license show license information\n" -+" -h|help show command usage information\n" -+" -v|version show version\n" -+" -p|ping ping lldpad and query pid of lldpad\n" -+" -q|quit exit lldptool (interactive mode)\n" -+" -t|get-tlv get tlvid value\n" -+" -T|set-tlv set arg for tlvid to value\n"; -+ -+static struct clif *clif_conn; -+static int cli_quit; -+static int cli_attached; -+ -+/* -+ * insert to head, so first one is last -+ */ -+struct lldp_module *(*register_tlv_table[])(void) = { -+ vdp22_cli_register, -+ NULL, -+}; -+ -+static void init_modules(void) -+{ -+ struct lldp_module *module; -+ struct lldp_module *premod = NULL; -+ int i = 0; -+ -+ LIST_INIT(&lldp_head); -+ for (i = 0; register_tlv_table[i]; i++) { -+ module = register_tlv_table[i](); -+ if (premod) -+ LIST_INSERT_AFTER(premod, module, lldp); -+ else -+ LIST_INSERT_HEAD(&lldp_head, module, lldp); -+ premod = module; -+ } -+} -+ -+void deinit_modules(void) -+{ -+ struct lldp_module *module; -+ -+ while (lldp_head.lh_first != NULL) { -+ module = lldp_head.lh_first; -+ LIST_REMOVE(lldp_head.lh_first, lldp); -+ module->ops->lldp_mod_unregister(module); -+ } -+} -+ -+static void usage(void) -+{ -+ fprintf(stderr, "%s\n", cli_version); -+ fprintf(stderr, "\n%s\n%s\n%s\n", -+ commands_usage, commands_options, commands_help); -+} -+ -+static void print_raw_message(char *msg, int print) -+{ -+ if (!print || !(print & SHOW_RAW)) -+ return; -+ -+ if (!(print & SHOW_RAW_ONLY)) { -+ switch (msg[MSG_TYPE]) { -+ case EVENT_MSG: -+ printf("event: "); -+ break; -+ case CMD_RESPONSE: -+ printf("rsp: "); -+ break; -+ default: -+ printf("cmd: "); -+ break; -+ } -+ } -+ printf("%s\n", msg); -+} -+ -+static int parse_print_message(char *msg, int print) -+{ -+ int status = 0; -+ -+ status = vdp_parse_response(msg); -+ print_raw_message(msg, print); -+ if (print & SHOW_RAW_ONLY) -+ return status; -+ -+ if (msg[MSG_TYPE] == CMD_RESPONSE) -+ vdp_print_response(msg, status); -+ else if (msg[MSG_TYPE] == MOD_CMD && msg[MOD_MSG_TYPE] == EVENT_MSG) -+ vdp_print_event_msg(&msg[MOD_MSG_TYPE]); -+ return status; -+} -+ -+static void cli_close_connection(void) -+{ -+ if (clif_conn == NULL) -+ return; -+ -+ if (cli_attached) { -+ clif_detach(clif_conn); -+ cli_attached = 0; -+ } -+ clif_close(clif_conn); -+ clif_conn = NULL; -+} -+ -+ -+static void cli_msg_cb(char *msg, UNUSED size_t len) -+{ -+ parse_print_message(msg, SHOW_OUTPUT | show_raw); -+} -+ -+ -+/* structure of the print argument bitmap: -+ * SHOW_NO_OUTPUT (0x0) - don't print anything for the command -+ * SHOW_OUTPUT (0x01) - print output for the command -+ * SHOW_RAW (0x02) - print the raw clif command messages -+ * SHOW_RAW_ONLY (0x04) - print only the raw clif command messages -+*/ -+static int _clif_command(struct clif *clif, char *cmd, int print) -+{ -+ char buf[MAX_CLIF_MSGBUF]; -+ size_t len; -+ int ret; -+ -+ print_raw_message(cmd, print); -+ -+ if (clif_conn == NULL) { -+ printf("Not connected to lldpad - command dropped.\n"); -+ return -1; -+ } -+ len = sizeof(buf) - 1; -+ ret = clif_request(clif, cmd, strlen(cmd), buf, &len, cli_msg_cb); -+ if (ret == -2) { -+ printf("'%s' command timed out.\n", cmd); -+ return -2; -+ } else if (ret < 0) { -+ printf("'%s' command failed.\n", cmd); -+ return -1; -+ } -+ if (print) { -+ buf[len] = '\0'; -+ ret = parse_print_message(buf, print); -+ } -+ -+ return ret; -+} -+ -+int vdp_clif_command(struct clif *clif, char *cmd, int raw) -+{ -+ return _clif_command(clif, cmd, SHOW_OUTPUT | raw); -+} -+ -+static int cli_cmd_ping(struct clif *clif, UNUSED int argc, UNUSED char *argv[], -+ UNUSED struct cmd *command, int raw) -+{ -+ return vdp_clif_command(clif, "P", raw); -+} -+ -+static int -+cli_cmd_nop(UNUSED struct clif *clif, UNUSED int argc, UNUSED char *argv[], -+ UNUSED struct cmd *command, UNUSED int raw) -+{ -+ return 0; -+} -+ -+static int -+cli_cmd_help(UNUSED struct clif *clif, UNUSED int argc, UNUSED char *argv[], -+ UNUSED struct cmd *command, UNUSED int raw) -+{ -+ struct lldp_module *np; -+ -+ printf("%s\n%s\n%s", commands_usage, commands_options, commands_help); -+ -+ printf("\nTLV identifiers:\n"); -+ LIST_FOREACH(np, &lldp_head, lldp) -+ if (np->ops->print_help) -+ np->ops->print_help(); -+ return 0; -+} -+ -+static int -+cli_cmd_version(UNUSED struct clif *clif, UNUSED int argc, UNUSED char *argv[], -+ UNUSED struct cmd *command, UNUSED int raw) -+{ -+ printf("%s\n", cli_version); -+ return 0; -+} -+ -+static int -+cli_cmd_license(UNUSED struct clif *clif, UNUSED int argc, UNUSED char *argv[], -+ UNUSED struct cmd *command, UNUSED int raw) -+{ -+ printf("%s\n", cli_full_license); -+ return 0; -+} -+ -+static int -+cli_cmd_quit(UNUSED struct clif *clif, UNUSED int argc, UNUSED char *argv[], -+ UNUSED struct cmd *command, UNUSED int raw) -+{ -+ cli_quit = 1; -+ return 0; -+} -+ -+static struct cli_cmd { -+ vdp22_cmd cmdcode; -+ const char *cmdstr; -+ int (*handler)(struct clif *clif, int argc, char *argv[], -+ struct cmd *cmd, int raw); -+} cli_commands[] = { -+ { cmd_ping, "ping", cli_cmd_ping }, -+ { cmd_help, "help", cli_cmd_help }, -+ { cmd_license, "license", cli_cmd_license }, -+ { cmd_version, "version", cli_cmd_version }, -+ { cmd_quit, "quit", cli_cmd_quit }, -+ { cmd_gettlv, "gettlv", vdp_cmd_gettlv }, -+ { cmd_gettlv, "get-tlv", vdp_cmd_gettlv }, -+ { cmd_settlv, "settlv", vdp_cmd_settlv }, -+ { cmd_settlv, "set-tlv", vdp_cmd_settlv }, -+ { cmd_nop, NULL, cli_cmd_nop } -+}; -+ -+u32 lookup_tlvid(char *tlvid_str) -+{ -+ struct lldp_module *np; -+ u32 tlvid = INVALID_TLVID; -+ -+ LIST_FOREACH(np, &lldp_head, lldp) { -+ if (np->ops->lookup_tlv_name) { -+ tlvid = np->ops->lookup_tlv_name(tlvid_str); -+ if (tlvid != INVALID_TLVID) -+ break; -+ } -+ } -+ -+ return tlvid; -+} -+ -+void print_args(int argc, char *argv[]) -+{ -+ int i; -+ -+ for (i = 0; i < argc; i++) -+ printf("\tremaining arg %d = %s\n", i, argv[i]); -+} -+ -+static struct option lldptool_opts[] = { -+ {"help", 0, NULL, 'h'}, -+ {"version", 0, NULL, 'v'}, -+ {"stats", 0, NULL, 'S'}, -+ {"get-tlv", 0, NULL, 't'}, -+ {"set-tlv", 0, NULL, 'T'}, -+ {"get-lldp", 0, NULL, 'l'}, -+ {"set-lldp", 0, NULL, 'L'}, -+ {0, 0, 0, 0} -+}; -+ -+static int request(struct clif *clif, int argc, char *argv[]) -+{ -+ struct cli_cmd *cmd, *match = NULL; -+ struct cmd command; -+ int count; -+ int ret = 0; -+ int newraw = 0; -+ int numargs = 0; -+ char **argptr = &argv[0]; -+ char *end; -+ int c; -+ int option_index; -+ -+ memset((void *)&command, 0, sizeof(command)); -+ command.cmd = cmd_nop; -+ command.type = NEAREST_CUSTOMER_BRIDGE; -+ command.module_id = LLDP_MOD_VDP22; -+ command.tlvid = INVALID_TLVID; -+ -+ opterr = 0; -+ for (;;) { -+ c = getopt_long(argc, argv, "i:tThcnvrRpqV:", -+ lldptool_opts, &option_index); -+ if (c < 0) -+ break; -+ switch (c) { -+ case '?': -+ printf("missing argument for option %s\n\n", -+ argv[optind-1]); -+ usage(); -+ return -1; -+ case 'i': -+ strncpy(command.ifname, optarg, IFNAMSIZ); -+ command.ifname[IFNAMSIZ] = '\0'; -+ break; -+ case 'V': -+ if (command.tlvid != INVALID_TLVID) { -+ printf("\nInvalid command: multiple TLV identifiers: %s\n", -+ optarg); -+ return -1; -+ } -+ -+ /* Currently tlvid unset lookup and verify parameter */ -+ errno = 0; -+ command.tlvid = strtoul(optarg, &end, 0); -+ if (!command.tlvid || errno || *end != '\0' || -+ end == optarg) -+ command.tlvid = lookup_tlvid(optarg); -+ if (command.tlvid == INVALID_TLVID) { -+ printf("\nInvalid TLV identifier: %s\n", -+ optarg); -+ return -1; -+ } -+ break; -+ case 'p': -+ command.cmd = cmd_ping; -+ break; -+ case 'q': -+ command.cmd = cmd_quit; -+ break; -+ case 't': -+ command.cmd = cmd_gettlv; -+ break; -+ case 'T': -+ command.cmd = cmd_settlv; -+ break; -+ case 'c': -+ command.ops |= op_config; -+ break; -+ case 'n': -+ command.ops |= op_neighbor; -+ break; -+ case 'h': -+ command.cmd = cmd_help; -+ break; -+ case 'r': -+ if (newraw) { -+ usage(); -+ return -1; -+ } -+ newraw = SHOW_RAW; -+ break; -+ case 'R': -+ if (newraw) { -+ usage(); -+ return -1; -+ } -+ newraw = (SHOW_RAW | SHOW_RAW_ONLY); -+ break; -+ case 'v': -+ command.cmd = cmd_version; -+ break; -+ default: -+ usage(); -+ ret = -1; -+ } -+ } -+ -+ /* if no command was supplied via an option flag, then -+ * the first remaining argument should be the command. -+ */ -+ count = 0; -+ if (command.cmd == cmd_nop && optind < argc) { -+ cmd = cli_commands; -+ while (cmd->cmdcode != cmd_nop) { -+ if (strncasecmp(cmd->cmdstr, argv[optind], -+ strlen(argv[optind])) == 0) { -+ match = cmd; -+ command.cmd = match->cmdcode; -+ count++; -+ } -+ cmd++; -+ } -+ } -+ -+ if (count > 1) { -+ printf("Ambiguous command '%s'; possible commands:", -+ argv[optind]); -+ cmd = cli_commands; -+ while (cmd->cmdstr) { -+ if (strncasecmp(cmd->cmdstr, argv[optind], -+ strlen(argv[optind])) == 0) -+ printf(" %s", cmd->cmdstr); -+ cmd++; -+ } -+ printf("\n"); -+ ret = -1; -+ } else { -+ if (!match) { -+ cmd = cli_commands; -+ while (cmd->cmdcode != command.cmd) -+ cmd++; -+ match = cmd; -+ } -+ numargs = argc-optind - count; -+ if (numargs) -+ argptr = &argv[argc-numargs]; -+ ret = match->handler(clif, numargs, argptr, &command, newraw); -+ } -+ return ret; -+} -+ -+static void cli_recv_pending(struct clif *clif, int in_read) -+{ -+ int first = 1; -+ -+ if (clif == NULL) -+ return; -+ while (clif_pending(clif)) { -+ char buf[256]; -+ size_t len = sizeof(buf) - 1; -+ if (clif_recv(clif, buf, &len) == 0) { -+ buf[len] = '\0'; -+ if (in_read && first) -+ printf("\n"); -+ first = 0; -+ cli_msg_cb(buf, len); -+ } else { -+ printf("Could not read pending message.\n"); -+ break; -+ } -+ } -+} -+ -+static char *do_readline(const char *prompt) -+{ -+ size_t size = 0; -+ ssize_t rc; -+ char *line = NULL; -+ -+ fputs(prompt, stdout); -+ fflush(stdout); -+ -+ rc = getline(&line, &size, stdin); -+ if (rc <= 0) -+ return NULL; -+ if (line[rc - 1] == '\n') -+ line[rc - 1] = 0; -+ return line; -+} -+ -+static void cli_interactive(void) -+{ -+ const int max_args = 20; -+ char *cmd, *argv[max_args], *pos; -+ int argc; -+ -+ setlinebuf(stdout); -+ printf("\nInteractive mode\n\n"); -+ do { -+ cli_recv_pending(clif_conn, 0); -+ alarm(1); -+ cmd = do_readline("> "); -+ alarm(0); -+ if (!cmd) -+ break; -+ argc = 1; -+ pos = cmd; -+ for (;;) { -+ while (*pos == ' ') -+ pos++; -+ if (*pos == '\0') -+ break; -+ argv[argc] = pos; -+ argc++; -+ if (argc == max_args) -+ break; -+ while (*pos != '\0' && *pos != ' ') -+ pos++; -+ if (*pos == ' ') -+ *pos++ = '\0'; -+ } -+ if (argc) { -+ optind = 0; -+ request(clif_conn, argc, argv); -+ } -+ free(cmd); -+ } while (!cli_quit); -+} -+ -+static void cli_terminate(UNUSED int sig) -+{ -+ cli_close_connection(); -+ exit(0); -+} -+ -+static void cli_alarm(UNUSED int sig) -+{ -+ if (clif_conn && _clif_command(clif_conn, "P", SHOW_NO_OUTPUT)) { -+ printf("Connection to lldpad lost - trying to reconnect\n"); -+ cli_close_connection(); -+ } -+ if (!clif_conn) { -+ clif_conn = clif_open(); -+ if (clif_conn) { -+ char attach_str[9] = ""; -+ u32 mod_id = LLDP_MOD_VDP22; -+ bin2hexstr((u8 *)&mod_id, 4, attach_str, 8); -+ printf("Connection to lldpad re-established\n"); -+ if (clif_attach(clif_conn, attach_str) == 0) -+ cli_attached = 1; -+ else -+ printf("Warning: Failed to attach to lldpad.\n"); -+ } -+ } -+ if (clif_conn) -+ cli_recv_pending(clif_conn, 1); -+ alarm(1); -+} -+ -+ -+int main(int argc, char *argv[]) -+{ -+ int interactive = 1; -+ int warning_displayed = 0; -+ int ret = 0; -+ -+ if (argc > 1) -+ interactive = 0; -+ if (interactive) -+ printf("%s\n\n%s\n\n", cli_version, cli_license); -+ for (;;) { -+ clif_conn = clif_open(); -+ if (clif_conn) { -+ if (warning_displayed) -+ printf("Connection established.\n"); -+ break; -+ } -+ -+ if (!interactive) { -+ perror("Failed to connect to lldpad - clif_open"); -+ return -1; -+ } -+ -+ if (!warning_displayed) { -+ printf("Could not connect to lldpad - re-trying\n"); -+ warning_displayed = 1; -+ } -+ sleep(1); -+ } -+ -+ init_modules(); -+ signal(SIGINT, cli_terminate); -+ signal(SIGTERM, cli_terminate); -+ signal(SIGALRM, cli_alarm); -+ -+ if (interactive) { -+ char attach_str[9] = ""; -+ u32 mod_id = LLDP_MOD_VDP22; -+ bin2hexstr((u8 *)&mod_id, 4, attach_str, 8); -+ if (clif_attach(clif_conn, attach_str) == 0) -+ cli_attached = 1; -+ else -+ printf("Warning: Failed to attach to lldpad.\n"); -+ cli_interactive(); -+ } else { -+ ret = request(clif_conn, argc, &argv[0]); -+ ret = !!ret; -+ } -+ cli_close_connection(); -+ deinit_modules(); -+ return ret; -+} --- -2.1.0 - diff --git a/open-lldp-v1.0.1-20-lldp-automake-fix-drop-prefix-on-vdptool_LDADD.patch b/open-lldp-v1.0.1-20-lldp-automake-fix-drop-prefix-on-vdptool_LDADD.patch deleted file mode 100644 index eb1ff0f..0000000 --- a/open-lldp-v1.0.1-20-lldp-automake-fix-drop-prefix-on-vdptool_LDADD.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 7a7150e3e6443e2fff0f3967995fa16a4b8665d7 Mon Sep 17 00:00:00 2001 -From: John Fastabend -Date: Fri, 30 Jan 2015 08:55:00 -0800 -Subject: [PATCH] lldp: automake fix, drop prefix on vdptool_LDADD - -Add another fix to the Makefile to drop prefix in vdptool_LDADD -this resolves the following error from 'make distcheck' - -libtool: link: cannot find the library `../liblldp_clif.la' or unhandled argument `../liblldp_clif.la' -make[1]: *** [vdptool] Error 1 -make[1]: Leaving directory `/home/john/git/lldp/lldpad/lldpad-1.0.1/_build' -make: *** [distcheck] Error 1 - -Signed-off-by: John Fastabend ---- - Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index b1c381b..84d68ee 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -82,7 +82,7 @@ liblldp_clif_includedir = ${srcdir}/include - liblldp_clif_la_SOURCES = clif.c - - vdptool_SOURCES = vdptool.c lldp_util.c qbg/vdp22_clif.c vdptool_cisco_oui.c --vdptool_LDADD = ${srcdir}/liblldp_clif.la -+vdptool_LDADD = liblldp_clif.la - vdptool_LDFLAGS = -llldp_clif $(LIBNL_LIBS) - - dcbtool_SOURCES = dcbtool.c dcbtool_cmds.c parse_cli.l \ --- -2.1.0 - diff --git a/open-lldp-v1.0.1-21-lldpad-Fix-DCBX-event-generation-from-lldpad.patch b/open-lldp-v1.0.1-21-lldpad-Fix-DCBX-event-generation-from-lldpad.patch deleted file mode 100644 index 735cc3d..0000000 --- a/open-lldp-v1.0.1-21-lldpad-Fix-DCBX-event-generation-from-lldpad.patch +++ /dev/null @@ -1,141 +0,0 @@ -From 9ad33e441e018352a95621f2cecfb31234bd6b00 Mon Sep 17 00:00:00 2001 -From: Neerav Parikh -Date: Fri, 20 Mar 2015 05:38:09 +0000 -Subject: [PATCH] lldpad: Fix DCBX event generation from lldpad - -Whenever there is a change in LLDP TLVs lldpad notifies clients that -may have registered for event notification based on TLV type. -For legacy clients like "fcoemon" lldpad by default registers them -for any changes to CEE DCBX TLV type; when such clients attach to -lldpad clif interface. - -Now, the lldpad code that registers such clients for CEE DCBX TLV -types is not generating correct DCBX TLV module id when it registers -these clients for change event notification. Hence, whenever there -is a change in such TLVs lldpad determines that the client is not -registered for CEE DCBX TLV change notification and does not notify -these clients. - -These results in clients not taking appropriate actions based on -changes to CEE DCBX TLVs. - -The patch fixes the issue by setting the correct module id value for -the CEE DCBX for legacy clients like "fcoemon". - -Tested-by: Jack Morgan -Signed-off-by: Neerav Parikh -Signed-off-by: John Fastabend ---- - ctrl_iface.c | 68 +++++++++++++++++++++++++++++++----------------------------- - lldpad.c | 2 ++ - 2 files changed, 37 insertions(+), 33 deletions(-) - -diff --git a/ctrl_iface.c b/ctrl_iface.c -index e4fd0b7..1734f49 100644 ---- a/ctrl_iface.c -+++ b/ctrl_iface.c -@@ -173,46 +173,44 @@ int clif_iface_attach(struct clif_data *clifd, - */ - /* set default string to DCBX Events */ - if (ibuf[1] == '\0') { -- u32 hex = LLDP_MOD_DCBX; -- tlv = malloc(sizeof(char) * (8 + 2)); -- if (!tlv) -+ dst->tlv_types = malloc(sizeof(u32) * 2); -+ if (!dst->tlv_types) - goto err_tlv; -- tlv[0] = 'A'; -- tlv[9] = 0; -- bin2hexstr((u8*)&hex, 4, &tlv[1], 8); -- } else -+ dst->tlv_types[0] = LLDP_MOD_DCBX; -+ /* Insert Termination Pattern */ -+ dst->tlv_types[1] = ~0; -+ } else { - tlv = strdup(ibuf); -- -- str = tlv; -- str++; -- /* Count number of TLV Modules */ -- tokenize = strtok(str, delim); -- tlv_count++; -- do { -- tokenize = strtok(NULL, delim); -+ str = tlv; -+ str++; -+ /* Count number of TLV Modules */ -+ tokenize = strtok(str, delim); - tlv_count++; -- } while (tokenize); -+ do { -+ tokenize = strtok(NULL, delim); -+ tlv_count++; -+ } while (tokenize); - -- dst->tlv_types = malloc(sizeof(u32) * tlv_count); -- if (!dst->tlv_types) -- goto err_types; -- memset(dst->tlv_types, 0, sizeof(u32) * tlv_count); -- -- /* Populate tlv_types from comma separated string */ -- tokenize = strtok(str, delim); -- for (i=0; tokenize; i++) { -- char *myend; -- -- dst->tlv_types[i] = strtol(tokenize, &myend, 16); -- if (*myend) /* No hexnumber for module id */ -+ dst->tlv_types = malloc(sizeof(u32) * tlv_count); -+ if (!dst->tlv_types) - goto err_types; -- tokenize = strtok(NULL, delim); -+ memset(dst->tlv_types, 0, sizeof(u32) * tlv_count); -+ -+ /* Populate tlv_types from comma separated string */ -+ tokenize = strtok(str, delim); -+ for (i = 0; tokenize; i++) { -+ char *myend; -+ -+ dst->tlv_types[i] = strtol(tokenize, &myend, 16); -+ if (*myend) /* No hexnumber for module id */ -+ goto err_types; -+ tokenize = strtok(NULL, delim); -+ } -+ free(tlv); -+ /* Insert Termination Pattern */ -+ dst->tlv_types[i] = ~0; - } - -- /* Insert Termination Pattern */ -- dst->tlv_types[i] = ~0; -- free(tlv); -- - /* Insert new node at beginning */ - dst->next = clifd->ctrl_dst; - clifd->ctrl_dst = dst; -@@ -595,6 +593,10 @@ void ctrl_iface_send(struct clif_data *clifd, int level, u32 moduleid, - dst->addrlen); - } - } else { -+ fprintf(stderr, -+ "CTRL_IFACE monitor[%d][%d] %d:%s: ", -+ idx, clifd->ctrl_sock, dst->addrlen, -+ dst->addr.sun_path); - dst->errors = 0; - } - } -diff --git a/lldpad.c b/lldpad.c -index 406dcd5..72ab69d 100644 ---- a/lldpad.c -+++ b/lldpad.c -@@ -150,6 +150,8 @@ void send_event(int level, u32 moduleid, char *msg) - { - struct clif_data *cd = NULL; - -+ LLDPAD_DBG("lldpad: send_event level=%d moduleid=%d msg=%s\n", -+ level, moduleid, msg); - cd = (struct clif_data *) eloop_get_user_data(); - if (cd) - ctrl_iface_send(cd, level, moduleid, msg, strlen(msg)); --- -2.1.0 - diff --git a/open-lldp-v1.0.1-22-vdp-Fixed-the-memory-leak-for-modify-VSI-support-for.patch b/open-lldp-v1.0.1-22-vdp-Fixed-the-memory-leak-for-modify-VSI-support-for.patch deleted file mode 100644 index 3285467..0000000 --- a/open-lldp-v1.0.1-22-vdp-Fixed-the-memory-leak-for-modify-VSI-support-for.patch +++ /dev/null @@ -1,223 +0,0 @@ -From 73e0c42cc00f537fee1f58e5475cab1f2193e3cc Mon Sep 17 00:00:00 2001 -From: padkrish -Date: Fri, 10 Apr 2015 09:03:24 +0000 -Subject: [PATCH] vdp: Fixed the memory leak for modify VSI, support for OUI - modify - -This patch has a fix for freeing the memory after a VSI update. -Support for modifying the OUI parameters have been added -to the infra. -Cisco specific handler is also added to support OUI modify. - -Signed-off-by: padkrish -Signed-off-by: John Fastabend ---- - include/qbg_vdp22.h | 2 +- - include/qbg_vdp22_oui.h | 3 +++ - include/vdp_cisco.h | 2 ++ - qbg/vdp22.c | 5 +++-- - qbg/vdp22cisco_oui.c | 44 +++++++++++++++++++++++++++++++++++++++++--- - qbg/vdp22sm.c | 35 ++++++++++++++++++++++++++++++++--- - 6 files changed, 82 insertions(+), 9 deletions(-) - -diff --git a/include/qbg_vdp22.h b/include/qbg_vdp22.h -index 6585a10..b1896a5 100644 ---- a/include/qbg_vdp22.h -+++ b/include/qbg_vdp22.h -@@ -181,7 +181,7 @@ void vdp22_stop(char *); - int vdp22_from_ecp22(struct vdp22 *); - int vdp22_query(const char *); - struct vdp22 *vdp22_getvdp(const char *); --int vdp22_addreq(struct vsi22 *, struct vdp22 *); -+int vdp22_addreq(struct vsi22 *, struct vdp22 *, bool *); - int vdp22_nlback(struct vsi22 *); - int vdp22_clntback(struct vsi22 *); - struct vsi22 *vdp22_copy_vsi(struct vsi22 *); -diff --git a/include/qbg_vdp22_oui.h b/include/qbg_vdp22_oui.h -index 923e19f..d60075d 100644 ---- a/include/qbg_vdp22_oui.h -+++ b/include/qbg_vdp22_oui.h -@@ -82,6 +82,9 @@ struct vdp22_oui_handler_s { - /* This handler converts the vdpnl structure to vsi22 structure */ - bool (*vdpnl2vsi22_hndlr)(void *, struct vdpnl_oui_data_s *, - struct vdp22_oui_data_s *); -+ /* This handler modifies the existing OUI parameters */ -+ bool (*vsi22_mod_hndlr)(void *, struct vdp22_oui_data_s *, -+ struct vdp22_oui_data_s *); - /* This handler converts the vdpnl structure to string */ - bool (*vdpnl2str_hndlr)(struct vdpnl_oui_data_s *, char *, - int *, int); -diff --git a/include/vdp_cisco.h b/include/vdp_cisco.h -index 821db68..4abe802 100644 ---- a/include/vdp_cisco.h -+++ b/include/vdp_cisco.h -@@ -113,6 +113,8 @@ bool cisco_str2vdpnl_hndlr(struct vdpnl_oui_data_s *, char *); - bool cisco_vdp_free_oui(struct vdp22_oui_data_s *); - bool cisco_vdpnl2vsi22_hndlr(void *, struct vdpnl_oui_data_s *, - struct vdp22_oui_data_s *); -+bool cisco_vsi22_mod_hndlr(void *, struct vdp22_oui_data_s *, -+ struct vdp22_oui_data_s *); - bool cisco_vdpnl2str_hndlr(struct vdpnl_oui_data_s *, char *, int *, int); - bool cisco_vsi2vdpnl_hndlr(void *, struct vdp22_oui_data_s *, - struct vdpnl_oui_data_s *); -diff --git a/qbg/vdp22.c b/qbg/vdp22.c -index 10b80a4..8f14fdd 100644 ---- a/qbg/vdp22.c -+++ b/qbg/vdp22.c -@@ -900,6 +900,7 @@ int vdp22_request(struct vdpnl_vsi *vsi, int clif) - int rc; - struct vsi22 *p; - struct vdp22 *vdp; -+ bool modf_vsi = false; - - LLDPAD_DBG("%s:%s clif:%d\n", __func__, vsi->ifname, clif); - vdp = vdp22_findif(vsi->ifname, NULL); -@@ -917,8 +918,8 @@ int vdp22_request(struct vdpnl_vsi *vsi, int clif) - vsi->request += 1; - p = vdp22_alloc_vsi_int(vsi, vdp, &rc, true); - if (p) { -- rc = vdp22_addreq(p, vdp); -- if (rc) -+ rc = vdp22_addreq(p, vdp, &modf_vsi); -+ if (rc || modf_vsi) - vdp22_delete_vsi(p); - } - } else -diff --git a/qbg/vdp22cisco_oui.c b/qbg/vdp22cisco_oui.c -index 272d480..da6ce24 100644 ---- a/qbg/vdp22cisco_oui.c -+++ b/qbg/vdp22cisco_oui.c -@@ -34,8 +34,9 @@ - - struct vdp22_oui_handler_s cisco_oui_hndlr = { - {0x00, 0x00, 0x0c}, "cisco", cisco_str2vdpnl_hndlr, -- cisco_vdpnl2vsi22_hndlr, cisco_vdpnl2str_hndlr, -- cisco_vsi2vdpnl_hndlr, cisco_vdp_tx_hndlr, cisco_vdp_rx_hndlr, -+ cisco_vdpnl2vsi22_hndlr, cisco_vsi22_mod_hndlr, -+ cisco_vdpnl2str_hndlr, cisco_vsi2vdpnl_hndlr, -+ cisco_vdp_tx_hndlr, cisco_vdp_rx_hndlr, - cisco_vdp_free_oui, cisco_vdp_oui_ptlvsize}; - - /* -@@ -104,9 +105,11 @@ bool cisco_str2vdpnl_hndlr(struct vdpnl_oui_data_s *vdp_oui_p, char *token) - } - strncpy(uuid, token, data_len); - if (oui_vdp_str2uuid(vdp_cisco_oui_p->uuid, uuid, -- sizeof(vdp_cisco_oui_p->uuid))) -+ sizeof(vdp_cisco_oui_p->uuid))) { - memset(vdp_cisco_oui_p->uuid, 0, - sizeof(vdp_cisco_oui_p->uuid)); -+ vdp_cisco_oui_p->uuid_set = false; -+ } else - vdp_cisco_oui_p->uuid_set = true; - free(uuid); - break; -@@ -177,6 +180,41 @@ bool cisco_vdpnl2vsi22_hndlr(void *vsi_data, struct vdpnl_oui_data_s *from, - } - - /* -+ * This converts modifies the existing OUI parameters -+ */ -+ -+bool cisco_vsi22_mod_hndlr(UNUSED void *vsi_data, struct vdp22_oui_data_s *from, -+ struct vdp22_oui_data_s *to) -+{ -+ vdp_cisco_oui_t *from_oui; -+ vdp_cisco_oui_t *to_oui; -+ -+ from_oui = (vdp_cisco_oui_t *)from->data; -+ to_oui = (vdp_cisco_oui_t *)to->data; -+ if ((!from_oui) || (!to_oui)) { -+ LLDPAD_DBG("%s: NULL OUI data\n", __func__); -+ return false; -+ } -+ if (from_oui->vm_name_len != 0) { -+ to_oui->vm_name_len = from_oui->vm_name_len; -+ strncpy(to_oui->vm_name, from_oui->vm_name, -+ to_oui->vm_name_len); -+ } -+ /* UUID can be modified only if not set */ -+ if (!to_oui->uuid_set) { -+ memcpy(to_oui->uuid, from_oui->uuid, sizeof(to_oui->uuid)); -+ to_oui->uuid_set = true; -+ } -+ if (from_oui->vm_addr_len != 0) { -+ to_oui->vm_addr_len = from_oui->vm_addr_len; -+ to_oui->afi = from_oui->afi; -+ memcpy(&(to_oui->l3_addr), &(from_oui->l3_addr), -+ sizeof(to_oui->l3_addr)); -+ } -+ return true; -+} -+ -+/* - * This function converts the OUI information from vdpnl struct to string - */ - -diff --git a/qbg/vdp22sm.c b/qbg/vdp22sm.c -index 14356ac..be838a9 100644 ---- a/qbg/vdp22sm.c -+++ b/qbg/vdp22sm.c -@@ -184,10 +184,36 @@ static inline size_t vsi22_ptlv_sz(struct vsi22 *vp) - } - - /* -+ * This function modifies the existing OUI parameters in a VSI. -+ */ -+static void vdp22_modoui(struct vsi22 *p, struct vsi22 *vsip) -+{ -+ struct vdp22_oui_handler_s *oui_hndlr; -+ int idx, inn_idx, ret; -+ -+ for (idx = 0; idx < vsip->no_ouidata; idx++) { -+ struct vdp22_oui_data_s *from = &vsip->oui_str_data[idx]; -+ -+ for (inn_idx = 0; inn_idx < p->no_ouidata; inn_idx++) { -+ struct vdp22_oui_data_s *to = &p->oui_str_data[inn_idx]; -+ -+ if (!strncmp(to->oui_name, from->oui_name, -+ sizeof(to->oui_name))) { -+ oui_hndlr = vdp22_get_oui_hndlr(to->oui_name); -+ ret = oui_hndlr->vsi22_mod_hndlr(p, from, to); -+ if (!ret) -+ LLDPAD_ERR("%s: handler return error for oui %s\n", -+ __func__, from->oui_name); -+ return; -+ } -+ } -+ } -+} -+ -+/* - * This function calls the registered OUI handlers that returns the size of - * the OUI data. - */ -- - static inline size_t oui22_ptlv_sz(struct vsi22 *vp) - { - struct vdp22_oui_handler_s *oui_hndlr; -@@ -1054,7 +1080,7 @@ bool vdp22_cmp_fdata(struct vsi22 *p, struct vsi22 *vsip) - /* - * Handle a new request. - */ --int vdp22_addreq(struct vsi22 *vsip, struct vdp22 *vdp) -+int vdp22_addreq(struct vsi22 *vsip, struct vdp22 *vdp, bool *modf_vsi) - { - int rc = 0; - struct vsi22 *p; -@@ -1094,8 +1120,11 @@ int vdp22_addreq(struct vsi22 *vsip, struct vdp22 *vdp) - LLDPAD_DBG("%s:%s TODO mismatch filter data [%02x]\n", - __func__, vsip->vdp->ifname, vsip->vsi[0]); - rc = -EINVAL; -- } else -+ } else { -+ vdp22_modoui(p, vsip); - rc = vdp22_modvsi(p, vsip->vsi_mode); -+ *modf_vsi = true; -+ } - } - out: - LLDPAD_DBG("%s:%s rc:%d\n", __func__, vsip->vdp->ifname, rc); --- -2.1.0 - diff --git a/open-lldp-v1.0.1-23-lldp-make-TTL-TLV-configurable.patch b/open-lldp-v1.0.1-23-lldp-make-TTL-TLV-configurable.patch deleted file mode 100644 index 51cbc9b..0000000 --- a/open-lldp-v1.0.1-23-lldp-make-TTL-TLV-configurable.patch +++ /dev/null @@ -1,312 +0,0 @@ -From 986eb2e84fd3339a30a4ab09c6d788c63236fed6 Mon Sep 17 00:00:00 2001 -From: Gary Loughnane -Date: Tue, 21 Apr 2015 17:45:41 +0000 -Subject: [PATCH] lldp: make TTL TLV configurable - -This allows the TTL TLV to be configured. - -Currently the Time To Live TLV is a static value set to 120 seconds. -LLDP specification says this can be a value of between 0 and 65535 -seconds. This patch makes the TTL TLV a configurable entity. - -Signed-off-by: Gary Loughnane -Signed-off-by: John Fastabend ---- - include/lldp_mand.h | 1 + - include/lldp_mand_cmds.h | 4 +++ - lldp/agent.c | 2 +- - lldp/ports.c | 3 +- - lldp/states.h | 2 +- - lldp/tx.c | 30 ++++++++++++++-- - lldp_mand.c | 21 ++++++++--- - lldp_mand_cmds.c | 90 ++++++++++++++++++++++++++++++++++++++++++++++++ - 8 files changed, 141 insertions(+), 12 deletions(-) - -diff --git a/include/lldp_mand.h b/include/lldp_mand.h -index 9154b7c..fc21ede 100644 ---- a/include/lldp_mand.h -+++ b/include/lldp_mand.h -@@ -93,4 +93,5 @@ void mand_unregister(struct lldp_module *mod); - struct packed_tlv *mand_gettlv(struct port *, struct lldp_agent *); - void mand_ifdown(char *, struct lldp_agent *); - void mand_ifup(char *, struct lldp_agent *); -+void mand_update_ttl(const char *, u16); - #endif /* _LLDP_MAND_H */ -diff --git a/include/lldp_mand_cmds.h b/include/lldp_mand_cmds.h -index aacac7c..8effc6e 100644 ---- a/include/lldp_mand_cmds.h -+++ b/include/lldp_mand_cmds.h -@@ -28,6 +28,10 @@ - #define _LLDP_MAND_CMDS_H - - #define ARG_MAND_SUBTYPE "subtype" -+#define ARG_TTL_VALUE "value" -+ -+#define TTL_MIN_VAL 0x0 -+#define TTL_MAX_VAL 0xFFFF - - struct arg_handlers *mand_get_arg_handlers(); - -diff --git a/lldp/agent.c b/lldp/agent.c -index 4bc5394..73ab054 100644 ---- a/lldp/agent.c -+++ b/lldp/agent.c -@@ -101,7 +101,7 @@ void lldp_init_agent(struct port *port, struct lldp_agent *agent, int type) - - /* init TX path */ - txInitializeTimers(agent); -- txInitializeLLDP(agent); -+ txInitializeLLDP(port, agent); - } - - int lldp_add_agent(const char *ifname, enum agent_type type) -diff --git a/lldp/ports.c b/lldp/ports.c -index 3bd6a2a..6384f14 100644 ---- a/lldp/ports.c -+++ b/lldp/ports.c -@@ -230,7 +230,6 @@ int reinit_port(const char *ifname) - /* Reset relevant state variables */ - agent->tx.state = TX_LLDP_INITIALIZE; - agent->rx.state = LLDP_WAIT_PORT_OPERATIONAL; -- agent->tx.txTTL = 0; - agent->msap.length1 = 0; - agent->msap.msap1 = NULL; - agent->msap.length2 = 0; -@@ -243,7 +242,7 @@ int reinit_port(const char *ifname) - - /* init TX path */ - txInitializeTimers(agent); -- txInitializeLLDP(agent); -+ txInitializeLLDP(port, agent); - } - - return 0; -diff --git a/lldp/states.h b/lldp/states.h -index fa5f11f..7cf69b8 100644 ---- a/lldp/states.h -+++ b/lldp/states.h -@@ -52,7 +52,7 @@ enum { - * The txInitializeLLDP () procedure initializes the LLDP transmit module as - * defined in 10.1.1. - */ --void txInitializeLLDP(struct lldp_agent *agent); -+void txInitializeLLDP(struct port *port, struct lldp_agent *agent); - - /** - * The mibConstrInfoLLDPDU () procedure constructs an information LLDPDU as -diff --git a/lldp/tx.c b/lldp/tx.c -index 69c1a1a..c3a5c62 100644 ---- a/lldp/tx.c -+++ b/lldp/tx.c -@@ -34,6 +34,8 @@ - #include "lldp_tlv.h" - #include "lldp_mod.h" - #include "lldp_mand.h" -+#include "config.h" -+#include "lldp_mand_clif.h" - - bool mibConstrInfoLLDPDU(struct port *port, struct lldp_agent *agent) - { -@@ -110,7 +112,29 @@ error: - return false; - } - --void txInitializeLLDP(struct lldp_agent *agent) -+static u16 get_ttl_init_val(char *ifname, struct lldp_agent *agent) -+{ -+ u16 ttl; -+ int config_ttl; -+ int read_config_err; -+ char arg_path[512] = { 0 }; -+ -+ snprintf(arg_path, sizeof(arg_path), "%s%08x.%s", -+ TLVID_PREFIX, -+ TLVID_NOUI(TIME_TO_LIVE_TLV), -+ ARG_TTL_VALUE); -+ read_config_err = get_config_setting(ifname, agent->type, -+ arg_path, &config_ttl, CONFIG_TYPE_INT); -+ -+ if (read_config_err) -+ ttl = DEFAULT_TX_HOLD * DEFAULT_TX_INTERVAL; -+ else -+ ttl = (u16)(config_ttl); -+ -+ return ttl; -+} -+ -+void txInitializeLLDP(struct port *port, struct lldp_agent *agent) - { - if (agent->tx.frameout) { - free(agent->tx.frameout); -@@ -125,7 +149,7 @@ void txInitializeLLDP(struct lldp_agent *agent) - agent->timers.msgTxInterval = DEFAULT_TX_INTERVAL; - agent->timers.msgFastTx = FAST_TX_INTERVAL; - -- agent->tx.txTTL = 0; -+ agent->tx.txTTL = get_ttl_init_val(port->ifname, agent); - agent->msap.length1 = 0; - agent->msap.msap1 = NULL; - agent->msap.length2 = 0; -@@ -240,7 +264,7 @@ void run_tx_sm(struct port *port, struct lldp_agent *agent) - do { - switch(agent->tx.state) { - case TX_LLDP_INITIALIZE: -- txInitializeLLDP(agent); -+ txInitializeLLDP(port, agent); - break; - case TX_IDLE: - process_tx_idle(agent); -diff --git a/lldp_mand.c b/lldp_mand.c -index b269d3f..652a454 100644 ---- a/lldp_mand.c -+++ b/lldp_mand.c -@@ -446,11 +446,7 @@ static int mand_bld_ttl_tlv(struct mand_data *md, struct lldp_agent *agent) - } - memset(tlv->info, 0, tlv->length); - -- if (agent->tx.txTTL) -- ttl = htons(agent->tx.txTTL); -- else -- ttl = htons(DEFAULT_TX_HOLD * DEFAULT_TX_INTERVAL); -- -+ ttl = htons(agent->tx.txTTL); - memcpy(tlv->info, &ttl, tlv->length); - LLDPAD_DBG("%s:%s:done:type=%d length=%d ttl=%d\n", __func__, - md->ifname, tlv->type, tlv->length, ntohs(ttl)); -@@ -685,3 +681,18 @@ void mand_unregister(struct lldp_module *mod) - free(mod); - LLDPAD_INFO("%s:done\n", __func__); - } -+ -+void mand_update_ttl(const char *ifname, u16 ttl_val) -+{ -+ struct port *port = port_find_by_ifindex(get_ifidx(ifname)); -+ struct lldp_agent *agent; -+ -+ if (!port) -+ return; -+ -+ LIST_FOREACH(agent, &port->agent_head, entry) { -+ agent->tx.txTTL = ttl_val; -+ agent->tx.localChange = 1; -+ agent->tx.txFast = agent->timers.txFastInit; -+ } -+} -diff --git a/lldp_mand_cmds.c b/lldp_mand_cmds.c -index 532337b..7d24bf8 100644 ---- a/lldp_mand_cmds.c -+++ b/lldp_mand_cmds.c -@@ -58,6 +58,11 @@ static int get_mand_subtype(struct cmd *, char *, char *, char *, int); - static int set_mand_subtype(struct cmd *, char *, char *, char *, int); - static int test_mand_subtype(struct cmd *, char *, char *, char *, int); - -+ -+static int get_mand_ttl_value(struct cmd *, char *, char *, char *, int); -+static int set_mand_ttl_value(struct cmd *, char *, char *, char *, int); -+static int test_mand_ttl_value(struct cmd *, char *, char *, char *, int); -+ - static struct arg_handlers arg_handlers[] = { - { .arg = ARG_ADMINSTATUS, .arg_class = LLDP_ARG, - .handle_get = get_arg_adminstatus, -@@ -72,6 +77,11 @@ static struct arg_handlers arg_handlers[] = { - .handle_get = get_mand_subtype, - .handle_set = set_mand_subtype, - .handle_test = test_mand_subtype, }, -+ { .arg = ARG_TTL_VALUE, -+ .arg_class = TLV_ARG, -+ .handle_get = get_mand_ttl_value, -+ .handle_set = set_mand_ttl_value, -+ .handle_test = test_mand_ttl_value, }, - { .arg = 0 } - }; - -@@ -271,6 +281,86 @@ static int _set_mand_subtype(struct cmd *cmd, char *arg, char *argvalue, - return 0; - } - -+static int get_mand_ttl_value(struct cmd *cmd, char *arg, -+ UNUSED char *argvalue, char *obuf, int obuf_len) -+{ -+ int ttl_val; -+ char string[8], arg_path[256]; -+ -+ if (cmd->cmd != cmd_gettlv) -+ return cmd_invalid; -+ -+ switch (cmd->tlvid) { -+ case TIME_TO_LIVE_TLV: -+ snprintf(arg_path, sizeof(arg_path), "%s%08x.%s", -+ TLVID_PREFIX, TLVID_NOUI(TIME_TO_LIVE_TLV), -+ ARG_TTL_VALUE); -+ get_config_setting(cmd->ifname, cmd->type, arg_path, -+ &ttl_val, CONFIG_TYPE_INT); -+ break; -+ case INVALID_TLVID: -+ return cmd_invalid; -+ default: -+ return cmd_not_applicable; -+ } -+ -+ snprintf(string, sizeof(string), "%d", ttl_val); -+ snprintf(obuf, obuf_len, "%02x%s%04x%s", -+ (unsigned int) strlen(arg), arg, -+ (unsigned int)strlen(string), string); -+ -+ return 0; -+} -+ -+static int _set_mand_ttl_value(struct cmd *cmd, char *arg, char *argvalue, -+ char *obuf, int obuf_len, bool test) -+{ -+ int ttl_val; -+ char *end; -+ char arg_path[256]; -+ -+ if (cmd->cmd != cmd_settlv) -+ return cmd_invalid; -+ -+ switch (cmd->tlvid) { -+ case TIME_TO_LIVE_TLV: -+ break; -+ case INVALID_TLVID: -+ return cmd_invalid; -+ default: -+ return cmd_not_applicable; -+ } -+ -+ ttl_val = strtoul(argvalue, &end, 0); -+ if ((*end) || (TTL_MIN_VAL > ttl_val) || (ttl_val > TTL_MAX_VAL)) -+ return cmd_bad_params; -+ -+ if (test) -+ return cmd_success; -+ -+ snprintf(arg_path, sizeof(arg_path), "%s%08x.%s", TLVID_PREFIX, -+ cmd->tlvid, arg); -+ snprintf(obuf, obuf_len, "%s=%s\n", arg, argvalue); -+ set_config_setting(cmd->ifname, cmd->type, -+ arg_path, &ttl_val, CONFIG_TYPE_INT); -+ -+ mand_update_ttl(cmd->ifname, ttl_val); -+ -+ return 0; -+} -+ -+static int set_mand_ttl_value(struct cmd *cmd, char *arg, char *argvalue, -+ char *obuf, int obuf_len) -+{ -+ return _set_mand_ttl_value(cmd, arg, argvalue, obuf, obuf_len, false); -+} -+ -+static int test_mand_ttl_value(struct cmd *cmd, char *arg, char *argvalue, -+ char *obuf, int obuf_len) -+{ -+ return _set_mand_ttl_value(cmd, arg, argvalue, obuf, obuf_len, true); -+} -+ - static int set_mand_subtype(struct cmd *cmd, char *arg, char *argvalue, - char *obuf, int obuf_len) - { --- -2.1.0 - diff --git a/open-lldp-v1.0.1-24-switch-from-sysv-to-posix-shared-memory-apis.patch b/open-lldp-v1.0.1-24-switch-from-sysv-to-posix-shared-memory-apis.patch deleted file mode 100644 index bbf3908..0000000 --- a/open-lldp-v1.0.1-24-switch-from-sysv-to-posix-shared-memory-apis.patch +++ /dev/null @@ -1,424 +0,0 @@ -From 1add5db5feaafe7cbc41f2896f5c2887c96bff92 Mon Sep 17 00:00:00 2001 -From: Chris Leech -Date: Sun, 16 Aug 2015 21:00:58 -0700 -Subject: [PATCH] lldpad: switch from sysv to posix shared memory apis - -The use of SysV shared memory, to pass state between running instances of -lldpad in the initramfs and then from the root fs, is difficult to work -with from a security policy. When lldpad runs in the initramfs there is -no security policy loaded. Then when it's restarted after an SELinux -policy has been loaded, there is no way to correct the context on the -already existing shared memory segment. This would result in the need -for an overly permissive policy for lldpad. - -By switching to POSIX APIs the segment is mapped from a tmpfs file with -a directory entry under /dev/shm/. This lets us add a file contents -entry to the SELinux policy that matches that path, and a proper -security context can be restored to it before restarting lldpad. - -Signed-off-by: Chris Leech -Signed-off-by: John Fastabend ---- - Makefile.am | 2 +- - include/lldpad_shm.h | 2 +- - lldpad_shm.c | 169 ++++++++++++++++++++++++++++++--------------------- - 3 files changed, 103 insertions(+), 70 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index 84d68ee..551d4c7 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -17,7 +17,7 @@ parse_cli.o: CFLAGS+=-U_FORTIFY_SOURCE -Wno-error - - ## system requires a shared libconfig - AM_CFLAGS = -Wall -Werror -Wextra -Wformat=2 $(LIBCONFIG_CFLAGS) $(LIBNL_CFLAGS) --AM_LDFLAGS = $(LIBCONFIG_LIBS) $(LIBNL_LIBS) -+AM_LDFLAGS = $(LIBCONFIG_LIBS) $(LIBNL_LIBS) -lrt - - ## header files to be installed, for programs using the client interface to lldpad - lldpad_includedir= ${includedir}/lldpad -diff --git a/include/lldpad_shm.h b/include/lldpad_shm.h -index 00d20eb..587b555 100644 ---- a/include/lldpad_shm.h -+++ b/include/lldpad_shm.h -@@ -31,7 +31,7 @@ - #include "lldpad.h" - #include "lldp_rtnl.h" - --#define LLDPAD_SHM_KEY ((('l'<<24) | ('l'<<16) | ('d'<<8) | ('p')) + 'a' + 'd' + 1) -+#define LLDPAD_SHM_PATH "/lldpad.state" - #define LLDPAD_SHM_SIZE 4096 - - /* PID value used to indicate pid field is uninitialized */ -diff --git a/lldpad_shm.c b/lldpad_shm.c -index 4afcf73..d8bc0c5 100644 ---- a/lldpad_shm.c -+++ b/lldpad_shm.c -@@ -29,7 +29,9 @@ - #include - #include - #include --#include -+#include -+#include -+#include - #include - #include - #include -@@ -39,16 +41,7 @@ - - void mark_lldpad_shm_for_removal() - { -- int shmid; -- struct shmid_ds shminfo; -- -- shmid = shmget(LLDPAD_SHM_KEY, LLDPAD_SHM_SIZE, 0); -- -- if (shmid < 0) -- return; -- -- if (shmctl(shmid, IPC_RMID, &shminfo) < 0) -- return; -+ shm_unlink(LLDPAD_SHM_PATH); - } - - /* return: 1 = success, 0 = failed */ -@@ -101,16 +94,21 @@ int lldpad_shm_get_msap(const char *device_name, int type, char *info, size_t *l - unsigned num_entries; - int version; - -- shmid = shmget(LLDPAD_SHM_KEY, LLDPAD_SHM_SIZE, 0); -- if (shmid < 0 && errno == ENOENT) -- shmid = shmget(LLDPAD_SHM_KEY, LLDPAD_SHM_SIZE, -- IPC_CREAT | IPC_EXCL | 0x180); -+ shmid = shm_open(LLDPAD_SHM_PATH, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); - - if (shmid < 0) - return rval; - -- shmaddr = (struct lldpad_shm_tbl *)shmat(shmid, NULL, 0); -- if ((long) shmaddr == -1) -+ if (ftruncate(shmid, LLDPAD_SHM_SIZE)) { -+ close(shmid); -+ return rval; -+ } -+ -+ shmaddr = (struct lldpad_shm_tbl *) mmap(NULL, LLDPAD_SHM_SIZE, -+ PROT_READ | PROT_WRITE, -+ MAP_SHARED, shmid, 0); -+ close(shmid); -+ if (shmaddr == MAP_FAILED) - return rval; - - version = (shmaddr->num_entries & SHM_VER_MASK) >> SHM_VER_SHIFT; -@@ -147,7 +145,7 @@ int lldpad_shm_get_msap(const char *device_name, int type, char *info, size_t *l - rval = 1; - } - done: -- shmdt(shmaddr); -+ munmap(shmaddr, LLDPAD_SHM_SIZE); - - return rval; - } -@@ -162,16 +160,21 @@ int lldpad_shm_set_msap(const char *device_name, int type, char *info, size_t le - int version; - unsigned num_entries; - -- shmid = shmget(LLDPAD_SHM_KEY, LLDPAD_SHM_SIZE, 0); -- if (shmid < 0 && errno == ENOENT) -- shmid = shmget(LLDPAD_SHM_KEY, LLDPAD_SHM_SIZE, -- IPC_CREAT | IPC_EXCL | 0x180); -+ shmid = shm_open(LLDPAD_SHM_PATH, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); - - if (shmid < 0) - return rval; - -- shmaddr = (struct lldpad_shm_tbl *)shmat(shmid, NULL, 0); -- if ((long) shmaddr == -1) -+ if (ftruncate(shmid, LLDPAD_SHM_SIZE)) { -+ close(shmid); -+ return rval; -+ } -+ -+ shmaddr = (struct lldpad_shm_tbl *) mmap(NULL, LLDPAD_SHM_SIZE, -+ PROT_READ | PROT_WRITE, -+ MAP_SHARED, shmid, 0); -+ close(shmid); -+ if (shmaddr == MAP_FAILED) - return rval; - - version = (shmaddr->num_entries & SHM_VER_MASK) >> SHM_VER_SHIFT; -@@ -212,7 +215,7 @@ int lldpad_shm_set_msap(const char *device_name, int type, char *info, size_t le - } - - done: -- shmdt(shmaddr); -+ munmap(shmaddr, LLDPAD_SHM_SIZE); - - return rval; - } -@@ -226,16 +229,21 @@ int lldpad_shm_get_dcbx(const char *device_name) - unsigned num_entries; - int version; - -- shmid = shmget(LLDPAD_SHM_KEY, LLDPAD_SHM_SIZE, 0); -- if (shmid < 0 && errno == ENOENT) -- shmid = shmget(LLDPAD_SHM_KEY, LLDPAD_SHM_SIZE, -- IPC_CREAT | IPC_EXCL | 0x180); -+ shmid = shm_open(LLDPAD_SHM_PATH, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); - - if (shmid < 0) - return rval; - -- shmaddr = (struct lldpad_shm_tbl *)shmat(shmid, NULL, 0); -- if ((long) shmaddr == -1) -+ if (ftruncate(shmid, LLDPAD_SHM_SIZE)) { -+ close(shmid); -+ return rval; -+ } -+ -+ shmaddr = (struct lldpad_shm_tbl *) mmap(NULL, LLDPAD_SHM_SIZE, -+ PROT_READ | PROT_WRITE, -+ MAP_SHARED, shmid, 0); -+ close(shmid); -+ if (shmaddr == MAP_FAILED) - return rval; - - version = (shmaddr->num_entries & SHM_VER_MASK) >> SHM_VER_SHIFT; -@@ -264,7 +272,7 @@ int lldpad_shm_get_dcbx(const char *device_name) - } - - done: -- shmdt(shmaddr); -+ munmap(shmaddr, LLDPAD_SHM_SIZE); - - return rval; - } -@@ -279,16 +287,21 @@ int lldpad_shm_set_dcbx(const char *device_name, int dcbx_mode) - unsigned num_entries; - int version; - -- shmid = shmget(LLDPAD_SHM_KEY, LLDPAD_SHM_SIZE, 0); -- if (shmid < 0 && errno == ENOENT) -- shmid = shmget(LLDPAD_SHM_KEY, LLDPAD_SHM_SIZE, -- IPC_CREAT | IPC_EXCL | 0x180); -+ shmid = shm_open(LLDPAD_SHM_PATH, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); - - if (shmid < 0) - return rval; - -- shmaddr = (struct lldpad_shm_tbl *)shmat(shmid, NULL, 0); -- if ((long) shmaddr == -1) -+ if (ftruncate(shmid, LLDPAD_SHM_SIZE)) { -+ close(shmid); -+ return rval; -+ } -+ -+ shmaddr = (struct lldpad_shm_tbl *) mmap(NULL, LLDPAD_SHM_SIZE, -+ PROT_READ | PROT_WRITE, -+ MAP_SHARED, shmid, 0); -+ close(shmid); -+ if (shmaddr == MAP_FAILED) - return rval; - - version = (shmaddr->num_entries & SHM_VER_MASK) >> SHM_VER_SHIFT; -@@ -330,7 +343,7 @@ int lldpad_shm_set_dcbx(const char *device_name, int dcbx_mode) - } - - done: -- shmdt(shmaddr); -+ munmap(shmaddr, LLDPAD_SHM_SIZE); - - return rval; - } -@@ -346,16 +359,21 @@ pid_t lldpad_shm_getpid() - pid_t rval = -1; - int version; - -- shmid = shmget(LLDPAD_SHM_KEY, LLDPAD_SHM_SIZE, 0); -- if (shmid < 0 && errno == ENOENT) -- shmid = shmget(LLDPAD_SHM_KEY, LLDPAD_SHM_SIZE, -- IPC_CREAT | IPC_EXCL | 0x180); -+ shmid = shm_open(LLDPAD_SHM_PATH, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); - - if (shmid < 0) - return rval; - -- shmaddr = (struct lldpad_shm_tbl *)shmat(shmid, NULL, 0); -- if ((long) shmaddr == -1) -+ if (ftruncate(shmid, LLDPAD_SHM_SIZE)) { -+ close(shmid); -+ return rval; -+ } -+ -+ shmaddr = (struct lldpad_shm_tbl *) mmap(NULL, LLDPAD_SHM_SIZE, -+ PROT_READ | PROT_WRITE, -+ MAP_SHARED, shmid, 0); -+ close(shmid); -+ if (shmaddr == MAP_FAILED) - return rval; - - version = (shmaddr->num_entries & SHM_VER_MASK) >> SHM_VER_SHIFT; -@@ -366,7 +384,7 @@ pid_t lldpad_shm_getpid() - - rval = shmaddr->pid; - -- shmdt(shmaddr); -+ munmap(shmaddr, LLDPAD_SHM_SIZE); - - return rval; - } -@@ -379,13 +397,16 @@ int lldpad_shm_setpid(pid_t pid) - pid_t rval = 0; - int version; - -- shmid = shmget(LLDPAD_SHM_KEY, LLDPAD_SHM_SIZE, 0); -+ shmid = shm_open(LLDPAD_SHM_PATH, O_RDWR, S_IRUSR | S_IWUSR); - - if (shmid < 0) - return rval; - -- shmaddr = (struct lldpad_shm_tbl *)shmat(shmid, NULL, 0); -- if ((long) shmaddr == -1) -+ shmaddr = (struct lldpad_shm_tbl *) mmap(NULL, LLDPAD_SHM_SIZE, -+ PROT_READ | PROT_WRITE, -+ MAP_SHARED, shmid, 0); -+ close(shmid); -+ if (shmaddr == MAP_FAILED) - return rval; - - version = (shmaddr->num_entries & SHM_VER_MASK) >> SHM_VER_SHIFT; -@@ -396,7 +417,7 @@ int lldpad_shm_setpid(pid_t pid) - - shmaddr->pid = pid; - -- shmdt(shmaddr); -+ munmap(shmaddr, LLDPAD_SHM_SIZE); - - return 1; - } -@@ -410,13 +431,16 @@ int clear_dcbx_state() - int version; - unsigned num_entries; - -- shmid = shmget(LLDPAD_SHM_KEY, LLDPAD_SHM_SIZE, 0); -+ shmid = shm_open(LLDPAD_SHM_PATH, O_RDWR, S_IRUSR | S_IWUSR); - - if (shmid < 0) - return 0; - -- shmaddr = (struct lldpad_shm_tbl *)shmat(shmid, NULL, 0); -- if ((long) shmaddr == -1) -+ shmaddr = (struct lldpad_shm_tbl *) mmap(NULL, LLDPAD_SHM_SIZE, -+ PROT_READ | PROT_WRITE, -+ MAP_SHARED, shmid, 0); -+ close(shmid); -+ if (shmaddr == MAP_FAILED) - return 0; - - version = (shmaddr->num_entries & SHM_VER_MASK) >> SHM_VER_SHIFT; -@@ -437,7 +461,7 @@ int clear_dcbx_state() - sizeof(dcbx_state)); - - done: -- shmdt(shmaddr); -+ munmap(shmaddr, LLDPAD_SHM_SIZE); - return 1; - } - -@@ -451,13 +475,16 @@ int set_dcbx_state(const char *device_name, dcbx_state *state) - int version; - unsigned num_entries; - -- shmid = shmget(LLDPAD_SHM_KEY, LLDPAD_SHM_SIZE, 0); -+ shmid = shm_open(LLDPAD_SHM_PATH, O_RDWR, S_IRUSR | S_IWUSR); - - if (shmid < 0) - return rval; - -- shmaddr = (struct lldpad_shm_tbl *)shmat(shmid, NULL, 0); -- if ((long) shmaddr == -1) -+ shmaddr = (struct lldpad_shm_tbl *) mmap(NULL, LLDPAD_SHM_SIZE, -+ PROT_READ | PROT_WRITE, -+ MAP_SHARED, shmid, 0); -+ close(shmid); -+ if (shmaddr == MAP_FAILED) - return rval; - - version = (shmaddr->num_entries & SHM_VER_MASK) >> SHM_VER_SHIFT; -@@ -487,7 +514,7 @@ int set_dcbx_state(const char *device_name, dcbx_state *state) - } - - done: -- shmdt(shmaddr); -+ munmap(shmaddr, LLDPAD_SHM_SIZE); - - return rval; - } -@@ -505,13 +532,16 @@ int get_dcbx_state(const char *device_name, dcbx_state *state) - int version; - unsigned num_entries; - -- shmid = shmget(LLDPAD_SHM_KEY, LLDPAD_SHM_SIZE, 0); -+ shmid = shm_open(LLDPAD_SHM_PATH, O_RDWR, S_IRUSR | S_IWUSR); - - if (shmid < 0) - return rval; - -- shmaddr = (struct lldpad_shm_tbl *)shmat(shmid, NULL, 0); -- if ((long) shmaddr == -1) -+ shmaddr = (struct lldpad_shm_tbl *) mmap(NULL, LLDPAD_SHM_SIZE, -+ PROT_READ | PROT_WRITE, -+ MAP_SHARED, shmid, 0); -+ close(shmid); -+ if (shmaddr == MAP_FAILED) - return rval; - - version = (shmaddr->num_entries & SHM_VER_MASK) >> SHM_VER_SHIFT; -@@ -537,7 +567,7 @@ int get_dcbx_state(const char *device_name, dcbx_state *state) - } - - done: -- shmdt(shmaddr); -+ munmap(shmaddr, LLDPAD_SHM_SIZE); - - return rval; - } -@@ -562,17 +592,20 @@ int print_lldpad_shm() - int ent_size; - struct lldpad_shm_entry *entry_ptr = NULL; - -- shmid = shmget(LLDPAD_SHM_KEY, LLDPAD_SHM_SIZE, 0); -+ shmid = shm_open(LLDPAD_SHM_PATH, O_RDWR, S_IRUSR | S_IWUSR); - - if (shmid < 0) { -- printf("failed to shmget\n"); -+ printf("failed to shm_open\n"); - return rval; - } - -- shmaddr = (struct lldpad_shm_tbl *)shmat(shmid, NULL, 0); -+ shmaddr = (struct lldpad_shm_tbl *) mmap(NULL, LLDPAD_SHM_SIZE, -+ PROT_READ | PROT_WRITE, -+ MAP_SHARED, shmid, 0); - shmaddr_ver0 = (struct lldpad_shm_tbl_ver0 *)shmaddr; -- if ((long) shmaddr == -1) { -- printf("failed to shmat\n"); -+ close(shmid); -+ if (shmaddr == MAP_FAILED) { -+ printf("failed to mmap\n"); - return rval; - } - -@@ -633,7 +666,7 @@ int print_lldpad_shm() - rval = 1; - - done: -- shmdt(shmaddr); -+ munmap(shmaddr, LLDPAD_SHM_SIZE); - - return rval; - } --- -2.5.0 - diff --git a/open-lldp-v1.0.1-25-l2_linux_packet-correctly-process-return-value-of-ge.patch b/open-lldp-v1.0.1-25-l2_linux_packet-correctly-process-return-value-of-ge.patch deleted file mode 100644 index 0af32c7..0000000 --- a/open-lldp-v1.0.1-25-l2_linux_packet-correctly-process-return-value-of-ge.patch +++ /dev/null @@ -1,37 +0,0 @@ -From e212eb214afaea300194333f652b950941299339 Mon Sep 17 00:00:00 2001 -From: Johannes Thumshirn -Date: Wed, 20 May 2015 16:14:37 +0000 -Subject: [PATCH] l2_linux_packet: correctly process return value of - get_perm_hwaddr - -On success get_perm_hwaddr() returns the number of bytes read from the -netlink socket. - -l2_packet_init() checked for 0 as a successful return value. - -Adopt get_perm_hwaddr() to return 0 on success. - -Refrence: bsc#929171 - -Signed-off-by: Johannes Thumshirn -Signed-off-by: John Fastabend ---- - lldp_rtnl.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/lldp_rtnl.c b/lldp_rtnl.c -index 33b4d19..8d4f0cc 100644 ---- a/lldp_rtnl.c -+++ b/lldp_rtnl.c -@@ -322,6 +322,8 @@ int get_perm_hwaddr(const char *ifname, u8 *buf_perm, u8 *buf_san) - - memcpy(buf_perm, RTA_DATA(rta), ETH_ALEN); - memcpy(buf_san, RTA_DATA(rta) + ETH_ALEN, ETH_ALEN); -+ -+ rc = 0; - out: - close(s); - out_nosock: --- -2.5.0 - diff --git a/open-lldp-v1.0.1-26-lldpad-system-capability-incorrect-advertised-as-sta.patch b/open-lldp-v1.0.1-26-lldpad-system-capability-incorrect-advertised-as-sta.patch deleted file mode 100644 index d065cec..0000000 --- a/open-lldp-v1.0.1-26-lldpad-system-capability-incorrect-advertised-as-sta.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 036e314bd93602f7388262cc37faf8b626980af1 Mon Sep 17 00:00:00 2001 -From: Gary Loughnane -Date: Mon, 17 Aug 2015 21:19:24 +0000 -Subject: [PATCH] lldpad: system capability incorrect advertised as station - only - -Fix system capability TLV on switch. On our switches we have found -that the system capability was being advertised as Station Only. This -patch changes the capability to Bridge. - -Signed-off-by: Gary Loughnane -Signed-off-by: John Fastabend ---- - include/lldp_util.h | 1 + - lldp_util.c | 22 +++++++++++++++++++++- - 2 files changed, 22 insertions(+), 1 deletion(-) - -diff --git a/include/lldp_util.h b/include/lldp_util.h -index 878426b..69b67b1 100644 ---- a/include/lldp_util.h -+++ b/include/lldp_util.h -@@ -125,6 +125,7 @@ int is_active(const char *ifname); - int is_bond(const char *ifname); - int is_san_mac(u8 *addr); - int is_bridge(const char *ifname); -+int is_bridge_port(const char *ifname); - int is_vlan(const char *ifname); - int is_vlan_capable(const char *ifname); - int is_wlan(const char *ifname); -diff --git a/lldp_util.c b/lldp_util.c -index f1fb7b9..62f0af8 100644 ---- a/lldp_util.c -+++ b/lldp_util.c -@@ -580,6 +580,26 @@ int is_bridge(const char *ifname) - return rc; - } - -+int is_bridge_port(const char *ifname) -+{ -+ int rc = 0; -+ char path[256]; -+ DIR *dirp; -+ -+ if (!is_ether(ifname)) { -+ return 0; -+ } -+ /* check if the given ifname is a bridge port in sysfs */ -+ snprintf(path, sizeof(path), "/sys/class/net/%s/brport/", ifname); -+ dirp = opendir(path); -+ if (dirp) { -+ closedir(dirp); -+ rc = 1; -+ } -+ -+ return rc; -+} -+ - int is_vlan(const char *ifname) - { - int fd; -@@ -942,7 +962,7 @@ u16 get_caps(const char *ifname) - if (is_vlan(ifname)) - caps |= SYSCAP_CVLAN; - -- if (is_bridge(ifname)) -+ if (is_bridge_port(ifname)) - caps |= SYSCAP_BRIDGE; - - if (is_router()) --- -2.5.0 - diff --git a/open-lldp-v1.0.1-27-fix-build-warnings.patch b/open-lldp-v1.0.1-27-fix-build-warnings.patch deleted file mode 100644 index 5686fed..0000000 --- a/open-lldp-v1.0.1-27-fix-build-warnings.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 80fb9db6598440d3af6bdcbcd4f6788f7e660bbe Mon Sep 17 00:00:00 2001 -From: Chris Leech -Date: Wed, 17 Jun 2015 10:40:34 -0700 -Subject: [PATCH] fix build warnings - ---- - include/lldp_8021qaz.h | 6 ------ - lldp/agent.c | 5 +++++ - lldp/agent.h | 6 +++--- - lldp_util.c | 4 ++-- - 4 files changed, 10 insertions(+), 11 deletions(-) - -diff --git a/include/lldp_8021qaz.h b/include/lldp_8021qaz.h -index 55353b8..09dee20 100644 ---- a/include/lldp_8021qaz.h -+++ b/include/lldp_8021qaz.h -@@ -218,9 +218,6 @@ int ieee8021qaz_mod_app(struct app_tlv_head *head, int peer, - u8 prio, u8 sel, u16 proto, u32 ops); - int ieee8021qaz_app_sethw(char *ifname, struct app_tlv_head *head); - --inline int get_prio_map(u32 prio_map, int tc); --inline void set_prio_map(u32 *prio_map, u8 prio, int tc); -- - struct ieee8021qaz_tlvs *ieee8021qaz_data(const char *); - - int ieee8021qaz_tlvs_rxed(const char *ifname); -@@ -234,9 +231,6 @@ int ieee8021qaz_rchange(struct port *port, struct lldp_agent *, - void ieee8021qaz_ifup(char *ifname, struct lldp_agent *); - void ieee8021qaz_ifdown(char *ifname, struct lldp_agent *); - u8 ieee8021qaz_mibDeleteObject(struct port *port, struct lldp_agent *); --inline int ieee8021qaz_clif_cmd(void *data, struct sockaddr_un *from, -- socklen_t fromlen, char *ibuf, int ilen, -- char *rbuf); - int ieee8021qaz_check_operstate(void); - int get_dcbx_hw(const char *ifname, __u8 *dcbx); - -diff --git a/lldp/agent.c b/lldp/agent.c -index 73ab054..333929a 100644 ---- a/lldp/agent.c -+++ b/lldp/agent.c -@@ -36,6 +36,11 @@ - #include "lldp_mand_clif.h" - #include "lldp/agent.h" - -+/* IEEE 802.1AB-2009 - Table 7-1: group MAC addresses used by LLDP */ -+const u8 nearest_bridge[ETH_ALEN] = {0x01,0x80,0xc2,0x00,0x00,0x0e}; -+const u8 nearest_nontpmr_bridge[ETH_ALEN] = {0x01,0x80,0xc2,0x00,0x00,0x03}; -+const u8 nearest_customer_bridge[ETH_ALEN] = {0x01,0x80,0xc2,0x00,0x00,0x00}; -+ - static const u8 * agent_groupmacs[AGENT_MAX] = { - nearest_bridge, - nearest_nontpmr_bridge, -diff --git a/lldp/agent.h b/lldp/agent.h -index a54f72f..90da3e0 100644 ---- a/lldp/agent.h -+++ b/lldp/agent.h -@@ -48,9 +48,9 @@ enum agent_type { - }; - - /* IEEE 802.1AB-2009 - Table 7-1: group MAC addresses used by LLDP */ --static const u8 nearest_bridge[ETH_ALEN] = {0x01,0x80,0xc2,0x00,0x00,0x0e}; --static const u8 nearest_nontpmr_bridge[ETH_ALEN] = {0x01,0x80,0xc2,0x00,0x00,0x03}; --static const u8 nearest_customer_bridge[ETH_ALEN] = {0x01,0x80,0xc2,0x00,0x00,0x00}; -+extern const u8 nearest_bridge[ETH_ALEN]; -+extern const u8 nearest_nontpmr_bridge[ETH_ALEN]; -+extern const u8 nearest_customer_bridge[ETH_ALEN]; - - struct agenttimers { - /* Tx */ -diff --git a/lldp_util.c b/lldp_util.c -index 62f0af8..f12d46b 100644 ---- a/lldp_util.c -+++ b/lldp_util.c -@@ -1197,7 +1197,7 @@ int check_link_status(const char *ifname) - int get_arg_val_list(char *ibuf, int ilen, int *ioff, - char **args, char **argvals) - { -- u8 arglen; -+ u8 arglen = 0; - u16 argvalue_len; - int *arglens = NULL; - int *argvallens = NULL; -@@ -1265,7 +1265,7 @@ int get_arg_val_list(char *ibuf, int ilen, int *ioff, - - int get_arg_list(char *ibuf, int ilen, int *ioff, char **args) - { -- u8 arglen; -+ u8 arglen = 0; - int *arglens = NULL; - int *p; - int numargs; --- -2.5.0 - diff --git a/open-lldp-v1.0.1-3-VDP-vdptool-test-cases-Some-test-cases-to-test-the-n.patch b/open-lldp-v1.0.1-3-VDP-vdptool-test-cases-Some-test-cases-to-test-the-n.patch deleted file mode 100644 index 76430d9..0000000 --- a/open-lldp-v1.0.1-3-VDP-vdptool-test-cases-Some-test-cases-to-test-the-n.patch +++ /dev/null @@ -1,2722 +0,0 @@ -From 61965537b574e8dcd1d7b61ef543ab11fcbbbe6b Mon Sep 17 00:00:00 2001 -From: Thomas Richter -Date: Wed, 21 Jan 2015 03:36:48 +0000 -Subject: [PATCH] VDP: vdptool test cases Some test cases to test the new - vdptool. - -Signed-off-by: Thomas Richter -Signed-off-by: John Fastabend ---- - test/qbg22/vdp22/300-lldpad.conf | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/300.nlc | 54 +++++++++++++++++++++++ - test/qbg22/vdp22/300.vdp | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/301-lldpad.conf | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/301.nlc | 54 +++++++++++++++++++++++ - test/qbg22/vdp22/301.vdp | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/302-lldpad.conf | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/302.nlc | 54 +++++++++++++++++++++++ - test/qbg22/vdp22/302.vdp | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/303-lldpad.conf | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/303.nlc | 54 +++++++++++++++++++++++ - test/qbg22/vdp22/303.vdp | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/304-lldpad.conf | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/304.nlc | 54 +++++++++++++++++++++++ - test/qbg22/vdp22/304.vdp | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/305-lldpad.conf | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/305.nlc | 54 +++++++++++++++++++++++ - test/qbg22/vdp22/305.vdp | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/306-lldpad.conf | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/306.nlc | 54 +++++++++++++++++++++++ - test/qbg22/vdp22/306.vdp | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/307-lldpad.conf | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/307.nlc | 54 +++++++++++++++++++++++ - test/qbg22/vdp22/307.vdp | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/308-lldpad.conf | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/308.nlc | 54 +++++++++++++++++++++++ - test/qbg22/vdp22/308.vdp | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/309-lldpad.conf | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/309.nlc | 54 +++++++++++++++++++++++ - test/qbg22/vdp22/309.vdp | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/310-lldpad.conf | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/310.nlc | 54 +++++++++++++++++++++++ - test/qbg22/vdp22/310.vdp | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/320-lldpad.conf | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/320.nlc | 65 +++++++++++++++++++++++++++ - test/qbg22/vdp22/320.vdp | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/321-lldpad.conf | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/321.nlc | 78 +++++++++++++++++++++++++++++++++ - test/qbg22/vdp22/321.vdp | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/322-lldpad.conf | 55 +++++++++++++++++++++++ - test/qbg22/vdp22/322.nlc | 95 ++++++++++++++++++++++++++++++++++++++++ - test/qbg22/vdp22/322.vdp | 55 +++++++++++++++++++++++ - 42 files changed, 2372 insertions(+) - create mode 100644 test/qbg22/vdp22/300-lldpad.conf - create mode 100755 test/qbg22/vdp22/300.nlc - create mode 100644 test/qbg22/vdp22/300.vdp - create mode 100644 test/qbg22/vdp22/301-lldpad.conf - create mode 100755 test/qbg22/vdp22/301.nlc - create mode 100644 test/qbg22/vdp22/301.vdp - create mode 100644 test/qbg22/vdp22/302-lldpad.conf - create mode 100755 test/qbg22/vdp22/302.nlc - create mode 100644 test/qbg22/vdp22/302.vdp - create mode 100644 test/qbg22/vdp22/303-lldpad.conf - create mode 100755 test/qbg22/vdp22/303.nlc - create mode 100644 test/qbg22/vdp22/303.vdp - create mode 100644 test/qbg22/vdp22/304-lldpad.conf - create mode 100755 test/qbg22/vdp22/304.nlc - create mode 100644 test/qbg22/vdp22/304.vdp - create mode 100644 test/qbg22/vdp22/305-lldpad.conf - create mode 100755 test/qbg22/vdp22/305.nlc - create mode 100644 test/qbg22/vdp22/305.vdp - create mode 100644 test/qbg22/vdp22/306-lldpad.conf - create mode 100755 test/qbg22/vdp22/306.nlc - create mode 100644 test/qbg22/vdp22/306.vdp - create mode 100644 test/qbg22/vdp22/307-lldpad.conf - create mode 100755 test/qbg22/vdp22/307.nlc - create mode 100644 test/qbg22/vdp22/307.vdp - create mode 100644 test/qbg22/vdp22/308-lldpad.conf - create mode 100755 test/qbg22/vdp22/308.nlc - create mode 100644 test/qbg22/vdp22/308.vdp - create mode 100644 test/qbg22/vdp22/309-lldpad.conf - create mode 100755 test/qbg22/vdp22/309.nlc - create mode 100644 test/qbg22/vdp22/309.vdp - create mode 100644 test/qbg22/vdp22/310-lldpad.conf - create mode 100755 test/qbg22/vdp22/310.nlc - create mode 100644 test/qbg22/vdp22/310.vdp - create mode 100644 test/qbg22/vdp22/320-lldpad.conf - create mode 100755 test/qbg22/vdp22/320.nlc - create mode 100644 test/qbg22/vdp22/320.vdp - create mode 100644 test/qbg22/vdp22/321-lldpad.conf - create mode 100755 test/qbg22/vdp22/321.nlc - create mode 100644 test/qbg22/vdp22/321.vdp - create mode 100644 test/qbg22/vdp22/322-lldpad.conf - create mode 100755 test/qbg22/vdp22/322.nlc - create mode 100644 test/qbg22/vdp22/322.vdp - -diff --git a/test/qbg22/vdp22/300-lldpad.conf b/test/qbg22/vdp22/300-lldpad.conf -new file mode 100644 -index 0000000..6027a6d ---- /dev/null -+++ b/test/qbg22/vdp22/300-lldpad.conf -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad station mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth0 : -+ { -+ tlvid00000001 : -+ { -+ info = "04CA802A1EE5D1"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03CA802A1EE5D1"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "station"; -+ evbrrcap = false; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/300.nlc b/test/qbg22/vdp22/300.nlc -new file mode 100755 -index 0000000..ea801b2 ---- /dev/null -+++ b/test/qbg22/vdp22/300.nlc -@@ -0,0 +1,54 @@ -+#!/bin/bash -+# -+# Test case for LLDPAD VDP testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2013 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# -+# Thomas Richter, IBM Research & Development, Boeblingen, Germany, 20-Apr-2013 -+# -+# Execute a simple assoc with wrong user input using vdptool. -+# Wrong association command -+# -+ -+sleep 30 # Must: Wait some time for lldpad to start up and initialize -+outfile=$(basename $0) -+dirfile=$(dirname $0) -+cd $dirfile -+ -+vsi_ok="Invalid parameters" -+reply=$(../../../vdptool -i veth0 -T -V assoc -c vsi=Xassoc,hello,1,2,001122334-455667788-99aabbccddee,none,22222-a:b:c:0:0:0) -+rc=$? -+if [ "$rc" -eq 1 ] -+then -+ if [ "$reply" != "$vsi_ok" ] -+ then -+ echo "vdptool reply mismatch" -+ echo "expected reply:$vsi_ok" -+ echo "returned reply:$reply" -+ else -+ let rc=0 -+ fi -+else -+ echo "vdptool unexpected success" -+ let rc=1 -+fi -+ -+sleep 5 -+exit $rc -diff --git a/test/qbg22/vdp22/300.vdp b/test/qbg22/vdp22/300.vdp -new file mode 100644 -index 0000000..cb9bacd ---- /dev/null -+++ b/test/qbg22/vdp22/300.vdp -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad bridge mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth2 : -+ { -+ tlvid00000001 : -+ { -+ info = "041E64AF9A93DF"; -+ }; -+ tlvid00000002 : -+ { -+ info = "031E64AF9A93DF"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "bridge"; -+ evbrrcap = true; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/301-lldpad.conf b/test/qbg22/vdp22/301-lldpad.conf -new file mode 100644 -index 0000000..11ed7a2 ---- /dev/null -+++ b/test/qbg22/vdp22/301-lldpad.conf -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad station mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth0 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "station"; -+ evbrrcap = false; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/301.nlc b/test/qbg22/vdp22/301.nlc -new file mode 100755 -index 0000000..90409d7 ---- /dev/null -+++ b/test/qbg22/vdp22/301.nlc -@@ -0,0 +1,54 @@ -+#!/bin/bash -+# -+# Test case for LLDPAD VDP testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# -+# Thomas Richter, IBM Research & Development, Boeblingen, Germany, 20-Apr-2013 -+# -+# Execute a simple assoc with wrong user input using vdptool. -+# Wrong manager identifier -+# -+ -+sleep 30 # Must: Wait some time for lldpad to start up and initialize -+outfile=$(basename $0) -+dirfile=$(dirname $0) -+cd $dirfile -+ -+vsi_ok="Invalid parameters" -+reply=$(../../../vdptool -i veth0 -T -V assoc -c vsi=assoc,\\hello,1,2,001122334-455667788-99aabbccddee,none,22222-a:b:c:0:0:0) -+rc=$? -+if [ "$rc" -eq 1 ] -+then -+ if [ "$reply" != "$vsi_ok" ] -+ then -+ echo "vdptool reply mismatch" -+ echo "expected reply:$vsi_ok" -+ echo "returned reply:$reply" -+ else -+ let rc=0 -+ fi -+else -+ echo "vdptool unexpected success" -+ let rc=1 -+fi -+ -+sleep 5 -+exit $rc -diff --git a/test/qbg22/vdp22/301.vdp b/test/qbg22/vdp22/301.vdp -new file mode 100644 -index 0000000..0c7e96a ---- /dev/null -+++ b/test/qbg22/vdp22/301.vdp -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad bridge mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth2 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "bridge"; -+ evbrrcap = true; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/302-lldpad.conf b/test/qbg22/vdp22/302-lldpad.conf -new file mode 100644 -index 0000000..11ed7a2 ---- /dev/null -+++ b/test/qbg22/vdp22/302-lldpad.conf -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad station mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth0 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "station"; -+ evbrrcap = false; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/302.nlc b/test/qbg22/vdp22/302.nlc -new file mode 100755 -index 0000000..1f0dfed ---- /dev/null -+++ b/test/qbg22/vdp22/302.nlc -@@ -0,0 +1,54 @@ -+#!/bin/bash -+# -+# Test case for LLDPAD VDP testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# -+# Thomas Richter, IBM Research & Development, Boeblingen, Germany, 20-Apr-2013 -+# -+# Execute a simple assoc with wrong user input using vdptool. -+# Wrong type identifier -+# -+ -+sleep 30 # Must: Wait some time for lldpad to start up and initialize -+outfile=$(basename $0) -+dirfile=$(dirname $0) -+cd $dirfile -+ -+vsi_ok="Invalid parameters" -+reply=$(../../../vdptool -i veth0 -T -V assoc -c vsi=assoc,hello,1000000999,2,001122334-455667788-99aabbccddee,none,22222-a:b:c:0:0:0) -+rc=$? -+if [ "$rc" -eq 1 ] -+then -+ if [ "$reply" != "$vsi_ok" ] -+ then -+ echo "vdptool reply mismatch" -+ echo "expected reply:$vsi_ok" -+ echo "returned reply:$reply" -+ else -+ let rc=0 -+ fi -+else -+ echo "vdptool unexpected success" -+ let rc=1 -+fi -+ -+sleep 5 -+exit $rc -diff --git a/test/qbg22/vdp22/302.vdp b/test/qbg22/vdp22/302.vdp -new file mode 100644 -index 0000000..0c7e96a ---- /dev/null -+++ b/test/qbg22/vdp22/302.vdp -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad bridge mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth2 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "bridge"; -+ evbrrcap = true; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/303-lldpad.conf b/test/qbg22/vdp22/303-lldpad.conf -new file mode 100644 -index 0000000..11ed7a2 ---- /dev/null -+++ b/test/qbg22/vdp22/303-lldpad.conf -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad station mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth0 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "station"; -+ evbrrcap = false; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/303.nlc b/test/qbg22/vdp22/303.nlc -new file mode 100755 -index 0000000..b40e6c6 ---- /dev/null -+++ b/test/qbg22/vdp22/303.nlc -@@ -0,0 +1,54 @@ -+#!/bin/bash -+# -+# Test case for LLDPAD VDP testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# -+# Thomas Richter, IBM Research & Development, Boeblingen, Germany, 20-Apr-2013 -+# -+# Execute a simple assoc with wrong user input using vdptool. -+# Wrong typeidversion -+# -+ -+sleep 30 # Must: Wait some time for lldpad to start up and initialize -+outfile=$(basename $0) -+dirfile=$(dirname $0) -+cd $dirfile -+ -+vsi_ok="Invalid parameters" -+reply=$(../../../vdptool -i veth0 -T -V assoc -c vsi=assoc,hello,1,257,001122334-455667788-99aabbccddee,none,22222-a:b:c:0:0:0) -+rc=$? -+if [ "$rc" -eq 1 ] -+then -+ if [ "$reply" != "$vsi_ok" ] -+ then -+ echo "vdptool reply mismatch" -+ echo "expected reply:$vsi_ok" -+ echo "returned reply:$reply" -+ else -+ let rc=0 -+ fi -+else -+ echo "vdptool unexpected success" -+ let rc=1 -+fi -+ -+sleep 5 -+exit $rc -diff --git a/test/qbg22/vdp22/303.vdp b/test/qbg22/vdp22/303.vdp -new file mode 100644 -index 0000000..0c7e96a ---- /dev/null -+++ b/test/qbg22/vdp22/303.vdp -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad bridge mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth2 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "bridge"; -+ evbrrcap = true; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/304-lldpad.conf b/test/qbg22/vdp22/304-lldpad.conf -new file mode 100644 -index 0000000..11ed7a2 ---- /dev/null -+++ b/test/qbg22/vdp22/304-lldpad.conf -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad station mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth0 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "station"; -+ evbrrcap = false; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/304.nlc b/test/qbg22/vdp22/304.nlc -new file mode 100755 -index 0000000..3bae87e ---- /dev/null -+++ b/test/qbg22/vdp22/304.nlc -@@ -0,0 +1,54 @@ -+#!/bin/bash -+# -+# Test case for LLDPAD VDP testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# -+# Thomas Richter, IBM Research & Development, Boeblingen, Germany, 20-Apr-2013 -+# -+# Execute a simple assoc with wrong user input using vdptool. -+# Wrong hints -+# -+ -+sleep 30 # Must: Wait some time for lldpad to start up and initialize -+outfile=$(basename $0) -+dirfile=$(dirname $0) -+cd $dirfile -+ -+vsi_ok="Invalid parameters" -+reply=$(../../../vdptool -i veth0 -T -V assoc -c vsi=assoc,hello,1,255,001122334-455667788-99aabbccddee,nix,22222-a:b:c:0:0:0) -+rc=$? -+if [ "$rc" -eq 1 ] -+then -+ if [ "$reply" != "$vsi_ok" ] -+ then -+ echo "vdptool reply mismatch" -+ echo "expected reply:$vsi_ok" -+ echo "returned reply:$reply" -+ else -+ let rc=0 -+ fi -+else -+ echo "vdptool unexpected success" -+ let rc=1 -+fi -+ -+sleep 5 -+exit $rc -diff --git a/test/qbg22/vdp22/304.vdp b/test/qbg22/vdp22/304.vdp -new file mode 100644 -index 0000000..0c7e96a ---- /dev/null -+++ b/test/qbg22/vdp22/304.vdp -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad bridge mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth2 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "bridge"; -+ evbrrcap = true; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/305-lldpad.conf b/test/qbg22/vdp22/305-lldpad.conf -new file mode 100644 -index 0000000..11ed7a2 ---- /dev/null -+++ b/test/qbg22/vdp22/305-lldpad.conf -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad station mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth0 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "station"; -+ evbrrcap = false; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/305.nlc b/test/qbg22/vdp22/305.nlc -new file mode 100755 -index 0000000..ae951e1 ---- /dev/null -+++ b/test/qbg22/vdp22/305.nlc -@@ -0,0 +1,54 @@ -+#!/bin/bash -+# -+# Test case for LLDPAD VDP testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# -+# Thomas Richter, IBM Research & Development, Boeblingen, Germany, 20-Apr-2013 -+# -+# Execute a simple assoc with wrong user input using vdptool. -+# FID missing -+# -+ -+sleep 30 # Must: Wait some time for lldpad to start up and initialize -+outfile=$(basename $0) -+dirfile=$(dirname $0) -+cd $dirfile -+ -+vsi_ok="Unknown status" -+reply=$(../../../vdptool -i veth0 -T -V deassoc -c vsi=deassoc,hello,1,254,001122334-455667788-99aabbccddee,-) -+rc=$? -+if [ "$rc" -eq 1 ] -+then -+ if [ "$reply" != "$vsi_ok" ] -+ then -+ echo "vdptool reply mismatch" -+ echo "expected reply:$vsi_ok" -+ echo "returned reply:$reply" -+ else -+ let rc=0 -+ fi -+else -+ echo "vdptool unexpected success" -+ let rc=1 -+fi -+ -+sleep 5 -+exit $rc -diff --git a/test/qbg22/vdp22/305.vdp b/test/qbg22/vdp22/305.vdp -new file mode 100644 -index 0000000..0c7e96a ---- /dev/null -+++ b/test/qbg22/vdp22/305.vdp -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad bridge mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth2 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "bridge"; -+ evbrrcap = true; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/306-lldpad.conf b/test/qbg22/vdp22/306-lldpad.conf -new file mode 100644 -index 0000000..11ed7a2 ---- /dev/null -+++ b/test/qbg22/vdp22/306-lldpad.conf -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad station mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth0 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "station"; -+ evbrrcap = false; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/306.nlc b/test/qbg22/vdp22/306.nlc -new file mode 100755 -index 0000000..817a35b ---- /dev/null -+++ b/test/qbg22/vdp22/306.nlc -@@ -0,0 +1,54 @@ -+#!/bin/bash -+# -+# Test case for LLDPAD VDP testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# -+# Thomas Richter, IBM Research & Development, Boeblingen, Germany, 20-Apr-2013 -+# -+# Execute a simple assoc with wrong user input using vdptool. -+# FID bad vlan -+# -+ -+sleep 30 # Must: Wait some time for lldpad to start up and initialize -+outfile=$(basename $0) -+dirfile=$(dirname $0) -+cd $dirfile -+ -+vsi_ok="Invalid parameters" -+reply=$(../../../vdptool -i veth0 -T -V deassoc -c vsi=deassoc,hello,1,253,001122334-455667788-99aabbccddee,-,65536) -+rc=$? -+if [ "$rc" -eq 1 ] -+then -+ if [ "$reply" != "$vsi_ok" ] -+ then -+ echo "vdptool reply mismatch" -+ echo "expected reply:$vsi_ok" -+ echo "returned reply:$reply" -+ else -+ let rc=0 -+ fi -+else -+ echo "vdptool unexpected success" -+ let rc=1 -+fi -+ -+sleep 5 -+exit $rc -diff --git a/test/qbg22/vdp22/306.vdp b/test/qbg22/vdp22/306.vdp -new file mode 100644 -index 0000000..0c7e96a ---- /dev/null -+++ b/test/qbg22/vdp22/306.vdp -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad bridge mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth2 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "bridge"; -+ evbrrcap = true; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/307-lldpad.conf b/test/qbg22/vdp22/307-lldpad.conf -new file mode 100644 -index 0000000..11ed7a2 ---- /dev/null -+++ b/test/qbg22/vdp22/307-lldpad.conf -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad station mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth0 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "station"; -+ evbrrcap = false; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/307.nlc b/test/qbg22/vdp22/307.nlc -new file mode 100755 -index 0000000..d252568 ---- /dev/null -+++ b/test/qbg22/vdp22/307.nlc -@@ -0,0 +1,54 @@ -+#!/bin/bash -+# -+# Test case for LLDPAD VDP testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# -+# Thomas Richter, IBM Research & Development, Boeblingen, Germany, 20-Apr-2013 -+# -+# Execute a simple assoc with wrong user input using vdptool. -+# FID bad mac -+# -+ -+sleep 30 # Must: Wait some time for lldpad to start up and initialize -+outfile=$(basename $0) -+dirfile=$(dirname $0) -+cd $dirfile -+ -+vsi_ok="Invalid parameters" -+reply=$(../../../vdptool -i veth0 -T -V deassoc -c vsi=deassoc,hello,1,253,001122334-455667788-99aabbccddee,-,3-00:11:cc:ddd:e:f) -+rc=$? -+if [ "$rc" -eq 1 ] -+then -+ if [ "$reply" != "$vsi_ok" ] -+ then -+ echo "vdptool reply mismatch" -+ echo "expected reply:$vsi_ok" -+ echo "returned reply:$reply" -+ else -+ let rc=0 -+ fi -+else -+ echo "vdptool unexpected success" -+ let rc=1 -+fi -+ -+sleep 5 -+exit $rc -diff --git a/test/qbg22/vdp22/307.vdp b/test/qbg22/vdp22/307.vdp -new file mode 100644 -index 0000000..0c7e96a ---- /dev/null -+++ b/test/qbg22/vdp22/307.vdp -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad bridge mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth2 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "bridge"; -+ evbrrcap = true; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/308-lldpad.conf b/test/qbg22/vdp22/308-lldpad.conf -new file mode 100644 -index 0000000..11ed7a2 ---- /dev/null -+++ b/test/qbg22/vdp22/308-lldpad.conf -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad station mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth0 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "station"; -+ evbrrcap = false; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/308.nlc b/test/qbg22/vdp22/308.nlc -new file mode 100755 -index 0000000..9ab72bc ---- /dev/null -+++ b/test/qbg22/vdp22/308.nlc -@@ -0,0 +1,54 @@ -+#!/bin/bash -+# -+# Test case for LLDPAD VDP testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# -+# Thomas Richter, IBM Research & Development, Boeblingen, Germany, 20-Apr-2013 -+# -+# Execute a simple assoc with wrong user input using vdptool. -+# FID format vlan-mac and mac -+# -+ -+sleep 30 # Must: Wait some time for lldpad to start up and initialize -+outfile=$(basename $0) -+dirfile=$(dirname $0) -+cd $dirfile -+ -+vsi_ok="Invalid parameters" -+reply=$(../../../vdptool -i veth0 -T -V preassoc -c vsi=preassoc,hello,1,253,001122334-455667788-99aabbccddee,-,3-00:11:cc:d:e:f,4444) -+rc=$? -+if [ "$rc" -eq 1 ] -+then -+ if [ "$reply" != "$vsi_ok" ] -+ then -+ echo "vdptool reply mismatch" -+ echo "expected reply:$vsi_ok" -+ echo "returned reply:$reply" -+ else -+ let rc=0 -+ fi -+else -+ echo "vdptool unexpected success" -+ let rc=1 -+fi -+ -+sleep 5 -+exit $rc -diff --git a/test/qbg22/vdp22/308.vdp b/test/qbg22/vdp22/308.vdp -new file mode 100644 -index 0000000..0c7e96a ---- /dev/null -+++ b/test/qbg22/vdp22/308.vdp -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad bridge mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth2 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "bridge"; -+ evbrrcap = true; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/309-lldpad.conf b/test/qbg22/vdp22/309-lldpad.conf -new file mode 100644 -index 0000000..11ed7a2 ---- /dev/null -+++ b/test/qbg22/vdp22/309-lldpad.conf -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad station mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth0 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "station"; -+ evbrrcap = false; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/309.nlc b/test/qbg22/vdp22/309.nlc -new file mode 100755 -index 0000000..8de0f86 ---- /dev/null -+++ b/test/qbg22/vdp22/309.nlc -@@ -0,0 +1,54 @@ -+#!/bin/bash -+# -+# Test case for LLDPAD VDP testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# -+# Thomas Richter, IBM Research & Development, Boeblingen, Germany, 20-Apr-2013 -+# -+# Execute a simple assoc with wrong user input using vdptool. -+# FID bad group -+# -+ -+sleep 30 # Must: Wait some time for lldpad to start up and initialize -+outfile=$(basename $0) -+dirfile=$(dirname $0) -+cd $dirfile -+ -+vsi_ok="Invalid parameters" -+reply=$(../../../vdptool -i veth0 -T -V preassoc -c vsi=preassoc,hello,1,253,001122334-455667788-99aabbccddee,-,333-00:11:cc:d:e:f-44a44) -+rc=$? -+if [ "$rc" -eq 1 ] -+then -+ if [ "$reply" != "$vsi_ok" ] -+ then -+ echo "vdptool reply mismatch" -+ echo "expected reply:$vsi_ok" -+ echo "returned reply:$reply" -+ else -+ let rc=0 -+ fi -+else -+ echo "vdptool unexpected success" -+ let rc=1 -+fi -+ -+sleep 5 -+exit $rc -diff --git a/test/qbg22/vdp22/309.vdp b/test/qbg22/vdp22/309.vdp -new file mode 100644 -index 0000000..0c7e96a ---- /dev/null -+++ b/test/qbg22/vdp22/309.vdp -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad bridge mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth2 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "bridge"; -+ evbrrcap = true; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/310-lldpad.conf b/test/qbg22/vdp22/310-lldpad.conf -new file mode 100644 -index 0000000..11ed7a2 ---- /dev/null -+++ b/test/qbg22/vdp22/310-lldpad.conf -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad station mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth0 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "station"; -+ evbrrcap = false; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/310.nlc b/test/qbg22/vdp22/310.nlc -new file mode 100755 -index 0000000..ae90509 ---- /dev/null -+++ b/test/qbg22/vdp22/310.nlc -@@ -0,0 +1,54 @@ -+#!/bin/bash -+# -+# Test case for LLDPAD VDP testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# -+# Thomas Richter, IBM Research & Development, Boeblingen, Germany, 20-Apr-2013 -+# -+# Execute a simple assoc with wrong user input using vdptool. -+# FID same mac several times -+# -+ -+sleep 30 # Must: Wait some time for lldpad to start up and initialize -+outfile=$(basename $0) -+dirfile=$(dirname $0) -+cd $dirfile -+ -+vsi_ok="Invalid parameters" -+reply=$(../../../vdptool -i veth0 -T -V preassoc -c vsi=preassoc,hello,1,253,001122334-455667788-99aabbccddee,-,333-00:11:cc:d:e:f-44444,222-00:11:cc:d:e:f-44444) -+rc=$? -+if [ "$rc" -eq 1 ] -+then -+ if [ "$reply" != "$vsi_ok" ] -+ then -+ echo "vdptool reply mismatch" -+ echo "expected reply:$vsi_ok" -+ echo "returned reply:$reply" -+ else -+ let rc=0 -+ fi -+else -+ echo "vdptool unexpected success" -+ let rc=1 -+fi -+ -+sleep 5 -+exit $rc -diff --git a/test/qbg22/vdp22/310.vdp b/test/qbg22/vdp22/310.vdp -new file mode 100644 -index 0000000..0c7e96a ---- /dev/null -+++ b/test/qbg22/vdp22/310.vdp -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad bridge mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth2 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "bridge"; -+ evbrrcap = true; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/320-lldpad.conf b/test/qbg22/vdp22/320-lldpad.conf -new file mode 100644 -index 0000000..11ed7a2 ---- /dev/null -+++ b/test/qbg22/vdp22/320-lldpad.conf -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad station mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth0 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "station"; -+ evbrrcap = false; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/320.nlc b/test/qbg22/vdp22/320.nlc -new file mode 100755 -index 0000000..2dca2c2 ---- /dev/null -+++ b/test/qbg22/vdp22/320.nlc -@@ -0,0 +1,65 @@ -+#!/bin/bash -+# -+# Test case for LLDPAD VDP testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# -+# Thomas Richter, IBM Research & Development, Boeblingen, Germany, 20-Apr-2013 -+# -+# Execute a simple assoc input using vdptool. Expect success. -+# -+ -+sleep 30 # Must: Wait some time for lldpad to start up and initialize -+outfile=$(basename $0) -+dirfile=$(dirname $0) -+cd $dirfile -+ -+vsi1="assoc,hello,1,2,00112233-4455-6677-8899-aabbccddeeff" -+vsi2="22222-0a:0b:0c:00:00:00" -+vsi_cmd="$vsi1,none,$vsi2" -+vsi_ok="vsi=$vsi1,0,$vsi2;" -+ -+../../../vdptool -i veth0 -T -V assoc -c vsi=$vsi_cmd -+rc=$? -+if [ "$rc" -ne 0 ] -+then -+ echo "vdptool failure (step 1)" -+ exit $rc -+fi -+ -+sleep 30 -+reply="$(../../../vdptool -i veth0 -t -V assoc -c vsi)" -+rc=$? -+if [ "$rc" -ne 0 ] -+then -+ echo "vdptool failure (step 2)" -+ exit $rc -+fi -+ -+if [ "$reply" != "$vsi_ok" ] -+then -+ echo "vdptool reply mismatch" -+ echo "expected reply:$vsi_ok" -+ echo "returned reply:$reply" -+ let rc=1 -+fi -+ -+sleep 5 -+exit $rc -diff --git a/test/qbg22/vdp22/320.vdp b/test/qbg22/vdp22/320.vdp -new file mode 100644 -index 0000000..0c7e96a ---- /dev/null -+++ b/test/qbg22/vdp22/320.vdp -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad bridge mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth2 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "bridge"; -+ evbrrcap = true; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/321-lldpad.conf b/test/qbg22/vdp22/321-lldpad.conf -new file mode 100644 -index 0000000..11ed7a2 ---- /dev/null -+++ b/test/qbg22/vdp22/321-lldpad.conf -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad station mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth0 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "station"; -+ evbrrcap = false; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/321.nlc b/test/qbg22/vdp22/321.nlc -new file mode 100755 -index 0000000..1d5247a ---- /dev/null -+++ b/test/qbg22/vdp22/321.nlc -@@ -0,0 +1,78 @@ -+#!/bin/bash -+# -+# Test case for LLDPAD VDP testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# -+# Thomas Richter, IBM Research & Development, Boeblingen, Germany, 20-Apr-2013 -+# -+# Execute two simple assoc input via vdptool. Expect success. -+# -+ -+sleep 30 # Must: Wait some time for lldpad to start up and initialize -+outfile=$(basename $0) -+dirfile=$(dirname $0) -+cd $dirfile -+ -+vsi1="assoc,hello,1,2,00112233-4455-6677-8899-aabbccddeeff" -+vsi2="22222-0a:0b:0c:00:00:00" -+vsi_cmd="$vsi1,none,$vsi2" -+vsi_ok="$vsi1,0,$vsi2;" -+vsi1b="assoc,world,1,2,00112233-4455-6677-8899-ffeeddccbbaa" -+vsi2b="2-aa:bb:cc:00:00:00" -+vsib_cmd="$vsi1b,none,$vsi2b" -+vsib_ok="$vsi1b,0,$vsi2b;" -+ -+../../../vdptool -i veth0 -T -V assoc -c vsi=$vsi_cmd -+rc=$? -+if [ "$rc" -ne 0 ] -+then -+ echo "vdptool failure (step 1)" -+ exit $rc -+fi -+ -+sleep 30 -+../../../vdptool -i veth0 -T -V assoc -c vsi=$vsib_cmd -+rc=$? -+if [ "$rc" -ne 0 ] -+then -+ echo "vdptool failure (step 2)" -+ exit $rc -+fi -+ -+sleep 30 -+reply="$(../../../vdptool -i veth0 -t -V assoc -c vsi)" -+rc=$? -+if [ "$rc" -ne 0 ] -+then -+ echo "vdptool failure (step 3)" -+ exit $rc -+fi -+ -+if [ "$reply" != "vsi=$vsib_ok$vsi_ok" ] -+then -+ echo "vdptool reply mismatch" -+ echo "expected reply:vsi=$vsib_ok$vsi_ok" -+ echo "returned reply:$reply" -+ let rc=1 -+fi -+ -+sleep 5 -+exit $rc -diff --git a/test/qbg22/vdp22/321.vdp b/test/qbg22/vdp22/321.vdp -new file mode 100644 -index 0000000..0c7e96a ---- /dev/null -+++ b/test/qbg22/vdp22/321.vdp -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad bridge mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth2 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "bridge"; -+ evbrrcap = true; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/322-lldpad.conf b/test/qbg22/vdp22/322-lldpad.conf -new file mode 100644 -index 0000000..11ed7a2 ---- /dev/null -+++ b/test/qbg22/vdp22/322-lldpad.conf -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad station mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth0 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "station"; -+ evbrrcap = false; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; -diff --git a/test/qbg22/vdp22/322.nlc b/test/qbg22/vdp22/322.nlc -new file mode 100755 -index 0000000..5b5840e ---- /dev/null -+++ b/test/qbg22/vdp22/322.nlc -@@ -0,0 +1,95 @@ -+#!/bin/bash -+# -+# Test case for LLDPAD VDP testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# -+# Thomas Richter, IBM Research & Development, Boeblingen, Germany, 20-Apr-2013 -+# -+# Execute assoc/preassoc input via vdptool. Expect success. -+# -+ -+sleep 30 # Must: Wait some time for lldpad to start up and initialize -+outfile=$(basename $0) -+dirfile=$(dirname $0) -+cd $dirfile -+ -+vsi1="assoc,hello,1,2,00112233-4455-6677-8899-aabbccddeeff" -+vsi2="22222-0a:0b:0c:00:00:00" -+vsi_cmd="$vsi1,none,$vsi2" -+vsi_ok="$vsi1,0,$vsi2;" -+vsi1b="preassoc,world,1,2,00112233-4455-6677-8899-ffeeddccbbaa" -+vsi2b="2-aa:bb:cc:00:00:00" -+vsib_cmd="$vsi1b,none,$vsi2b" -+vsib_ok="$vsi1b,0,$vsi2b;" -+ -+../../../vdptool -i veth0 -T -V assoc -c vsi=$vsi_cmd -+rc=$? -+if [ "$rc" -ne 0 ] -+then -+ echo "vdptool failure (step 1)" -+ exit $rc -+fi -+ -+sleep 30 -+../../../vdptool -i veth0 -T -V preassoc -c vsi=$vsib_cmd -+rc=$? -+if [ "$rc" -ne 0 ] -+then -+ echo "vdptool failure (step 2)" -+ exit $rc -+fi -+ -+sleep 30 -+reply="$(../../../vdptool -i veth0 -t -V assoc -c vsi)" -+rc=$? -+if [ "$rc" -ne 0 ] -+then -+ echo "vdptool failure (step 3)" -+ exit $rc -+fi -+ -+if [ "$reply" != "vsi=$vsi_ok" ] -+then -+ echo "vdptool reply mismatch (step 3)" -+ echo "expected reply:vsi=$vsi_ok" -+ echo "returned reply:$reply" -+ exit 6 -+fi -+ -+sleep 5 -+reply="$(../../../vdptool -i veth0 -t -V preassoc -c vsi)" -+rc=$? -+if [ "$rc" -ne 0 ] -+then -+ echo "vdptool failure (step 4)" -+ exit $rc -+fi -+ -+if [ "$reply" != "vsi=$vsib_ok" ] -+then -+ echo "vdptool reply mismatch (step 4)" -+ echo "expected reply:vsi=$vsib_ok" -+ echo "returned reply:$reply" -+ let rc=1 -+fi -+ -+sleep 5 -+exit $rc -diff --git a/test/qbg22/vdp22/322.vdp b/test/qbg22/vdp22/322.vdp -new file mode 100644 -index 0000000..0c7e96a ---- /dev/null -+++ b/test/qbg22/vdp22/322.vdp -@@ -0,0 +1,55 @@ -+# -+# Test case for LLDPAD testing according to IEEE 802.1Qbg ratified standard -+# -+# Copyright (c) International Business Machines Corp., 2014 -+# -+# Author(s): Thomas Richter -+# -+# This program is free software; you can redistribute it and/or modify it -+# under the terms and conditions of the GNU General Public License, -+# version 2, as published by the Free Software Foundation. -+# -+# This program is distributed in the hope it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+# more details. -+# -+# You should have received a copy of the GNU General Public License along with -+# this program; if not, write to the Free Software Foundation, Inc., -+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+# -+ -+# Configuration file for lldpad bridge mode setup. -+ -+dcbx : -+{ -+ version = "1.0"; -+ dcbx_version = 2; -+}; -+nearest_customer_bridge : -+{ -+ veth2 : -+ { -+ tlvid00000001 : -+ { -+ info = "04C68829509676"; -+ }; -+ tlvid00000002 : -+ { -+ info = "03C68829509676"; -+ }; -+ adminStatus = 3; -+ tlvid0080c20d : -+ { -+ enableTx = true; -+ evbmode = "bridge"; -+ evbrrcap = true; -+ evbrrreq = true; -+ evbgpid = false; -+ ecpretries = 3; -+ ecprte = 14; -+ vdprwd = 20; -+ vdprka = 20; -+ }; -+ }; -+}; --- -2.1.0 - diff --git a/open-lldp-v1.0.1-4-VDP-Changes-to-make-the-interface-to-VDP22-in-lldpad.patch b/open-lldp-v1.0.1-4-VDP-Changes-to-make-the-interface-to-VDP22-in-lldpad.patch deleted file mode 100644 index 341acd8..0000000 --- a/open-lldp-v1.0.1-4-VDP-Changes-to-make-the-interface-to-VDP22-in-lldpad.patch +++ /dev/null @@ -1,593 +0,0 @@ -From e3f6d0eab95ef6b7336aaea2f44ecb79ead4216d Mon Sep 17 00:00:00 2001 -From: padkrish -Date: Wed, 21 Jan 2015 03:37:09 +0000 -Subject: [PATCH] VDP: Changes to make the interface to VDP22 (in lldpad) as - TLV - -Changes to make the interface to VDP22 (in lldpad) as len, key, len, -value, which is in sync with other modules of lldpad. - -Currently, the VSI parameters of VDP22 to LLDPAD are comma separated. -This patch has changes to have VSI Parameters being given to VDP22 as -Keyword_len followed by Keyword followed by value_len followed by -value. vdptool is also modified to reflect the same. This is -synchronous with other interface of lldpad like lldptool. - -As an example, if vdptool is invoked as: - -"vdptool -i eth2 -T -S -V assoc -c mode=assoc -c mgrid2=0 \ - -c typeid=0 -c typeidver=0 -c uuid=00000000-3333-2222-888a-aabbccddee72 \ - -c hints=none -c filter=0-00:00:00:11:22:72-90001", - -the input to lldpad will be: - -"M000080c4C3020000011c04eth2020000000304mode0005assoc06mgrid20001006typeid0001009typeidver0001004uuid002400000000-3333-2222-888a-aabbccddee7205hints0004none06filter00190-00:00:00:11:22:72-90001" - -Another option is also added to vdptool to wait and print the response -from the bridge. - -Signed-off-by: padkrish ---- - include/qbg_vdp22.h | 5 ++ - include/qbg_vdp22_clif.h | 7 +++ - include/qbg_vdp22def.h | 24 ++++++++ - qbg/vdp22_cmds.c | 125 +++++++------------------------------- - qbg/vdp_ascii.c | 152 +++++++++++++++++++++++++++++++---------------- - vdptool.c | 53 +++++++++++------ - 6 files changed, 193 insertions(+), 173 deletions(-) - -diff --git a/include/qbg_vdp22.h b/include/qbg_vdp22.h -index b345602..45f44d5 100644 ---- a/include/qbg_vdp22.h -+++ b/include/qbg_vdp22.h -@@ -163,6 +163,11 @@ struct vdp22_user_data { /* Head for all VDP data */ - LIST_HEAD(vdp22_head, vdp22) head; - }; - -+struct vsi_keyword_handler { -+ char *keyword; -+ enum vsi_mand_arg val; -+}; -+ - struct lldp_module *vdp22_register(void); - void vdp22_unregister(struct lldp_module *); - void vdp22_start(const char *, int); -diff --git a/include/qbg_vdp22_clif.h b/include/qbg_vdp22_clif.h -index 008022a..8346b98 100644 ---- a/include/qbg_vdp22_clif.h -+++ b/include/qbg_vdp22_clif.h -@@ -29,6 +29,10 @@ - - #ifndef QBG_VDP22_CLIF_H - #define QBG_VDP22_CLIF_H -+ -+#define OP_FID_POS 8 /* Second Byte */ -+#define OP_OUI_POS 16 /* Third Byte */ -+ - typedef enum { - cmd_getstats, - cmd_gettlv, -@@ -51,6 +55,9 @@ typedef enum { - op_config = 0x10, - op_delete = 0x20, - op_key = 0x40 -+ /* Second Byte is used for signifying the number of Filter fields and -+ * the third byte is used for signifying the number of OUI fields. -+ */ - } vdp22_op; - - struct lldp_module *vdp22_cli_register(void); -diff --git a/include/qbg_vdp22def.h b/include/qbg_vdp22def.h -index 52f4502..21ba15d 100644 ---- a/include/qbg_vdp22def.h -+++ b/include/qbg_vdp22def.h -@@ -72,4 +72,28 @@ enum vdp22_migration_hints { - VDP22_MIGFROM = 32 /* S-bit migrate from hint */ - }; - -+enum vsi_mand_arg { -+ VSI_MODE_ARG = 0, -+ VSI_MGRID2_ARG, -+ VSI_TYPEID_ARG, -+ VSI_TYPEIDVER_ARG, -+/* VSI_VSIIDFRMT_ARG, TODO */ -+ VSI_VSIID_ARG, -+ VSI_FILTER_ARG, -+ VSI_MAND_NUM_ARG, -+ VSI_HINTS_ARG, -+ VSI_INVALID_ARG -+}; -+ -+#define VSI22_ARG_MODE_STR "mode" -+#define VSI22_ARG_MGRID_STR "mgrid2" -+#define VSI22_ARG_TYPEID_STR "typeid" -+#define VSI22_ARG_TYPEIDVER_STR "typeidver" -+#define VSI22_ARG_VSIIDFRMT_STR "vsiidfrmt" -+/*#define VSI22_ARG_VSIID_STR "vsiid" TODO*/ -+#define VSI22_ARG_VSIID_STR "uuid" -+#define VSI22_ARG_HINTS_STR "hints" -+#define VSI22_ARG_FILTER_STR "filter" -+#define VSI22_ARG_OUI_STR "oui" -+ - #endif -diff --git a/qbg/vdp22_cmds.c b/qbg/vdp22_cmds.c -index f055441..dde4669 100644 ---- a/qbg/vdp22_cmds.c -+++ b/qbg/vdp22_cmds.c -@@ -104,37 +104,6 @@ static int handle_get_arg(struct cmd *cmd, char *arg, char *argvalue, - return status; - } - --static int handle_get(struct cmd *cmd, UNUSED char *arg, char *argvalue, -- char *obuf, int obuf_len) --{ -- struct arg_handlers *ah; -- int rval; -- char *nbuf; -- int nbuf_len; -- -- memset(obuf, 0, obuf_len); -- nbuf = obuf + 12; -- nbuf_len = obuf_len - 12; -- -- ah = get_my_arghndl(cmd->module_id); -- if (!ah) -- return cmd_not_applicable; -- for (; ah->arg; ++ah) { -- if (strcmp(ah->arg, ARG_VDP22_VSI)) -- continue; -- if (ah->handle_get && (ah->arg_class == TLV_ARG)) { -- rval = ah->handle_get(cmd, ah->arg, argvalue, -- nbuf, nbuf_len); -- if (rval != cmd_success && rval != cmd_not_applicable) -- return rval; -- -- nbuf_len -= strlen(nbuf); -- nbuf = nbuf + strlen(nbuf); -- } -- } -- return cmd_success; --} -- - static int handle_test_arg(struct cmd *cmd, char *arg, char *argvalue, - char *obuf, int obuf_len) - { -@@ -223,17 +192,13 @@ static int handle_set_arg(struct cmd *cmd, char *arg, char *argvalue, - */ - int vdp22_clif_cmd(UNUSED void *data, UNUSED struct sockaddr_un *from, - UNUSED socklen_t fromlen, -- char *ibuf, int ilen, char *rbuf, int rlen) -+ char *ibuf, UNUSED int ilen, char *rbuf, int rlen) - { - struct cmd cmd; - u8 len, version; - int ioff, roff; - int rstatus = cmd_invalid; -- char **args; -- char **argvals; - bool test_failed = false; -- int numargs = 0; -- int i, offset; - - memset(&cmd, 0, sizeof(cmd)); - cmd.module_id = LLDP_MOD_VDP22; -@@ -275,32 +240,6 @@ int vdp22_clif_cmd(UNUSED void *data, UNUSED struct sockaddr_un *from, - if (!(cmd.ops & op_config)) - return cmd_invalid; - -- /* Count args and argvalues */ -- offset = ioff; -- for (numargs = 0; (ilen - offset) > 2; numargs++) { -- offset += 2; -- if (ilen - offset > 0) { -- offset++; -- if (ilen - offset > 4) -- offset += 4; -- } -- } -- -- args = calloc(numargs, sizeof(char *)); -- if (!args) -- return cmd_failed; -- -- argvals = calloc(numargs, sizeof(char *)); -- if (!argvals) { -- free(args); -- return cmd_failed; -- } -- -- if ((cmd.ops & op_arg) && (cmd.ops & op_argval)) -- numargs = get_arg_val_list(ibuf, ilen, &ioff, args, argvals); -- else if (cmd.ops & op_arg) -- numargs = get_arg_list(ibuf, ilen, &ioff, args); -- - snprintf(rbuf, rlen, "%c%1x%02x%08x%02x%s", - CMD_REQUEST, CLIF_MSG_VERSION, - cmd.cmd, cmd.ops, -@@ -309,42 +248,29 @@ int vdp22_clif_cmd(UNUSED void *data, UNUSED struct sockaddr_un *from, - - /* Confirm port is a valid LLDP port */ - if (!get_ifidx(cmd.ifname) || !is_valid_lldp_device(cmd.ifname)) { -- free(argvals); -- free(args); - return cmd_device_not_found; - } - - snprintf(rbuf + roff, rlen - roff, "%08x", cmd.tlvid); - roff += 8; - if (cmd.cmd == cmd_gettlv) { -- if (!numargs) -- rstatus = handle_get(&cmd, NULL, NULL, -- rbuf + strlen(rbuf), -- rlen - strlen(rbuf)); -- else -- for (i = 0; i < numargs; i++) -- rstatus = handle_get_arg(&cmd, args[i], NULL, -- rbuf + strlen(rbuf), -- rlen - strlen(rbuf)); -+ rstatus = handle_get_arg(&cmd, ARG_VDP22_VSI, -+ NULL, -+ rbuf + strlen(rbuf), -+ rlen - strlen(rbuf)); - } else { -- for (i = 0; i < numargs; i++) { -- rstatus = handle_test_arg(&cmd, args[i], argvals[i], -- rbuf + strlen(rbuf), -- rlen - strlen(rbuf)); -- if (rstatus != cmd_not_applicable && -- rstatus != cmd_success) -- test_failed = true; -- } -+ rstatus = handle_test_arg(&cmd, ARG_VDP22_VSI, -+ ibuf + ioff, -+ rbuf + strlen(rbuf), -+ rlen - strlen(rbuf)); -+ if (rstatus != cmd_not_applicable && rstatus != cmd_success) -+ test_failed = true; - if (!test_failed) -- for (i = 0; i < numargs; i++) -- rstatus = handle_set_arg(&cmd, args[i], -- argvals[i], -- rbuf + strlen(rbuf), -- rlen - strlen(rbuf)); -+ rstatus = handle_set_arg(&cmd, -+ ARG_VDP22_VSI, ibuf + ioff, -+ rbuf + strlen(rbuf), -+ rlen - strlen(rbuf)); - } -- -- free(argvals); -- free(args); - return rstatus; - } - -@@ -436,27 +362,16 @@ out: - return good_cmd; - } - --/* -- * Count the number of fid data fields in the argument value. -- */ --#define VDP22_FID_IDX 6 /* Min index of fid data */ --static int count_fid(char *argvalue) --{ -- char *p = argvalue; -- int i; -- -- for (i = 0; (p = strchr(p, ',')); ++i, ++p) -- ; -- return i + 1 - VDP22_FID_IDX; --} -- - static int set_arg_vsi2(struct cmd *cmd, char *argvalue, bool test) - { -- int no = count_fid(argvalue); -+ int no = (cmd->ops >> OP_FID_POS) & 0xff; - - if (no <= 0) - return -EINVAL; -- return set_arg_vsi3(cmd, argvalue, test, no); -+ if ((cmd->ops & op_arg) && (cmd->ops & op_argval)) -+ return set_arg_vsi3(cmd, argvalue, test, no); -+ else /* Not supported for now */ -+ return cmd_failed; - } - - static int set_arg_vsi(struct cmd *cmd, UNUSED char *arg, char *argvalue, -diff --git a/qbg/vdp_ascii.c b/qbg/vdp_ascii.c -index 0ace562..09e53c6 100644 ---- a/qbg/vdp_ascii.c -+++ b/qbg/vdp_ascii.c -@@ -43,6 +43,17 @@ - #include "qbg_vdp22.h" - #include "qbg_vdpnl.h" - #include "qbg_utils.h" -+#include "lldp_util.h" -+ -+struct vsi_keyword_handler vsi_key_handle[] = { -+ {VSI22_ARG_MODE_STR, VSI_MODE_ARG}, -+ {VSI22_ARG_MGRID_STR, VSI_MGRID2_ARG}, -+ {VSI22_ARG_TYPEID_STR, VSI_TYPEID_ARG}, -+ {VSI22_ARG_TYPEIDVER_STR, VSI_TYPEIDVER_ARG}, -+/* {VSI22_ARG_VSIIDFRMT_STR, VSI_VSIIDFRMT_ARG}, TODO*/ -+ {VSI22_ARG_VSIID_STR, VSI_VSIID_ARG}, -+ {VSI22_ARG_HINTS_STR, VSI_HINTS_ARG}, -+ {VSI22_ARG_FILTER_STR, VSI_FILTER_ARG} }; - - /* - * Check if it is a UUID and consists of hexadecimal digits and dashes only. -@@ -253,6 +264,18 @@ static bool getmode(struct vdpnl_vsi *p, char *s) - return true; - } - -+enum vsi_mand_arg get_keywork_val(char *keyword) -+{ -+ int count, key_str_size; -+ -+ key_str_size = sizeof(vsi_key_handle) / sizeof(vsi_key_handle[0]); -+ for (count = 0; count < key_str_size; count++) { -+ if (!strcmp(keyword, vsi_key_handle[count].keyword)) -+ return vsi_key_handle[count].val; -+ } -+ return VSI_INVALID_ARG; -+} -+ - /* - * Parse the mode parameter to create/change an VSI assoication. - * The format is a comma separated list of tokens: -@@ -276,66 +299,95 @@ static bool getmode(struct vdpnl_vsi *p, char *s) - * mac := xx:xx:xx:xx:xx:xx - */ - --static int str2vdpnl(char *argvalue, struct vdpnl_vsi *vsi) -+static int str2vdpnl(char *orig_argvalue, struct vdpnl_vsi *vsi) - { -+ char **args; -+ char **argvals; -+ char *argvalue; - int rc = -ENOMEM; - unsigned int no; -- unsigned short idx; -- char *cmdstring, *token; -+ unsigned short idx = 0; -+ int i, ioff = 0, offset; -+ int ilen = strlen(orig_argvalue); -+ int numargs; -+ enum vsi_mand_arg vsi_key; -+ u16 vsi_mand_mask = (1 << VSI_MAND_NUM_ARG) - 1; -+ u16 num_arg_keys = 0; - -- cmdstring = strdup(argvalue); -- if (!cmdstring) -- goto out_free; -- rc = -EINVAL; -- /* 1st field is VSI command */ -- token = strtok(cmdstring, ","); -- if (!token || !getmode(vsi, token)) -- goto out_free; -+ argvalue = strdup(orig_argvalue); -+ if (!argvalue) -+ goto out; -+ /* Count args and argvalues */ -+ offset = ioff; -+ for (numargs = 0; (ilen - offset) > 2; numargs++) { -+ offset += 2; -+ if (ilen - offset > 0) { -+ offset++; -+ if (ilen - offset > 4) -+ offset += 4; -+ } -+ } -+ args = calloc(numargs, sizeof(char *)); -+ if (!args) -+ goto out_argvalue; - -- /* 2nd field is VSI Manager Identifer (16 bytes maximum) */ -- token = strtok(NULL, ","); -- if (!token || !getmgr2id(vsi, token)) -- goto out_free; -- -- /* 3rd field is type identifier */ -- token = strtok(NULL, ","); -- if (!token || !getnumber(token, 0, 0xffffff, &no)) -- goto out_free; -- vsi->vsi_typeid = no; -- -- /* 4th field is type version identifier */ -- token = strtok(NULL, ","); -- if (!token || !getnumber(token, 0, 0xff, &no)) -- goto out_free; -- vsi->vsi_typeversion = no; -- -- /* 5th field is filter VSI UUID */ -- token = strtok(NULL, ","); -- if (!token || vdp_str2uuid(vsi->vsi_uuid, token, sizeof(vsi->vsi_uuid))) -- goto out_free; -- vsi->vsi_idfmt = VDP22_ID_UUID; -- -- /* 6th field is migration hints */ -- token = strtok(NULL, ","); -- if (!token || !gethints(vsi, token)) -- goto out_free; -- -- /* -- * 7th and remaining fields are filter information format data. -- * All fields must have the same format. The first fid field determines -- * the format. -- */ -- for (idx = 0, token = strtok(NULL, ","); token != NULL; -- ++idx, token = strtok(NULL, ",")) { -- if (idx < vsi->macsz && !getfid(vsi, token, idx)) -+ argvals = calloc(numargs, sizeof(char *)); -+ if (!argvals) -+ goto out_args; -+ numargs = get_arg_val_list(argvalue, ilen, &ioff, args, argvals); -+ for (i = 0; i < numargs; i++) { -+ vsi_key = get_keywork_val(args[i]); -+ switch (vsi_key) { -+ case VSI_MODE_ARG: -+ if (!argvals[i] || !getmode(vsi, argvals[i])) -+ goto out_free; -+ break; -+ case VSI_MGRID2_ARG: -+ if (!argvals[i] || !getmgr2id(vsi, argvals[i])) -+ goto out_free; -+ break; -+ case VSI_TYPEID_ARG: -+ if (!argvals[i] || -+ !getnumber(argvals[i], 0, 0xffffff, &no)) -+ goto out_free; -+ vsi->vsi_typeid = no; -+ break; -+ case VSI_TYPEIDVER_ARG: -+ if (!argvals[i] || !getnumber(argvals[i], 0, 0xff, &no)) -+ goto out_free; -+ vsi->vsi_typeversion = no; -+ break; -+ case VSI_VSIID_ARG: -+ if (!argvals[i] || -+ vdp_str2uuid(vsi->vsi_uuid, argvals[i], -+ sizeof(vsi->vsi_uuid))) -+ goto out_free; -+ vsi->vsi_idfmt = VDP22_ID_UUID; -+ break; -+ case VSI_FILTER_ARG: -+ if (idx < vsi->macsz && !getfid(vsi, argvals[i], idx)) -+ goto out_free; -+ idx++; -+ break; -+ case VSI_HINTS_ARG: -+ if (!argvals[i] || !gethints(vsi, argvals[i])) -+ goto out_free; -+ break; -+ default: - goto out_free; -+ } -+ num_arg_keys |= (1 << vsi_key); - } -- - /* Return error if no filter information provided */ -- if (idx) -+ if ((num_arg_keys & vsi_mand_mask) == vsi_mand_mask) - rc = 0; - out_free: -- free(cmdstring); -+ free(argvals); -+out_args: -+ free(args); -+out_argvalue: -+ free(argvalue); -+out: - return rc; - } - -diff --git a/vdptool.c b/vdptool.c -index e7d384a..f506020 100644 ---- a/vdptool.c -+++ b/vdptool.c -@@ -125,31 +125,28 @@ static int render_cmd(struct cmd *cmd, int argc, char **args, char **argvals) - { - int len; - int i; -+ int fid = 0, oui = 0; - - len = sizeof(cmd->obuf); - -+ if (cmd->cmd == cmd_settlv) { -+ for (i = 0; i < argc; i++) { -+ if (args[i]) { -+ if (!strncasecmp(args[i], "filter", -+ strlen("filter"))) -+ fid++; -+ else if (!strncasecmp(args[i], "oui", -+ strlen("oui"))) -+ oui++; -+ } -+ } -+ } -+ cmd->ops |= (fid << OP_FID_POS) | (oui << OP_OUI_POS); - /* all command messages begin this way */ - snprintf(cmd->obuf, len, "%c%08x%c%1x%02x%08x%02x%s%02x%08x", - MOD_CMD, cmd->module_id, CMD_REQUEST, CLIF_MSG_VERSION, - cmd->cmd, cmd->ops, (unsigned int) strlen(cmd->ifname), - cmd->ifname, cmd->type, cmd->tlvid); --#if PADDU -- if (cmd->cmd == cmd_settlv) { -- size_t len2 = 0; -- /* -- * Get total length and append it plus any args and argvals -- * to the command message -- */ -- for (i = 0; i < argc; i++) { -- if (args[i]) -- len2 += 2 + strlen(args[i]); -- if (argvals[i]) -- len2 += 4 + strlen(argvals[i]); -- } -- snprintf(cmd->obuf + strlen(cmd->obuf), len - strlen(cmd->obuf), -- "%04zx", len2); -- } --#endif - /* Add any args and argvals to the command message */ - for (i = 0; i < argc; i++) { - if (args[i]) -@@ -710,6 +707,9 @@ static int _clif_command(struct clif *clif, char *cmd, int print) - char buf[MAX_CLIF_MSGBUF]; - size_t len; - int ret; -+ int rc; -+ char reply[100]; -+ size_t reply_len2 = sizeof(reply); - - print_raw_message(cmd, print); - -@@ -730,6 +730,13 @@ static int _clif_command(struct clif *clif, char *cmd, int print) - buf[len] = '\0'; - ret = parse_print_message(buf, print); - } -+ if (cli_attached) { -+ rc = clif_vsievt(clif, reply, &reply_len2, 5); -+ printf("\nReturn from vsievt %d ret %d Reply %s\n", rc, ret, -+ reply); -+ if (!rc) -+ printf("\nMsg is %s\n", reply); -+ } - - return ret; - } -@@ -854,6 +861,7 @@ static int request(struct clif *clif, int argc, char *argv[]) - int numargs = 0; - char **argptr = &argv[0]; - char *end; -+ char attach_str[9] = ""; - int c; - int option_index; - -@@ -865,7 +873,7 @@ static int request(struct clif *clif, int argc, char *argv[]) - - opterr = 0; - for (;;) { -- c = getopt_long(argc, argv, "i:tThcnvrRpqV:", -+ c = getopt_long(argc, argv, "i:tTWhcnvrRpqV:", - lldptool_opts, &option_index); - if (c < 0) - break; -@@ -936,6 +944,15 @@ static int request(struct clif *clif, int argc, char *argv[]) - case 'v': - command.cmd = cmd_version; - break; -+ case 'W': -+ snprintf(attach_str, sizeof(attach_str), "%x", -+ LLDP_MOD_VDP22); -+ if (clif_attach(clif, attach_str) != 0) { -+ printf("Warning: Failed to attach to lldpad.\n"); -+ return -1; -+ } -+ cli_attached = 1; -+ break; - default: - usage(); - ret = -1; --- -2.1.0 - diff --git a/open-lldp-v1.0.1-5-VDP-Support-for-get-tlv-in-vdptool-and-VDP22.patch b/open-lldp-v1.0.1-5-VDP-Support-for-get-tlv-in-vdptool-and-VDP22.patch deleted file mode 100644 index d880bb5..0000000 --- a/open-lldp-v1.0.1-5-VDP-Support-for-get-tlv-in-vdptool-and-VDP22.patch +++ /dev/null @@ -1,1194 +0,0 @@ -From 0a21b0c0b9674f90cb9185e7fe097ae83657328f Mon Sep 17 00:00:00 2001 -From: padkrish -Date: Wed, 21 Jan 2015 03:37:31 +0000 -Subject: [PATCH] VDP: Support for get-tlv in vdptool and VDP22 - -This commit has the following changes: -a. Change in VDP22 and vdptool to support get-tlv. This actually refers to -get-vsi. Support for querying and printing all VSI's, partial VSI's is added. -The vdptool man page document is also modified accordingly. -b. The response from lldpad (VDP22) is modified to support to the -len, key, len, value format. Earlier, only the meessage to VDP22 has the -format. The response from VDP22 followed the comma separated format for VSI -parameters. -c. Fix some formatting issues - -Signed-off-by: padkrish -Signed-off-by: John Fastabend ---- - docs/vdptool.8 | 47 +++++++----- - include/lldp_util.h | 1 + - include/qbg_vdp22.h | 5 +- - include/qbg_vdp22def.h | 11 ++- - include/qbg_vdpnl.h | 3 + - lldp_util.c | 52 ++++++++++---- - qbg/vdp22.c | 28 ++++++-- - qbg/vdp22_cmds.c | 135 +++++++++++++++++++++++++++++++---- - qbg/vdp22sm.c | 5 +- - qbg/vdp_ascii.c | 190 +++++++++++++++++++++++++++++++------------------ - vdptool.c | 152 +++++++++++---------------------------- - 11 files changed, 395 insertions(+), 234 deletions(-) - -diff --git a/docs/vdptool.8 b/docs/vdptool.8 -index 5110bb9..02b4e8e 100644 ---- a/docs/vdptool.8 -+++ b/docs/vdptool.8 -@@ -70,17 +70,17 @@ bridge. - Specifies additional parameters for TLV queries and associations commands. - The argument list varies, depending on the command option - .B (-T) --or -+or - .BR (-t) . --To establish a VSI association use the command option -+To establish a VSI association use the command option - .B (-T) - and specify additional information as arguments in the form --of key=value. See the -+of key=value. See the - .I "VSI Parameter" - subsection and - .I Example - section below. --To query a VSI specific association use the command option -+To query a VSI specific association use the command option - .B (-t) - and specify the value of the - VSI Instance Identifier (keywork uuid followed be the VSI -@@ -92,6 +92,9 @@ show raw client interface messages - .TP - .B \-R - show only raw Client interface messages -+.TP -+.B \-W -+Wait for the bridge response message - .SS VSI Parameter - Each VDP22 TLVs contains a command mode, manager identifier, - type identifier, type identifier version, VSI instance identifier, -@@ -99,7 +102,7 @@ migiration hints and filter information. - The fields are explained next: - .TP - .B "mode (Command Mode):" --The command mode determines the type -+The command mode determines the type - of the VSI association to be established. - It is an ascii string can be one of: - .RS -@@ -110,7 +113,7 @@ Create an VSI preassociation. The association - is only announced to the switch. - .IP preassoc-rr: - Create an VSI preassociation. The association --is only announced to the switch and the -+is only announced to the switch and the - switch should reserve the resources. - .IP deassoc: - Delete an VSI association. -@@ -137,7 +140,7 @@ an UUID according to RFC 4122 - with optional dashes in between. - .TP - .B "hints (Migration Hints):" --The migiration hints is a string aiding in -+The migiration hints is a string aiding in - migration of virtual machines: - .RS - .IP none: -@@ -168,13 +171,13 @@ The MAC address is specified in the format xx:xx:xx:xx:xx:xx. - The colons are mandatory. - For vlan details see (1). - .IP "vlan-mac-group (4)" --A vlan number, MAC address and group identifier, -+A vlan number, MAC address and group identifier, - each delimited by a slash ('-'), - also known as filter information format 4. - The group identifier is a 32 bit number. - For vlan and MAC address details see (1) and (2). - .IP "vlan--group (3)" --A vlan number and group identifier, -+A vlan number and group identifier, - delimited by two slashes ('--'), - also known as filter information format 3. - For vlan and group details see (1) and (4). -@@ -218,18 +221,30 @@ vdptool -p - Create a VSI association on interface eth2 - .br - .nf --Supported today: One config parameter and comma separated list --vdptool -i eth2 -T -V assoc -c vsi=assoc,blabla,5, \\ -- 1122,4,none,2-52:00:00:11:22:33-200 -+vdptool -i eth2 -T -V assoc -c mode=assoc -c mgrid2=blabla \\ -+ -c typeid=5 -c uuid=1122 -c typeidver=4 -c hints=none \\ -+ -c filter=2-52:00:00:11:22:33-200 -+.fi -+.TP -+Create a VSI association on interface eth2 and wait for the response from the bridge -+.br -+.nf -+vdptool -i eth2 -T -W -V assoc -c mode=assoc -c mgrid2=blabla \\ -+ -c typeid=5 -c uuid=1122 -c typeidver=4 -c hints=none \\ -+ -c filter=0-52:00:00:11:22:33-200 -+.fi - --Planned for the future: --vdptool -i eth2 -T -V assoc -c mgrid2=blabla -c typeid=5 \\ -- -c uuid=1122 -c typeidver=4 -c hints=none -c fid=2-52:00:00:11:22:33-200 --.fi - .TP - Query all VSI association on interface eth2 - .br - vdptool -i eth2 -t -V assoc -+ -+.TP -+Query VSI association on interface eth2 that matches specific VSI parameters. Any of the VSI parameters below can be omitted. -+.br -+vdptool -i eth2 -t -V assoc -t -V assoc -c mode=assoc \\ -+ -c mgrid2=blabla -c typeid=5 -c uuid=1122 \\ -+ -c typeidver=4 -c hints=none - .SH SEE ALSO - .BR lldptool-dcbx (8), - .BR lldptool-ets (8), -diff --git a/include/lldp_util.h b/include/lldp_util.h -index 5767d4e..878426b 100644 ---- a/include/lldp_util.h -+++ b/include/lldp_util.h -@@ -170,6 +170,7 @@ int check_link_status(const char *ifname); - int get_arg_val_list(char *ibuf, int ilen, int *ioff, - char **args, char **argvals); - int get_arg_list(char *ibuf, int ilen, int *ioff, char **args); -+int get_vsistr_arg_count(int ioff, int ilen); - - #define ntohll(x) be64_to_cpu(x) - #define htonll(x) cpu_to_be64(x) -diff --git a/include/qbg_vdp22.h b/include/qbg_vdp22.h -index 45f44d5..af0aa15 100644 ---- a/include/qbg_vdp22.h -+++ b/include/qbg_vdp22.h -@@ -165,7 +165,7 @@ struct vdp22_user_data { /* Head for all VDP data */ - - struct vsi_keyword_handler { - char *keyword; -- enum vsi_mand_arg val; -+ enum vsi_key_arg val; - }; - - struct lldp_module *vdp22_register(void); -@@ -175,6 +175,7 @@ void vdp22_showvsi(struct vsi22 *p); - void vdp22_stop(char *); - int vdp22_from_ecp22(struct vdp22 *); - int vdp22_query(const char *); -+struct vdp22 *vdp22_getvdp(const char *); - int vdp22_addreq(struct vsi22 *, struct vdp22 *); - int vdp22_nlback(struct vsi22 *); - int vdp22_clntback(struct vsi22 *); -@@ -184,6 +185,8 @@ int vdp22br_resources(struct vsi22 *, int *); - int vdp22_info(const char *); - void vdp22_stop_timers(struct vsi22 *); - int vdp22_start_localchange_timer(struct vsi22 *); -+bool vdp22_cmp_fdata(struct vsi22 *, struct vsi22 *); -+void vdp22_delete_vsi(struct vsi22 *); - - /* - * Functions to get and set vlan identifier and qos. -diff --git a/include/qbg_vdp22def.h b/include/qbg_vdp22def.h -index 21ba15d..ff4270c 100644 ---- a/include/qbg_vdp22def.h -+++ b/include/qbg_vdp22def.h -@@ -30,6 +30,15 @@ - #define QBG_VDP22DEF_H - - /* -+ * Define for length of vid-mac-gid -+ * VID in string cannot be more than 4B (Max is 4K) -+ * MAC when represented as 11:22:33:44:55:66 has 17B -+ * GID is 4B -+ * The below should be more than sufficient. -+ */ -+#define MAX_GID_MAC_VID_STR 50 -+ -+/* - * Define VDP22 filter formats. - */ - enum vdp22_ffmt { /* Format of filter information */ -@@ -72,7 +81,7 @@ enum vdp22_migration_hints { - VDP22_MIGFROM = 32 /* S-bit migrate from hint */ - }; - --enum vsi_mand_arg { -+enum vsi_key_arg { - VSI_MODE_ARG = 0, - VSI_MGRID2_ARG, - VSI_TYPEID_ARG, -diff --git a/include/qbg_vdpnl.h b/include/qbg_vdpnl.h -index 510a20c..c5c93ed 100644 ---- a/include/qbg_vdpnl.h -+++ b/include/qbg_vdpnl.h -@@ -79,4 +79,7 @@ int vdp_str2vdpnl(char *, struct vdpnl_vsi *, char *); - int vdp_vdpnl2str(struct vdpnl_vsi *, char *, size_t); - int vdp22_sendevent(struct vdpnl_vsi *); - void vdp22_freemaclist(struct vdpnl_vsi *); -+int vdp22_parse_str_vdpnl(struct vdpnl_vsi *, unsigned short *, char *); -+struct vsi22 *vdp22_alloc_vsi_ext(struct vdpnl_vsi *, int *); -+void copy_vsi_external(struct vdpnl_vsi *, struct vsi22 *, int); - #endif -diff --git a/lldp_util.c b/lldp_util.c -index 754b0cd..f1fb7b9 100644 ---- a/lldp_util.c -+++ b/lldp_util.c -@@ -199,7 +199,7 @@ int is_bond(const char *ifname) - */ - int is_san_mac(u8 *addr) - { -- int i; -+ int i; - - for ( i = 0; i < ETH_ALEN; i++) { - if ( addr[i]!= 0xff ) -@@ -215,7 +215,7 @@ int is_san_mac(u8 *addr) - * @addr: address of buffer in which to return the selected MAC address - * - * Checks to see if ifname is a slave of the bond port. If it is, -- * then a -+ * then a - * Returns 0 if a source MAC from the bond could not be found. 1 is - * returned if the slave was found in the bond. addr is updated with - * the source MAC that should be used. -@@ -287,7 +287,7 @@ int get_src_mac_from_bond(struct port *bond_port, char *ifname, u8 *addr) - - switch (ifb.bond_mode) { - case BOND_MODE_ACTIVEBACKUP: -- /* If current port is not the active slave, then -+ /* If current port is not the active slave, then - * if the bond MAC is equal to the port's - * permanent MAC, then find and return - * the permanent MAC of the active -@@ -297,7 +297,7 @@ int get_src_mac_from_bond(struct port *bond_port, char *ifname, u8 *addr) - if (strncmp(ifname, act_ifname, IFNAMSIZ)) - if (get_perm_hwaddr(ifname, addr, san_mac) == 0) - if (!memcmp(bond_mac, addr, ETH_ALEN)) -- get_perm_hwaddr(act_ifname, addr, -+ get_perm_hwaddr(act_ifname, addr, - san_mac); - break; - default: -@@ -346,7 +346,7 @@ int get_ifflags(const char *ifname) - int flags = 0; - struct ifreq ifr; - -- /* use ioctl */ -+ /* use ioctl */ - fd = get_ioctl_socket(); - if (fd >= 0) { - memset(&ifr, 0, sizeof(ifr)); -@@ -382,7 +382,7 @@ int get_ifpflags(const char *ifname) - int flags = 0; - struct ifreq ifr; - -- /* use ioctl */ -+ /* use ioctl */ - fd = get_ioctl_socket(); - if (fd >= 0) { - memset(&ifr, 0, sizeof(ifr)); -@@ -417,7 +417,7 @@ int get_iflink(const char *ifname) - snprintf(path, sizeof(path), "/sys/class/net/%s/iflink", ifname); - return read_int(path); - } -- -+ - int is_ether(const char *ifname) - { - /* check for bridge in sysfs */ -@@ -486,7 +486,7 @@ int is_slave(const char *ifmaster, const char *ifslave) - } - } - } -- -+ - out_done: - return rc; - } -@@ -562,13 +562,13 @@ int is_bridge(const char *ifname) - if (dirp) { - closedir(dirp); - rc = 1; -- } else { -- /* use ioctl */ -+ } else { -+ /* use ioctl */ - fd = get_ioctl_socket(); - if (fd >= 0) { - struct ifreq ifr; - struct __bridge_info bi; -- unsigned long args[4] = { BRCTL_GET_BRIDGE_INFO, -+ unsigned long args[4] = { BRCTL_GET_BRIDGE_INFO, - (unsigned long) &bi, 0, 0 }; - - ifr.ifr_data = (char *)args; -@@ -748,7 +748,7 @@ int is_autoneg_supported(const char *ifname) - int fd; - struct ifreq ifr; - struct ethtool_cmd cmd; -- -+ - fd = get_ioctl_socket(); - if (fd >= 0) { - memset(&ifr, 0, sizeof(ifr)); -@@ -769,7 +769,7 @@ int is_autoneg_enabled(const char *ifname) - int fd; - struct ifreq ifr; - struct ethtool_cmd cmd; -- -+ - fd = get_ioctl_socket(); - if (fd >= 0) { - memset(&ifr, 0, sizeof(ifr)); -@@ -806,7 +806,7 @@ int get_maucaps(const char *ifname) - u16 caps = MAUCAPADV_bOther; - struct ifreq ifr; - struct ethtool_cmd cmd; -- -+ - fd = get_ioctl_socket(); - if (fd >= 0) { - memset(&ifr, 0, sizeof(ifr)); -@@ -940,7 +940,7 @@ u16 get_caps(const char *ifname) - - /* how to find TPID to determine C-VLAN vs. S-VLAN ? */ - if (is_vlan(ifname)) -- caps |= SYSCAP_CVLAN; -+ caps |= SYSCAP_CVLAN; - - if (is_bridge(ifname)) - caps |= SYSCAP_BRIDGE; -@@ -1282,3 +1282,25 @@ int get_arg_list(char *ibuf, int ilen, int *ioff, char **args) - free(arglens); - return numargs; - } -+ -+/* -+ * This functionality can be seen in many places to convert a LenData to a -+ * argument array. -+ */ -+ -+int get_vsistr_arg_count(int ioff, int ilen) -+{ -+ int offset; -+ int numargs; -+ -+ offset = ioff; -+ for (numargs = 0; (ilen - offset) > 2; numargs++) { -+ offset += 2; -+ if (ilen - offset > 0) { -+ offset++; -+ if (ilen - offset > 4) -+ offset += 4; -+ } -+ } -+ return numargs; -+} -diff --git a/qbg/vdp22.c b/qbg/vdp22.c -index a3cb7c9..af11af8 100644 ---- a/qbg/vdp22.c -+++ b/qbg/vdp22.c -@@ -219,7 +219,7 @@ void vdp22_showvsi(struct vsi22 *p) - /* - * Delete a complete VSI node not on queue. - */ --static void vdp22_delete_vsi(struct vsi22 *p) -+void vdp22_delete_vsi(struct vsi22 *p) - { - LLDPAD_DBG("%s:%s vsi:%p(%02x)\n", __func__, p->vdp->ifname, p, - p->vsi[0]); -@@ -477,14 +477,15 @@ static bool filter_ok(unsigned char ffmt, struct fid22 *fp, - * Allocate a VSI node with filter information data. - * Check if input data is valid. - */ --static struct vsi22 *vdp22_alloc_vsi(struct vdpnl_vsi *vsi, struct vdp22 *vdp, -- int *rc) -+static struct vsi22 *vdp22_alloc_vsi_int(struct vdpnl_vsi *vsi, -+ struct vdp22 *vdp, -+ int *rc, bool vsinl_chk) - { - struct vsi22 *p; - int i; - - *rc = -EINVAL; -- if (!check_vsinl(vsi)) -+ if (vsinl_chk && (!check_vsinl(vsi))) - return NULL; - p = calloc(1, sizeof(*p)); - if (!p) { -@@ -546,6 +547,16 @@ error1: - return NULL; - } - -+struct vsi22 *vdp22_alloc_vsi_ext(struct vdpnl_vsi *vsinl, int *rc) -+{ -+ struct vdp22 *vdp; -+ -+ vdp = vdp22_getvdp(vsinl->ifname); -+ if (!vdp) -+ return NULL; -+ return vdp22_alloc_vsi_int(vsinl, vdp, rc, false); -+} -+ - /* - * Allocate a VSI node with filter information data. - * Check if input data is valid. Data was received by bridge from unknown -@@ -750,7 +761,7 @@ static struct vdp22 *vdp22_create(const char *ifname, - /* - * Query the supported VDP protocol on an interface. - */ --static struct vdp22 *vdp22_getvdp(const char *ifname) -+struct vdp22 *vdp22_getvdp(const char *ifname) - { - struct vdp22 *vdp; - -@@ -820,7 +831,7 @@ int vdp22_request(struct vdpnl_vsi *vsi, int clif) - /* Adjust numbering for VDP 0.2 protocol from netlink */ - if (!clif) - vsi->request += 1; -- p = vdp22_alloc_vsi(vsi, vdp, &rc); -+ p = vdp22_alloc_vsi_int(vsi, vdp, &rc, true); - if (p) { - rc = vdp22_addreq(p, vdp); - if (rc) -@@ -1079,3 +1090,8 @@ int vdp22_info(const char *ifname) - return rc; - - } -+ -+void copy_vsi_external(struct vdpnl_vsi *vsi, struct vsi22 *p, int clif) -+{ -+ copy_vsi(vsi, p, clif); -+} -diff --git a/qbg/vdp22_cmds.c b/qbg/vdp22_cmds.c -index dde4669..409858d 100644 ---- a/qbg/vdp22_cmds.c -+++ b/qbg/vdp22_cmds.c -@@ -237,7 +237,7 @@ int vdp22_clif_cmd(UNUSED void *data, UNUSED struct sockaddr_un *from, - return cmd_not_applicable; - } - -- if (!(cmd.ops & op_config)) -+ if (!(cmd.ops & op_config) && (cmd.cmd != cmd_gettlv)) - return cmd_invalid; - - snprintf(rbuf, rlen, "%c%1x%02x%08x%02x%s", -@@ -254,10 +254,9 @@ int vdp22_clif_cmd(UNUSED void *data, UNUSED struct sockaddr_un *from, - snprintf(rbuf + roff, rlen - roff, "%08x", cmd.tlvid); - roff += 8; - if (cmd.cmd == cmd_gettlv) { -- rstatus = handle_get_arg(&cmd, ARG_VDP22_VSI, -- NULL, -- rbuf + strlen(rbuf), -- rlen - strlen(rbuf)); -+ rstatus = handle_get_arg(&cmd, ARG_VDP22_VSI, ibuf + ioff, -+ rbuf + strlen(rbuf), -+ rlen - strlen(rbuf)); - } else { - rstatus = handle_test_arg(&cmd, ARG_VDP22_VSI, - ibuf + ioff, -@@ -392,19 +391,25 @@ static int test_arg_vsi(struct cmd *cmd, UNUSED char *arg, char *argvalue, - */ - static int catvsis(struct vdpnl_vsi *vsi, char *out, size_t out_len) - { -- int rc, i; -+ int rc, i, len, c; - size_t used = 0; - unsigned char wanted_req = vsi->request; -+ char tmp_buf[MAX_CLIF_MSGBUF]; - -+ memset(tmp_buf, 0, sizeof(tmp_buf)); - for (i = 1; vdp22_status(i, vsi, 1) > 0; ++i) { - if (wanted_req != vsi->request) { - vdp22_freemaclist(vsi); - continue; - } -- rc = vdp_vdpnl2str(vsi, out + used, out_len - used); -+ rc = vdp_vdpnl2str(vsi, tmp_buf, out_len - used); -+ len = strlen(tmp_buf); -+ c = snprintf(out + used, out_len - used, "%04x%s", len, -+ tmp_buf); -+ if ((c < 0) || ((unsigned)c >= (out_len - used))) -+ return 0; - vdp22_freemaclist(vsi); - if (rc) { -- strcat(out, ";"); - used = strlen(out); - } else - return 0; -@@ -413,15 +418,113 @@ static int catvsis(struct vdpnl_vsi *vsi, char *out, size_t out_len) - } - - /* -+ * Based on the VSI arguments specified, checks if it matches. -+ * This does't check for all VSI parameters. -+ */ -+ -+static bool vdp22_partial_vsi_equal(struct vsi22 *p1, struct vsi22 *p2, -+ enum vsi_key_arg vsi_arg_key_flags) -+{ -+ enum vsi_key_arg key_enum; -+ -+ for (key_enum = VSI_MODE_ARG; key_enum < VSI_INVALID_ARG; key_enum++) { -+ if (!((1 << key_enum) & vsi_arg_key_flags)) -+ continue; -+ switch (key_enum) { -+ case VSI_MODE_ARG: -+ break; -+ case VSI_MGRID2_ARG: -+ if (memcmp(p1->mgrid, p2->mgrid, -+ sizeof(p2->mgrid))) -+ return false; -+ case VSI_TYPEID_ARG: -+ if (p1->type_id != p2->type_id) -+ return false; -+ break; -+ case VSI_TYPEIDVER_ARG: -+ if (p1->type_ver != p2->type_ver) -+ return false; -+ break; -+#ifdef LATER -+/* Currently not supported */ -+ case VSI_VSIIDFRMT_ARG: -+ if (p1->vsi_fmt != p2->vsi_fmt) -+ return false; -+ break; -+#endif -+ case VSI_VSIID_ARG: -+ if (memcmp(p1->vsi, p2->vsi, sizeof(p1->vsi))) -+ return false; -+ break; -+ case VSI_FILTER_ARG: -+ if ((p1->fif != p2->fif) || (!vdp22_cmp_fdata(p1, p2))) -+ return false; -+ break; -+ case VSI_HINTS_ARG: -+ break; -+ default: -+ return false; -+ } -+ } -+ return true; -+} -+ -+static int get_vsi_partial_arg(UNUSED char *arg, char *orig_argvalue, -+ struct vdpnl_vsi *vsinl, char *out, -+ size_t out_len) -+{ -+ char tmp_buf[MAX_CLIF_MSGBUF]; -+ struct vsi22 *p, *vsi; -+ struct vdp22 *vdp; -+ size_t used = 0; -+ int rc = -ENOMEM, len, c; -+ u16 vsi_arg_key_flags = 0; -+ -+ if (vdp22_parse_str_vdpnl(vsinl, &vsi_arg_key_flags, orig_argvalue)) -+ goto out; -+ vdp = vdp22_getvdp(vsinl->ifname); -+ if (!vdp) -+ goto out; -+ -+ vsi = vdp22_alloc_vsi_ext(vsinl, &rc); -+ if (!vsi) -+ goto out; -+ LIST_FOREACH(p, &vdp->vsi22_que, node) { -+ if (p->vsi_mode != vsi->vsi_mode) -+ continue; -+ if (vdp22_partial_vsi_equal(p, vsi, vsi_arg_key_flags)) { -+ copy_vsi_external(vsinl, p, 1); -+ rc = vdp_vdpnl2str(vsinl, tmp_buf, out_len - used); -+ len = strlen(tmp_buf); -+ c = snprintf(out + used, out_len - used, "%04x%s", -+ len, tmp_buf); -+ vdp22_freemaclist(vsinl); -+ if ((c < 0) || ((unsigned)c >= (out_len - used))) -+ goto out_delvsi; -+ if (rc) -+ used = strlen(out); -+ else -+ goto out_delvsi; -+ } -+ } -+out_delvsi: -+ vdp22_delete_vsi(vsi); -+out: -+ return rc; -+} -+ -+/* - * Return all VSIs on a particular interface into one string. - */ --static int get_arg_vsi(struct cmd *cmd, char *arg, UNUSED char *argvalue, -+static int get_arg_vsi(struct cmd *cmd, char *arg, char *argvalue, - char *obuf, int obuf_len) - { - cmd_status good_cmd = vdp22_cmdok(cmd, cmd_gettlv); - struct vdpnl_vsi vsi; - char vsi_str[MAX_CLIF_MSGBUF]; - int rc; -+ int fsize = (cmd->ops >> OP_FID_POS) & 0xff; -+ struct vdpnl_mac mac[fsize]; - - if (good_cmd != cmd_success) - return good_cmd; -@@ -433,14 +536,20 @@ static int get_arg_vsi(struct cmd *cmd, char *arg, UNUSED char *argvalue, - - memset(obuf, 0, obuf_len); - memset(&vsi, 0, sizeof(vsi)); -+ memset(vsi_str, 0, sizeof(vsi_str)); - vsi.request = cmd->tlvid; - strncpy(vsi.ifname, cmd->ifname, sizeof(vsi.ifname) - 1); - good_cmd = cmd_failed; -- if (!catvsis(&vsi, vsi_str, sizeof(vsi_str))) -+ if ((cmd->ops & op_config) && (cmd->ops & op_arg)) { -+ memset(&mac, 0, sizeof(mac)); -+ vsi.macsz = fsize; -+ vsi.maclist = mac; -+ if (!get_vsi_partial_arg(arg, argvalue, &vsi, vsi_str, -+ sizeof(vsi_str))) -+ goto out; -+ } else if (!catvsis(&vsi, vsi_str, sizeof(vsi_str))) - goto out; -- rc = snprintf(obuf, obuf_len, "%02x%s%04x%s", -- (unsigned int)strlen(arg), arg, (unsigned int)strlen(vsi_str), -- vsi_str); -+ rc = snprintf(obuf, obuf_len, "%s", vsi_str); - if (rc > 0 || rc < obuf_len) - good_cmd = cmd_success; - out: -diff --git a/qbg/vdp22sm.c b/qbg/vdp22sm.c -index d1f65b4..6264f74 100644 ---- a/qbg/vdp22sm.c -+++ b/qbg/vdp22sm.c -@@ -944,7 +944,8 @@ static bool cmp_fdata1(struct fid22 *p1, struct fid22 *p2, unsigned char fif) - - if (fif == VDP22_FFMT_MACVID || fif == VDP22_FFMT_GROUPMACVID) - is_good = !memcmp(p1->mac, p2->mac, sizeof(p1->mac)); -- if (fif == VDP22_FFMT_GROUPVID || fif == VDP22_FFMT_GROUPMACVID) -+ if (is_good && -+ (fif == VDP22_FFMT_GROUPVID || fif == VDP22_FFMT_GROUPMACVID)) - is_good = (p1->grpid == p2->grpid); - if (is_good) { - if (vdp22_get_vlanid(p1->vlan)) -@@ -956,7 +957,7 @@ static bool cmp_fdata1(struct fid22 *p1, struct fid22 *p2, unsigned char fif) - return is_good; - } - --static bool vdp22_cmp_fdata(struct vsi22 *p, struct vsi22 *vsip) -+bool vdp22_cmp_fdata(struct vsi22 *p, struct vsi22 *vsip) - { - int i; - -diff --git a/qbg/vdp_ascii.c b/qbg/vdp_ascii.c -index 09e53c6..76dde4a 100644 ---- a/qbg/vdp_ascii.c -+++ b/qbg/vdp_ascii.c -@@ -110,6 +110,15 @@ static bool getnumber(char *s, unsigned int min, unsigned int max, - } - - /* -+ * Returns the byte length of a given number -+ */ -+ -+static int get_strlen_num(unsigned long no) -+{ -+ return snprintf(NULL, 0, "%lu", no); -+} -+ -+/* - * Read filter information data. The format is an ascii string: - * filter-data filter-format - * vlan 1 -@@ -264,7 +273,7 @@ static bool getmode(struct vdpnl_vsi *p, char *s) - return true; - } - --enum vsi_mand_arg get_keywork_val(char *keyword) -+enum vsi_key_arg get_keywork_val(char *keyword) - { - int count, key_str_size; - -@@ -276,65 +285,36 @@ enum vsi_mand_arg get_keywork_val(char *keyword) - return VSI_INVALID_ARG; - } - --/* -- * Parse the mode parameter to create/change an VSI assoication. -- * The format is a comma separated list of tokens: -- * cmd,mgrid,typeid,typeidversion,vsiid,hints,fid[,fid,fid,...] -- * with -- * cmd := "assoc" | "deassoc" | "preassoc" | "preassoc-rr" -- * mgrid := less or equal to 16 byte alphanumeric characters -- * | UUID (with dashes in between) -- * typeid := number in range of 1 - 2^24 -1 -- * typeidversion:= number in range of 1 - 255 -- * vsiid := UUID (with dashes in between) -- * hints := varies between input (command) and output (event message) -- * on input --> dash (-) | "none" | "from" | "to" -- * on output --> response (number between 0..255) -- * fid := vlan -- * | vlan-mac -- * | vlan--group -- * | vlan-mac-group -- * vlan := number in range of 1..2^16 -1 -- * group := number in range of 1..2^32 - 1 -- * mac := xx:xx:xx:xx:xx:xx -- */ -- --static int str2vdpnl(char *orig_argvalue, struct vdpnl_vsi *vsi) -+int vdp22_parse_str_vdpnl(struct vdpnl_vsi *vsi, u16 *key_flags, -+ char *orig_argvalue) - { -- char **args; - char **argvals; -+ char **args; - char *argvalue; -+ enum vsi_key_arg vsi_key; - int rc = -ENOMEM; -+ int i, ioff = 0, numargs; -+ int ilen = strlen(orig_argvalue); - unsigned int no; - unsigned short idx = 0; -- int i, ioff = 0, offset; -- int ilen = strlen(orig_argvalue); -- int numargs; -- enum vsi_mand_arg vsi_key; -- u16 vsi_mand_mask = (1 << VSI_MAND_NUM_ARG) - 1; - u16 num_arg_keys = 0; - - argvalue = strdup(orig_argvalue); - if (!argvalue) - goto out; - /* Count args and argvalues */ -- offset = ioff; -- for (numargs = 0; (ilen - offset) > 2; numargs++) { -- offset += 2; -- if (ilen - offset > 0) { -- offset++; -- if (ilen - offset > 4) -- offset += 4; -- } -- } -+ numargs = get_vsistr_arg_count(ioff, ilen); -+ if (numargs == 0) -+ goto out_argvalue; - args = calloc(numargs, sizeof(char *)); - if (!args) - goto out_argvalue; -- - argvals = calloc(numargs, sizeof(char *)); - if (!argvals) - goto out_args; - numargs = get_arg_val_list(argvalue, ilen, &ioff, args, argvals); -+ if (numargs == 0) -+ goto out_free; - for (i = 0; i < numargs; i++) { - vsi_key = get_keywork_val(args[i]); - switch (vsi_key) { -@@ -378,9 +358,9 @@ static int str2vdpnl(char *orig_argvalue, struct vdpnl_vsi *vsi) - } - num_arg_keys |= (1 << vsi_key); - } -- /* Return error if no filter information provided */ -- if ((num_arg_keys & vsi_mand_mask) == vsi_mand_mask) -- rc = 0; -+ *key_flags = num_arg_keys; -+ rc = 0; -+ - out_free: - free(argvals); - out_args: -@@ -392,6 +372,44 @@ out: - } - - /* -+ * Parse the mode parameter to create/change an VSI assoication. -+ * The format is a comma separated list of tokens: -+ * cmd,mgrid,typeid,typeidversion,vsiid,hints,fid[,fid,fid,...] -+ * with -+ * cmd := "assoc" | "deassoc" | "preassoc" | "preassoc-rr" -+ * mgrid := less or equal to 16 byte alphanumeric characters -+ * | UUID (with dashes in between) -+ * typeid := number in range of 1 - 2^24 -1 -+ * typeidversion:= number in range of 1 - 255 -+ * vsiid := UUID (with dashes in between) -+ * hints := varies between input (command) and output (event message) -+ * on input --> dash (-) | "none" | "from" | "to" -+ * on output --> response (number between 0..255) -+ * fid := vlan -+ * | vlan-mac -+ * | vlan--group -+ * | vlan-mac-group -+ * vlan := number in range of 1..2^16 -1 -+ * group := number in range of 1..2^32 - 1 -+ * mac := xx:xx:xx:xx:xx:xx -+ */ -+ -+static int str2vdpnl(char *orig_argvalue, struct vdpnl_vsi *vsi) -+{ -+ int rc = -ENOMEM; -+ u16 vsi_mand_mask = (1 << VSI_MAND_NUM_ARG) - 1; -+ u16 num_arg_keys = 0; -+ -+ if (vdp22_parse_str_vdpnl(vsi, &num_arg_keys, orig_argvalue)) -+ goto out; -+ /* Return error if no filter information provided */ -+ if ((num_arg_keys & vsi_mand_mask) == vsi_mand_mask) -+ rc = 0; -+out: -+ return rc; -+} -+ -+/* - * Fill the vdpnl_vsi structure from the string. - * Allocate the maclist. Must be free'ed by caller. - */ -@@ -426,6 +444,7 @@ static char *check_and_update(size_t *total, size_t *length, char *s, int c) - /* - * Convert VSI association to string. - */ -+#ifdef LATER_USE - static const char *mode2str(unsigned char x) - { - if (x == VDP22_ASSOC) -@@ -438,6 +457,7 @@ static const char *mode2str(unsigned char x) - return "deassoc"; - return "unknown"; - } -+#endif - - /* - * Convert filter information format into vlan[-mac][-group] string. -@@ -448,26 +468,50 @@ static int fid2str(char *s, size_t length, int fif, struct vdpnl_mac *p) - { - int c; - size_t total = 0; -+ char tmp_buf[MAX_GID_MAC_VID_STR]; - -- c = snprintf(s, length, "%d", vdp22_set_qos(p->qos) | -- vdp22_set_vlanid(p->vlan)); -+ c = snprintf(s, length, "%02x%s", -+ (unsigned int)strlen(VSI22_ARG_FILTER_STR), -+ VSI22_ARG_FILTER_STR); - s = check_and_update(&total, &length, s, c); - if (!s) - goto out; -- if (fif == VDP22_FFMT_MACVID || fif == VDP22_FFMT_GROUPMACVID) { -- c = snprintf(s, length, "-%02x:%02x:%02x:%02x:%02x:%02x", -- p->mac[0], p->mac[1], p->mac[2], p->mac[3], -- p->mac[4], p->mac[5]); -- s = check_and_update(&total, &length, s, c); -- if (!s) -- goto out; -- } -- if (fif == VDP22_FFMT_GROUPVID || fif == VDP22_FFMT_GROUPMACVID) { -- c = snprintf(s, length, "-%ld", p->gpid); -- s = check_and_update(&total, &length, s, c); -- if (!s) -- goto out; -+ memset(tmp_buf, 0, sizeof(tmp_buf)); -+ switch (fif) { -+ case VDP22_FFMT_VID: -+ snprintf(tmp_buf, MAX_GID_MAC_VID_STR, "%d", -+ vdp22_set_qos(p->qos) | -+ vdp22_set_vlanid(p->vlan)); -+ break; -+ case VDP22_FFMT_MACVID: -+ snprintf(tmp_buf, MAX_GID_MAC_VID_STR, -+ "%d-%02x:%02x:%02x:%02x:%02x:%02x", -+ vdp22_set_qos(p->qos) | -+ vdp22_set_vlanid(p->vlan), -+ p->mac[0], p->mac[1], p->mac[2], p->mac[3], -+ p->mac[4], p->mac[5]); -+ break; -+ case VDP22_FFMT_GROUPVID: -+ snprintf(tmp_buf, MAX_GID_MAC_VID_STR, -+ "%d-%ld", -+ vdp22_set_qos(p->qos) | vdp22_set_vlanid(p->vlan), -+ p->gpid); -+ break; -+ case VDP22_FFMT_GROUPMACVID: -+ snprintf(tmp_buf, MAX_GID_MAC_VID_STR, -+ "%d-%02x:%02x:%02x:%02x:%02x:%02x-%ld", -+ vdp22_set_qos(p->qos) | vdp22_set_vlanid(p->vlan), -+ p->mac[0], p->mac[1], p->mac[2], p->mac[3], -+ p->mac[4], p->mac[5], p->gpid); -+ break; -+ default: -+ break; - } -+ c = snprintf(s, length, "%04x%s", (unsigned int)strlen(tmp_buf), -+ tmp_buf); -+ s = check_and_update(&total, &length, s, c); -+ if (!s) -+ goto out; - out: - return s ? total : 0; - } -@@ -500,15 +544,28 @@ int vdp_vdpnl2str(struct vdpnl_vsi *p, char *s, size_t length) - char instance[VDP_UUID_STRLEN + 2]; - - mgrid2str(instance, p, sizeof(instance)); -- c = snprintf(s, length, "%s,%s,%ld,%d,", -- mode2str(p->request), instance, p->vsi_typeid, -- p->vsi_typeversion); -+ c = snprintf(s, length, "%02x%s%04x%s%02x%s%04x%lu%02x%s%04x%d", -+ (unsigned int)strlen(VSI22_ARG_MGRID_STR), -+ VSI22_ARG_MGRID_STR, -+ (unsigned int)strlen(instance), instance, -+ (unsigned int)strlen(VSI22_ARG_TYPEID_STR), -+ VSI22_ARG_TYPEID_STR, get_strlen_num(p->vsi_typeid), -+ p->vsi_typeid, -+ (unsigned int)strlen(VSI22_ARG_TYPEIDVER_STR), -+ VSI22_ARG_TYPEIDVER_STR, -+ get_strlen_num(p->vsi_typeversion), p->vsi_typeversion); - s = check_and_update(&total, &length, s, c); - if (!s) - goto out; - - vdp_uuid2str(p->vsi_uuid, instance, sizeof(instance)); -- c = snprintf(s, length, "%s,%d,", instance, p->response); -+ c = snprintf(s, length, "%02x%s%04x%s%02x%s%04x%d", -+ (unsigned int)strlen(VSI22_ARG_VSIID_STR), -+ VSI22_ARG_VSIID_STR, (unsigned int)strlen(instance), -+ instance, -+ (unsigned int)strlen(VSI22_ARG_HINTS_STR), -+ VSI22_ARG_HINTS_STR, -+ get_strlen_num(p->response), p->response); - s = check_and_update(&total, &length, s, c); - if (!s) - goto out; -@@ -519,13 +576,8 @@ int vdp_vdpnl2str(struct vdpnl_vsi *p, char *s, size_t length) - s = check_and_update(&total, &length, s, c); - if (!c) - goto out; -- if (p->macsz > 1 && i < p->macsz - 1) { -- c = snprintf(s, length, ","); -- s = check_and_update(&total, &length, s, c); -- if (!s) -- goto out; -- } - } -+ - out: - return s ? total : 0; - } -diff --git a/vdptool.c b/vdptool.c -index f506020..551e829 100644 ---- a/vdptool.c -+++ b/vdptool.c -@@ -53,6 +53,7 @@ - - #include "qbg22.h" - #include "qbg_vdp22_clif.h" -+#include "lldp_util.h" - - static char *print_status(cmd_status status) - { -@@ -129,7 +130,7 @@ static int render_cmd(struct cmd *cmd, int argc, char **args, char **argvals) - - len = sizeof(cmd->obuf); - -- if (cmd->cmd == cmd_settlv) { -+ if ((cmd->cmd == cmd_settlv) || (cmd->cmd == cmd_gettlv)) { - for (i = 0; i < argc; i++) { - if (args[i]) { - if (!strncasecmp(args[i], "filter", -@@ -208,13 +209,6 @@ static int vdp_cmd_gettlv(struct clif *clif, int argc, char *argv[], - cmd->ops |= op_arg; - } - -- for (i = 0; i < numargs; i++) { -- if (argvals[i]) { -- printf("%s\n", print_status(cmd_invalid)); -- goto out; -- } -- } -- - render_cmd(cmd, argc, args, argvals); - free(args); - free(argvals); -@@ -305,125 +299,61 @@ static int vdp_parse_response(char *buf) - return hex2u8(buf + CLIF_STAT_OFF); - } - --static void print_pair(char *arg, size_t arglen, char *value, size_t valuelen) -+int get_vsi_args(char *ibuf) - { -- while (arglen--) -- putchar(*arg++); -- putchar('='); -- while (valuelen--) -- putchar(*value++); -- putchar('\n'); --} -+ int ioff = 0; -+ char **args; -+ char **argvals; -+ int numargs, i; -+ int ilen = strlen(ibuf); - --static int print_arg_value(char *ibuf) --{ -- int arglen, valuelen, offset = 0, ilen = strlen(ibuf); -- char *arg, *value; -+ /* count args and argvalus */ -+ numargs = get_vsistr_arg_count(ioff, ilen); - -- while (offset < ilen) { -- /* Length of argument */ -- arglen = hex2u8(ibuf + offset); -- if (arglen < 0) -- break; -- offset += 2; -- arg = ibuf + offset; -- offset += arglen; -+ args = calloc(numargs, sizeof(char *)); -+ if (!args) -+ return cmd_failed; - -- /* Length of argument value */ -- valuelen = hex2u16(ibuf + offset); -- if (valuelen < 0) -- break; -- offset += 4; -- value = ibuf + offset; -- offset += valuelen; -+ argvals = calloc(numargs, sizeof(char *)); -+ if (!argvals) { -+ free(args); -+ return cmd_failed; -+ } - -- print_pair(arg, arglen, value, valuelen); -+ numargs = get_arg_val_list(ibuf, ilen, &ioff, args, argvals); -+ for (i = 0; i < numargs; i++) { -+ printf("\t%s", args[i]); -+ printf(" = %s\n", argvals[i]); - } -- return offset; --} - --static int get_tlvid(char *ibuf) --{ -- return hex2u32(ibuf); -+ free(args); -+ free(argvals); -+ return ioff; - } - --/* -- * Print a TLV. -- */ --static void print_tlv2(char *ibuf) -+static void print_all_vsis(char *ibuf) - { - size_t ilen = strlen(ibuf); -- u16 tlv_type; -- u16 tlv_len; -- u32 tlvid; -- int offset = 0; -- int printed; -- struct lldp_module *np; -+ u16 vsi_len; -+ int offset = 0, vsi_cnt = 0; -+ char tmp_ibuf[strlen(ibuf)]; - - while (ilen > 0) { -- tlv_len = 2 * sizeof(u16); -- if (ilen < 2 * sizeof(u16)) { -- printf("corrupted TLV ilen:%zd, tlv_len:%d\n", -- ilen, tlv_len); -- break; -- } -- tlv_type = hex2u16(ibuf + offset); -- tlv_len = tlv_type; -- tlv_type >>= 9; -- tlv_len &= 0x01ff; -+ vsi_len = hex2u16(ibuf + offset); -+ if (vsi_len > ilen) -+ return; - offset += 2 * sizeof(u16); - ilen -= 2 * sizeof(u16); -- -- if (ilen < (unsigned) 2 * tlv_len) { -- printf("corrupted TLV ilen:%zd, tlv_len:%d\n", -- ilen, tlv_len); -- break; -- } -- tlvid = tlv_type; -- if (tlvid == INVALID_TLVID) { -- tlvid = get_tlvid(ibuf + offset); -- offset += 8; -- } -- printed = 0; -- LIST_FOREACH(np, &lldp_head, lldp) { -- if (np->ops->print_tlv(tlvid, tlv_len, ibuf + offset)) { -- printed = 1; -- break; -- } -- } -- -- if (!printed) { -- if (tlvid < INVALID_TLVID) -- printf("Unidentified TLV\n\ttype:%d %*.*s\n", -- tlv_type, tlv_len*2, tlv_len*2, -- ibuf+offset); -- else -- printf("Unidentified Org Specific TLV\n\t" -- "OUI: 0x%06x, Subtype: %d, Info: %*.*s\n", -- tlvid >> 8, tlvid & 0x0ff, -- tlv_len*2-8, tlv_len*2-8, -- ibuf+offset); -- } -- if (tlvid > INVALID_TLVID) -- offset += (2 * tlv_len - 8); -- else -- offset += 2 * tlv_len; -- ilen -= 2 * tlv_len; -- if (tlvid == END_OF_LLDPDU_TLV) -- break; -+ strncpy(tmp_ibuf, ibuf + offset, vsi_len); -+ tmp_ibuf[vsi_len] = '\0'; -+ printf("%s %d:\n", "VSI ", vsi_cnt); -+ get_vsi_args(tmp_ibuf); -+ offset += vsi_len; -+ ilen -= vsi_len; -+ vsi_cnt++; - } - } - --/* Print reply from get command */ --static void print_tlvs(struct cmd *cmd, char *ibuf) --{ -- if (cmd->ops & op_config) { -- print_arg_value(ibuf); -- return; -- } -- print_tlv2(ibuf); --} -- - static void print_cmd_response(char *ibuf, int status) - { - struct cmd cmd; -@@ -455,7 +385,7 @@ static void print_cmd_response(char *ibuf, int status) - - switch (cmd.cmd) { - case cmd_gettlv: -- print_tlvs(&cmd, ibuf + ioff); -+ print_all_vsis(ibuf + ioff); - break; - case cmd_settlv: - printf("%s", ibuf + ioff); -@@ -708,7 +638,7 @@ static int _clif_command(struct clif *clif, char *cmd, int print) - size_t len; - int ret; - int rc; -- char reply[100]; -+ char reply[200]; - size_t reply_len2 = sizeof(reply); - - print_raw_message(cmd, print); --- -2.1.0 - diff --git a/open-lldp-v1.0.1-6-VDP-Support-in-VDP22-for-correct-error-code-status-t.patch b/open-lldp-v1.0.1-6-VDP-Support-in-VDP22-for-correct-error-code-status-t.patch deleted file mode 100644 index 0c54df6..0000000 --- a/open-lldp-v1.0.1-6-VDP-Support-in-VDP22-for-correct-error-code-status-t.patch +++ /dev/null @@ -1,894 +0,0 @@ -From faf19bd8bdb1a6ca0dd98843cd09fd96b1f2f901 Mon Sep 17 00:00:00 2001 -From: padkrish -Date: Wed, 21 Jan 2015 03:37:57 +0000 -Subject: [PATCH] VDP: Support in VDP22 for correct error code/status to - vdptool - -This commit has the following changes: -a. Returning the status or error code to vdptool for the error cases. Errors -can be Tx error, invalid parameters, incorrect configuration etc. The vdptool - is modified to print the error messages from lldpad. -b. Modify the vdptool option from set-tlv/get-tlv to set-vsi/get-vsi. The - vdptool man page document is also modified accordingly. -c. Re-arrange the definitions in header files. -d. Fix some formatting issues. - -Signed-off-by: padkrish -Signed-off-by: John Fastabend ---- - docs/vdptool.8 | 12 ++-- - include/lldpad_status.h | 25 +++++---- - include/qbg_vdp22.h | 50 +++++++++-------- - include/qbg_vdp22_clif.h | 8 +++ - include/qbg_vdp22def.h | 39 +++++++++++++ - qbg/vdp22.c | 20 ++++++- - qbg/vdp22_cmds.c | 63 +++++++++++++++------ - qbg/vdp22sm.c | 15 ----- - qbg/vdp_ascii.c | 56 +++++++++++++++---- - vdptool.c | 141 ++++++++++++++++++++++++++++++++++++++--------- - 10 files changed, 316 insertions(+), 113 deletions(-) - -diff --git a/docs/vdptool.8 b/docs/vdptool.8 -index 02b4e8e..0b50a13 100644 ---- a/docs/vdptool.8 -+++ b/docs/vdptool.8 -@@ -98,7 +98,7 @@ Wait for the bridge response message - .SS VSI Parameter - Each VDP22 TLVs contains a command mode, manager identifier, - type identifier, type identifier version, VSI instance identifier, --migiration hints and filter information. -+migration hints and filter information. - The fields are explained next: - .TP - .B "mode (Command Mode):" -@@ -140,7 +140,7 @@ an UUID according to RFC 4122 - with optional dashes in between. - .TP - .B "hints (Migration Hints):" --The migiration hints is a string aiding in -+The migration hints is a string aiding in - migration of virtual machines: - .RS - .IP none: -@@ -193,11 +193,11 @@ show usage information - .B \-v, version - show version information - .TP --.B \-t, get-tlv --get TLV information for the specified interface -+.B \-t, get-vsi -+get VSI information for the specified interface - .TP --.B \-T, set-tlv --set TLV information for the specified interface -+.B \-T, set-vsi -+set VSI information for the specified interface - .TP - .B \-p, ping - display the process identifier of the running lldpad process -diff --git a/include/lldpad_status.h b/include/lldpad_status.h -index df6e0f7..568063b 100644 ---- a/include/lldpad_status.h -+++ b/include/lldpad_status.h -@@ -33,18 +33,19 @@ - #define LLDPAD_STATUS_H - - typedef enum { -- cmd_success = 0, -- cmd_failed, -- cmd_device_not_found, -- cmd_agent_not_found, -- cmd_invalid, -- cmd_bad_params, -- cmd_peer_not_present, -- cmd_ctrl_vers_not_compatible, -- cmd_not_capable, -- cmd_not_applicable, -- cmd_no_access, -- cmd_agent_not_supported, -+ cmd_success = 0, -+ cmd_failed, -+ cmd_device_not_found, -+ cmd_agent_not_found, -+ cmd_invalid, -+ cmd_bad_params, -+ cmd_peer_not_present, -+ cmd_ctrl_vers_not_compatible, -+ cmd_not_capable, -+ cmd_not_applicable, -+ cmd_no_access, -+ cmd_agent_not_supported, -+ cmd_max_status, - } cmd_status; - - #endif /* LLDPAD_STATUS_H */ -diff --git a/include/qbg_vdp22.h b/include/qbg_vdp22.h -index af0aa15..6c3c9ee 100644 ---- a/include/qbg_vdp22.h -+++ b/include/qbg_vdp22.h -@@ -65,22 +65,36 @@ enum vdp22_role { /* State for VDP22 bridge processing */ - VDP22_STATION /* State role */ - }; - --enum vdp22_cmdresp { /* VDP22 Protocol command responses */ -- VDP22_RESP_SUCCESS = 0, /* Success */ -- VDP22_RESP_INVALID_FORMAT = 1, -- VDP22_RESP_NO_RESOURCES = 2, -- VDP22_RESP_NO_VSIMGR = 3, /* No contact to VSI manager */ -- VDP22_RESP_OTHER = 4, /* Other reasons */ -- VDP22_RESP_NOADDR = 5, /* Invalid VID, MAC, GROUP etc */ -- VDP22_RESP_DEASSOC = 252, /* Deassoc response */ -- VDP22_RESP_TIMEOUT = 253, /* Timeout response */ -- VDP22_RESP_KEEP = 254, /* Keep response */ -- VDP22_RESP_NONE = 255 /* No response returned so far */ -+/* -+ * VSI information. One node per matching entry (same mgrid, type_id, type_ver, -+ * id_fmt, id and fif). Filter data can be added and removed. -+ */ -+enum vsi22_flags { /* Flags (or'ed in) */ -+ VDP22_BUSY = 1, /* This node is under work */ -+ VDP22_DELETE_ME = 2, /* Deallocate this node */ -+ VDP22_RETURN_VID = 4, /* Return wildcard vlan id */ -+ VDP22_NOTIFY = 8, /* Send netlink message to requestor */ -+ VDP22_NLCMD = 16 /* Netlink command pending */ -+}; -+ -+enum { /* VDP22 Protocol command responses */ -+ USEC_PER_SEC = 1000000, /* Microseconds per second */ -+ VDP22_RESBIT = 0x80, /* VSI reserved bit */ -+ VDP22_ACKBIT = 0x40, /* VSI Acknowledgement bit */ -+ VDP22_KEEPBIT = 0x20, /* VSI keep error bit */ -+ VDP22_HARDBIT = 0x10, /* VSI hard error bit */ -+ VDP22_STATUS_MASK = 0x0f, /* Status mask */ -+ VDP22_STATUS_SHIFT = 0, /* Status offset */ - }; - - enum { - VDP22_MGRIDSZ = 16, /* Size of manager identifier */ -- VDP22_IDSZ = 16 /* Size of vsi identifier */ -+ VDP22_IDSZ = 16, /* Size of vsi identifier */ -+}; -+ -+struct vdp22_ptlv { /* Packed TLV for VDP data exchange */ -+ unsigned short head; /* TLV 16 bit header */ -+ unsigned char data[]; /* TLV Data buffer */ - }; - - struct vsi_origin { /* Originator of VSI request */ -@@ -99,18 +113,6 @@ struct fid22 { /* Filter data: GROUP,MAC,VLAN entry */ - struct vsi_origin requestor; - }; - --/* -- * VSI information. One node per matching entry (same mgrid, type_id, type_ver, -- * id_fmt, id and fif). Filter data can be added and removed. -- */ --enum vsi22_flags { /* Flags (or'ed in) */ -- VDP22_BUSY = 1, /* This node is under work */ -- VDP22_DELETE_ME = 2, /* Deallocate this node */ -- VDP22_RETURN_VID = 4, /* Return wildcard vlan id */ -- VDP22_NOTIFY = 8, /* Send netlink message to requestor */ -- VDP22_NLCMD = 16 /* Netlink command pending */ --}; -- - struct vdp22smi { /* Data structure for VDP22 state machine */ - int state; /* State of VDP state machine for VSI */ - bool kato; /* VSI KA ACK timeout hit for this VSI */ -diff --git a/include/qbg_vdp22_clif.h b/include/qbg_vdp22_clif.h -index 8346b98..0cc603e 100644 ---- a/include/qbg_vdp22_clif.h -+++ b/include/qbg_vdp22_clif.h -@@ -33,6 +33,8 @@ - #define OP_FID_POS 8 /* Second Byte */ - #define OP_OUI_POS 16 /* Third Byte */ - -+#include "lldpad_status.h" -+ - typedef enum { - cmd_getstats, - cmd_gettlv, -@@ -60,5 +62,11 @@ typedef enum { - */ - } vdp22_op; - -+enum vdp22_cmd_status { -+ cmd_vdp_prot_no_support = cmd_max_status + 1, -+ cmd_vdp_nomem, -+ cmd_vdp_busy, -+}; -+ - struct lldp_module *vdp22_cli_register(void); - #endif -diff --git a/include/qbg_vdp22def.h b/include/qbg_vdp22def.h -index ff4270c..c305a2b 100644 ---- a/include/qbg_vdp22def.h -+++ b/include/qbg_vdp22def.h -@@ -94,6 +94,31 @@ enum vsi_key_arg { - VSI_INVALID_ARG - }; - -+enum vdp22_cmdresp { /* VDP22 Protocol command responses */ -+ VDP22_RESP_SUCCESS = 0, /* Success */ -+ VDP22_RESP_INVALID_FORMAT = 1, -+ VDP22_RESP_NO_RESOURCES = 2, -+ VDP22_RESP_NO_VSIMGR = 3, /* No contact to VSI manager */ -+ VDP22_RESP_OTHER = 4, /* Other reasons */ -+ VDP22_RESP_NOADDR = 5, /* Invalid VID, MAC, GROUP etc */ -+ VDP22_RESP_DEASSOC = 252, /* Deassoc response */ -+ VDP22_RESP_TIMEOUT = 253, /* Timeout response */ -+ VDP22_RESP_KEEP = 254, /* Keep response */ -+ VDP22_RESP_NONE = 255 /* No response returned so far */ -+}; -+ -+/* -+ * Errors applicable mostly for VDP22_RESP_NONE -+ */ -+ -+enum vdp22_cmderr { -+ VDP22_KATO = 0, -+ VDP22_ACKTO, -+ VDP22_TXERR -+}; -+ -+#define VDP22_STATUS_BITS 8 /* Number of bits in Status field */ -+ - #define VSI22_ARG_MODE_STR "mode" - #define VSI22_ARG_MGRID_STR "mgrid2" - #define VSI22_ARG_TYPEID_STR "typeid" -@@ -105,4 +130,18 @@ enum vsi_key_arg { - #define VSI22_ARG_FILTER_STR "filter" - #define VSI22_ARG_OUI_STR "oui" - -+#define VSI22_KATO_ERR_STR "Keepalive Timeout" -+#define VSI22_ACKTO_ERR_STR "Ack not received from bridge" -+#define VSI22_TX_ERR_STR "Transmission Error" -+ -+#define VSI22_INVALID_FRMT_ERR_STR "VDP TLV Format is Invalid" -+#define VSI22_NO_RES_ERR_STR "Insufficient resources at bridge" -+#define VSI22_NO_VSIMGR_ERR_STR "Unable to contact VSI Mgr" -+#define VSI22_OTHER_ERR_STR "Other Failures" -+#define VSI22_NOADDR_ERR_STR "Invalid VID, GroupID or MAC address field" -+#define VSI22_DEASS_ERR_STR "Deassoc received from switch" -+#define VSI22_TIMEOUT_ERR_STR "Timeout Error" -+#define VSI22_KEEP_ERR_STR "Command rejected by bridge and state prior to" \ -+ " requested command is kept" -+ - #endif -diff --git a/qbg/vdp22.c b/qbg/vdp22.c -index af11af8..d7aa648 100644 ---- a/qbg/vdp22.c -+++ b/qbg/vdp22.c -@@ -42,6 +42,7 @@ - #include "qbg_vdp22.h" - #include "qbg_utils.h" - #include "qbg_vdp22_cmds.h" -+#include "qbg_vdp22def.h" - - /* - * VDP22 helper functions -@@ -469,7 +470,8 @@ static bool filter_ok(unsigned char ffmt, struct fid22 *fp, - else - rc = false; - } -- LLDPAD_DBG("%s:rc:%d\n", __func__, rc); -+ LLDPAD_DBG("%s: ffmt:%d gpid_on:%d rc:%d\n", __func__, ffmt, -+ gpid_on, rc); - return rc; - } - -@@ -1007,12 +1009,26 @@ static pid_t havepid(struct vsi22 *vsi) - return mypid; - } - -+unsigned char vdp22_getsm_errcode(struct vsi22 *vsi) -+{ -+ unsigned char err_code = 0; -+ -+ if (vsi->smi.kato) -+ err_code |= (1 << VDP22_KATO); -+ if (vsi->smi.acktimeout) -+ err_code |= (1 << VDP22_ACKTO); -+ if (vsi->smi.txmit_error) -+ err_code |= (1 << VDP22_TXERR); -+ return err_code; -+} -+ - /* - * Convert and VSI22 to VDP netlink format and send it back to the originator. - */ - static int vdp22_back(struct vsi22 *vsi, pid_t to, - int (*fct)(struct vdpnl_vsi *)) - { -+ unsigned char err_code; - int i; - struct vdpnl_vsi nl; - struct vdpnl_mac nlmac[vsi->no_fdata]; -@@ -1025,6 +1041,8 @@ static int vdp22_back(struct vsi22 *vsi, pid_t to, - memcpy(nl.ifname, vsi->vdp->ifname, sizeof(nl.ifname)); - nl.request = vsi->vsi_mode; - nl.response = vsi->status; -+ err_code = vdp22_getsm_errcode(vsi); -+ nl.response |= (err_code << VDP22_STATUS_BITS); - nl.vsi_mgrid = vsi->mgrid[0]; - memcpy(nl.vsi_mgrid2, vsi->mgrid, sizeof(nl.vsi_mgrid2)); - nl.vsi_typeversion = vsi->type_ver; -diff --git a/qbg/vdp22_cmds.c b/qbg/vdp22_cmds.c -index 409858d..5d5ef6b 100644 ---- a/qbg/vdp22_cmds.c -+++ b/qbg/vdp22_cmds.c -@@ -165,7 +165,8 @@ static int handle_set_arg(struct cmd *cmd, char *arg, char *argvalue, - * bb: C for command and 2 or 3 for message version number - * cc: 1 for get command and 2 for set command - * dddddddd: 8 hex digits options, supported are op_arg, op_argval, op_conifg -- * and op_local -+ * and op_local. The number of filter (fid) parameters are encoded -+ * here (second byte from right). - * ee: 2 hex digit length of interface name - * ffff: string for interface name - * gg: 2 hex digit for bridge type (nearest customer bridge only) -@@ -179,7 +180,7 @@ static int handle_set_arg(struct cmd *cmd, char *arg, char *argvalue, - * The total input length can be used to determine the number of arguaments. - * - * The member ops of struct cmd settings depends on the invoked with -- * -T (cmd_gettlv) -a assoc: -+ * -T (cmd_getvsi) -a assoc: - * -c key --> ops=(0x15) op_config,op_arg,op_local), numargs > 0 - * -c key=abc --> ops=(0x1d) op_config,op_arg,op_argval,op_local), numargs > 0 - * -c --> ops=0x11 (op_config,op_local), numargs = 0 -@@ -279,8 +280,16 @@ int vdp22_clif_cmd(UNUSED void *data, UNUSED struct sockaddr_un *from, - int vdp22_sendevent(struct vdpnl_vsi *p) - { - char msg[MAX_CLIF_MSGBUF]; -+ char tmp_buf[MAX_CLIF_MSGBUF]; -+ int c, len; - -- vdp_vdpnl2str(p, msg, sizeof(msg)); -+ vdp_vdpnl2str(p, tmp_buf, sizeof(msg)); -+ len = strlen(tmp_buf); -+ if ((unsigned)len > sizeof(msg)) -+ return 0; -+ c = snprintf(msg, sizeof(msg), "%04x%s", len, tmp_buf); -+ if ((c < 0) || ((unsigned)c >= sizeof(msg))) -+ return 0; - LLDPAD_DBG("%s:%s vsi:%p(%#2x), len:%zd msg:%s\n", __func__, - p->ifname, p, p->vsi_uuid[0], strlen(msg), msg); - send_event(16, LLDP_MOD_VDP22, msg); -@@ -324,6 +333,29 @@ static int ifok(struct cmd *cmd) - return good_cmd; - } - -+static int get_vdp22_retval(int rc) -+{ -+ if (!rc) -+ return cmd_success; -+ -+ switch (rc) { -+ case -EPROTONOSUPPORT: -+ return cmd_vdp_prot_no_support; -+ case -EOPNOTSUPP: -+ return cmd_not_capable; -+ case -EINVAL: -+ return cmd_bad_params; -+ case -ENOMEM: -+ return cmd_vdp_nomem; -+ case -EBUSY: -+ return cmd_vdp_busy; -+ case -ENODEV: -+ return cmd_device_not_found; -+ default: -+ return cmd_failed; -+ } -+} -+ - static int set_arg_vsi3(struct cmd *cmd, char *argvalue, bool test, int size) - { - cmd_status good_cmd = vdp22_cmdok(cmd, cmd_settlv); -@@ -340,7 +372,7 @@ static int set_arg_vsi3(struct cmd *cmd, char *argvalue, bool test, int size) - vsi.macsz = size; - rc = vdp_str2vdpnl(argvalue, &vsi, cmd->ifname); - if (rc) { -- good_cmd = cmd_bad_params; -+ good_cmd = get_vdp22_retval(rc); - goto out; - } - if (!port_find_by_ifindex(get_ifidx(cmd->ifname))) { -@@ -351,12 +383,8 @@ static int set_arg_vsi3(struct cmd *cmd, char *argvalue, bool test, int size) - if (good_cmd != cmd_success || test) - goto out; - rc = vdp22_request(&vsi, 1); -- if (!rc) -- good_cmd = cmd_success; -- else if (rc == -ENODEV) -- good_cmd = cmd_device_not_found; -- else -- good_cmd = cmd_failed; -+ good_cmd = get_vdp22_retval(rc); -+ - out: - return good_cmd; - } -@@ -480,7 +508,8 @@ static int get_vsi_partial_arg(UNUSED char *arg, char *orig_argvalue, - int rc = -ENOMEM, len, c; - u16 vsi_arg_key_flags = 0; - -- if (vdp22_parse_str_vdpnl(vsinl, &vsi_arg_key_flags, orig_argvalue)) -+ rc = vdp22_parse_str_vdpnl(vsinl, &vsi_arg_key_flags, orig_argvalue); -+ if (rc) - goto out; - vdp = vdp22_getvdp(vsinl->ifname); - if (!vdp) -@@ -498,7 +527,6 @@ static int get_vsi_partial_arg(UNUSED char *arg, char *orig_argvalue, - len = strlen(tmp_buf); - c = snprintf(out + used, out_len - used, "%04x%s", - len, tmp_buf); -- vdp22_freemaclist(vsinl); - if ((c < 0) || ((unsigned)c >= (out_len - used))) - goto out_delvsi; - if (rc) -@@ -544,11 +572,14 @@ static int get_arg_vsi(struct cmd *cmd, char *arg, char *argvalue, - memset(&mac, 0, sizeof(mac)); - vsi.macsz = fsize; - vsi.maclist = mac; -- if (!get_vsi_partial_arg(arg, argvalue, &vsi, vsi_str, -- sizeof(vsi_str))) -- goto out; -- } else if (!catvsis(&vsi, vsi_str, sizeof(vsi_str))) -+ rc = get_vsi_partial_arg(arg, argvalue, &vsi, vsi_str, -+ sizeof(vsi_str)); -+ } else -+ rc = catvsis(&vsi, vsi_str, sizeof(vsi_str)); -+ if (!rc) { -+ good_cmd = get_vdp22_retval(rc); - goto out; -+ } - rc = snprintf(obuf, obuf_len, "%s", vsi_str); - if (rc > 0 || rc < obuf_len) - good_cmd = cmd_success; -diff --git a/qbg/vdp22sm.c b/qbg/vdp22sm.c -index 6264f74..83a97fb 100644 ---- a/qbg/vdp22sm.c -+++ b/qbg/vdp22sm.c -@@ -46,21 +46,6 @@ - #include "qbg_vdp22.h" - #include "qbg_utils.h" - --struct vdp22_ptlv { /* Packed TLV for VDP data exchange */ -- unsigned short head; /* TLV 16 bit header */ -- unsigned char data[]; /* TLV Data buffer */ --}; -- --enum { /* VDP22 Protocol command responses */ -- USEC_PER_SEC = 1000000, /* Microseconds per second */ -- VDP22_RESBIT = 0x80, /* VSI reserved bit */ -- VDP22_ACKBIT = 0x40, /* VSI Acknowledgement bit */ -- VDP22_KEEPBIT = 0x20, /* VSI keep error bit */ -- VDP22_HARDBIT = 0x10, /* VSI hard error bit */ -- VDP22_STATUS_MASK = 0x0f, /* Status mask */ -- VDP22_STATUS_SHIFT = 0, /* Status offset */ --}; -- - /* - * Set status code - */ -diff --git a/qbg/vdp_ascii.c b/qbg/vdp_ascii.c -index 76dde4a..70ec79b 100644 ---- a/qbg/vdp_ascii.c -+++ b/qbg/vdp_ascii.c -@@ -44,6 +44,7 @@ - #include "qbg_vdpnl.h" - #include "qbg_utils.h" - #include "lldp_util.h" -+#include "messages.h" - - struct vsi_keyword_handler vsi_key_handle[] = { - {VSI22_ARG_MODE_STR, VSI_MODE_ARG}, -@@ -285,6 +286,24 @@ enum vsi_key_arg get_keywork_val(char *keyword) - return VSI_INVALID_ARG; - } - -+/* -+ * If the ordering is maintained in vsi_key_handle, then this function is not -+ * necessary as the keyword can be retrieved using -+ * 'vsi_key_handle[keyval].keyword'. -+ */ -+ -+char *get_keyword_str(enum vsi_key_arg keyval) -+{ -+ int count, key_str_size; -+ -+ key_str_size = sizeof(vsi_key_handle) / sizeof(vsi_key_handle[0]); -+ for (count = 0; count < key_str_size; count++) { -+ if (vsi_key_handle[count].val == keyval) -+ return vsi_key_handle[count].keyword; -+ } -+ return NULL; -+} -+ - int vdp22_parse_str_vdpnl(struct vdpnl_vsi *vsi, u16 *key_flags, - char *orig_argvalue) - { -@@ -315,52 +334,57 @@ int vdp22_parse_str_vdpnl(struct vdpnl_vsi *vsi, u16 *key_flags, - numargs = get_arg_val_list(argvalue, ilen, &ioff, args, argvals); - if (numargs == 0) - goto out_free; -+ rc = -EINVAL; - for (i = 0; i < numargs; i++) { - vsi_key = get_keywork_val(args[i]); - switch (vsi_key) { - case VSI_MODE_ARG: - if (!argvals[i] || !getmode(vsi, argvals[i])) -- goto out_free; -+ goto out_err; - break; - case VSI_MGRID2_ARG: - if (!argvals[i] || !getmgr2id(vsi, argvals[i])) -- goto out_free; -+ goto out_err; - break; - case VSI_TYPEID_ARG: - if (!argvals[i] || - !getnumber(argvals[i], 0, 0xffffff, &no)) -- goto out_free; -+ goto out_err; - vsi->vsi_typeid = no; - break; - case VSI_TYPEIDVER_ARG: - if (!argvals[i] || !getnumber(argvals[i], 0, 0xff, &no)) -- goto out_free; -+ goto out_err; - vsi->vsi_typeversion = no; - break; - case VSI_VSIID_ARG: - if (!argvals[i] || - vdp_str2uuid(vsi->vsi_uuid, argvals[i], - sizeof(vsi->vsi_uuid))) -- goto out_free; -+ goto out_err; - vsi->vsi_idfmt = VDP22_ID_UUID; - break; - case VSI_FILTER_ARG: - if (idx < vsi->macsz && !getfid(vsi, argvals[i], idx)) -- goto out_free; -+ goto out_err; - idx++; - break; - case VSI_HINTS_ARG: - if (!argvals[i] || !gethints(vsi, argvals[i])) -- goto out_free; -+ goto out_err; - break; - default: -- goto out_free; -+ goto out_err; - } - num_arg_keys |= (1 << vsi_key); - } - *key_flags = num_arg_keys; - rc = 0; - -+out_err: -+ if (rc) -+ LLDPAD_ERR("Incorrect arguments specified for key %s\n", -+ get_keyword_str(vsi_key)); - out_free: - free(argvals); - out_args: -@@ -400,11 +424,16 @@ static int str2vdpnl(char *orig_argvalue, struct vdpnl_vsi *vsi) - u16 vsi_mand_mask = (1 << VSI_MAND_NUM_ARG) - 1; - u16 num_arg_keys = 0; - -- if (vdp22_parse_str_vdpnl(vsi, &num_arg_keys, orig_argvalue)) -+ rc = vdp22_parse_str_vdpnl(vsi, &num_arg_keys, orig_argvalue); -+ if (rc) { -+ LLDPAD_ERR("%s: Incorrect arguments\n", __func__); - goto out; -+ } - /* Return error if no filter information provided */ - if ((num_arg_keys & vsi_mand_mask) == vsi_mand_mask) - rc = 0; -+ else -+ LLDPAD_ERR("%s: Incomplete arguments\n", __func__); - out: - return rc; - } -@@ -444,7 +473,6 @@ static char *check_and_update(size_t *total, size_t *length, char *s, int c) - /* - * Convert VSI association to string. - */ --#ifdef LATER_USE - static const char *mode2str(unsigned char x) - { - if (x == VDP22_ASSOC) -@@ -457,7 +485,6 @@ static const char *mode2str(unsigned char x) - return "deassoc"; - return "unknown"; - } --#endif - - /* - * Convert filter information format into vlan[-mac][-group] string. -@@ -544,7 +571,12 @@ int vdp_vdpnl2str(struct vdpnl_vsi *p, char *s, size_t length) - char instance[VDP_UUID_STRLEN + 2]; - - mgrid2str(instance, p, sizeof(instance)); -- c = snprintf(s, length, "%02x%s%04x%s%02x%s%04x%lu%02x%s%04x%d", -+ c = snprintf(s, length, "%02x%s%04x%s%02x%s%04x%s%02x%s%04x%lu%02x%s" -+ "%04x%d", -+ (unsigned int)strlen(VSI22_ARG_MODE_STR), -+ VSI22_ARG_MODE_STR, -+ (unsigned int)strlen(mode2str(p->request)), -+ mode2str(p->request), - (unsigned int)strlen(VSI22_ARG_MGRID_STR), - VSI22_ARG_MGRID_STR, - (unsigned int)strlen(instance), instance, -diff --git a/vdptool.c b/vdptool.c -index 551e829..f7fd288 100644 ---- a/vdptool.c -+++ b/vdptool.c -@@ -54,6 +54,28 @@ - #include "qbg22.h" - #include "qbg_vdp22_clif.h" - #include "lldp_util.h" -+#include "qbg_vdp22def.h" -+ -+static char *print_vdp_status(enum vdp22_cmd_status status) -+{ -+ char *str; -+ -+ switch (status) { -+ case cmd_vdp_prot_no_support: -+ str = "VDP protocol not supported on interface"; -+ break; -+ case cmd_vdp_nomem: -+ str = "Not enough memory"; -+ break; -+ case cmd_vdp_busy: -+ str = "VSI association in progress"; -+ break; -+ default: -+ str = "Unknown status"; -+ break; -+ } -+ return str; -+} - - static char *print_status(cmd_status status) - { -@@ -97,7 +119,7 @@ static char *print_status(cmd_status status) - str = "TLV does not support agent type"; - break; - default: -- str = "Unknown status"; -+ str = print_vdp_status(status); - break; - } - return str; -@@ -165,7 +187,7 @@ static int render_cmd(struct cmd *cmd, int argc, char **args, char **argvals) - - int vdp_clif_command(struct clif *, char *, int); - --static int vdp_cmd_gettlv(struct clif *clif, int argc, char *argv[], -+static int vdp_cmd_getvsi(struct clif *clif, int argc, char *argv[], - struct cmd *cmd, int raw) - { - int numargs = 0; -@@ -219,7 +241,7 @@ out: - return cmd_invalid; - } - --static int vdp_cmd_settlv(struct clif *clif, int argc, char *argv[], -+static int vdp_cmd_setvsi(struct clif *clif, int argc, char *argv[], - struct cmd *cmd, int raw) - { - int numargs = 0; -@@ -299,12 +321,77 @@ static int vdp_parse_response(char *buf) - return hex2u8(buf + CLIF_STAT_OFF); - } - --int get_vsi_args(char *ibuf) -+void print_vsi_err_msg(char *key_val) -+{ -+ unsigned long errcode; -+ int resp_err, smi_err; -+ -+ errcode = strtol(key_val, NULL, 10); -+ resp_err = errcode & 0xff; -+ smi_err = (errcode >> VDP22_STATUS_BITS) & 0xff; -+ -+ switch (resp_err) { -+ case VDP22_RESP_INVALID_FORMAT: -+ printf("\tError returned by Bridge: %s\n", -+ VSI22_INVALID_FRMT_ERR_STR); -+ break; -+ case VDP22_RESP_NO_RESOURCES: -+ printf("\tError returned by Bridge: %s\n", -+ VSI22_NO_RES_ERR_STR); -+ break; -+ case VDP22_RESP_NO_VSIMGR: -+ printf("\tError returned by Bridge: %s\n", -+ VSI22_NO_VSIMGR_ERR_STR); -+ break; -+ case VDP22_RESP_OTHER: -+ printf("\tError returned by Bridge: %s\n", VSI22_OTHER_ERR_STR); -+ break; -+ case VDP22_RESP_NOADDR: -+ printf("\tError returned by Bridge: %s\n", -+ VSI22_NOADDR_ERR_STR); -+ break; -+ case VDP22_RESP_DEASSOC: -+ printf("\tError returned by Bridge: %s\n", VSI22_DEASS_ERR_STR); -+ break; -+ case VDP22_RESP_TIMEOUT: -+ printf("\tError returned by Bridge: %s\n", -+ VSI22_TIMEOUT_ERR_STR); -+ break; -+ case VDP22_RESP_KEEP: -+ printf("\tError returned by Bridge: %s\n", VSI22_KEEP_ERR_STR); -+ break; -+ default: -+ break; -+ } -+ if (smi_err & (1 << VDP22_KATO)) -+ printf("\tInternal Error : %s\n", VSI22_KATO_ERR_STR); -+ if (smi_err & (1 << VDP22_ACKTO)) -+ printf("\tInternal Error : %s\n", VSI22_ACKTO_ERR_STR); -+ if (smi_err & (1 << VDP22_TXERR)) -+ printf("\tInternal Error : %s\n", VSI22_TX_ERR_STR); -+} -+ -+static void print_vsi(char **args, char **argvals, int numargs, -+ bool err_flag) -+{ -+ int i; -+ -+ for (i = 0; i < numargs; i++) { -+ if (err_flag && (!strcmp(args[i], VSI22_ARG_HINTS_STR))) -+ print_vsi_err_msg(argvals[i]); -+ else { -+ printf("\t%s", args[i]); -+ printf(" = %s\n", argvals[i]); -+ } -+ } -+} -+ -+int get_vsi_args(char *ibuf, bool print_err_code) - { - int ioff = 0; - char **args; - char **argvals; -- int numargs, i; -+ int numargs; - int ilen = strlen(ibuf); - - /* count args and argvalus */ -@@ -321,17 +408,14 @@ int get_vsi_args(char *ibuf) - } - - numargs = get_arg_val_list(ibuf, ilen, &ioff, args, argvals); -- for (i = 0; i < numargs; i++) { -- printf("\t%s", args[i]); -- printf(" = %s\n", argvals[i]); -- } -+ print_vsi(args, argvals, numargs, print_err_code); - - free(args); - free(argvals); - return ioff; - } - --static void print_all_vsis(char *ibuf) -+static void print_all_vsis(char *ibuf, bool err_code, char *msg) - { - size_t ilen = strlen(ibuf); - u16 vsi_len; -@@ -346,8 +430,11 @@ static void print_all_vsis(char *ibuf) - ilen -= 2 * sizeof(u16); - strncpy(tmp_ibuf, ibuf + offset, vsi_len); - tmp_ibuf[vsi_len] = '\0'; -- printf("%s %d:\n", "VSI ", vsi_cnt); -- get_vsi_args(tmp_ibuf); -+ if (msg) -+ printf("%s\n", msg); -+ else -+ printf("%s %d:\n", "VSI ", vsi_cnt); -+ get_vsi_args(tmp_ibuf, err_code); - offset += vsi_len; - ilen -= vsi_len; - vsi_cnt++; -@@ -361,7 +448,7 @@ static void print_cmd_response(char *ibuf, int status) - int ioff; - - if (status != cmd_success) { -- printf("%s\n", print_status(status)); -+ printf("FAILED: %s\n", print_status(status)); - return; - } - -@@ -385,7 +472,7 @@ static void print_cmd_response(char *ibuf, int status) - - switch (cmd.cmd) { - case cmd_gettlv: -- print_all_vsis(ibuf + ioff); -+ print_all_vsis(ibuf + ioff, false, NULL); - break; - case cmd_settlv: - printf("%s", ibuf + ioff); -@@ -423,6 +510,7 @@ static void vdp_print_response(char *buf, int status) - static void vdp_print_event_msg(char *buf) - { - printf("%s buf:%s\n", __func__, buf); -+ print_all_vsis(buf + CLIF_RSP_OFF, true, "Response from VDP"); - } - - /* -@@ -519,8 +607,8 @@ static const char *commands_help = - " -v|version show version\n" - " -p|ping ping lldpad and query pid of lldpad\n" - " -q|quit exit lldptool (interactive mode)\n" --" -t|get-tlv get tlvid value\n" --" -T|set-tlv set arg for tlvid to value\n"; -+" -t|get-vsi get VSI association(s)\n" -+" -T|set-vsi set VSI association\n"; - - static struct clif *clif_conn; - static int cli_quit; -@@ -638,7 +726,7 @@ static int _clif_command(struct clif *clif, char *cmd, int print) - size_t len; - int ret; - int rc; -- char reply[200]; -+ char reply[MAX_CLIF_MSGBUF]; - size_t reply_len2 = sizeof(reply); - - print_raw_message(cmd, print); -@@ -653,7 +741,8 @@ static int _clif_command(struct clif *clif, char *cmd, int print) - printf("'%s' command timed out.\n", cmd); - return -2; - } else if (ret < 0) { -- printf("'%s' command failed.\n", cmd); -+ printf("'%s' command failed with error %s.\n", cmd, -+ strerror(errno)); - return -1; - } - if (print) { -@@ -662,10 +751,8 @@ static int _clif_command(struct clif *clif, char *cmd, int print) - } - if (cli_attached) { - rc = clif_vsievt(clif, reply, &reply_len2, 5); -- printf("\nReturn from vsievt %d ret %d Reply %s\n", rc, ret, -- reply); - if (!rc) -- printf("\nMsg is %s\n", reply); -+ print_all_vsis(reply, true, "Response from VDP"); - } - - return ret; -@@ -739,10 +826,10 @@ static struct cli_cmd { - { cmd_license, "license", cli_cmd_license }, - { cmd_version, "version", cli_cmd_version }, - { cmd_quit, "quit", cli_cmd_quit }, -- { cmd_gettlv, "gettlv", vdp_cmd_gettlv }, -- { cmd_gettlv, "get-tlv", vdp_cmd_gettlv }, -- { cmd_settlv, "settlv", vdp_cmd_settlv }, -- { cmd_settlv, "set-tlv", vdp_cmd_settlv }, -+ { cmd_gettlv, "getvsi", vdp_cmd_getvsi }, -+ { cmd_gettlv, "get-vsi", vdp_cmd_getvsi }, -+ { cmd_settlv, "setvsi", vdp_cmd_setvsi }, -+ { cmd_settlv, "set-vsi", vdp_cmd_setvsi }, - { cmd_nop, NULL, cli_cmd_nop } - }; - -@@ -774,8 +861,8 @@ static struct option lldptool_opts[] = { - {"help", 0, NULL, 'h'}, - {"version", 0, NULL, 'v'}, - {"stats", 0, NULL, 'S'}, -- {"get-tlv", 0, NULL, 't'}, -- {"set-tlv", 0, NULL, 'T'}, -+ {"get-vsi", 0, NULL, 't'}, -+ {"set-vsi", 0, NULL, 'T'}, - {"get-lldp", 0, NULL, 'l'}, - {"set-lldp", 0, NULL, 'L'}, - {0, 0, 0, 0} --- -2.1.0 - diff --git a/open-lldp-v1.0.1-7-VDP-Support-for-OUI-infrastructure-in-VDP22.patch b/open-lldp-v1.0.1-7-VDP-Support-for-OUI-infrastructure-in-VDP22.patch deleted file mode 100644 index aa2c193..0000000 --- a/open-lldp-v1.0.1-7-VDP-Support-for-OUI-infrastructure-in-VDP22.patch +++ /dev/null @@ -1,158 +0,0 @@ -From 64c9ba3c03c735e8031964edf52e148373ec29ce Mon Sep 17 00:00:00 2001 -From: padkrish -Date: Wed, 21 Jan 2015 03:38:24 +0000 -Subject: [PATCH] VDP: Support for OUI infrastructure in VDP22. - -This patch contains the header field changes for a general framework -for supporting OUI fields in VDP22 at the station side. The specific -changes are described below. - -qbg_vdpnl.h: -------------- -Couple of parameters are added to the vdpnl_vsi structure. One is -the number of OUI parameters. Generally, this will be 1, as the -chances of having different OUI in a single message for VDP22 is -quite low. Nevertheless, there's support for having multiple OUI -in a single VSI. The other field is a general structure of len,opaque -data format for carrying the OUI data. - -qbg_vdp22_oui.h: ----------------- -This is a new header file added for supporting the OUI framework. This -file contains the OUI specific sub-structures for vdpnl and vsi22 -structures and function handler structure.:w - -Signed-off-by: padkrish -Signed-off-by: John Fastabend ---- - Makefile.am | 3 ++- - include/qbg_vdp22.h | 4 ++++ - include/qbg_vdp22_oui.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ - include/qbg_vdp22def.h | 1 + - include/qbg_vdpnl.h | 2 ++ - 5 files changed, 55 insertions(+), 1 deletion(-) - create mode 100644 include/qbg_vdp22_oui.h - -diff --git a/Makefile.am b/Makefile.am -index fc4f8d6..403088b 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -69,7 +69,8 @@ lldp_8021qaz_cmds.c include/lldp_8021qaz_cmds.h \ - include/lldp_evb22.h lldp_evb22.c lldp_evb22_cmds.c \ - include/qbg22.h include/qbg_ecp22.h qbg/ecp22.c \ - include/qbg_vdp22.h qbg/vdp22.c qbg/vdpnl.c qbg/vdp22sm.c qbg/vdp22br.c \ --include/qbg_vdp22def.h qbg/vdp22_cmds.c qbg/vdp_ascii.c -+include/qbg_vdp22def.h qbg/vdp22_cmds.c qbg/vdp_ascii.c \ -+include/qbg_vdp22_oui.h - - lib_LTLIBRARIES = liblldp_clif.la - liblldp_clif_la_LDFLAGS = -version-info 1:0:0 -diff --git a/include/qbg_vdp22.h b/include/qbg_vdp22.h -index 6c3c9ee..6585a10 100644 ---- a/include/qbg_vdp22.h -+++ b/include/qbg_vdp22.h -@@ -59,6 +59,7 @@ - #include - - #include -+#include - - enum vdp22_role { /* State for VDP22 bridge processing */ - VDP22_BRIDGE = 1, /* Bridge role */ -@@ -140,6 +141,8 @@ struct vsi22 { - unsigned char fif; /* Filter info format */ - unsigned short no_fdata; /* Entries in filter data */ - struct fid22 *fdata; /* Filter data variable length */ -+ unsigned short no_ouidata; /* Entries in OUI data */ -+ struct vdp22_oui_data_s *oui_str_data; /* OUI data variable length */ - struct vdp22 *vdp; /* Back pointer to VDP head */ - unsigned long flags; /* Flags, see above */ - struct vdp22smi smi; /* State machine information */ -@@ -189,6 +192,7 @@ void vdp22_stop_timers(struct vsi22 *); - int vdp22_start_localchange_timer(struct vsi22 *); - bool vdp22_cmp_fdata(struct vsi22 *, struct vsi22 *); - void vdp22_delete_vsi(struct vsi22 *); -+struct vdp22_oui_handler_s * vdp22_get_oui_hndlr(char *); - - /* - * Functions to get and set vlan identifier and qos. -diff --git a/include/qbg_vdp22_oui.h b/include/qbg_vdp22_oui.h -new file mode 100644 -index 0000000..0aeb7b9 ---- /dev/null -+++ b/include/qbg_vdp22_oui.h -@@ -0,0 +1,46 @@ -+/******************************************************************************* -+ -+ Implementation of OUI for VDP2.2 -+ Copyright (c) 2012-2014 by Cisco Systems, Inc. -+ -+ Author(s): Padmanabhan Krishnan -+ -+ This program is free software; you can redistribute it and/or modify it -+ under the terms and conditions of the GNU General Public License, -+ version 2, as published by the Free Software Foundation. -+ -+ This program is distributed in the hope it will be useful, but WITHOUT -+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+ more details. -+ -+ You should have received a copy of the GNU General Public License along with -+ this program; if not, write to the Free Software Foundation, Inc., -+ 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+ -+ The full GNU General Public License is included in this distribution in -+ the file called "COPYING". -+*******************************************************************************/ -+ -+#ifndef __VDP22_OUI_H__ -+#define __VDP22_OUI_H__ -+ -+#include -+ -+/* -+ * Generic OUI related defines -+ */ -+enum vdp22_oui { -+ VDP22_OUI_TYPE_LEN = 3, /* Size of OUI Type field */ -+ VDP22_OUI_MAX_NAME = 20, -+}; -+ -+struct vdp22_oui_data_s { -+ void *vsi_data; -+ unsigned char oui_type[VDP22_OUI_TYPE_LEN]; -+ char oui_name[VDP22_OUI_MAX_NAME]; -+ int len; -+ void *data; -+}; -+ -+#endif /* __VDP22_OUI_H__ */ -diff --git a/include/qbg_vdp22def.h b/include/qbg_vdp22def.h -index c305a2b..a2d2654 100644 ---- a/include/qbg_vdp22def.h -+++ b/include/qbg_vdp22def.h -@@ -91,6 +91,7 @@ enum vsi_key_arg { - VSI_FILTER_ARG, - VSI_MAND_NUM_ARG, - VSI_HINTS_ARG, -+ VSI_OUI_ARG, - VSI_INVALID_ARG - }; - -diff --git a/include/qbg_vdpnl.h b/include/qbg_vdpnl.h -index c5c93ed..bf18e71 100644 ---- a/include/qbg_vdpnl.h -+++ b/include/qbg_vdpnl.h -@@ -66,6 +66,8 @@ struct vdpnl_vsi { /* Data structure for VSI data via netlink */ - unsigned char filter_fmt; /* Filter format type */ - int macsz; /* Entries in mac-vlan pair list */ - struct vdpnl_mac *maclist; /* List of MAC-VLAN pairs */ -+ int ouisz; /* No of OUI entries */ -+ struct vdpnl_oui_data_s *oui_list; /* OUI Entries */ - }; - - int vdpnl_recv(unsigned char *, size_t); --- -2.1.0 - diff --git a/open-lldp-v1.0.1-8-VDP-Support-for-OUI-infrastructure-in-vdptool.patch b/open-lldp-v1.0.1-8-VDP-Support-for-OUI-infrastructure-in-vdptool.patch deleted file mode 100644 index 674f448..0000000 --- a/open-lldp-v1.0.1-8-VDP-Support-for-OUI-infrastructure-in-vdptool.patch +++ /dev/null @@ -1,355 +0,0 @@ -From 321bfe6c5cbad58e97fbb2df3c93564c89f1e09b Mon Sep 17 00:00:00 2001 -From: padkrish -Date: Wed, 21 Jan 2015 03:38:53 +0000 -Subject: [PATCH] VDP: Support for OUI infrastructure in vdptool. - -This patch contains the changes made in vdptool to support OUI fields -in vdptool. This commit has only the infra-structure changes needed -for supporting OUI. No specific OUI fields are added as a part of this -commit. The man page for vdptool is also modified accordingly. - -The OUI data can be given as input to vdptool in different ways. It -could be - - vdptool .... -c oui=companyA,Data1 -c oui=companyB,Data2 -c oui=companyA,Data3 - - Or - - vdptool .... -c oui=companyA,Data1Data3 -c oui=companyB,data2 - -where companyA and companyB are the name of the Organizations. -Anything after the comma in OUI data field is Org specific and it's -upto the respective organization specific handlers to encode it so -that it could be decoded appropriately by the ORG specific handlers -inside lldpad. That is, Data1 and Data3 is specific to Organization -'companyA' and the OUI handlers of companyA in vdptool and lldpad is -responsible for encoding/decoding the data. The common code in vdptool -and lldpad just treats it as opaque data. 'companyA' or 'companyB' -above is the key using which the right handlers will be called. - -Irrespective of how the command line interface to vdptool is, the -input to lldpad is always the same. i.e. KeywordlenKeywordDatalenData -For OUI, the data field will have the complete OUI data starting with -ORG name (e.g companyA). So, in order to call the right handler -routine, the OUI data field is split as OUInamelenOUInameOUIData. - -OUInamelen is 2B. - -For example if the following is given: - -vdptool -T -W -i eth2 -V assoc \ - -c mode=assoc -c mgrid2=0 -c typeid=0 -c typeidver=0 \ - -c uuid=18ea3452-b364-4e13-a1a2-9c6524deb685 -c hints=none \ - -c filter=0-fa:16:3e:4c:2d:85-90001 -c oui=companyA,val1=data1 - -The data sent to lldpad by vdptool will be as follows assuming -companyA encode handlers in vdptool encodes it the same way: - -04mode0005assoc06mgrid20001006typeid0001009typeidver0001004uuid002418ea3452-b364-4e13-a1a2-9c6524deb68505hints0004none06filter00190-fa:16:3e:4c:2d:85-9000103oui001408companyAval1=data1 - -This commit will not insert the oui fields as given above because no OUI -specific handlers are added. - -Signed-off-by: padkrish -Signed-off-by: John Fastabend ---- - docs/vdptool.8 | 50 +++++++++++++++- - include/qbg_vdp22_oui.h | 11 ++++ - vdptool.c | 149 +++++++++++++++++++++++++++++++++++++++++++++--- - 3 files changed, 201 insertions(+), 9 deletions(-) - -diff --git a/docs/vdptool.8 b/docs/vdptool.8 -index 0b50a13..4580c71 100644 ---- a/docs/vdptool.8 -+++ b/docs/vdptool.8 -@@ -182,6 +182,31 @@ delimited by two slashes ('--'), - also known as filter information format 3. - For vlan and group details see (1) and (4). - .RE -+.TP -+.B "oui (Organizationally Unique Identifier):" -+This defines the optional Organizationally -+defined information field. This contains the -+specific sets of values for this entry. There -+can be multiple organizational specific fields, -+in which case there will be multiple keywords -+.I oui= -+followed by the values. -+The value is of the following format: -+.EX -+oui=OUI,[Organization specific values ] -+.EE -+The OUI specifies the name of the Organization -+that is responsible for defining -+this content. A comma is mandatory after the OUI -+field. The fields following this -+ is specified by the organization and -+hence will be decoded based on the value of this -+OUI field. Currently, the following values for -+OUI are supported. -+.RS -+.IP cisco - -+Specifies Cisco defined OUI. -+.TP - .SH COMMANDS - .TP - .B license -@@ -226,13 +251,33 @@ vdptool -i eth2 -T -V assoc -c mode=assoc -c mgrid2=blabla \\ - -c filter=2-52:00:00:11:22:33-200 - .fi - .TP --Create a VSI association on interface eth2 and wait for the response from the bridge -+Create a VSI association on interface eth2 and wait for the -+response from the bridge - .br - .nf - vdptool -i eth2 -T -W -V assoc -c mode=assoc -c mgrid2=blabla \\ - -c typeid=5 -c uuid=1122 -c typeidver=4 -c hints=none \\ - -c filter=0-52:00:00:11:22:33-200 - .fi -+.TP -+Create a VSI association on interface eth2 wth OUI parameters -+and wait for the response from the bridge -+.br -+.nf -+vdptool -i eth2 -T -W -V assoc -c mode=assoc -c mgrid2=blabla \\ -+ -c typeid=5 -c uuid=1122 -c typeidver=4 -c hints=none \\ -+ -c filter=0-52:00:00:11:22:33-200 -c oui=CompanyA,data -+.fi -+.TP -+Create a VSI association on interface eth2 wth multiple OUI parameters -+and wait for the response from the bridge -+.br -+.nf -+vdptool -i eth2 -T -W -V assoc -c mode=assoc -c mgrid2=blabla \\ -+ -c typeid=5 -c uuid=1122 -c typeidver=4 -c hints=none \\ -+ -c filter=0-52:00:00:11:22:33-200 -c oui=CompanyA,data \\ -+ -c oui=CompanyB,data -+.fi - - .TP - Query all VSI association on interface eth2 -@@ -240,7 +285,8 @@ Query all VSI association on interface eth2 - vdptool -i eth2 -t -V assoc - - .TP --Query VSI association on interface eth2 that matches specific VSI parameters. Any of the VSI parameters below can be omitted. -+Query VSI association on interface eth2 that matches specific -+VSI parameters. Any of the VSI parameters below can be omitted. - .br - vdptool -i eth2 -t -V assoc -t -V assoc -c mode=assoc \\ - -c mgrid2=blabla -c typeid=5 -c uuid=1122 \\ -diff --git a/include/qbg_vdp22_oui.h b/include/qbg_vdp22_oui.h -index 0aeb7b9..d31c6ad 100644 ---- a/include/qbg_vdp22_oui.h -+++ b/include/qbg_vdp22_oui.h -@@ -33,6 +33,7 @@ - enum vdp22_oui { - VDP22_OUI_TYPE_LEN = 3, /* Size of OUI Type field */ - VDP22_OUI_MAX_NAME = 20, -+ MAX_OUI_DATA_LEN = 200 - }; - - struct vdp22_oui_data_s { -@@ -43,4 +44,14 @@ struct vdp22_oui_data_s { - void *data; - }; - -+typedef struct vdptool_oui_data_s { -+ char oui_name[VDP22_OUI_MAX_NAME]; -+ char data[MAX_OUI_DATA_LEN]; -+} vdptool_oui_data_t; -+ -+typedef struct vdptool_oui_hndlr_tbl_s { -+ char *oui_name; -+ bool (*oui_cli_encode_hndlr)(char *dst, char *src, size_t len); -+} vdptool_oui_hndlr_tbl_t; -+ - #endif /* __VDP22_OUI_H__ */ -diff --git a/vdptool.c b/vdptool.c -index f7fd288..c857a85 100644 ---- a/vdptool.c -+++ b/vdptool.c -@@ -55,6 +55,22 @@ - #include "qbg_vdp22_clif.h" - #include "lldp_util.h" - #include "qbg_vdp22def.h" -+#include "qbg_vdp22_oui.h" -+ -+#define OUI_ENCODE_HNDLR(name) name##_oui_encode_hndlr -+#define EXTERN_OUI_FN(name) \ -+ extern bool name##_oui_encode_hndlr(char *, char *, size_t) -+ -+/* The handler declaration for encoding OUI specific information should be -+ * here. The corresponding decoder handler should be in lldpad. -+ */ -+ -+ -+/* The OUI specific handlers should be added here */ -+ -+vdptool_oui_hndlr_tbl_t oui_hndlr_tbl[] = { -+}; -+ - - static char *print_vdp_status(enum vdp22_cmd_status status) - { -@@ -144,23 +160,137 @@ static void get_arg_value(char *str, char **arg, char **argval) - *arg = str; - } - --static int render_cmd(struct cmd *cmd, int argc, char **args, char **argvals) -+static char *get_oui_name(char *argvals) -+{ -+ char *oui_loc; -+ -+ oui_loc = strchr(argvals, ','); -+ if (oui_loc == NULL) -+ return NULL; -+ *oui_loc = '\0'; -+ return oui_loc + 1; -+} -+ -+static void fill_oui_hdr(vdptool_oui_data_t *oui_data, char *oui_name) -+{ -+ strncpy(oui_data->oui_name, oui_name, sizeof(oui_data->oui_name)); -+ snprintf(oui_data->data, sizeof(oui_data->data), "%02x%s", -+ (unsigned int)strlen(oui_data->oui_name), oui_data->oui_name); -+} -+ -+static bool run_vdptool_oui_hndlr(vdptool_oui_data_t *oui_data, char *argvals) -+{ -+ int cnt = 0, tbl_size; -+ char *dst; -+ size_t len = 0; -+ -+ tbl_size = sizeof(oui_hndlr_tbl) / sizeof(vdptool_oui_hndlr_tbl_t); -+ for (cnt = 0; cnt < tbl_size; cnt++) { -+ if (!strncmp(oui_hndlr_tbl[cnt].oui_name, oui_data->oui_name, -+ VDP22_OUI_MAX_NAME)) { -+ len = strlen(oui_data->data); -+ if (len >= sizeof(oui_data->data)) -+ return false; -+ dst = oui_data->data + len; -+ return oui_hndlr_tbl[cnt].oui_cli_encode_hndlr(dst, -+ argvals, len); -+ } -+ } -+ return false; -+} -+ -+/* -+ * The OUI can be input in many ways. -+ * It could be vdptool .... -c oui=companyA,Data1 -c oui=companyB,Data2 \ -+ * -c oui=companyA,Data3 -+ * Or -+ * vdptool .... -c oui=companyA,Data1Data3 -c oui=companyB,data2 -+ * This function takes care of both the case cases -+ * -+ * Anything after the comma in OUI data field is Org specific and it's upto -+ * the respective organization specific handlers to encode it so that it could -+ * be decoded appropriately by the ORG specific handlers inside lldpad. -+ * That is, Data1 and Data3 is ORG companyA specific and the OUI handlers -+ * of ORG companyA in vdptool and lldpad is responsible for encoding/decoding. -+ * -+ * Irrespective of how the command line interface to vdptool is, the input to -+ * lldpad is always the same. i.e. KeywordlenKeywordDatalenData -+ * For OUI, the data field will have the complete OUI data starting with -+ * ORG name (e.g companyA). So, in order to call the right handler routine, -+ * the OUI data field is split as OUInamelenOUInameOUIData. -+ * OUInamelen is 2B. -+ */ -+ -+static bool rewrite_oui_argval(char *argvals, vdptool_oui_data_t **oui_data, -+ int total_oui) -+{ -+ char *new_oui_argvals, *new_oui_name, *exist_oui_name; -+ bool flag = true, ret = false; -+ int cnt; -+ -+ new_oui_argvals = get_oui_name(argvals); -+ if (!new_oui_argvals) { -+ printf("Incorrect OUI Value, missing comma as delimited for " -+ "OUI Type\n"); -+ return false; -+ } -+ new_oui_name = argvals; -+ for (cnt = 0; cnt < total_oui; cnt++) { -+ if (!oui_data[cnt]) -+ continue; -+ exist_oui_name = oui_data[cnt]->oui_name; -+ if (!strncmp(new_oui_name, exist_oui_name, -+ VDP22_OUI_MAX_NAME)) { -+ flag = false; -+ break; -+ } -+ } -+ if (flag) { -+ oui_data[total_oui] = calloc(1, sizeof(vdptool_oui_data_t)); -+ fill_oui_hdr(oui_data[total_oui], new_oui_name); -+ ret = run_vdptool_oui_hndlr(oui_data[total_oui], -+ new_oui_argvals); -+ } else -+ ret = run_vdptool_oui_hndlr(oui_data[cnt], new_oui_argvals); -+ if (!ret) -+ return false; -+ return flag; -+} -+ -+int render_cmd(struct cmd *cmd, int argc, char **args, char **argvals) - { - int len; - int i; - int fid = 0, oui = 0; -+ vdptool_oui_data_t **oui_data; -+ bool is_new; - - len = sizeof(cmd->obuf); - -+ /* To avoid another loop to figure the number of OUI's */ -+ oui_data = calloc(argc, sizeof(vdptool_oui_data_t *)); -+ if (!oui_data) { -+ printf("Not enough memory\n"); -+ return 0; -+ } -+ - if ((cmd->cmd == cmd_settlv) || (cmd->cmd == cmd_gettlv)) { - for (i = 0; i < argc; i++) { -- if (args[i]) { -- if (!strncasecmp(args[i], "filter", -- strlen("filter"))) -- fid++; -- else if (!strncasecmp(args[i], "oui", -- strlen("oui"))) -+ if (!args[i]) -+ continue; -+ if (!strncasecmp(args[i], "filter", strlen("filter"))) -+ fid++; -+ else if (!strncasecmp(args[i], "oui", strlen("oui"))) { -+ is_new = rewrite_oui_argval(argvals[i], -+ oui_data, -+ oui); -+ if (is_new) { -+ argvals[i] = oui_data[oui]->data; - oui++; -+ } else { -+ args[i] = NULL; -+ argvals[i] = NULL; -+ } - } - } - } -@@ -182,6 +312,11 @@ static int render_cmd(struct cmd *cmd, int argc, char **args, char **argvals) - len - strlen(cmd->obuf), "%04x%s", - (unsigned int)strlen(argvals[i]), argvals[i]); - } -+ for (i = 0; i < oui; i++) { -+ if (oui_data[i]) -+ free(oui_data[i]); -+ } -+ free(oui_data); - return strlen(cmd->obuf); - } - --- -2.1.0 - diff --git a/open-lldp-v1.0.1-9-VDP-Support-for-OUI-infrastructure-in-vdp22.patch b/open-lldp-v1.0.1-9-VDP-Support-for-OUI-infrastructure-in-vdp22.patch deleted file mode 100644 index 47c73ac..0000000 --- a/open-lldp-v1.0.1-9-VDP-Support-for-OUI-infrastructure-in-vdp22.patch +++ /dev/null @@ -1,524 +0,0 @@ -From 19bdcc3fe966dc7d6fc154d7d29addfe200c6afc Mon Sep 17 00:00:00 2001 -From: padkrish -Date: Wed, 21 Jan 2015 03:39:19 +0000 -Subject: [PATCH] VDP: Support for OUI infrastructure in vdp22. - -This commit is a framework for supporting OUI fields -in VDP22. This specific patch has changes for converting -OUI input to vdpnl structure, vdpnl to VSI - and place-holders for calling the OUI handlers. -The specific changes are: - -vdp22.c: -------- -Currently, the OUI handler code is linked statically to the lldpad (vdp22). -Some more enhancements are needed to support the dynamic linking of OUI -handler code. This is the general flow: -All the OUI handlers specify their init function in vdp22_oui_init_list. When -VDP22 receives a command with the OUI fields, then based on the OUI value, -it calls the appropriate init function. The OUI specific init function -implemented in the OUI specific file (not in this file) then registers its -handlers with VDP22. The handlers prototype is in qbg_vdp22_oui.h and it -currently has: -1. Handler for converting the OUI string to OUI structure which is a member of vdpnl structure. -2. Handler for converting the OUI structure from vdpnl structure to a OUI structure which is a member of vsi22 structure -3. Handler for creating the OUI fields for Tx. -4. handler for processing/Rx the OUI information -5. Handler for freeing the OUI structure -6. Handler to return the size of OUI PTLV - -Then, accordingly the respective handlers are called. -Function 'vdp22_delete_oui' calls each of the registered handlers for freeing -its OUI specific fields. -Function 'vdpnl_alloc_vsi_oui' calls each of the registered handlers for -creating a OUI structure in vsi22 structure. -Function 'oui_vdp_hndlr_init' is called by OUI specific code to register -its handlers. -Function 'vdp22_oui_init' calls the OUI specific init function. -Comments are embedded in the other functions added. - -vdp22sm.c: ----------- -Function 'oui22_ptlv_sz' calls each of the handlers in its VSI structure -to get the size of the OUI specific PTLV size. -Function 'oui22_2tlv' calls the handler for generating the OUI data for Tx. - -vdp22_cmds.c: -------------- -This file has a minor modification to get the number of OUI fields which is -encoded in the input to lldpad. - -vdp_ascii.c: ------------- -Function 'oui_str2vdpnl' calls the respective handler to convert the OUI input -string to the OUI structure stored in vdpnl structure. - -Signed-off-by: padkrish -Signed-off-by: John Fastabend ---- - include/qbg_vdp22_oui.h | 38 ++++++++++++ - qbg/vdp22.c | 159 ++++++++++++++++++++++++++++++++++++++++++++++++ - qbg/vdp22_cmds.c | 10 ++- - qbg/vdp22sm.c | 54 +++++++++++++++- - qbg/vdp_ascii.c | 37 ++++++++++- - 5 files changed, 293 insertions(+), 5 deletions(-) - -diff --git a/include/qbg_vdp22_oui.h b/include/qbg_vdp22_oui.h -index d31c6ad..0cce31e 100644 ---- a/include/qbg_vdp22_oui.h -+++ b/include/qbg_vdp22_oui.h -@@ -32,6 +32,7 @@ - */ - enum vdp22_oui { - VDP22_OUI_TYPE_LEN = 3, /* Size of OUI Type field */ -+ MAX_NUM_OUI = 10, - VDP22_OUI_MAX_NAME = 20, - MAX_OUI_DATA_LEN = 200 - }; -@@ -54,4 +55,41 @@ typedef struct vdptool_oui_hndlr_tbl_s { - bool (*oui_cli_encode_hndlr)(char *dst, char *src, size_t len); - } vdptool_oui_hndlr_tbl_t; - -+struct vdpnl_oui_data_s { -+ unsigned char oui_type[VDP22_OUI_TYPE_LEN]; -+ char oui_name[VDP22_OUI_MAX_NAME]; -+ int len; -+ char data[MAX_OUI_DATA_LEN]; -+ /* If vdpnl structure is used for IPC, then this cannot be a ptr as -+ * otherwise it needs to be flattened out. If this is just used within -+ * lldpad then this can be made a ptr instead of a static array. -+ * May need to revisit later TODO -+ */ -+}; -+ -+struct vdp22_oui_init_s { -+ unsigned char oui_type[VDP22_OUI_TYPE_LEN]; -+ char oui_name[VDP22_OUI_MAX_NAME]; -+ bool (*oui_init)(); -+}; -+ -+struct vdp22_oui_handler_s { -+ unsigned char oui_type[VDP22_OUI_TYPE_LEN]; -+ char oui_name[VDP22_OUI_MAX_NAME]; -+ /* This handler converts the OUI string to vdpnl structure */ -+ bool (*str2vdpnl_hndlr)(struct vdpnl_oui_data_s *, char *); -+ /* This handler converts the vdpnl structure to vsi22 structure */ -+ bool (*vdpnl2vsi22_hndlr)(void *, struct vdpnl_oui_data_s *, -+ struct vdp22_oui_data_s *); -+ /* This handler creates the OUI fields for Tx */ -+ size_t (*vdp_tx_hndlr)(char unsigned *, -+ struct vdp22_oui_data_s *, size_t); -+ /* This handler is called for processing/Rx the OUI information */ -+ bool (*vdp_rx_hndlr)(); -+ /* This handler frees the OUI structures */ -+ bool (*vdp_free_oui_hndlr)(struct vdp22_oui_data_s *); -+ /* This handler returns the size of OUI PTLV */ -+ unsigned long (*oui_ptlv_size_hndlr)(void *); -+}; -+ - #endif /* __VDP22_OUI_H__ */ -diff --git a/qbg/vdp22.c b/qbg/vdp22.c -index d7aa648..5cae83f 100644 ---- a/qbg/vdp22.c -+++ b/qbg/vdp22.c -@@ -44,6 +44,22 @@ - #include "qbg_vdp22_cmds.h" - #include "qbg_vdp22def.h" - -+#define INIT_FN(name) name##_oui_init -+#define EXTERN_FN(name)\ -+extern bool name##_oui_init() -+ -+/* Init handlers for OUI. OUI handlers should be added in vdp22_oui_init_list. -+ * First argument specifies the OUI code assigned to the Organization. -+ * Second argument is the string which should match with the CLI and the third -+ * argument is the init handler. -+ */ -+ -+struct vdp22_oui_init_s vdp22_oui_init_list[] = { -+}; -+ -+struct vdp22_oui_handler_s vdp22_oui_list[MAX_NUM_OUI]; -+unsigned char g_oui_index; -+ - /* - * VDP22 helper functions - */ -@@ -218,6 +234,36 @@ void vdp22_showvsi(struct vsi22 *p) - } - - /* -+ * Delete the OUI structures of VSI22 -+ * This calls the respective OUI handlers which are responsible for freeing -+ * the OUI specific 'data' element of 'vdp22_oui_data_s' structure. -+ */ -+ -+static void vdp22_delete_oui(struct vsi22 *p) -+{ -+ struct vdp22_oui_data_s *oui_str; -+ struct vdp22_oui_handler_s *oui_hndlr; -+ int idx; -+ bool ret; -+ -+ if ((p->no_ouidata == 0) || (!p->oui_str_data)) -+ return; -+ for (idx = 0; idx < p->no_ouidata; idx++) { -+ oui_str = &p->oui_str_data[idx]; -+ oui_hndlr = vdp22_get_oui_hndlr(oui_str->oui_name); -+ if (!oui_hndlr) -+ LLDPAD_ERR("%s: Unknown OUI %s\n", -+ __func__, oui_str->oui_name); -+ else { -+ ret = oui_hndlr->vdp_free_oui_hndlr(oui_str); -+ LLDPAD_DBG("%s: Free handler returned %d\n", __func__, -+ ret); -+ } -+ } -+ free(p->oui_str_data); -+} -+ -+/* - * Delete a complete VSI node not on queue. - */ - void vdp22_delete_vsi(struct vsi22 *p) -@@ -225,6 +271,7 @@ void vdp22_delete_vsi(struct vsi22 *p) - LLDPAD_DBG("%s:%s vsi:%p(%02x)\n", __func__, p->vdp->ifname, p, - p->vsi[0]); - free(p->fdata); -+ vdp22_delete_oui(p); - free(p); - } - -@@ -475,6 +522,38 @@ static bool filter_ok(unsigned char ffmt, struct fid22 *fp, - return rc; - } - -+static void vdpnl_alloc_vsi_oui(struct vdpnl_vsi *vsi, struct vsi22 *p) -+{ -+ struct vdp22_oui_handler_s *oui_hndlr; -+ bool ret; -+ int idx; -+ -+ if (vsi->ouisz == 0) -+ return; -+ p->no_ouidata = vsi->ouisz; -+ p->oui_str_data = calloc(vsi->ouisz, sizeof(struct vdp22_oui_data_s)); -+ if (!p->oui_str_data) { -+ LLDPAD_ERR("%s: calloc return failure\n", __func__); -+ return; -+ } -+ for (idx = 0; idx < vsi->ouisz; idx++) { -+ struct vdpnl_oui_data_s *from = &vsi->oui_list[idx]; -+ struct vdp22_oui_data_s *to = &p->oui_str_data[idx]; -+ -+ oui_hndlr = vdp22_get_oui_hndlr(from->oui_name); -+ if (!oui_hndlr) -+ LLDPAD_ERR("%s: Unknown OUI Name %s\n", -+ __func__, from->oui_name); -+ else { -+ ret = oui_hndlr->vdpnl2vsi22_hndlr(p, from, to); -+ if (!ret) -+ LLDPAD_ERR("%s: handler return error for " -+ "oui %s\n", __func__, -+ from->oui_name); -+ } -+ } -+} -+ - /* - * Allocate a VSI node with filter information data. - * Check if input data is valid. -@@ -540,6 +619,7 @@ static struct vsi22 *vdp22_alloc_vsi_int(struct vdpnl_vsi *vsi, - fp->requestor.req_pid = vsi->req_pid; - fp->requestor.req_seq = vsi->req_seq; - } -+ vdpnl_alloc_vsi_oui(vsi, p); - *rc = 0; - LLDPAD_DBG("%s:%s vsi:%p(%02x)\n", __func__, vsi->ifname, p, p->vsi[0]); - return p; -@@ -1113,3 +1193,82 @@ void copy_vsi_external(struct vdpnl_vsi *vsi, struct vsi22 *p, int clif) - { - copy_vsi(vsi, p, clif); - } -+ -+/* -+ * This is called by the ORG specific code to register its handlers. -+ */ -+ -+bool oui_vdp_hndlr_init(struct vdp22_oui_handler_s *handler_ptr) -+{ -+ if (!handler_ptr) { -+ LLDPAD_DBG("%s: NULL handler\n", __func__); -+ return false; -+ } -+ memcpy(&(vdp22_oui_list[g_oui_index]), handler_ptr, -+ sizeof(vdp22_oui_list[g_oui_index])); -+ g_oui_index++; -+ return true; -+} -+ -+/* -+ * This calls the ORG specific init function. Then the ORG specific init -+ * function registers its handlers. -+ */ -+ -+static void vdp22_oui_init(char *oui_name) -+{ -+ int total; -+ int idx; -+ -+ total = sizeof(vdp22_oui_init_list) / sizeof(vdp22_oui_init_list[0]); -+ for (idx = 0; idx < total; idx++) { -+ if (!strncmp(vdp22_oui_init_list[idx].oui_name, oui_name, -+ sizeof(vdp22_oui_init_list[idx].oui_name))) { -+ if (!vdp22_oui_init_list[idx].oui_init()) -+ LLDPAD_ERR("%s: oui init return error for OUI " -+ "%s\n", __func__, oui_name); -+ } -+ } -+} -+ -+static struct vdp22_oui_handler_s *get_oui_hndlr_internal(char *oui_name) -+{ -+ int total; -+ int idx; -+ -+ total = g_oui_index; -+ for (idx = 0; idx < total; idx++) { -+ if (!strncmp(vdp22_oui_list[idx].oui_name, oui_name, -+ sizeof(vdp22_oui_list[idx].oui_name))) -+ return &vdp22_oui_list[idx]; -+ } -+ return NULL; -+} -+ -+/* -+ * Return the handler structure associated with this OUI. -+ * If the handler is already registered, then get_oui_hndlr_internal function -+ * will return it. Otherwise, vdp22_oui_init is called so that the handler -+ * init function is called which will register its handlers. This is done so -+ * that the ORG specific handlers are registered only on demand. -+ */ -+ -+struct vdp22_oui_handler_s *vdp22_get_oui_hndlr(char *oui_name) -+{ -+ struct vdp22_oui_handler_s *hndlr; -+ -+ if (oui_name == NULL) { -+ LLDPAD_ERR("%s: NULL arg\n", __func__); -+ return NULL; -+ } -+ /* -+ * First check if the handler exists. -+ * If not the OUI plugin is probably not initialized -+ * Initialize the handlers -+ */ -+ hndlr = get_oui_hndlr_internal(oui_name); -+ if (hndlr != NULL) -+ return hndlr; -+ vdp22_oui_init(oui_name); -+ return get_oui_hndlr_internal(oui_name); -+} -diff --git a/qbg/vdp22_cmds.c b/qbg/vdp22_cmds.c -index 5d5ef6b..5b5788f 100644 ---- a/qbg/vdp22_cmds.c -+++ b/qbg/vdp22_cmds.c -@@ -356,20 +356,25 @@ static int get_vdp22_retval(int rc) - } - } - --static int set_arg_vsi3(struct cmd *cmd, char *argvalue, bool test, int size) -+static int set_arg_vsi3(struct cmd *cmd, char *argvalue, bool test, int size, -+ int oui_size) - { - cmd_status good_cmd = vdp22_cmdok(cmd, cmd_settlv); - int rc; - struct vdpnl_vsi vsi; - struct vdpnl_mac mac[size]; -+ struct vdpnl_oui_data_s oui[oui_size]; - - if (good_cmd != cmd_success) - return good_cmd; - - memset(&vsi, 0, sizeof(vsi)); - memset(&mac, 0, sizeof(mac)); -+ memset(&oui, 0, sizeof(oui)); - vsi.maclist = mac; - vsi.macsz = size; -+ vsi.oui_list = (struct vdpnl_oui_data_s *)oui; -+ vsi.ouisz = oui_size; - rc = vdp_str2vdpnl(argvalue, &vsi, cmd->ifname); - if (rc) { - good_cmd = get_vdp22_retval(rc); -@@ -392,11 +397,12 @@ out: - static int set_arg_vsi2(struct cmd *cmd, char *argvalue, bool test) - { - int no = (cmd->ops >> OP_FID_POS) & 0xff; -+ int oui_no = (cmd->ops >> OP_OUI_POS) & 0xff; - - if (no <= 0) - return -EINVAL; - if ((cmd->ops & op_arg) && (cmd->ops & op_argval)) -- return set_arg_vsi3(cmd, argvalue, test, no); -+ return set_arg_vsi3(cmd, argvalue, test, no, oui_no); - else /* Not supported for now */ - return cmd_failed; - } -diff --git a/qbg/vdp22sm.c b/qbg/vdp22sm.c -index 83a97fb..db0e413 100644 ---- a/qbg/vdp22sm.c -+++ b/qbg/vdp22sm.c -@@ -184,6 +184,33 @@ static inline size_t vsi22_ptlv_sz(struct vsi22 *vp) - } - - /* -+ * This function calls the registered OUI handlers that returns the size of -+ * the OUI data. -+ */ -+ -+static inline size_t oui22_ptlv_sz(struct vsi22 *vp) -+{ -+ struct vdp22_oui_handler_s *oui_hndlr; -+ struct vdp22_oui_data_s *oui_str; -+ size_t size = 0; -+ int idx; -+ -+ if (vp->no_ouidata == 0) -+ return 0; -+ for (idx = 0; idx < vp->no_ouidata; idx++) { -+ oui_str = &(vp->oui_str_data[idx]); -+ oui_hndlr = vdp22_get_oui_hndlr(oui_str->oui_name); -+ if (!oui_hndlr) { -+ LLDPAD_ERR("%s: No handler registered for OUI %s\n", -+ __func__, oui_str->oui_name); -+ continue; -+ } -+ size += oui_hndlr->oui_ptlv_size_hndlr(oui_str->data); -+ } -+ return size; -+} -+ -+/* - * Extract 1, 2, 3, 4 byte integers in network byte format. - * Extract n bytes. - * Assume enough space available. -@@ -309,6 +336,29 @@ static size_t vsi22_2tlv_fdata(unsigned char *cp, struct fid22 *p, - return nbytes; - } - -+static void oui22_2tlv(struct vsi22 *vp, char unsigned *cp) -+{ -+ struct vdp22_oui_handler_s *oui_hndlr; -+ struct vdp22_oui_data_s *oui_str; -+ size_t offset = 0; -+ size_t temp_offset = 0; -+ int idx; -+ -+ if (vp->no_ouidata == 0) -+ return; -+ for (idx = 0; idx < vp->no_ouidata; idx++) { -+ oui_str = &(vp->oui_str_data[idx]); -+ oui_hndlr = vdp22_get_oui_hndlr(oui_str->oui_name); -+ if (!oui_hndlr) { -+ LLDPAD_ERR("%s: No handler registered for OUI %s\n", -+ __func__, oui_str->oui_name); -+ continue; -+ } -+ temp_offset = oui_hndlr->vdp_tx_hndlr(cp, oui_str, offset); -+ offset += temp_offset; -+ } -+} -+ - static void vsi22_2tlv(struct vsi22 *vp, char unsigned *cp, unsigned char stat) - { - size_t offset = 0, i; -@@ -478,7 +528,8 @@ static void vdp22st_wait_syscmd(struct vsi22 *vsip) - */ - static void vdp22st_process(struct vsi22 *vsi) - { -- unsigned short len = mgr22_ptlv_sz() + vsi22_ptlv_sz(vsi); -+ unsigned short len = mgr22_ptlv_sz() + vsi22_ptlv_sz(vsi) + -+ oui22_ptlv_sz(vsi); - unsigned char buf[len]; - struct qbg22_imm qbg; - -@@ -487,6 +538,7 @@ static void vdp22st_process(struct vsi22 *vsi) - qbg.u.c.data = buf; - mgr22_2tlv(vsi, buf); - vsi22_2tlv(vsi, buf + mgr22_ptlv_sz(), vsi->hints); -+ oui22_2tlv(vsi, buf + mgr22_ptlv_sz() + vsi22_ptlv_sz(vsi)); - vsi->smi.txmit_error = modules_notify(LLDP_MOD_ECP22, LLDP_MOD_VDP22, - vsi->vdp->ifname, &qbg); - if (!vsi->smi.txmit_error) { -diff --git a/qbg/vdp_ascii.c b/qbg/vdp_ascii.c -index 70ec79b..80a4419 100644 ---- a/qbg/vdp_ascii.c -+++ b/qbg/vdp_ascii.c -@@ -54,7 +54,8 @@ struct vsi_keyword_handler vsi_key_handle[] = { - /* {VSI22_ARG_VSIIDFRMT_STR, VSI_VSIIDFRMT_ARG}, TODO*/ - {VSI22_ARG_VSIID_STR, VSI_VSIID_ARG}, - {VSI22_ARG_HINTS_STR, VSI_HINTS_ARG}, -- {VSI22_ARG_FILTER_STR, VSI_FILTER_ARG} }; -+ {VSI22_ARG_FILTER_STR, VSI_FILTER_ARG}, -+ {VSI22_ARG_OUI_STR, VSI_OUI_ARG} }; - - /* - * Check if it is a UUID and consists of hexadecimal digits and dashes only. -@@ -225,6 +226,33 @@ static bool gethints(struct vdpnl_vsi *p, char *s) - return true; - } - -+static bool oui_str2vdpnl(struct vdpnl_vsi *vsi, char *p, unsigned short idx) -+{ -+ struct vdp22_oui_handler_s *oui_hndlr; -+ char *temp_argval = p; -+ char *oui_val; -+ char oui_name[VDP22_OUI_MAX_NAME]; -+ u8 oui_name_len; -+ -+ hexstr2bin(p, &oui_name_len, sizeof(oui_name_len)); -+ if (oui_name_len >= VDP22_OUI_MAX_NAME) -+ return false; -+ temp_argval = p + 2 * sizeof(oui_name_len); -+ oui_val = temp_argval + oui_name_len; -+ strncpy(oui_name, temp_argval, oui_name_len); -+ oui_name[oui_name_len] = '\0'; -+ oui_hndlr = vdp22_get_oui_hndlr(oui_name); -+ if (!oui_hndlr) -+ return false; -+ strncpy(vsi->oui_list[idx].oui_name, oui_name, -+ sizeof(vsi->oui_list[idx].oui_name)); -+ if (oui_hndlr->str2vdpnl_hndlr) -+ return oui_hndlr->str2vdpnl_hndlr(&(vsi->oui_list[idx]), -+ oui_val); -+ else -+ return false; -+} -+ - /* - * Read VSI association mode. If can be followed by an error code in brackets. - * For vdp22 protocol the allowed words are assoc, preassoc, preassoc-rr and -@@ -315,7 +343,7 @@ int vdp22_parse_str_vdpnl(struct vdpnl_vsi *vsi, u16 *key_flags, - int i, ioff = 0, numargs; - int ilen = strlen(orig_argvalue); - unsigned int no; -- unsigned short idx = 0; -+ unsigned short idx = 0, oui_idx = 0; - u16 num_arg_keys = 0; - - argvalue = strdup(orig_argvalue); -@@ -373,6 +401,11 @@ int vdp22_parse_str_vdpnl(struct vdpnl_vsi *vsi, u16 *key_flags, - if (!argvals[i] || !gethints(vsi, argvals[i])) - goto out_err; - break; -+ case VSI_OUI_ARG: -+ if (!oui_str2vdpnl(vsi, argvals[i], oui_idx)) -+ goto out_err; -+ oui_idx++; -+ break; - default: - goto out_err; - } --- -2.1.0 - diff --git a/v1.0.1.tar.gz b/v1.0.1.tar.gz deleted file mode 100644 index 42a3910ed403436183ae99e92ef4dcaaa1c4d011..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 404440 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%0D%A*7zd}Un>hf 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%0A11bF^ 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

#4J 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

RI?O2_6uVCt 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 z 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 diff --git a/v1.1.tar.gz b/v1.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..996709a5c9e81a5fe7982754a2716b8536c11797 GIT binary patch literal 436239 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%0AoO$zhImvHulYn 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