]> git.ipfire.org Git - thirdparty/lldpd.git/log
thirdparty/lldpd.git
3 years agotests: don't install libxml2 on MacOS fix/homebrew-osx 427/head
Vincent Bernat [Sat, 9 Jan 2021 15:22:09 +0000 (16:22 +0100)] 
tests: don't install libxml2 on MacOS

It is shipped and Homebrew will fail if we try to install it.

3 years agoMerge pull request #423 from jow-/bugfix-prevent-macro-conflict
Vincent Bernat [Wed, 9 Dec 2020 11:27:08 +0000 (12:27 +0100)] 
Merge pull request #423 from jow-/bugfix-prevent-macro-conflict

build: prevent conflict with official AX_LIB_READLINE macro

3 years agobuild: prevent conflict with official AX_LIB_READLINE macro 423/head
Jo-Philipp Wich [Wed, 9 Dec 2020 11:04:04 +0000 (12:04 +0100)] 
build: prevent conflict with official AX_LIB_READLINE macro

On systems where the official AX_LIB_READLINE (ax_lib_readline.m4) is
present in a globally shared autoconf include directory, auto(re)conf
will prefer including that offical version over the local variant due
to the offical macro having a higher serial number.

As a consequence, @READLINE_LIBS@ will not be substituted in *.in files,
eventually failing the compilation with errors similar to:

    gcc: error: READLINE_LIBS@: No such file or directory

Avoid this problem by renaming the incompatible local macro to
AX_LIB_READLINE_LLDPD which is sufficient to prevent any clashes.

We encountered this problem on OpenWrt which uses GNU autoconf-archive
to provide commonly used M4 macros through a global include directory,
which happens to ship AX_LIB_READLINE as well.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
3 years agoMerge pull request #422 from lldpd/fix/lldp-med-loc-parsing
Vincent Bernat [Sun, 6 Dec 2020 13:41:38 +0000 (14:41 +0100)] 
Merge pull request #422 from lldpd/fix/lldp-med-loc-parsing

lib: fix LLDP-MED location parsing in liblldpctl

3 years agolib: fix LLDP-MED location parsing in liblldpctl fix/lldp-med-loc-parsing 422/head
Vincent Bernat [Sun, 6 Dec 2020 13:21:04 +0000 (14:21 +0100)] 
lib: fix LLDP-MED location parsing in liblldpctl

Some bounds were not checked correctly when parsing LLDP-MED civic
location fields. This triggers out-of-bound reads (no write) in
lldpcli, ultimately leading to a crash.

Fix #420

3 years agoMerge pull request #418 from orgcandman/memleak_fix
Vincent Bernat [Tue, 17 Nov 2020 16:54:17 +0000 (17:54 +0100)] 
Merge pull request #418 from orgcandman/memleak_fix

lldp: avoid memory leak from bad packets

3 years agolldp: avoid memory leak from bad packets 418/head
Aaron Conole [Tue, 17 Nov 2020 14:28:17 +0000 (09:28 -0500)] 
lldp: avoid memory leak from bad packets

A packet that contains multiple instances of certain TLVs will cause
lldpd to continually allocate memory and leak the old memory.  As an
example, multiple instances of system name TLV will cause old values
to be dropped by the decoding routine.

Reported-at: https://github.com/openvswitch/ovs/pull/337
Reported-by: Jonas Rudloff <jonas.t.rudloff@gmail.com>
Signed-off-by: Aaron Conole <aconole@redhat.com>
3 years agodoc: fix lldpd new URL
Vincent Bernat [Sat, 14 Nov 2020 11:26:47 +0000 (12:26 +0100)] 
doc: fix lldpd new URL

3 years agodoc: move lldpd to a dedicated organization
Vincent Bernat [Sat, 14 Nov 2020 07:54:01 +0000 (08:54 +0100)] 
doc: move lldpd to a dedicated organization

3 years agogithub: move away from Travis to GitHub Actions
Vincent Bernat [Sun, 8 Nov 2020 15:01:20 +0000 (16:01 +0100)] 
github: move away from Travis to GitHub Actions

