根据徐博士的封装,只需要运行p4-toolchian-master中的p4comp脚本即可。p4-toolchian-master文件,wx传输。
该脚本包含bf_p4c和stratum-tool两个镜像,由于文件太大,需要线下拷取。
1.在p4-toolchian-master文件夹下,运行以下程序:
$ ./p4comp test_l3.p4 #执行docker编译和运行.p4
$ cd output #生成结果位于output文件夹里
$ docker run -ti -v $PWD:/tmp/ p4lang/p4runtime-sh \
--grpc-addr 172.18.0.1:50001 \
--device-id 1 --election-id 0,1 \
--config /tmp/p4info.txt,/tmp/device_config.pb.bin #注意修改 --grpc-addr 地址为开启的物理switch的ip和port
物理机ip为 202.197.0.140
ps:由于编译结果存储在这里p4-toolchain-master\testl3\src\main\resources
如果只是想测通,可以cd p4-toolchain-master\testl3\src\main\resources进入,
然后执行下面命令,也是可以的。
$ docker run -ti -v $PWD:/tmp/ p4lang/p4runtime-sh \
--grpc-addr 172.18.0.1:50001 \
--device-id 1 --election-id 0,1 \
--config /tmp/p4info.txt,/tmp/device_config.pb.bin #注意修改 --grpc-addr 地址为开启的物理switch的ip和port
物理机ip为 202.197.0.140
2.查看物理机的监听端口号命令:
asic-setup.sh
ss -tlpn
选择端口9559
2.开启物理机命令:
asic-setup.sh
stratum_bfrt -chassis_config_file=/etc/stratum/x86-64-accton-wedge100bf-32x-r0/chassis_config.pb.txt -bf_switchd_cfg=/usr/local/sde/share/p4/targets/tofino/skip_p4.conf -enable_onlp=false -bf_sde_install=$SDE_INSTALL #该命令开启stratum #该条与下面一条nohup stratum_bfrt,只需要开启一个就可以。
nohup stratum_bfrt -chassis_config_file=/etc/stratum/x86-64-accton-wedge100bf-32x-r0/chassis_config.pb.txt -bf_switchd_cfg=/usr/local/sde/share/p4/targets/tofino/skip_p4.conf -enable_onlp=false -bf_sde_install=$SDE_INSTALL & #该命令表示在后台运行
3.以上,就完成了控制命令下发。
p4runtime_sh断开后已下发的数据不会消失,状态是保持的。
4.之后,重复以上步骤将命令下发给其他switch。
5.最后,服务器开启数据传输,根据我们搭建的物理拓扑,通过百G网线传输数据。