Skip to content

attempt to use build a srv6 testbed in mininet.

Notifications You must be signed in to change notification settings

shijy16/sdn-srv6

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 

Repository files navigation

sdn-srv6

attempt to use build a srv6 algorithm testbed in mininet.

Based on Dreamer-Topology-Parser,srv6-properties-generators,srv6-contoller and srv6-mininet-extensions by netgroup

I. Startup

0. Install dependencies

This project depends on Dreamer Topology Parser and Validator

> git clone https://github.com/netgroup/Dreamer-Topology-Parser
> sudo python setup.py install

This project depends on SRv6 Properties Generators

> git clone https://github.com/netgroup/srv6-properties-generators
> sudo python setup.py install

Install quagga

1. Get srv6-mininet-extensions ready

see srv6-mininet-extensions/README.md

2.Get grpc southbound api ready

in folder grpc,we need to get two grpc packages srv6_explicit_path_pb2_grpc and srv6_explicit_path_pb2 with the proto file srv6_explicit_path.proto .

install tools for grpc proto files
pip install protobuf
pip install grpcio
pip install grpcio-tools
get the grpc packages
python -m grpc_tools.protoc --proto_path=. --python_out=. --grpc_python_out=. srv6_explicit_path.proto

II. Usage

all in folder srv6-mininet-extensions

1.Run srv6-mininet topo

sudo python srv6_mininet_extension.py --topology topo/example_srv6_topology.json     

2.Enter devices' xterm

use the following command in mininet cli to enter ads1's terminal

xterm ads1

3. Run client and servers

run client in mgmt's or controller's xterm

python grpc/grpc_client.py

run server on router's xterm note:Servers will be started as the net started.So there's no need to start them youself.

python grpc/grpc_server.py

4. Topology extraction

on mgmt, run command:

python topo_extract/ti_extraction.py --ip_ports IP-PORT --peroid PERIOD
e.g:
python topo_extract/ti_extraction.py --ip_ports 2000::1-2606 --peroid 1

then you can get topo infos in folder topo_extraction

5. traffic generation

this depends on SRTE/path.txt

use iperf to generate ipv6 udp traffic.

in each terminal,start udp server:

iperf -u -s -V

to generate traffic, on dest host,run:

iperf -u -t [last time] -i [info interval] -V -c [destination ip] -b [bandwidth] -f [format]
e.g:
iperf -u -t 10 -i 1 -V -c fdff::2 -b 20m -f m
-b 20m means 20Mbits/s,-f m means format is Mbits

to call auto test function, in mininet CLI,run:

iperf_test

6. SR configure

this depends on SRTE/path.txt

to call auto SR function,in mininet CLI,run :

SRConfig

this will run client on mgmt to configure all SR paths

III. development date

11st April

  • run through and add function add_srv6_route(src,segs,dst,encapmode)

  • TODO

  • add auto startup funcs for each devices

    • still some bugs
  • add delete function(need to learn grpc programming I guess)

  • to see if it's possible to build grpc links between mgmt and all routers through real time topology

18th April

  • add auto startup for servers
  • finish easy path delete and path add functions
  • test topo extractions
  • TODO
    • build a structure to controll all srv6 paths

basic functions finished

BUG

  • the same srv6 route can't be add and delete without space

About

attempt to use build a srv6 testbed in mininet.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages