summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorNicolas PLANEL <nicolas.planel@enovance.com>2013-10-11 15:52:22 +0000
committerThomas Graf <tgraf@suug.ch>2013-10-22 14:20:41 +0200
commit978bb85c7aa7dcd5d7fd3e4123be2b6e7b7094a2 (patch)
tree93aaf919db9b073aa940a549da61233fd477a496 /lib
parent07669b0b80902a166686ccb8135f971205a01281 (diff)
downloadlibnl-978bb85c7aa7dcd5d7fd3e4123be2b6e7b7094a2.tar.gz
python: add bridge flags API
Add flags set/get methods aim to change bridge flags : o hairpin_mode o bpdu_guard o root_block o fast_leave Signed-off-by: Nicolas PLANEL <nicolas.planel@enovance.com> Signed-off-by: Thomas Graf <tgraf@suug.ch>
Diffstat (limited to 'lib')
-rw-r--r--lib/route/link/bridge.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/route/link/bridge.c b/lib/route/link/bridge.c
index eb02b22c..fcf3272b 100644
--- a/lib/route/link/bridge.c
+++ b/lib/route/link/bridge.c
@@ -451,6 +451,30 @@ int rtnl_link_bridge_get_flags(struct rtnl_link *link)
return bd->b_flags;
}
+static const struct trans_tbl bridge_flags[] = {
+ __ADD(RTNL_BRIDGE_HAIRPIN_MODE, hairpin_mode)
+ __ADD(RTNL_BRIDGE_BPDU_GUARD, bpdu_guard)
+ __ADD(RTNL_BRIDGE_ROOT_BLOCK, root_block)
+ __ADD(RTNL_BRIDGE_FAST_LEAVE, fast_leave)
+};
+
+/**
+ * @name Flag Translation
+ * @{
+ */
+
+char *rtnl_link_bridge_flags2str(int flags, char *buf, size_t len)
+{
+ return __flags2str(flags, buf, len, bridge_flags, ARRAY_SIZE(bridge_flags));
+}
+
+int rtnl_link_bridge_str2flags(const char *name)
+{
+ return __str2flags(name, bridge_flags, ARRAY_SIZE(bridge_flags));
+}
+
+/** @} */
+
static struct rtnl_link_af_ops bridge_ops = {
.ao_family = AF_BRIDGE,
.ao_alloc = &bridge_alloc,