-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Bf4 expansion phase error
I was able to compile bf4 on an Ubuntu 20.04, linux-headers-5.4.0-90-generic from apt, apt packages most up to date, z3 4.8.7 from apt, ninja 2.2.0 from repository, json 3.7.3 from repository, libboost-graph-dev from 1.71.0 from apt, BMV2 compiled from repository, protobuf 3.2.0 compiled from source, eBPF bpfcc 0.12.0 from apt.
But when I try to run bf4:
cd build/
make cptemplate
python3 ../sigcomm-2020/cleanup_v1.py ../sigcomm-2020/running_example/runinng.p4
I got this:
cleaned up running.p4 -> ./running-clean.p4. Validating...
done instrumentation in 162ms
Traceback (most recent call last):
File "../sigcomm-2020/cleanup_v1.py", line 100, in
subprocess.check_call([args.bf4_exec, '--expand-to', outexpd, outinstr],
File "/home/user/anaconda3/lib/python3.8/subprocess.py", line 364, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['p4c-analysis', '--expand-to', './running-instrumented-expanded.p4', './running-instrumented.p4']' returned non-zero exit status 255.
So I called the executable directly to see the output:
(base) user@machine:~/code/bf4/build$ p4c-analysis --expand-to ./running-instrumented-expanded.p4 ./running-instrumented.p4
/usr/local/share/p4c/p4include/v1model.p4(31): [--Wwarn=unknown] warning: Unknown annotation: metadata
@metadata @name("standard_metadata")
^^^^^^^^
/usr/local/share/p4c/p4include/v1model.p4(59): [--Wwarn=unknown] warning: Unknown annotation: alias
@alias("queueing_metadata.enq_timestamp")
^^^^^
/usr/local/share/p4c/p4include/v1model.p4(442): [--Wwarn=unknown] warning: Unknown annotation: pipeline
@pipeline
^^^^^^^^
/usr/local/share/p4c/p4include/v1model.p4(460): [--Wwarn=unknown] warning: Unknown annotation: deparser
@deparser
^^^^^^^^
./running-instrumented.p4(206): [--Wwarn=unknown] warning: Unknown annotation: instrument_keys
@name(".nat") @instrument_keys() table nat {
^^^^^^^^^^^^^^^
./running-instrumented.p4(231): [--Wwarn=shadow] warning: ingress.do_drop shadows do_drop
@name("ingress.do_drop") action do_drop() {
^^^^^^^
./running-instrumented.p4(9)
extern void do_drop();
^^^^^^^
terminate called after throwing an instance of 'Util::CompilerBug'
what(): In file: /home/user/code/bf4/lib/crash.cpp:229
Compiler Bug: Exiting with SIGSEGV
Any comments appreciated.