update gen_testdata
- add more packets - fix counter for one packet
This commit is contained in:
parent
71c842576a
commit
86885760b2
5 changed files with 114 additions and 9 deletions
105
doc/plan.org
105
doc/plan.org
|
@ -424,12 +424,15 @@
|
||||||
| 2019-07-11 | | |
|
| 2019-07-11 | | |
|
||||||
| | Meeting Laurent | |
|
| | Meeting Laurent | |
|
||||||
| | | |
|
| | | |
|
||||||
| | - Delta diff in P4 from v4 -> v6: checksum working | |
|
| | - Delta diff in P4 from v4 -> v6: checksum working, off by one error | |
|
||||||
|
| | -> assume overflow | |
|
||||||
|
| | -> very likely | |
|
||||||
|
| | | |
|
||||||
| | - Investigating why NDP doesn't work | |
|
| | - Investigating why NDP doesn't work | |
|
||||||
| | | |
|
| | | |
|
||||||
| | - compile to netpfga: silent errors | |
|
| | - compile to netpfga: silent errors | |
|
||||||
| | - netpfga: icmp6/ndp might not work | |
|
| | - netpfga: icmp6/ndp might not work => shifting back to controller | |
|
||||||
| | | |
|
| | - network card | |
|
||||||
| | | |
|
| | | |
|
||||||
| | Integrated org-documentation into latex / export working | |
|
| | Integrated org-documentation into latex / export working | |
|
||||||
| | https://bastibe.de/2014-09-23-org-cite.html | |
|
| | https://bastibe.de/2014-09-23-org-cite.html | |
|
||||||
|
@ -4998,7 +5001,6 @@ Using
|
||||||
--> gateway not reachable! -> need to verify neighbor discovery
|
--> gateway not reachable! -> need to verify neighbor discovery
|
||||||
|
|
||||||
*** 2019-07-11: again silent errors
|
*** 2019-07-11: again silent errors
|
||||||
|
|
||||||
End of log file
|
End of log file
|
||||||
|
|
||||||
#+BEGIN_CENTER
|
#+BEGIN_CENTER
|
||||||
|
@ -5057,6 +5059,101 @@ nico@nsg-System:~/master-thesis/netpfga$ date
|
||||||
Don Jul 11 10:54:22 CEST 2019
|
Don Jul 11 10:54:22 CEST 2019
|
||||||
|
|
||||||
#+END_CENTER
|
#+END_CENTER
|
||||||
|
|
||||||
|
*** 2019-07-11: repair icmp6 in bmv2
|
||||||
|
- correctly re-imported checksumming
|
||||||
|
*** 2019-07-13: get small netpfga working again
|
||||||
|
**** current error
|
||||||
|
|
||||||
|
#+BEGIN_CENTER
|
||||||
|
cp /home/nico/projects/P4-NetFPGA/tools/scripts/format_coe.py . && python format_coe.py && rm -f format_coe.py
|
||||||
|
16
|
||||||
|
|
||||||
|
mv -f id_rom16x32.coe ../hw/create_ip/
|
||||||
|
mv -f rom_data.txt ../hw/create_ip/
|
||||||
|
if test -d project; then\
|
||||||
|
echo "export simple_sume_switch project to SDK"; \
|
||||||
|
vivado -mode tcl -source tcl/export_hardware.tcl -tclargs simple_sume_switch;\
|
||||||
|
else \
|
||||||
|
echo "Project simple_sume_switch does not exist.";\
|
||||||
|
echo "Please run \"make project\" to create and build the project first";\
|
||||||
|
fi;\
|
||||||
|
|
||||||
|
export simple_sume_switch project to SDK
|
||||||
|
|
||||||
|
****** Vivado v2018.2 (64-bit)
|
||||||
|
**** SW Build 2258646 on Thu Jun 14 20:02:38 MDT 2018
|
||||||
|
**** IP Build 2256618 on Thu Jun 14 22:10:49 MDT 2018
|
||||||
|
** Copyright 1986-2018 Xilinx, Inc. All Rights Reserved.
|
||||||
|
|
||||||
|
source tcl/export_hardware.tcl
|
||||||
|
# set design [lindex $argv 0]
|
||||||
|
# puts "\nOpening $design XPR project\n"
|
||||||
|
|
||||||
|
Opening simple_sume_switch XPR project
|
||||||
|
|
||||||
|
# open_project project/$design.xpr
|
||||||
|
Scanning sources...
|
||||||
|
Finished scanning sources
|
||||||
|
INFO: [IP_Flow 19-234] Refreshing IP repositories
|
||||||
|
INFO: [IP_Flow 19-1700] Loaded user IP repository '/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/ip_repo'.
|
||||||
|
INFO: [IP_Flow 19-2313] Loaded Vivado IP repository '/opt/Xilinx/Vivado/2018.2/data/ip'.
|
||||||
|
WARNING: [IP_Flow 19-3664] IP 'bd_7ad4_xpcs_0' generated file not found '/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/.Xil/Vivado-24530-nsg-System/coregen/bd_7ad4_xpcs_0_1/elaborate/configure_gt.tcl'. Please regenerate to continue.
|
||||||
|
WARNING: [IP_Flow 19-3664] IP 'bd_a1aa_xpcs_0' generated file not found '/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw/.Xil/Vivado-24530-nsg-System/coregen/bd_a1aa_xpcs_0_2/elaborate/configure_gt.tcl'. Please regenerate to continue.
|
||||||
|
open_project: Time (s): cpu = 00:00:05 ; elapsed = 00:00:06 . Memory (MB): peak = 1364.332 ; gain = 187.594 ; free physical = 10415 ; free virtual = 15693
|
||||||
|
# puts "\nOpening $design Implementation design\n"
|
||||||
|
|
||||||
|
Opening simple_sume_switch Implementation design
|
||||||
|
|
||||||
|
# open_run impl_1
|
||||||
|
ERROR: [Common 17-69] Command failed: Run 'impl_1' has not been launched. Unable to open
|
||||||
|
Vivado%
|
||||||
|
Vivado%
|
||||||
|
Vivado% quit
|
||||||
|
|
||||||
|
#+END_CENTER
|
||||||
|
**** might be missing <project>.runs/synth_1 (impl_1 respectively)
|
||||||
|
**** TODO Grep'ing for errors gives one unexpected EOF, but continues
|
||||||
|
#+BEGIN_CENTER
|
||||||
|
nico@nsg-System:~/master-thesis/netpfga$ grep -i error MAINLOG
|
||||||
|
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
|
||||||
|
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]
|
||||||
|
INFO: [VRFC 10-311] analyzing module TopDeparser_t_EngineStage_0_ErrorCheck
|
||||||
|
INFO: [VRFC 10-311] analyzing module TopDeparser_t_EngineStage_1_ErrorCheck
|
||||||
|
INFO: [VRFC 10-311] analyzing module TopDeparser_t_EngineStage_2_ErrorCheck
|
||||||
|
INFO: [VRFC 10-311] analyzing module TopDeparser_t_EngineStage_3_ErrorCheck
|
||||||
|
INFO: [VRFC 10-311] analyzing module TopDeparser_t_EngineStage_4_ErrorCheck
|
||||||
|
INFO: [VRFC 10-311] analyzing module TopDeparser_t_EngineStage_5_ErrorCheck
|
||||||
|
INFO: [VRFC 10-311] analyzing module TopDeparser_t_EngineStage_6_ErrorCheck
|
||||||
|
INFO: [VRFC 10-311] analyzing module TopDeparser_t_EngineStage_7_ErrorCheck
|
||||||
|
INFO: [VRFC 10-311] analyzing module TopDeparser_t_EngineStage_8_ErrorCheck
|
||||||
|
INFO: [VRFC 10-311] analyzing module TopDeparser_t_EngineStage_9_ErrorCheck
|
||||||
|
INFO: [VRFC 10-311] analyzing module TopDeparser_t_EngineStage_10_ErrorCheck
|
||||||
|
INFO: [VRFC 10-311] analyzing module TopDeparser_t_EngineStage_11_ErrorCheck
|
||||||
|
INFO: [VRFC 10-311] analyzing module TopDeparser_t_EngineStage_12_ErrorCheck
|
||||||
|
INFO: [VRFC 10-311] analyzing module TopParser_t_EngineStage_0_ErrorCheck
|
||||||
|
INFO: [VRFC 10-311] analyzing module TopParser_t_EngineStage_1_ErrorCheck
|
||||||
|
INFO: [VRFC 10-311] analyzing module TopParser_t_EngineStage_2_ErrorCheck
|
||||||
|
INFO: [VRFC 10-311] analyzing module TopParser_t_EngineStage_3_ErrorCheck
|
||||||
|
INFO: [VRFC 10-311] analyzing module TopParser_t_EngineStage_4_ErrorCheck
|
||||||
|
Compiling module work.TopParser_t_EngineStage_0_ErrorC...
|
||||||
|
Compiling module work.TopParser_t_EngineStage_1_ErrorC...
|
||||||
|
Compiling module work.TopParser_t_EngineStage_2_ErrorC...
|
||||||
|
Compiling module work.TopParser_t_EngineStage_3_ErrorC...
|
||||||
|
Compiling module work.TopParser_t_EngineStage_4_ErrorC...
|
||||||
|
|
||||||
|
#+END_CENTER
|
||||||
|
**** TODO gen_testdata only shows one packet -> no receiving?
|
||||||
|
#+BEGIN_CENTER
|
||||||
|
./gen_testdata.py
|
||||||
|
nf0_applied times: [1]
|
||||||
|
nf1_applied times: []
|
||||||
|
nf2_applied times: []
|
||||||
|
nf3_applied times: []
|
||||||
|
|
||||||
|
#+END_CENTER
|
||||||
|
**** go through all steps again and try to understand why it (silently) fails later
|
||||||
|
*** 2019-07-13: fix overflow error
|
||||||
** References / Follow up
|
** References / Follow up
|
||||||
*** RFC 791 IPv4 https://tools.ietf.org/html/rfc791
|
*** RFC 791 IPv4 https://tools.ietf.org/html/rfc791
|
||||||
*** RFC 792 ICMP https://tools.ietf.org/html/rfc792
|
*** RFC 792 ICMP https://tools.ietf.org/html/rfc792
|
||||||
|
|
|
@ -6,9 +6,6 @@ set -x
|
||||||
echo "First source all variables and THEN run this script"
|
echo "First source all variables and THEN run this script"
|
||||||
read something
|
read something
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Step 1..3: create code
|
# Step 1..3: create code
|
||||||
# Step 4
|
# Step 4
|
||||||
cd $P4_PROJECT_DIR && make
|
cd $P4_PROJECT_DIR && make
|
||||||
|
|
|
@ -101,6 +101,7 @@ lookup_table = {
|
||||||
}
|
}
|
||||||
|
|
||||||
def test_port1():
|
def test_port1():
|
||||||
|
""" packets for a certain mac always go to nf0 """
|
||||||
pktCnt = 0
|
pktCnt = 0
|
||||||
|
|
||||||
# First ethernet
|
# First ethernet
|
||||||
|
@ -108,6 +109,14 @@ def test_port1():
|
||||||
pkt = Ether(dst=MAC2, src=MAC1)
|
pkt = Ether(dst=MAC2, src=MAC1)
|
||||||
pkt = pad_pkt(pkt, 64)
|
pkt = pad_pkt(pkt, 64)
|
||||||
applyPkt(pkt, 'nf0', pktCnt)
|
applyPkt(pkt, 'nf0', pktCnt)
|
||||||
|
|
||||||
|
pktCnt += 1
|
||||||
|
expPkt(pkt, 'nf0')
|
||||||
|
|
||||||
|
pktCnt += 1
|
||||||
|
applyPkt(pkt, 'nf1', pktCnt)
|
||||||
|
|
||||||
|
pktCnt += 1
|
||||||
expPkt(pkt, 'nf0')
|
expPkt(pkt, 'nf0')
|
||||||
|
|
||||||
# Test that packets are being mirrored
|
# Test that packets are being mirrored
|
||||||
|
|
|
@ -65,6 +65,7 @@ class CpuHeader(Packet):
|
||||||
name = 'CpuPacket'
|
name = 'CpuPacket'
|
||||||
fields_desc = [
|
fields_desc = [
|
||||||
ShortEnumField('task', 1, cpu_fields ),
|
ShortEnumField('task', 1, cpu_fields ),
|
||||||
|
|
||||||
ShortField('ingress_port', 0),
|
ShortField('ingress_port', 0),
|
||||||
XShortEnumField("type", 0x9000, ETHER_TYPES),
|
XShortEnumField("type", 0x9000, ETHER_TYPES),
|
||||||
ShortEnumField('table_id', 1, table_id_fields )
|
ShortEnumField('table_id', 1, table_id_fields )
|
||||||
|
|
|
@ -57,9 +57,10 @@ action delta_ipv4_from_v6_to_v4()
|
||||||
{
|
{
|
||||||
v4sum();
|
v4sum();
|
||||||
v6sum();
|
v6sum();
|
||||||
bit<16> diff = meta.v6sum - meta.v4sum;
|
bit<16> diff = meta.v4sum - meta.v6sum ;
|
||||||
hdr.tcp.checksum = hdr.tcp.checksum + ~diff +1;
|
hdr.tcp.checksum = hdr.tcp.checksum + ~diff +1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
Loading…
Reference in a new issue