3 years agolibevent: update to 2.1.12-stable
Vincent Bernat [Sun, 8 Nov 2020 15:52:36 +0000 (16:52 +0100)] 
libevent: update to 2.1.12-stable

3 years agodaemon: remove implicit fall-through
Vincent Bernat [Sun, 8 Nov 2020 15:26:54 +0000 (16:26 +0100)] 
daemon: remove implicit fall-through

3 years agorelease: 1.0.7 1.0.7
Vincent Bernat [Sat, 31 Oct 2020 14:34:20 +0000 (15:34 +0100)] 
release: 1.0.7

3 years agoMerge pull request #414 from vincentbernat/fix/missed-lldp-packets
Vincent Bernat [Sat, 31 Oct 2020 07:52:37 +0000 (08:52 +0100)] 
Merge pull request #414 from vincentbernat/fix/missed-lldp-packets

interfaces: listen to all incoming packets on Linux, not just LLDP ones

3 years agointerfaces: listen to all incoming packets on Linux, not just LLDP ones fix/missed-lldp-packets 414/head
Vincent Bernat [Tue, 27 Oct 2020 17:31:22 +0000 (18:31 +0100)] 
interfaces: listen to all incoming packets on Linux, not just LLDP ones

This mostly reverts fc5526dae75f. Listening only on ETH_P_LLDP makes
us miss incoming packets on enslaved interfaces to an Open vSwitch.
Therefore, prefer listening to ETH_P_ALL instead of ETH_P_LLDP. It is
likely that enslaved interfaces do not fully process Ethernet packets
and `type` is not correctly filled.

Fix #413

3 years agotests: fix tests around XML by canonicalizing XML representation
Vincent Bernat [Mon, 7 Sep 2020 18:10:10 +0000 (20:10 +0200)] 
tests: fix tests around XML by canonicalizing XML representation

Since Python 3.8, insertion order is respected for attributes, so we
cannot just compare strings as previously. Python 3.8 also introduces
a `canonicalize()` function to normalize XML for digital signature. We
apply this function if it exists.

3 years agolinux: ignore outgoing packets at the socket level
Vincent Bernat [Mon, 7 Sep 2020 15:45:38 +0000 (17:45 +0200)] 
linux: ignore outgoing packets at the socket level

Since Linux 4.20, it is possible to ignore outgoing packets. This is
already done like this on *BSD.

3 years agoosx: update formula for HomeBrew (with upstream additions)
Vincent Bernat [Sat, 5 Sep 2020 12:24:39 +0000 (14:24 +0200)] 
osx: update formula for HomeBrew (with upstream additions)

3 years agoosx: update HomeBrew formula
Vincent Bernat [Sat, 5 Sep 2020 12:21:03 +0000 (14:21 +0200)] 
osx: update HomeBrew formula

3 years agorelease: 1.0.6 1.0.6
Vincent Bernat [Sat, 5 Sep 2020 11:48:00 +0000 (13:48 +0200)] 
release: 1.0.6

3 years agoMerge pull request #410 from awujek/develop
Vincent Bernat [Wed, 2 Sep 2020 21:41:57 +0000 (23:41 +0200)] 
Merge pull request #410 from awujek/develop

#403 ports: make possible sending LLDP frames on a specified VLAN

3 years agoports: allow sending LLDP frames on a specified VLAN 410/head
Michal Wasiak [Fri, 3 Jul 2020 18:36:03 +0000 (20:36 +0200)] 
ports: allow sending LLDP frames on a specified VLAN

The current limitation is that the frames are sent only on one VLAN per port.

3 years agoclient: fix spelling error
Vincent Bernat [Mon, 20 Jul 2020 20:14:06 +0000 (22:14 +0200)] 
client: fix spelling error

Fix #409

3 years agodoc: add a NEWS entry for latest commit
Vincent Bernat [Tue, 14 Jul 2020 09:01:57 +0000 (11:01 +0200)] 
doc: add a NEWS entry for latest commit

