From 2533ad653f7b6ae959612cc26ee6c0b28cc61ca7 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Thu, 15 Aug 2019 17:08:10 +0200 Subject: [PATCH] ++results --- doc/Conclusion.tex | 161 --------------------------------------------- doc/Results.tex | 28 +++++++- doc/Thesis.pdf | Bin 1400216 -> 1396577 bytes doc/appendix.tex | 7 -- 4 files changed, 27 insertions(+), 169 deletions(-) diff --git a/doc/Conclusion.tex b/doc/Conclusion.tex index d338254..573a24a 100644 --- a/doc/Conclusion.tex +++ b/doc/Conclusion.tex @@ -10,12 +10,9 @@ Sum up what you have done and recapitulate your key findings. \section{\label{conclusion:softwarenat64}Software based NAT64} \section{\label{conclusion:general}General} -Many misleading - \section{\label{conclusion:bmv2}BMV2} - \section{\label{conclusion:P4}P4} NDP parsing problem @@ -175,173 +172,15 @@ idomatic problem: Security issue: not checking checksums before % ---------------------------------------------------------------------- \section{\label{conclusion:netpfga}NetFGPA - all HERE} -many dependencies -lpm not supported! -Netpfga live, - -Many workarounds - -packet size / annotation - Needed to debug internal parsing errors - debugging generated tcl code to debug impl1 error -function syntax not supported, using defines instead - -match type exact - table must be at least 64 in size - -Damaged, enlarged packets - -\begin{verbatim} -** The NetPFGA saga -Problems encountered: -- The logfile for a compile run is 10k+ lines -- Many logged errors can actually be ignored (?) like: - -ERROR: [VRFC 10-1491] unexpected EOF [/home/nico/master-thesis/netpfga/minip4/nf_sume_sdnet_ip/SimpleSumeSwitch/S_CONTROLLERs.HDL/S_CONTROLLER_SimpleSumeSwitch.vp:37] -ERROR: [VRFC 10-426] cannot find port tuple_out_sume_metadata_DATA on this module [/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/project/simple_sume_switch.srcs/sources_1/ip/nf_sume_sdnet_ip/nf_sume_sdnet_ip/wrapper/nf_sume_sdnet.v:219] -ERROR: [VRFC 10-426] cannot find port tuple_out_sume_metadata_VALID on this module [/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/project/simple_sume_switch.srcs/sources_1/ip/nf_sume_sdnet_ip/nf_sume_sdnet_ip/wrapper/nf_sume_sdnet.v:218] -ERROR: [VRFC 10-426] cannot find port tuple_in_sume_metadata_DATA on this module [/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/project/simple_sume_switch.srcs/sources_1/ip/nf_sume_sdnet_ip/nf_sume_sdnet_ip/wrapper/nf_sume_sdnet.v:185] -ERROR: [VRFC 10-426] cannot find port tuple_in_sume_metadata_VALID on this module [/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/project/simple_sume_switch.srcs/sources_1/ip/nf_sume_sdnet_ip/nf_sume_sdnet_ip/wrapper/nf_sume_sdnet.v:184] -ERROR: [VRFC 10-2063] Module not found while processing module instance [/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/project/simple_sume_switch.srcs/sources_1/ip/nf_sume_sdnet_ip/nf_sume_sdnet_ip/Simp -leSumeSwitch/SimpleSumeSwitch.v:332] -ERROR: [VRFC 10-2063] Module not found while processing module instance [/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/project/simple_sume_switch.srcs/sources_1/ip/nf_sume_sdnet_ip/nf_sume_sdnet_ip/ -SimpleSumeSwitch/SimpleSumeSwitch.v:343] -ERROR: [VRFC 10-2063] Module not found while processing module instance [/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/project/simple_sume_switch.srcs/sources_1/ip/nf_sume_sdnet_ip/nf_sume_sdnet_i -p/SimpleSumeSwitch/SimpleSumeSwitch.v:354] -ERROR: [VRFC 10-2063] Module not found while processing module instance [/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/project/simple_sume_switch.srcs/sources_1/ip/nf_sume_sdnet_ip/nf_sume_sdnet_ip/SimpleSumeSwitc -h/SimpleSumeSwitch.v:436] -ERROR: [VRFC 10-2063] Module not found while processing module instance [/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/project/simple_sume_switch.srcs/sources_1/ip/nf_sume_sdnet_ip/nf_sume_sdnet_ip/SimpleSumeS -witch/SimpleSumeSwitch.v:474] -ERROR: [VRFC 10-2063] Module not found while processing module instance [/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/project/simple_sume_switch.srcs/sources_1/ip/nf_sume_sdnet_ip/nf_s -ume_sdnet_ip/SimpleSumeSwitch/SimpleSumeSwitch.v:502] -ERROR: [VRFC 10-2063] Module not found while processing module instance [/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/project/simple_sume_switch.srcs/sources_1/ip/nf_sume_sdnet_ip/nf_sume_sdnet_ip/SimpleS -umeSwitch/SimpleSumeSwitch.v:533] -ERROR: [VRFC 10-2063] Module not found while processing module instance [/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/project/simple_sume_switch.srcs/sources_1/ip/nf_sume_sdnet_ip/nf_sume_sdnet_ip/SimpleSumeS -witch/SimpleSumeSwitch.v:561] - -# launch_simulation -simset sim_1 -mode behavioral -INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'XSim' simulator... -CRITICAL WARNING: [BD 41-1356] Address block is not mapped into . Please use Address Editor to either map or exclude it. -CRITICAL WARNING: [BD 41-1356] Address block is not mapped into . Please use Address Editor to either map or exclude it. - -WARNING: [VRFC 10-756] identifier state is used before its declaration [/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/project/simple_sume_switch.srcs/sources_1/ip/axis_sim_record_ip0/hdl/axis_sim_record.v:93] -WARNING: [VRFC 10-756] identifier ready_count is used before its declaration [/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/project/simple_sume_switch.srcs/sources_1/ip/axis_sim_record_ip0/hdl/axis_sim_record.v:94] - - - -INFO: [#UNDEF] Sorry, too many errors.. -ERROR: [XSIM 43-3322] Static elaboration of top level Verilog design unit(s) in library work failed. -INFO: [USF-XSim-69] 'elaborate' step finished in '1' seconds -INFO: [USF-XSim-99] Step results log file:'/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/project/simple_sume_switch.sim/sim_1/behav/xsim/elaborate.log' -ERROR: [USF-XSim-62] 'elaborate' step failed with error(s). Please check the Tcl console output or '/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/project/simple_sume_switch.sim/sim_1/behav/xsim/elaborate.log' file for more information. - -nico@nsg-System:~/master-thesis$ find . -name elaborate.log -nico@nsg-System:~/master-thesis$ find ~ -name elaborate.log -nico@nsg-System:~/master-thesis$ - -- Scripts that "fail" (generate wrong data) do exit 0 -> - There is no easy / reliable error detection -- Writing tables resulted in ioctl errors -- Hardware test: unclear if first board was/is broken or not, - BUT: second board in different computer allows writing tables -- Many scripts depend on each other in later stages, without clear - dependencies -- There is basically no documentation for someone who "just wants to - compile from P4 to netpfga" or A LOT of documentation (if vivado, - vhld, sdnet documentation is counted) -- Very high complexity in toolchain, scripts that are generated -+ cd /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/sim_switch_default -+ make -rm -f config_writes.py* -rm -f *.pyc - -nico@nsg-System:~$ cat /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata/config_writes.py - -from NFTest import * - -NUM_WRITES = 4 - -def config_tables(): - nftest_regwrite(0x44020050, 0x22222208) - nftest_regwrite(0x44020054, 0x00000822) - nftest_regwrite(0x44020080, 0x00000201) - nftest_regwrite(0x44020040, 0x00000001) -nico@nsg-System:~$ cat /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata/config_writes.sh -#!/bin/bash - -${SUME_SDNET}/sw/sume/rwaxi -a 0x44020050 -w 0x22222208 -${SUME_SDNET}/sw/sume/rwaxi -a 0x44020054 -w 0x00000822 -${SUME_SDNET}/sw/sume/rwaxi -a 0x44020080 -w 0x00000201 -${SUME_SDNET}/sw/sume/rwaxi -a 0x44020040 -w 0x00000001 -nico@nsg-System:~$ - - -- Misleading errors like -ERROR: [USF-XSim-62] 'elaborate' step failed with error(s). Please check the Tcl console output or '/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/project/simple_sume_switch.sim/sim_1/behav/xsim/elaborate.log' file for more information. -nico@nsg-System:~/master-thesis/netpfga$ ls /home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/project/simple_sume_switch.sim/sim_1/behav/xsim/elaborate.log -ls: cannot access '/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/project/simple_sume_switch.sim/sim_1/behav/xsim/elaborate.log': No such file or directory - -- not using raise() and hiding source of errors (_hexify) - -- sometimes flashing fails: - -#+BEGIN_CENTER -nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/bitfiles$ sudo bash -c ". $HOME/master-thesis/netpfga/bashinit && $(pwd -P)/program_switch.sh" -++ which vivado -+ xilinx_tool_path=/opt/Xilinx/Vivado/2018.2/bin/vivado -+ bitimage=minip4.bit -+ configWrites=config_writes.sh -+ '[' -z minip4.bit ']' -+ '[' -z config_writes.sh ']' -+ '[' /opt/Xilinx/Vivado/2018.2/bin/vivado == '' ']' -+ rmmod sume_riffa -+ xsct /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/tools/run_xsct.tcl -tclargs minip4.bit -rlwrap: warning: your $TERM is 'screen' but rlwrap couldn't find it in the terminfo database. Expect some problems. -RUN loading image file. -minip4.bit -100% 19MB 1.7MB/s 00:11 -fpga configuration failed. DONE PIN is not HIGH - invoked from within -"::tcf::eval -progress ::xsdb::print_progress {::tcf::cache_enter tcfchan#0 {tcf_cache_eval {process_tcf_actions_cache_client ::tcfclient#0::arg}}}" - (procedure "::tcf::cache_eval_with_progress" line 2) - invoked from within -"::tcf::cache_eval_with_progress [dict get $arg chan] [list process_tcf_actions_cache_client $argvar] $progress" - (procedure "process_tcf_actions" line 1) - invoked from within -"process_tcf_actions $arg ::xsdb::print_progress" - (procedure "fpga" line 430) - invoked from within -"fpga -f $bitimage" - (file "/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/tools/run_xsct.tcl" line 33) - -+ bash /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/tools/pci_rescan_run.sh -Check programming FPGA or Reboot machine ! -+ rmmod sume_riffa -rmmod: ERROR: Module sume_riffa is not currently loaded -+ modprobe sume_riffa -+ ifconfig nf0 up -nf0: ERROR while getting interface flags: No such device -+ ifconfig nf1 up -nf1: ERROR while getting interface flags: No such device -+ ifconfig nf2 up -nf2: ERROR while getting interface flags: No such device -+ ifconfig nf3 up -nf3: ERROR while getting interface flags: No such device -+ bash config_writes.sh -nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/bitfiles$ - -#+END_CENTER - -\end{verbatim} \section{\label{conclusion:realworld}Real world applications} Can be deployed using the netpfga. Or Barefoot or Arista. - \section{\label{conclusion:outlook}Outlook} %** Outlook.tex: What needs to be done further, what is planed diff --git a/doc/Results.tex b/doc/Results.tex index 5523a8b..be5ab56 100644 --- a/doc/Results.tex +++ b/doc/Results.tex @@ -265,6 +265,10 @@ and multiple times reflashing the bitstream to the NetFPGA usually restored the intended behaviour. However due to this ``crashes'', it was impossible to complete a full benchmark run that would last for more than one hour. + +Sometimes it was also required to reboot the host containing the +NetFPGA card 3 times to enable successful flashing.\footnote{Typical +output of the flashing process would be: ``fpga configuration failed. DONE PIN is not HIGH''} % ---------------------------------------------------------------------- \subsection{\label{results:netpfga:performance}Performance} As expected, the NetFGPA card performed at near line speed and offers @@ -326,10 +330,23 @@ error.\footnote{F.i. ``CRITICAL WARNING: [BD 41-737] Cannot set the parameter TRANSLATION\_MODE on /axi\_interconnect\_0. It is read-only.'' is a non critical warning.} Also contradicting -output is generated\footnote{While using version 2018.2, the following +output is generated.\footnote{While using version 2018.2, the following message was printed: ``WARNING: command 'get\_user\_parameter' will be removed in the 2015.3 release, use 'get\_user\_parameters' instead''.} +Programs or scripts that are called during the compile process do not +necessarily exit non zero if they encountered a critical error. Thus +finding the source of an error can be difficult due to the compile +process continuing after critical errors occured. Not only programs +that have critical errors exit ``successfully'', but also python +scripts that encounter critical paths don't abort with raise(), but +print an error message to stdout and don't abort with an error. + +The most often encountered critical compile error is +``Run 'impl\_1' has not been launched. Unable to open''. This error +indicates that something in the previous compile steps failed and can +refer to incorrectly generated testdata to unsupported LPM tables. + The NetFPGA kernel module provides access to virtual Linux devices (nf0...nf3). However tcpdump does not see any packets that are emitted from the switch. The only possibility to capture packets @@ -344,6 +361,15 @@ NetPFGA mailing list, the NetFPGA only supports 1500 byte frames at the moment and additional work is required to implement support for bigger frames. +Our P4 source code required contains Xilinx +annotations\footnote{F.i. ``@Xilinx\_MaxPacketRegion(1024)''} that define +the maximum packet size in bits. We observed two different errors on +the output packet, if the incoming packets exceeds the specified size: +\begin{itemize} +\item The output packet is longer then the original packet. +\item The output packet is corrupted. +\end{itemize} + While most of the P4 language is supported on the netpfga, some key techniques are missing or not supported. \begin{itemize} diff --git a/doc/Thesis.pdf b/doc/Thesis.pdf index 15b701126e4b19d2869ac2ea9428c9675ce8a2cb..fbbe78ec5c91fd64f773cf33a937800816902591 100644 GIT binary patch delta 32645 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 WA(NLkPZb{vH!(6Y3MC~)Peuxy(`f<# diff --git a/doc/appendix.tex b/doc/appendix.tex index 584f976..404eb67 100644 --- a/doc/appendix.tex +++ b/doc/appendix.tex @@ -1642,13 +1642,6 @@ cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-swit [15:31] rainbow:P4-NetFPGA% \end{verbatim} -Most often occured error: -\begin{verbatim} - # open_run impl_1 - ERROR: [Common 17-69] Command failed: Run 'impl_1' has not been launched. Unable to open - Vivado% -\end{verbatim} - \begin{verbatim} ERROR: [BD 41-171] The modes of the interface pins 'cfg_interrupt'(Slave) and 'pcie3_cfg_interrupt'(Slave) are incompatible. They cannot be connected. ERROR: [BD 5-3] Error: running connect_bd_intf_net.