Adding logs from plan.org

This commit is contained in:
Nico Schottelius 2019-08-12 17:36:43 +02:00
parent 695f4ed94c
commit 06e963e606
6 changed files with 291 additions and 36 deletions

View File

@ -103,10 +103,13 @@ the two protocols for this thesis are:
\label{fig:ipv4header} \label{fig:ipv4header}
\end{figure} \end{figure}
% ---------------------------------------------------------------------- % ----------------------------------------------------------------------
\section{\label{background:arpndp}ARP and NDP - FIXME} \section{\label{background:arpndp}ARP and NDP, ICMP ICMP6- FIXME}
Required for finding host. Required for finding host.
ARP who has ARP who has
NDP similar -- add traces here NDP similar -- add traces here
being able to answer to error messages
MTU / pmtu
% ---------------------------------------------------------------------- % ----------------------------------------------------------------------
\section{\label{background:transition}IPv6 Translation Mechanisms} \section{\label{background:transition}IPv6 Translation Mechanisms}
While in this thesis the focus was in NAT64 as a translation mechanism, While in this thesis the focus was in NAT64 as a translation mechanism,

View File

@ -14,7 +14,7 @@ Many misleading
\section{\label{conclusion:bmv2}BMV2} \section{\label{conclusion:bmv2}BMV2}
maybe remove
\section{\label{conclusion:P4}P4} \section{\label{conclusion:P4}P4}
@ -39,6 +39,18 @@ ternary matching.
switch cannot be used in actions switch cannot be used in actions
if things don't work, often a checksum problem.
if frame checksum, then length of packet is broken
\begin{verbatim}
p4c --target bmv2 --arch v1model --std p4-16 "../p4src/static-mapping.p4" -o "/home/p4/master-thesis/p4src"
../p4src/static-mapping.p4(366): error: Program is not supported by this target, because table MyIngress.v6_networks has multiple successors
table v6_networks {
^^^^^^^^^^^
\end{verbatim}
\begin{verbatim} \begin{verbatim}
ipaddress.ip_network("2001:db8:61::/64") ipaddress.ip_network("2001:db8:61::/64")
IPv6Network(u'3230:3031:3a64:6238:3a36:313a:3a2f:3634/128') IPv6Network(u'3230:3031:3a64:6238:3a36:313a:3a2f:3634/128')
@ -59,6 +71,8 @@ Hitting expression bug
\section{\label{conclusion:netpfga}NetFGPA - all HERE} \section{\label{conclusion:netpfga}NetFGPA - all HERE}
personal note here personal note here
MTU limitations: 1500 according to a private mail from Salvator Galea
cambridge / uk
long compile process long compile process
error prone compile process error prone compile process
@ -69,6 +83,29 @@ Vivado
SDNET SDNET
xx k lines of supporting code xx k lines of supporting code
Vivado installation: silent errors, infinite loop, missing libncurses5
82k lines of code that are interdependent
Many non critical error messages on the way
Zero exit fatal errors
missing / spreaded documentation
tcpdump on local nfX doesn't work -> can only debug on other endpoint
First card: Writing tables fails
hardware debug shows some errors
but hardware debug on correct card also shows some error
Debug ioctl errors when writing table entries
Output all ports -> port mapping documented only in a testdata script
hwtest: Execution fails due to missing djtgcfg
no payload accessq no payload accessq
Many workarounds Many workarounds
@ -91,6 +128,11 @@ Renaming VARIABLES in the definition of
Reproducibility: Reproducibility:
hours for finding right output ports
packet size / annotation
\section{\label{conclusion:realworld}Real world applications} \section{\label{conclusion:realworld}Real world applications}
Can be deployed using the netpfga. Or Barefoot or Arista. Can be deployed using the netpfga. Or Barefoot or Arista.
@ -106,7 +148,24 @@ Different HW
Speed only limited to line speed. Could be running at 100 Gbit/s Speed only limited to line speed. Could be running at 100 Gbit/s
without modifications. without modifications.
\section{todo} PMTU
handling error cases
Our algorithm uses the IPv4-Compatible IPv6 Address\cite{rfc4291} to
embed IPv4 addresses. However RFC6052\cite{rfc6052} defines different
embeddings depending on the prefix size. A future version should
support these schemes to be compatible to other implementations.
No fragmentation
No address / mac learning
\section{\label{conclusion:closing}Closing words (NAME?)}
While the port to NetPFGA was significantly more effort then expected,
the learnings of the different layers were very much appreciated / liked
It was a
\section{todo - FIXME: remove}
\begin{verbatim} \begin{verbatim}
***** Summary eher kurz ***** Summary eher kurz
***** Outlook als subsection! ***** Outlook als subsection!

View File

@ -147,3 +147,4 @@ not the full headers are used, but the pseudo headers (compare figures
\ref{fig:ipv6pseudoheader} and \ref{fig:ipv4pseudoheader}). \ref{fig:ipv6pseudoheader} and \ref{fig:ipv4pseudoheader}).
To compensate the carry bit, our code uses 17 bit integers for To compensate the carry bit, our code uses 17 bit integers for
correcting the carry. correcting the carry.
% FIXME: add note to python script / checksum diffing

View File

@ -12,7 +12,7 @@ NetFPGA: capabale of line speed Nat64, focused port on nat64
\section{\label{Results:BMV2}BMV2} \section{\label{Results:BMV2}BMV2}
Responds to icmp, icmp6 Responds to icmp, icmp6
ndp ndp \cite{rfc4861}
arp arp
test framework openvswitch test framework openvswitch
@ -20,6 +20,14 @@ test framework openvswitch
Fully functional host Fully functional host
Can compute checksums on its own. Can compute checksums on its own.
focus on typical use cases of icmp, icmp6, the software implementation
supports translating echo request and echo reply messages, but does
not support all ICMP/ICMP6 translations that are defined in
RFC6145\cite{rfc6145}.
Stateful : no automatic removal
\section{\label{results:tayga}Tayga} \section{\label{results:tayga}Tayga}
3gbit 3gbit
@ -41,7 +49,17 @@ General result: limited NAT64 is working, however
\section{\label{results:softwarenat64}NAT64 in Software} \section{\label{results:softwarenat64}NAT64 in Software}
Tayga, Jool Tayga, Jool
\section{todo} \section{\label{results:features}Feature comparison}
speed - sessions - eamt
can act as host
lpm tables
ping
ping6 support
ndp
controller support
\section{todo - FIXME: remove}
\begin{verbatim} \begin{verbatim}
***** Dorth eher detailiertes Drawing ***** Dorth eher detailiertes Drawing

View File