3 years agolib: remove limit on system description length
Vincent Bernat [Tue, 14 Jul 2020 05:16:47 +0000 (07:16 +0200)] 
lib: remove limit on system description length

The limit was introduced in 9c49cedf8e75 while fixing a memory leak.
The state data is used to ensure we don't interleave operations. We
need to handle the case where the value is truncated because it is
larger than the allocated size.

Fix #408.

3 years agoci: silent a bit `brew update`
Vincent Bernat [Sat, 11 Jul 2020 09:42:38 +0000 (11:42 +0200)] 
ci: silent a bit `brew update`

It's quite verbose (and long...)

3 years agoMerge pull request #401 from vincentbernat/fix/allowlist
Vincent Bernat [Sat, 27 Jun 2020 15:55:24 +0000 (17:55 +0200)] 
Merge pull request #401 from vincentbernat/fix/allowlist

code: remove use of blacklist/whitelist

3 years agoci: don't run unittests with clang fix/allowlist 401/head
Vincent Bernat [Sat, 27 Jun 2020 14:46:30 +0000 (16:46 +0200)] 
ci: don't run unittests with clang

libcheck introduced a change in 0.15 which is incompatible with clang.

3 years agoci: use "brew bundle" instead of "brew install"
Vincent Bernat [Sat, 27 Jun 2020 11:24:27 +0000 (13:24 +0200)] 
ci: use "brew bundle" instead of "brew install"

Otherwise, when a dependency is already installed and not up-to-date,
we get an error.

3 years agocode: remove use of blacklist/whitelist
Vincent Bernat [Sat, 27 Jun 2020 08:20:55 +0000 (10:20 +0200)] 
code: remove use of blacklist/whitelist

Use allowlist and denylist and adapt the documentation.

3 years agonetlink: make "no name/no address" message a debug message
Vincent Bernat [Fri, 12 Jun 2020 18:05:46 +0000 (20:05 +0200)] 
netlink: make "no name/no address" message a debug message

It seems it can happen on WLAN interfaces during AAA.

Fix #398

3 years agodoc: fix wording about interface exclusion
Vincent Bernat [Fri, 12 Jun 2020 05:41:21 +0000 (07:41 +0200)] 
doc: fix wording about interface exclusion

Reported in #398.

3 years agobuild: add lldpd.stp to CLEANFILES
Vincent Bernat [Sun, 31 May 2020 06:19:52 +0000 (08:19 +0200)] 
build: add lldpd.stp to CLEANFILES

3 years agobuild: make unit tests work when systemtap support is enabled
Vincent Bernat [Sun, 31 May 2020 06:01:32 +0000 (08:01 +0200)] 
build: make unit tests work when systemtap support is enabled

3 years agotravis: fix systemtap package name for dtrace support
Vincent Bernat [Sun, 31 May 2020 05:39:53 +0000 (07:39 +0200)] 
travis: fix systemtap package name for dtrace support

3 years agolibevent: upgrade to 2.1.11-stable
Vincent Bernat [Sun, 31 May 2020 05:07:25 +0000 (07:07 +0200)] 
libevent: upgrade to 2.1.11-stable

3 years agotravis: check build with dtrace support
Vincent Bernat [Sun, 31 May 2020 05:35:18 +0000 (07:35 +0200)] 
travis: check build with dtrace support

3 years agopriv: fix missing semi-colon
Vincent Bernat [Sun, 31 May 2020 05:33:55 +0000 (07:33 +0200)] 
priv: fix missing semi-colon

3 years agobuild: fix syscall names extraction
Vincent Bernat [Sun, 31 May 2020 05:23:42 +0000 (07:23 +0200)] 
build: fix syscall names extraction

3 years agobuild: ensure build process stops if not able to generate syscall-names.h
Vincent Bernat [Sun, 31 May 2020 05:22:47 +0000 (07:22 +0200)] 
build: ensure build process stops if not able to generate syscall-names.h

