git: kernel - Major bridging functionality completed

看板DFBSD_commit作者時間15年前 (2011/02/25 06:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit 70d9a675bf5441cc854a843ead702d08928c37f3 Author: Matthew Dillon <dillon@apollo.backplane.com> Date: Thu Feb 24 00:28:23 2011 -0800 kernel - Major bridging functionality completed * Rewrite the spanning tree algorithm. Not well tested but both sides properly calculate the blocking pairs for the ports whereas before they did not. Document the code as needed. The poor documentation created a lot of unnecessary headaches. Separate out the peer state from the aggregated state. * Greatly enhance the 'ifconfig [-v] bridgeN' status output so one can see exactly what the state of the sub-interfaces is. * The bridge interface's ether address can now be modified. It is also possible to add IP addresses to the bridge interface but this has not been tested well and might not work. * Nearly all traffic sourced from interfaces attached to the bridge now use the bridge's MAC address. This includes ARP. Theoretically this means that ganged links between bridges (bonding is NOT yet supported! Strictly master/backup)... should be able to failover without destroying the ARP tables on various systems. * Add an experimental LINK2 option to the bridge. This will eventually be channel bonding but doesn't work so hot right now. At the moment it just round-robins output on sub-interfaces with the same MAC (usually TAP interfaces). Ill gets aggregated using the bridge's MAC but the comparison is used to create bonding groups. This one needs considerably more work on properly adjusting its state to DESIGNATED instead of hacking packets over members in the BLOCKING state. * Clean up some of the state transitions used by the LINK1 failover feature. * Change the bridge interface to IFT_ETHER to allow IP and MAC assignments and for it to be properly handled in the rest of the stack. * Aggregate input from all member interfaces into the bridge proper and re-output/forward/route as appropriate using the stateful information available in the bif lists to handle failover and other features. * ARP handles MAC snafus due to bridging a little better. * Changeover to TAILQs from LISTs for bifs. * Move bif_flags to the bif_info structure so we can use it to hold active state. * Implement SIOCGIFMEDIA in IF_TAP (still needs some work). This is required by the bridge code to properly be able to use TAP interfaces as members. Summary of changes: sbin/ifconfig/ifbridge.c | 10 + sys/net/bridge/bridgestp.c | 568 +++++++++++++++++++++++------------------ sys/net/bridge/if_bridge.c | 560 +++++++++++++++++++++++++++------------- sys/net/bridge/if_bridgevar.h | 59 +++-- sys/net/if_ethersubr.c | 49 ++++- sys/net/if_var.h | 1 + sys/net/tap/if_tap.c | 36 +++- sys/netinet/if_ether.c | 138 ++++++++-- 8 files changed, 943 insertions(+), 478 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/70d9a675bf5441cc854a843ead702d08928c37f3 -- DragonFly BSD source repository
文章代碼(AID): #1DPjnere (DFBSD_commit)