Changes between Initial Version and Version 1 of p4-bmv2


Ignore:
Timestamp:
12/02/16 10:58:07 (5 years ago)
Author:
tpfeiff
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • p4-bmv2

    v1 v1  
     1 
     2== BEHAVIORAL MODEL == 
     3 
     4https://github.com/p4lang/behavioral-model [[BR]] 
     5http://p4.org/wp-content/uploads/2015/12/Nov-2015-P4-Bootcamp-Labs-Guide.pdf [[BR]] 
     6 
     7Linux virtuelles Interface [[BR]] 
     8http://unix.stackexchange.com/questions/152331/how-can-i-create-a-virtual-ethernet-interface-on-a-machine-without-a-physical-ad [[BR]] 
     9 
     10[[BR]] 
     11Setup läuft aug 192.168.40.119 
     12[[BR]] 
     13 
     14 
     15=== Setup === 
     16 
     17Ubuntu 14.04.4 LTS[[BR]] 
     18 
     19 
     20{{{ 
     21 
     22sudo apt-get install automake cmake libjudy-dev libgmp-dev libpcap-dev libboost-dev libboost-test-dev libboost-program-options-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libevent-dev libtool flex bison pkg-config g++ libssl-dev git ant 
     23 
     24sudo apt-get install automake bison flex g++ git libevent-dev libssl-dev libtool make pkg-config libboost-all-dev python python-pip python-dev  
     25 
     26sudo apt-get install libffi* 
     27 
     28 
     29 
     30sudo echo "deb http://us.archive.ubuntu.com/ubuntu vivid main universe" >> /etc/apt/sources.list 
     31sudo apt-get update 
     32sudo apt-get install libnanomsg-dev libnanomsg0 
     33 
     34 
     35sudo pip install Thrift 
     36 
     37 
     38 
     39sudo apt-get install python-software-properties 
     40sudo apt-get install software-properties-common 
     41sudo add-apt-repository ppa:webupd8team/java 
     42sudo apt-get update 
     43 
     44sudo apt-get install oracle-java8-installer 
     45 
     46export JAVA_HOME=/usr/lib/jvm/java-8-oracle 
     47 
     48 
     49 
     50cd ~ 
     51curl http://archive.apache.org/dist/thrift/0.9.3/thrift-0.9.3.tar.gz | tar zx 
     52cd thrift-0.9.3/ 
     53 
     54./configure 
     55make 
     56sudo make install 
     57 
     58 
     59 
     60cd ~ 
     61git clone https://github.com/p4lang/behavioral-model.git 
     62cd behavioral-model 
     63 
     64./autogen.sh 
     65./configure 
     66make 
     67sudo make install 
     68 
     69 
     70 
     71cd ~ 
     72git clone https://github.com/p4lang/p4c-bm.git 
     73cd p4c-bm 
     74 
     75sudo pip install -r requirements.txt 
     76sudo python setup.py install 
     77 
     78}}} 
     79 
     80 
     81 
     82=== Start bmv2 === 
     83 
     84p4c-bmv2 --json sw_programm.json test.p4 
     85[[BR]] 
     86 
     87/root/behavioral-model/targets/simple_switch/simple_switch --log-console -i 0@p3p1 -i 1@p2p1 /root/sw_programm.json 
     88[[BR]] 
     89[[BR]] 
     90[[BR]] 
     91 
     92 
     93== Run L2 Switch == 
     94 
     95 
     96{{{ 
     97cd ~/behavioral-model/targets/l2_switch 
     98 
     99vi run.sh 
     100   ./l2_switch --log-console -i 1@p2p1 -i 2@p3p1  ./l2_switch.json 
     101 
     102 
     103./run.sh 
     104 
     105 
     106 
     107#IN NEUEM FENSTER 
     108#------------------ 
     109cd ~/behavioral-model/tools 
     110 
     111./runtime_CLI.py 
     112 
     113table_set_default smac mac_learn 
     114table_set_default dmac broadcast 
     115mc_mgrp_create 1 
     116mc_node_create 0 1 
     117mc_node_create 1 2 
     118mc_node_associate 1 0 
     119mc_node_associate 1 1 
     120 
     121 
     122 
     123# Live Logs 
     124./nanomsg_client.py 
     125 
     126 
     127}}} 
     128 
     129 
     130== Run L3 Simple Router == 
     131 
     132 
     133{{{ 
     134cd ~/behavioral-model/targets/simple_router 
     135 
     136vi run.sh 
     137    sudo ./simple_router --log-console --nanolog ipc:///tmp/bm-1-log.ipc -i 1@p2p1 -i 2@p3p1 ./simple_router.json 
     138 
     139./run.sh 
     140 
     141 
     142 
     143#IN NEUEM FENSTER 
     144#------------------ 
     145cd ~/behavioral-model/tools 
     146 
     147./runtime_CLI.py 
     148 
     149table_set_default send_frame _drop 
     150table_set_default forward _drop 
     151table_set_default ipv4_lpm _drop 
     152table_add send_frame rewrite_mac 1 => 00:aa:bb:00:00:00 
     153table_add send_frame rewrite_mac 2 => 00:aa:bb:00:00:01 
     154table_add forward set_dmac 10.0.0.10 => 00:04:75:c7:8c:5b 
     155table_add forward set_dmac 10.0.1.10 => 00:13:3b:10:3e:85 
     156table_add ipv4_lpm set_nhop 10.0.0.10/24 => 10.0.0.10 1 
     157table_add ipv4_lpm set_nhop 10.0.1.10/24 => 10.0.1.10 2 
     158 
     159 
     160# Live Logs 
     161./nanomsg_client.py 
     162 
     163 
     164}}} 
     165 
     166 
     167 
     168 
     169 
     170== Run L3 Mininet == 
     171 
     172 
     173{{{ 
     174cd ~/behavioral-model/mininet 
     175 
     176python ./1sw_demo.py --num-hosts 2 --mode l3 --behavioral-exe /root/behavioral-model/targets/simple_router/simple_router --json  /root/behavioral-model/targets/simple_router/simple_router.json 
     177 
     178 
     179 
     180#IN NEUEM FENSTER 
     181#------------------ 
     182cd ~/behavioral-model/tools 
     183 
     184./runtime_CLI.py 
     185 
     186table_set_default send_frame _drop 
     187table_set_default forward _drop 
     188table_set_default ipv4_lpm _drop 
     189table_add send_frame rewrite_mac 1 => 00:aa:bb:00:00:00 
     190table_add send_frame rewrite_mac 2 => 00:aa:bb:00:00:01 
     191table_add forward set_dmac 10.0.0.10 => 00:04:00:00:00:00 
     192table_add forward set_dmac 10.0.1.10 => 00:04:00:00:00:01 
     193table_add ipv4_lpm set_nhop 10.0.0.10/32 => 10.0.0.10 1 
     194table_add ipv4_lpm set_nhop 10.0.1.10/32 => 10.0.1.10 2 
     195 
     196 
     197 
     198# Live Logs 
     199./nanomsg_client.py 
     200 
     201 
     202}}}