First stab at BNG support in fabric.p4

This implementation is derived from Deutsche Telekom contribution:
https://github.com/opencord/p4se

It supports basic upstream and downstream termination based on double
VLAN tags and PPPoE, including counters and downstream metering.

Change-Id: I940959f2338d7319654cf665f6cfe2de7200616b
diff --git a/pipelines/fabric/src/main/resources/Makefile b/pipelines/fabric/src/main/resources/Makefile
index 4daca72..7658b18 100644
--- a/pipelines/fabric/src/main/resources/Makefile
+++ b/pipelines/fabric/src/main/resources/Makefile
@@ -6,6 +6,9 @@
 fabric-spgw:
 	@./bmv2-compile.sh "fabric-spgw" "-DWITH_SPGW"
 
+fabric-bng:
+	@./bmv2-compile.sh "fabric-bng" "-DWITH_BNG"
+
 fabric-int:
 	@./bmv2-compile.sh "fabric-int" "-DWITH_INT_SOURCE -DWITH_INT_TRANSIT"
 
@@ -14,13 +17,14 @@
 
 fabric-full:
 	@./bmv2-compile.sh "fabric-full" " -DWITH_MULTICAST -DWITH_IPV6 \
-		-DWITH_SIMPLE_NEXT -DWITH_HASHED_NEXT -DWITH_SPGW \
+		-DWITH_SIMPLE_NEXT -DWITH_HASHED_NEXT -DWITH_BNG -DWITH_SPGW \
 		-DWITH_INT_SOURCE -DWITH_INT_TRANSIT -DWITH_INT_SINK"
 
 constants:
-	onos-gen-p4-constants \
-		-o $(ONOS_ROOT)/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java \
-		fabric p4c-out/fabric-full/bmv2/default/p4info.txt
+	docker run -v $(ONOS_ROOT):/onos -w /onos/tools/dev/bin \
+		--entrypoint ./onos-gen-p4-constants opennetworking/p4mn:stable \
+		-o /onos/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java \
+		fabric /onos/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt
 
 clean:
 	rm -rf p4c-out/*/bmv2