Xin Long
2016-Apr-08 16:03 UTC
[Bridge] [PATCHv3 net-next 0/6] bridge: support sending rntl info when we set attributes through sysfs/ioctl
This patchset is used to support sending rntl info to user in some places,
and ensure that whenever those attributes change internally or from sysfs,
that a netlink notification is sent out to listeners.
It also make some adjustment in bridge sysfs so that we can implement this
easily.
I've done some tests on this patchset, like:
[br_sysfs]
1. change all the attribute values of br or brif:
$ echo $value > /sys/class/net/br0/bridge/{*}
$ echo $value > /sys/class/net/br0/brif/eth1/{*}
2. meanwhile, on another terminal to observe the msg:
$ bridge monitor
[br_ioctl]
1. in bridge-utils package, do some changes in br_set, let brctl command
use ioctl to set attribute:
if ((ret = set_sysfs(path, value)) < 0) { -->
if (1) {
$ brctl set*
2. meanwhile, on another terminal to observe the msg:
$ bridge monitor
This test covers all the attributes that brctl and sysfs support to set.
Xin Long (6):
bridge: simplify the flush_store by calling store_bridge_parm
bridge: simplify the forward_delay_store by calling store_bridge_parm
bridge: simplify the stp_state_store by calling store_bridge_parm
bridge: a netlink notification should be sent when those attributes
are changed by br_sysfs_br
bridge: a netlink notification should be sent when those attributes
are changed by br_sysfs_if
bridge: a netlink notification should be sent when those attributes
are changed by ioctl
net/bridge/br_ioctl.c | 40 ++++++++++++++---------
net/bridge/br_sysfs_br.c | 84 ++++++++++++++++++++----------------------------
net/bridge/br_sysfs_if.c | 5 +--
net/bridge/br_vlan.c | 30 +++--------------
4 files changed, 66 insertions(+), 93 deletions(-)
--
2.1.0
Xin Long
2016-Apr-08 16:03 UTC
[Bridge] [PATCHv3 net-next 1/6] bridge: simplify the flush_store by calling store_bridge_parm
There are some repetitive codes in flush_store, we can remove
them by calling store_bridge_parm, also, it would send rtnl notification
after we add it in store_bridge_parm in the following patches.
Signed-off-by: Xin Long <lucien.xin at gmail.com>
---
net/bridge/br_sysfs_br.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/net/bridge/br_sysfs_br.c b/net/bridge/br_sysfs_br.c
index 6b80914..c48f6b0 100644
--- a/net/bridge/br_sysfs_br.c
+++ b/net/bridge/br_sysfs_br.c
@@ -336,17 +336,17 @@ static ssize_t group_addr_store(struct device *d,
static DEVICE_ATTR_RW(group_addr);
+static int set_flush(struct net_bridge *br, unsigned long val)
+{
+ br_fdb_flush(br);
+ return 0;
+}
+
static ssize_t flush_store(struct device *d,
struct device_attribute *attr,
const char *buf, size_t len)
{
- struct net_bridge *br = to_bridge(d);
-
- if (!ns_capable(dev_net(br->dev)->user_ns, CAP_NET_ADMIN))
- return -EPERM;
-
- br_fdb_flush(br);
- return len;
+ return store_bridge_parm(d, buf, len, set_flush);
}
static DEVICE_ATTR_WO(flush);
--
2.1.0
Nikolay Aleksandrov
2016-Apr-09 12:55 UTC
[Bridge] [PATCHv3 net-next 0/6] bridge: support sending rntl info when we set attributes through sysfs/ioctl
On 04/08/2016 06:03 PM, Xin Long wrote:> This patchset is used to support sending rntl info to user in some places, > and ensure that whenever those attributes change internally or from sysfs, > that a netlink notification is sent out to listeners. > > It also make some adjustment in bridge sysfs so that we can implement this > easily. > > I've done some tests on this patchset, like: > [br_sysfs] > 1. change all the attribute values of br or brif: > $ echo $value > /sys/class/net/br0/bridge/{*} > $ echo $value > /sys/class/net/br0/brif/eth1/{*} > > 2. meanwhile, on another terminal to observe the msg: > $ bridge monitor > > [br_ioctl] > 1. in bridge-utils package, do some changes in br_set, let brctl command > use ioctl to set attribute: > if ((ret = set_sysfs(path, value)) < 0) { --> > if (1) { > > $ brctl set* > > 2. meanwhile, on another terminal to observe the msg: > $ bridge monitor > > This test covers all the attributes that brctl and sysfs support to set. >Overall the set looks good to me, just one comment for future posts - please include the changes between versions of the set in your cover letter and individual patches. I had to go back to your previous postings and read my own comments and compare them with this set. Thank you, Nik
David Miller
2016-Apr-14 02:42 UTC
[Bridge] [PATCHv3 net-next 0/6] bridge: support sending rntl info when we set attributes through sysfs/ioctl
From: Xin Long <lucien.xin at gmail.com> Date: Sat, 9 Apr 2016 00:03:27 +0800> This patchset is used to support sending rntl info to user in some places, > and ensure that whenever those attributes change internally or from sysfs, > that a netlink notification is sent out to listeners. > > It also make some adjustment in bridge sysfs so that we can implement this > easily. > > I've done some tests on this patchset, like:...> This test covers all the attributes that brctl and sysfs support to set.Series applied, thanks.