From: Ahmed Amamou <ahmed@gandi.net>
To: netdev@vger.kernel.org
Cc: William Dauchy <william@gandi.net>, Ahmed Amamou <ahmed@gandi.net>
Subject: [PATCH RFC v2 08/21] net: rbridge: get Rbridge nickname from daemon
Date: Tue, 1 Sep 2015 17:43:03 +0200 [thread overview]
Message-ID: <1441122196-11662-9-git-send-email-ahmed@gandi.net> (raw)
In-Reply-To: <1441122196-11662-1-git-send-email-ahmed@gandi.net>
Signed-off-by: Ahmed Amamou <ahmed@gandi.net>
---
include/uapi/linux/if_link.h | 6 ++++++
net/bridge/Makefile | 2 +-
net/bridge/br_netlink.c | 10 +++++++++-
net/bridge/br_private.h | 6 ++++++
net/bridge/rbr_rtnetlink.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 66 insertions(+), 2 deletions(-)
create mode 100644 net/bridge/rbr_rtnetlink.c
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
index 2c7e8e3..07a3f01 100644
--- a/include/uapi/linux/if_link.h
+++ b/include/uapi/linux/if_link.h
@@ -229,6 +229,12 @@ enum {
IFLA_BR_AGEING_TIME,
IFLA_BR_STP_STATE,
IFLA_BR_PRIORITY,
+#ifdef CONFIG_TRILL
+/* TRILL section */
+ IFLA_TRILL_NICKNAME,
+ IFLA_TRILL_ROOT,
+ IFLA_TRILL_INFO,
+#endif
__IFLA_BR_MAX,
};
diff --git a/net/bridge/Makefile b/net/bridge/Makefile
index 27da487..472dc24 100644
--- a/net/bridge/Makefile
+++ b/net/bridge/Makefile
@@ -22,4 +22,4 @@ bridge-$(CONFIG_BRIDGE_VLAN_FILTERING) += br_vlan.o
obj-$(CONFIG_NETFILTER) += netfilter/
-bridge-$(CONFIG_TRILL) += rbr.o
+bridge-$(CONFIG_TRILL) += rbr.o rbr_rtnetlink.o
diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c
index 4d74a06..def0ea3 100644
--- a/net/bridge/br_netlink.c
+++ b/net/bridge/br_netlink.c
@@ -730,6 +730,11 @@ static const struct nla_policy br_policy[IFLA_BR_MAX + 1] = {
[IFLA_BR_AGEING_TIME] = { .type = NLA_U32 },
[IFLA_BR_STP_STATE] = { .type = NLA_U32 },
[IFLA_BR_PRIORITY] = { .type = NLA_U16 },
+#ifdef CONFIG_TRILL
+ [IFLA_TRILL_NICKNAME] = { .type = NLA_U16 },
+ [IFLA_TRILL_ROOT] = { .type = NLA_U16 },
+ [IFLA_TRILL_INFO] = { .type = NLA_BINARY },
+#endif
};
static int br_changelink(struct net_device *brdev, struct nlattr *tb[],
@@ -776,8 +781,11 @@ static int br_changelink(struct net_device *brdev, struct nlattr *tb[],
br_stp_set_bridge_priority(br, priority);
}
+#ifdef CONFIG_TRILL
+ err = rbr_set_data(brdev, tb, data);
+#endif
- return 0;
+ return err;
}
static size_t br_get_size(const struct net_device *brdev)
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
index 67da2ae..ceaf5a9 100644
--- a/net/bridge/br_private.h
+++ b/net/bridge/br_private.h
@@ -864,6 +864,12 @@ int br_dellink(struct net_device *dev, struct nlmsghdr *nlmsg, u16 flags);
int br_getlink(struct sk_buff *skb, u32 pid, u32 seq, struct net_device *dev,
u32 filter_mask, int nlflags);
+#ifdef CONFIG_TRILL
+/* rbr_netlink.c */
+int rbr_set_data(struct net_device *dev, struct nlattr *tb[],
+ struct nlattr *data[]);
+#endif
+
#ifdef CONFIG_SYSFS
/* br_sysfs_if.c */
extern const struct sysfs_ops brport_sysfs_ops;
diff --git a/net/bridge/rbr_rtnetlink.c b/net/bridge/rbr_rtnetlink.c
new file mode 100644
index 0000000..d75d45c
--- /dev/null
+++ b/net/bridge/rbr_rtnetlink.c
@@ -0,0 +1,44 @@
+/*
+ * Generic parts
+ * Linux ethernet Rbridge
+ *
+ * Authors:
+ * Ahmed AMAMOU <ahmed@gandi.net>
+ * William Dauchy <william@gandi.net>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ */
+
+#include <net/rtnetlink.h>
+#include "br_private.h"
+#include "rbr_private.h"
+
+int rbr_set_data(struct net_device *dev, struct nlattr *tb[],
+ struct nlattr *data[])
+{
+ struct net_bridge *br = netdev_priv(dev);
+ u16 nick;
+ int err = -ENOMEM;
+
+ if (!br)
+ return -EINVAL;
+
+ if (data[IFLA_TRILL_NICKNAME]) {
+ nick = nla_get_u16(data[IFLA_TRILL_NICKNAME]);
+ if (br->trill_enabled == BR_NO_TRILL)
+ br_trill_set_enabled(br, 1);
+
+ spin_lock_bh(&br->lock);
+ if (VALID_NICK(nick))
+ br->rbr->nick = htons(nick);
+ spin_unlock_bh(&br->lock);
+ }
+
+ return 0;
+fail:
+ pr_warn("rbr_set_data FAILED\n");
+ return err;
+}
--
2.1.4
next prev parent reply other threads:[~2015-09-01 15:53 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-01 15:42 [PATCH RFC v2 00/21] TRILL implementation Ahmed Amamou
2015-09-01 15:42 ` [PATCH RFC v2 01/21] net: rbridge: add trill frame description Ahmed Amamou
2015-09-01 15:42 ` [PATCH RFC v2 02/21] net: rbridge: add layer 2 IS-IS Ethertype Ahmed Amamou
2015-09-01 15:42 ` [PATCH RFC v2 03/21] net: rbridge: add RBridge structure Ahmed Amamou
2015-09-01 15:42 ` [PATCH RFC v2 04/21] net: rbridge: add CONFIG_TRILL Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 05/21] net: rbridge: adapt Bridge structure Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 06/21] net: rbridge: enable/disable TRILL capability Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 07/21] net: rbridge: add sysfs for trill_state Ahmed Amamou
2015-09-01 15:43 ` Ahmed Amamou [this message]
2015-09-01 15:43 ` [PATCH RFC v2 09/21] net: rbridge: add elected dtroot Ahmed Amamou
2015-09-01 18:18 ` Sergei Shtylyov
2015-09-01 18:26 ` ahmed amamou
2015-09-01 15:43 ` [PATCH RFC v2 10/21] net: rbridge: add rbr_node management function Ahmed Amamou
2015-09-01 18:30 ` Sergei Shtylyov
2015-09-01 15:43 ` [PATCH RFC v2 11/21] net: rbridge: clean up rbr_node on rbridge stop Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 12/21] net: rbridge: update node table Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 13/21] net: rbridge: add basic trill frame handling function Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 14/21] net: rbridge: update forwarding database Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 15/21] net: rbridge: add test on trill flag before flood Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 16/21] net: rbridge: add encapsulation process Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 17/21] net: rbridge: add receive function Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 18/21] net: rbridge: add rbr_fwd Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 19/21] net: rbridge: add rbr_multidest_fwd Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 20/21] net: rbridge: replace net_port rx_handler Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 21/21] net: handle packet split for trill Ahmed Amamou
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1441122196-11662-9-git-send-email-ahmed@gandi.net \
--to=ahmed@gandi.net \
--cc=netdev@vger.kernel.org \
--cc=william@gandi.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).