AETHER-2752 Priority Traffic Rule, Device, Sim-Card

Change-Id: Ia68c94bcfa67ccf529f0eb0f51faea0566b34ef6
diff --git a/config-models/aether-2.0.x/files/yang/onf-priority-traffic-rule.yang b/config-models/aether-2.0.x/files/yang/onf-priority-traffic-rule.yang
new file mode 100755
index 0000000..68f862c
--- /dev/null
+++ b/config-models/aether-2.0.x/files/yang/onf-priority-traffic-rule.yang
@@ -0,0 +1,115 @@
+// SPDX-FileCopyrightText: 2021 Open Networking Foundation
+//
+// SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+
+submodule onf-priority-traffic-rule {
+  belongs-to onf-enterprise { prefix ent; }
+
+  import ietf-yang-types{ prefix yg; }
+  import onf-aether-types{ prefix at; }
+  include onf-device;
+  include onf-traffic-class;
+  include onf-application;
+
+  organization "Open Networking Foundation.";
+  contact "Scott Baker";
+  description
+    "The aether traffic class associates qos constants
+     with a named class of service";
+
+  revision "2022-01-19" {
+    description "An Aether Priority Traffic Rule";
+    reference "RFC 6087";
+  }
+
+  typedef priority-traffic-rule-id {
+        type yg:yang-identifier {
+            length 1..32;
+        }
+    description "The typedef for priority traffic rule id";
+  }
+
+  grouping priority-traffic-rule {
+    description "The top level container";
+
+    list priority-traffic-rule {
+      key "ptr-id";
+      unique "device endpoint";
+      description
+        "List of priority traffic rules";
+
+      leaf ptr-id {
+        type priority-traffic-rule-id;
+        description "ID for this priority traffic class.";
+      }
+
+      leaf display-name {
+        type string {
+            length 1..80;
+        }
+        description "display name to use in GUI or CLI";
+      }
+
+      leaf device {
+        type leafref {
+          path "../../device/dev-id";
+        }
+        mandatory true;
+        description
+          "Link to device";
+      }
+
+      leaf endpoint {
+        type leafref {
+          path "../../../application/endpoint/endpoint-id";
+        }
+        mandatory true;
+        description
+          "Link to application";
+      }
+
+      container mbr {
+        description "Maximum bitrate";
+        leaf uplink {
+          type at:bitrate;
+          units bps;
+          description "Per-Device per-Application MBR uplink data rate in bps";
+        }
+
+        leaf downlink {
+          type at:bitrate;
+          units bps;
+          description "Per-Device per application MBR downlink data rate in bps";
+        }
+      }
+
+      container gbr {
+        description "Guaranteed bitrate";
+        leaf uplink {
+          type at:bitrate;
+          units bps;
+          description "Per-Device per-Application GBR uplink data rate in bps";
+        }
+
+        leaf downlink {
+          type at:bitrate;
+          units bps;
+          description "Per-Device per application GBR downlink data rate in bps";
+        }
+      }
+
+      leaf traffic-class {
+        type leafref {
+          path "../../../traffic-class/tc-id";
+        }
+        description
+          "Link to traffic class";
+      }
+
+      leaf description {
+        type at:description;
+        description "description of this priority traffic rule";
+      }
+    }
+  }
+}