3 weeks agobuild: disable warnings on cast alignments master
Vincent Bernat [Sat, 27 Jul 2019 17:23:12 +0000 (19:23 +0200)] 
build: disable warnings on cast alignments

clang is often wront about it (it increases alignment requirement, but
the surrounding structure ensure the alignment is correct). Dunno if
gcc is smarter or just ignore most of these problems.

3 weeks agotests: be verbose when running make on CI when an error happens
Vincent Bernat [Sat, 27 Jul 2019 16:53:22 +0000 (18:53 +0200)] 
tests: be verbose when running make on CI when an error happens

Otherwise, we don't really know why we get errors.

3 weeks agoclient: don't display management interface index if unknown
Vincent Bernat [Sat, 27 Jul 2019 15:36:35 +0000 (17:36 +0200)] 
client: don't display management interface index if unknown

3 weeks agointerfaces: compute interface index for fixed management address
Vincent Bernat [Sat, 27 Jul 2019 15:28:01 +0000 (17:28 +0200)] 
interfaces: compute interface index for fixed management address

When management address is provided without a pattern, fetch the
appropriate interface index if the interface is known. Thanks to
@kefins for the actual patch.

Fix #338.

3 weeks agolib: expose management interface index
Vincent Bernat [Sat, 27 Jul 2019 15:11:40 +0000 (17:11 +0200)] 
lib: expose management interface index

3 weeks agolib: fix missing words in lldpctl.h
Vincent Bernat [Sat, 27 Jul 2019 15:00:25 +0000 (17:00 +0200)] 
lib: fix missing words in lldpctl.h

3 weeks agoinclude: update headers to 4.19
Vincent Bernat [Sun, 7 Jul 2019 17:24:21 +0000 (19:24 +0200)] 
include: update headers to 4.19

It makes things compile correctly with Jessie

5 weeks agoJune 15th 2019 was a Saturday, not a Sunday
eb3095 [Wed, 17 Jul 2019 21:56:46 +0000 (17:56 -0400)] 
June 15th 2019 was a Saturday, not a Sunday

This addresses the following issue,

RPM build errors:
error: Bad exit status from /var/tmp/rpm-tmp.tUWJAJ (%prep)
    bogus date in %changelog: Sun Jun 15 2019 Vincent Bernat <> - 1.0.4-1

2 months agoosx: update recipe for HomeBrew
Vincent Bernat [Sat, 15 Jun 2019 09:25:40 +0000 (11:25 +0200)] 
osx: update recipe for HomeBrew

2 months agorelease: 1.0.4 1.0.4
Vincent Bernat [Sat, 15 Jun 2019 09:09:44 +0000 (11:09 +0200)] 
release: 1.0.4

2 months agolldpd: document expectation for LLDP-MED device configuration
Vincent Bernat [Wed, 12 Jun 2019 20:10:56 +0000 (22:10 +0200)] 
lldpd: document expectation for LLDP-MED device configuration

When using class II and class III endpoints, some additional TLVs are
mandatory. This is not enforced by lldpd.

See #335.

2 months agonetlink: make the netlink socket totally non blocking
Vincent Bernat [Mon, 10 Jun 2019 09:17:52 +0000 (11:17 +0200)] 
netlink: make the netlink socket totally non blocking

See #333.

2 months agonetlink: handle blocking read from netlink socket
Vincent Bernat [Sun, 9 Jun 2019 06:13:06 +0000 (08:13 +0200)] 
netlink: handle blocking read from netlink socket

It seems it is possible to run into a condition where the netlink
socket is not available for read. Set the MSG_DONTWAIT flag and fetch
an error if there is any.

Fix #333

2 months agosnmp: implement lldpRemOrgDefInfoTable for remote custom TLVs
Vincent Bernat [Wed, 29 May 2019 16:58:09 +0000 (18:58 +0200)] 
snmp: implement lldpRemOrgDefInfoTable for remote custom TLVs