3 years agobuild: do not hardcode cpp invocation
Vincent Bernat [Sat, 30 May 2020 21:52:39 +0000 (23:52 +0200)] 
build: do not hardcode cpp invocation

This needs to be overridable by using $(CPP) instead. Patch from
Patrick McLean (Sony Interactive Entertainment Inc).

3 years agoMerge pull request #393 from vincentbernat/fix/snmp-empty-sysname
Vincent Bernat [Sat, 23 May 2020 14:04:32 +0000 (16:04 +0200)] 
Merge pull request #393 from vincentbernat/fix/snmp-empty-sysname

agent: fix SNMP walk on lldpRemTable when missing remote sysName

3 years agoagent: fix SNMP walk on lldpRemTable when missing remote sysName fix/snmp-empty-sysname 393/head
Vincent Bernat [Sat, 23 May 2020 12:32:39 +0000 (14:32 +0200)] 
agent: fix SNMP walk on lldpRemTable when missing remote sysName

When enumerating lldpRemSysName (and some others), one row could have
a NULL value because the remote system didn't provide a value. In this
case, we should return the next row.

There was already some code around that but it was not systematically
used. Therefore, we fix the issue for lldpRemTable and
lldpLocalSystemData. To ensure we catch future cases, we ensure
helpers functions use `default: return NULL` when no missing value is
allowed (no `break`, compiler would catch if it was the case) and
therefore, we don't need to try next OID and `default: break` when a
value may be missing and in this case, the caller should try next OID
upon receiving NULL.

Fix #392

3 years agoMerge pull request #391 from Polynomial-C/1.0.5-gentoo_seccomp
Vincent Bernat [Wed, 20 May 2020 08:56:41 +0000 (10:56 +0200)] 
Merge pull request #391 from Polynomial-C/1.0.5-gentoo_seccomp

a couple of necessary seccomp enhancements

3 years agov1.0.5: seccomp - add gettime 391/head
Patrick McLean [Mon, 27 Apr 2020 18:40:20 +0000 (20:40 +0200)] 
v1.0.5: seccomp - add gettime

Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
3 years agov1.0.1: seccomp - add brk
Patrick McLean [Mon, 27 Apr 2020 18:38:42 +0000 (20:38 +0200)] 
v1.0.1: seccomp - add brk

Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
3 years agov0.9.5: seccomp - add socket ops
Patrick McLean [Mon, 27 Apr 2020 18:37:56 +0000 (20:37 +0200)] 
v0.9.5: seccomp - add socket ops

Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
4 years agoMerge pull request #388 from vincentbernat/fix/locked-conn
Vincent Bernat [Sun, 26 Apr 2020 11:03:34 +0000 (13:03 +0200)] 
Merge pull request #388 from vincentbernat/fix/locked-conn

lib: introduce lldpctl_watch_callback2()

4 years agolib: introduce lldpctl_watch_callback2() fix/locked-conn 388/head
Vincent Bernat [Fri, 24 Apr 2020 17:29:36 +0000 (19:29 +0200)] 
lib: introduce lldpctl_watch_callback2()

This is similar to `lldpctl_watch_callback()` (which is getting
deprecated), except the callback won't receive the current connection.
This prevents a user to use the connection which is unusable because
it is now dedicated to watch events.

Minor ABI dump due to new function, but everything is
backward-compatible, except you may now get an error if you use the
connection while watching (but this was already not supported).

Fix #380

4 years agolib: stricly-prevent use of a connection used to watch events
Vincent Bernat [Fri, 24 Apr 2020 17:09:42 +0000 (19:09 +0200)] 
lib: stricly-prevent use of a connection used to watch events

The protocol cannot handle received events mixed with regular
messages. Once the connection is dedicated to a watch, prevent its
regular use.

4 years agolib: emphasize `conn` cannot be used after lldpctl_watch_callback()
Vincent Bernat [Thu, 23 Apr 2020 19:27:23 +0000 (21:27 +0200)] 
lib: emphasize `conn` cannot be used after lldpctl_watch_callback()

