Merge branch 'master' of gitlab.ethz.ch:nicosc/master-thesis

This commit is contained in:
Nico Schottelius 2019-07-24 13:16:14 +02:00
commit 5552267824
27 changed files with 22302 additions and 62 deletions

2
.gitignore vendored
View File

@ -1 +1,3 @@
support/
*.pyc
*.log

View File

@ -3328,6 +3328,12 @@ https://en.wikipedia.org/wiki/IPv4_header_checksum
CLOSED: [2019-07-21 Sun 14:01]
| eth2 <--> nf0 |
| eth1 <--> nf3 |
** Compile log
| 5.1. - 5.5 | failure due to variable renaming |
| 5.6 | subparser: compiled! |
| 5.7 | subcontrol: [nsg] |
| 5.8 | nat64 actions/table: -- |
| 5.9 | nat64+headers [esprimo]: |
** TODO Benchmark/comparison
*** TODO Setup / Benchmark Jool
*** TODO Setup / Benchmark tayga
@ -6099,8 +6105,10 @@ nico@nsg-System:~/master-thesis/netpfga/minip4/simple_sume_switch/test/sim_switc
#+END_CENTER
*** DONE 2019-07-23: check: switch_calc compiles
CLOSED: [2019-07-23 Tue 08:59]
*** TODO Reset project to plain send-to-port1 code, no includes
*** TODO 2019-07-23: merge/migrate code into switch calc until it breaks
*** DONE Reset project to plain send-to-port1 code, no includes
CLOSED: [2019-07-24 Wed 12:21]
*** DONE 2019-07-23: merge/migrate code into switch calc until it breaks
CLOSED: [2019-07-24 Wed 12:21]
*** TODO 2019-07-23: install xilinx & co. to eth2.nico.ungleich.cloud -> 2nd compiler [MANUAL]
**** DONE Install SDNET via xsetup
CLOSED: [2019-07-23 Tue 11:03]
@ -6212,7 +6220,8 @@ sudo apt-get install -y libc6-dev-i386
sudo apt install -y libc6-dev
#+END_CENTER
*** 2019-07-23: compiling on ISG computer
*** DONE 2019-07-23: compiling on ISG computer
CLOSED: [2019-07-24 Wed 12:19]
**** DONE try1: "souce" files: / missing sumereg
CLOSED: [2019-07-23 Tue 12:14]
@ -6294,7 +6303,8 @@ Die Jul 23 13:34:54 CEST 2019
make: *** No targets specified and no makefile found. Stop.
#+END_CENTER
*** the config writes madness
*** DONE the config writes madness
CLOSED: [2019-07-24 Wed 11:44]
- step9 (sume simulation, the longest step) in the process calls
"config_writes.py"
- config_writes.py fails with a syntax error, as it is incomplete
@ -6343,7 +6353,7 @@ endtask
#+END_CENTER
*** DONE the netpfga madness: Renaming variables breaks the compilation.
*** DONE the netpfga madness: Renaming variables breaks the compilation. !!!!!!
CLOSED: [2019-07-24 Wed 09:33]
#+BEGIN_CENTER
@Xilinx_MaxPacketRegion(1024)
@ -6365,7 +6375,8 @@ endtask
}
#+END_CENTER
*** state names are fixed
*** DONE state names are fixed: needs to be "start"
CLOSED: [2019-07-24 Wed 11:44]
#+BEGIN_CENTER
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
p4c-sdnet -o minip4.sdnet --sdnet_info .sdnet_switch_info.dat minip4_solution.p4
@ -6387,7 +6398,6 @@ make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume
Makefile:31: recipe for target 'frontend' failed
#+END_CENTER
*** TODO Further notes P4/master thesis
- Cannot easily run P4 on notebook - changes to the system very
invasive
@ -6427,6 +6437,10 @@ release, use 'get_user_parameters' instead
messages that actually constitute ERROR messages, but are not
flagged as such nor do they cause the build process to abort.
*** 2019-07-24: setup VM in DCL as third compiler [INSTALL MANUAL]
**** TODO install mate for getting xlibraries
**** Install sdnet
** The NetPFGA saga
Problems encountered:
- The logfile for a compile run is 10k+ lines

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,29 @@
+ date
Mit Jul 24 09:51:08 CEST 2019
+ cd /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4
+ make
make -C src/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
rm -f *.sdnet *.tbl .sdnet_switch_info.dat
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
make -C testdata/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -f *.pcap *.txt *.pyc *.axi config_writes.* *_reg_defines.py
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -rf nf_sume_sdnet_ip/
rm -f
rm -f sw/config_tables.c
make -C src/
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
p4c-sdnet -o minip4.sdnet --sdnet_info .sdnet_switch_info.dat minip4_solution.p4
minip4_solution.p4(37): warning: start: implicit transition to `reject'
state start {
^^^^^
minip4_solution.p4(39): error: Could not find declaration for user_metadata
user_metadata.unused = 0;
^^^^^^^^^^^^^
Makefile:34: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
Makefile:31: recipe for target 'frontend' failed
make: *** [frontend] Error 2

View File

@ -0,0 +1,32 @@
+ date
Mit Jul 24 09:51:42 CEST 2019
+ cd /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4
+ make
make -C src/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
rm -f *.sdnet *.tbl .sdnet_switch_info.dat
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
make -C testdata/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -f *.pcap *.txt *.pyc *.axi config_writes.* *_reg_defines.py
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -rf nf_sume_sdnet_ip/
rm -f
rm -f sw/config_tables.c
make -C src/
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
p4c-sdnet -o minip4.sdnet --sdnet_info .sdnet_switch_info.dat minip4_solution.p4
minip4_solution.p4(37): warning: start: implicit transition to `reject'
state start {
^^^^^
/opt/Xilinx/SDNet/2018.2/data/p4include/sume_switch.p4(40): error: Structure struct sume_metadata_t does not have a field unused
struct sume_metadata_t {
^^^^^^^^^^^^^^^
minip4_solution.p4(39)
standard_metadata.unused = 0;
^^^^^^
Makefile:34: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
Makefile:31: recipe for target 'frontend' failed
make: *** [frontend] Error 2

View File

@ -0,0 +1,35 @@
+ date
Mit Jul 24 09:52:11 CEST 2019
+ cd /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4
+ make
make -C src/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
rm -f *.sdnet *.tbl .sdnet_switch_info.dat
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
make -C testdata/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -f *.pcap *.txt *.pyc *.axi config_writes.* *_reg_defines.py
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -rf nf_sume_sdnet_ip/
rm -f
rm -f sw/config_tables.c
make -C src/
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
p4c-sdnet -o minip4.sdnet --sdnet_info .sdnet_switch_info.dat minip4_solution.p4
minip4_solution.p4(37): warning: start: implicit transition to `reject'
state start {
^^^^^
minip4_solution.p4(52): warning: realparser: unused instance
RealParser() realparser;
^^^^^^^^^^
minip4_solution.p4(45): error: parser TopParser: parser does not have a `start' state
parser TopParser(
^^^^^^^^^
minip4_solution.p4(45): warning: accept state in parser TopParser is unreachable
parser TopParser(
^^^^^^^^^
Makefile:34: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
Makefile:31: recipe for target 'frontend' failed
make: *** [frontend] Error 2

View File

@ -0,0 +1,74 @@
+ date
Mit Jul 24 09:53:26 CEST 2019
+ cd /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4
+ make
make -C src/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
rm -f *.sdnet *.tbl .sdnet_switch_info.dat
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
make -C testdata/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -f *.pcap *.txt *.pyc *.axi config_writes.* *_reg_defines.py
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -rf nf_sume_sdnet_ip/
rm -f
rm -f sw/config_tables.c
make -C src/
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
p4c-sdnet -o minip4.sdnet --sdnet_info .sdnet_switch_info.dat minip4_solution.p4
minip4_solution.p4(37): warning: start: implicit transition to `reject'
state start {
^^^^^
minip4_solution.p4(30): warning: accept state in parser RealParser is unreachable
parser RealParser(
^^^^^^^^^^
minip4_solution.p4(45): warning: accept state in parser TopParser is unreachable
parser TopParser(
^^^^^^^^^
/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/bin/p4_px_tables.py commands.txt .sdnet_switch_info.dat
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
make -C testdata/
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
./gen_testdata.py
Applying pkt on nf0 at 1:
Applying pkt on nf1 at 2:
Applying pkt on nf2 at 3:
Applying pkt on nf3 at 4:
nf0_applied times: [1]
nf1_applied times: [2]
nf2_applied times: [3]
nf3_applied times: [4]
/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/bin/pcap2axi --output Packet_in.axi --bus_width 256 src.pcap
/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/bin/pcap2axi --output Packet_expect.axi --bus_width 256 dst.pcap
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
sdnet ./src/minip4.sdnet -skipEval -busType axi -busWidth 256 -singlecontrolport -workDir nf_sume_sdnet_ip -altVivadoScripts
Xilinx SDNet Compiler version 2018.2, build 2342300
Compilation successful
/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/bin/gen_P4_SWITCH_externs.py src/.sdnet_switch_info.dat nf_sume_sdnet_ip/SimpleSumeSwitch/ /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/templates/ ./testdata/ ./sw/ --base_address 0x44020000
/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/bin/gen_P4_SWITCH_API.py src/.sdnet_switch_info.dat nf_sume_sdnet_ip/SimpleSumeSwitch/ sw/ /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/templates/ --base_address 0x44020000
/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/bin/gen_P4_SWITCH_CLI.py src/.sdnet_switch_info.dat nf_sume_sdnet_ip/SimpleSumeSwitch/ sw/ /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/templates/ --base_address 0x44020000
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/sw/CLI'
cc -c -fPIC /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/sw/API/CAM.c -I/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/sw/API
cc -std=c99 -Wall -Werror -fPIC -c libcam.c -I/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/sw/sume -I/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/sw/API
cc -L/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/sw/sume -shared -o libcam.so libcam.o CAM.o -lsumereg
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/sw/CLI'
# The following command only applies if running P4_SWITCH Questa Simulation with Ubuntu
sed -i 's/vsim/vsim \-ldflags \"\-B\/usr\/lib\/x86\_64\-linux-gnu\"/g' nf_sume_sdnet_ip/SimpleSumeSwitch/questa.bash
# modify the P4_SWITCH_tb so that it writes the table configuration writes to a file
/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/bin/modify_P4_SWITCH_tb.py nf_sume_sdnet_ip/SimpleSumeSwitch/Testbench/SimpleSumeSwitch_tb.sv
# Fix introduced for SDNet 2017.4
sed -i 's/xsim\.dir\/xsc\/dpi\.so/dpi\.so/g' nf_sume_sdnet_ip/SimpleSumeSwitch/vivado_sim.bash
sed -i 's/xsim\.dir\/xsc\/dpi\.so/dpi\.so/g' nf_sume_sdnet_ip/SimpleSumeSwitch/vivado_sim_waveform.bash
# Fix introduced for SDNet 2018.2
sed -i 's/glbl_sim/glbl/g' nf_sume_sdnet_ip/SimpleSumeSwitch/vivado_sim_waveform.bash
sed -i 's/SimpleSumeSwitch_tb_sim#work.glbl/SimpleSumeSwitch_tb/g' nf_sume_sdnet_ip/SimpleSumeSwitch/vivado_sim_waveform.bash
cp src/*.tbl nf_sume_sdnet_ip/SimpleSumeSwitch/
cp testdata/*.txt nf_sume_sdnet_ip/SimpleSumeSwitch/
cp testdata/*.axi nf_sume_sdnet_ip/SimpleSumeSwitch/
+ date
Mit Jul 24 09:53:30 CEST 2019
+ cd /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/nf_sume_sdnet_ip/SimpleSumeSwitch
+ ./vivado_sim.bash
+ find -name '*.v' -o -name '*.vp' -o -name '*.sv'
+ xargs -I % /opt/Xilinx/Vivado/2018.2/bin/xvlog -sv %

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,56 @@
+ date
Mit Jul 24 11:52:56 CEST 2019
+ cd /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4
+ make
make -C src/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
rm -f *.sdnet *.tbl .sdnet_switch_info.dat
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
make -C testdata/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -f *.pcap *.txt *.pyc *.axi config_writes.* *_reg_defines.py
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -rf nf_sume_sdnet_ip/
rm -f
rm -f sw/config_tables.c
make -C src/
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
p4c-sdnet -o minip4.sdnet --sdnet_info .sdnet_switch_info.dat minip4_solution.p4
actions_egress.p4(27): error: Could not find declaration for controller_debug
controller_debug;
^^^^^^^^^^^^^^^^
actions_egress.p4(28): error: Could not find declaration for controller_reply
controller_reply;
^^^^^^^^^^^^^^^^
actions_egress.p4(29): error: Could not find declaration for controller_debug_table_id
controller_debug_table_id;
^^^^^^^^^^^^^^^^^^^^^^^^^
actions_egress.p4(32): error: Could not find declaration for ROUTING_TABLE_SIZE
size = ROUTING_TABLE_SIZE;
^^^^^^^^^^^^^^^^^^
actions_egress.p4(34): error: Could not find declaration for controller_debug_table_id
default_action = controller_debug_table_id(TABLE_V6_NETWORKS);
^^^^^^^^^^^^^^^^^^^^^^^^^
actions_egress.p4(44): error: Could not find declaration for controller_debug
controller_debug;
^^^^^^^^^^^^^^^^
actions_egress.p4(45): error: Could not find declaration for controller_debug_table_id
controller_debug_table_id;
^^^^^^^^^^^^^^^^^^^^^^^^^
actions_egress.p4(48): error: Could not find declaration for ROUTING_TABLE_SIZE
size = ROUTING_TABLE_SIZE;
^^^^^^^^^^^^^^^^^^
actions_egress.p4(49): error: Could not find declaration for controller_debug_table_id
default_action = controller_debug_table_id(TABLE_V4_NETWORKS);
^^^^^^^^^^^^^^^^^^^^^^^^^
actions_nat64_generic.p4(169): error: Could not find declaration for NAT64_TABLE_SIZE
size = NAT64_TABLE_SIZE;
^^^^^^^^^^^^^^^^
actions_nat64_generic.p4(184): error: Could not find declaration for NAT64_TABLE_SIZE
size = NAT64_TABLE_SIZE;
^^^^^^^^^^^^^^^^
Makefile:34: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
Makefile:31: recipe for target 'frontend' failed
make: *** [frontend] Error 2

View File

@ -0,0 +1,48 @@
+ date
Mit Jul 24 11:56:44 CEST 2019
+ cd /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4
+ make
make -C src/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
rm -f *.sdnet *.tbl .sdnet_switch_info.dat
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
make -C testdata/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -f *.pcap *.txt *.pyc *.axi config_writes.* *_reg_defines.py
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -rf nf_sume_sdnet_ip/
rm -f
rm -f sw/config_tables.c
make -C src/
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
p4c-sdnet -o minip4.sdnet --sdnet_info .sdnet_switch_info.dat minip4_solution.p4
In file included from actions_egress.p4:30:0,
from actions_nat64_generic.p4:4,
from minip4_solution.p4:71:
actions_egress.p4:84:2: error: #endif without #if
#endif
^
In file included from actions_nat64_generic.p4:4:0,
from minip4_solution.p4:71:
actions_egress.p4:84:2: error: #endif without #if
#endif
^
actions_egress.p4(53): error: v6_networks: Duplicates declaration v6_networks
table v6_networks {
^^^^^^^^^^^
actions_egress.p4(53)
table v6_networks {
^^^^^^^^^^^
actions_egress.p4(70): error: v4_networks: Duplicates declaration v4_networks
table v4_networks {
^^^^^^^^^^^
actions_egress.p4(70)
table v4_networks {
^^^^^^^^^^^
error: Preprocessor returned exit code 256; aborting compilation
error: 3 errors encountered, aborting compilation
Makefile:34: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
Makefile:31: recipe for target 'frontend' failed
make: *** [frontend] Error 2

View File

@ -0,0 +1,35 @@
+ date
Mit Jul 24 11:57:31 CEST 2019
+ cd /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4
+ make
make -C src/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
rm -f *.sdnet *.tbl .sdnet_switch_info.dat
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
make -C testdata/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -f *.pcap *.txt *.pyc *.axi config_writes.* *_reg_defines.py
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -rf nf_sume_sdnet_ip/
rm -f
rm -f sw/config_tables.c
make -C src/
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
p4c-sdnet -o minip4.sdnet --sdnet_info .sdnet_switch_info.dat minip4_solution.p4
actions_egress.p4(62): error: Could not find declaration for ROUTING_TABLE_SIZE
size = ROUTING_TABLE_SIZE;
^^^^^^^^^^^^^^^^^^
actions_egress.p4(78): error: Could not find declaration for ROUTING_TABLE_SIZE
size = ROUTING_TABLE_SIZE;
^^^^^^^^^^^^^^^^^^
actions_nat64_generic.p4(169): error: Could not find declaration for NAT64_TABLE_SIZE
size = NAT64_TABLE_SIZE;
^^^^^^^^^^^^^^^^
actions_nat64_generic.p4(184): error: Could not find declaration for NAT64_TABLE_SIZE
size = NAT64_TABLE_SIZE;
^^^^^^^^^^^^^^^^
Makefile:34: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
Makefile:31: recipe for target 'frontend' failed
make: *** [frontend] Error 2

View File

@ -0,0 +1,719 @@
+ date
Mit Jul 24 11:58:11 CEST 2019
+ cd /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4
+ make
make -C src/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
rm -f *.sdnet *.tbl .sdnet_switch_info.dat
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
make -C testdata/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -f *.pcap *.txt *.pyc *.axi config_writes.* *_reg_defines.py
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -rf nf_sume_sdnet_ip/
rm -f
rm -f sw/config_tables.c
make -C src/
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
p4c-sdnet -o minip4.sdnet --sdnet_info .sdnet_switch_info.dat minip4_solution.p4
minip4_solution.p4(6): error: Structure header Ethernet_h does not have a field dst_addr
header Ethernet_h {
^^^^^^^^^^
actions_egress.p4(17)
hdr.ethernet.dst_addr = mac_addr;
^^^^^^^^
minip4_solution.p4(18): error: Structure struct user_metadata_t does not have a field task
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_egress.p4(33)
meta.task = task;
^^^^
minip4_solution.p4(18): error: Structure struct user_metadata_t does not have a field ingress_port
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_egress.p4(34)
meta.ingress_port = sume_metadata.src_port;
^^^^^^^^^^^^
minip4_solution.p4(18): error: Structure struct user_metadata_t does not have a field table_id
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_egress.p4(40)
meta.table_id = table_id;
^^^^^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_egress.p4(54)
hdr.ipv6.dst_addr: lpm;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_egress.p4(71)
hdr.ipv4.dst_addr: lpm;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(9)
tmp = tmp + (bit<16>) hdr.ipv4.src_addr[15:0]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(10)
tmp = tmp + (bit<16>) hdr.ipv4.src_addr[31:16]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(11)
tmp = tmp + (bit<16>) hdr.ipv4.dst_addr[15:0]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(12)
tmp = tmp + (bit<16>) hdr.ipv4.dst_addr[31:16]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(14)
tmp = tmp + (bit<16>) hdr.ipv4.totalLen -20; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(15)
tmp = tmp + (bit<16>) hdr.ipv4.protocol; // 8 bit
^^^^
minip4_solution.p4(18): error: Structure struct user_metadata_t does not have a field v4sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(17)
meta.v4sum = ~tmp;
^^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(23)
tmp = tmp + (bit<16>) hdr.ipv6.src_addr[15:0]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(24)
tmp = tmp + (bit<16>) hdr.ipv6.src_addr[31:16]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(25)
tmp = tmp + (bit<16>) hdr.ipv6.src_addr[47:32]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(26)
tmp = tmp + (bit<16>) hdr.ipv6.src_addr[63:48]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(27)
tmp = tmp + (bit<16>) hdr.ipv6.src_addr[79:64]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(28)
tmp = tmp + (bit<16>) hdr.ipv6.src_addr[95:80]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(29)
tmp = tmp + (bit<16>) hdr.ipv6.src_addr[111:96]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(30)
tmp = tmp + (bit<16>) hdr.ipv6.src_addr[127:112]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(32)
tmp = tmp + (bit<16>) hdr.ipv6.dst_addr[15:0]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(33)
tmp = tmp + (bit<16>) hdr.ipv6.dst_addr[31:16]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(34)
tmp = tmp + (bit<16>) hdr.ipv6.dst_addr[47:32]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(35)
tmp = tmp + (bit<16>) hdr.ipv6.dst_addr[63:48]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(36)
tmp = tmp + (bit<16>) hdr.ipv6.dst_addr[79:64]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(37)
tmp = tmp + (bit<16>) hdr.ipv6.dst_addr[95:80]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(38)
tmp = tmp + (bit<16>) hdr.ipv6.dst_addr[111:96]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(39)
tmp = tmp + (bit<16>) hdr.ipv6.dst_addr[127:112]; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(41)
tmp = tmp + (bit<16>) hdr.ipv6.payload_length; // 16 bit
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(42)
tmp = tmp + (bit<16>) hdr.ipv6.next_header; // 8 bit
^^^^
minip4_solution.p4(18): error: Structure struct user_metadata_t does not have a field v6sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(44)
meta.v6sum = ~tmp;
^^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field udp
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(57)
bit<17> tmp = (bit<17>) hdr.udp.checksum + (bit<17>) meta.v6sum;
^^^
minip4_solution.p4(18): error: Structure struct user_metadata_t does not have a field v6sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(57)
bit<17> tmp = (bit<17>) hdr.udp.checksum + (bit<17>) meta.v6sum;
^^^^^
minip4_solution.p4(18): error: Structure struct user_metadata_t does not have a field v4sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(62)
tmp = tmp + (bit<17>) (0xffff - meta.v4sum);
^^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field udp
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(68)
hdr.udp.checksum = (bit<16>) tmp;
^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field udp
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(75)
bit<17> tmp = (bit<17>) hdr.udp.checksum + (bit<17>) meta.v4sum;
^^^
minip4_solution.p4(18): error: Structure struct user_metadata_t does not have a field v4sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(75)
bit<17> tmp = (bit<17>) hdr.udp.checksum + (bit<17>) meta.v4sum;
^^^^^
minip4_solution.p4(18): error: Structure struct user_metadata_t does not have a field v6sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(80)
tmp = tmp + (bit<17>) (0xffff - meta.v6sum);
^^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field udp
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(86)
hdr.udp.checksum = (bit<16>) tmp;
^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field tcp
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(93)
bit<17> tmp = (bit<17>) hdr.tcp.checksum + (bit<17>) meta.v6sum;
^^^
minip4_solution.p4(18): error: Structure struct user_metadata_t does not have a field v6sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(93)
bit<17> tmp = (bit<17>) hdr.tcp.checksum + (bit<17>) meta.v6sum;
^^^^^
minip4_solution.p4(18): error: Structure struct user_metadata_t does not have a field v4sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(98)
tmp = tmp + (bit<17>) (0xffff - meta.v4sum);
^^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field tcp
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(104)
hdr.tcp.checksum = (bit<16>) tmp;
^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field tcp
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(111)
bit<17> tmp = (bit<17>) hdr.tcp.checksum + (bit<17>) meta.v4sum;
^^^
minip4_solution.p4(18): error: Structure struct user_metadata_t does not have a field v4sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(111)
bit<17> tmp = (bit<17>) hdr.tcp.checksum + (bit<17>) meta.v4sum;
^^^^^
minip4_solution.p4(18): error: Structure struct user_metadata_t does not have a field v6sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(116)
tmp = tmp + (bit<17>) (0xffff - meta.v6sum);
^^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field tcp
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(122)
hdr.tcp.checksum = (bit<16>) tmp;
^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(135)
shift_tmp = ( ((bit<16>) hdr.ipv4.version) << 12) +
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(136)
( ((bit<16>) hdr.ipv4.ihl) << 8) +
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(137)
( ((bit<16>) hdr.ipv4.diff_serv) << 2) +
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(138)
( (bit<16>) hdr.ipv4.ecn);
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(147)
tmp = tmp + (bit<16>) hdr.ipv4.totalLen; /* 16 bit */
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(149)
tmp = tmp + (bit<16>) hdr.ipv4.identification; /* 16 bit */
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(151)
shift_tmp = ((bit<16>) (hdr.ipv4.flags) << 13) +
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(152)
((bit<16>) hdr.ipv4.fragOffset);
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(158)
shift_tmp = ((bit<16>) (hdr.ipv4.ttl) << 8) +
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(159)
((bit<16>) hdr.ipv4.protocol);
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(165)
tmp = tmp + (bit<16>) hdr.ipv4.src_addr[15:0]; /* 16 bit */
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(166)
tmp = tmp + (bit<16>) hdr.ipv4.src_addr[31:16]; /* 16 bit */
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(167)
tmp = tmp + (bit<16>) hdr.ipv4.dst_addr[15:0]; /* 16 bit */
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(168)
tmp = tmp + (bit<16>) hdr.ipv4.dst_addr[31:16]; /* 16 bit */
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_delta_checksum.p4(170)
hdr.ipv4.checksum = ~tmp;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field icmp
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(12)
hdr.icmp.setValid();
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(13)
hdr.ipv4.protocol = PROTO_ICMP; // overwrite generic same protocol assumption
^^^^
minip4_solution.p4(18): error: Structure struct user_metadata_t does not have a field switch_task
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_nat64_generic.p4(16)
meta.switch_task = TASK_CHECKSUM_ICMP;
^^^^^^^^^^^
minip4_solution.p4(18): error: Structure struct user_metadata_t does not have a field chk_icmp
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_nat64_generic.p4(19)
meta.chk_icmp = 1;
^^^^^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field icmp6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(21)
hdr.icmp6.setInvalid();
^^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field icmp6_na_ns
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(24)
hdr.icmp6_na_ns.setInvalid();
^^^^^^^^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field icmp6_option_link_layer_addr
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(25)
hdr.icmp6_option_link_layer_addr.setInvalid();
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(30)
hdr.ipv4.setValid();
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(34)
hdr.ipv4.version = (bit<4>)4;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(35)
hdr.ipv4.ihl = (bit<4>)5; // internet header length: 4*5 = 20
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(39)
hdr.ipv4.diff_serv = (bit<6>)0; // no ToS
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(40)
hdr.ipv4.ecn = (bit<2>)0; // unsupported
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(41)
hdr.ipv4.totalLen = (bit<16>) hdr.ipv6.payload_length + 20; // ok under above constraints
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(41)
hdr.ipv4.totalLen = (bit<16>) hdr.ipv6.payload_length + 20; // ok under above constraints
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(42)
hdr.ipv4.identification = (bit<16>) 0; // no support for fragments
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(43)
hdr.ipv4.flags = (bit<3>) 0; // DF bit and more fragments
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(44)
hdr.ipv4.fragOffset = (bit<13>) 0; // 0 as there are no fragments
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(45)
hdr.ipv4.ttl = hdr.ipv6.hop_limit;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(45)
hdr.ipv4.ttl = hdr.ipv6.hop_limit;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(46)
hdr.ipv4.protocol = hdr.ipv6.next_header;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(46)
hdr.ipv4.protocol = hdr.ipv6.next_header;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(47)
hdr.ipv4.src_addr = src;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(48)
hdr.ipv4.dst_addr = dst;
^^^^
minip4_solution.p4(6): error: Structure header Ethernet_h does not have a field ethertype
header Ethernet_h {
^^^^^^^^^^
actions_nat64_generic.p4(51)
hdr.ethernet.ethertype = TYPE_IPV4;
^^^^^^^^^
minip4_solution.p4(18): error: Structure struct user_metadata_t does not have a field chk_ipv4
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_nat64_generic.p4(56)
meta.chk_ipv4 = 1; /* need to calculate the hdrchecksum */
^^^^^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(59)
hdr.ipv6.setInvalid();
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(64)
ipv6_addr_t src_offset = hdr.ipv6.src_addr - v6_src;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(67)
ipv4_addr_t dst = (ipv4_addr_t) (hdr.ipv6.dst_addr - nat64_prefix);
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field icmp6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(122)
hdr.icmp6.setValid();
^^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(123)
hdr.ipv6.next_header = PROTO_ICMP6;
^^^^
minip4_solution.p4(18): error: Structure struct user_metadata_t does not have a field chk_icmp6
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_nat64_generic.p4(125)
meta.chk_icmp6 = 1;
^^^^^^^^^
minip4_solution.p4(18): error: Structure struct user_metadata_t does not have a field cast_length
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_nat64_generic.p4(126)
meta.cast_length = (bit<32>) hdr.ipv6.payload_length;
^^^^^^^^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(126)
meta.cast_length = (bit<32>) hdr.ipv6.payload_length;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field icmp
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(128)
hdr.icmp.setInvalid();
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(133)
hdr.ipv6.setValid();
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(134)
hdr.ipv4.setInvalid();
^^^^
minip4_solution.p4(6): error: Structure header Ethernet_h does not have a field ethertype
header Ethernet_h {
^^^^^^^^^^
actions_nat64_generic.p4(136)
hdr.ethernet.ethertype = TYPE_IPV6;
^^^^^^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(138)
hdr.ipv6.dst_addr = dst;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(139)
hdr.ipv6.src_addr = src;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(140)
hdr.ipv6.version = (bit<4>) 6;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(141)
hdr.ipv6.traffic_class = (bit<8>) hdr.ipv4.diff_serv;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(141)
hdr.ipv6.traffic_class = (bit<8>) hdr.ipv4.diff_serv;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(142)
hdr.ipv6.flow_label = (bit<20>) 0;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(143)
hdr.ipv6.payload_length = (bit<16>) hdr.ipv4.totalLen - 20;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(143)
hdr.ipv6.payload_length = (bit<16>) hdr.ipv4.totalLen - 20;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(144)
hdr.ipv6.next_header = hdr.ipv4.protocol;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(144)
hdr.ipv6.next_header = hdr.ipv4.protocol;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(145)
hdr.ipv6.hop_limit = hdr.ipv4.ttl;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(145)
hdr.ipv6.hop_limit = hdr.ipv4.ttl;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(151)
ipv6_addr_t src = nat64_prefix + (ipv6_addr_t) hdr.ipv4.src_addr;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(153)
ipv4_addr_t dst_offset = hdr.ipv4.dst_addr - v4_dst;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv6
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(161)
hdr.ipv6.dst_addr: lpm;
^^^^
minip4_solution.p4(12): error: Structure struct Parsed_packet does not have a field ipv4
struct Parsed_packet {
^^^^^^^^^^^^^
actions_nat64_generic.p4(176)
hdr.ipv4.dst_addr: lpm;
^^^^
Makefile:34: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
Makefile:31: recipe for target 'frontend' failed
make: *** [frontend] Error 2

View File

@ -0,0 +1,33 @@
+ date
Mit Jul 24 12:02:07 CEST 2019
+ cd /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4
+ make
make -C src/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
rm -f *.sdnet *.tbl .sdnet_switch_info.dat
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
make -C testdata/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -f *.pcap *.txt *.pyc *.axi config_writes.* *_reg_defines.py
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -rf nf_sume_sdnet_ip/
rm -f
rm -f sw/config_tables.c
make -C src/
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
p4c-sdnet -o minip4.sdnet --sdnet_info .sdnet_switch_info.dat minip4_solution.p4
minip4_solution.p4(12): error: Duplicate declaration of headers; previous at
typedef struct headers
^^^^^^^
headers.p4(201)
struct headers {
^^^^^^^
minip4_solution.p4(12):syntax error, unexpected IDENTIFIER, expecting {
typedef struct headers Parsed_packet
^^^^^^^^^^^^^
error: 2 errors encountered, aborting compilation
Makefile:34: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
Makefile:31: recipe for target 'frontend' failed
make: *** [frontend] Error 2

View File

@ -0,0 +1,27 @@
+ date
Mit Jul 24 12:03:11 CEST 2019
+ cd /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4
+ make
make -C src/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
rm -f *.sdnet *.tbl .sdnet_switch_info.dat
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
make -C testdata/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -f *.pcap *.txt *.pyc *.axi config_writes.* *_reg_defines.py
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -rf nf_sume_sdnet_ip/
rm -f
rm -f sw/config_tables.c
make -C src/
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
p4c-sdnet -o minip4.sdnet --sdnet_info .sdnet_switch_info.dat minip4_solution.p4
minip4_solution.p4(36):syntax error, unexpected STRUCT
out struct
^^^^^^
error: 1 errors encountered, aborting compilation
Makefile:34: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
Makefile:31: recipe for target 'frontend' failed
make: *** [frontend] Error 2

View File

@ -0,0 +1,27 @@
+ date
Mit Jul 24 12:05:30 CEST 2019
+ cd /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4
+ make
make -C src/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
rm -f *.sdnet *.tbl .sdnet_switch_info.dat
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
make -C testdata/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -f *.pcap *.txt *.pyc *.axi config_writes.* *_reg_defines.py
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -rf nf_sume_sdnet_ip/
rm -f
rm -f sw/config_tables.c
make -C src/
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
p4c-sdnet -o minip4.sdnet --sdnet_info .sdnet_switch_info.dat minip4_solution.p4
minip4_solution.p4(78):syntax error, unexpected IDENTIFIER "temp"
EthAddr_t temp
^^^^
error: 1 errors encountered, aborting compilation
Makefile:34: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
Makefile:31: recipe for target 'frontend' failed
make: *** [frontend] Error 2

View File

@ -0,0 +1,131 @@
+ date
Mit Jul 24 12:07:13 CEST 2019
+ cd /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4
+ make
make -C src/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
rm -f *.sdnet *.tbl .sdnet_switch_info.dat
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
make -C testdata/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -f *.pcap *.txt *.pyc *.axi config_writes.* *_reg_defines.py
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -rf nf_sume_sdnet_ip/
rm -f
rm -f sw/config_tables.c
make -C src/
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
p4c-sdnet -o minip4.sdnet --sdnet_info .sdnet_switch_info.dat minip4_solution.p4
minip4_solution.p4(22): error: Structure struct user_metadata_t does not have a field task
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_egress.p4(33)
meta.task = task;
^^^^
minip4_solution.p4(22): error: Structure struct user_metadata_t does not have a field ingress_port
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_egress.p4(34)
meta.ingress_port = sume_metadata.src_port;
^^^^^^^^^^^^
minip4_solution.p4(22): error: Structure struct user_metadata_t does not have a field table_id
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_egress.p4(40)
meta.table_id = table_id;
^^^^^^^^
minip4_solution.p4(22): error: Structure struct user_metadata_t does not have a field v4sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(17)
meta.v4sum = ~tmp;
^^^^^
minip4_solution.p4(22): error: Structure struct user_metadata_t does not have a field v6sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(44)
meta.v6sum = ~tmp;
^^^^^
minip4_solution.p4(22): error: Structure struct user_metadata_t does not have a field v6sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(57)
bit<17> tmp = (bit<17>) hdr.udp.checksum + (bit<17>) meta.v6sum;
^^^^^
minip4_solution.p4(22): error: Structure struct user_metadata_t does not have a field v4sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(62)
tmp = tmp + (bit<17>) (0xffff - meta.v4sum);
^^^^^
minip4_solution.p4(22): error: Structure struct user_metadata_t does not have a field v4sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(75)
bit<17> tmp = (bit<17>) hdr.udp.checksum + (bit<17>) meta.v4sum;
^^^^^
minip4_solution.p4(22): error: Structure struct user_metadata_t does not have a field v6sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(80)
tmp = tmp + (bit<17>) (0xffff - meta.v6sum);
^^^^^
minip4_solution.p4(22): error: Structure struct user_metadata_t does not have a field v6sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(93)
bit<17> tmp = (bit<17>) hdr.tcp.checksum + (bit<17>) meta.v6sum;
^^^^^
minip4_solution.p4(22): error: Structure struct user_metadata_t does not have a field v4sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(98)
tmp = tmp + (bit<17>) (0xffff - meta.v4sum);
^^^^^
minip4_solution.p4(22): error: Structure struct user_metadata_t does not have a field v4sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(111)
bit<17> tmp = (bit<17>) hdr.tcp.checksum + (bit<17>) meta.v4sum;
^^^^^
minip4_solution.p4(22): error: Structure struct user_metadata_t does not have a field v6sum
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_delta_checksum.p4(116)
tmp = tmp + (bit<17>) (0xffff - meta.v6sum);
^^^^^
minip4_solution.p4(22): error: Structure struct user_metadata_t does not have a field switch_task
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_nat64_generic.p4(16)
meta.switch_task = TASK_CHECKSUM_ICMP;
^^^^^^^^^^^
minip4_solution.p4(22): error: Structure struct user_metadata_t does not have a field chk_icmp
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_nat64_generic.p4(19)
meta.chk_icmp = 1;
^^^^^^^^
minip4_solution.p4(22): error: Structure struct user_metadata_t does not have a field chk_ipv4
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_nat64_generic.p4(56)
meta.chk_ipv4 = 1; /* need to calculate the hdrchecksum */
^^^^^^^^
minip4_solution.p4(22): error: Structure struct user_metadata_t does not have a field chk_icmp6
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_nat64_generic.p4(125)
meta.chk_icmp6 = 1;
^^^^^^^^^
minip4_solution.p4(22): error: Structure struct user_metadata_t does not have a field cast_length
struct user_metadata_t {
^^^^^^^^^^^^^^^
actions_nat64_generic.p4(126)
meta.cast_length = (bit<32>) hdr.ipv6.payload_length;
^^^^^^^^^^^
Makefile:34: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
Makefile:31: recipe for target 'frontend' failed
make: *** [frontend] Error 2

View File

@ -0,0 +1,29 @@
+ date
Mit Jul 24 12:09:28 CEST 2019
+ cd /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4
+ make
make -C src/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
rm -f *.sdnet *.tbl .sdnet_switch_info.dat
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
make -C testdata/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -f *.pcap *.txt *.pyc *.axi config_writes.* *_reg_defines.py
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -rf nf_sume_sdnet_ip/
rm -f
rm -f sw/config_tables.c
make -C src/
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
p4c-sdnet -o minip4.sdnet --sdnet_info .sdnet_switch_info.dat minip4_solution.p4
headers.p4(216): error: Structure struct metadata does not have a field unused
struct metadata {
^^^^^^^^
minip4_solution.p4(44)
meta.unused = 0;
^^^^^^
Makefile:34: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
Makefile:31: recipe for target 'frontend' failed
make: *** [frontend] Error 2

View File

@ -0,0 +1,55 @@
+ date
Mit Jul 24 12:09:46 CEST 2019
+ cd /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4
+ make
make -C src/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
rm -f *.sdnet *.tbl .sdnet_switch_info.dat
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
make -C testdata/ clean
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -f *.pcap *.txt *.pyc *.axi config_writes.* *_reg_defines.py
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
rm -rf nf_sume_sdnet_ip/
rm -f
rm -f sw/config_tables.c
make -C src/
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
p4c-sdnet -o minip4.sdnet --sdnet_info .sdnet_switch_info.dat minip4_solution.p4
actions_egress.p4(52): warning: Table v6_networks is not used; removing
table v6_networks {
^^^^^^^^^^^
actions_egress.p4(69): warning: Table v4_networks is not used; removing
table v4_networks {
^^^^^^^^^^^
actions_nat64_generic.p4(159): warning: Table nat64 is not used; removing
table nat64 {
^^^^^
actions_nat64_generic.p4(174): warning: Table nat46 is not used; removing
table nat46 {
^^^^^
minip4_solution.p4(38): [--Wwarn=uninitialized_out_param] warning: out parameter meta may be uninitialized when RealParser terminates
out metadata meta,
^^^^
minip4_solution.p4(35)
parser RealParser(
^^^^^^^^^^
/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/bin/p4_px_tables.py commands.txt .sdnet_switch_info.dat
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
make -C testdata/
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
./gen_testdata.py
Applying pkt on nf0 at 1:
Applying pkt on nf1 at 2:
Applying pkt on nf2 at 3:
Applying pkt on nf3 at 4:
nf0_applied times: [1]
nf1_applied times: [2]
nf2_applied times: [3]
nf3_applied times: [4]
/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/bin/pcap2axi --output Packet_in.axi --bus_width 256 src.pcap
/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/bin/pcap2axi --output Packet_expect.axi --bus_width 256 dst.pcap
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
sdnet ./src/minip4.sdnet -skipEval -busType axi -busWidth 256 -singlecontrolport -workDir nf_sume_sdnet_ip -altVivadoScripts
Xilinx SDNet Compiler version 2018.2, build 2342300

View File

@ -1,2 +0,0 @@
This directory and all its content are copied from switch_calc
from git@github.com:NetFPGA/P4-NetFPGA-live.git

View File

@ -1 +0,0 @@
LOG

View File

2
p4src/.gitignore vendored
View File

@ -1,3 +1,5 @@
*.json
*.p4i
.sdnet_switch_info.dat
*.tbl
*.sdnet

View File

@ -1,32 +0,0 @@
#ifndef NICO_CONTROLLER
#define NICO_CONTROLLER
/********************** GENERAL ACTIONS ***********************************/
#ifndef _SUME_SWITCH_P4_
action controller_reply(task_t task) {
meta.task = task;
meta.ingress_port = standard_metadata.ingress_port;
clone3(CloneType.I2E, 100, meta);
}
#else
#include "action_egress.p4"
action controller_reply(task_t task) {
meta.task = task;
meta.ingress_port = sume_metadata.src_port;
set_egress_port(4); /* port1 = 1, port2 = 2, port3=4 */
}
#endif /* _SUME_SWITCH_P4_ */
action controller_debug_table_id(table_t table_id) {
meta.table_id = table_id;
controller_reply(TASK_DEBUG);
}
action controller_debug() {
controller_reply(TASK_DEBUG);
}
#endif

View File

@ -1,8 +1,9 @@
#ifndef NICO_EGRESS
#define NICO_EGRESS
#include "settings.p4"
/********************** ROUTING (egress definiton) TABLES ***********************************/
/********************** EGRESS ACTIONS ***********************************/
action set_egress_port (port_t out_port) {
#ifndef _SUME_SWITCH_P4_
@ -17,6 +18,37 @@ action set_egress_port_and_mac (port_t out_port, mac_addr_t mac_addr) {
set_egress_port(out_port);
}
/********************** GENERAL ACTIONS ***********************************/
#ifndef _SUME_SWITCH_P4_
action controller_reply(task_t task) {
meta.task = task;
meta.ingress_port = standard_metadata.ingress_port;
clone3(CloneType.I2E, 100, meta);
}
#else
action controller_reply(task_t task) {
meta.task = task;
meta.ingress_port = sume_metadata.src_port;
set_egress_port(4); /* port1 = 1, port2 = 2, port3=4 */
}
#endif /* _SUME_SWITCH_P4_ */
action controller_debug_table_id(table_t table_id) {
meta.table_id = table_id;
controller_reply(TASK_DEBUG);
}
action controller_debug() {
controller_reply(TASK_DEBUG);
}
/********************** ROUTING (egress definiton) TABLES ***********************************/
table v6_networks {
key = {
hdr.ipv6.dst_addr: lpm;

View File

@ -1,7 +1,7 @@
#ifndef NICO_NAT64_GENERIC
#define NICO_NAT64_GENERIC
#include "actions_controller.p4"
#include "actions_egress.p4"
#include "actions_delta_checksum.p4"
/********************** NAT64 / NAT46 ACTIONS GENERIC ***********************************/

View File

@ -2,22 +2,27 @@
#include <sume_switch.p4>
#include "headers.p4"
typedef bit<48> EthAddr_t;
header Ethernet_h {
EthAddr_t dstAddr;
EthAddr_t srcAddr;
bit<16> etherType;
}
// typedef bit<48> EthAddr_t;
// header Ethernet_h {
// EthAddr_t dstAddr;
// EthAddr_t srcAddr;
// bit<16> etherType;
// }
struct Parsed_packet {
Ethernet_h ethernet;
}
//typedef struct headers Parsed_packet;
#define Parsed_packet headers
#define user_metadata_t metadata
//struct Parsed_packet {
// Ethernet_h ethernet;
//}
// user defined metadata: can be used to share information between
// TopParser, TopPipe, and TopDeparser
struct user_metadata_t {
bit<8> unused;
}
//struct user_metadata_t {
// bit<8> unused;
//}
// digest_data, MUST be 256 bits -- what is this used for?
struct digest_data_t {
@ -36,7 +41,7 @@ parser RealParser(
state start {
packet.extract(hdr.ethernet);
meta.unused = 0;
// meta.unused = 0;
digest_data.unused = 0;
transition accept;
}
@ -68,10 +73,13 @@ control RealMain(
inout digest_data_t digest_data,
inout sume_metadata_t sume_metadata) {
#include "actions_nat64_generic.p4"
#include "actions_egress.p4"
action swap_eth_addresses() {
EthAddr_t temp = hdr.ethernet.dstAddr;
hdr.ethernet.dstAddr = hdr.ethernet.srcAddr;
hdr.ethernet.srcAddr = temp;
mac_addr_t temp = hdr.ethernet.dst_addr;
hdr.ethernet.dst_addr = hdr.ethernet.src_addr;
hdr.ethernet.src_addr = temp;
/* set egress port */
sume_metadata.dst_port = sume_metadata.src_port;
@ -94,12 +102,12 @@ control RealMain(
}
action do_nothing() {
EthAddr_t temp = hdr.ethernet.dstAddr;
mac_addr_t temp = hdr.ethernet.dst_addr;
}
table lookup_table {
key = {
hdr.ethernet.dstAddr: exact;
hdr.ethernet.dst_addr: exact;
}
actions = {
@ -113,6 +121,27 @@ control RealMain(
}
apply {
if(hdr.ipv6.isValid()) {
if(nat64.apply().hit) { /* generic / static nat64 done */
if(hdr.icmp6.isValid()) {
nat64_icmp6_generic();
if(hdr.icmp6.type == ICMP6_ECHO_REPLY) {
hdr.icmp.type = ICMP_ECHO_REPLY;
hdr.icmp.code = 0;
}
if(hdr.icmp6.type == ICMP6_ECHO_REQUEST) {
hdr.icmp.type = ICMP_ECHO_REQUEST;
hdr.icmp.code = 0;
}
}
}
} else if(hdr.arp.isValid()) {
if(v4_arp.apply().hit) {
v4_arp_egress.apply();
}
}
lookup_table.apply();
}
}