From 306d52176fb056c66148f8269292d581213d3335 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Wed, 24 Jul 2019 13:20:35 +0200 Subject: [PATCH] Set table size to 2^n -1 for everything Motivated by v6.1 error: make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src' p4c-sdnet -o minip4.sdnet --sdnet_info .sdnet_switch_info.dat minip4_solution.p4 actions_egress.p4(52): warning: Table v6_networks is not used; removing table v6_networks { ^^^^^^^^^^^ actions_egress.p4(69): warning: Table v4_networks is not used; removing table v4_networks { ^^^^^^^^^^^ actions_nat64_generic.p4(174): warning: Table nat46 is not used; removing table nat46 { ^^^^^ minip4_solution.p4(38): [--Wwarn=uninitialized_out_param] warning: out parameter meta may be uninitialized when RealParser terminates out metadata meta, ^^^^ minip4_solution.p4(35) parser RealParser( ^^^^^^^^^^ error: LPM table size should be 2^n - 1 actions_nat64_generic.p4(169): error: could not not map table size size size = 64; ^^^^ error: table match_types are not the same actions_arp.p4(35): error: could not map table key(s) KeyElement hdr.arp.dst_ipv4_addr: lpm; ^^^^^^^^^^^^^^^^^^^^^ error: LPM table size should be 2^n - 1 actions_arp.p4(55): error: could not not map table size size size = 64; ^^^^ Makefile:34: recipe for target 'all' failed make[1]: *** [all] Error 1 make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src' Makefile:31: recipe for target 'frontend' failed make: *** [frontend] Error 2 nico@nsg-System:~/master-thesis/netpfga/log$ --- doc/plan.org | 31 ++++++++++++++++++++++++++++++- p4src/settings.p4 | 17 ++++++++++------- 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/doc/plan.org b/doc/plan.org index 9555d9d..ce232fa 100644 --- a/doc/plan.org +++ b/doc/plan.org @@ -6437,10 +6437,39 @@ 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 2019-07-24: setup VM in DCL as third compiler [INSTALL MANUAL] **** TODO install mate for getting xlibraries **** Install sdnet +*** TODO 2019-07-24: add features to netpfga: LPM tables cannot be 64 +#+BEGIN_CENTER +minip4_solution.p4(38): [--Wwarn=uninitialized_out_param] warning: out parameter meta may be uninitialized when RealParser terminates + out metadata meta, + ^^^^ +minip4_solution.p4(35) +parser RealParser( + ^^^^^^^^^^ +error: LPM table size should be 2^n - 1 +actions_nat64_generic.p4(169): error: could not not map table size size + size = 64; + ^^^^ +error: table match_types are not the same +actions_arp.p4(35): error: could not map table key(s) KeyElement + hdr.arp.dst_ipv4_addr: lpm; + ^^^^^^^^^^^^^^^^^^^^^ +error: LPM table size should be 2^n - 1 +actions_arp.p4(55): error: could not not map table size size + size = 64; + ^^^^ +Makefile:34: recipe for target 'all' failed +make[1]: *** [all] Error 1 +make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src' +Makefile:31: recipe for target 'frontend' failed +make: *** [frontend] Error 2 +nico@nsg-System:~/master-thesis/netpfga/log$ + +#+END_CENTER + ** The NetPFGA saga Problems encountered: - The logfile for a compile run is 10k+ lines diff --git a/p4src/settings.p4 b/p4src/settings.p4 index e2014b1..228b206 100644 --- a/p4src/settings.p4 +++ b/p4src/settings.p4 @@ -4,12 +4,15 @@ #define SETTINGS_P4 #define THE_ANSWER_TO_LIFE_THE_UNIVERSE_AND_EVERYTHING 42 /* Important constant */ -#define ROUTING_TABLE_SIZE 64 /* maximum routes per protocol */ -#define ADDRESS_TABLE_SIZE 64 /* maximum number of addresses per protocol */ -#define NDP_TABLE_SIZE 64 /* maximum number of multicast groups */ -#define ICMP6_TABLE_SIZE 64 /* icmp6 handlers */ -#define ICMP_TABLE_SIZE 64 /* icmp6 handlers */ -#define NAT64_TABLE_SIZE 64 /* nat64 and nat46 entries */ -#define TEST_TABLE_SIZE 64 /* nat64 and nat46 entries */ + +#define SIZE_FOR_EVERYTHING 63 + +#define ROUTING_TABLE_SIZE SIZE_FOR_EVERYTHING /* maximum routes per protocol */ +#define ADDRESS_TABLE_SIZE SIZE_FOR_EVERYTHING /* maximum number of addresses per protocol */ +#define NDP_TABLE_SIZE SIZE_FOR_EVERYTHING /* maximum number of multicast groups */ +#define ICMP6_TABLE_SIZE SIZE_FOR_EVERYTHING /* icmp6 handlers */ +#define ICMP_TABLE_SIZE SIZE_FOR_EVERYTHING /* icmp6 handlers */ +#define NATSIZE_FOR_EVERYTHING_TABLE_SIZE SIZE_FOR_EVERYTHING /* natSIZE_FOR_EVERYTHING and nat46 entries */ +#define TEST_TABLE_SIZE SIZE_FOR_EVERYTHING /* natSIZE_FOR_EVERYTHING and nat46 entries */ #endif