From 30dcc0af812b4431111509559353b79e237f1d6e Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Sun, 31 Mar 2019 16:40:44 +0200 Subject: [PATCH] Try to outsmart the compiler with the arp table Adressing 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 { ^^^^^^^^^^^ Compilation Error --- doc/plan.org | 10 +++++++++- p4src/static-mapping.p4 | 3 +-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/doc/plan.org b/doc/plan.org index 419548b..f96c598 100644 --- a/doc/plan.org +++ b/doc/plan.org @@ -640,7 +640,7 @@ From 10.0.0.1 icmp_seq=1 Destination Host Unreachable root@ubuntu:~# ***** DONE try7: checkout dump from ping4_gw-2019-03-31-0916-h3.pcap: regular arp -***** TODO Get a real world arp trace +***** DONE Get a real world arp trace root@line:/home/nico/vcs/master-thesis/pcap# tcpdump -ni wlan0 -w ping4_realworld_p7 icmp or arp or host 192.168.4.1 tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes root@line:~# arp -an @@ -655,6 +655,14 @@ rtt min/avg/max/mdev = 15.533/15.533/15.533/0.000 ms root@line:~# ***** TODO Implement default route handling, maybe implement ARP? +****** DONE create arp table +****** TODO Multiple tables not supported +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 { + ^^^^^^^^^^^ +Compilation Error + ****** Entry in v4_networks? **** DONE Add table name support in debug messages **** DONE Why getting IPv6 packets in diff --git a/p4src/static-mapping.p4 b/p4src/static-mapping.p4 index d52c651..9be75e8 100644 --- a/p4src/static-mapping.p4 +++ b/p4src/static-mapping.p4 @@ -431,8 +431,7 @@ Echo or Echo Reply Message exit; } v4_networks.apply(); /* regular routing, egress */ - } - if(hdr.arp.isValid()) { + } else if(hdr.arp.isValid()) { v4_arp.apply(); } }