@ -1497,6 +1497,181 @@ root@ESPRIMO-P956:~#
\chapter{\label{bufferssssss}Buffer} \chapter{\label{bufferssssss}Buffer}
\section{NetFPGA compile errors}
- infinite loop in installer
\begin{verbatim}
# 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: cannot stat 'src/*.tbl': No such file or directory
make: *** [Makefile:23: cpp_test] Error 1
[23:12] loch:minip4%
\end{verbatim}
\begin{verbatim}
ERROR: [XSIM 43-3409] Failed to compile generated C file xsim.dir/work.SimpleSumeSwitch_tb#work.glbl/obj/xsim_3.c.
ERROR: [XSIM 43-3915] Encountered a fatal error. Cannot continue. Exiting...
\end{verbatim}
\begin{verbatim}
/opt/Xilinx/Vivado/2018.2/data/../tps/llvm/3.1/lnx64.o/bin/clang -fPIC -c -std=gnu89 -nobuiltininc -nostdinc++ -w -Wl,--unres
olved-symbols=ignore-in-object-files -fbracket-depth=1048576 -I/opt/Xilinx/Vivado/2018.2/data/../tps/llvm/3.1/lnx64.o/bin/../li
b/clang/3.1/include -fPIC -m64 -I"/opt/Xilinx/Vivado/2018.2/data/xsim/include" "xsim.dir/work.SimpleSumeSwitch_tb#work.glbl/ob
j/xsim_3.c" -O0 -sim -o "xsim.dir/work.SimpleSumeSwitch_tb#work.glbl/obj/xsim_3.lnx64.o" -DXILINX_SIMULATOR
/opt/Xilinx/Vivado/2018.2/data/../tps/llvm/3.1/lnx64.o/bin/clang: error while loading shared libraries: libncurses.so.5: cannot
open shared object file: No such file or directory
ERROR: [XSIM 43-3409] Failed to compile generated C file xsim.dir/work.SimpleSumeSwitch_tb#work.glbl/obj/xsim_3.c.
ERROR: [XSIM 43-3915] Encountered a fatal error. Cannot continue. Exiting...
[20:00] rainbow:SimpleSumeSwitch%
\end{verbatim}
\begin{verbatim}
# 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: cannot stat 'testdata/*.txt': No such file or directory
make: *** [Makefile:17: all] Error 1
[15:46] rainbow:minip4%
\end{verbatim}
\begin{verbatim}
make -C testdata/
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
./gen_testdata.py
/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/bin/pcap2axi --output Packet_in.axi --bus_width 256 src.pcap
Traceback (most recent call last):
File "/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/bin/pcap2axi", line 108, in <module>
write_to_file(args.file_pcap, args.output)
File "/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/bin/pcap2axi", line 88, in write_to_file
for pkt in rdpcap(file_in):
File "/usr/lib/python2.7/dist-packages/scapy/utils.py", line 728, in rdpcap
with PcapReader(filename) as fdesc:
File "/usr/lib/python2.7/dist-packages/scapy/utils.py", line 751, in __call__
filename, fdesc, magic = cls.open(filename)
File "/usr/lib/python2.7/dist-packages/scapy/utils.py", line 778, in open
fdesc = open(filename, "rb")
IOError: [Errno 2] No such file or directory: 'src.pcap'
make[1]: *** [Makefile:5: all] Error 1
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
make: *** [Makefile:32: frontend] Error 2
[15:47] rainbow:minip4%
\end{verbatim}
\begin{verbatim}
update_compile_order: Time (s): cpu = 00:00:17 ; elapsed = 00:00:09 . Memory (MB): peak = 1995.594 ; gain = 0.016 ; free physic
al = 21975 ; free virtual = 33161
loading libsume..
Traceback (most recent call last):
File "/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/sim_switch_de
fault/run.py", line 42, in <module>
import config_writes
File "/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/sim_switch_de
fault/config_writes.py", line 7
^
IndentationError: expected an indented block
while executing
"exec python $::env(NF_DESIGN_DIR)/test/${test_name}/run.py"
invoked from within
"set output [exec python $::env(NF_DESIGN_DIR)/test/${test_name}/run.py]"
(file "/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/hw/tcl/simple_s
ume_switch_sim.tcl" line 177)
INFO: [Common 17-206] Exiting Vivado at Sat May 18 15:21:21 2019...
\end{verbatim}
\begin{verbatim}
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/nf_interface_0_log.axi': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/nf_interface_0_stim.axi': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/nf_interface_0_expected.axi': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/nf_interface_1_log.axi': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/nf_interface_1_stim.axi': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/nf_interface_1_expected.axi': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/nf_interface_2_log.axi': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/nf_interface_2_stim.axi': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/nf_interface_2_expected.axi': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/nf_interface_3_log.axi': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/nf_interface_3_stim.axi': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/nf_interface_3_expected.axi': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/dma_0_log.axi': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/dma_0_expected.axi': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/reg_stim.log': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/reg_expect.axi': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/reg_stim.axi': No such file or directory
=== Running test /tmp/nico/test/simple_sume_switch/sim_switch_default ... using cmd ['/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/sim_switch_default/run.py', '--sim', 'xsim']
\end{verbatim}
\begin{verbatim}
# add_wave $nf_sume_sdnet_ip/out_src_port
# add_wave $nf_sume_sdnet_ip/out_dst_port
# set const_reg_ip /top_tb/top_sim/nf_datapath_0/nf_sume_sdnet_wrapper_1/inst/SimpleSumeSwitch_inst/const_reg_rw_0/
# add_wave_divider {const reg extern signals}
# add_wave $const_reg_ip
ERROR: [Wavedata 42-471] Note: Nothing was found for the following items: /top_tb/top_sim/nf_datapath_0/nf_sume_sdnet_wrapper_1/inst/SimpleSumeSwitch_inst/const_reg_rw_0/
ERROR: [Common 17-39] 'add_wave' failed due to earlier errors.
while executing
"add_wave $const_reg_ip "
(file "/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/hw/tcl/simple_sume_switch_sim.tcl" line 328)
INFO: [Common 17-206] Exiting Vivado at Sat May 18 15:31:59 2019...
make: *** [Makefile:121: sim] Error 1
make: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test'
512
=== Work directory is /tmp/nico/test/simple_sume_switch
=== Setting up test in /tmp/nico/test/simple_sume_switch/sim_switch_default
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/nf_interface_0_log.axi': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/nf_interface_1_log.axi': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/nf_interface_2_log.axi': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/nf_interface_3_log.axi': No such file or directory
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/dma_0_log.axi': No such file or directory
=== Running test /tmp/nico/test/simple_sume_switch/sim_switch_default ... using cmd ['/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/sim_switch_default/run.py', '--sim', 'xsim']
[15:31] rainbow:P4-NetFPGA%
\end{verbatim}
\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.
ERROR: [Common 17-39] 'connect_bd_intf_net' failed due to earlier errors.
while executing
"connect_bd_intf_net -intf_net nf_riffa_dma_1_pcie3_cfg_interrupt [get_bd_intf_pins nf_riffa_dma_1/cfg_interrupt] [get_bd_intf_pins pcie3_7x_1/pcie3_cf..."
(procedure "create_hier_cell_dma_sub" line 141)
invoked from within
"create_hier_cell_dma_sub [current_bd_instance .] dma_sub"
(procedure "create_root_design" line 68)
invoked from within
"create_root_design """
(file "./tcl/control_sub.tcl" line 729)
while executing
"source ./tcl/control_sub.tcl"
(file "tcl/simple_sume_switch.tcl" line 89)
\end{verbatim}
\section{Traces}
Proof of stuff working, reference for each stage / feature
Stuff that needs to be cleaned up Stuff that needs to be cleaned up
\section{Introduction} \section{Introduction}

View File

@ -1,4 +1,5 @@
* Time table / log * DONE Time table / log
CLOSED: [2019-08-12 Mon 17:01]
| When? | What? | Notes | | When? | What? | Notes |
| 2019-02-21 | Kick-Off | x | | 2019-02-21 | Kick-Off | x |
| | Finish all admin points | x | | | Finish all admin points | x |
@ -244,14 +245,14 @@
| | * RFC4291 IPv4-Mapped IPv6 Address (16 1s) | | | | * RFC4291 IPv4-Mapped IPv6 Address (16 1s) | |
| | | | | | | |
| | - Session handling | | | | - Session handling | |
| | * RFC6145: Translation ip/icmp, obsoleted by RFC 7915 | | | | * RFC6145: Translation ip/icmp, obsoleted by RFC 7915 | x |
| | * RFC6146: NAT64 definition, only TCP, UDP, and ICMP traffic | | | | * RFC6146: NAT64 definition, only TCP, UDP, and ICMP traffic | |
| | * RFC6052: embedding support | | | | * RFC6052: embedding support | |
| | * Mode: IPv6 outgoing -> "masquarading" | | | | * Mode: IPv6 outgoing -> "masquarading" | |
| | * Mode: IPv4 | | | | * Mode: IPv4 | |
| | | | | | | |
| | - Translation details | | | | - Translation details | |
| | * How to handle ICMP4->icmp6 correctly (RFC7915) | | | | * How to handle ICMP4->icmp6 correctly (RFC7915) | x |
| | | | | | | |
| | - Hardware | | | | - Hardware | |
| | * NetFPGA | | | | * NetFPGA | |
@ -266,7 +267,7 @@
| | | | | | | |
| | | | | | | |
| | Meeting notes | | | | Meeting notes | |
| | - difference based | | | | - difference based | x |
| | - first physical access | | | | - first physical access | |
| | - tofino: if it compiles -> line rate | | | | - tofino: if it compiles -> line rate | |
| | - chaining switches / OS -> single port rate | | | | - chaining switches / OS -> single port rate | |
@ -294,21 +295,21 @@
| | Bidirectional support | | | | Bidirectional support | |
| | Will need IPv6 embedding suport https://tools.ietf.org/html/rfc6052 | | | | Will need IPv6 embedding suport https://tools.ietf.org/html/rfc6052 | |
| | | | | | | |
| 2019-04-18 | NAT64 prefix based IPv6->IPv4 conversion [tayga] | | | 2019-04-18 | NAT64 prefix based IPv6->IPv4 conversion [tayga] | x |
| | Use case: IPv6 hosts send to specific /96 | | | | Use case: IPv6 hosts send to specific /96 | |
| | | | | | | |
| 2019-05-23 | NAT64 dynamic pool implementation: n:1 ipv6 to ipv4 mapping | | | 2019-05-23 | NAT64 dynamic pool implementation: n:1 ipv6 to ipv4 mapping | x |
| | And n:1 stateful mappings https://www.jool.mx/en/run-nat64.html | | | | And n:1 stateful mappings https://www.jool.mx/en/run-nat64.html | x |
| | Needs active controller | | | | Needs active controller | x |
| | Needs timeout / leases | | | | Needs timeout / leases | x |
| | Might work w/ registers | | | | Might work w/ registers | |
| | | | | | | |
| 2019-06-16 | | | | 2019-06-16 | | |
| | Laurent meeting | | | | Laurent meeting | |
| | | | | | | |
| | - Vivado installation: silent errors, infinite loop, missing libncurses5 | | | | - Vivado installation: silent errors, infinite loop, missing libncurses5 | x |
| | | | | | | |
| | - Compiling netfpga: 82k lines of code that are interdependent | | | | - Compiling netfpga: 82k lines of code that are interdependent | x |
| | - Many non critical error messages on the way | | | | - Many non critical error messages on the way | |
| | - Zero exit fatal errors | | | | - Zero exit fatal errors | |
| | | | | | | |
@ -324,28 +325,28 @@
| | | | | | | |
| | - HW test | | | | - HW test | |
| | * compiling for 3 days | | | | * compiling for 3 days | |
| | * Execution fails due to missing djtgcfg | | | | * Execution fails due to missing djtgcfg | x |
| | | | | | | |
| | Payload to control plane | | | | Payload to control plane | |
| | - digest not possible due to missing | | | | - digest not possible due to missing content | |
| | - might work with working | | | | - might work with working | |
| | | | | | | |
| | Next steps: | | | | Next steps: | |
| | - Debug ioctl errors when writing table entries | | | | - Debug ioctl errors when writing table entries | x |
| | | | | | | |
| | - Understand HDL or PX user engines for writing checksum part | | | | - Understand HDL or PX user engines for writing checksum part | x |
| | - Adjust controller to digest | | | | - Adjust controller to digest | |
| | | | | | | |
| | HDL notes | | | | HDL notes | |
| | - cycle limitations | | | | - cycle limitations | |
| | - variable length might be a problem | | | | - variable length might be a problem | x |
| | | | | | | |
| | Next steps after discussion: | | | | Next steps after discussion: | |
| | | | | | | |
| | - checkout ipv6 test on netpfga / modify v6 packet | | | | - checkout ipv6 test on netpfga / modify v6 packet | |
| | - checkout whether diff is possible on checksum -> see ttl | | | | - checkout whether diff is possible on checksum -> see ttl | x |
| | - checkout externs of Hendrik / report | | | | - checkout externs of Hendrik / report | |
| | - Asses checksum difficulty | | | | - Asses checksum difficulty | x |
| | | | | | | |
| | Handing in thesis: | | | | Handing in thesis: | |
| | | | | | | |
@ -371,9 +372,9 @@
| | - overflow (delta > payload) handling unclear | | | | - overflow (delta > payload) handling unclear | |
| | | | | | | |
| | Netpfga | | | | Netpfga | |
| | - Old one had several failure messages (one in DDR area) | | | | - Old one had several failure messages (one in DDR area) | x |
| | - New one: tables can be written | | | | - New one: tables can be written | x |
| | - Need 3 ports: v4, v6, management | | | | - Need 3 ports: v4, v6, management | x |
| | | | | | | |
| | Next steps: | | | | Next steps: | |
| | - Test checksums delta on software switch | | | | - Test checksums delta on software switch | |
@ -390,17 +391,17 @@
| 2019-07-01 | | | | 2019-07-01 | | |
| | Meeting Laurent | | | | Meeting Laurent | |
| | | | | | | |
| | - Diff'ing in python: | | | | - Diff'ing in python: | x |
| | * offsetting works | | | | * offsetting works | |
| | * Need to adjust to actual translation code | | | | * Need to adjust to actual translation code | |
| | | | | | | |
| | - Phasing in netpfga code / copy & compile & fix | | | | - Phasing in netpfga code / copy & compile & fix | |
| | * Code structure w/o apply logic | | | | * Code structure w/o apply logic | |
| | * DIFF: Output port selection | | | | * DIFF: Output port selection | x |
| | * DIFF: Sending to CPU | | | | * DIFF: Sending to CPU | |
| | | | | | | |
| | - Diff'ing in P4 | | | | - Diff'ing in P4 | |
| | * IPv4 checksum is w/o payload | | | | * IPv4 checksum is w/o payload | x |
| | | | | | | |
| | - Different generated output | | | | - Different generated output | |
| | | | | | | |
@ -419,7 +420,7 @@
| | - Maybe compile to openvswitch | | | | - Maybe compile to openvswitch | |
| | | | | | | |
| 2019-07-06 | | | | 2019-07-06 | | |
| | Test case for delta in P4/BMV2: | | | | Test case for delta in P4/BMV2: | x |
| | | | | | | |
| | | | | | | |
| | | | | | | |
@ -427,7 +428,7 @@
| 2019-07-11 | | | | 2019-07-11 | | |
| | Meeting Laurent | | | | Meeting Laurent | |
| | | | | | | |
| | - Delta diff in P4 from v4 -> v6: checksum working, off by one error | | | | - Delta diff in P4 from v4 -> v6: checksum working, off by one error | x |
| | -> assume overflow | | | | -> assume overflow | |
| | -> very likely | | | | -> very likely | |
| | | | | | | |
@ -443,7 +444,7 @@
| | https://github.com/jkitchin/org-ref | | | | https://github.com/jkitchin/org-ref | |
| | | | | | | |
| | | | | | | |
| 2019-07-25 | Benmarking results between P4, Jool, Tayga | | | 2019-07-25 | Benmarking results between P4, Jool, Tayga | x |
| | Real hardware of advantage | | | | Real hardware of advantage | |
| | | | | | | |
| | | | | | | |
@ -604,7 +605,6 @@ DEBUG:main:cpu = <CpuHeader task=DEBUG ingress_port=1 type=0x86dd |<Raw load='
DEBUG:main:o=<Ether dst=33:33:ff:00:00:42 src=00:00:0a:00:00:01 type=0x86dd |<IPv6 version=6 tc=0 fl=0 plen=32 nh=ICMPv6 hlim=255 src=2001:db8::1 dst=ff02::1:ff00:42 |<ICMPv6ND_NS type=Neighbor Solicitation code=0 cksum=0xd3a4 res=0 tgt=2001:db8::42 |<ICMPv6NDOptSrcLLAddr type=1 len=1 lladdr=00:00:0a:00:00:01 |>>>> DEBUG:main:o=<Ether dst=33:33:ff:00:00:42 src=00:00:0a:00:00:01 type=0x86dd |<IPv6 version=6 tc=0 fl=0 plen=32 nh=ICMPv6 hlim=255 src=2001:db8::1 dst=ff02::1:ff00:42 |<ICMPv6ND_NS type=Neighbor Solicitation code=0 cksum=0xd3a4 res=0 tgt=2001:db8::42 |<ICMPv6NDOptSrcLLAddr type=1 len=1 lladdr=00:00:0a:00:00:01 |>>>>
DEBUG:main:Debug purpose only DEBUG:main:Debug purpose only
***** Disable debug by default -> gives correct packets ***** Disable debug by default -> gives correct packets
DEBUG:main:INCOMING: <Ether dst=33:33:ff:00:00:42 src=00:00:0a:00:00:01 type=0x4242 |<Raw load='\x00\x01\x00\x01\x86\xdd`\x00\x00\x00\x00 :\xff \x01\r\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xff\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xff\x00\x00B\x87\x00\xd3\xa4\x00\x00\x00\x00 \x01\r\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B\x01\x01\x00\x00\n\x00\x00\x01' |>> DEBUG:main:INCOMING: <Ether dst=33:33:ff:00:00:42 src=00:00:0a:00:00:01 type=0x4242 |<Raw load='\x00\x01\x00\x01\x86\xdd`\x00\x00\x00\x00 :\xff \x01\r\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xff\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xff\x00\x00B\x87\x00\xd3\xa4\x00\x00\x00\x00 \x01\r\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B\x01\x01\x00\x00\n\x00\x00\x01' |>>
DEBUG:main:cpu = <CpuHeader task=ICMP6_NS ingress_port=1 type=0x86dd |<Raw load='`\x00\x00\x00\x00 :\xff \x01\r\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xff\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xff\x00\x00B\x87\x00\xd3\xa4\x00\x00\x00\x00 \x01\r\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B\x01\x01\x00\x00\n\x00\x00\x01' |>> DEBUG:main:cpu = <CpuHeader task=ICMP6_NS ingress_port=1 type=0x86dd |<Raw load='`\x00\x00\x00\x00 :\xff \x01\r\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xff\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xff\x00\x00B\x87\x00\xd3\xa4\x00\x00\x00\x00 \x01\r\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B\x01\x01\x00\x00\n\x00\x00\x01' |>>
DEBUG:main:o=<Ether dst=33:33:ff:00:00:42 src=00:00:0a:00:00:01 type=0x86dd |<IPv6 version=6 tc=0 fl=0 plen=32 nh=ICMPv6 hlim=255 src=2001:db8::1 dst=ff02::1:ff00:42 |<ICMPv6ND_NS type=Neighbor Solicitation code=0 cksum=0xd3a4 res=0 tgt=2001:db8::42 |<ICMPv6NDOptSrcLLAddr type=1 len=1 lladdr=00:00:0a:00:00:01 |>>>> DEBUG:main:o=<Ether dst=33:33:ff:00:00:42 src=00:00:0a:00:00:01 type=0x86dd |<IPv6 version=6 tc=0 fl=0 plen=32 nh=ICMPv6 hlim=255 src=2001:db8::1 dst=ff02::1:ff00:42 |<ICMPv6ND_NS type=Neighbor Solicitation code=0 cksum=0xd3a4 res=0 tgt=2001:db8::42 |<ICMPv6NDOptSrcLLAddr type=1 len=1 lladdr=00:00:0a:00:00:01 |>>>>
@ -630,7 +630,6 @@ multicast address of the target address."
****** create a multicast group with an ID ****** create a multicast group with an ID
****** associate the "node" with the multicast group ID ****** associate the "node" with the multicast group ID
**** If destination is within ff02::1:ff00:0/104, multicast **** If destination is within ff02::1:ff00:0/104, multicast
*** DONE Make switch answer icmp6 echo request for *** DONE Make switch answer icmp6 echo request for
*** DONE Introduce mixed mode: switch: icmp6 echo reply, controller: NDP *** DONE Introduce mixed mode: switch: icmp6 echo reply, controller: NDP
**** DONE try 1: reply seen, but checksum is incorrect **** DONE try 1: reply seen, but checksum is incorrect
@ -1561,7 +1560,8 @@ Cannot find required executable simple_switch.
Please make sure that it is installed and available in your $PATH: Please make sure that it is installed and available in your $PATH:
(/home/nico/vcs/master-thesis/support/virtualenv-with-site/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/nico/vcs/master-thesis/support/p4c/build/) (/home/nico/vcs/master-thesis/support/virtualenv-with-site/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/nico/vcs/master-thesis/support/p4c/build/)
(virtualenv-with-site) root@line:/home/nico/vcs/master-thesis/p4app# (virtualenv-with-site) root@line:/home/nico/vcs/master-thesis/p4app#
** TODO Port to Hardware ** DONE Port to Hardware
CLOSED: [2019-08-12 Mon 17:29]
*** NetPFGA documentation *** NetPFGA documentation
**** Port mapping **** Port mapping
| 1 | nf0 | | 1 | nf0 |
@ -1570,7 +1570,6 @@ Please make sure that it is installed and available in your $PATH:
**** DONE Understand the simulations part -> not atm **** DONE Understand the simulations part -> not atm
**** DONE Install vivado **** DONE Install vivado
**** DONE Install SDNET **** DONE Install SDNET
**** DONE fix license issue **** DONE fix license issue
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/switch_calc/testdata' make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/switch_calc/testdata'
echo ok echo ok