log update
This commit is contained in:
parent
89e0576d22
commit
2462356e68
1 changed files with 221 additions and 57 deletions
278
doc/plan.org
278
doc/plan.org
|
@ -987,7 +987,8 @@ PING 10.1.1.1 (10.1.1.1) 56(84) bytes of data.
|
||||||
rtt min/avg/max/mdev = 12.593/12.593/12.593/0.000 ms
|
rtt min/avg/max/mdev = 12.593/12.593/12.593/0.000 ms
|
||||||
p4@ubuntu:~$
|
p4@ubuntu:~$
|
||||||
|
|
||||||
** TODO Implement ipv6<->ipv4 udp translation
|
** DONE Implement ipv6<->ipv4 udp translation
|
||||||
|
CLOSED: [2019-07-21 Sun 13:57]
|
||||||
*** DONE udp: ipv6->ipv4
|
*** DONE udp: ipv6->ipv4
|
||||||
|
|
||||||
p4@ubuntu:~$ mx h3 "echo V4-OK | socat - UDP-LISTEN:2342"
|
p4@ubuntu:~$ mx h3 "echo V4-OK | socat - UDP-LISTEN:2342"
|
||||||
|
@ -1001,7 +1002,8 @@ V4-OK
|
||||||
p4@ubuntu:~$
|
p4@ubuntu:~$
|
||||||
**** pcap/v6_udp-2019-04-11-0840-h1.pcap
|
**** pcap/v6_udp-2019-04-11-0840-h1.pcap
|
||||||
**** pcap/v6_udp-2019-04-11-0840-h3.pcap
|
**** pcap/v6_udp-2019-04-11-0840-h3.pcap
|
||||||
*** TODO udp: ipv4->ipv6
|
*** DONE udp: ipv4->ipv6
|
||||||
|
CLOSED: [2019-07-21 Sun 13:57]
|
||||||
p4@ubuntu:~$ mx h3 "echo V4-OK | socat - UDP:10.1.1.1:2342"
|
p4@ubuntu:~$ mx h3 "echo V4-OK | socat - UDP:10.1.1.1:2342"
|
||||||
/usr/bin/mx: line 25: [: too many arguments
|
/usr/bin/mx: line 25: [: too many arguments
|
||||||
V6-OK
|
V6-OK
|
||||||
|
@ -1039,8 +1041,10 @@ p4@ubuntu:~$
|
||||||
pcap/v4_tcp-2019-04-11-0853-h1.pcap | Bin 0 -> 1174 bytes
|
pcap/v4_tcp-2019-04-11-0853-h1.pcap | Bin 0 -> 1174 bytes
|
||||||
pcap/v4_tcp-2019-04-11-0853-h3.pcap | Bin 0 -> 1070 bytes
|
pcap/v4_tcp-2019-04-11-0853-h3.pcap | Bin 0 -> 1070 bytes
|
||||||
|
|
||||||
** TODO Update p4c to avoid compiler bug
|
** DONE Update p4c to avoid compiler bug
|
||||||
*** TODO Updating p4c
|
CLOSED: [2019-07-21 Sun 13:59]
|
||||||
|
*** DONE Updating p4c
|
||||||
|
CLOSED: [2019-07-21 Sun 13:57]
|
||||||
**** DONE Try1
|
**** DONE Try1
|
||||||
p4@ubuntu:~/p4-learning/vm/bin$ sh update-p4c.sh
|
p4@ubuntu:~/p4-learning/vm/bin$ sh update-p4c.sh
|
||||||
update-p4c.sh: 34: update-p4c.sh: Syntax error: "(" unexpected
|
update-p4c.sh: 34: update-p4c.sh: Syntax error: "(" unexpected
|
||||||
|
@ -1107,12 +1111,15 @@ p4@ubuntu:~/p4-tools/p4c/build$
|
||||||
**** DONE Build on notebook succeeds 900557c5
|
**** DONE Build on notebook succeeds 900557c5
|
||||||
[16:37] line:p4c% git describe --always
|
[16:37] line:p4c% git describe --always
|
||||||
900557c5
|
900557c5
|
||||||
**** TODO Build on VM with 900557c5 after removing build/
|
**** DONE Build on VM with 900557c5 after removing build/: no, stay with old p4c
|
||||||
** TODO Get p4 VM / vagrant running
|
CLOSED: [2019-07-21 Sun 13:57]
|
||||||
|
** DONE Get p4 VM / vagrant running: running on VM
|
||||||
|
CLOSED: [2019-07-21 Sun 13:57]
|
||||||
*** DONE install libvirtd-daemon
|
*** DONE install libvirtd-daemon
|
||||||
*** DONE install ebtables
|
*** DONE install ebtables
|
||||||
*** DONE install dnsmasq
|
*** DONE install dnsmasq
|
||||||
** TODO Get p4c & co. running on the notebook
|
** DONE Get p4c & co. running eon the notebook: no, stay on VM
|
||||||
|
CLOSED: [2019-07-21 Sun 13:58]
|
||||||
*** DONE mininet via packages
|
*** DONE mininet via packages
|
||||||
*** DONE p4c
|
*** DONE p4c
|
||||||
(virtualenv-with-site) [17:43] line:build% make install
|
(virtualenv-with-site) [17:43] line:build% make install
|
||||||
|
@ -1545,8 +1552,6 @@ 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 Setup test VM [dual stack] for Jool:
|
|
||||||
** TODO Setup test VM [dual stack] for tayga:
|
|
||||||
** TODO Port to Hardware
|
** TODO Port to Hardware
|
||||||
*** NetPFGA documentation
|
*** NetPFGA documentation
|
||||||
**** Port mapping
|
**** Port mapping
|
||||||
|
@ -1569,7 +1574,8 @@ Cannot obtain license
|
||||||
make: *** [Makefile:67: compile_no_cpp_test] Error 1
|
make: *** [Makefile:67: compile_no_cpp_test] Error 1
|
||||||
nico@loch:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/switch_calc$
|
nico@loch:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/switch_calc$
|
||||||
|
|
||||||
**** TODO Testing / compiling / uploading stuff to the NetPFGA --
|
**** DONE Testing / compiling / uploading stuff to the NetPFGA --
|
||||||
|
CLOSED: [2019-07-21 Sun 13:56]
|
||||||
https://github.com/NetFPGA/P4-NetFPGA-public/wiki/Tutorial-Assignments
|
https://github.com/NetFPGA/P4-NetFPGA-public/wiki/Tutorial-Assignments
|
||||||
***** DONE try 1
|
***** DONE try 1
|
||||||
According to
|
According to
|
||||||
|
@ -1654,7 +1660,8 @@ nico@loch:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/swit
|
||||||
****** DONE testdata: skipped
|
****** DONE testdata: skipped
|
||||||
****** DONE compile_cpp_test: ok
|
****** DONE compile_cpp_test: ok
|
||||||
****** DONE run_scripts: ok
|
****** DONE run_scripts: ok
|
||||||
****** TODO cpp_test: error
|
****** DONE cpp_test: error
|
||||||
|
CLOSED: [2019-07-21 Sun 13:59]
|
||||||
# Fix introduced for SDNet 2017.4
|
# 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.bash
|
||||||
sed -i 's/xsim\.dir\/xsc\/dpi\.so/dpi\.so/g' nf_sume_sdnet_ip/SimpleSumeSwitch/vivado_sim_waveform.bash
|
sed -i 's/xsim\.dir\/xsc\/dpi\.so/dpi\.so/g' nf_sume_sdnet_ip/SimpleSumeSwitch/vivado_sim_waveform.bash
|
||||||
|
@ -1667,7 +1674,8 @@ make: *** [Makefile:23: cpp_test] Error 1
|
||||||
[23:12] loch:minip4%
|
[23:12] loch:minip4%
|
||||||
******* DONE Removing cp of *tbl
|
******* DONE Removing cp of *tbl
|
||||||
******* DONE Removing pcap copy
|
******* DONE Removing pcap copy
|
||||||
******* TODO removing all cp's
|
******* DONE removing all cp's
|
||||||
|
CLOSED: [2019-07-21 Sun 13:59]
|
||||||
***** DONE try 3: good until step 4; broken at the simulation
|
***** DONE try 3: good until step 4; broken at the simulation
|
||||||
****** log 1
|
****** log 1
|
||||||
[15:26] rainbow:~% echo $P4_PROJECT_DIR
|
[15:26] rainbow:~% echo $P4_PROJECT_DIR
|
||||||
|
@ -1751,7 +1759,8 @@ root@rainbow:~# apt install libncurses5
|
||||||
****** command
|
****** command
|
||||||
cd $P4_PROJECT_DIR && make
|
cd $P4_PROJECT_DIR && make
|
||||||
****** DONE commented out the test data step to progress
|
****** DONE commented out the test data step to progress
|
||||||
****** TODO re-enable test data cp step => data required later
|
****** DONE re-enable test data cp step => data required later
|
||||||
|
CLOSED: [2019-07-21 Sun 13:57]
|
||||||
all: clean frontend compile_no_cpp_test run_scripts
|
all: clean frontend compile_no_cpp_test run_scripts
|
||||||
cp src/*.tbl ${SDNET_OUT_DIR}/${P4_SWITCH}/
|
cp src/*.tbl ${SDNET_OUT_DIR}/${P4_SWITCH}/
|
||||||
cp testdata/*.txt ${SDNET_OUT_DIR}/${P4_SWITCH}/
|
cp testdata/*.txt ${SDNET_OUT_DIR}/${P4_SWITCH}/
|
||||||
|
@ -1798,7 +1807,8 @@ 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[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata'
|
||||||
make: *** [Makefile:32: frontend] Error 2
|
make: *** [Makefile:32: frontend] Error 2
|
||||||
[15:47] rainbow:minip4%
|
[15:47] rainbow:minip4%
|
||||||
****** TODO debug gen_testdata.py
|
****** DONE debug gen_testdata.py
|
||||||
|
CLOSED: [2019-07-21 Sun 13:57]
|
||||||
***** DONE Run step 5: ok
|
***** DONE Run step 5: ok
|
||||||
****** command
|
****** command
|
||||||
#+BEGIN_EXAMPLE
|
#+BEGIN_EXAMPLE
|
||||||
|
@ -2027,7 +2037,8 @@ INFO: [Common 17-206] Exiting Vivado at Mon May 20 13:07:53 2019...
|
||||||
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/hw'
|
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/hw'
|
||||||
[13:07] rainbow:simple_sume_switch%
|
[13:07] rainbow:simple_sume_switch%
|
||||||
#+END_CENTER
|
#+END_CENTER
|
||||||
******* TODO clarifying "simple_sume_switch.tcl"
|
******* DONE clarifying "simple_sume_switch.tcl"
|
||||||
|
CLOSED: [2019-07-21 Sun 13:59]
|
||||||
******** DONE What is it?
|
******** DONE What is it?
|
||||||
Seems to be some kind of batch system for vivado
|
Seems to be some kind of batch system for vivado
|
||||||
******** DONE Who or what created it?
|
******** DONE Who or what created it?
|
||||||
|
@ -2308,7 +2319,6 @@ new dic: OrderedDict()
|
||||||
****** DONE try10: find out, why nf_sume_sdnet_ip/SimpleSumeSwitch/config_writes.txt has too less content
|
****** DONE try10: find out, why nf_sume_sdnet_ip/SimpleSumeSwitch/config_writes.txt has too less content
|
||||||
******* DONE find out what generates config_writes.txt
|
******* DONE find out what generates config_writes.txt
|
||||||
Seems to be step 5:
|
Seems to be step 5:
|
||||||
|
|
||||||
#+BEGIN_CENTER
|
#+BEGIN_CENTER
|
||||||
[14:22] rainbow:SimpleSumeSwitch% pwd
|
[14:22] rainbow:SimpleSumeSwitch% pwd
|
||||||
/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/nf_sume_sdnet_ip/SimpleSumeSwitch
|
/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/nf_sume_sdnet_ip/SimpleSumeSwitch
|
||||||
|
@ -3020,7 +3030,8 @@ SimpleSumeSwitch(
|
||||||
TopDeparser()
|
TopDeparser()
|
||||||
) main;
|
) main;
|
||||||
**** Understand the different switch models (?)
|
**** Understand the different switch models (?)
|
||||||
*** TODO Find out whether delta based checksumming is feasible [in P4]
|
*** DONE Find out whether delta based checksumming is feasible [in P4]
|
||||||
|
CLOSED: [2019-07-21 Sun 13:53]
|
||||||
**** DONE Analysing scapy
|
**** DONE Analysing scapy
|
||||||
CLOSED: [2019-06-23 Sun 14:18]
|
CLOSED: [2019-06-23 Sun 14:18]
|
||||||
#+BEGIN_CENTER
|
#+BEGIN_CENTER
|
||||||
|
@ -3066,7 +3077,8 @@ else:
|
||||||
|
|
||||||
|
|
||||||
#+END_CENTER
|
#+END_CENTER
|
||||||
**** TODO Trying to create a delta diff: AAAA vs. BBAA
|
**** DONE Trying to create a delta diff: AAAA vs. BBAA
|
||||||
|
CLOSED: [2019-07-21 Sun 13:53]
|
||||||
#+BEGIN_CENTER
|
#+BEGIN_CENTER
|
||||||
[14:17] line:bin% python3 checksum_from_scapy.py AAAA
|
[14:17] line:bin% python3 checksum_from_scapy.py AAAA
|
||||||
b'AAAA'
|
b'AAAA'
|
||||||
|
@ -3146,10 +3158,13 @@ sum=33667
|
||||||
|
|
||||||
|
|
||||||
#+END_CENTER
|
#+END_CENTER
|
||||||
*** TODO Get ANY p4 program to successfully run on netpfga
|
*** DONE Get ANY p4 program to successfully run on netpfga
|
||||||
**** TODO mirroring ethernet
|
CLOSED: [2019-07-21 Sun 14:00]
|
||||||
|
**** DONE mirroring ethernet
|
||||||
|
CLOSED: [2019-07-21 Sun 14:00]
|
||||||
***** no packets seen on source interface
|
***** no packets seen on source interface
|
||||||
**** TODO sending data to switch port 1
|
**** DONE sending data to switch port 1
|
||||||
|
CLOSED: [2019-07-21 Sun 14:00]
|
||||||
***** DONE figuring out which is port 1: nf0
|
***** DONE figuring out which is port 1: nf0
|
||||||
expected
|
expected
|
||||||
actual
|
actual
|
||||||
|
@ -3193,7 +3208,8 @@ listening on nf1, link-type EN10MB (Ethernet), capture size 262144 bytes
|
||||||
19:28:37.725181 IP6 2001:db8::1 > ff02::1:ff00:2: ICMP6, neighbor solicitation, who has 2001:db8::2, length 32
|
19:28:37.725181 IP6 2001:db8::1 > ff02::1:ff00:2: ICMP6, neighbor solicitation, who has 2001:db8::2, length 32
|
||||||
19:28:38.749195 IP6 2001:db8::1 > ff02::1:ff00:2: ICMP6, neighbor solicitation, who has 2001:db8::2, length 32
|
19:28:38.749195 IP6 2001:db8::1 > ff02::1:ff00:2: ICMP6, neighbor solicitation, who has 2001:db8::2, length 32
|
||||||
|
|
||||||
***** TODO Testing packets with send_packet.py: nothing arrives
|
***** DONE Testing packets with send_packet.py: nothing arrives: broken card problem
|
||||||
|
CLOSED: [2019-07-21 Sun 13:54]
|
||||||
root@rainbow:/home/nico/master-thesis/bin# python send_packet.py nf1
|
root@rainbow:/home/nico/master-thesis/bin# python send_packet.py nf1
|
||||||
.
|
.
|
||||||
Sent 1 packets.
|
Sent 1 packets.
|
||||||
|
@ -3204,7 +3220,8 @@ root@rainbow:/home/nico/master-thesis/bin#
|
||||||
|
|
||||||
-> only shows up on the interface that we send, not on nf0 if sending
|
-> only shows up on the interface that we send, not on nf0 if sending
|
||||||
on nf1
|
on nf1
|
||||||
***** TODO Trying to add explicit table entry
|
***** DONE Trying to add explicit table entry: broken card problem
|
||||||
|
CLOSED: [2019-07-21 Sun 13:54]
|
||||||
#+BEGIN_CENTER
|
#+BEGIN_CENTER
|
||||||
>> table_cam_add_entry lookup_table send_to_port1 ff:ff:ff:ff:ff:ff =>
|
>> table_cam_add_entry lookup_table send_to_port1 ff:ff:ff:ff:ff:ff =>
|
||||||
CAM_Init_ValidateContext() - done
|
CAM_Init_ValidateContext() - done
|
||||||
|
@ -3214,7 +3231,8 @@ WROTE 0x44020080 = 0x0003
|
||||||
python: ioctl: Unknown error 512
|
python: ioctl: Unknown error 512
|
||||||
[20:27] rainbow:CLI%
|
[20:27] rainbow:CLI%
|
||||||
#+END_CENTER
|
#+END_CENTER
|
||||||
***** TODO Trying to read a table entry
|
***** DONE Trying to read a table entry: broken card problem
|
||||||
|
CLOSED: [2019-07-21 Sun 13:54]
|
||||||
#+BEGIN_CENTER
|
#+BEGIN_CENTER
|
||||||
>> table_cam_read_entry lookup_table 0
|
>> table_cam_read_entry lookup_table 0
|
||||||
CAM_Init_ValidateContext() - done
|
CAM_Init_ValidateContext() - done
|
||||||
|
@ -3243,14 +3261,19 @@ ERROR: failed to convert p.ethernet.dstAddr of type <type 'str'> to an integer
|
||||||
|
|
||||||
#+END_CENTER
|
#+END_CENTER
|
||||||
|
|
||||||
*** TODO Create either HDL or PX for supporting payload checksum
|
*** DONE Create either HDL or PX for supporting payload checksum: no, not doing payload
|
||||||
|
CLOSED: [2019-07-21 Sun 13:54]
|
||||||
https://github.com/NetFPGA/P4-NetFPGA-public/issues/13
|
https://github.com/NetFPGA/P4-NetFPGA-public/issues/13
|
||||||
https://github.com/NetFPGA/P4-NetFPGA-public/issues/13#issuecomment-490431016
|
https://github.com/NetFPGA/P4-NetFPGA-public/issues/13#issuecomment-490431016
|
||||||
**** TODO Explore HDL
|
**** DONE Explore HDL: no, not needed
|
||||||
**** TODO Explore PX
|
CLOSED: [2019-07-21 Sun 13:54]
|
||||||
*** TODO Integrate nat64 code into netfpga
|
**** DONE Explore PX: no, not needed
|
||||||
**** figure out how to do ANY checksums
|
CLOSED: [2019-07-21 Sun 13:54]
|
||||||
** TODO Diff / Delta based checksums
|
*** Integrate nat64 code into netfpga: continue further down
|
||||||
|
**** DONE figure out how to do ANY checksums
|
||||||
|
CLOSED: [2019-07-21 Sun 13:55]
|
||||||
|
** DONE Diff / Delta based checksums
|
||||||
|
CLOSED: [2019-07-21 Sun 13:55]
|
||||||
*** DONE create test case / test theory
|
*** DONE create test case / test theory
|
||||||
CLOSED: [2019-07-13 Sat 21:50]
|
CLOSED: [2019-07-13 Sat 21:50]
|
||||||
*** Understand the complement implementation in P4/C
|
*** Understand the complement implementation in P4/C
|
||||||
|
@ -3272,7 +3295,8 @@ checksum, should be zero if there is no corruption.
|
||||||
https://en.wikipedia.org/wiki/IPv4_header_checksum
|
https://en.wikipedia.org/wiki/IPv4_header_checksum
|
||||||
|
|
||||||
|
|
||||||
**** TODO try first v6/v6
|
**** DONE try first v6/v6
|
||||||
|
CLOSED: [2019-07-21 Sun 14:00]
|
||||||
**** using python/struct
|
**** using python/struct
|
||||||
***** find right byte orders
|
***** find right byte orders
|
||||||
**** using python/scapy
|
**** using python/scapy
|
||||||
|
@ -3282,20 +3306,33 @@ https://en.wikipedia.org/wiki/IPv4_header_checksum
|
||||||
**** using p4
|
**** using p4
|
||||||
|
|
||||||
**** using p4/netpfga
|
**** using p4/netpfga
|
||||||
** NAT64/NAT46 Features in jool and tayga
|
** DONE NAT64/NAT46 Features in jool and tayga
|
||||||
*** TODO Static 1:1 NAT46: translate from IPv4 to IPv6 with a table
|
CLOSED: [2019-07-21 Sun 14:02]
|
||||||
**** TODO TCP
|
*** DONE Static 1:1 NAT46: translate from IPv4 to IPv6 with a table
|
||||||
**** TODO UDP
|
CLOSED: [2019-07-21 Sun 13:55]
|
||||||
**** TODO ICMP <-> ICMPv6
|
**** DONE TCP
|
||||||
*** TODO Stateless Prefix based NAT64: IPv6 to IPv4 translation prefix based
|
CLOSED: [2019-07-21 Sun 13:55]
|
||||||
|
**** DONE UDP
|
||||||
|
CLOSED: [2019-07-21 Sun 13:55]
|
||||||
|
**** DONE ICMP <-> ICMPv6
|
||||||
|
CLOSED: [2019-07-21 Sun 13:55]
|
||||||
|
*** DONE Stateless Prefix based NAT64: IPv6 to IPv4 translation prefix based
|
||||||
|
CLOSED: [2019-07-21 Sun 13:55]
|
||||||
**** Allows IPv6 hosts to reach the IPv4 Internet
|
**** Allows IPv6 hosts to reach the IPv4 Internet
|
||||||
*** See time table above
|
*** See time table above
|
||||||
** Additional features queue (to be discussed)
|
** DONE Additional features queue (to be discussed)
|
||||||
*** TODO Offset based translation (v4->v6) -> same as range (?)
|
CLOSED: [2019-07-21 Sun 14:01]
|
||||||
*** TODO IP address learning (v6/v4) for real life switch? How do hosts find it?
|
*** DONE Offset based translation (v4->v6) -> same as range (?)
|
||||||
** Netpfga cabling
|
CLOSED: [2019-07-21 Sun 14:00]
|
||||||
|
*** DONE IP address learning (v6/v4) for real life switch? How do hosts find it?
|
||||||
|
CLOSED: [2019-07-21 Sun 14:00]
|
||||||
|
** DONE Netpfga cabling
|
||||||
|
CLOSED: [2019-07-21 Sun 14:01]
|
||||||
| eth2 <--> nf0 |
|
| eth2 <--> nf0 |
|
||||||
| eth1 <--> nf3 |
|
| eth1 <--> nf3 |
|
||||||
|
** TODO Benchmark/comparison
|
||||||
|
*** TODO Setup / Benchmark Jool
|
||||||
|
*** TODO Setup / Benchmark tayga
|
||||||
* Thesis documentation
|
* Thesis documentation
|
||||||
** Introduction
|
** Introduction
|
||||||
*** Related work
|
*** Related work
|
||||||
|
@ -3349,7 +3386,8 @@ user@T:~# iptables -t mangle -A PREROUTING \
|
||||||
```
|
```
|
||||||
5656
|
5656
|
||||||
*** Cisco (?)
|
*** Cisco (?)
|
||||||
** TODO P4 based implementation
|
** DONE P4 based implementation
|
||||||
|
CLOSED: [2019-07-21 Sun 13:55]
|
||||||
*** General
|
*** General
|
||||||
|
|
||||||
- IPv6 subnet 2001:db8::/32
|
- IPv6 subnet 2001:db8::/32
|
||||||
|
@ -3360,7 +3398,8 @@ user@T:~# iptables -t mangle -A PREROUTING \
|
||||||
- IPv4 hosts are in 10.0.4.0/24
|
- IPv4 hosts are in 10.0.4.0/24
|
||||||
- IPv6 in IPv4 mapped hosts are in 10.0.6.0/24
|
- IPv6 in IPv4 mapped hosts are in 10.0.6.0/24
|
||||||
- IPv4 default router = 10.0.0.42
|
- IPv4 default router = 10.0.0.42
|
||||||
*** TODO IPv4 embedding
|
*** DONE IPv4 embedding
|
||||||
|
CLOSED: [2019-07-21 Sun 13:55]
|
||||||
|
|
||||||
RFC6052
|
RFC6052
|
||||||
|
|
||||||
|
@ -3704,7 +3743,8 @@ debug packets - analyse code - goto 1
|
||||||
[21:26] line:~% sudo apt install thrift-compiler
|
[21:26] line:~% sudo apt install thrift-compiler
|
||||||
libnanomsg-dev libjudy-dev
|
libnanomsg-dev libjudy-dev
|
||||||
|
|
||||||
*** TODO Session / dynamice mappings
|
*** DONE Session / dynamice mappings
|
||||||
|
CLOSED: [2019-07-21 Sun 13:56]
|
||||||
**** General
|
**** General
|
||||||
- Have 1..n session IPv4 addresses
|
- Have 1..n session IPv4 addresses
|
||||||
- Handle outgoing IPv6: create new session
|
- Handle outgoing IPv6: create new session
|
||||||
|
@ -3727,10 +3767,12 @@ libnanomsg-dev libjudy-dev
|
||||||
|
|
||||||
***** TODO Case IPv4 initiator
|
***** TODO Case IPv4 initiator
|
||||||
- Needs upper level protol
|
- Needs upper level protol
|
||||||
**** TODO General network matching
|
**** DONE General network matching
|
||||||
|
CLOSED: [2019-07-21 Sun 13:56]
|
||||||
***** DONE Create table(s)
|
***** DONE Create table(s)
|
||||||
***** DONE Fill it up from the controller: general network
|
***** DONE Fill it up from the controller: general network
|
||||||
***** TODO Create controller session handler
|
***** DONE Create controller session handler
|
||||||
|
CLOSED: [2019-07-21 Sun 13:55]
|
||||||
****** Controller Logic
|
****** Controller Logic
|
||||||
- controller selects "outgoing" IPv4 address range => base for sessions
|
- controller selects "outgoing" IPv4 address range => base for sessions
|
||||||
- IPv4 addresses can be "random" (in our test case), but need
|
- IPv4 addresses can be "random" (in our test case), but need
|
||||||
|
@ -3745,7 +3787,8 @@ libnanomsg-dev libjudy-dev
|
||||||
***** DONE Feed back to controller: implemented in switch
|
***** DONE Feed back to controller: implemented in switch
|
||||||
***** DONE Create ipv6 session in the controller
|
***** DONE Create ipv6 session in the controller
|
||||||
***** Create ipv4 session in the controller
|
***** Create ipv4 session in the controller
|
||||||
***** TODO Ensure translation code works
|
***** DONE Ensure translation code works
|
||||||
|
CLOSED: [2019-07-21 Sun 13:55]
|
||||||
>>> ipaddress.IPv6Network("2001:db8:100::/96")[int(ipaddress.IPv4Address("10.0.0.1"))]
|
>>> ipaddress.IPv6Network("2001:db8:100::/96")[int(ipaddress.IPv4Address("10.0.0.1"))]
|
||||||
IPv6Address('2001:db8:100::a00:1')
|
IPv6Address('2001:db8:100::a00:1')
|
||||||
|
|
||||||
|
@ -3757,9 +3800,12 @@ INFO:main:unhandled reassambled=<Ether dst=00:00:0a:00:00:42 src=00:00:0a:00:00
|
||||||
INFO:main:unhandled reassambled=<Ether dst=00:00:0a:00:00:42 src=00:00:0a:00:00:01 type=0x86dd |<IPv6 version=6 tc=0 fl=765494 plen=40 nh=TCP hlim=64 src=2001:db8::1 dst=2001:db8:100::a00:1 |<TCP sport=36458 dport=2342 seq=1287954527 ack=0 dataofs=10 reserved=0 flags=S window=28320 chksum=0xdce7 urgptr=0 options=[('MSS', 9440), ('SAckOK', ''), ('Timestamp', (795132605, 0)), ('NOP', None), ('WScale', 9)] |>>> from table TABLE_V6_NETWORKS
|
INFO:main:unhandled reassambled=<Ether dst=00:00:0a:00:00:42 src=00:00:0a:00:00:01 type=0x86dd |<IPv6 version=6 tc=0 fl=765494 plen=40 nh=TCP hlim=64 src=2001:db8::1 dst=2001:db8:100::a00:1 |<TCP sport=36458 dport=2342 seq=1287954527 ack=0 dataofs=10 reserved=0 flags=S window=28320 chksum=0xdce7 urgptr=0 options=[('MSS', 9440), ('SAckOK', ''), ('Timestamp', (795132605, 0)), ('NOP', None), ('WScale', 9)] |>>> from table TABLE_V6_NETWORKS
|
||||||
|
|
||||||
****** DONE action nat64_tcp_session_create is called
|
****** DONE action nat64_tcp_session_create is called
|
||||||
**** TODO tcp session
|
**** DONE tcp session
|
||||||
**** TODO udp session
|
CLOSED: [2019-07-21 Sun 13:55]
|
||||||
**** TODO tcp session
|
**** DONE udp session
|
||||||
|
CLOSED: [2019-07-21 Sun 13:55]
|
||||||
|
**** DONE tcp session
|
||||||
|
CLOSED: [2019-07-21 Sun 13:55]
|
||||||
** TODO Hardware port
|
** TODO Hardware port
|
||||||
*** Installation issues
|
*** Installation issues
|
||||||
Installing vivado would stall/sleep/hang forverer due to missing
|
Installing vivado would stall/sleep/hang forverer due to missing
|
||||||
|
@ -5281,7 +5327,8 @@ sum 0xc5f2 (incorrect -> 0xe7cf)
|
||||||
*** 2019-07-16: pcap for debugging udp
|
*** 2019-07-16: pcap for debugging udp
|
||||||
pcap/tcp-udp-delta-2019-07-16-0856-h3.pcap
|
pcap/tcp-udp-delta-2019-07-16-0856-h3.pcap
|
||||||
pcap/tcp-udp-delta-2019-07-16-0856-h1.pcap
|
pcap/tcp-udp-delta-2019-07-16-0856-h1.pcap
|
||||||
*** 2019-07-16: testing with udp
|
*** DONE 2019-07-16: testing with udp
|
||||||
|
CLOSED: [2019-07-21 Sun 14:08]
|
||||||
- suspicion: missing some cases in tcp6
|
- suspicion: missing some cases in tcp6
|
||||||
|
|
||||||
#+BEGIN_CENTER
|
#+BEGIN_CENTER
|
||||||
|
@ -5302,8 +5349,10 @@ p4@ubuntu:~/master-thesis/bin$ mx h3 "echo V4-OK | socat - UDP:10.1.1.1:2342"
|
||||||
|
|
||||||
My code is +1 too high
|
My code is +1 too high
|
||||||
|
|
||||||
*** 2019-07-17: continuing on wrap around issue
|
*** DONE 2019-07-17: continuing on wrap around issue
|
||||||
*** 2019-07-17: connect new intel card: cable problem
|
CLOSED: [2019-07-21 Sun 14:08]
|
||||||
|
*** DONE 2019-07-17: connect new intel card: cable problem
|
||||||
|
CLOSED: [2019-07-21 Sun 14:08]
|
||||||
#+BEGIN_CENTER
|
#+BEGIN_CENTER
|
||||||
|
|
||||||
[ 37.557095] ixgbe 0000:02:00.0: failed to initialize because an unsupported SFP+ module type was detected.
|
[ 37.557095] ixgbe 0000:02:00.0: failed to initialize because an unsupported SFP+ module type was detected.
|
||||||
|
@ -5633,7 +5682,8 @@ PCAP files to prove it works:
|
||||||
create mode 100644 pcap/tcp-udp-delta-2019-07-17-1558-h3.pcap
|
create mode 100644 pcap/tcp-udp-delta-2019-07-17-1558-h3.pcap
|
||||||
|
|
||||||
#+END_CENTER
|
#+END_CENTER
|
||||||
*** TODO 2019-07-21: fix "compilation error" on minip4 / netpfga
|
*** DONE 2019-07-21: fix "compilation error" on minip4 / netpfga
|
||||||
|
CLOSED: [2019-07-21 Sun 12:29]
|
||||||
#+BEGIN_CENTER
|
#+BEGIN_CENTER
|
||||||
source tcl/export_hardware.tcl
|
source tcl/export_hardware.tcl
|
||||||
# set design [lindex $argv 0]
|
# set design [lindex $argv 0]
|
||||||
|
@ -5660,7 +5710,8 @@ Vivado%
|
||||||
Vivado%
|
Vivado%
|
||||||
#+END_CENTER
|
#+END_CENTER
|
||||||
*** TODO 2019-07-21: whether or not to handle icmp(6) checksums
|
*** TODO 2019-07-21: whether or not to handle icmp(6) checksums
|
||||||
*** TODO 2019-07-21: implement v6->v4 delta based
|
*** DONE 2019-07-21: implement v6->v4 delta based
|
||||||
|
CLOSED: [2019-07-21 Sun 12:30]
|
||||||
#+BEGIN_CENTER
|
#+BEGIN_CENTER
|
||||||
while true; do mx h3 "echo V4-OK | socat - TCP-LISTEN:2343"; sleep 2;
|
while true; do mx h3 "echo V4-OK | socat - TCP-LISTEN:2343"; sleep 2;
|
||||||
done
|
done
|
||||||
|
@ -5674,7 +5725,7 @@ TCP6:[2001:db8:1::a00:1]:2343"; sleep 2; done
|
||||||
Result: no reply, but translated packets seen on h3; wrong IPv4
|
Result: no reply, but translated packets seen on h3; wrong IPv4
|
||||||
checksum; tcp checksum is ok
|
checksum; tcp checksum is ok
|
||||||
-> doing manual calculation to see where diff comes from
|
-> doing manual calculation to see where diff comes from
|
||||||
*** DONE Shifting / compile errors
|
*** DONE 2019-07-21: Shifting / compile errors
|
||||||
CLOSED: [2019-07-21 Sun 10:55]
|
CLOSED: [2019-07-21 Sun 10:55]
|
||||||
|
|
||||||
v1: wrong parenthesis
|
v1: wrong parenthesis
|
||||||
|
@ -5713,12 +5764,125 @@ p4c --target bmv2 --arch v1model --std p4-16 "../p4src/checksum_diff.p4" -o "/ho
|
||||||
|
|
||||||
#+END_CENTER
|
#+END_CENTER
|
||||||
|
|
||||||
*** Proof of v6->v4 working delta based
|
*** DONE 2019-07-21: Proof of v6->v4 working delta based
|
||||||
|
CLOSED: [2019-07-21 Sun 12:30]
|
||||||
#+BEGIN_CENTER
|
#+BEGIN_CENTER
|
||||||
pcap/tcp-udp-delta-from-v6-2019-07-21-0853-h1.pcap | Bin 0 -> 4252 bytes
|
pcap/tcp-udp-delta-from-v6-2019-07-21-0853-h1.pcap | Bin 0 -> 4252 bytes
|
||||||
pcap/tcp-udp-delta-from-v6-2019-07-21-0853-h3.pcap | Bin 0 -> 2544 bytes
|
pcap/tcp-udp-delta-from-v6-2019-07-21-0853-h3.pcap | Bin 0 -> 2544 bytes
|
||||||
#+END_CENTER
|
#+END_CENTER
|
||||||
|
|
||||||
|
*** TODO 2019-07-21: Porting to netfpga: found relevant EMPTY FILE CHECK / config writes
|
||||||
|
**** DONE try1: Initial log
|
||||||
|
CLOSED: [2019-07-21 Sun 14:03]
|
||||||
|
If
|
||||||
|
./projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/bitfiles/config_writes.sh
|
||||||
|
is empty -> compile will fail
|
||||||
|
|
||||||
|
This files is used by
|
||||||
|
simple_sume_switch/bitfiles/program_switch.sh:${SUME_SDNET}/tools/program_switch.sh
|
||||||
|
minip4.bit config_writes.sh
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4$ grep config_writes.sh -r *
|
||||||
|
|
||||||
|
None of the previous compile runs has touched that file:
|
||||||
|
|
||||||
|
#+BEGIN_CENTER
|
||||||
|
nico@nsg-System:~$ cat ./projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/bitfiles/config_writes.sh
|
||||||
|
nico@nsg-System:~$ ls -alh ./projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/bitfiles
|
||||||
|
/config_writes.sh
|
||||||
|
-rw-rw-r-- 1 nico nico 13 Jun 24 15:40 ./projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/bitfiles/config_writes.sh
|
||||||
|
#+END_CENTER
|
||||||
|
|
||||||
|
|
||||||
|
Traversing back the tree again:
|
||||||
|
|
||||||
|
#+BEGIN_CENTER
|
||||||
|
nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4$ make config_writes
|
||||||
|
echo /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/bin/gen_config_writes.py nf_sume_sdnet_ip/SimpleSumeSwitch/config_writes.txt 0x44020000 testdata
|
||||||
|
/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/bin/gen_config_writes.py nf_sume_sdnet_ip/SimpleSumeSwitch/config_writes.txt 0x44020000 testdata
|
||||||
|
#/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/bin/gen_config_writes.py nf_sume_sdnet_ip/SimpleSumeSwitch/config_writes.txt 0x44020000 testdata
|
||||||
|
nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4$
|
||||||
|
|
||||||
|
#+END_CENTER
|
||||||
|
|
||||||
|
Seems like output is really different from previous installation (?)
|
||||||
|
or previous compiles (?):
|
||||||
|
|
||||||
|
#+BEGIN_CENTER
|
||||||
|
[2260762] INFO: finished packet stimulus file
|
||||||
|
[3728508] INFO: packet 1 tuple OK < tuple_out_digest_data, tuple_out_standard_metadata > = < 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000001010000 >
|
||||||
|
[3728508] INFO: packet 1 data OK (tlast, tkeep, tdata) = (0, ffffffff, 0000000000000000000000000000000000000000081111111108082222222208)
|
||||||
|
[3731840] INFO: packet 1 data OK (tlast, tkeep, tdata) = (1, ffffffff, 0000000000000000000000000000000000000000000000000000000000000000)
|
||||||
|
[7067172] INFO: stopping simulation after 1000 idle cycles
|
||||||
|
[7067172] INFO: all expected data successfully received
|
||||||
|
[7067172] INFO: TEST PASSED
|
||||||
|
|
||||||
|
#+END_CENTER
|
||||||
|
|
||||||
|
vs before:
|
||||||
|
#+BEGIN_CENTER
|
||||||
|
projects/minip4/nf_sume_sdnet_ip/SimpleSumeSwitch/S_BRIDGERs.HDL/xpm_memory.sv
|
||||||
|
[SW] CAM_Init() - start
|
||||||
|
[SW] CAM_Init() - done
|
||||||
|
[SW] CAM_EnableDevice() - start
|
||||||
|
SV_write_control()- start
|
||||||
|
SV_write_control()- done
|
||||||
|
SV_read_control()- start
|
||||||
|
SV_read_control()- done
|
||||||
|
SV_write_control()- start
|
||||||
|
SV_write_control()- done
|
||||||
|
[SW] CAM_EnableDevice() - done
|
||||||
|
[2420698] INFO: finished packet stimulus file
|
||||||
|
[2735572] ERROR: tuple mismatch for packet 1
|
||||||
|
expected < tuple_out_digest_data, tuple_out_sume_metadata > = < 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000001010000 >
|
||||||
|
actual < tuple_out_digest_data, tuple_out_sume_metadata > = < 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000010000 >
|
||||||
|
$finish called at time : 2735572 ps : File "/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/nf_sume_sdnet_ip/SimpleSumeSwitch/Testbench/Check.v" Line 120
|
||||||
|
exit
|
||||||
|
INFO: [Common 17-206] Exiting xsim at Sat May 25 14:38:05 2019...
|
||||||
|
[14:38] rainbow:SimpleSumeSwitch% echo $?
|
||||||
|
0
|
||||||
|
[14:38] rainbow:SimpleSumeSwitch%
|
||||||
|
|
||||||
|
#+END_CENTER
|
||||||
|
|
||||||
|
As suspected, config_writes output is again "too less"
|
||||||
|
|
||||||
|
#+BEGIN_CENTER
|
||||||
|
+ make config_writes
|
||||||
|
/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/bin/gen_config_writes.py nf_sume_sdnet_ip/SimpleSumeSwitch/config_writes.txt 0x44020000 testdata
|
||||||
|
orig dic: OrderedDict([(0, ('00000020', '00000001')), (1, ('00000020', '00000000'))])
|
||||||
|
new dic: OrderedDict()
|
||||||
|
|
||||||
|
#+END_CENTER
|
||||||
|
|
||||||
|
**** DONE try2: finding out how/where/why the config_writes.py matters
|
||||||
|
CLOSED: [2019-07-21 Sun 14:07]
|
||||||
|
***** answer: step8 references the file, but it does not exist
|
||||||
|
|
||||||
|
#+BEGIN_CENTER
|
||||||
|
nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/sim_switch_default$ cd $NF_DESIGN_DIR/test/sim_switch_default && make 2>&1 | tee ~/master-thesis/netpfga/log/step8-$(date +%F-%H%M%S)
|
||||||
|
rm -f config_writes.py*
|
||||||
|
rm -f *.pyc
|
||||||
|
cp /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata/config_writes.py ./
|
||||||
|
cp: cannot stat '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/testdata/config_writes.py': No such file or directory
|
||||||
|
Makefile:36: recipe for target 'all' failed
|
||||||
|
make: *** [all] Error 1
|
||||||
|
nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/test/sim_switch_default$
|
||||||
|
nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4$ ls ~/master-thesis/netpfga/log/
|
||||||
|
compile-20190713-1906-failure compile-20190713-2208-failure step4-2019-07-21-120937 step4-2019-07-21-122139 step5-2019-07-21-134905 step8-2019-07-21-140436
|
||||||
|
compile-20190713-1935-failure compile-2019-07-21-122852 step4-2019-07-21-121529 step4-2019-07-21-122730 step6-2019-07-21-135059 step8-2019-07-21-140549
|
||||||
|
nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4$
|
||||||
|
|
||||||
|
#+END_CENTER
|
||||||
|
**** TODO try3: find out again, what generates config_writes.py
|
||||||
|
*** TODO Further notes P4/master thesis
|
||||||
|
- Cannot easily run P4 on notebook - changes to the system very
|
||||||
|
invasive
|
||||||
|
- Varous compiler bugs/limitations
|
||||||
|
- Very very deep rabbithole problems
|
||||||
|
- Hanging/sleeping issue -- unclear whether it does something or not
|
||||||
|
|
||||||
** The NetPFGA saga
|
** The NetPFGA saga
|
||||||
Problems encountered:
|
Problems encountered:
|
||||||
|
|
Loading…
Reference in a new issue