4 years agoagent: simpler code with #ifdef
Vincent Bernat [Mon, 13 Apr 2020 17:59:24 +0000 (19:59 +0200)] 
agent: simpler code with #ifdef

The use #ifdef to avoid some line duplications makes the code harder
to read. Prefer duplicating the lines when needed.

4 years agoRevert "agent: fix crash on AgentX reconnect with NetSNMP 5.8"
Vincent Bernat [Mon, 13 Apr 2020 17:58:20 +0000 (19:58 +0200)] 
Revert "agent: fix crash on AgentX reconnect with NetSNMP 5.8"

This reverts commit c0b9ad5fc83e913e6ef761390c6211d6d240c212. This is
not needed: global and static variables are zero-initialized in C89.

4 years agoagent: fix crash on AgentX reconnect with NetSNMP 5.8
Vincent Bernat [Mon, 13 Apr 2020 12:17:10 +0000 (14:17 +0200)] 
agent: fix crash on AgentX reconnect with NetSNMP 5.8

4 years agoMerge pull request #386 from vincentbernat/fix/chassisid-interface-flap
Vincent Bernat [Sat, 11 Apr 2020 15:32:43 +0000 (17:32 +0200)] 
Merge pull request #386 from vincentbernat/fix/chassisid-interface-flap

interfaces: don't modify chassis ID when overriden

4 years agointerfaces: don't modify chassis ID when overriden fix/chassisid-interface-flap 386/head
Vincent Bernat [Sat, 11 Apr 2020 14:21:30 +0000 (16:21 +0200)] 
interfaces: don't modify chassis ID when overriden

If the chassis ID has been overriden by the user, do not modify it.

Fix #385

4 years agotests: don't fail on __exit__ if we failed in __enter__
Vincent Bernat [Thu, 9 Apr 2020 16:12:04 +0000 (18:12 +0200)] 
tests: don't fail on __exit__ if we failed in __enter__

4 years agotests: fix bitmap test on 32bit
Vincent Bernat [Fri, 3 Apr 2020 20:34:18 +0000 (22:34 +0200)] 
tests: fix bitmap test on 32bit

4 years agotests: do not check for MED inventory if /sys/class/dmi not available
Vincent Bernat [Thu, 12 Mar 2020 12:25:37 +0000 (13:25 +0100)] 
tests: do not check for MED inventory if /sys/class/dmi not available

4 years agotests: do not enable asan on anything else than x86_64
Vincent Bernat [Thu, 12 Mar 2020 11:56:01 +0000 (12:56 +0100)] 
tests: do not enable asan on anything else than x86_64

It seems buggy.

4 years agotests: display tests/test-suite.log on errors
Vincent Bernat [Thu, 12 Mar 2020 10:54:34 +0000 (11:54 +0100)] 
tests: display tests/test-suite.log on errors

4 years agobuild: provide a default.nix file
Vincent Bernat [Thu, 12 Mar 2020 08:29:13 +0000 (09:29 +0100)] 
build: provide a default.nix file

4 years agoosx: update recipe for HomeBrew
Vincent Bernat [Sun, 2 Feb 2020 22:09:26 +0000 (23:09 +0100)] 
osx: update recipe for HomeBrew

4 years agorelease: 1.0.5 fix/old-compat 1.0.5
Vincent Bernat [Sat, 1 Feb 2020 21:15:40 +0000 (22:15 +0100)] 
release: 1.0.5

4 years agoinclude: remove in6.h from linux/bridge.h
Vincent Bernat [Sun, 2 Feb 2020 13:16:27 +0000 (14:16 +0100)] 
include: remove in6.h from linux/bridge.h

Otherwise, we are redefining in6_addr on old distributions.

4 years agotests: provide a Dockerfile to build with wheezy
Vincent Bernat [Sun, 2 Feb 2020 13:11:44 +0000 (14:11 +0100)] 
tests: provide a Dockerfile to build with wheezy

This is for testing with a really old userland.

