attempt to use build a srv6 algorithm testbed in mininet.
Based on
Dreamer-Topology-Parser
,srv6-properties-generators
,srv6-contoller
andsrv6-mininet-extensions
by netgroup
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
see srv6-mininet-extensions/README.md
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
.
pip install protobuf
pip install grpcio
pip install grpcio-tools
python -m grpc_tools.protoc --proto_path=. --python_out=. --grpc_python_out=. srv6_explicit_path.proto
all in folder
srv6-mininet-extensions
sudo python srv6_mininet_extension.py --topology topo/example_srv6_topology.json
use the following command in mininet cli to enter ads1's terminal
xterm ads1
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
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
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
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
-
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
- 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