From ee0d500355c83e9fbac60d773c2b3ee14f2ccc3e Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Wed, 24 Jul 2019 13:08:02 +0200 Subject: [PATCH] [netpfga] phase in first applied tables/nat64 code --- doc/plan.org | 18 +++++++++++++----- p4src/minip4_solution.p4 | 22 ++++++++++++++++++++++ 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/doc/plan.org b/doc/plan.org index 6eaa132..9555d9d 100644 --- a/doc/plan.org +++ b/doc/plan.org @@ -3331,8 +3331,9 @@ https://en.wikipedia.org/wiki/IPv4_header_checksum ** Compile log | 5.1. - 5.5 | failure due to variable renaming | | 5.6 | subparser: compiled! | -| 5.7 | subcontrol: | -| 5.8 | nat64 actions/table: | +| 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 @@ -6104,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] @@ -6217,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] @@ -6433,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 diff --git a/p4src/minip4_solution.p4 b/p4src/minip4_solution.p4 index 787874d..871fab2 100644 --- a/p4src/minip4_solution.p4 +++ b/p4src/minip4_solution.p4 @@ -74,6 +74,7 @@ control RealMain( inout sume_metadata_t sume_metadata) { #include "actions_nat64_generic.p4" + #include "actions_egress.p4" action swap_eth_addresses() { mac_addr_t temp = hdr.ethernet.dst_addr; @@ -120,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(); } }