On 04/02/2016 09:26 PM, Bert Vermeulen wrote: > Hi all, > > I'm wondering about the current userspace toolset to control bridging in > the Linux kernel. As far as I can determine, functionality is a bit > scattered right now between the iproute2 (ip, bridge) and bridge-utils > (brctl) tools: > > - creating/deleting bridges: ip or brctl > - adding/deleting ports to/from bridge: brctl only
ip link set dev ethX master bridgeY ip link set dev ethX nomaster > - showing bridge fdb: brctl (in-kernel fdb), bridge (hardware offloaded > fdb) (!) bridge fdb show - shows all fdb entries, offloaded or not. > ...and no doubt a few other things. > > Also the brctl tool seems not to be getting updates, whereas the > iproute2 tools are of course updated regularly. Is brctl considered > obsolete? iproute2 supports (almost, user-space stp?) everything now, there have been many recent additions to the options that can be manipulated. $ ip link set dev bridge0 type bridge help Usage: ... bridge [ forward_delay FORWARD_DELAY ] [ hello_time HELLO_TIME ] [ max_age MAX_AGE ] [ ageing_time AGEING_TIME ] [ stp_state STP_STATE ] [ priority PRIORITY ] [ group_fwd_mask MASK ] [ group_address ADDRESS ] [ vlan_filtering VLAN_FILTERING ] [ vlan_protocol VLAN_PROTOCOL ] [ vlan_default_pvid VLAN_DEFAULT_PVID ] [ mcast_snooping MULTICAST_SNOOPING ] [ mcast_router MULTICAST_ROUTER ] [ mcast_query_use_ifaddr MCAST_QUERY_USE_IFADDR ] [ mcast_querier MULTICAST_QUERIER ] [ mcast_hash_elasticity HASH_ELASTICITY ] [ mcast_hash_max HASH_MAX ] [ mcast_last_member_count LAST_MEMBER_COUNT ] [ mcast_startup_query_count STARTUP_QUERY_COUNT ] [ mcast_last_member_interval LAST_MEMBER_INTERVAL ] [ mcast_membership_interval MEMBERSHIP_INTERVAL ] [ mcast_querier_interval QUERIER_INTERVAL ] [ mcast_query_interval QUERY_INTERVAL ] [ mcast_query_response_interval QUERY_RESPONSE_INTERVAL ] [ mcast_startup_query_interval STARTUP_QUERY_INTERVAL ] [ nf_call_iptables NF_CALL_IPTABLES ] [ nf_call_ip6tables NF_CALL_IP6TABLES ] [ nf_call_arptables NF_CALL_ARPTABLES ] Where: VLAN_PROTOCOL := { 802.1Q | 802.1ad } > > If that is the case, would patches to add the missing functionality into > the bridge tool be welcome? I'm thinking primarily of creating/deleting > bridges, and adding/deleting ports in bridges. > >