4 years agoinclude: don't use __kernel_sa_family_t
Vincent Bernat [Sat, 1 Feb 2020 22:45:29 +0000 (23:45 +0100)] 
include: don't use __kernel_sa_family_t

It's not compatible with older kernels.

4 years agoinclude: don't include linux/sysinfo.h
Vincent Bernat [Sat, 1 Feb 2020 22:39:27 +0000 (23:39 +0100)] 
include: don't include linux/sysinfo.h

Older kernels don't have it. It doesn't seem useful.

4 years agointerfaces: include "netinet/in.h" before kernel headers
Vincent Bernat [Sat, 1 Feb 2020 22:21:44 +0000 (23:21 +0100)] 
interfaces: include "netinet/in.h" before kernel headers

This should ensure definition of stuff like in6_addr are done by the
libc, not by the kernel headers. Recent kernel headers know how to
handle that when loaded second.

4 years agointerfaces: fix usage of inet_pton()
Vincent Bernat [Sat, 1 Feb 2020 22:14:29 +0000 (23:14 +0100)] 
interfaces: fix usage of inet_pton()

This would trigger a failure on RHEL 6.

4 years agotravis: remove ARM64
Vincent Bernat [Sat, 1 Feb 2020 18:36:55 +0000 (19:36 +0100)] 
travis: remove ARM64

This seems quite unreliable.

4 years agointerfaces: move bitmaps function to a dedicated file
Vincent Bernat [Sat, 1 Feb 2020 18:35:56 +0000 (19:35 +0100)] 
interfaces: move bitmaps function to a dedicated file

Also add some simple tests.

4 years agosnmp: additional fix around NetSNMP 5.8+ and function pointers
Vincent Bernat [Sat, 1 Feb 2020 17:40:01 +0000 (18:40 +0100)] 
snmp: additional fix around NetSNMP 5.8+ and function pointers

4 years agosnmp: tentative to fix compilation with older versions of NetSNMP
Vincent Bernat [Sat, 1 Feb 2020 16:34:29 +0000 (17:34 +0100)] 
snmp: tentative to fix compilation with older versions of NetSNMP

In fact, gcc doesn't consider the signatures to be compatible when
using a function pointer. Let's use a preprocessor trick to detect the
version and hope gcc is OK with `char*` changed to `void*`.

4 years agointerfaces: correctly handle bridges with VLAN filtering enabled
Vincent Bernat [Sat, 1 Feb 2020 16:17:48 +0000 (17:17 +0100)] 
interfaces: correctly handle bridges with VLAN filtering enabled

With VLAN-aware bridges, bridges are usually configured to filter
VLAN. In this case, we should not propagate VLAN from upper
interfaces.

Fix #377

4 years agodaemon: remove unused interface types
Vincent Bernat [Sat, 1 Feb 2020 15:52:49 +0000 (16:52 +0100)] 
daemon: remove unused interface types

4 years agotests: check we don't mix VLAN among interfaces
Vincent Bernat [Sat, 1 Feb 2020 15:44:41 +0000 (16:44 +0100)] 
tests: check we don't mix VLAN among interfaces

4 years agosnmp: update signature for create_ostring
Vincent Bernat [Sat, 1 Feb 2020 15:30:11 +0000 (16:30 +0100)] 
snmp: update signature for create_ostring

Again, this is backward compatible as an `const u_char*` can be casted
to `const void*`.

4 years agosnmp: update signature of fmtaddr and send functions
Vincent Bernat [Sat, 1 Feb 2020 15:27:42 +0000 (16:27 +0100)] 
snmp: update signature of fmtaddr and send functions

This is backward compatible as a function accepting `const void *`
will also accept `void *`.

4 years agodebian: update watch file
Vincent Bernat [Sat, 1 Feb 2020 15:15:11 +0000 (16:15 +0100)] 
debian: update watch file

4 years agoMerge pull request #376 from stannous/remote-vlan-limitations
Vincent Bernat [Sat, 1 Feb 2020 15:17:16 +0000 (16:17 +0100)] 
Merge pull request #376 from stannous/remote-vlan-limitations

