SDFAB-193 Add packet-out routing feature to fabric-v1model

This is a port from fabric-tna:
https://github.com/stratum/fabric-tna/pull/262

By default, all packet-outs are sent straight to the egress port passed
as a controller packet-out metadata, bypassing the forwarding tables in
the ingress pipe. With this change, the control plane can set a new
packet-out metadata named `do_forwarding` to instruct the parser to
forward packet-outs as regular packets.

When handling `OutboundPacket` in ONOS, the pipeconf (interpreter) uses
the `OUTPUT` instruction with logical port `TABLE` to enable forwarding.
This is consistent with the OpenFlow behavior, from the spec:

    Required: TABLE: Represents the start of the OpenFlow pipeline (see
    5.1). This port is only valid in an output action in the action list
    of a packet-out message (see 7.3.7), and submits the packet to the
    first flow table so that the packet can be processed through the
    regular OpenFlow pipeline.

We also rename some test classes for consistency with main classes.
Before we had a FabricPipelinerTest class that was used for a different
purpose than testing FabricPipeliner.

Change-Id: I1b47c4b4f233df5b67d1a6dc743dea27c54772b2
(cherry picked from commit db347377bec8bf6f71fb9828f4dc552731e562f7)
diff --git a/pipelines/fabric/impl/src/main/resources/bmv2-compile.sh b/pipelines/fabric/impl/src/main/resources/bmv2-compile.sh
index 2cc8a3f..87bfd95 100755
--- a/pipelines/fabric/impl/src/main/resources/bmv2-compile.sh
+++ b/pipelines/fabric/impl/src/main/resources/bmv2-compile.sh
@@ -17,7 +17,7 @@
 echo
 echo "## Compiling profile ${PROFILE} in ${OUT_DIR}..."
 
-dockerImage=opennetworking/p4c:stable
+dockerImage=opennetworking/p4c:stable-20210108
 dockerRun="docker run --rm -w ${SRC_DIR} -v ${SRC_DIR}:${SRC_DIR} -v ${OUT_DIR}:${OUT_DIR} ${dockerImage}"
 
 # Generate preprocessed P4 source (for debugging).