Add slice meter to upf programmable driver behaviour

Also, TC in terminations entities is now required when not dropping.

Change-Id: Ia7e371376ca4f61564ba52a1e8c85a0ff76bb202
(cherry picked from commit b471bd19a7d116e201798509f9bc819664f1ac8d)
diff --git a/core/api/src/main/java/org/onosproject/net/behaviour/upf/UpfTerminationDownlink.java b/core/api/src/main/java/org/onosproject/net/behaviour/upf/UpfTerminationDownlink.java
index dd66724..22c25c0 100644
--- a/core/api/src/main/java/org/onosproject/net/behaviour/upf/UpfTerminationDownlink.java
+++ b/core/api/src/main/java/org/onosproject/net/behaviour/upf/UpfTerminationDownlink.java
@@ -297,6 +297,9 @@
                 applicationId = DEFAULT_APP_ID;
             }
             checkNotNull(ctrId, "Counter ID must be provided");
+            if (!drop) {
+                checkNotNull(trafficClass, "Traffic class must be provided");
+            }
             // TODO: should we verify that when dropping no other fields are provided
             return new UpfTerminationDownlink(
                     this.ueSessionId, this.applicationId, this.ctrId, this.trafficClass,