Skip to content
This repository has been archived by the owner on Mar 26, 2021. It is now read-only.
ahmed amamou edited this page Jul 24, 2014 · 18 revisions

Step 1: Get the code

clone github repositories

Kernel:

$ git clone https://github.com/Gandi/ktrill.git
$ cd ktrill
$ git checkout devel

Quagga:

$ git clone https://github.com/Gandi/quagga.git
$ cd quagga
$ git checkout dev_trill

Bridge-utils:

$ git clone https://github.com/Gandi/bridge-utils.git
$ cd bridge-utils
$ git checkout trill

Setp 2: compile

Kernel:

Compile the kernel with these options CONFIG_TRILL=y
CONFIG_TRILL_VNT=y

Quagga:

In order to compile the Quagga deamon, 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 --disable-ipv6 --disable-ospfd --disable-ospfclient --disable-ripd --disable-babeld --disable-bgpd && make && make install

Bridge-utils:

$ cd bridge-utils
$ autoconf && ./configure && make && make install

Step 3: Use

Kernel:

Boot on compiled kernel

Quagga:

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

Bridge-utils:

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)

NB : This configuration works automatically for xen envirement for other virtualisation envirement vm interface need to be correctly flagged
echo 2 > /sys/class/net/<INTERFACE>/brport/trill_state
or just append a vni ID to it using
brctl setvni <bridge> <port> <vni>

Documentation

For more details view these can see
Computer Network paper
Kernel recipes 2013 presentation slides
Dot scale youtube presentation

Main Contributors

Ahmed Amamou
Kamel Haddadou
William Dauchy

Clone this wiki locally