35 lines
1.4 KiB
Diff
35 lines
1.4 KiB
Diff
|
From 3aeb9ea17c3f3d84077c3bb2367835d96fd57432 Mon Sep 17 00:00:00 2001
|
||
|
From: sjoerd-ccu <sjoerd.simons@collabora.co.uk>
|
||
|
Date: Tue, 23 May 2017 09:10:59 +0200
|
||
|
Subject: [PATCH] networkd-link: Receive LLDP on Bridge slaves not master
|
||
|
(#5995)
|
||
|
|
||
|
LLDP should be received on bridge slaves as they're the entities
|
||
|
directly connected to a peer. Receiving LLDP on the bridge device makes
|
||
|
little sense, Linux by default even filters out LLDP going onto the
|
||
|
bridge device.
|
||
|
|
||
|
Flip the current logic, receive LLDP on bridge slaves don't listen for
|
||
|
them on the bridge itself.
|
||
|
(cherry picked from commit 764febc23ee9a22fa64981adb0be901f964df93d)
|
||
|
---
|
||
|
src/network/networkd-link.c | 5 ++++-
|
||
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
|
||
|
index c37bc7f602..b1282931f3 100644
|
||
|
--- a/src/network/networkd-link.c
|
||
|
+++ b/src/network/networkd-link.c
|
||
|
@@ -131,7 +131,10 @@ static bool link_lldp_rx_enabled(Link *link) {
|
||
|
if (!link->network)
|
||
|
return false;
|
||
|
|
||
|
- if (link->network->bridge)
|
||
|
+ /* LLDP should be handled on bridge slaves as those have a direct
|
||
|
+ * connection to their peers not on the bridge master. Linux doesn't
|
||
|
+ * even (by default) forward lldp packets to the bridge master.*/
|
||
|
+ if (streq_ptr("bridge", link->kind))
|
||
|
return false;
|
||
|
|
||
|
return link->network->lldp_mode != LLDP_MODE_NO;
|