diff --git a/pipelines/fabric/impl/src/main/resources/include/control/spgw.p4 b/pipelines/fabric/impl/src/main/resources/include/control/spgw.p4
index a27f9a0..2ec4776 100644
--- a/pipelines/fabric/impl/src/main/resources/include/control/spgw.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/control/spgw.p4
@@ -90,7 +90,6 @@
             (false, true,  false) : decap_inner_udp();
             (false, false, true)  : decap_inner_icmp();
         }
-        size = 4;
     }
     apply {
         decap_gtpu.apply();
@@ -105,7 +104,7 @@
     //=============================//
     //===== Misc Things ======//
     //=============================//
-    
+
     counter(MAX_PDR_COUNTERS, CounterType.packets_and_bytes) pdr_counter;
 
     DecapGtpu() decap_gtpu_from_dbuf;
@@ -158,7 +157,7 @@
                         bit<1>       needs_gtpu_decap,
                         qid_t        qid) {
         load_pdr(ctr_id, far_id, needs_gtpu_decap);
-        // we cannot set the qid, since bmv2 does not support it   
+        // we cannot set the qid, since bmv2 does not support it
     }
 
     // These two tables scale well and cover the average case PDR
@@ -267,7 +266,7 @@
             }
 
             // GTPU Decapsulate
-            if (fabric_md.spgw.needs_gtpu_decap == _TRUE) { 
+            if (fabric_md.spgw.needs_gtpu_decap == _TRUE) {
                 decap_gtpu.apply(hdr, fabric_md);
             }
 
@@ -315,7 +314,7 @@
         hdr.gtpu_ipv4.hdr_checksum = 0; // Updated later
 
         hdr.gtpu_udp.setValid();
-        hdr.gtpu_udp.sport = fabric_md.spgw.tunnel_src_port; 
+        hdr.gtpu_udp.sport = fabric_md.spgw.tunnel_src_port;
         hdr.gtpu_udp.dport = UDP_PORT_GTPU;
         hdr.gtpu_udp.len = fabric_md.spgw.ipv4_len
                 + (UDP_HDR_SIZE + GTP_HDR_SIZE);
diff --git a/pipelines/fabric/impl/src/main/resources/include/define.p4 b/pipelines/fabric/impl/src/main/resources/include/define.p4
index 08487c7..7b46dee 100644
--- a/pipelines/fabric/impl/src/main/resources/include/define.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/define.p4
@@ -67,6 +67,7 @@
 #define IP_VERSION_6 6
 #endif
 
+#define PACKET_OUT_HDR_SIZE 2
 #define ETH_HDR_SIZE 14
 #define IPV4_HDR_SIZE 20
 #define UDP_HDR_SIZE 8
diff --git a/pipelines/fabric/impl/src/main/resources/include/header.p4 b/pipelines/fabric/impl/src/main/resources/include/header.p4
index 9dc6102..ce6fcf8 100644
--- a/pipelines/fabric/impl/src/main/resources/include/header.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/header.p4
@@ -30,7 +30,8 @@
 @controller_header("packet_out")
 header packet_out_header_t {
     port_num_t egress_port;
-    bit<7> _pad;
+    bit<1> do_forwarding;
+    bit<6> _pad;
 }
 
 header ethernet_t {
diff --git a/pipelines/fabric/impl/src/main/resources/include/parser.p4 b/pipelines/fabric/impl/src/main/resources/include/parser.p4
index de0a76b..21032c7 100644
--- a/pipelines/fabric/impl/src/main/resources/include/parser.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/parser.p4
@@ -28,13 +28,28 @@
 
     state start {
         transition select(standard_metadata.ingress_port) {
-            CPU_PORT: parse_packet_out;
+            CPU_PORT: check_packet_out;
             default: parse_ethernet;
         }
     }
 
-    state parse_packet_out {
+    state check_packet_out {
+        packet_out_header_t tmp = packet.lookahead<packet_out_header_t>();
+        transition select(tmp.do_forwarding) {
+            0: parse_packet_out_and_accept;
+            default: strip_packet_out;
+        }
+    }
+
+    state parse_packet_out_and_accept {
+        // Will transmit over requested egress port as-is. No need to parse further.
         packet.extract(hdr.packet_out);
+        transition accept;
+    }
+
+    state strip_packet_out {
+        // Remove packet-out header and process as a regular packet.
+        packet.advance(PACKET_OUT_HDR_SIZE * 8);
         transition parse_ethernet;
     }
 
