diff options
author | Jef Oliver <jef.oliver@intel.com> | 2016-09-01 00:27:09 (GMT) |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2016-09-24 11:51:29 (GMT) |
commit | 1a4031d6db73ed0a6e850c5c7b3c1bc1405673ed (patch) | |
tree | cc60213999057badac2ea363b0cdfd0630d330e9 /include | |
parent | ab17f9803d08ee5c1b3e4618da170c8cb2da3eb5 (diff) | |
download | libnl-1a4031d6db73ed0a6e850c5c7b3c1bc1405673ed.zip libnl-1a4031d6db73ed0a6e850c5c7b3c1bc1405673ed.tar.gz libnl-1a4031d6db73ed0a6e850c5c7b3c1bc1405673ed.tar.bz2 |
lib/route: Support IFLA_BRIDGE_MODE
This patch adds support for hardware assisted bridge modes stored
in IFLA_AF_SPEC[IFLA_BRIDGE_MODE].
This patch adds rtnl_link_[g/s]et_hwmode() functions, allowing
for getting and setting the hardware mode for a bridged link.
This patch adds the convenience functions for translating between
integer and string names for hardware modes.
This patch adds rtnl_link_bridge_set_self(), a function that
stores flags in IFLA_AF_SPEC[IFLA_BRIDGE_FLAGS], an attribute
that tells the kernel whether it should apply settings to the
virtual bridge device or the hardware device itself. This requires
hardware that supports the hardware flags.
This patch adds bridge_fill_af(), a function to fill IFLA_AF_SPEC
with AF_BRIDGE specific information.
Signed-off-by: Jef Oliver <jef.oliver@intel.com>
Signed-off-by: Thomas Haller <thaller@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/netlink/route/link/bridge.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/netlink/route/link/bridge.h b/include/netlink/route/link/bridge.h index b7b9ae9..f2e16e3 100644 --- a/include/netlink/route/link/bridge.h +++ b/include/netlink/route/link/bridge.h @@ -43,6 +43,11 @@ enum rtnl_link_bridge_flags { RTNL_BRIDGE_LEARNING_SYNC = 0x0040, }; +#define RTNL_BRIDGE_HWMODE_VEB BRIDGE_MODE_VEB +#define RTNL_BRIDGE_HWMODE_VEPA BRIDGE_MODE_VEPA +#define RTNL_BRIDGE_HWMODE_MAX BRIDGE_MODE_VEPA +#define RTNL_BRIDGE_HWMODE_UNDEF BRIDGE_MODE_UNDEF + extern struct rtnl_link *rtnl_link_bridge_alloc(void); extern int rtnl_link_is_bridge(struct rtnl_link *); @@ -61,12 +66,20 @@ extern int rtnl_link_bridge_unset_flags(struct rtnl_link *, unsigned int); extern int rtnl_link_bridge_set_flags(struct rtnl_link *, unsigned int); extern int rtnl_link_bridge_get_flags(struct rtnl_link *); +extern int rtnl_link_bridge_set_self(struct rtnl_link *); + +extern int rtnl_link_bridge_get_hwmode(struct rtnl_link *, uint16_t *); +extern int rtnl_link_bridge_set_hwmode(struct rtnl_link *, uint16_t); + extern char * rtnl_link_bridge_flags2str(int, char *, size_t); extern int rtnl_link_bridge_str2flags(const char *); extern char * rtnl_link_bridge_portstate2str(int, char *, size_t); extern int rtnl_link_bridge_str2portstate(const char *); +extern char * rtnl_link_bridge_hwmode2str(uint16_t, char *, size_t); +extern uint16_t rtnl_link_bridge_str2hwmode(const char *); + extern int rtnl_link_bridge_add(struct nl_sock *sk, const char *name); extern int rtnl_link_bridge_pvid(struct rtnl_link *link); |