项目作者: ailispaw

项目描述 :
P4 Language Tutorials on Barge with Vagrant
高级语言: Shell
项目地址: git://github.com/ailispaw/p4-barge.git
创建时间: 2018-06-21T20:44:06Z
项目社区:https://github.com/ailispaw/p4-barge

开源协议:

下载


P4 Language Tutorials on Barge with Vagrant

This repo creates a P4 Language Tutorials Environment in a Docker container on Barge with Vagrant instantly.

Requirements

Start Up an Environment for the P4 Tutorials

  1. $ vagrant up
  2. $ vagrant ssh
  3. [bargee@barge ~]$ docker run -it --rm --privileged -v /lib/modules:/lib/modules:ro -v /vagrant/tutorials:/home/p4/tutorials --name p4-tutorials --hostname p4-barge ailispaw/p4-tutorials:v2
  4. p4@p4-barge:~$

Run a Tutorial

  1. p4@p4-barge:~$ cd tutorials/exercises/basic
  2. p4@p4-barge:~/tutorials/exercises/basic$ make build
  3. mkdir -p build pcaps logs
  4. p4c-bm2-ss --p4v 16 --p4runtime-file build/basic.p4info --p4runtime-format text -o build/basic.json basic.p4
  5. p4@p4-barge:~/tutorials/exercises/basic$ make run
  6. mkdir -p build pcaps logs
  7. sudo python ../../utils/run_exercise.py -t topology.json -b simple_switch_grpc
  8. Reading topology file.
  9. Building mininet topology.
  10. Switch port mapping:
  11. s1: 1:h1 2:s2 3:s3
  12. s2: 1:h2 2:s1 3:s3
  13. s3: 1:h3 2:s1 3:s2
  14. .
  15. .
  16. .
  17. mininet>

To Login a Mininet Node

Because it doesn’t have a GUI window, we can not use mininet’s (g|x)term command.
You can use the ./contrib/term.sh script in another terminal instead.

  • Open another terminal.
  • Then,
  1. $ vagrant ssh
  2. [bargee@barge ~]$ /vagrant/contrib/term.sh h1
  3. root@<h1>:~#
  • Or if you have Docker client in your local machine, you can log into the node directly.
  1. $ ./contrib/term.sh h1
  2. root@<h1>:~# ifconfig
  3. h1-eth0 Link encap:Ethernet HWaddr 00:00:00:00:01:01
  4. inet addr:10.0.1.1 Bcast:10.0.1.255 Mask:255.255.255.0
  5. UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
  6. RX packets:18 errors:0 dropped:0 overruns:0 frame:0
  7. TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
  8. collisions:0 txqueuelen:1000
  9. RX bytes:1416 (1.4 KB) TX bytes:90 (90.0 B)
  10. lo Link encap:Local Loopback
  11. inet addr:127.0.0.1 Mask:255.0.0.0
  12. UP LOOPBACK RUNNING MTU:65536 Metric:1
  13. RX packets:0 errors:0 dropped:0 overruns:0 frame:0
  14. TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
  15. collisions:0 txqueuelen:1000
  16. RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)