As a simplification, lldpRemOrgDefInfoIndex is 1 for the first custom
TLV of a given port and is increased by 1 for each new TLV. This is
not what is encouraged in the MIB:

> An agent is encouraged to assign monotonically increasing index
> values to new entries, starting with one, after each reboot. It is
> considered unlikely that the lldpRemOrgDefInfoIndex will wrap
> between reboots.

However, it is simpler to implement it this way as we don't need to
record the index inside the `lldpd_custom` structure. Also, the index
will increase even for a different OUI or subtype as we do not want to
sort the custom TLVs.

Fix #330.

2 months agodebian: depends on lsb-base
Vincent Bernat [Sun, 2 Jun 2019 07:02:42 +0000 (09:02 +0200)] 
debian: depends on lsb-base

This is needed for SysV init script

2 months agodebian: no need to BD on lsb-release anymore
Vincent Bernat [Sun, 2 Jun 2019 07:00:47 +0000 (09:00 +0200)] 
debian: no need to BD on lsb-release anymore

3 months agodoc: update Android instructions for ARM64
Vincent Bernat [Wed, 15 May 2019 04:20:27 +0000 (06:20 +0200)] 
doc: update Android instructions for ARM64

Nowadays, this is a more common platform than ARM.

3 months agoclient: use bold instead of a color for command completions
Vincent Bernat [Sat, 4 May 2019 06:58:38 +0000 (08:58 +0200)] 
client: use bold instead of a color for command completions

The color needs to be readable on both light and dark backgrounds and
should be readable on most themes. 1;35m would be a fit, but let's
stay safe by just using bold.

Fix #326

4 months agoagent: do not increase statsAgeoutsTotal when receiving a shutdown frame
Vincent Bernat [Tue, 9 Apr 2019 05:07:14 +0000 (07:07 +0200)] 
agent: do not increase statsAgeoutsTotal when receiving a shutdown frame

Fix #325

4 months agolldp: increase statsTLVsUnrecognizedTotal on unknown TLV
Vincent Bernat [Sat, 6 Apr 2019 19:17:25 +0000 (21:17 +0200)] 
lldp: increase statsTLVsUnrecognizedTotal on unknown TLV

This was done for organization TLVs, but not for other TLVs.

Fix #323.

4 months agotests: update pytest
Vincent Bernat [Sat, 6 Apr 2019 12:29:13 +0000 (14:29 +0200)] 
tests: update pytest

And also, don't specify too many dependencies, just the essential

4 months agoclient: rename max-neighbor command
Vincent Bernat [Sat, 6 Apr 2019 11:20:51 +0000 (13:20 +0200)] 
client: rename max-neighbor command

4 months agotests: add test for global configuration settings
Vincent Bernat [Sat, 6 Apr 2019 11:15:38 +0000 (13:15 +0200)] 
tests: add test for global configuration settings

4 months agoclient: ability to set maximum of neighbors from lldpcli
Vincent Bernat [Sat, 6 Apr 2019 10:13:24 +0000 (12:13 +0200)] 
client: ability to set maximum of neighbors from lldpcli

4 months agopriv: include limits.h for PATH_MAX
Sören Tempel [Mon, 25 Mar 2019 17:43:03 +0000 (18:43 +0100)] 
priv: include limits.h for PATH_MAX

5 months agolib: use an unique variable as iterator in foreach macro
Vincent Bernat [Fri, 15 Mar 2019 07:25:09 +0000 (08:25 +0100)] 
lib: use an unique variable as iterator in foreach macro

This lessen the chance of the `iter` variable to shadow a user-defined
variable. This is also a tentative to help #312, even if the scope of
the `iter` variable should ensure we can nest two loops without any

5 months agobuild: warn on implicit fallthrough for case statements
Vincent Bernat [Wed, 13 Mar 2019 07:54:22 +0000 (08:54 +0100)] 
build: warn on implicit fallthrough for case statements

