[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1441122196-11662-1-git-send-email-ahmed@gandi.net>
Date: Tue, 1 Sep 2015 17:42:55 +0200
From: Ahmed Amamou <ahmed@...di.net>
To: netdev@...r.kernel.org
Cc: William Dauchy <william@...di.net>, Ahmed Amamou <ahmed@...di.net>,
François Cachereul <f.cachereul@...halink.fr>,
Sergei Shtylyov <sergei.shtylyov@...entembedded.com>,
Vlad Yasevich <vyasevich@...il.com>,
Stephen Hemminger <stephen@...workplumber.org>,
Francois Romieu <romieu@...zoreil.com>
Subject: [PATCH RFC v2 00/21] TRILL implementation
Hi,
We have been working on a TRILL implementation in the Linux kernel for some
time now. We have sent a first RFC a year ago (already!) and we are back
with a second version; this time we will try to update more quicly according
to the comments.
The code has been pushed here https://github.com/Gandi/ktrill.git in the devel
branch (be careful this branch is constantly rebased!)
Attached a series of patch as a second request for comment. The code is
not perfect and probably still lacks of improvements.
It's a second request of comment in order to get some feedbacks. This code has been
tested for some time now.
These patch tries to implement TRILL protocol RFC 6325.
As a first implementation, some RFC details are still not implemented.
In order to test these patches please follow the instruction:
download quagga (userland) from here https://github.com/Gandi/quagga.git
compile it using these options
./bootstrap.sh && ./configure --localstatedir=/var/run/quagga \
--enable-isisd --enable-trilld --enable-trilld-monitoring --disable-ipv6 \
--disable-ospfd --disable-ospfclient --disable-ripd --disable-babeld \
--disable-bgpd && make && make install
start zebra and trilld
$ zebra -f $ZEBRA_CONF -P 2121 -u quagga -d
$ trilld -f $TRILLD_CONF -P 2021 -u quagga -d
Configuration sample can be found here
https://github.com/Gandi/quagga/blob/dev_trill/zebra/zebra.conf.sample
and here https://github.com/Gandi/quagga/blob/dev_trill/isisd/trilld.conf.sample
Finally you need to correctly configure bridge port
For access port (native frames)
echo 4 > /sys/class/net/<INTERFACE>/brport/trill_state
For trunk port (trill frame and control frames)
echo 8 > /sys/class/net/<INTERFACE>/brport/trill_state
more detail can be found here: https://github.com/Gandi/ktrill/wiki
NB: for port state github version has different flags as we did not take
into consideration all port flag when implementing it
---
Changes in V2:
- rebase on v4.2 tag
- replace genl netlink by rtnetlink
- each port will either have TRILL or bridge packet handler
deponding on bridge status in version 0 all port used to
have a unique handler that fallback to bridge handler if
trill is not enabled
- remove usesless locks
- remove all format errors
- handle TRILL packets within packet split process
Ahmed Amamou (19):
net: rbridge: add trill frame description
net: rbridge: add RBridge structure
net: rbridge: add CONFIG_TRILL
net: rbridge: adapt Bridge structure
net: rbridge: enable/disable TRILL capability
net: rbridge: add sysfs for trill_state
net: rbridge: get Rbridge nickname from daemon
net: rbridge: add elected dtroot
net: rbridge: add rbr_node management function
net: rbridge: clean up rbr_node on rbridge stop
net: rbridge: update node table
net: rbridge: add basic trill frame handling function
net: rbridge: update forwarding database
net: rbridge: add test on trill flag before flood
net: rbridge: add encapsulation process
net: rbridge: add receive function
net: rbridge: add rbr_fwd
net: rbridge: add rbr_multidest_fwd
net: rbridge: replace net_port rx_handler
François Cachereul (1):
net: rbridge: add layer 2 IS-IS Ethertype
William Dauchy (1):
net: handle packet split for trill
include/linux/etherdevice.h | 17 +
include/net/if_trill.h | 88 ++++++
include/uapi/linux/if_ether.h | 2 +
include/uapi/linux/if_link.h | 6 +
net/bridge/Kconfig | 8 +
net/bridge/Makefile | 2 +
net/bridge/br_fdb.c | 41 +++
net/bridge/br_forward.c | 37 ++-
net/bridge/br_if.c | 7 +-
net/bridge/br_netlink.c | 10 +-
net/bridge/br_private.h | 53 ++++
net/bridge/br_sysfs_br.c | 38 +++
net/bridge/br_sysfs_if.c | 26 ++
net/bridge/rbr.c | 718 ++++++++++++++++++++++++++++++++++++++++++
net/bridge/rbr_private.h | 85 +++++
net/bridge/rbr_rtnetlink.c | 93 ++++++
net/core/flow_dissector.c | 31 ++
17 files changed, 1259 insertions(+), 3 deletions(-)
create mode 100644 include/net/if_trill.h
create mode 100644 net/bridge/rbr.c
create mode 100644 net/bridge/rbr_private.h
create mode 100644 net/bridge/rbr_rtnetlink.c
--
2.1.4
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists