diff options
author | Nicolas PLANEL <nicolas.planel@enovance.com> | 2013-10-11 15:52:22 (GMT) |
---|---|---|
committer | Thomas Graf <tgraf@suug.ch> | 2013-10-22 12:20:41 (GMT) |
commit | 978bb85c7aa7dcd5d7fd3e4123be2b6e7b7094a2 (patch) | |
tree | 93aaf919db9b073aa940a549da61233fd477a496 /lib | |
parent | 07669b0b80902a166686ccb8135f971205a01281 (diff) | |
download | libnl-978bb85c7aa7dcd5d7fd3e4123be2b6e7b7094a2.zip libnl-978bb85c7aa7dcd5d7fd3e4123be2b6e7b7094a2.tar.gz libnl-978bb85c7aa7dcd5d7fd3e4123be2b6e7b7094a2.tar.bz2 |
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.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/route/link/bridge.c b/lib/route/link/bridge.c index eb02b22..fcf3272 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, |