All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 00/24] TRILL implementation
@ 2014-09-24 15:51 Ahmed Amamou
  2014-09-24 15:51 ` [RFC PATCH 01/24] net: rbridge: add trill frame description Ahmed Amamou
                   ` (24 more replies)
  0 siblings, 25 replies; 46+ messages in thread
From: Ahmed Amamou @ 2014-09-24 15:51 UTC (permalink / raw)
  To: netdev; +Cc: william, f.cachereul, Ahmed Amamou

Hi,

We have been working on a TRILL implementation in the Linux kernel for some
months now.  The code has been pushed here https://github.com/Gandi/ktrill.git
along the way.  Attached a series of patch as a first proposition.  The code is
not perfect and probably still lacks of improvements. It's a first request of
comment in order to get some feedbacks. This code has been tested for some
months now.

These patch tries to implement TRILL protocol RFC 6325.  As a First
implementation, some RFC details are still not implemented.

We still need to fix these points: 
- The use of rtnetlink instead of the actual netlink.
- BPDU handling

Also some parts may not be fully linux compliant, so we are waiting for
comments

In order to test theses patches please follow this small wiki 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 --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

Ahmed Amamou (23):
  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: Add Rbridge netlink message skeleton
  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: Add set_node function
  net: rbridge: Add get_node function
  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 multicast recv handling
  net: rbridge: Add decapsulation 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

 include/linux/etherdevice.h      |  34 ++
 include/linux/if_trill.h         |  89 +++++
 include/uapi/linux/if_ether.h    |   2 +
 net/bridge/Kconfig               |   8 +
 net/bridge/Makefile              |   2 +
 net/bridge/br.c                  |   6 +
 net/bridge/br_fdb.c              |  40 +++
 net/bridge/br_forward.c          |  38 ++
 net/bridge/br_if.c               |   4 +
 net/bridge/br_private.h          |  51 +++
 net/bridge/br_sysfs_br.c         |  38 ++
 net/bridge/br_sysfs_if.c         |  23 ++
 net/bridge/rbridge/rbr.c         | 723 +++++++++++++++++++++++++++++++++++++++
 net/bridge/rbridge/rbr_netlink.c | 404 ++++++++++++++++++++++
 net/bridge/rbridge/rbr_netlink.h |  62 ++++
 net/bridge/rbridge/rbr_private.h |  86 +++++
 16 files changed, 1610 insertions(+)
 create mode 100644 include/linux/if_trill.h
 create mode 100644 net/bridge/rbridge/rbr.c
 create mode 100644 net/bridge/rbridge/rbr_netlink.c
 create mode 100644 net/bridge/rbridge/rbr_netlink.h
 create mode 100644 net/bridge/rbridge/rbr_private.h

-- 
Ahmed Amamou 

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

end of thread, other threads:[~2014-09-25 11:43 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-24 15:51 [RFC PATCH 00/24] TRILL implementation Ahmed Amamou
2014-09-24 15:51 ` [RFC PATCH 01/24] net: rbridge: add trill frame description Ahmed Amamou
2014-09-24 16:38   ` Stephen Hemminger
2014-09-24 16:48     ` William Dauchy
2014-09-24 17:26       ` Cong Wang
2014-09-24 17:34         ` William Dauchy
2014-09-24 17:01   ` Cong Wang
2014-09-24 15:51 ` [RFC PATCH 02/24] net: rbridge: Add layer 2 IS-IS Ethertype Ahmed Amamou
2014-09-24 15:51 ` [RFC PATCH 03/24] net: rbridge: Add RBridge structure Ahmed Amamou
2014-09-24 16:40   ` Stephen Hemminger
2014-09-24 16:55     ` William Dauchy
2014-09-24 17:18   ` Cong Wang
2014-09-24 15:52 ` [RFC PATCH 04/24] net: rbridge: Add CONFIG_TRILL Ahmed Amamou
2014-09-24 15:52 ` [RFC PATCH 05/24] net: rbridge: Adapt Bridge structure Ahmed Amamou
2014-09-24 20:56   ` Francois Romieu
2014-09-24 15:52 ` [RFC PATCH 06/24] net: rbridge: Enable/disable TRILL capability Ahmed Amamou
2014-09-24 17:46   ` Vlad Yasevich
2014-09-24 15:52 ` [RFC PATCH 07/24] net: rbridge: Add sysfs for trill_state Ahmed Amamou
2014-09-24 15:52 ` [RFC PATCH 08/24] net: rbridge: Add Rbridge netlink message skeleton Ahmed Amamou
2014-09-24 17:52   ` Vlad Yasevich
2014-09-24 15:52 ` [RFC PATCH 09/24] net: rbridge: Get Rbridge nickname from daemon Ahmed Amamou
2014-09-24 15:52 ` [RFC PATCH 10/24] net: rbridge: Add elected dtroot Ahmed Amamou
2014-09-25 11:30   ` Sergei Shtylyov
2014-09-24 15:52 ` [RFC PATCH 11/24] net: rbridge: Add rbr_node management function Ahmed Amamou
2014-09-25 11:24   ` Sergei Shtylyov
2014-09-24 15:52 ` [RFC PATCH 12/24] net: rbridge: Clean up rbr_node on rbridge stop Ahmed Amamou
2014-09-24 15:52 ` [RFC PATCH 13/24] net: rbridge: Add set_node function Ahmed Amamou
2014-09-25 11:34   ` Sergei Shtylyov
2014-09-24 15:52 ` [RFC PATCH 14/24] net: rbridge: Add get_node function Ahmed Amamou
2014-09-24 15:52 ` [RFC PATCH 15/24] net: rbridge: Add basic trill frame handling function Ahmed Amamou
2014-09-24 19:23   ` Francois Romieu
2014-09-24 15:52 ` [RFC PATCH 16/24] net: rbridge: Update forwarding database Ahmed Amamou
2014-09-24 15:52 ` [RFC PATCH 17/24] net: rbridge: Add test on trill flag before flood Ahmed Amamou
2014-09-24 15:52 ` [RFC PATCH 18/24] net: rbridge: Add encapsulation process Ahmed Amamou
2014-09-24 15:52 ` [RFC PATCH 19/24] net: rbridge: Add receive function Ahmed Amamou
2014-09-24 15:52 ` [RFC PATCH 20/24] net: rbridge: Add multicast recv handling Ahmed Amamou
2014-09-24 15:52 ` [RFC PATCH 21/24] net: rbridge: Add decapsulation function Ahmed Amamou
2014-09-24 15:52 ` [RFC PATCH 22/24] net: rbridge: Add rbr_fwd Ahmed Amamou
2014-09-25 11:43   ` Sergei Shtylyov
2014-09-24 15:52 ` [RFC PATCH 23/24] net: rbridge: Add rbr_multidest_fwd Ahmed Amamou
2014-09-24 15:52 ` [RFC PATCH 24/24] net: rbridge: replace net_port rx_handler Ahmed Amamou
2014-09-24 16:44 ` [RFC PATCH 00/24] TRILL implementation Stephen Hemminger
2014-09-24 16:54   ` William Dauchy
2014-09-24 17:24     ` Cong Wang
2014-09-24 17:33       ` William Dauchy
2014-09-24 20:57     ` Francois Romieu

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.