lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