Patch "bridge: allow zero ageing time" has been added to the 4.5-stable tree
Subsystems (4)
This is a note to let you know that I've just added the patch titled
bridge: allow zero ageing time
to the 4.5-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
bridge-allow-zero-ageing-time.patch
and it can be found in the queue-4.5 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Sat Apr 16 09:15:18 PDT 2016
From: Stephen Hemminger <[email protected]>
Date: Tue, 8 Mar 2016 12:59:35 -0800
Subject: bridge: allow zero ageing time
From: Stephen Hemminger <[email protected]>
[ Upstream commit 4c656c13b254d598e83e586b7b4d36a2043dad85 ]
This fixes a regression in the bridge ageing time caused by:
commit c62987bbd8a1 ("bridge: push bridge setting ageing_time down to switchdev")
There are users of Linux bridge which use the feature that if ageing time is set to 0 it causes entries to never expire. See:
https://www.linuxfoundation.org/collaborate/workgroups/networking/bridge
For a pure software bridge, it is unnecessary for the code to have arbitrary restrictions on what values are allowable.
--- include/linux/if_bridge.h | 4 ---- net/bridge/br_stp.c | 11 ++++++++--- 2 files changed, 8 insertions(+), 7 deletions(-)
include/linux/if_bridge.h +0 -4
@@ -46,10 +46,6 @@ struct br_ip_list {#define BR_LEARNING_SYNC BIT(9)#define BR_PROXYARP_WIFI BIT(10) -/* values as per ieee8021QBridgeFdbAgingTime */ -#define BR_MIN_AGEING_TIME (10 * HZ) -#define BR_MAX_AGEING_TIME (1000000 * HZ) -#define BR_DEFAULT_AGEING_TIME (300 * HZ)extern void brioctl_set (int (*ioctl_hook)(struct net *,unsigned int ,void __user *));
net/bridge/br_stp.c +8 -3
@@ -568,6 +568,14 @@ int br_set_max_age(struct net_bridge *br } +/* Set time interval that dynamic forwarding entries live +* For pure software bridge, allow values outside the 802.1 +* standard specification for special cases: +* 0 - entry never ages (all permanant) +* 1 - entry disappears (no persistance) +* +* Offloaded switch entries maybe more restrictive +*/ int br_set_ageing_time (struct net_bridge *br,u32 ageing_time) {struct switchdev_attr attr = {
@@ -579,9 +587,6 @@ int br_set_ageing_time(struct net_bridgeunsigned long t =clock_t_to_jiffies (ageing_time);int err; -if (t <BR_MIN_AGEING_TIME || t >BR_MAX_AGEING_TIME ) -return -ERANGE ; - err =switchdev_port_attr_set (br->dev, &attr);if (err)return err;
Patches currently in stable-queue which might be from [email protected] are
queue-4.5/bridge-allow-zero-ageing-time.patch