run p4 in mininet

https://github.com/p4lang/behavioral-modelpython

一、安裝工具git

install_deps.sh github

 

二、編譯behavioral-modeljson

 ./autogen.sh
 ./configure
make
[sudo] make install # if you need to install bmv2   //沒意義
工具

 

三、測試測試

make checkui

 

四、安裝p4c-bmspa

git下載代碼:https://github.com/p4lang/p4c-bmrest

sudo pip install -r requirements.txt
sudo pip install -r requirements_v1_1.txt if you are interested in compiling P4 v1.1 programs
sudo python setup.py installrouter

derek@ubox16:~$ p4c-bmv2 --version
1.11.0-e389bd34

 

五、在mininet上運行

1)編譯json

cd target/simple_router
p4c-bmv2 --json simple_router.json simple_router.p4

2)運行

cd mininet
sudo python 1sw_demo.py --behavioral-exe ../targets/simple_router/simple_router --json ../targets/simple_router/simple_router.json

mininet>pingall  //不通

3)配置table

再開一個終端:

- cd targets/simple_router
- ./runtime_CLI < commands.txt

 

mininet> pingall
*** Ping: testing ping reachability
h1 -> h2
h2 -> h1
*** Results: 0% dropped (2/2 received)

 

4)讀寫表項

開一個終端:

cd tools

./runtime_CLI.py --thrift-port 9090

RuntimeCmd: show_tablesforward [implementation=None, mk=routing_metadata.nhop_ipv4(exact, 32)]ipv4_lpm [implementation=None, mk=ipv4.dstAddr(lpm, 32)]send_frame [implementation=None, mk=standard_metadata.egress_port(exact, 9)]RuntimeCmd: table_info forwardforward [implementation=None, mk=routing_metadata.nhop_ipv4(exact, 32)]********************************************************************************_drop []set_dmac [dmac(48)]RuntimeCmd: forward [implementation=None, mk=routing_metadata.nhop_ipv4(exact, 32)]********************************************************************************_drop []set_dmac [dmac(48)]RuntimeCmd: forward [implementation=None, mk=routing_metadata.nhop_ipv4(exact, 32)]********************************************************************************_drop []set_dmac [dmac(48)]

相關文章
相關標籤/搜索