[P4-dev] Installing P4 sample switch

Jim Kao junghongkao at gmail.com
Fri Sep 23 14:32:33 EDT 2016


Antonin.

Thanks you for the tip. but crc16 module is missed while running PD tests.

Jim
jim at onie-server:~/sdb/switch$ sudo ./bmv2/run_tests.sh
WARNING: No route found for IPv6 destination :: (no default route?)
Traceback (most recent call last):
  File "/usr/local/bin/ptf", line 4, in <module>
    __import__('pkg_resources').run_script('ptf==0.9', 'ptf')
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py",
line 744, in run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py",
line 1499, in run_script
    exec(code, namespace, namespace)
  File
"/usr/local/lib/python2.7/dist-packages/ptf-0.9-py2.7.egg/EGG-INFO/scripts/ptf",
line 511, in <module>
    test_modules = load_test_modules(config)
  File
"/usr/local/lib/python2.7/dist-packages/ptf-0.9-py2.7.egg/EGG-INFO/scripts/ptf",
line 399, in load_test_modules
    mod = imp.load_module(modname, *imp.find_module(modname, [root]))
  File "/home/jim/sdb/switch/tests/ptf-tests/pd-tests/switch.py", line 39,
in <module>
    from common.utils import *
  File "/home/jim/sdb/switch/tests/ptf-tests/pd-tests/../common/utils.py",
line 281, in <module>
    import crc16
ImportError: No module named crc16

On Mon, Sep 12, 2016 at 11:11 AM, Antonin Bas <antonin at barefootnetworks.com>
wrote:

> Hi Jim,
>
> There was recently an update to the master branches of bmv2 (the software
> switch, https://github.com/p4lang/behavioral-model) and p4c-bm (the
> compiler, https://github.com/p4lang/p4c-bm). The format of the JSON,
> which is produced by the compiler from the P4 program and fed to the bmv2
> switch, changed slightly. The latest bmv2 can still consume JSON files in
> the old format. However, the JSON files produced by the latest p4c-bm
> compiler version cannot be consumed by older bmv2 versions. If you try to
> give a recent JSON to an older bmv2 version, you will get the error you are
> observing (I just confirmed it on my machine).
> So in a nutshell, the solution should be to simply update bmv2 (i.e. pull
> master, re-compile and re-install).
>
> Sorry for the inconvenience.
>
> Antonin
>
> On Sun, Sep 11, 2016 at 10:02 PM, Jim Kao <junghongkao at gmail.com> wrote:
>
>> Antonin
>>
>> After I build the switch but it failed to run it due to failing to
>> locating header file .
>>
>> jim at onie-server:~/sdb/switch$ sudo ./bmv2/run_bm.sh
>> simple_switch: ../../include/bm/bm_sim/bytecontainer.h:95:
>> bm::ByteContainer::ByteContainer(const string&): Assertion `(size - idx)
>> > 0' failed.
>> ./bmv2/run_bm.sh: line 16:  8397 Aborted                 (core dumped)
>> /usr/local/bin/simple_switch --log-console -i 0 at veth0 -i 1 at veth2 -i
>> 2 at veth4 -i 3 at veth6 -i 4 at veth8 -i 5 at veth10 -i 6 at veth12 -i 7 at veth14 -i
>> 8 at veth16 -i 64 at veth250 --thrift-port 10001 --pcap $JSON_FILE
>>
>> veth pair setup is done through the script tools/veth_setup.sh.
>>
>> bmv2 is compiled and installed successful.
>>
>> jim at onie-server:~/sdb/bmv2$ ./configure --with-pdfixed
>> Features recap ......................
>> Coverage enabled .............. : no
>> Debugger enabled .............. : no
>> Logging macros enabled ........ : yes
>> Event logger enabled .......... : yes
>> With pdfixed .................. : yes
>>
>> jim at onie-server:~/sdb/bmv2$ sudo make install
>>
>> What might I miss ?
>>
>> Jim
>>
>>
>>
>> On Thu, Sep 1, 2016 at 1:10 PM, Antonin Bas <antonin at barefootnetworks.com
>> > wrote:
>>
>>> Hi Sarath,
>>>
>>> I would recommend installing bmv2 in a standard system location. Just
>>> run "sudo make install" after having compiled bmv2. Then switch will have
>>> no issue finding bmv2 and the pdfixed headers.
>>> Once bmv2 is installed, please run "./configure --with-bmv2
>>> --with-switchsai" again in your switch directory. You do not need to worry
>>> about p4-build, as the switch configure script will take care of running
>>> the p4-build configure script.
>>> So in a nutshell I would say the only thing missing from your steps is
>>> the installation of bmv2 with "sudo make install".
>>> You may want to pay attention to the output of the switch configure
>>> script. If everything goes smoothly, you should see a short recap message
>>> at the end with the detail of the options you provided.
>>>
>>> Please let us know if you run into more issues.
>>>
>>> Best,
>>>
>>> Antonin
>>>
>>> On Wed, Aug 31, 2016 at 7:44 PM, Sarath Kamisetty <
>>> sarath.kamisetty at gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> I am trying to follow the instructions posted in
>>>> https://github.com/p4lang/switch to compile and run the switch
>>>> (switch.p4). Is there one single script that performs all the steps ? I
>>>> couldn't find one. Any other documentation to get this up and running will
>>>> be helpful.
>>>>
>>>> I did the following:
>>>>
>>>> #1) Installed PTF
>>>> #2) Installed p4c-bmv2
>>>> #3) Compiled bmv2 with --with-pdfixed option. Where do I install this
>>>> ? Instructions at https://github.com/p4lang/behavioral-model only
>>>> mention how to compile, not about installing it in any location. It is
>>>> unclear how this switch.p4 will use this path I compiled bmv2 in.
>>>>
>>>> At this point, I did the following under the switch/ directory
>>>>
>>>> ./autogen.sh
>>>>  ./configure --with-bmv2 --with-switchsai
>>>>  make
>>>>
>>>> And "make" failed promptly with the following error:
>>>>
>>>> [saratk at ubuntu:~/Projects/ws1/Closet/p4/matrix/apps/switch]make
>>>> make  all-recursive
>>>> make[1]: Entering directory `/home/saratk/Projects/ws1/Clo
>>>> set/p4/matrix/apps/switch'
>>>> Making all in p4-build
>>>> make[2]: Entering directory `/home/saratk/Projects/ws1/Clo
>>>> set/p4/matrix/apps/switch/p4-build'
>>>> make[2]: *** No rule to make target `all'.  Stop.
>>>> make[2]: Leaving directory `/home/saratk/Projects/ws1/Clo
>>>> set/p4/matrix/apps/switch/p4-build'
>>>> make[1]: *** [all-recursive] Error 1
>>>> make[1]: Leaving directory `/home/saratk/Projects/ws1/Clo
>>>> set/p4/matrix/apps/switch'
>>>> make: *** [all] Error 2
>>>> [saratk at ubuntu:~/Projects/ws1/Closet/p4/matrix/apps/switch]
>>>>
>>>> Suspecting something wrong with p4-build/, I followed instructions at
>>>> https://github.com/p4lang/p4-build/ under switch/p4-build/ and
>>>> "configure" step failed:
>>>>
>>>> ./configure --with-bmv2 P4_NAME=switch P4_PATH=/home/<user>/p4-apps/s
>>>> witch/p4src/switch.p4
>>>>
>>>> ...
>>>> ...
>>>> checking for vector... yes
>>>> checking for p4c-bmv2... /usr/local/bin/p4c-bmv2
>>>> *checking bm/pdfixed/pd_common.h usability... no*
>>>> *checking bm/pdfixed/pd_common.h presence... no*
>>>> *checking for bm/pdfixed/pd_common.h... no*
>>>> *configure: error: bmv2 pdfixed headers not found*
>>>> *configure: error: ./co**nfigure failed for p4-build*
>>>>
>>>> However, I do see these files from step 3 in different path. Is there
>>>> some environment variable that I need to set so this step succeeds ? Pls.
>>>> help.
>>>>
>>>> Thanks,
>>>> Sarat
>>>>
>>>> _______________________________________________
>>>> P4-dev mailing list
>>>> P4-dev at lists.p4.org
>>>> http://lists.p4.org/mailman/listinfo/p4-dev_lists.p4.org
>>>>
>>>
>>>
>>>
>>> --
>>> Antonin
>>>
>>> _______________________________________________
>>> P4-dev mailing list
>>> P4-dev at lists.p4.org
>>> http://lists.p4.org/mailman/listinfo/p4-dev_lists.p4.org
>>>
>>
>>
>
>
> --
> Antonin
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.p4.org/pipermail/p4-dev_lists.p4.org/attachments/20160923/97c0383b/attachment-0002.html>


More information about the P4-dev mailing list