Fix for limitation of 10 VLANs for LLDP .1q feature

4 years agotests: use "-Ln" to avoid logging with snmpd
Vincent Bernat [Sun, 26 Jan 2020 14:22:26 +0000 (15:22 +0100)] 
tests: use "-Ln" to avoid logging with snmpd

This is more efficient than using "-Lf /dev/null". It was a tentative
to fix tests when running snmpd 5.8 but it seems to be related to
parallel run.

4 years agonetlink: fix detection of VLAN 1 376/head
Vincent Bernat [Sun, 26 Jan 2020 14:10:52 +0000 (15:10 +0100)] 
netlink: fix detection of VLAN 1

4 years agonetlink: use an optimized version of num_bits_set
Vincent Bernat [Sun, 26 Jan 2020 14:06:54 +0000 (15:06 +0100)] 
netlink: use an optimized version of num_bits_set

This is a classic problem. See
<https://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer>

4 years agointerfaces: fix for limitation of 10 VLANs for LLDP .1q feature
Radhika Mahankali [Fri, 6 Dec 2019 19:25:48 +0000 (11:25 -0800)] 
interfaces: fix for limitation of 10 VLANs for LLDP .1q feature

Max 10 VLAN ids are supported on a port for .1q feature

Root Cause: All the VLANs learnt from netlink is dropped after 10 VLANs due
to the static array allocation of only 10 VLAN ids in the interface structure.
Beyond 10 VLAN membership for a port are ignored and error message gets
printed causing flooding of messages when hundreds of VLANs are configured.

Fix: Changed the static VLAN id array to VLAN id bitmap. With the bitmap all 4k
VLANs can be stored and learnt from netlink messages.
- Added a message to indicate when the LLDP packet is not sent out because
its too big. This will be helpful for user when too many VLANs are
configured and LLDP packets are not sent out.

Limitation: Even though the VLAN learning from netlink messages has been
alleviated, due to the LLDP message size around 380 VLANs can be advertised in
the packet. This number can vary based on the number of other TLVs being
advertised by LLDP.

vlan info shows interface_name.vlan-id which makes it look like sub
interface and causes confusion

Root Cause: Vlan name is sent as part of the .1q TLVs. But, the vlan name
format was <nterface-name>.<vlan-id> which makes it look like a sub-interface.

Fix: The vlan name cannot be removed from the vlan-info display since it is
sent/received as part of the .1q TLV in LLDP packet. But, changed the
vlan name format to vlan-<vlan-id> to avoid the confusion.
(cherry picked from commit 38db598121f5ce615f98d6cdaf41d5360c40dc3c)

Conflicts:
src/daemon/interfaces-linux.c
src/daemon/lldpd.h

4 years agolib: don't break ABI by moving new config_tx_interval_ms to end
Vincent Bernat [Thu, 23 Jan 2020 18:33:10 +0000 (19:33 +0100)] 
lib: don't break ABI by moving new config_tx_interval_ms to end

4 years agoMerge pull request #379 from jp-t/master
Vincent Bernat [Thu, 23 Jan 2020 18:32:31 +0000 (19:32 +0100)] 
Merge pull request #379 from jp-t/master

Allow configuring tx-interval in milliseconds

4 years agolldpd: set a 30 seconds lower limit to the safeguard timer 379/head
Jean-Pierre Tosoni [Wed, 22 Jan 2020 11:03:25 +0000 (12:03 +0100)] 
lldpd: set a 30 seconds lower limit to the safeguard timer

This timer is a safeguard to refresh information about all networks
interfaces at regular interval, in case there was something wrong with
the event-based refresh.

When using milliseconds-grained tx-interval, this could happen several
times per second, which is not the intended use of the safeguard.

To quote Vincent Bernat:
"Minimal value of 30 seconds even if we don't have event-based
refresh (so outside the if). Most people have the event-based
refresh, so lowering the pace for the others should be pretty
invisible."

