QoS: Add support for direction 45/72345/5
authorVishal Thapar <vthapar@redhat.com>
Mon, 28 May 2018 06:18:36 +0000 (11:48 +0530)
committerVishal Thapar <vthapar@redhat.com>
Wed, 6 Jun 2018 03:01:49 +0000 (08:31 +0530)
* Add direction support for Bandwidth Limit rules

JIRA: NETVIRT-1242
Change-Id: I3a42344e909213ba6af10f5b7d7250ad7a8213b7
Signed-off-by: Vishal Thapar <vthapar@redhat.com>
model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/neutron/constants/rev150712/NeutronUtils.java
model/src/main/yang/neutron-qos.yang
neutron-spi/src/main/java/org/opendaylight/neutron/spi/NeutronQosBandwidthLimitRule.java
transcriber/src/main/java/org/opendaylight/neutron/transcriber/NeutronQosPolicyInterface.java

index e71d74b8f82629b4084d181155f1ce99261a3a86..37fd6467652ffcb7e2e0ebaf884af969cf12de77 100644 (file)
@@ -81,8 +81,10 @@ public final class NeutronUtils {
         public static Class<? extends DirectionBase> get(String key) {
             return MAPPER.get(key);
         }
+
         public static String getDirectionString(Class<? extends DirectionBase> direction) {
             return MAPPER_INVERSE.get(direction);
         }
+
     }
 }
index 29e522bd5471713fb25be0241caa6555fab7cdae..879e9cf52d8e9df0ccad5f7bed3720fc42682dcc 100644 (file)
@@ -52,6 +52,12 @@ module neutron-qos {
             type uint64;
             description "The burst over the maximum KBPS value";
         }
+        leaf direction {
+            type identityref {
+                base "constants:direction-base";
+            }
+            description "The traffic direction";
+        }
     }
 
     grouping dscpmarking-rule-attributes {
index 52c4a1e9f866797d8d05cf9f94d6337e04a1b847..86ee5b6df0f4439418bc444e65a9f96495437a54 100644 (file)
@@ -25,6 +25,9 @@ public final class NeutronQosBandwidthLimitRule extends NeutronObject<NeutronQos
     @XmlElement(name = "max_burst_kbps")
     BigInteger maxBurstKbps;
 
+    @XmlElement(defaultValue = "egress", name = "direction")
+    String direction;
+
     public BigInteger getMaxKbps() {
         return maxKbps;
     }
@@ -41,6 +44,14 @@ public final class NeutronQosBandwidthLimitRule extends NeutronObject<NeutronQos
         this.maxBurstKbps = maxBurstKbps;
     }
 
+    public String getDirection() {
+        return direction;
+    }
+
+    public void setDirection(String direction) {
+        this.direction = direction;
+    }
+
     @Override
     public boolean extractField(String field, NeutronQosBandwidthLimitRule ans) {
         switch (field) {
@@ -50,6 +61,9 @@ public final class NeutronQosBandwidthLimitRule extends NeutronObject<NeutronQos
             case "max_burst_kbps":
                 ans.setMaxBurstKbps(this.getMaxBurstKbps());
                 break;
+            case "direction":
+                ans.setDirection(this.getDirection());
+                break;
             default:
                 return super.extractField(field, ans);
         }
@@ -61,6 +75,7 @@ public final class NeutronQosBandwidthLimitRule extends NeutronObject<NeutronQos
         return "qosBandwidthLimitRules{" + "qosBandwidthLimitRuleUUID='" + uuid + '\''
             + ", qosBandwidthLimitRuleTenantID='" + tenantID + '\'' + ", qosBandwidthLimitRuleMaxValue='" + maxKbps
             + '\'' + ", qosBandwidthLimitRuleMaxBurst='" + maxBurstKbps
+            + '\'' + ", qosBandwidthLimitRuleDirection='" + direction
             + '\''
             + '}';
     }
index 7b549989e4ba33fbf57b154fcbf029a87a98c35d..3cc30234f6fd97a2982ca0c7d011900035bdf80f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016 Intel Corporation and others.  All rights reserved.
+ * Copyright (c) 2016, 2018 Intel Corporation and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
@@ -60,6 +60,7 @@ public final class NeutronQosPolicyInterface
                         toMdIds(bandwidthLimitRule, BandwidthLimitRulesBuilder.class);
                 bandwidthLimitRulesBuilder.setMaxKbps(bandwidthLimitRule.getMaxKbps());
                 bandwidthLimitRulesBuilder.setMaxBurstKbps(bandwidthLimitRule.getMaxBurstKbps());
+                bandwidthLimitRulesBuilder.setDirection(DirectionMapper.get(bandwidthLimitRule.getDirection()));
                 listBandwith.add(bandwidthLimitRulesBuilder.build());
             }
             qosPolicyBuilder.setBandwidthLimitRules(listBandwith);
@@ -104,6 +105,7 @@ public final class NeutronQosPolicyInterface
                 NeutronQosBandwidthLimitRule opt = new NeutronQosBandwidthLimitRule();
                 opt.setMaxKbps(rule.getMaxKbps());
                 opt.setMaxBurstKbps(rule.getMaxBurstKbps());
+                opt.setDirection(DirectionMapper.getDirectionString(rule.getDirection()));
                 bandwidthLimitRules.add(opt);
             }
             result.setQosBandwidthLimitRules(bandwidthLimitRules);