All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC v2 00/21] TRILL implementation
@ 2015-09-01 15:42 Ahmed Amamou
  2015-09-01 15:42 ` [PATCH RFC v2 01/21] net: rbridge: add trill frame description Ahmed Amamou
                   ` (20 more replies)
  0 siblings, 21 replies; 25+ messages in thread
From: Ahmed Amamou @ 2015-09-01 15:42 UTC (permalink / raw)
  To: netdev
  Cc: William Dauchy, Ahmed Amamou, François Cachereul,
	Sergei Shtylyov, Vlad Yasevich, Stephen Hemminger,
	Francois Romieu

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

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2015-09-01 18:30 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-01 15:42 [PATCH RFC v2 00/21] TRILL implementation Ahmed Amamou
2015-09-01 15:42 ` [PATCH RFC v2 01/21] net: rbridge: add trill frame description Ahmed Amamou
2015-09-01 15:42 ` [PATCH RFC v2 02/21] net: rbridge: add layer 2 IS-IS Ethertype Ahmed Amamou
2015-09-01 15:42 ` [PATCH RFC v2 03/21] net: rbridge: add RBridge structure Ahmed Amamou
2015-09-01 15:42 ` [PATCH RFC v2 04/21] net: rbridge: add CONFIG_TRILL Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 05/21] net: rbridge: adapt Bridge structure Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 06/21] net: rbridge: enable/disable TRILL capability Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 07/21] net: rbridge: add sysfs for trill_state Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 08/21] net: rbridge: get Rbridge nickname from daemon Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 09/21] net: rbridge: add elected dtroot Ahmed Amamou
2015-09-01 18:18   ` Sergei Shtylyov
2015-09-01 18:26     ` ahmed amamou
2015-09-01 15:43 ` [PATCH RFC v2 10/21] net: rbridge: add rbr_node management function Ahmed Amamou
2015-09-01 18:30   ` Sergei Shtylyov
2015-09-01 15:43 ` [PATCH RFC v2 11/21] net: rbridge: clean up rbr_node on rbridge stop Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 12/21] net: rbridge: update node table Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 13/21] net: rbridge: add basic trill frame handling function Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 14/21] net: rbridge: update forwarding database Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 15/21] net: rbridge: add test on trill flag before flood Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 16/21] net: rbridge: add encapsulation process Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 17/21] net: rbridge: add receive function Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 18/21] net: rbridge: add rbr_fwd Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 19/21] net: rbridge: add rbr_multidest_fwd Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 20/21] net: rbridge: replace net_port rx_handler Ahmed Amamou
2015-09-01 15:43 ` [PATCH RFC v2 21/21] net: handle packet split for trill Ahmed Amamou

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.