4 years agodoc, tests: milliseconds tx-interval finishing touch
Jean-Pierre Tosoni [Wed, 22 Jan 2020 08:36:30 +0000 (09:36 +0100)] 
doc, tests: milliseconds tx-interval finishing touch

- Added a test in test_lldpcli.py to check that milliseconds delay can
  be read back in either seconds or milliseconds units.
- Updated the manual page for lldpcli; warn about performance issue.
- Added an entry in NEWS

4 years agosnmp agent: fix tests suite for milliseconds units
Jean-Pierre Tosoni [Thu, 16 Jan 2020 09:43:08 +0000 (10:43 +0100)] 
snmp agent: fix tests suite for milliseconds units

4 years agoAllow configuring tx-interval in milliseconds
Jean-Pierre Tosoni [Wed, 15 Jan 2020 17:56:08 +0000 (18:56 +0100)] 
Allow configuring tx-interval in milliseconds

This is a prerequisite for TTDP support.

Usage: add "ms" suffix to the delay value to force interpretation as a
milliseconds value:

 lldpcli configure lldp tx-interval 200ms

When computing a TTL (TTL = tx-interval * tx-hold), the result is rounded
up to the next second, as LLDP frames need a value in seconds.

A new tx-interval-ms item is added to the json output. The old tx-interval
is kept in seconds (rounded up) for compatibility.

4 years agotests: remove hack around libtool on OSX fix/travis-bionic
Vincent Bernat [Sun, 12 Jan 2020 21:15:41 +0000 (22:15 +0100)] 
tests: remove hack around libtool on OSX

4 years agotests: skip tests requiring kernel features not present
Vincent Bernat [Sun, 12 Jan 2020 20:23:43 +0000 (21:23 +0100)] 
tests: skip tests requiring kernel features not present

Notably, "team" is not available in GCP kernels...

4 years agotravis: update to Bionic
Vincent Bernat [Sun, 12 Jan 2020 19:51:23 +0000 (20:51 +0100)] 
travis: update to Bionic

4 years agotravis: also build for arm64
Vincent Bernat [Sun, 12 Jan 2020 07:57:44 +0000 (08:57 +0100)] 
travis: also build for arm64

4 years agoMerge pull request #375 from stannous/master
Vincent Bernat [Mon, 9 Dec 2019 18:44:46 +0000 (19:44 +0100)] 
Merge pull request #375 from stannous/master

Fix for LLDP related netlink error messages

4 years agoFix for LLDP related netlink error messages 375/head
Radhika Mahankali [Mon, 9 Dec 2019 06:59:16 +0000 (22:59 -0800)] 
Fix for LLDP related netlink error messages

Ticket: CM-27243
Reviewed By: CCR-9608
Testing Done: Unit tseting, PTM Smoke

Issue: Error messages "netlink: 8 bytes leftover after parsing attributes
in process `lldpd'"

Root cause: Root Cause: The length of the netlink message was not being set
properly for non-bridge family type messages. Same length was being used for
both type of messages even though bridge family type message has extra
attribute. This causes 8 extra bytes being left over in the non-bridge
family type netlink messages.

Fix: Calculating and setting the length separately for bridge and non-bridge
family type messages.
(cherry picked from commit aac76966539bf932d5923b165762db370990bf94)

4 years agoRevert "client: remove useless variable declaration in zsh completion"
Vincent Bernat [Sun, 8 Dec 2019 06:10:47 +0000 (07:10 +0100)] 
Revert "client: remove useless variable declaration in zsh completion"

This reverts commit e37dd8d0a3f67b345681b46c175249eee286bed0.

4 years agoclient: fix zsh completion to not alter global environment
Vincent Bernat [Sun, 8 Dec 2019 06:02:49 +0000 (07:02 +0100)] 
client: fix zsh completion to not alter global environment

4 years agoclient: remove useless variable declaration in zsh completion
Vincent Bernat [Sun, 8 Dec 2019 05:58:34 +0000 (06:58 +0100)] 
client: remove useless variable declaration in zsh completion