[AETHER-1032] Backport AETHER-538 to fabric.p4

AETHER-538 introduces a new design for the egress pipeline
where the tagged ports are explicitily matched in the
egress_vlan table. Moreover, no match means dropped with
this new design.

Change-Id: I4b7ac342d0650b8726f224e240933e15d9bb6e25
diff --git a/src/main/resources/p4c-out/fabric-spgw-int/tofino/montara_sde_9_0_0/p4info.txt b/src/main/resources/p4c-out/fabric-spgw-int/tofino/montara_sde_9_0_0/p4info.txt
index ac74287..1ba6edc 100644
--- a/src/main/resources/p4c-out/fabric-spgw-int/tofino/montara_sde_9_0_0/p4info.txt
+++ b/src/main/resources/p4c-out/fabric-spgw-int/tofino/montara_sde_9_0_0/p4info.txt
@@ -3,179 +3,6 @@
 }
 tables {
   preamble {
-    id: 33586632
-    name: "FabricIngress.spgw_ingress.downlink_filter_table"
-    alias: "downlink_filter_table"
-  }
-  match_fields {
-    id: 1
-    name: "ipv4_prefix"
-    bitwidth: 32
-    match_type: LPM
-  }
-  action_refs {
-    id: 16819938
-  }
-  const_default_action_id: 16819938
-  size: 1024
-}
-tables {
-  preamble {
-    id: 33567046
-    name: "FabricIngress.spgw_ingress.uplink_filter_table"
-    alias: "uplink_filter_table"
-  }
-  match_fields {
-    id: 1
-    name: "gtp_ipv4_dst"
-    bitwidth: 32
-    match_type: EXACT
-  }
-  action_refs {
-    id: 16819938
-  }
-  const_default_action_id: 16819938
-  size: 1024
-}
-tables {
-  preamble {
-    id: 33586958
-    name: "FabricIngress.spgw_ingress.downlink_pdr_lookup"
-    alias: "downlink_pdr_lookup"
-  }
-  match_fields {
-    id: 1
-    name: "ue_addr"
-    bitwidth: 32
-    match_type: EXACT
-  }
-  action_refs {
-    id: 16799934
-  }
-  action_refs {
-    id: 16800567
-    annotations: "@defaultonly"
-    scope: DEFAULT_ONLY
-  }
-  size: 1024
-}
-tables {
-  preamble {
-    id: 33587070
-    name: "FabricIngress.spgw_ingress.uplink_pdr_lookup"
-    alias: "uplink_pdr_lookup"
-  }
-  match_fields {
-    id: 1
-    name: "tunnel_ipv4_dst"
-    bitwidth: 32
-    match_type: EXACT
-  }
-  match_fields {
-    id: 2
-    name: "teid"
-    bitwidth: 32
-    match_type: EXACT
-  }
-  match_fields {
-    id: 3
-    name: "ue_addr"
-    bitwidth: 32
-    match_type: EXACT
-  }
-  action_refs {
-    id: 16799934
-  }
-  action_refs {
-    id: 16800567
-    annotations: "@defaultonly"
-    scope: DEFAULT_ONLY
-  }
-  size: 1024
-}
-tables {
-  preamble {
-    id: 33582573
-    name: "FabricIngress.spgw_ingress.flexible_pdr_lookup"
-    alias: "flexible_pdr_lookup"
-  }
-  match_fields {
-    id: 1
-    name: "spgw_direction"
-    bitwidth: 2
-    match_type: TERNARY
-  }
-  match_fields {
-    id: 2
-    name: "tunnel_ipv4_dst"
-    bitwidth: 32
-    match_type: TERNARY
-  }
-  match_fields {
-    id: 3
-    name: "teid"
-    bitwidth: 32
-    match_type: TERNARY
-  }
-  match_fields {
-    id: 4
-    name: "ipv4_src"
-    bitwidth: 32
-    match_type: TERNARY
-  }
-  match_fields {
-    id: 5
-    name: "ipv4_dst"
-    bitwidth: 32
-    match_type: TERNARY
-  }
-  match_fields {
-    id: 6
-    name: "ip_proto"
-    bitwidth: 8
-    match_type: TERNARY
-  }
-  match_fields {
-    id: 7
-    name: "l4_sport"
-    bitwidth: 16
-    match_type: TERNARY
-  }
-  match_fields {
-    id: 8
-    name: "l4_dport"
-    bitwidth: 16
-    match_type: TERNARY
-  }
-  action_refs {
-    id: 16799934
-  }
-  const_default_action_id: 16799934
-  size: 1024
-}
-tables {
-  preamble {
-    id: 33613200
-    name: "FabricIngress.spgw_ingress.far_lookup"
-    alias: "far_lookup"
-  }
-  match_fields {
-    id: 1
-    name: "far_id"
-    bitwidth: 32
-    match_type: EXACT
-  }
-  action_refs {
-    id: 16834935
-  }
-  action_refs {
-    id: 16787606
-  }
-  const_default_action_id: 16834935
-  size: 1024
-}
-tables {
-  preamble {
     id: 33581620
     name: "FabricIngress.process_set_source_sink.tb_set_source"
     alias: "tb_set_source"
@@ -563,6 +390,109 @@
 }
 tables {
   preamble {
+    id: 33557250
+    name: "FabricIngress.spgw.interfaces"
+    alias: "interfaces"
+  }
+  match_fields {
+    id: 1
+    name: "ipv4_dst_addr"
+    bitwidth: 32
+    match_type: LPM
+  }
+  match_fields {
+    id: 2
+    name: "gtpu_is_valid"
+    bitwidth: 1
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16810012
+  }
+  action_refs {
+    id: 16783042
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  const_default_action_id: 16783042
+  size: 128
+}
+tables {
+  preamble {
+    id: 33566601
+    name: "FabricIngress.spgw.downlink_pdrs"
+    alias: "downlink_pdrs"
+  }
+  match_fields {
+    id: 1
+    name: "ue_addr"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16800614
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33606410
+    name: "FabricIngress.spgw.uplink_pdrs"
+    alias: "uplink_pdrs"
+  }
+  match_fields {
+    id: 1
+    name: "tunnel_ipv4_dst"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "teid"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16800614
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  size: 1024
+}
+tables {
+  preamble {
+    id: 33599560
+    name: "FabricIngress.spgw.fars"
+    alias: "fars"
+  }
+  match_fields {
+    id: 1
+    name: "far_id"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16820307
+  }
+  action_refs {
+    id: 16814785
+  }
+  action_refs {
+    id: 16814681
+  }
+  const_default_action_id: 16820307
+  size: 2048
+}
+tables {
+  preamble {
     id: 33612258
     name: "FabricEgress.process_int_main.process_int_source.tb_int_source"
     alias: "tb_int_source"
@@ -645,14 +575,17 @@
     match_type: EXACT
   }
   action_refs {
+    id: 16807339
+  }
+  action_refs {
     id: 16790030
   }
   action_refs {
-    id: 16819938
+    id: 16787838
     annotations: "@defaultonly"
     scope: DEFAULT_ONLY
   }
-  const_default_action_id: 16819938
+  const_default_action_id: 16787838
   direct_resource_ids: 318827144
   size: 2048
 }
@@ -672,72 +605,6 @@
 }
 actions {
   preamble {
-    id: 16799934
-    name: "FabricIngress.spgw_ingress.set_pdr_attributes"
-    alias: "set_pdr_attributes"
-  }
-  params {
-    id: 1
-    name: "ctr_id"
-    bitwidth: 32
-  }
-  params {
-    id: 2
-    name: "far_id"
-    bitwidth: 32
-  }
-}
-actions {
-  preamble {
-    id: 16834935
-    name: "FabricIngress.spgw_ingress.load_normal_far_attributes"
-    alias: "load_normal_far_attributes"
-  }
-  params {
-    id: 1
-    name: "drop"
-    bitwidth: 1
-  }
-  params {
-    id: 2
-    name: "notify_cp"
-    bitwidth: 1
-  }
-}
-actions {
-  preamble {
-    id: 16787606
-    name: "FabricIngress.spgw_ingress.load_tunnel_far_attributes"
-    alias: "load_tunnel_far_attributes"
-  }
-  params {
-    id: 1
-    name: "drop"
-    bitwidth: 1
-  }
-  params {
-    id: 2
-    name: "notify_cp"
-    bitwidth: 1
-  }
-  params {
-    id: 3
-    name: "tunnel_src_addr"
-    bitwidth: 32
-  }
-  params {
-    id: 4
-    name: "tunnel_dst_addr"
-    bitwidth: 32
-  }
-  params {
-    id: 5
-    name: "teid"
-    bitwidth: 32
-  }
-}
-actions {
-  preamble {
     id: 16778827
     name: "FabricIngress.process_set_source_sink.int_set_source"
     alias: "int_set_source"
@@ -859,7 +726,7 @@
   preamble {
     id: 16820765
     name: "FabricIngress.acl.drop"
-    alias: "drop"
+    alias: "acl.drop"
   }
 }
 actions {
@@ -980,6 +847,138 @@
 }
 actions {
   preamble {
+    id: 16810012
+    name: "FabricIngress.spgw.load_iface"
+    alias: "load_iface"
+  }
+  params {
+    id: 1
+    name: "src_iface"
+    bitwidth: 8
+  }
+}
+actions {
+  preamble {
+    id: 16783042
+    name: "FabricIngress.spgw.iface_miss"
+    alias: "iface_miss"
+  }
+}
+actions {
+  preamble {
+    id: 16800614
+    name: "FabricIngress.spgw.load_pdr"
+    alias: "load_pdr"
+  }
+  params {
+    id: 1
+    name: "ctr_id"
+    bitwidth: 32
+  }
+  params {
+    id: 2
+    name: "far_id"
+    bitwidth: 32
+  }
+  params {
+    id: 3
+    name: "needs_gtpu_decap"
+    bitwidth: 1
+  }
+}
+actions {
+  preamble {
+    id: 16820307
+    name: "FabricIngress.spgw.load_normal_far"
+    alias: "load_normal_far"
+  }
+  params {
+    id: 1
+    name: "drop"
+    bitwidth: 1
+  }
+  params {
+    id: 2
+    name: "notify_cp"
+    bitwidth: 1
+  }
+}
+actions {
+  preamble {
+    id: 16814785
+    name: "FabricIngress.spgw.load_tunnel_far"
+    alias: "load_tunnel_far"
+  }
+  params {
+    id: 1
+    name: "drop"
+    bitwidth: 1
+  }
+  params {
+    id: 2
+    name: "notify_cp"
+    bitwidth: 1
+  }
+  params {
+    id: 3
+    name: "tunnel_src_port"
+    bitwidth: 16
+  }
+  params {
+    id: 4
+    name: "tunnel_src_addr"
+    bitwidth: 32
+  }
+  params {
+    id: 5
+    name: "tunnel_dst_addr"
+    bitwidth: 32
+  }
+  params {
+    id: 6
+    name: "teid"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
+    id: 16814681
+    name: "FabricIngress.spgw.load_dbuf_far"
+    alias: "load_dbuf_far"
+  }
+  params {
+    id: 1
+    name: "drop"
+    bitwidth: 1
+  }
+  params {
+    id: 2
+    name: "notify_cp"
+    bitwidth: 1
+  }
+  params {
+    id: 3
+    name: "tunnel_src_port"
+    bitwidth: 16
+  }
+  params {
+    id: 4
+    name: "tunnel_src_addr"
+    bitwidth: 32
+  }
+  params {
+    id: 5
+    name: "tunnel_dst_addr"
+    bitwidth: 32
+  }
+  params {
+    id: 6
+    name: "teid"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
     id: 16785857
     name: "FabricEgress.process_int_main.process_int_source.int_source_dscp"
     alias: "int_source_dscp"
@@ -1019,11 +1018,25 @@
 }
 actions {
   preamble {
+    id: 16807339
+    name: "FabricEgress.egress_next.push_vlan"
+    alias: "push_vlan"
+  }
+}
+actions {
+  preamble {
     id: 16790030
     name: "FabricEgress.egress_next.pop_vlan"
     alias: "pop_vlan"
   }
 }
+actions {
+  preamble {
+    id: 16787838
+    name: "FabricEgress.egress_next.drop"
+    alias: "egress_next.drop"
+  }
+}
 action_profiles {
   preamble {
     id: 285217164
@@ -1037,25 +1050,25 @@
 }
 counters {
   preamble {
-    id: 302029884
-    name: "FabricIngress.spgw_ingress.pdr_counter"
-    alias: "spgw_ingress.pdr_counter"
+    id: 302043952
+    name: "FabricIngress.spgw.pdr_counter"
+    alias: "FabricIngress.spgw.pdr_counter"
   }
   spec {
     unit: BOTH
   }
-  size: 1024
+  size: 2048
 }
 counters {
   preamble {
-    id: 302012289
-    name: "FabricEgress.spgw_egress.pdr_counter"
-    alias: "spgw_egress.pdr_counter"
+    id: 302049491
+    name: "FabricEgress.spgw.pdr_counter"
+    alias: "FabricEgress.spgw.pdr_counter"
   }
   spec {
     unit: BOTH
   }
-  size: 1024
+  size: 2048
 }
 direct_counters {
   preamble {