7 months agobuild: enable increased reliability of stack overflow detection
Vincent Bernat [Thu, 10 Jan 2019 21:36:55 +0000 (22:36 +0100)] 
build: enable increased reliability of stack overflow detection


7 months agointerfaces/linux: make dsa special
Brandon Streiff [Mon, 16 Jul 2018 21:53:56 +0000 (16:53 -0500)] 
interfaces/linux: make dsa special

There used to be specific exemptions carved out for "veth" and "dsa",
which were removed in b8db52bd7c7d ("interfaces/linux: blacklist some
drivers instead of whitelisting"). "veth" was restored in 2958b9d48940
("interfaces/linux: make veth special"). This commit restores the
whitelist for dsa devices as well.

7 months agobuild: fix compilation with `--enable-fdp --disable-cdp`
Vincent Bernat [Tue, 8 Jan 2019 22:19:15 +0000 (17:19 -0500)] 
build: fix compilation with `--enable-fdp --disable-cdp`

Fix #315

8 months agodaemon: allow lseek for seccomp
Vincent Bernat [Mon, 10 Dec 2018 16:21:41 +0000 (17:21 +0100)] 
daemon: allow lseek for seccomp

8 months agoosx: update version in HomeBrew formula
Vincent Bernat [Mon, 10 Dec 2018 16:20:50 +0000 (17:20 +0100)] 
osx: update version in HomeBrew formula

8 months agorelease: 1.0.3 1.0.3
Vincent Bernat [Mon, 10 Dec 2018 14:02:58 +0000 (15:02 +0100)] 
release: 1.0.3

8 months agodaemon: fix creation of chroot directory
Vincent Bernat [Mon, 10 Dec 2018 13:54:22 +0000 (14:54 +0100)] 
daemon: fix creation of chroot directory

Because the current path was uninitialized, we were creating
semi-random directory at the root of the filesystem.

8 months agoosx: update version in HomeBrew formula
Vincent Bernat [Tue, 4 Dec 2018 07:20:06 +0000 (08:20 +0100)] 
osx: update version in HomeBrew formula

8 months agoosx: sync HomeBrew formula
Vincent Bernat [Tue, 4 Dec 2018 07:19:26 +0000 (08:19 +0100)] 
osx: sync HomeBrew formula

8 months agodaemon: check if started through systemd first
Vincent Bernat [Mon, 3 Dec 2018 08:33:18 +0000 (09:33 +0100)] 
daemon: check if started through systemd first

When running with `-d`, we may still need to send a notification to
systemd, even if we didn't plan to daemonize.

Fix #309.

8 months agodaemon: remove unused agent_default_agentx_socket() function
Vincent Bernat [Sat, 1 Dec 2018 09:47:37 +0000 (10:47 +0100)] 
daemon: remove unused agent_default_agentx_socket() function

It's not needed anymore since 83577a2b3b88 and on older versions of
Net-SNMP, it uses an unexposed directive.

8 months agorelease: 1.0.2 1.0.2
Vincent Bernat [Sat, 1 Dec 2018 09:21:01 +0000 (10:21 +0100)] 
release: 1.0.2

8 months agodaemon: don't enable ProtectSystem by default
Vincent Bernat [Fri, 30 Nov 2018 21:48:36 +0000 (22:48 +0100)] 
daemon: don't enable ProtectSystem by default

If the chroot is in `/usr` (like `/usr/local/var/run/lldpd` which is
the default), neither systemd nor lldpd will be able to create and
write to it. This may be solved with `ReadWritePaths` (unsure if it
would create the directory), but this doesn't exist in older versions
of systemd.

Just comment the directive to let people know it exists and should
work in most cases.

Fix #308

8 months agointerfaces: remove specific handling for bonds except with --enable-oldies
Vincent Bernat [Wed, 28 Nov 2018 13:56:47 +0000 (14:56 +0100)] 
interfaces: remove specific handling for bonds except with --enable-oldies

Starting from Linux 4.19, LLDP packets are transmitted back to the
bond devices and it seems the original interface is lost in the
process. Therefore, packets are duplicated to both members. Upstream
commit is:

    commit 6a9e461f6fe4434e6172304b69774daff9a3ac4c
    Author: Mahesh Bandewar <>
    Date:   Mon Sep 24 14:39:42 2018 -0700

    bonding: pass link-local packets to bonding master also.

    Commit b89f04c61efe ("bonding: deliver link-local packets with
    skb->dev set to link that packets arrived on") changed the behavior
    of how link-local-multicast packets are processed. The change in
    the behavior broke some legacy use cases where these packets are
    expected to arrive on bonding master device also.

    This patch passes the packet to the stack with the link it arrived
    on as well as passes to the bonding-master device to preserve the
    legacy use case.

    Fixes: b89f04c61efe ("bonding: deliver link-local packets with skb->dev set to link that packets arrived on")
Reported-by: Michal Soltys <>
Signed-off-by: Mahesh Bandewar <>
Signed-off-by: David S. Miller <>
The code to handle bond devices is not needed since Linux 2.6.27.
Therefore, move it to the `--enable-oldies` option.

Fix #306.

9 months agodoc: update documentation for Android
Vincent Bernat [Wed, 7 Nov 2018 12:25:35 +0000 (13:25 +0100)] 
doc: update documentation for Android

See #305 for more details.

10 months agoAllow linux kernel to autoprobe correct socket_nl.nl_pid address
Pavel Shirshov [Sat, 20 Oct 2018 02:15:44 +0000 (19:15 -0700)] 
Allow linux kernel to autoprobe correct socket_nl.nl_pid address

10 months agodaemon: do not explicitely inline functions
Vincent Bernat [Tue, 2 Oct 2018 18:36:37 +0000 (20:36 +0200)] 
daemon: do not explicitely inline functions

As we are using `-Winline`, if it fails, we get a warning. Let the
compiler decide if something has to be inlined. As we use only static
functions, it should be easy to inline if possible.

10 months agobuild: ability to disable libbsd with --without-libbsd
Vincent Bernat [Tue, 25 Sep 2018 08:57:49 +0000 (10:57 +0200)] 
build: ability to disable libbsd with --without-libbsd

This is useful when user wants to ensure reproducibility of the build
whatever libbsd is present or not.

10 months agomarshal: avoid NULL pointer arithmetic
Vincent Bernat [Mon, 24 Sep 2018 13:20:43 +0000 (15:20 +0200)] 
marshal: avoid NULL pointer arithmetic

This is UB and clang warns about this. Ensure we use an int of the
same size as a pointer and convert it directly.

10 months agolib: use constants from lldp-const.h for Dot3 MAU
Vincent Bernat [Mon, 24 Sep 2018 13:12:21 +0000 (15:12 +0200)] 
lib: use constants from lldp-const.h for Dot3 MAU

10 months agodot3: fix 100BASE-T4 MAU
Vincent Bernat [Mon, 24 Sep 2018 13:00:42 +0000 (15:00 +0200)] 
dot3: fix 100BASE-T4 MAU

Fix #297

12 months agointerfaces: provide clearer messages about ethtool problems
Vincent Bernat [Sat, 11 Aug 2018 17:43:20 +0000 (19:43 +0200)] 
interfaces: provide clearer messages about ethtool problems

Logs can confuse people on how important a problem is. Tell them
exactly what this would affect.

12 months agodaemon: implement mkdir -p directly in lldpd
Vincent Bernat [Wed, 8 Aug 2018 21:06:39 +0000 (23:06 +0200)] 
daemon: implement mkdir -p directly in lldpd

It's difficult to know the path to mkdir. If we use the one from
autoconf (@mkdir_p@), we get the path from the host, not the target.
If we hardcode `/bin/mkdir`, we may not work on platforms like NixOS.


13 months agodoc: add latest commit to NEWS
Vincent Bernat [Fri, 20 Jul 2018 22:01:34 +0000 (00:01 +0200)] 
doc: add latest commit to NEWS

13 months agoMerge pull request #289 from GustavWi/master
Vincent Bernat [Sun, 15 Jul 2018 17:23:15 +0000 (19:23 +0200)] 
Merge pull request #289 from GustavWi/master

Add support for CDP PD PoE negotiation.

13 months agoAdd support for PD PoE negotiation. 289/head
Gustav Wiklander [Thu, 21 Jun 2018 08:49:37 +0000 (10:49 +0200)] 
Add support for PD PoE negotiation.

Power requests refer to the power at the PSE.
Thus the loss offset caused by the cable has to be added
to the power request. Also the power received from the PSE
must subtract the cable loss to be compatible with lldp.
There are three TLVs for CDPv2 PoE negotiation.
Power Consumption: Current maximum power consumption of PD.
Power Request: Wanted maximum power consumption of PD.
Power Available: Power output from PSE.

Only used if lldp PoE is not supported by switch.

A cisco switch which does support both lldp and cdp will
use the protocol which is first to transmit a package.

Change-Id: Ib45ae582799c50a8d839120c28a5080e582c66e9

13 months agoredhat: install lldpcli as setuid _lldpd
Vincent Bernat [Wed, 4 Jul 2018 09:45:51 +0000 (11:45 +0200)] 
redhat: install lldpcli as setuid _lldpd

14 months agoosx: update brew formula
Vincent Bernat [Wed, 20 Jun 2018 16:56:52 +0000 (18:56 +0200)] 
osx: update brew formula

14 months agoMerge pull request #285 from vincentbernat/feature/linux-caps
Vincent Bernat [Sat, 16 Jun 2018 17:43:56 +0000 (19:43 +0200)] 
Merge pull request #285 from vincentbernat/feature/linux-caps

priv: drop most privileges in monitor, only keep CAP_NET_RAW/ADMIN

14 months agotests: request CAP_DAC_OVERRIDE feature/linux-caps 285/head
Vincent Bernat [Sat, 16 Jun 2018 15:59:32 +0000 (17:59 +0200)] 
tests: request CAP_DAC_OVERRIDE

CAP_FOWNER is for being able to use chown/chmod. The permission we
need to ignore permissions is CAP_DAC_OVERRIDE. It is quite a large
permission, unfortunately.

14 months agotests: add SNMP-related tests
Vincent Bernat [Sat, 16 Jun 2018 15:30:06 +0000 (17:30 +0200)] 
tests: add SNMP-related tests

14 months agopriv: always request CAP_FOWNER
Vincent Bernat [Sat, 16 Jun 2018 15:53:33 +0000 (17:53 +0200)] 
priv: always request CAP_FOWNER

While setting ifalias has some additional checks to ensure we can do
that with CAP_NET_ADMIN, we also need CAP_FOWNER to pass the sysfs
owner check. And we have to have both as the other test still needs to

14 months agopriv: request CAP_FOWNER only if SNMP is enabled on command-line
Vincent Bernat [Sat, 16 Jun 2018 15:47:14 +0000 (17:47 +0200)] 
priv: request CAP_FOWNER only if SNMP is enabled on command-line

14 months agopriv: don't use %m in format string
Vincent Bernat [Sat, 16 Jun 2018 15:36:16 +0000 (17:36 +0200)] 
priv: don't use %m in format string

This is not portable, use %s, even if we are on Linux.

14 months agodebian/redhat: build-depends on libcap-dev/libcap-devel
Vincent Bernat [Fri, 15 Jun 2018 08:57:05 +0000 (10:57 +0200)] 
debian/redhat: build-depends on libcap-dev/libcap-devel

14 months agotests: don't start lldpd twice in a namespace
Vincent Bernat [Fri, 15 Jun 2018 06:11:25 +0000 (08:11 +0200)] 
tests: don't start lldpd twice in a namespace

14 months agotests: add a test for interface alias handling
Vincent Bernat [Fri, 15 Jun 2018 05:27:38 +0000 (07:27 +0200)] 
tests: add a test for interface alias handling

14 months agobuild: also test directly for -lcap when no pkg-config
Vincent Bernat [Wed, 13 Jun 2018 06:06:45 +0000 (08:06 +0200)] 
build: also test directly for -lcap when no pkg-config

14 months agopriv: when SNMP AgentX socket is filesystem-based, acquire CAP_FOWNER
Vincent Bernat [Wed, 13 Jun 2018 05:56:48 +0000 (07:56 +0200)] 
priv: when SNMP AgentX socket is filesystem-based, acquire CAP_FOWNER

14 months agopriv: drop most privileges in monitor, only keep CAP_NET_RAW/ADMIN
Vincent Bernat [Tue, 12 Jun 2018 21:17:21 +0000 (23:17 +0200)] 
priv: drop most privileges in monitor, only keep CAP_NET_RAW/ADMIN

On Linux, we mostly rely on CAP_NET_RAW. Only keep that one. However,
we also write to ifalias, which needs CAP_NET_ADMIN. We could let user
choose at runtime if they want to grant this capability or not.
Currently, a user can turn it on/off at any time.

Access to SNMP socket may also be problematic. We need some solid
solution about that before merging.

Is it safe to use the same UID for the monitored and the unprivileged
process? Signals are mostly harmless. As for ptrace, since the
monitored process as more capabilities, this will not be allowed by

14 months agoMerge pull request #286 from GustavWi/master
Vincent Bernat [Wed, 13 Jun 2018 11:27:29 +0000 (13:27 +0200)] 
Merge pull request #286 from GustavWi/master

Read all notifications in lldpctl_recv.

14 months agoRead all notifications in lldpctl_recv. 286/head
Gustav Wiklander [Wed, 13 Jun 2018 09:35:15 +0000 (11:35 +0200)] 
Read all notifications in lldpctl_recv.

Can otherwise lead to unbounded growth in input_buffer if
lldp devices send notifications simultaneously thus
a socket callback contains multiple notifications
and only the first one is cleared. This leads to continous
growth of the input buffer and will crash the system.

Change-Id: I3331de2d8201f574a91b8e8f2d51a98010f7a7ab

14 months agolib: document the inability to do anything else when processing notifications
Vincent Bernat [Wed, 13 Jun 2018 06:29:46 +0000 (08:29 +0200)] 
lib: document the inability to do anything else when processing notifications

The code doesn't handle notifications with regular operations on the
same connection. Tell the user to open a another connection.

14 months agobuild: use lowercase for PKG_CHECK_MODULES
Vincent Bernat [Wed, 13 Jun 2018 05:41:00 +0000 (07:41 +0200)] 
build: use lowercase for PKG_CHECK_MODULES

Otherwise, this is a bit ugly.

16 months agodoc: add more instructions for Android
Vincent Bernat [Wed, 11 Apr 2018 06:45:24 +0000 (08:45 +0200)] 
doc: add more instructions for Android

16 months agobuild: no fatal errors when compiling with embedded libevent on macOS 1.0.1
Vincent Bernat [Mon, 9 Apr 2018 12:45:03 +0000 (14:45 +0200)] 
build: no fatal errors when compiling with embedded libevent on macOS

16 months agobuild: don't override CFLAGS when building libevent
Vincent Bernat [Mon, 9 Apr 2018 12:19:03 +0000 (14:19 +0200)] 
build: don't override CFLAGS when building libevent

We still want for example the minimal macOS version.

16 months agorelease: 1.0.1
Vincent Bernat [Mon, 9 Apr 2018 11:44:08 +0000 (13:44 +0200)] 
release: 1.0.1

16 months agodaemon: use "mkdir -p" instead of "mkdir"
Vincent Bernat [Mon, 9 Apr 2018 11:39:46 +0000 (13:39 +0200)] 
daemon: use "mkdir -p" instead of "mkdir"

We don't use `RuntimeDirectory=` because it needs to be relative to
`/run`. As PRIVSEP_CHROOT can be any value, this is not possible.

16 months agoRevert "daemon: use RuntimeDirectory= instead of mkdir to create chroot"
Vincent Bernat [Mon, 9 Apr 2018 11:39:18 +0000 (13:39 +0200)] 
Revert "daemon: use RuntimeDirectory= instead of mkdir to create chroot"

This reverts commit 478ec07ddc343e68d1691d551dba00919fa79d70.

16 months agodaemon: use RuntimeDirectory= instead of mkdir to create chroot
Vincent Bernat [Mon, 9 Apr 2018 10:53:33 +0000 (12:53 +0200)] 
daemon: use RuntimeDirectory= instead of mkdir to create chroot

This fix a bug introduced in b0ca585f627aa where "mkdir -p" was
replaced by "mkdir" which would fail on restart due to the directory
already existing.

16 months agobuild: try another way to circumvent macOS warning in libevent
Vincent Bernat [Mon, 9 Apr 2018 05:26:18 +0000 (07:26 +0200)] 
build: try another way to circumvent macOS warning in libevent

16 months agobuild: also build with embedded libevent in OSX
Vincent Bernat [Sun, 8 Apr 2018 18:34:35 +0000 (20:34 +0200)] 
build: also build with embedded libevent in OSX

16 months agobuild: don't be picky about deprecated stuff in libevent
Vincent Bernat [Sun, 8 Apr 2018 17:26:43 +0000 (19:26 +0200)] 
build: don't be picky about deprecated stuff in libevent

This should fix:

    evutil_rand.c:177:2: error: 'arc4random_addrandom' is deprecated: first deprecated in macOS 10.12 - use arc4random_stir [-Werror,-Wdeprecated-declarations]

16 months agorelease: prepare 1.0.0 1.0.0
Vincent Bernat [Sun, 8 Apr 2018 16:30:57 +0000 (18:30 +0200)] 
release: prepare 1.0.0

17 months agoMerge pull request #274 from vincentbernat/feature/keep-some-ports
Vincent Bernat [Sun, 18 Mar 2018 11:08:13 +0000 (12:08 +0100)] 
Merge pull request #274 from vincentbernat/feature/keep-some-ports

lldpd: add an option to keep some specified ports

17 months agoMerge pull request #272 from westermo/fix-snmp-remTablesLastChange
Vincent Bernat [Sat, 17 Mar 2018 16:06:38 +0000 (17:06 +0100)] 
Merge pull request #272 from westermo/fix-snmp-remTablesLastChange

handle lldpStatsRemTablesLastChangeTime correctly when items are removed

17 months agolldpd: add an option to keep some specified ports feature/keep-some-ports 274/head
Vincent Bernat [Sat, 17 Mar 2018 15:28:31 +0000 (16:28 +0100)] 
lldpd: add an option to keep some specified ports

A user can specify a pattern of ports to not delete even when they are
removed from the system. If a port is removed from the system and
match the pattern, it will be kept in memory.

17 months agotests: update tests for configuration keeping on port down/removed
Vincent Bernat [Mon, 12 Mar 2018 20:47:48 +0000 (21:47 +0100)] 
tests: update tests for configuration keeping on port down/removed

17 months agoclient: remove previous way to set port description from documentation
Vincent Bernat [Mon, 12 Mar 2018 17:11:09 +0000 (18:11 +0100)] 
client: remove previous way to set port description from documentation

17 months agotest: add test for new portdescription setting
Vincent Bernat [Mon, 12 Mar 2018 16:51:28 +0000 (17:51 +0100)] 
test: add test for new portdescription setting

17 months agointerfaces: fix out-of-bound access when getting permanent MAC address
Vincent Bernat [Mon, 12 Mar 2018 16:29:09 +0000 (17:29 +0100)] 
interfaces: fix out-of-bound access when getting permanent MAC address

Also, use a classic malloc() instead of a weird union. This makes
compilers better to catch this kind of error (at least on runtime with

17 months agotests: don't crash if lldpd crashed
Vincent Bernat [Mon, 12 Mar 2018 16:21:03 +0000 (17:21 +0100)] 
tests: don't crash if lldpd crashed

Otherwise, we don't get the appropriate information!

17 months agoMerge pull request #273 from westermo/config-portdescr
Vincent Bernat [Mon, 12 Mar 2018 15:56:04 +0000 (16:56 +0100)] 
Merge pull request #273 from westermo/config-portdescr

client: add alternative way to configure port description

17 months agodoc: add entry for portdescription in lldpcli manual page 273/head
Jonas Johansson [Mon, 12 Mar 2018 15:29:47 +0000 (16:29 +0100)] 
doc: add entry for portdescription in lldpcli manual page

Signed-off-by: Jonas Johansson <>
17 months agoclient: add alternative way to configure port description
Thomas Eliasson [Thu, 8 Mar 2018 14:34:17 +0000 (15:34 +0100)] 
client: add alternative way to configure port description

The existing port description CLI command only allows user configured
description if setting port id subtype to local. This patch introduces
an subtype independent way to configure port description.

Signed-off-by: Jonas Johansson <>
17 months agohandle lldpStatsRemTablesLastChangeTime correctly when items are removed 272/head
Thomas Eliasson [Thu, 8 Mar 2018 14:10:39 +0000 (15:10 +0100)] 
handle lldpStatsRemTablesLastChangeTime correctly when items are removed

When a port is removed, the time has to be updated. The last removal time is
registered per local port, and this timestamp will be used as
lldpStatsRemTablesLastChangeTime if it is the latest timestamp.
Also, the lldpStatsRemTablesDeletes is  always increased when an entry in the
table is deleted.

Signed-off-by: Jonas Johansson <>
17 months agonetlink: fix non-updated management address
Vincent Bernat [Thu, 1 Mar 2018 07:02:12 +0000 (08:02 +0100)] 
netlink: fix non-updated management address

17 months agodaemon: ensure interval update is taken into account fast
Vincent Bernat [Thu, 1 Mar 2018 07:01:28 +0000 (08:01 +0100)] 
daemon: ensure interval update is taken into account fast

17 months agoMerge pull request #271 from axjowa/fix/dot3-pd-pse-echo
Vincent Bernat [Mon, 26 Feb 2018 16:16:56 +0000 (17:16 +0100)] 
Merge pull request #271 from axjowa/fix/dot3-pd-pse-echo

Fix NULL pointer dereference in lldpd_dot3_power_pd_pse

17 months agoFix NULL pointer dereference in lldpd_dot3_power_pd_pse 271/head
axjowa [Mon, 26 Feb 2018 16:00:29 +0000 (17:00 +0100)] 
Fix NULL pointer dereference in lldpd_dot3_power_pd_pse

selected_port might be NULL after the loop if, for example,
no PSE was found among the neighbours.

This fixes a crash that occured with a device connected to
a non-PoE, LLDP-enabled switch via a PoE midspan.

17 months agobuild: don't enable sanitizers and safe-stack at the same time
Vincent Bernat [Wed, 21 Feb 2018 20:56:12 +0000 (21:56 +0100)] 
build: don't enable sanitizers and safe-stack at the same time

They are not compatible. At least on clang, they both try to
instrument the same functions.

17 months agointerfaces: explain why we cannot get the permanent MAC address
Vincent Bernat [Wed, 21 Feb 2018 20:42:41 +0000 (21:42 +0100)] 
interfaces: explain why we cannot get the permanent MAC address