-
Notifications
You must be signed in to change notification settings - Fork 11
Home
Clone github repositories
$ git clone
https://github.com/Gandi/ktrill.git
$ cd ktrill
$ git checkout devel
$ git clone
https://github.com/Gandi/quagga.git
$ cd quagga
$ git checkout dev_trill
$ git clone
https://github.com/Gandi/bridge-utils.git
$ cd bridge-utils
$ git checkout trill
Compile the kernel with these options
CONFIG_TRILL=y
CONFIG_TRILL_VNT=y
In order to compile the Quagga daemon, these packages are required :
libncurses5-dev libreadline-dev texlive-latex-base texlive-generic-recommended libcap-dev texinfo (>= 4.7) imagemagick ghostscript groff autotools-dev hardening-wrapper libpcre3-dev gawk chrpath libsnmp15 libsnmp-dev libtool
and
libpam0g-dev or libpam-dev
libnl3-dev or libnl-genl-3-dev or libnl-3-dev
Use this compile command
$ cd quagga
$ ./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
$ cd bridge-utils
$ autoconf && ./configure && make && make install
Boot on compiled kernel
ZEBRA_CONF=
[zebra.conf.sample] (https://github.com/Gandi/quagga/blob/dev_trill/zebra/zebra.conf.sample)
TRILLD_CONF =
[trilld.conf.sample] (https://github.com/Gandi/quagga/blob/dev_trill/isisd/trilld.conf.sample)
$ zebra -f $ZEBRA_CONF -P 2121 -u quagga -d
$ trilld -f $TRILLD_CONF -P 2021 -u quagga -d
Available new commands
brctl trill <bridge> {on|off} turn trill on/off
brctl setvni <bridge> <port> <vni> set virtual network id
brctl delvni <bridge> <port> delete virtual network id
brctl showvs <bridge> show vitrual network id
brctl showmacs_nick <bridge> show a list of mac addrs and correspondant nick
(experimental)
you need a correct port flag configuration:
4 -> access port (where native flow is expected)
8 -> trunk port (where trill flow is expected)
example:
echo 4 > /sys/class/net/veth0/brport/trill_state
echo 8 > /sys/class/net/eth0/brport/trill_state
For the access port tag is not mandatory when vni are used
brctl setvni <bridge> <port> <vni>
For more details view these documents:
Computer Network paper
Kernel recipes 2013 presentation slides
Dot scale youtube presentation