RPC gate set/delete/info and Patch operation support 76/53376/2
authorJeffrey Pedigo <jeff@appliedbroadband.com>
Wed, 15 Mar 2017 19:28:24 +0000 (13:28 -0600)
committerJeffrey Pedigo <jeff@appliedbroadband.com>
Mon, 20 Mar 2017 20:51:55 +0000 (14:51 -0600)
Bug: 7115

Change-Id: I3fe8c2b45db2ab88a3de347457cbe0d55f8e1b4e
Signed-off-by: Jeffrey Pedigo <jeff@appliedbroadband.com>
49 files changed:
packetcable-policy-model/src/main/yang/packetcable.yang
packetcable-policy-server/doc/restconf-samples/ODL-PCMM.json.postman_collection
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/PCMMGateReqBuilder.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/PCMMService.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/PacketcableProvider.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/CcapsValidatorProviderFactory.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/QosValidatorProviderFactory.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/ccaps/AmIdValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/ccaps/CcapValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/ccaps/CcapsValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/ccaps/ConnectionValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/AppValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/AppsValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/GateSpecValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/GateValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/GatesValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/SubscriberValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/SubscribersValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/TrafficProfileValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/classifier/ClassifierChoiceValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/classifier/ClassifierContainerValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/classifier/ClassifierValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/classifier/ClassifiersValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/classifier/ExtClassifierValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/classifier/Ipv6ClassifierValidator.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/PCMMServiceTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/DataValidatorTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/CcapsValidatorProviderFactoryTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/QosValidatorProviderFactoryTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/ValidatorProviderFactoryImplTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/ValidatorProviderImplTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/ccaps/AmIdValidatorTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/ccaps/CcapValidatorTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/ccaps/CcapsValidatorTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/ccaps/ConnectionValidatorTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/AppValidatorTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/AppsValidatorTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/GateSpecValidatorTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/GateValidatorTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/GatesValidatorTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/SubscriberValidatorTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/SubscribersValidatorTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/TrafficProfileValidatorTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/classifier/ClassifierChoiceValidatorTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/classifier/ClassifierContainerValidatorTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/classifier/ClassifierValidatorTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/classifier/ClassifiersValidatorTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/classifier/ExtClassifierValidatorTest.java
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/classifier/Ipv6ClassifierValidatorTest.java

index 1c2fa444a885b1bee9e1b6a11840f50de02bd3ba..0299a76710b7618d77078a19ae48295b895a82ac 100644 (file)
@@ -10,6 +10,9 @@ module packetcable
     description "This module contains the PCMM Converged Cable Access Platform (CCAP) definitions";
     organization "OpenDaylight Project";
 
+    revision 2017-02-24 {
+        description "Added RPC operations for set/delete/info on gates";
+    }
     revision 2017-01-25 {
         description "Added support for UGS and RTP traffic profiles";
     }
@@ -760,6 +763,61 @@ module packetcable
         }
     }
 
+    typedef failure-type {
+        description "Enumeration of the distinct types of operational failure modes
+                 that can occur while servicing a southbound PCMM request";  
+        type enumeration {
+            enum unsent {
+                description "The request failed before it was sent to the CMTS.";
+            }
+            enum no-ack {
+                description "The request was not acknowledged by the CMTS.";
+            }
+            enum failed {
+                description "The request was sent to the CMTS and an error response was returned";
+            }
+        }
+    }
+  
+
+    grouping failure-response {
+        description "The structure of a failure response from a PCMM request";
+        leaf failure {
+            type failure-type;
+        }
+        leaf message {
+            type string;
+        }
+    }
+    
+    grouping qos-set-gate-response {
+        choice set-response-type {
+            case set-failure {
+                uses failure-response;
+            }
+            case set-successful {
+                leaf cops-gateId {
+                    type uint32;
+                    description "Unique identifier assigned by CMTS for the requested gate";
+                }
+            }
+        }
+    }
+    
+    grouping qos-delete-gate-response {
+        choice delete-response-type {
+            case delete-failure {
+                uses failure-response;
+            }
+            case delete-successful {
+                leaf cops-gateId {
+                    type uint32;
+                    description "Unique identifier assigned by CMTS for the requested gate";
+                }
+            }
+        }
+    }
+  
     //RPCs
     rpc ccap-set-connection {
         input {
@@ -847,4 +905,101 @@ module packetcable
             }
         }
     }
+    
+    rpc qos-set-gate {
+        input {
+            leaf "appId" {
+                type string;
+                description "Application Identity";
+                mandatory true;
+            }
+            leaf subscriberId {
+                type string;
+                description "Subscriber Identity -- must be a CM or CPE IP address";
+                mandatory true;
+            }
+            container gates {
+                list gate {
+                    key "gateId";
+                    leaf gateId {
+                        type string;
+                        description "Qos Gate Identity";
+                        mandatory true;
+                    }
+                    uses gate-operational-attributes;
+                    uses pcmm-qos-gate-attributes;
+                }
+            }
+        }
+        output {
+            uses qos-set-gate-response;
+        }
+    }
+
+    rpc qos-delete-gate {
+        input {
+            leaf "appId" {
+                type string;
+                description "Application Identity";
+                mandatory true;
+            }
+            leaf subscriberId {
+                type string;
+                description "Subscriber Identity -- must be a CM or CPE IP address";
+                mandatory true;
+            }
+            leaf gateId {
+                type string;
+                description "Qos Gate Identity";
+                mandatory true;
+            }
+        }
+        output {
+            uses qos-delete-gate-response;
+        }
+    }
+
+    rpc qos-gate-info {
+        input {
+            leaf "appId" {
+                type string;
+                description "Application Identity";
+                mandatory true;
+            }
+            leaf subscriberId {
+                type string;
+                description "Subscriber Identity -- must be a CM or CPE IP address";
+                mandatory true;
+            }
+            leaf gateId {
+                type string;
+                description "Qos Gate Identity";
+                mandatory true;
+            }
+        }
+        output {
+            uses qos-gate-info-response;
+        }
+    }
+  
+    grouping qos-gate-info-response {
+        choice info-response-type {
+            case info-failure {
+                uses failure-response;
+            }
+            case info-successful {
+                container gates {
+                    list gate {
+                        key "gateId";
+                        leaf gateId {
+                            type string;
+                            description "Qos Gate Identity";
+                        }
+                        uses gate-operational-attributes;
+                        uses pcmm-qos-gate-attributes;
+                    }
+                }
+            }
+        }
+    }
 }
index 494e8a979c41eea816f6e3e1efae6e6be8001290..a88a1004d65082ec6f286495354222d30666ead1 100644 (file)
 {
-       "id": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-       "name": "ODL-PCMM",
-       "description": "Sample PCMM REST configuration calls.",
-       "order": [],
-       "folders": [
+       "variables": [],
+       "info": {
+               "name": "ODL-PCMM",
+               "_postman_id": "8288080e-e6f0-6c06-07fb-35c5160f57e4",
+               "description": "Sample PCMM REST configuration calls.",
+               "schema": "https://schema.getpostman.com/json/collection/v2.0.0/collection.json"
+       },
+       "item": [
                {
-                       "id": "f9e5223f-35d2-95a8-4cfe-b250938e6c12",
                        "name": "CCAP/CMTS",
                        "description": "Sample PUT, GET, & DELETE of CMTS into ODL",
-                       "order": [
-                               "1f68f1dc-1d2b-8d04-b7be-0e6fc03fd90a",
-                               "44ba6dfe-ca0c-376a-0322-b3db2af6eb2f",
-                               "0c1e6f25-e33b-e3ed-fc59-02f2b569a9ed",
-                               "a817933b-9398-23d1-b269-68f81ba51bc7",
-                               "f403ebfd-d7d7-c94e-0ee5-3bc864098250",
-                               "672adfee-68a5-5281-d638-72c2964b35cc",
-                               "1142817c-9007-f0a1-92cd-644935c1fa85",
-                               "07f16f27-6ef1-b022-1921-02a3baf40d91"
-                       ],
-                       "owner": 0
+                       "item": [
+                               {
+                                       "name": "Operational - Get All CCAPs",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/operational/packetcable:ccaps",
+                                               "method": "GET",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {},
+                                               "description": "Retrieves all managed CCAPs/CMTSs"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Get All CCAPs",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:ccaps",
+                                               "method": "GET",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {},
+                                               "description": "Retrieves all managed CCAPs/CMTSs"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Delete All CCAPs",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:ccaps",
+                                               "method": "DELETE",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {},
+                                               "description": "Removes all managed CCAPs/CMTSs"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Add CCAP 1",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:ccaps/ccap/{{ccapId-1}}",
+                                               "method": "PUT",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{\n    \"ccap\": [{\n        \"ccapId\": \"{{ccapId-1}}\",\n        \"amId\": {\n            \"am-tag\": \"0xcada\",\n            \"am-type\": \"1\"\n        },\n        \"connection\": {\n            \"ipAddress\": \"{{ccapIp-1}}\",\n            \"port\": \"{{ccapPort-1}}\"\n        },\n        \"subscriber-subnets\": [\n            \"10.32.110.1/24\", \n            \"2001:470:c09b:4000::/64\"\n        ],\n        \"downstream-scns\": [\n            \"extrm_dn\"\n        ],\n        \"upstream-scns\": [\n            \"extrm_up\"\n        ]\n    }]\n}\n"
+                                               },
+                                               "description": "Adds a CCAP/CMTS to manage"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Get CCAP 1",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:ccaps/ccap/{{ccapId-1}}",
+                                               "method": "GET",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {},
+                                               "description": "Retrieves a specific managed CCAP/CMTS"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Delete CCAP 1",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:ccaps/ccap/{{ccapId-1}}",
+                                               "method": "DELETE",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {},
+                                               "description": "Deletes a specific managed CCAP/CMTS"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "PUT Multiple",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:ccaps",
+                                               "method": "PUT",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{ \"ccaps\": {\n    \"ccap\": [\n    {   \"ccapId\": \"{{ccapId-1}}\",\n        \"amId\": {\n            \"am-tag\": \"0xcada\",\n            \"am-type\": \"1\"\n        },\n        \"connection\": {\n            \"ipAddress\": \"{{ccapIp-1}}\",\n            \"port\": \"{{ccapPort-1}}\"\n        },\n        \"subscriber-subnets\": [\n            \"44.137.0.0/16\",\n            \"2001:4978:030d:1000:0:0:0:0/52\"\n        ],\n        \"downstream-scns\": [\n            \"ipvideo_dn\",\n            \"extrm_dn\",\n            \"SCNC\"\n        ],\n        \"upstream-scns\": [\n            \"SCNA\",\n            \"extrm_up\"\n        ]\n    },\n    {   \"ccapId\": \"{{ccapId-2}}\",\n        \"amId\": {\n            \"am-tag\": \"0xcada\",\n            \"am-type\": \"1\"\n        },\n        \"connection\": {\n            \"ipAddress\": \"{{ccapIp-2}}\",\n            \"port\": \"{{ccapPort-2}}\"\n        },\n        \"subscriber-subnets\": [\n            \"44.133.0.0/19\"\n        ],\n        \"downstream-scns\": [\n            \"ipvideo_dn\",\n            \"extrm_dn\",\n            \"SCNC\"\n        ],\n        \"upstream-scns\": [\n            \"SCNA\",\n            \"extrm_up\"\n        ]\n    }]\n}}\n"
+                                               },
+                                               "description": "Adds 2 CCAPs/CMTSs to manage"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Add CCAP 1 - Bad",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:ccaps/ccap/{{ccapId-1}}",
+                                               "method": "PUT",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{\n    \"ccap\": [{\n        \"ccapId\": \"{{ccapId-1}}\",\n        \"amId\": {\n        },\n        \"connection\": {\n            \"ipAddress\": \"{{ccapIp-1}}\",\n            \"port\": \"{{ccapPort-1}}\"\n        },\n        \"subscriber-subnets\": [\n            \"10.32.110.1/24\"\n        ],\n        \"downstream-scns\": [\n            \"extrm_dn\"\n        ],\n        \"upstream-scns\": [\n            \"extrm_up\"\n        ]\n    }]\n}\n"
+                                               },
+                                               "description": "tries to add a CCAP/CMTS to manage with out providing all the required fields"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "PATCH CCAP 1",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:ccaps",
+                                               "method": "PATCH",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/yang.patch+json",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Accept",
+                                                               "value": "application/yang.patch-status+json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{\n    \"ietf-restconf:yang-patch\" : {\n      \"patch-id\" : \"Patch CCAP 1\",\n      \"comment\" : \"testing patch functionality\",\n      \"edit\" : [\n        {\n            \"edit-id\" : 1,\n            \"operation\" : \"replace\",\n            \"target\" : \"/subscriber-subnets\",\n            \"value\" : {\n                \"subscriber-subnets\": [\n                                      \"10.32.110.1/24\", \n            \t\t\t\t\t\t  \"2001:470:c09b:4000::/64\",\n            \t\t\t\t\t\t  \"10.22.4.1/24\"\n                                    ]\n                }\n            }\n        ]\n    }\n}\n"
+                                               },
+                                               "description": "Adds 2 CCAPs/CMTSs to manage"
+                                       },
+                                       "response": []
+                               }
+                       ]
                },
                {
-                       "id": "8454f1d3-bf11-01d5-3c17-1c635512818b",
                        "name": "Gates",
                        "description": "Sample PUT, GET, DELETE for PCMM Gates",
-                       "order": [
-                               "89d6f693-4b15-44dc-d330-f191ac6780b7",
-                               "b8031ee0-b6e0-dcbe-fff3-a924cbe295a4",
-                               "e69fb800-4f72-819b-2875-83eecf65dfb1",
-                               "0f01c73b-c17a-b53b-3694-1d746edcd2a2",
-                               "11ef539e-26d3-77ab-3828-321c3f7bf6a3",
-                               "03bebe64-27ff-1df3-5b6b-9237f6c8e229",
-                               "611db01a-e1e3-51fc-606d-5364477f8983",
-                               "fbf5671a-ae7d-4413-a22b-8334c4f5c35e",
-                               "a782c414-e6ad-a247-63f8-f1353e462870",
-                               "ec1b0f8c-371d-a0bd-ce5f-d30aa31237cb",
-                               "dc932ee9-1acd-9efe-cc83-de07894516bb",
-                               "9d80f0da-4500-e843-31c5-808c91d9249b",
-                               "34c31e77-afa6-e5b5-6218-f58224d8285b",
-                               "9e408c15-1a8f-a9fc-f996-7137f44cdfcd",
-                               "d1738b5f-1671-b0e6-ed00-06aa9a40c955",
-                               "7b027a58-c3a7-dd6a-555f-e5bc3644286c",
-                               "e59184fc-4b70-2eb6-eaf5-001fc7f62fbc",
-                               "9d3cfaa5-fc27-47b6-d993-c2e451d31048",
-                               "696cfabd-8836-902f-f3ab-9d24a08168a9",
-                               "749ba143-bcde-07c1-4ee4-401abce079e2",
-                               "10ac6396-d30a-85b1-121d-db3e2d9f50a3"
-                       ],
-                       "owner": 0,
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc"
-               }
-       ],
-       "timestamp": 1431957020452,
-       "owner": 0,
-       "remoteLink": "",
-       "public": false,
-       "requests": [
-               {
-                       "id": "03bebe64-27ff-1df3-5b6b-9237f6c8e229",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-classifier}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-classifier}}/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "DELETE",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1445872033293,
-                       "name": "Gate w/ classifier",
-                       "description": "Delete QoS gate with classifier",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": []
-               },
-               {
-                       "id": "07f16f27-6ef1-b022-1921-02a3baf40d91",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:ccaps/ccap/{{ccapId-1}}",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "PUT",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1446221273089,
-                       "name": "Add CCAP 1 - Bad",
-                       "description": "tries to add a CCAP/CMTS to manage with out providing all the required fields",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": [],
-                       "rawModeData": "{\n    \"ccap\": [{\n        \"ccapId\": \"{{ccapId-1}}\",\n        \"amId\": {\n        },\n        \"connection\": {\n            \"ipAddress\": \"{{ccapIp-1}}\",\n            \"port\": \"{{ccapPort-1}}\"\n        },\n        \"subscriber-subnets\": [\n            \"10.32.110.1/24\"\n        ],\n        \"downstream-scns\": [\n            \"extrm_dn\"\n        ],\n        \"upstream-scns\": [\n            \"extrm_up\"\n        ]\n    }]\n}\n"
-               },
-               {
-                       "id": "0c1e6f25-e33b-e3ed-fc59-02f2b569a9ed",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:ccaps",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "DELETE",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1445616322776,
-                       "name": "Delete All CCAPs",
-                       "description": "Removes all managed CCAPs/CMTSs",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": []
-               },
-               {
-                       "id": "0f01c73b-c17a-b53b-3694-1d746edcd2a2",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-classifier}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-classifier}}/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "PUT",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1447948746908,
-                       "name": "Gate w/ classifier",
-                       "description": "PUT gate with standard classifier",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": [],
-                       "rawModeData": "{\n    \"gate\": {\n        \"gateId\": \"{{gateId-classifier}}\",\n        \"classifiers\": {\n            \"classifier-container\": [\n                {\n                    \"classifier-id\": \"1\",\n                    \"classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"protocol\": \"0\",\n                        \"srcPort\": \"{{srcPort-1a}}\",\n                        \"dstPort\": \"{{dstPort-1a}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\"\n                    }\n                }\n            ]\n        },\n        \"gate-spec\": {\n            \"dscp-tos-overwrite\": \"0xa0\",\n            \"dscp-tos-mask\": \"0xff\"\n        },\n        \"traffic-profile\": {\n            \"service-class-name\": \"{{scnUp}}\"\n        }\n    }\n}"
-               },
-               {
-                       "id": "10ac6396-d30a-85b1-121d-db3e2d9f50a3",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-multi}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-multi}}/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "DELETE",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448396955856,
-                       "name": "Bad? Gate w/ 24 Classifiers",
-                       "description": "Put a gate with 24 classifiers.\nThis is proably more than a CMTS will support.",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": [],
-                       "rawModeData": ""
-               },
-               {
-                       "id": "1142817c-9007-f0a1-92cd-644935c1fa85",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:ccaps",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "PUT",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1445618622845,
-                       "name": "PUT Multiple",
-                       "description": "Adds 2 CCAPs/CMTSs to manage",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": [],
-                       "rawModeData": "{ \"ccaps\": {\n    \"ccap\": [\n    {   \"ccapId\": \"{{ccapId-1}}\",\n        \"amId\": {\n            \"am-tag\": \"0xcada\",\n            \"am-type\": \"1\"\n        },\n        \"connection\": {\n            \"ipAddress\": \"{{ccapIp-1}}\",\n            \"port\": \"{{ccapPort-1}}\"\n        },\n        \"subscriber-subnets\": [\n            \"44.137.0.0/16\",\n            \"2001:4978:030d:1000:0:0:0:0/52\"\n        ],\n        \"downstream-scns\": [\n            \"ipvideo_dn\",\n            \"extrm_dn\",\n            \"SCNC\"\n        ],\n        \"upstream-scns\": [\n            \"SCNA\",\n            \"extrm_up\"\n        ]\n    },\n    {   \"ccapId\": \"{{ccapId-2}}\",\n        \"amId\": {\n            \"am-tag\": \"0xcada\",\n            \"am-type\": \"1\"\n        },\n        \"connection\": {\n            \"ipAddress\": \"{{ccapIp-2}}\",\n            \"port\": \"{{ccapPort-2}}\"\n        },\n        \"subscriber-subnets\": [\n            \"44.133.0.0/19\"\n        ],\n        \"downstream-scns\": [\n            \"ipvideo_dn\",\n            \"extrm_dn\",\n            \"SCNC\"\n        ],\n        \"upstream-scns\": [\n            \"SCNA\",\n            \"extrm_up\"\n        ]\n    }]\n}}\n"
-               },
-               {
-                       "id": "11ef539e-26d3-77ab-3828-321c3f7bf6a3",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-classifier}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-classifier}}/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1445872017430,
-                       "name": "Gate w/ classifier",
-                       "description": "Retrieves the gate with classifier.",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": []
-               },
-               {
-                       "id": "1f68f1dc-1d2b-8d04-b7be-0e6fc03fd90a",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/operational/packetcable:ccaps",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1445616352829,
-                       "name": "Operational - Get All CCAPs",
-                       "description": "Retrieves all managed CCAPs/CMTSs",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": []
-               },
-               {
-                       "id": "34c31e77-afa6-e5b5-6218-f58224d8285b",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-multi}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-multi}}/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "PUT",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448396369778,
-                       "name": "Gate w/ Multiple Classifiers",
-                       "description": "Get gate with Multiple classifiers",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": [],
-                       "rawModeData": "{\n    \"gate\": {\n        \"gateId\": \"{{gateId-multi}}\",\n        \"classifiers\": {\n            \"classifier-container\": [\n                {\n                    \"classifier-id\": \"1\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                 {\n                    \"classifier-id\": \"2\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-2a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                 {\n                    \"classifier-id\": \"3\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-3a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                 {\n                    \"classifier-id\": \"4\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                }\n                \n            ]\n        },\n        \"gate-spec\": {\n            \"dscp-tos-overwrite\": \"0xa0\",\n            \"dscp-tos-mask\": \"0xff\"\n        },\n        \"traffic-profile\": {\n            \"service-class-name\": \"{{scnUp}}\"\n        }\n    }\n}"
-               },
-               {
-                       "id": "44ba6dfe-ca0c-376a-0322-b3db2af6eb2f",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:ccaps",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1445616319736,
-                       "name": "Get All CCAPs",
-                       "description": "Retrieves all managed CCAPs/CMTSs",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": []
-               },
-               {
-                       "id": "611db01a-e1e3-51fc-606d-5364477f8983",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-ext}}/subscribers/subscriber/{{subId-ext}}/gates/gate/{{gateId-ext}}/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "PUT",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1447948856388,
-                       "name": "Gate w/ ext classifier",
-                       "description": "PUT gate with ext classifier",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": [],
-                       "rawModeData": "{\n    \"gate\": {\n        \"gateId\": \"{{gateId-ext}}\",\n        \"classifiers\": {\n            \"classifier-container\": [\n                {\n                    \"classifier-id\": \"1\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                }\n            ]\n        },\n        \"gate-spec\": {\n            \"dscp-tos-overwrite\": \"0xa0\",\n            \"dscp-tos-mask\": \"0xff\"\n        },\n        \"traffic-profile\": {\n            \"service-class-name\": \"{{scnUp}}\"\n        }\n    }\n}"
-               },
-               {
-                       "id": "672adfee-68a5-5281-d638-72c2964b35cc",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:ccaps/ccap/{{ccapId-1}}",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "DELETE",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1445616338656,
-                       "name": "Delete CCAP 1",
-                       "description": "Deletes a specific managed CCAP/CMTS",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": []
-               },
-               {
-                       "id": "696cfabd-8836-902f-f3ab-9d24a08168a9",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-multi}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-multi}}/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "PUT",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448397048797,
-                       "name": "Bad? Gate w/ 24 Classifiers",
-                       "description": "Put a gate with 24 classifiers. Spec requires support for 4 but there is no maximum.\nHowever this is proably more than a CCAP will support.",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": [],
-                       "rawModeData": "{\n    \"gate\": {\n        \"gateId\": \"{{gateId-multi}}\",\n        \"classifiers\": {\n            \"classifier-container\": [\n                {\n                    \"classifier-id\": \"1\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"2\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-2a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"3\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-3a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"4\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"5\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"6\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"7\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"8\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"9\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"10\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"11\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"12\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"13\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"14\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"15\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"16\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"17\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"18\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"19\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"20\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"21\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"22\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"23\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"24\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                }\n            ]\n        },\n        \"gate-spec\": {\n            \"dscp-tos-overwrite\": \"0xa0\",\n            \"dscp-tos-mask\": \"0xff\"\n        },\n        \"traffic-profile\": {\n            \"service-class-name\": \"{{scnUp}}\"\n        }\n    }\n}"
-               },
-               {
-                       "id": "749ba143-bcde-07c1-4ee4-401abce079e2",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-multi}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-multi}}/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448396914372,
-                       "name": "Bad? Gate w/ 24 Classifiers",
-                       "description": "Get a gate with 24 classifiers.\nThis is proably more than a CMTS will support.",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": []
-               },
-               {
-                       "id": "7b027a58-c3a7-dd6a-555f-e5bc3644286c",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-bad}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-bad}}/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "PUT",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1447949146228,
-                       "name": "Bad - Gate w/ incomplete classifier",
-                       "description": "PUT gate with a standard classifier that is missing some data",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": [],
-                       "rawModeData": "{\n    \"gate\": {\n        \"gateId\": \"{{gateId-bad}}\",\n        \"classifiers\": {\n            \"classifier-container\": [\n                {\n                    \"classifier-id\": \"1\",\n                    \"classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"protocol\": \"0\",\n                        \"srcPort\": \"{{srcPort-1a}}\",\n                        \"dstPort\": \"{{dstPort-1a}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\"\n                    }\n                }\n            ]\n        },\n        \"gate-spec\": {\n            \"dscp-tos-overwrite\": \"0xa0\",\n            \"dscp-tos-mask\": \"0xff\"\n        },\n        \"traffic-profile\": {\n        }\n    }\n}"
-               },
-               {
-                       "id": "89d6f693-4b15-44dc-d330-f191ac6780b7",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/operational/packetcable:qos/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1447349051431,
-                       "name": "Operational - All Gates",
-                       "description": "Retrieves all gates.",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": []
-               },
-               {
-                       "id": "9d3cfaa5-fc27-47b6-d993-c2e451d31048",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-multi}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-multi}}/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "PUT",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1448397901238,
-                       "name": "Bad - Gate w/ Legacy & Ext Classifiers",
-                       "description": "Get gate with Legacy & Extended classifiers",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": [],
-                       "rawModeData": "{\n    \"gate\": {\n        \"gateId\": \"{{gateId-multi}}\",\n        \"classifiers\": {\n            \"classifier-container\": [\n                {\n                    \"classifier-id\": \"1\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },{\n                    \"classifier-id\": \"2\",\n                    \"classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"protocol\": \"0\",\n                        \"srcPort\": \"{{srcPort-1a}}\",\n                        \"dstPort\": \"{{dstPort-1a}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\"\n                    }\n                }\n                 \n                \n            ]\n        },\n        \"gate-spec\": {\n            \"dscp-tos-overwrite\": \"0xa0\",\n            \"dscp-tos-mask\": \"0xff\"\n        },\n        \"traffic-profile\": {\n            \"service-class-name\": \"{{scnUp}}\"\n        }\n    }\n}"
-               },
-               {
-                       "id": "9d80f0da-4500-e843-31c5-808c91d9249b",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-ipv6}}/subscribers/subscriber/{{subId-ipv6}}/gates/gate/{{gateId-ipv6}}/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "DELETE",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1445872203499,
-                       "name": "Gate w/ IPv6 classifier",
-                       "description": "Delete QoS gate with IPv6 classifier",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": []
-               },
-               {
-                       "id": "9e408c15-1a8f-a9fc-f996-7137f44cdfcd",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-multi}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-multi}}/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1447949491059,
-                       "name": "Gate w/ Multiple Classifiers",
-                       "description": "Get gate with Multiple classifiers",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": [],
-                       "folder": "8454f1d3-bf11-01d5-3c17-1c635512818b"
-               },
-               {
-                       "id": "a782c414-e6ad-a247-63f8-f1353e462870",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-ext}}/subscribers/subscriber/{{subId-ext}}/gates/gate/{{gateId-ext}}/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "DELETE",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1445872124553,
-                       "name": "Gate w/ ext classifier",
-                       "description": "Delete QoS gate with ext classifier",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": []
-               },
-               {
-                       "id": "a817933b-9398-23d1-b269-68f81ba51bc7",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:ccaps/ccap/{{ccapId-1}}",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "PUT",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1447957774435,
-                       "name": "Add CCAP 1",
-                       "description": "Adds a CCAP/CMTS to manage",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": [],
-                       "rawModeData": "{\n    \"ccap\": [{\n        \"ccapId\": \"{{ccapId-1}}\",\n        \"amId\": {\n            \"am-tag\": \"0xcada\",\n            \"am-type\": \"1\"\n        },\n        \"connection\": {\n            \"ipAddress\": \"{{ccapIp-1}}\",\n            \"port\": \"{{ccapPort-1}}\"\n        },\n        \"subscriber-subnets\": [\n            \"10.32.110.1/24\", \n            \"2001:470:c09b:4000::/64\"\n        ],\n        \"downstream-scns\": [\n            \"extrm_dn\"\n        ],\n        \"upstream-scns\": [\n            \"extrm_up\"\n        ]\n    }]\n}\n"
-               },
-               {
-                       "id": "b8031ee0-b6e0-dcbe-fff3-a924cbe295a4",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1445372731369,
-                       "name": "All Gates",
-                       "description": "Retrieves all gates.",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": []
-               },
-               {
-                       "id": "d1738b5f-1671-b0e6-ed00-06aa9a40c955",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-multi}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-multi}}/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "DELETE",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1447949459469,
-                       "name": "Gate w/ Multiple Classifiers",
-                       "description": "Delete gate with Multiple classifiers",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": []
-               },
-               {
-                       "id": "dc932ee9-1acd-9efe-cc83-de07894516bb",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-ipv6}}/subscribers/subscriber/{{subId-ipv6}}/gates/gate/{{gateId-ipv6}}/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1445872183035,
-                       "name": "Gate w/ IPv6 classifier",
-                       "description": "Retrieves the gate with IPv6 classifier.",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": []
-               },
-               {
-                       "id": "e59184fc-4b70-2eb6-eaf5-001fc7f62fbc",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-bad}}/subscribers/subscriber/1.2.3.4/gates/gate/{{gateId-bad}}",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "PUT",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1447949210199,
-                       "name": "Bad - Gate w/ invalid subscriber",
-                       "description": "PUT gate with a standard classifier that formed\ncorectly but the subscriber is unknown to the CCAP.",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": [],
-                       "rawModeData": "{\n    \"gate\": {\n        \"gateId\": \"{{gateId-bad}}\",\n        \"classifiers\": {\n            \"classifier-container\": [\n                {\n                    \"classifier-id\": \"1\",\n                    \"classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"protocol\": \"0\",\n                        \"srcPort\": \"{{srcPort-1a}}\",\n                        \"dstPort\": \"{{dstPort-1a}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\"\n                    }\n                }\n            ]\n        },\n        \"gate-spec\": {\n            \"dscp-tos-overwrite\": \"0xa0\",\n            \"dscp-tos-mask\": \"0xff\"\n        },\n        \"traffic-profile\": {\n            \"service-class-name\": \"{{scnUp}}\"\n        }\n    }\n}"
-               },
-               {
-                       "id": "e69fb800-4f72-819b-2875-83eecf65dfb1",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "DELETE",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1447359288221,
-                       "name": "All Gates",
-                       "description": "Deletes all apps, subscribers, and gates.",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": []
-               },
-               {
-                       "id": "ec1b0f8c-371d-a0bd-ce5f-d30aa31237cb",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-ipv6}}/subscribers/subscriber/{{subId-ipv6}}/gates/gate/{{gateId-ipv6}}/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "PUT",
-                       "data": [],
-                       "dataMode": "raw",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1447948932123,
-                       "name": "Gate w/ IPv6 classifier",
-                       "description": "PUT gate with IPv6 classifier",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": [],
-                       "rawModeData": "{\n    \"gate\": {\n        \"gateId\": \"{{gateId-ipv6}}\",\n        \"classifiers\": {\n            \"classifier-container\": [\n                {\n                    \"classifier-id\": \"1\",\n                    \"ipv6-classifier\": {\n                        \"srcIp6\": \"{{srcIp-IPv6}}\",\n                        \"dstIp6\": \"{{dstIp-IPv6}}\",\n                        \"flow-label\": \"101\",\n                        \"tc-low\": \"0xa0\",\n                        \"tc-high\": \"0xc0\",\n                        \"tc-mask\": \"0xe0\",\n                        \"next-hdr\": \"256\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                }\n            ]\n        },\n        \"gate-spec\": {\n            \"dscp-tos-overwrite\": \"0xa0\",\n            \"dscp-tos-mask\": \"0xff\"\n        },\n        \"traffic-profile\": {\n            \"service-class-name\": \"{{scnUp}}\"\n        }\n    }\n}"
-               },
-               {
-                       "id": "f403ebfd-d7d7-c94e-0ee5-3bc864098250",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:ccaps/ccap/{{ccapId-1}}",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1445616333775,
-                       "name": "Get CCAP 1",
-                       "description": "Retrieves a specific managed CCAP/CMTS",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": []
-               },
-               {
-                       "id": "fbf5671a-ae7d-4413-a22b-8334c4f5c35e",
-                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
-                       "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-ext}}/subscribers/subscriber/{{subId-ext}}/gates/gate/{{gateId-ext}}/",
-                       "preRequestScript": "",
-                       "pathVariables": {},
-                       "method": "GET",
-                       "data": [],
-                       "dataMode": "params",
-                       "version": 2,
-                       "tests": "",
-                       "currentHelper": "normal",
-                       "helperAttributes": {},
-                       "time": 1445872097422,
-                       "name": "Gate w/ ext classifier",
-                       "description": "Retrieves the gate with ext classifier.",
-                       "collectionId": "5c57b040-54e7-d5bf-296d-d5a4afdd39bc",
-                       "responses": []
+                       "item": [
+                               {
+                                       "name": "Operational - All Gates",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/operational/packetcable:qos/",
+                                               "method": "GET",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {},
+                                               "description": "Retrieves all gates."
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "All Gates",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/",
+                                               "method": "GET",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {},
+                                               "description": "Retrieves all gates."
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "All Gates",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/",
+                                               "method": "DELETE",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {},
+                                               "description": "Deletes all apps, subscribers, and gates."
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Gate w/ classifier",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-classifier}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-classifier}}/",
+                                               "method": "PUT",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{\n    \"gate\": {\n        \"gateId\": \"{{gateId-classifier}}\",\n        \"classifiers\": {\n            \"classifier-container\": [\n                {\n                    \"classifier-id\": \"1\",\n                    \"classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"protocol\": \"0\",\n                        \"srcPort\": \"{{srcPort-1a}}\",\n                        \"dstPort\": \"{{dstPort-1a}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\"\n                    }\n                }\n            ]\n        },\n        \"gate-spec\": {\n            \"dscp-tos-overwrite\": \"0xa0\",\n            \"dscp-tos-mask\": \"0xff\"\n        },\n        \"traffic-profile\": {\n           \"service-class-name-profile\": {\n        \t\t\"service-class-name\": \"{{scnUp}}\"\n           }\n        }\n    }\n}"
+                                               },
+                                               "description": "PUT gate with standard classifier"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Create Gate w/ classifier",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/operations/packetcable:qos-set-gate",
+                                               "method": "POST",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{  \n   \"input\":{  \n      \"appId\":\"{{appId-classifier}}\",\n      \"subscriberId\":\"{{subId-classifier}}\",\n      \"gates\":{  \n         \"gate\":{  \n            \"gateId\":\"{{gateId-classifier}}\",\n            \"classifiers\":{  \n               \"classifier-container\":[  \n                  {  \n                     \"classifier-id\":\"1\",\n                     \"classifier\":{  \n                        \"srcIp\":\"{{srcIp-1a}}\",\n                        \"dstIp\":\"{{dstIp-1a}}\",\n                        \"protocol\":\"0\",\n                        \"srcPort\":\"{{srcPort-1a}}\",\n                        \"dstPort\":\"{{dstPort-1a}}\",\n                        \"tos-byte\":\"0xa0\",\n                        \"tos-mask\":\"0xe0\"\n                     }\n                  }\n               ]\n            },\n            \"gate-spec\":{  \n               \"dscp-tos-overwrite\":\"0xa0\",\n               \"dscp-tos-mask\":\"0xff\"\n            },\n            \"traffic-profile\":{  \n        \t\t\"service-class-name-profile\": {\n        \t\t\t\"service-class-name\": \"{{scnUp}}\"\n        \t\t}\n            }\n         }\n      }\n   }\n}\n"
+                                               },
+                                               "description": "PUT gate with standard classifier"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Get Gate w/ classifier Info",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/operations/packetcable:qos-gate-info",
+                                               "method": "POST",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{\n    \"input\": {\n        \"appId\": \"{{appId-classifier}}\",\n        \"subscriberId\": \"{{subId-classifier}}\",\n        \"gateId\": \"{{gateId-classifier}}\"\n    }\n}"
+                                               },
+                                               "description": "Delete QoS gate with classifier"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Delete Gate w/ classifier",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/operations/packetcable:qos-delete-gate",
+                                               "method": "POST",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{\n    \"input\": {\n        \"appId\": \"{{appId-classifier}}\",\n        \"subscriberId\": \"{{subId-classifier}}\",\n        \"gateId\": \"{{gateId-classifier}}\"\n    }\n}"
+                                               },
+                                               "description": "Delete QoS gate with classifier"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Gate w/ classifier",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-classifier}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-classifier}}/",
+                                               "method": "GET",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {},
+                                               "description": "Retrieves the gate with classifier."
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Gate w/ classifier",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-classifier}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-classifier}}/",
+                                               "method": "DELETE",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {},
+                                               "description": "Delete QoS gate with classifier"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Gate w/ ext classifier",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-ext}}/subscribers/subscriber/{{subId-ext}}/gates/gate/{{gateId-ext}}/",
+                                               "method": "PUT",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{\n    \"gate\": {\n        \"gateId\": \"{{gateId-classifier}}\",\n        \"classifiers\": {\n            \"classifier-container\": [\n                {\n                    \"classifier-id\": \"1\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                }\n            ]\n        },\n        \"gate-spec\": {\n            \"dscp-tos-overwrite\": \"0xa0\",\n            \"dscp-tos-mask\": \"0xff\"\n        },\n        \"traffic-profile\": {\n           \"service-class-name-profile\": {\n        \t\t\"service-class-name\": \"{{scnUp}}\"\n           }\n        }\n    }\n}"
+                                               },
+                                               "description": "PUT gate with ext classifier"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Create Gate w/ ext classifier",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/operations/packetcable:qos-set-gate",
+                                               "method": "POST",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{  \n   \"input\":{  \n      \"appId\":\"{{appId-ext}}\",\n      \"subscriberId\":\"{{subId-ext}}\",\n      \"gates\":{  \n         \"gate\":{  \n            \"gateId\":\"{{gateId-classifier}}\",\n            \"classifiers\":{  \n               \"classifier-container\":[  \n                  {  \n                     \"classifier-id\":\"1\",\n                     \"ext-classifier\":{  \n                        \"srcIp\":\"{{srcIp-1a}}\",\n                        \"srcIpMask\":\"{{srcIpMask}}\",\n                        \"dstIp\":\"{{dstIp-1a}}\",\n                        \"dstIpMask\":\"{{dstIpMask}}\",\n                        \"tos-byte\":\"0xa0\",\n                        \"tos-mask\":\"0xe0\",\n                        \"protocol\":\"0\",\n                        \"srcPort-start\":\"{{srcPort-1a}}\",\n                        \"srcPort-end\":\"{{srcPort-1b}}\",\n                        \"dstPort-start\":\"{{dstPort-1a}}\",\n                        \"dstPort-end\":\"{{dstPort-1b}}\"\n                     }\n                  }\n               ]\n            },\n            \"gate-spec\":{  \n               \"dscp-tos-overwrite\":\"0xa0\",\n               \"dscp-tos-mask\":\"0xff\"\n            },\n            \"traffic-profile\":{  \n        \t\t\"service-class-name-profile\": {\n        \t\t\t\"service-class-name\": \"{{scnUp}}\"\n        \t\t}\n            }\n         }\n      }\n   }\n}\n"
+                                               },
+                                               "description": "PUT gate with ext classifier"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Gate w/ ext classifier",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-ext}}/subscribers/subscriber/{{subId-ext}}/gates/gate/{{gateId-classifier}}/",
+                                               "method": "GET",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {},
+                                               "description": "Retrieves the gate with ext classifier."
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Gate w/ ext classifier",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-ext}}/subscribers/subscriber/{{subId-ext}}/gates/gate/{{gateId-classifier}}/",
+                                               "method": "DELETE",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {},
+                                               "description": "Delete QoS gate with ext classifier"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Gate w/ IPv6 classifier",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-ipv6}}/subscribers/subscriber/{{subId-ipv6}}/gates/gate/{{gateId-ipv6}}/",
+                                               "method": "PUT",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{\n    \"gate\": {\n        \"gateId\": \"{{gateId-classifier}}\",\n        \"classifiers\": {\n            \"classifier-container\": [\n                {\n                    \"classifier-id\": \"1\",\n                    \"ipv6-classifier\": {\n                        \"srcIp6\": \"{{srcIp-IPv6}}\",\n                        \"dstIp6\": \"{{dstIp-IPv6}}\",\n                        \"flow-label\": \"101\",\n                        \"tc-low\": \"0xa0\",\n                        \"tc-high\": \"0xc0\",\n                        \"tc-mask\": \"0xe0\",\n                        \"next-hdr\": \"256\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                }\n            ]\n        },\n        \"gate-spec\": {\n            \"dscp-tos-overwrite\": \"0xa0\",\n            \"dscp-tos-mask\": \"0xff\"\n        },\n        \"traffic-profile\": {\n           \"service-class-name-profile\": {\n        \t\t\"service-class-name\": \"{{scnUp}}\"\n           }\n        }\n    }\n}"
+                                               },
+                                               "description": "PUT gate with IPv6 classifier"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Create Gate w/ IPv6 classifier",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/operations/packetcable:qos-set-gate",
+                                               "method": "POST",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{  \n   \"input\":{  \n      \"appId\":\"{{appId-ipv6}}\",\n      \"subscriberId\":\"{{subId-ipv6}}\",\n      \"gates\":{  \n         \"gate\":{  \n            \"gateId\":\"{{gateId-ipv6}}\",\n            \"classifiers\":{  \n               \"classifier-container\":[  \n                  {  \n                     \"classifier-id\":\"1\",\n                     \"ipv6-classifier\":{  \n                        \"srcIp6\":\"{{srcIp-IPv6}}\",\n                        \"dstIp6\":\"{{dstIp-IPv6}}\",\n                        \"flow-label\":\"101\",\n                        \"tc-low\":\"0xa0\",\n                        \"tc-high\":\"0xc0\",\n                        \"tc-mask\":\"0xe0\",\n                        \"next-hdr\":\"256\",\n                        \"srcPort-start\":\"{{srcPort-1a}}\",\n                        \"srcPort-end\":\"{{srcPort-1b}}\",\n                        \"dstPort-start\":\"{{dstPort-1a}}\",\n                        \"dstPort-end\":\"{{dstPort-1b}}\"\n                     }\n                  }\n               ]\n            },\n            \"gate-spec\":{  \n               \"dscp-tos-overwrite\":\"0xa0\",\n               \"dscp-tos-mask\":\"0xff\"\n            },\n            \"traffic-profile\":{  \n            \t\"service-class-name-profile\": {\n        \t\t\t\"service-class-name\": \"{{scnUp}}\"\n        \t\t}\n            }\n         }\n      }\n   }\n}"
+                                               },
+                                               "description": "PUT gate with IPv6 classifier"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Gate w/ IPv6 classifier",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-ipv6}}/subscribers/subscriber/{{subId-ipv6}}/gates/gate/{{gateId-classifier}}/",
+                                               "method": "GET",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {},
+                                               "description": "Retrieves the gate with IPv6 classifier."
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Gate w/ IPv6 classifier",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-ipv6}}/subscribers/subscriber/{{subId-ipv6}}/gates/gate/{{gateId-ipv6}}/",
+                                               "method": "DELETE",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {},
+                                               "description": "Delete QoS gate with IPv6 classifier"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Gate w/ Multiple Classifiers",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-multi}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-classifier}}/",
+                                               "method": "PUT",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{\n    \"gate\": {\n        \"gateId\": \"{{gateId-classifier}}\",\n        \"classifiers\": {\n            \"classifier-container\": [\n                {\n                    \"classifier-id\": \"1\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                 {\n                    \"classifier-id\": \"2\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-2a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                 {\n                    \"classifier-id\": \"3\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-3a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                 {\n                    \"classifier-id\": \"4\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                }\n                \n            ]\n        },\n        \"gate-spec\": {\n            \"dscp-tos-overwrite\": \"0xa0\",\n            \"dscp-tos-mask\": \"0xff\"\n        },\n        \"traffic-profile\": {\n           \"service-class-name-profile\": {\n        \t\t\"service-class-name\": \"{{scnUp}}\"\n           }\n        }\n    }\n}"
+                                               },
+                                               "description": "Get gate with Multiple classifiers"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Create Gate w/ Multiple Classifiers",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/operations/packetcable:qos-set-gate",
+                                               "method": "POST",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{  \n   \"input\":{  \n      \"appId\":\"{{appId-classifier}}\",\n      \"subscriberId\":\"{{subId-classifier}}\",\n      \"gates\":{  \n         \"gate\":{  \n            \"gateId\":\"{{gateId-classifier}}\",\n            \"classifiers\":{  \n               \"classifier-container\":[  \n                  {  \n                     \"classifier-id\":\"1\",\n                     \"ext-classifier\":{  \n                        \"srcIp\":\"{{srcIp-1a}}\",\n                        \"srcIpMask\":\"{{srcIpMask}}\",\n                        \"dstIp\":\"{{dstIp-1a}}\",\n                        \"dstIpMask\":\"{{dstIpMask}}\",\n                        \"tos-byte\":\"0xa0\",\n                        \"tos-mask\":\"0xe0\",\n                        \"protocol\":\"0\",\n                        \"srcPort-start\":\"{{srcPort-1a}}\",\n                        \"srcPort-end\":\"{{srcPort-1b}}\",\n                        \"dstPort-start\":\"{{dstPort-1a}}\",\n                        \"dstPort-end\":\"{{dstPort-1b}}\"\n                     }\n                  },\n                  {  \n                     \"classifier-id\":\"2\",\n                     \"ext-classifier\":{  \n                        \"srcIp\":\"{{srcIp-1a}}\",\n                        \"srcIpMask\":\"{{srcIpMask}}\",\n                        \"dstIp\":\"{{dstIp-2a}}\",\n                        \"dstIpMask\":\"{{dstIpMask}}\",\n                        \"tos-byte\":\"0xa0\",\n                        \"tos-mask\":\"0xe0\",\n                        \"protocol\":\"0\",\n                        \"srcPort-start\":\"{{srcPort-1a}}\",\n                        \"srcPort-end\":\"{{srcPort-1b}}\",\n                        \"dstPort-start\":\"{{dstPort-1a}}\",\n                        \"dstPort-end\":\"{{dstPort-1b}}\"\n                     }\n                  },\n                  {  \n                     \"classifier-id\":\"3\",\n                     \"ext-classifier\":{  \n                        \"srcIp\":\"{{srcIp-1a}}\",\n                        \"srcIpMask\":\"{{srcIpMask}}\",\n                        \"dstIp\":\"{{dstIp-3a}}\",\n                        \"dstIpMask\":\"{{dstIpMask}}\",\n                        \"tos-byte\":\"0xa0\",\n                        \"tos-mask\":\"0xe0\",\n                        \"protocol\":\"0\",\n                        \"srcPort-start\":\"{{srcPort-1a}}\",\n                        \"srcPort-end\":\"{{srcPort-1b}}\",\n                        \"dstPort-start\":\"{{dstPort-1a}}\",\n                        \"dstPort-end\":\"{{dstPort-1b}}\"\n                     }\n                  },\n                  {  \n                     \"classifier-id\":\"4\",\n                     \"ext-classifier\":{  \n                        \"srcIp\":\"{{srcIp-1a}}\",\n                        \"srcIpMask\":\"{{srcIpMask}}\",\n                        \"dstIp\":\"{{dstIp-4a}}\",\n                        \"dstIpMask\":\"{{dstIpMask}}\",\n                        \"tos-byte\":\"0xa0\",\n                        \"tos-mask\":\"0xe0\",\n                        \"protocol\":\"0\",\n                        \"srcPort-start\":\"{{srcPort-1a}}\",\n                        \"srcPort-end\":\"{{srcPort-1b}}\",\n                        \"dstPort-start\":\"{{dstPort-1a}}\",\n                        \"dstPort-end\":\"{{dstPort-1b}}\"\n                     }\n                  }\n               ]\n            },\n            \"gate-spec\":{  \n               \"dscp-tos-overwrite\":\"0xa0\",\n               \"dscp-tos-mask\":\"0xff\"\n            },\n            \"traffic-profile\":{  \n               \"service-class-name-profile\":{  \n                  \"service-class-name\":\"{{scnUp}}\"\n               }\n            }\n         }\n      }\n   }\n}\n"
+                                               },
+                                               "description": "Get gate with Multiple classifiers"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Gate w/ Multiple Classifiers",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-multi}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-classifier}}/",
+                                               "method": "GET",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {},
+                                               "description": "Get gate with Multiple classifiers"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Gate w/ Multiple Classifiers",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-multi}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-classifier}}/",
+                                               "method": "DELETE",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {},
+                                               "description": "Delete gate with Multiple classifiers"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Gate w/ Flow-spec Profile",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-classifier}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-classifier}}/",
+                                               "method": "PUT",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{\n    \"gate\": {\n        \"gateId\": \"{{gateId-classifier}}\",\n        \"classifiers\": {\n            \"classifier-container\": [\n                {\n                    \"classifier-id\": \"1\",\n                    \"classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"protocol\": \"64\",\n                        \"srcPort\": \"{{srcPort-1a}}\",\n                        \"dstPort\": \"{{dstPort-1a}}\",\n                        \"tos-byte\": \"0x00\",\n                        \"tos-mask\": \"0x00\",\n                        \"priority\": \"80\"\n                    }\n                }\n            ]\n        },\n        \"gate-spec\": {\n            \"direction\" : \"ds\",\n            \"dscp-tos-overwrite\": \"0x00\",\n            \"dscp-tos-mask\": \"0x0\",\n            \"inactivity-timer\": 900,\n            \"session-class-id\": 11\n        },\n        \"traffic-profile\": {\n            \"flow-spec-profile\": {\n                \"token-bucket-rate\": \"300\",\n                \"token-bucket-size\": \"30\",\n                \"peak-data-rate\": \"300000\",\n                \"minimum-policed-unit\": \"300\",\n                \"maximum-packet-size\": \"300\",\n                \"rate\": \"20000\",\n                \"slack-term\": \"0\"\n            }\n        }\n    }\n}"
+                                               },
+                                               "description": "Get gate with Multiple classifiers"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Gate w/ UGS Profile",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-classifier}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-classifier}}/",
+                                               "method": "PUT",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{\n    \"gate\": {\n        \"gateId\": \"{{gateId-classifier}}\",\n        \"classifiers\": {\n            \"classifier-container\": [\n                {\n                    \"classifier-id\": \"1\",\n                    \"classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"protocol\": \"0\",\n                        \"srcPort\": \"{{srcPort-1a}}\",\n                        \"dstPort\": \"{{dstPort-1a}}\",\n                        \"tos-byte\": \"0x00\",\n                        \"tos-mask\": \"0x00\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"2\",\n                    \"classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"protocol\": \"0\",\n                        \"srcPort\": \"{{srcPort-1b}}\",\n                        \"dstPort\": \"{{dstPort-1b}}\",\n                        \"tos-byte\": \"0x00\",\n                        \"tos-mask\": \"0x00\"\n                    }\n                }\n            ]\n        },\n        \"gate-spec\": {\n            \"direction\" : \"us\",\n            \"dscp-tos-overwrite\": \"0x00\",\n            \"dscp-tos-mask\": \"0x0\"\n        },\n        \"traffic-profile\": {\n            \"ugs-profile\": {\n                \"request-transmission-policy\": \"895\",\n                \"unsolicited-grant-size\": \"232\",\n                \"grants-per-interval\": \"2\",\n                \"nominal-grant-interval\": \"20000\",\n                \"tolerated-grant-jitter\": \"2000\",\n                \"upstream-peak-traffic-rate\": \"20000\",\n                \"required-attribute-mask\": \"0\",\n                \"forbidden-attribute-mask\": \"0\",\n                \"attribute-aggregation-rule-mask\": \"0\"\n            }\n        }\n    }\n}"
+                                               },
+                                               "description": "Get gate with Multiple classifiers"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Gate w/ RTP Profile",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-classifier}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-classifier}}/",
+                                               "method": "PUT",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{\n    \"gate\": {\n        \"gateId\": \"{{gateId-classifier}}\",\n        \"classifiers\": {\n            \"classifier-container\": [\n                {\n                    \"classifier-id\": \"1\",\n                    \"classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"protocol\": \"0\",\n                        \"srcPort\": \"{{srcPort-1a}}\",\n                        \"dstPort\": \"{{dstPort-1a}}\",\n                        \"tos-byte\": \"0x00\",\n                        \"tos-mask\": \"0x00\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"2\",\n                    \"classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"protocol\": \"0\",\n                        \"srcPort\": \"{{srcPort-1b}}\",\n                        \"dstPort\": \"{{dstPort-1b}}\",\n                        \"tos-byte\": \"0x00\",\n                        \"tos-mask\": \"0x00\"\n                    }\n                }\n            ]\n        },\n        \"gate-spec\": {\n            \"direction\" : \"us\",\n            \"dscp-tos-overwrite\": \"0x00\",\n            \"dscp-tos-mask\": \"0x0\"\n        },\n        \"traffic-profile\": {\n            \"rtp-profile\": {\n                \"request-transmission-policy\": \"895\",\n                \"maximum-sustained-traffic-rate\": \"23200\",\n                \"maximum-traffic-burst\": \"2000\",\n                \"minimum-reserved-traffic-rate\": \"20000\",\n                \"amrtr-packet-size\": \"2000\",\n                \"maximum-concatenated-burst\": \"20000\",\n                \"nominal-polling-interval\": \"20\",\n                \"tolerated-poll-jitter\": \"0\",\n                \"upstream-peak-traffic-rate\": \"1000\",\n                \"required-attribute-mask\": \"0\",\n                \"forbidden-attribute-mask\": \"0\",\n                \"attribute-aggregation-rule-mask\": \"0\"\n            }\n        }\n    }\n}"
+                                               },
+                                               "description": "Get gate with Multiple classifiers"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Create Gate w/ Flow Spec Profile",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/operations/packetcable:qos-set-gate",
+                                               "method": "POST",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{  \n   \"input\":{  \n      \"appId\":\"{{appId-classifier}}\",\n      \"subscriberId\":\"{{subId-classifier}}\",\n      \"gates\":{  \n         \"gate\":{  \n            \"gateId\":\"{{gateId-classifier}}\",\n            \"classifiers\":{  \n               \"classifier-container\":[  \n                  {  \n                     \"classifier-id\":\"1\",\n                     \"classifier\":{  \n                        \"srcIp\":\"{{srcIp-1a}}\",\n                        \"dstIp\":\"{{dstIp-1a}}\",\n                        \"protocol\":\"64\",\n                        \"srcPort\":\"{{srcPort-1a}}\",\n                        \"dstPort\":\"{{dstPort-1a}}\",\n                        \"tos-byte\":\"0x00\",\n                        \"tos-mask\":\"0x00\",\n                        \"priority\":\"80\"\n                     }\n                  }\n               ]\n            },\n            \"gate-spec\":{  \n               \"direction\":\"ds\",\n               \"dscp-tos-overwrite\":\"0x00\",\n               \"dscp-tos-mask\":\"0x0\",\n               \"inactivity-timer\":900,\n               \"session-class-id\":11\n            },\n            \"traffic-profile\":{  \n               \"flow-spec-profile\":{  \n                  \"token-bucket-rate\":\"300\",\n                  \"token-bucket-size\":\"30\",\n                  \"peak-data-rate\":\"300000\",\n                  \"minimum-policed-unit\":\"300\",\n                  \"maximum-packet-size\":\"300\",\n                  \"rate\":\"20000\",\n                  \"slack-term\":\"0\"\n               }\n            }\n         }\n      }\n   }\n}"
+                                               },
+                                               "description": "Get gate with Multiple classifiers"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Create Gate w/ UGS Profile",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/operations/packetcable:qos-set-gate",
+                                               "method": "POST",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{  \n   \"input\":{  \n      \"appId\":\"{{appId-classifier}}\",\n      \"subscriberId\":\"{{subId-classifier}}\",\n      \"gates\":{  \n         \"gate\":{  \n            \"gateId\":\"{{gateId-classifier}}\",\n            \"classifiers\":{  \n               \"classifier-container\":[  \n                  {  \n                     \"classifier-id\":\"1\",\n                     \"classifier\":{  \n                        \"srcIp\":\"{{srcIp-1a}}\",\n                        \"dstIp\":\"{{dstIp-1a}}\",\n                        \"protocol\":\"0\",\n                        \"srcPort\":\"{{srcPort-1a}}\",\n                        \"dstPort\":\"{{dstPort-1a}}\",\n                        \"tos-byte\":\"0x00\",\n                        \"tos-mask\":\"0x00\"\n                     }\n                  },\n                  {  \n                     \"classifier-id\":\"2\",\n                     \"classifier\":{  \n                        \"srcIp\":\"{{srcIp-1a}}\",\n                        \"dstIp\":\"{{dstIp-1a}}\",\n                        \"protocol\":\"0\",\n                        \"srcPort\":\"{{srcPort-1b}}\",\n                        \"dstPort\":\"{{dstPort-1b}}\",\n                        \"tos-byte\":\"0x00\",\n                        \"tos-mask\":\"0x00\"\n                     }\n                  }\n               ]\n            },\n            \"gate-spec\":{  \n               \"direction\":\"us\",\n               \"dscp-tos-overwrite\":\"0x00\",\n               \"dscp-tos-mask\":\"0x0\"\n            },\n            \"traffic-profile\":{  \n               \"ugs-profile\":{  \n                  \"request-transmission-policy\":\"895\",\n                  \"unsolicited-grant-size\":\"232\",\n                  \"grants-per-interval\":\"2\",\n                  \"nominal-grant-interval\":\"20000\",\n                  \"tolerated-grant-jitter\":\"2000\",\n                  \"upstream-peak-traffic-rate\":\"20000\",\n                  \"required-attribute-mask\":\"0\",\n                  \"forbidden-attribute-mask\":\"0\",\n                  \"attribute-aggregation-rule-mask\":\"0\"\n               }\n            }\n         }\n      }\n   }\n}"
+                                               },
+                                               "description": "Get gate with Multiple classifiers"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Create Gate w/ RTP Profile",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/operations/packetcable:qos-set-gate",
+                                               "method": "POST",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{  \n   \"input\":{  \n      \"appId\":\"{{appId-classifier}}\",\n      \"subscriberId\":\"{{subId-classifier}}\",\n      \"gates\":{  \n         \"gate\":{  \n            \"gateId\":\"{{gateId-classifier}}\",\n            \"classifiers\":{  \n               \"classifier-container\":[  \n                  {  \n                     \"classifier-id\":\"1\",\n                     \"classifier\":{  \n                        \"srcIp\":\"{{srcIp-1a}}\",\n                        \"dstIp\":\"{{dstIp-1a}}\",\n                        \"protocol\":\"0\",\n                        \"srcPort\":\"{{srcPort-1a}}\",\n                        \"dstPort\":\"{{dstPort-1a}}\",\n                        \"tos-byte\":\"0x00\",\n                        \"tos-mask\":\"0x00\"\n                     }\n                  },\n                  {  \n                     \"classifier-id\":\"2\",\n                     \"classifier\":{  \n                        \"srcIp\":\"{{srcIp-1a}}\",\n                        \"dstIp\":\"{{dstIp-1a}}\",\n                        \"protocol\":\"0\",\n                        \"srcPort\":\"{{srcPort-1b}}\",\n                        \"dstPort\":\"{{dstPort-1b}}\",\n                        \"tos-byte\":\"0x00\",\n                        \"tos-mask\":\"0x00\"\n                     }\n                  }\n               ]\n            },\n            \"gate-spec\":{  \n               \"direction\":\"us\",\n               \"dscp-tos-overwrite\":\"0x00\",\n               \"dscp-tos-mask\":\"0x0\"\n            },\n            \"traffic-profile\":{  \n               \"rtp-profile\":{  \n                  \"request-transmission-policy\":\"895\",\n                  \"maximum-sustained-traffic-rate\":\"23200\",\n                  \"maximum-traffic-burst\":\"2000\",\n                  \"minimum-reserved-traffic-rate\":\"20000\",\n                  \"amrtr-packet-size\":\"2000\",\n                  \"maximum-concatenated-burst\":\"20000\",\n                  \"nominal-polling-interval\":\"20\",\n                  \"tolerated-poll-jitter\":\"0\",\n                  \"upstream-peak-traffic-rate\":\"1000\",\n                  \"required-attribute-mask\":\"0\",\n                  \"forbidden-attribute-mask\":\"0\",\n                  \"attribute-aggregation-rule-mask\":\"0\"\n               }\n            }\n         }\n      }\n   }\n}"
+                                               },
+                                               "description": "Get gate with Multiple classifiers"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Bad - Gate w/ incomplete classifier",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-bad}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-bad}}/",
+                                               "method": "PUT",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{\n    \"gate\": {\n        \"gateId\": \"{{gateId-bad}}\",\n        \"classifiers\": {\n            \"classifier-container\": [\n                {\n                    \"classifier-id\": \"1\",\n                    \"classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"protocol\": \"0\",\n                        \"srcPort\": \"{{srcPort-1a}}\",\n                        \"dstPort\": \"{{dstPort-1a}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\"\n                    }\n                }\n            ]\n        },\n        \"gate-spec\": {\n            \"dscp-tos-overwrite\": \"0xa0\",\n            \"dscp-tos-mask\": \"0xff\"\n        },\n        \"traffic-profile\": {\n        }\n    }\n}"
+                                               },
+                                               "description": "PUT gate with a standard classifier that is missing some data"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Bad - Gate w/ invalid subscriber",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-bad}}/subscribers/subscriber/1.2.3.4/gates/gate/{{gateId-bad}}",
+                                               "method": "PUT",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{\n    \"gate\": {\n        \"gateId\": \"{{gateId-bad}}\",\n        \"classifiers\": {\n            \"classifier-container\": [\n                {\n                    \"classifier-id\": \"1\",\n                    \"classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"protocol\": \"0\",\n                        \"srcPort\": \"{{srcPort-1a}}\",\n                        \"dstPort\": \"{{dstPort-1a}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\"\n                    }\n                }\n            ]\n        },\n        \"gate-spec\": {\n            \"dscp-tos-overwrite\": \"0xa0\",\n            \"dscp-tos-mask\": \"0xff\"\n        },\n        \"traffic-profile\": {\n           \"service-class-name-profile\": {\n        \t\t\"service-class-name\": \"{{scnUp}}\"\n           }\n        }\n    }\n}"
+                                               },
+                                               "description": "PUT gate with a standard classifier that formed\ncorectly but the subscriber is unknown to the CCAP."
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Bad - Gate w/ Legacy & Ext Classifiers",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-multi}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-multi}}/",
+                                               "method": "PUT",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{\n    \"gate\": {\n        \"gateId\": \"{{gateId-multi}}\",\n        \"classifiers\": {\n            \"classifier-container\": [\n                {\n                    \"classifier-id\": \"1\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },{\n                    \"classifier-id\": \"2\",\n                    \"classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"protocol\": \"0\",\n                        \"srcPort\": \"{{srcPort-1a}}\",\n                        \"dstPort\": \"{{dstPort-1a}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\"\n                    }\n                }\n                 \n                \n            ]\n        },\n        \"gate-spec\": {\n            \"dscp-tos-overwrite\": \"0xa0\",\n            \"dscp-tos-mask\": \"0xff\"\n        },\n        \"traffic-profile\": {\n           \"service-class-name-profile\": {\n        \t\t\"service-class-name\": \"{{scnUp}}\"\n           }\n        }\n    }\n}"
+                                               },
+                                               "description": "Get gate with Legacy & Extended classifiers"
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Bad? Gate w/ 24 Classifiers",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-multi}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-multi}}/",
+                                               "method": "PUT",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": "{\n    \"gate\": {\n        \"gateId\": \"{{gateId-multi}}\",\n        \"classifiers\": {\n            \"classifier-container\": [\n                {\n                    \"classifier-id\": \"1\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-1a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"2\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-2a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"3\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-3a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"4\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"5\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"6\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"7\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"8\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"9\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"10\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"11\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"12\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"13\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"14\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"15\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"16\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"17\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"18\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"19\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"20\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"21\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"22\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"23\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                },\n                {\n                    \"classifier-id\": \"24\",\n                    \"ext-classifier\": {\n                        \"srcIp\": \"{{srcIp-1a}}\",\n                        \"srcIpMask\": \"{{srcIpMask}}\",\n                        \"dstIp\": \"{{dstIp-4a}}\",\n                        \"dstIpMask\": \"{{dstIpMask}}\",\n                        \"tos-byte\": \"0xa0\",\n                        \"tos-mask\": \"0xe0\",\n                        \"protocol\": \"0\",\n                        \"srcPort-start\": \"{{srcPort-1a}}\",\n                        \"srcPort-end\": \"{{srcPort-1b}}\",\n                        \"dstPort-start\": \"{{dstPort-1a}}\",\n                        \"dstPort-end\": \"{{dstPort-1b}}\"\n                    }\n                }\n            ]\n        },\n        \"gate-spec\": {\n            \"dscp-tos-overwrite\": \"0xa0\",\n            \"dscp-tos-mask\": \"0xff\"\n        },\n        \"traffic-profile\": {\n           \"service-class-name-profile\": {\n        \t\t\"service-class-name\": \"{{scnUp}}\"\n           }\n        }\n    }\n}"
+                                               },
+                                               "description": "Put a gate with 24 classifiers. Spec requires support for 4 but there is no maximum.\nHowever this is proably more than a CCAP will support."
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Bad? Gate w/ 24 Classifiers",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-multi}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-multi}}/",
+                                               "method": "GET",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {},
+                                               "description": "Get a gate with 24 classifiers.\nThis is proably more than a CMTS will support."
+                                       },
+                                       "response": []
+                               },
+                               {
+                                       "name": "Bad? Gate w/ 24 Classifiers",
+                                       "request": {
+                                               "url": "http://{{odlHost}}:{{odlPort}}/restconf/config/packetcable:qos/apps/app/{{appId-multi}}/subscribers/subscriber/{{subId-classifier}}/gates/gate/{{gateId-multi}}/",
+                                               "method": "DELETE",
+                                               "header": [
+                                                       {
+                                                               "key": "Authorization",
+                                                               "value": "Basic YWRtaW46YWRtaW4=",
+                                                               "description": ""
+                                                       },
+                                                       {
+                                                               "key": "Content-Type",
+                                                               "value": "application/json",
+                                                               "description": ""
+                                                       }
+                                               ],
+                                               "body": {
+                                                       "mode": "raw",
+                                                       "raw": ""
+                                               },
+                                               "description": "Put a gate with 24 classifiers.\nThis is proably more than a CMTS will support."
+                                       },
+                                       "response": []
+                               }
+                       ]
                }
        ]
 }
\ No newline at end of file
index 96fb041f5142001cd73cfd72fc6f2f5cdaf67cd8..29ce558066bbb16f7ce59681610808ceed49a986 100644 (file)
@@ -16,23 +16,23 @@ import java.net.Inet6Address;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.List;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ServiceFlowDirection;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.TosByte;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.attributes.AmId;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.ClassifierContainer;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.classifier.container.ClassifierChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.classifier.container.classifier.choice.ExtClassifierChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.classifier.container.classifier.choice.Ipv6ClassifierChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.classifier.container.classifier.choice.QosClassifierChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.classifier.Classifier;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.ext.classifier.ExtClassifier;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gate.spec.GateSpec;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.ipv6.classifier.Ipv6Classifier;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.TrafficProfile;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.serviceclass.name.profile.ServiceClassNameProfile;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.flow.spec.profile.FlowSpecProfile;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.ugs.profile.UgsProfile;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.rtp.profile.RtpProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ServiceFlowDirection;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.TosByte;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.attributes.AmId;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.ClassifierContainer;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.classifier.container.ClassifierChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.classifier.container.classifier.choice.ExtClassifierChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.classifier.container.classifier.choice.Ipv6ClassifierChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.classifier.container.classifier.choice.QosClassifierChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.classifier.Classifier;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.ext.classifier.ExtClassifier;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gate.spec.GateSpec;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.ipv6.classifier.Ipv6Classifier;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.TrafficProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.serviceclass.name.profile.ServiceClassNameProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.flow.spec.profile.FlowSpecProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.ugs.profile.UgsProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.rtp.profile.RtpProfile;
 import org.pcmm.gates.IClassifier;
 import org.pcmm.gates.IClassifier.Protocol;
 import org.pcmm.gates.IExtendedClassifier;
@@ -57,12 +57,12 @@ import org.pcmm.gates.impl.TransactionID;
 import org.pcmm.utils.PCMMUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.TrafficProfile;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.TrafficProfileChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.FlowSpecChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.ServiceClassNameChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.RtpChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.UgsChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.TrafficProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.TrafficProfileChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.FlowSpecChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.ServiceClassNameChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.RtpChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.UgsChoice;
  
 /**
  * Build PCMM gate requests from API QoS Gate objects
index 2ea57b1af61911806cd17501e6f45928bad41197..6c466a4723028f139e13672d0c65adc69ff487b3 100644 (file)
@@ -13,10 +13,10 @@ import java.util.Map;
 import javax.annotation.concurrent.ThreadSafe;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ServiceClassName;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ServiceFlowDirection;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccaps.Ccap;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ServiceClassName;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ServiceFlowDirection;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccaps.Ccap;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
 import org.pcmm.PCMMPdpAgent;
 import org.pcmm.PCMMPdpDataProcess;
 import org.pcmm.PCMMPdpMsgSender;
index c845289258b1b70061a2b9a3ecf3406804a94313..330a33eda110db05fb858099db5ef0c7cc1fdd4b 100644 (file)
@@ -50,56 +50,81 @@ import org.opendaylight.controller.packetcable.provider.validation.impl.CcapsVal
 import org.opendaylight.controller.packetcable.provider.validation.impl.QosValidatorProviderFactory;
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.RoutedRpcRegistration;
+import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.RpcRegistration;
 import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.serviceclass.name.profile.ServiceClassNameProfile;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.serviceclass.name.profile.ServiceClassNameProfileBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.AppContext;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.CcapContext;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.CcapPollConnectionInput;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.CcapPollConnectionOutput;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.CcapPollConnectionOutputBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.CcapSetConnectionInput;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.CcapSetConnectionOutput;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.CcapSetConnectionOutputBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.Ccaps;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.PacketcableService;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.Qos;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.QosPollGatesInput;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.QosPollGatesOutput;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.QosPollGatesOutputBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ServiceClassName;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ServiceFlowDirection;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.attributes.ConnectionBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccaps.Ccap;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccaps.CcapBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gate.spec.GateSpec;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gate.spec.GateSpecBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.Apps;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.App;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.AppBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.AppKey;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.Subscribers;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.SubscribersBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.Subscriber;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.SubscriberBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.SubscriberKey;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.Gates;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.GatesBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.GateBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.GateKey;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.TrafficProfile;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.TrafficProfileBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.TrafficProfileChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.FlowSpecChoiceBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.ServiceClassNameChoiceBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.FlowSpecChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.ServiceClassNameChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.flow.spec.profile.FlowSpecProfile;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.serviceclass.name.profile.ServiceClassNameProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.serviceclass.name.profile.ServiceClassNameProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.serviceclass.name.profile.ServiceClassNameProfileBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.AppContext;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.CcapContext;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.CcapPollConnectionInput;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.CcapPollConnectionOutput;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.CcapPollConnectionOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.CcapSetConnectionInput;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.CcapSetConnectionOutput;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.CcapSetConnectionOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.Ccaps;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.PacketcableService;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.Qos;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosPollGatesInput;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosPollGatesOutput;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosPollGatesOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosSetGateInput;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosSetGateOutput;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosSetGateOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosDeleteGateInput;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosDeleteGateOutput;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosDeleteGateOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosGateInfoInput;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosGateInfoOutput;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosGateInfoOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ServiceClassName;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ServiceFlowDirection;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.attributes.ConnectionBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccaps.Ccap;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccaps.CcapBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gate.spec.GateSpec;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gate.spec.GateSpecBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.Apps;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.App;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.AppBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.AppKey;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.Subscribers;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.SubscribersBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.Subscriber;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.SubscriberBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.SubscriberKey;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.Gates;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.GatesBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.GateBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.GateKey;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.TrafficProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.TrafficProfileBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.TrafficProfileChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.FlowSpecChoiceBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.ServiceClassNameChoiceBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.FlowSpecChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.ServiceClassNameChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.flow.spec.profile.FlowSpecProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.serviceclass.name.profile.ServiceClassNameProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.set.gate.response.SetResponseType;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.set.gate.response.set.response.type.SetSuccessful;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.set.gate.response.set.response.type.SetSuccessfulBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.set.gate.response.set.response.type.SetFailure;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.set.gate.response.set.response.type.SetFailureBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.delete.gate.response.delete.response.type.DeleteSuccessful;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.delete.gate.response.delete.response.type.DeleteSuccessfulBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.delete.gate.response.delete.response.type.DeleteFailure;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.delete.gate.response.delete.response.type.DeleteFailureBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.InfoSuccessful;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.InfoSuccessfulBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.InfoFailure;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.InfoFailureBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.packetcable.packetcable.policy.server.impl.rev140131.PacketcableProviderModule;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.FailureType;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
@@ -150,7 +175,10 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
     private MdsalUtils mdsalUtils;
 
     //Routed RPC Registration
-    private RoutedRpcRegistration<PacketcableService> rpcRegistration;
+    private RoutedRpcRegistration<PacketcableService> routedRpcRegistration;
+
+    // unrouted RPC Registration
+    private RpcRegistration rpcRegistration;
 
     // Data change listeners/registrations
     private final CcapsDataTreeChangeListener ccapsDataTreeChangeListener = new CcapsDataTreeChangeListener();
@@ -163,13 +191,15 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
      * Constructor
      */
     public PacketcableProvider() {
-        logger.info("Starting provider");
+        logger.info("Starting Packetcable Provider");
     }
 
     @Override
     public void onSessionInitiated(ProviderContext session) {
         logger.info("Packetcable Session Initiated");
-        logger.info("logging levels: error={}, warn={}, info={}, debug={}, trace={}", logger.isErrorEnabled(), logger.isWarnEnabled(), logger.isInfoEnabled(), logger.isDebugEnabled(), logger.isTraceEnabled());
+        logger.info("logging levels: error={}, warn={}, info={}, debug={}, trace={}",
+                    logger.isErrorEnabled(), logger.isWarnEnabled(),
+                    logger.isInfoEnabled(), logger.isDebugEnabled(), logger.isTraceEnabled());
 
         dataBroker = session.getSALService(DataBroker.class);
 
@@ -186,8 +216,10 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
 
         qosDataTreeChangeListenerRegistration = dataBroker.registerDataTreeChangeListener(appDataTreeIid, new QosDataTreeChangeListener());
 
-        rpcRegistration = session.addRoutedRpcImplementation(PacketcableService.class, this);
-        logger.info("onSessionInitiated().rpcRgistration: {}", rpcRegistration);
+        rpcRegistration = session.addRpcImplementation(PacketcableService.class, this);
+        logger.info("onSessionInitiated().rpcRegistration: {}", rpcRegistration);
+        routedRpcRegistration = session.addRoutedRpcImplementation(PacketcableService.class, this);
+        logger.info("onSessionInitiated().routedRpcRegistration: {}", routedRpcRegistration);
 
     }
 
@@ -203,6 +235,10 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
         if (qosDataTreeChangeListenerRegistration != null) {
             qosDataTreeChangeListenerRegistration.close();
         }
+        
+        if (rpcRegistration != null) {
+            rpcRegistration.close();
+        }
     }
 
     private void updateCcapMaps(final Ccap ccap) {
@@ -434,7 +470,7 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
         void postRemove(final InstanceIdentifier<App> appIID) {
             //unregister app rpc path
             logger.info("Un-Registering App Routed RPC Path...");
-            rpcRegistration.unregisterPath(AppContext.class, appIID);
+            routedRpcRegistration.unregisterPath(AppContext.class, appIID);
             executor.execute(new AppsCleaner(appIID));
         }
     }
@@ -568,7 +604,7 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
 
             //register rpc
             logger.info("Registering CCAP Routed RPC Path...");
-            rpcRegistration.registerPath(CcapContext.class, iid);
+            routedRpcRegistration.registerPath(CcapContext.class, iid);
 
             Optional<Ccap> optionalCcap = mdsalUtils.read(LogicalDatastoreType.OPERATIONAL, iid);
 
@@ -587,10 +623,7 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
 
         @Override
         protected void handleUpdatedData(final DataTreeModification<Ccap> change) {
-            //final Ccap ccap = (Ccap) change.getRootNode().getIdentifier();
             InstanceIdentifier<Ccap> iid = change.getRootPath().getRootIdentifier();
-            // TODO actually support updates
-            // update operation not allowed -- restore the original config object and complain
 
             // If this notification is coming from our modification ignore it.
             if (updateQueue.contains(iid)) {
@@ -598,17 +631,15 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
                 return;
             }
 
-            final Ccap originalCcap = change.getRootNode().getDataBefore();
-            //final Ccap updatedCcap = entry.getValue();
+            final Ccap updatedCcap = change.getRootNode().getDataAfter();
 
             //register rpc
             logger.info("Registering CCAP Routed RPC Path...");
-            rpcRegistration.registerPath(CcapContext.class, iid);
+            routedRpcRegistration.registerPath(CcapContext.class, iid);
 
             // restore the original data
             updateQueue.add(iid);
-            mdsalUtils.put(LogicalDatastoreType.CONFIGURATION, iid, originalCcap);
-            logger.error("CCAP update not permitted {}", iid);
+            mdsalUtils.put(LogicalDatastoreType.CONFIGURATION, iid, updatedCcap);
         }
 
         @Override
@@ -620,7 +651,7 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
 
             //unregister ccap rpc path
             logger.info("Un-Registering CCAP Routed RPC Path...");
-            rpcRegistration.unregisterPath(CcapContext.class, iid);
+            routedRpcRegistration.unregisterPath(CcapContext.class, iid);
 
             mdsalUtils.delete(LogicalDatastoreType.OPERATIONAL, iid);
 
@@ -658,7 +689,7 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
 
             //register appID RPC path
             logger.info("Registering App Routed RPC Path...");
-            rpcRegistration.registerPath(AppContext.class, appIID);
+            routedRpcRegistration.registerPath(AppContext.class, appIID);
 
             final InstanceIdentifier<Subscriber> subscriberIID = gateIID.firstIdentifierOf(Subscriber.class);
             final SubscriberKey subscriberKey = InstanceIdentifier.keyOf(subscriberIID);
@@ -819,10 +850,6 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
         @Override
         protected void handleUpdatedData(final DataTreeModification<Gate> change) {
             InstanceIdentifier<Gate> gateIID = change.getRootPath().getRootIdentifier();
-            //final Gate newGate = (Gate) change.getRootNode().getIdentifier();
-            // TODO actually support updates
-
-            // update operation not allowed -- restore the original config object and complain
 
             // If this notification is coming from our modification ignore it.
             if (updateQueue.contains(gateIID)) {
@@ -830,12 +857,11 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
                 return;
             }
 
-            final Gate originalGate = change.getRootNode().getDataBefore();
+            final Gate updatedGate = change.getRootNode().getDataAfter();
 
             // restores the original data
             updateQueue.add(gateIID);
-            mdsalUtils.put(LogicalDatastoreType.CONFIGURATION, gateIID, originalGate);
-            logger.error("Update not permitted {}", gateIID);
+            mdsalUtils.put(LogicalDatastoreType.CONFIGURATION, gateIID, updatedGate);
         }
 
         @Override
@@ -933,15 +959,15 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
         }
 
         DateAndTime connectionDateAndTime = getNowTimeStamp();
-        org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.set.connection.output.ccap.ConnectionBuilder
+        org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.set.connection.output.ccap.ConnectionBuilder
                 connectionRpcOutput =
-                new org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.set.connection.output.ccap.ConnectionBuilder()
+                new org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.set.connection.output.ccap.ConnectionBuilder()
                         .setConnected(effectiveIsConnected)
                         .setError(outputError)
                         .setTimestamp(connectionDateAndTime);
 
-        org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.set.connection.output.CcapBuilder ccapRpcOutput =
-                new org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.set.connection.output.CcapBuilder().setCcapId(
+        org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.set.connection.output.CcapBuilder ccapRpcOutput =
+                new org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.set.connection.output.CcapBuilder().setCcapId(
                         ccapId).setConnection(connectionRpcOutput.build());
 
 
@@ -978,9 +1004,9 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
         PCMMService pcmmService = pcmmServiceMap.get(ccapId);
         Boolean effectiveIsConnected = true;
         String response = null;
-        org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.poll.connection.output.ccap.ConnectionBuilder
+        org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.poll.connection.output.ccap.ConnectionBuilder
                 connectionRpcOutput =
-                new org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.poll.connection.output.ccap.ConnectionBuilder();
+                new org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.poll.connection.output.ccap.ConnectionBuilder();
 
         if (pcmmService != null) {
             if (pcmmService.getPcmmPdpSocket()) {
@@ -1010,7 +1036,7 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
             CcapBuilder responseCcapBuilder = new CcapBuilder().setCcapId(ccapId).setConnection(connectionOps.build());
 
             connectionRpcOutput =
-                    new org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.poll.connection.output.ccap.ConnectionBuilder()
+                    new org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.poll.connection.output.ccap.ConnectionBuilder()
                             .setConnected(effectiveIsConnected)
                             .setError(outputError)
                             .setTimestamp(connectionDateAndTime);
@@ -1024,8 +1050,8 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
 
         DateAndTime rpcDateAndTime = getNowTimeStamp();
 
-        org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.poll.connection.output.CcapBuilder ccapRpcOutput =
-                new org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.poll.connection.output.CcapBuilder().setCcapId(
+        org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.poll.connection.output.CcapBuilder ccapRpcOutput =
+                new org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.poll.connection.output.CcapBuilder().setCcapId(
                         ccapId).setConnection(connectionRpcOutput.build());
 
         CcapPollConnectionOutputBuilder outputBuilder =
@@ -1070,6 +1096,452 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
 
 
 
+    @Override
+    public Future<RpcResult<QosSetGateOutput>> qosSetGate(QosSetGateInput input) {
+        logger.debug("RPC call to qosSetGate()");
+
+        String inputAppIid = input.getAppId();
+        String inputSubscriberId = input.getSubscriberId();
+        org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.set.gate.input.Gates gates = input.getGates();
+        List<org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.set.gate.input.gates.Gate> gate = gates.getGate();
+        QosSetGateOutputBuilder outputBuilder = new QosSetGateOutputBuilder();
+
+        String inputGateId = gate.get(0).getGateId();
+        Boolean retryOption = false;
+        InstanceIdentifier<Gate> gateIID = qosIID.builder()
+            .child(Apps.class)
+            .child(App.class, new AppKey(inputAppIid))
+            .child(Subscribers.class)
+            .child(Subscriber.class, new SubscriberKey(inputSubscriberId))
+            .child(Gates.class)
+            .child(Gate.class, new GateKey(inputGateId))
+            .build();
+
+        Gate newGate = readGateFromOperationalDatastore(gateIID);
+        final String newGatePathStr = "/" + inputAppIid + "/" + inputSubscriberId + "/" + inputGateId;
+
+        final InetAddress subscriberAddr = getInetAddress(inputSubscriberId);
+        if (subscriberAddr == null) {
+            final String msg = String.format("SubscriberId must be a valid ipaddress: %s",
+                                             inputSubscriberId);
+            logger.error(msg);
+            SetFailureBuilder fb = new SetFailureBuilder();
+            final FailureType ft = FailureType.Unsent;
+            fb.setFailure(ft);
+            fb.setMessage(msg);
+            final SetFailure f = fb.build();
+            outputBuilder.setSetResponseType(f);
+            return Futures.immediateFuture(RpcResultBuilder.success(outputBuilder.build()).build());
+        }
+
+        final Ccap ccap = findCcapForSubscriberId(subscriberAddr);
+        if (ccap == null) {
+            final String msg =
+                String.format("qosSetGate(): Error finding CCAP for %s", newGatePathStr);
+            logger.error(msg);
+            SetFailureBuilder fb = new SetFailureBuilder();
+            final FailureType ft = FailureType.Unsent;
+            fb.setFailure(ft);
+            fb.setMessage(msg);
+            final SetFailure f = fb.build();
+            outputBuilder.setSetResponseType(f);
+            return Futures.immediateFuture(RpcResultBuilder.success(outputBuilder.build()).build());
+        }
+
+        logger.debug("Mapped {} to {}", inputSubscriberId, ccap.getCcapId());
+
+        final PCMMService pcmmService = pcmmServiceMap.get(ccap.getCcapId());
+        if (pcmmService == null) {
+            final String msg =
+            String.format("Unable to locate PCMM Service for CCAP: %s ; with subscriber: %s", ccap, inputSubscriberId);
+            logger.error(msg);
+            SetFailureBuilder fb = new SetFailureBuilder();
+            final FailureType ft = FailureType.Unsent;
+            fb.setFailure(ft);
+            fb.setMessage(msg);
+            final SetFailure f = fb.build();
+            outputBuilder.setSetResponseType(f);
+            return Futures.immediateFuture(RpcResultBuilder.success(outputBuilder.build()).build());
+        }
+
+        final GateBuilder gateBuilder = new GateBuilder();
+        gateBuilder.setGateId(inputGateId)
+            .setGatePath(newGatePathStr)
+            .setCcapId(ccap.getCcapId())
+            .setCopsGateId(gate.get(0).getCopsGateId())
+            .setTimestamp(getNowTimeStamp())
+            .setTimestamp(getNowTimeStamp())
+            .setGateSpec(gate.get(0).getGateSpec())
+            .setTrafficProfile(gate.get(0).getTrafficProfile())
+            .setClassifiers(gate.get(0).getClassifiers());
+
+        newGate = gateBuilder.build();
+
+        if (gate.get(0).getCopsGateId() != null) {
+            retryOption = true;
+        }
+        
+        PCMMService.GateSendStatus status = null;
+        synchronized (pcmmService) {
+            logger.info("Sending gate: Path {} inputSubscriberId {} cops-gate-id {}",
+                        newGatePathStr, inputSubscriberId, gate.get(0).getCopsGateId());
+            
+            status = pcmmService.sendGateSet(newGatePathStr, subscriberAddr, newGate);
+        }
+
+        if (status.didSucceed()) {
+
+            gateMap.put(newGatePathStr, newGate);
+            gateCcapMap.put(newGatePathStr, ccap.getCcapId());
+            Long copsGateId = 0L;
+            SetSuccessfulBuilder sb = new SetSuccessfulBuilder();
+
+            if (status.getCopsGateId() != null) {
+                logger.debug("newGate.getCopsGateId() = {} ", status.getCopsGateId());
+                copsGateId = Long.decode(status.getCopsGateId());
+                sb.setCopsGateId(copsGateId);
+                if (status.getCopsGateId() != null) {
+                    gateBuilder.setCopsGateId(status.getCopsGateId());
+                }
+                if (status.getCopsGateState() != null) {
+                    gateBuilder.setCopsGateState(status.getCopsGateState());
+                }
+                if (status.getCopsGateTimeInfo() != null) {
+                    gateBuilder.setCopsGateTimeInfo(status.getCopsGateTimeInfo());
+                }
+                if (status.getCopsGateUsageInfo() != null) {
+                    gateBuilder.setCopsGateUsageInfo(status.getCopsGateUsageInfo());
+                }
+            }
+
+            mdsalUtils.put(LogicalDatastoreType.OPERATIONAL, gateIID, gateBuilder.build());
+
+            final SetSuccessful s = sb.build();
+            outputBuilder.setSetResponseType(s);
+            return Futures.immediateFuture(RpcResultBuilder.success(outputBuilder.build()).build());
+        }
+        else {
+            if (retryOption == true) {
+                // Try one more time with blank Cops Gate Id in case the gate has timed out unexpectedly
+                logger.info("qosSetGate error msg: {} reason: {}", status.getMessage(), status.getCopsGateStateReason());
+                final GateBuilder retryGateBuilder = new GateBuilder();
+                retryGateBuilder.setGateId(inputGateId)
+                    .setGatePath(newGatePathStr)
+                    .setCcapId(ccap.getCcapId())
+                    .setTimestamp(getNowTimeStamp())
+                    .setTimestamp(getNowTimeStamp())
+                    .setGateSpec(gate.get(0).getGateSpec())
+                    .setTrafficProfile(gate.get(0).getTrafficProfile())
+                    .setClassifiers(gate.get(0).getClassifiers());
+
+                newGate = retryGateBuilder.build();
+
+                synchronized (pcmmService) {
+                    logger.info("Sending gate: Path {} inputSubscriberId {} with cops-gate-id undefined",
+                                newGatePathStr);
+
+                    status = pcmmService.sendGateSet(newGatePathStr, subscriberAddr, newGate);
+                }
+
+                if (status.didSucceed()) {
+
+                    gateMap.put(newGatePathStr, newGate);
+                    gateCcapMap.put(newGatePathStr, ccap.getCcapId());
+                    Long copsGateId = 0L;
+                    SetSuccessfulBuilder sb = new SetSuccessfulBuilder();
+
+                    if (status.getCopsGateId() != null) {
+                        logger.debug("newGate.getCopsGateId() = {} ", status.getCopsGateId());
+                        copsGateId = Long.decode(status.getCopsGateId());
+                        sb.setCopsGateId(copsGateId);
+                        if (status.getCopsGateId() != null) {
+                            gateBuilder.setCopsGateId(status.getCopsGateId());
+                        }
+                        if (status.getCopsGateState() != null) {
+                            gateBuilder.setCopsGateState(status.getCopsGateState());
+                        }
+                        if (status.getCopsGateTimeInfo() != null) {
+                            gateBuilder.setCopsGateTimeInfo(status.getCopsGateTimeInfo());
+                        }
+                        if (status.getCopsGateUsageInfo() != null) {
+                            gateBuilder.setCopsGateUsageInfo(status.getCopsGateUsageInfo());
+                        }
+                    }
+
+                    mdsalUtils.put(LogicalDatastoreType.OPERATIONAL, gateIID, gateBuilder.build());
+
+                    final SetSuccessful s = sb.build();
+                    outputBuilder.setSetResponseType(s);
+                    return Futures.immediateFuture(RpcResultBuilder.success(outputBuilder.build()).build());
+                }
+            }
+            SetFailureBuilder fb = new SetFailureBuilder();
+            final FailureType ft = FailureType.Failed;
+            fb.setFailure(ft);
+            fb.setMessage(status.getMessage());
+            final SetFailure f = fb.build();
+            outputBuilder.setSetResponseType(f);
+            logger.error("qosSetGate error msg: {} reason: {}", status.getMessage(), status.getCopsGateStateReason());
+            return Futures.immediateFuture(RpcResultBuilder.success(outputBuilder.build()).build());
+        }
+
+    }
+
+    @Override
+    public Future<RpcResult<QosDeleteGateOutput>> qosDeleteGate(QosDeleteGateInput input) {
+        logger.debug("RPC call to qosDeleteGate()");
+
+
+        String inputAppIid = input.getAppId();
+        String inputSubscriberId = input.getSubscriberId();
+        String inputGateId = input.getGateId();
+        String strGateId = null;
+
+        InstanceIdentifier<Gate> gateIID = qosIID.builder()
+            .child(Apps.class)
+            .child(App.class, new AppKey(inputAppIid))
+            .child(Subscribers.class)
+            .child(Subscriber.class, new SubscriberKey(inputSubscriberId))
+            .child(Gates.class)
+            .child(Gate.class, new GateKey(inputGateId))
+            .build();
+
+        Gate newGate = readGateFromOperationalDatastore(gateIID);
+        QosDeleteGateOutputBuilder outputBuilder = new QosDeleteGateOutputBuilder();
+        final String newGatePathStr = "/" + inputAppIid + "/" + inputSubscriberId + "/" + inputGateId;
+
+        if (newGate != null) {
+            strGateId = newGate.getCopsGateId();
+            if ((strGateId == null) || (strGateId.length() == 0) || (strGateId.equals("null"))){
+                final String msg =
+                    String.format("qosDeleteGate(): Unknown CopsGateId %s", newGatePathStr);
+                logger.error(msg);
+                DeleteFailureBuilder fb = new DeleteFailureBuilder();
+                final FailureType ft = FailureType.Unsent;
+                fb.setFailure(ft);
+                fb.setMessage(msg);
+                final DeleteFailure f = fb.build();
+                outputBuilder.setDeleteResponseType(f);
+                return Futures.immediateFuture(RpcResultBuilder.success(outputBuilder.build()).build());
+            }
+            else {
+                logger.debug("PacketcableProvider: gateId = {} ", strGateId);
+            }
+        }
+        else {
+            final String msg =
+                String.format("qosDeleteGate(): Error deleting gate %s", newGatePathStr);
+            logger.error(msg);
+            DeleteFailureBuilder fb = new DeleteFailureBuilder();
+            final FailureType ft = FailureType.Unsent;
+            fb.setFailure(ft);
+            fb.setMessage(msg);
+            final DeleteFailure f = fb.build();
+            outputBuilder.setDeleteResponseType(f);
+            return Futures.immediateFuture(RpcResultBuilder.success(outputBuilder.build()).build());
+        }
+
+        final InetAddress subscriberAddr = getInetAddress(inputSubscriberId);
+        if (subscriberAddr == null) {
+            final String msg = String.format("SubscriberId must be a valid ipaddress: %s",
+                                             inputSubscriberId);
+            logger.error(msg);
+            DeleteFailureBuilder fb = new DeleteFailureBuilder();
+            final FailureType ft = FailureType.Unsent;
+            fb.setFailure(ft);
+            fb.setMessage(msg);
+            final DeleteFailure f = fb.build();
+            outputBuilder.setDeleteResponseType(f);
+            return Futures.immediateFuture(RpcResultBuilder.success(outputBuilder.build()).build());
+        }
+
+        final Ccap ccap = findCcapForSubscriberId(subscriberAddr);
+        if (ccap == null) {
+            final String msg = String.format("Unable to find Ccap for subscriber %s:",
+                                             inputSubscriberId);
+            logger.error(msg);
+            DeleteFailureBuilder fb = new DeleteFailureBuilder();
+            final FailureType ft = FailureType.Unsent;
+            fb.setFailure(ft);
+            fb.setMessage(msg);
+            final DeleteFailure f = fb.build();
+            outputBuilder.setDeleteResponseType(f);
+            return Futures.immediateFuture(RpcResultBuilder.success(outputBuilder.build()).build());
+        }
+
+        logger.debug("Mapped {} to {}", inputSubscriberId, ccap.getCcapId());
+
+        final PCMMService pcmmService = pcmmServiceMap.get(ccap.getCcapId());
+        if (pcmmService == null) {
+            final String msg =
+            String.format("Unable to locate PCMM Service for CCAP: %s ; with subscriber: %s", ccap, inputSubscriberId);
+            logger.error(msg);
+            DeleteFailureBuilder fb = new DeleteFailureBuilder();
+            final FailureType ft = FailureType.Unsent;
+            fb.setFailure(ft);
+            fb.setMessage(msg);
+            final DeleteFailure f = fb.build();
+            outputBuilder.setDeleteResponseType(f);
+            return Futures.immediateFuture(RpcResultBuilder.success(outputBuilder.build()).build());
+        }
+
+        Boolean status = false;
+        synchronized (pcmmService) {
+            status = pcmmService.sendGateDelete(newGatePathStr);
+        }
+
+        if (status == true) {
+            Long copsGateId = 0L;
+            copsGateId = Long.decode(strGateId);
+
+            logger.info("qosDeleteGate(): Successfully deleted gate {}", newGatePathStr);
+            mdsalUtils.delete(LogicalDatastoreType.OPERATIONAL, gateIID);
+            DeleteSuccessfulBuilder sb = new DeleteSuccessfulBuilder();
+            sb.setCopsGateId(copsGateId);
+            final DeleteSuccessful s = sb.build();
+            outputBuilder.setDeleteResponseType(s);
+            return Futures.immediateFuture(RpcResultBuilder.success(outputBuilder.build()).build());
+        }
+        else {
+            final String msg = String.format("qosDeleteGate(): Error deleting gate %s", newGatePathStr);
+            logger.error(msg);
+            DeleteFailureBuilder fb = new DeleteFailureBuilder();
+            final FailureType ft = FailureType.Failed;
+            fb.setFailure(ft);
+            fb.setMessage(msg);
+            final DeleteFailure f = fb.build();
+            outputBuilder.setDeleteResponseType(f);
+            return Futures.immediateFuture(RpcResultBuilder.success(outputBuilder.build()).build());
+        }
+    }
+
+    @Override
+    public Future<RpcResult<QosGateInfoOutput>> qosGateInfo(QosGateInfoInput input) {
+        logger.debug("RPC call to qosGateInfo()");
+
+        String inputAppIid = input.getAppId();
+        String inputSubscriberId = input.getSubscriberId();
+        String inputGateId = input.getGateId();
+        QosGateInfoOutputBuilder outputBuilder = new QosGateInfoOutputBuilder();
+        InstanceIdentifier<Gate> gateIID = qosIID.builder()
+            .child(Apps.class)
+            .child(App.class, new AppKey(inputAppIid))
+            .child(Subscribers.class)
+            .child(Subscriber.class, new SubscriberKey(inputSubscriberId))
+            .child(Gates.class)
+            .child(Gate.class, new GateKey(inputGateId))
+            .build();
+
+        Gate infoGate = readGateFromOperationalDatastore(gateIID);
+        final String newGatePathStr = "/" + inputAppIid + "/" + inputSubscriberId + "/" + inputGateId;
+
+        final InetAddress subscriberAddr = getInetAddress(inputSubscriberId);
+        if (subscriberAddr == null) {
+            final String msg = String.format("SubscriberId must be a valid ipaddress: %s",
+                                             inputSubscriberId);
+            logger.error(msg);
+            InfoFailureBuilder fb = new InfoFailureBuilder();
+            final FailureType ft = FailureType.Unsent;
+            fb.setFailure(ft);
+            fb.setMessage(msg);
+            final InfoFailure f = fb.build();
+            outputBuilder.setInfoResponseType(f);
+            return Futures.immediateFuture(RpcResultBuilder.success(outputBuilder.build()).build());
+        }
+
+        final Ccap ccap = findCcapForSubscriberId(subscriberAddr);
+        if (ccap == null) {
+            final String msg = String.format("Unable to find Ccap for subscriber %s:",
+                                             inputSubscriberId);
+            logger.error(msg);
+            InfoFailureBuilder fb = new InfoFailureBuilder();
+            final FailureType ft = FailureType.Unsent;
+            fb.setFailure(ft);
+            fb.setMessage(msg);
+            final InfoFailure f = fb.build();
+            outputBuilder.setInfoResponseType(f);
+            return Futures.immediateFuture(RpcResultBuilder.success(outputBuilder.build()).build());
+        }
+
+        logger.debug("Mapped {} to {}", inputSubscriberId, ccap.getCcapId());
+
+        final PCMMService pcmmService = pcmmServiceMap.get(ccap.getCcapId());
+        if (pcmmService == null) {
+            final String msg =
+                String.format("Unable to locate PCMM Service for CCAP: %s ; with subscriber: %s",
+                              ccap, inputSubscriberId);
+            logger.error(msg);
+            InfoFailureBuilder fb = new InfoFailureBuilder();
+            final FailureType ft = FailureType.Unsent;
+            fb.setFailure(ft);
+            fb.setMessage(msg);
+            final InfoFailure f = fb.build();
+            outputBuilder.setInfoResponseType(f);
+            return Futures.immediateFuture(RpcResultBuilder.success(outputBuilder.build()).build());
+        }
+        
+        PCMMService.GateSendStatus status = null;
+
+        synchronized (pcmmService) {
+            status = pcmmService.sendGateInfo(newGatePathStr);
+        }
+
+        if (status.didSucceed()) {
+            DateAndTime gateDateAndTime = getNowTimeStamp();
+            List<String> gateOutputError = Collections.emptyList();
+            gateOutputError = Collections.singletonList(status.getMessage());
+            GateBuilder gateBuilder = new GateBuilder();
+
+            gateBuilder.setGateId(inputGateId)
+                .setGatePath(newGatePathStr)
+                .setCcapId(ccap.getCcapId())
+                .setCopsGateState(status.getCopsGateState() + "/" + status.getCopsGateStateReason())
+                .setCopsGateTimeInfo(status.getCopsGateTimeInfo())
+                .setCopsGateUsageInfo(status.getCopsGateUsageInfo())
+                .setCopsGateId(status.getCopsGateId())
+                .setError(gateOutputError)
+                .setTimestamp(gateDateAndTime);
+
+            infoGate = gateBuilder.build();
+
+            mdsalUtils.put(LogicalDatastoreType.OPERATIONAL, gateIID, infoGate);
+
+            org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.info.successful.gates.GateBuilder responseGateBuilder
+                = new org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.info.successful.gates.GateBuilder();
+            responseGateBuilder.fieldsFrom(infoGate);
+            responseGateBuilder.setGateId(inputGateId);
+            responseGateBuilder.setGatePath(newGatePathStr);
+            org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.info.successful.gates.Gate responseGate =
+                responseGateBuilder.build();
+            List<org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.info.successful.gates.Gate> responseGateList =
+                new ArrayList<org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.info.successful.gates.Gate>();
+            responseGateList.add(responseGate);
+            org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.info.successful.GatesBuilder responseGatesBuilder =
+                new org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.info.successful.GatesBuilder();
+            responseGatesBuilder.setGate(responseGateList);
+            org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.info.successful.Gates responseGates =
+                responseGatesBuilder.build();
+
+            InfoSuccessfulBuilder sb = new InfoSuccessfulBuilder();
+            sb.setGates(responseGates);
+            final InfoSuccessful s = sb.build();
+            outputBuilder.setInfoResponseType(s);
+            return Futures.immediateFuture(RpcResultBuilder.success(outputBuilder.build()).build());
+        }
+        else {
+            final String msg =
+                String.format("qosGateInfo(): error msg: %s reason: %s", status.getMessage(), status.getCopsGateStateReason());
+            logger.error(msg);
+            InfoFailureBuilder fb = new InfoFailureBuilder();
+            final FailureType ft = FailureType.Failed;
+            fb.setFailure(ft);
+            fb.setMessage(msg);
+            final InfoFailure f = fb.build();
+            outputBuilder.setInfoResponseType(f);
+            return Futures.immediateFuture(RpcResultBuilder.success(outputBuilder.build()).build());
+        }
+    }
+
     @Override
     public Future<RpcResult<QosPollGatesOutput>> qosPollGates(QosPollGatesInput input) {
         // TODO refactor this method into smaller parts
@@ -1091,8 +1563,8 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
 
         String rpcResponse = null;
 
-        org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.qos.poll.gates.output.GateBuilder gateOutputBuilder =
-                new org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.qos.poll.gates.output.GateBuilder();
+        org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.poll.gates.output.GateBuilder gateOutputBuilder =
+                new org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.poll.gates.output.GateBuilder();
 
         GateBuilder gateBuilder = new GateBuilder();
 
@@ -1256,8 +1728,8 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
         @Override
         public void run() {
 
-            org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.qos.poll.gates.output.GateBuilder gateOutputBuilder =
-                    new org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.qos.poll.gates.output.GateBuilder();
+            org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.poll.gates.output.GateBuilder gateOutputBuilder =
+                    new org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.poll.gates.output.GateBuilder();
 
             GateBuilder gateBuilder = new GateBuilder();
 
index ed53ce9084a37ee5199994ca339a2726dfbfa87d..1b1176550cfda174870c9a77bccb26a96dc38f7f 100644 (file)
@@ -14,10 +14,10 @@ import org.opendaylight.controller.packetcable.provider.validation.impl.validato
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.ccaps.CcapValidator;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.ccaps.CcapsValidator;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.ccaps.ConnectionValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.Ccaps;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.attributes.AmId;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.attributes.Connection;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccaps.Ccap;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.Ccaps;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.attributes.AmId;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.attributes.Connection;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccaps.Ccap;
 
 /**
  * A ValidatorProviderFactory that can provide validators for types under packetcable:ccaps.
index 8f0a17ddf5f881c844b6deaefe30d3f7724c60f5..4823f07e06c9e949a042046c3e55753542880fcc 100644 (file)
@@ -23,19 +23,19 @@ import org.opendaylight.controller.packetcable.provider.validation.impl.validato
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier.ClassifiersValidator;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier.ExtClassifierValidator;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier.Ipv6ClassifierValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.Classifiers;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.ClassifierContainer;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.classifier.Classifier;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.ext.classifier.ExtClassifier;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gate.spec.GateSpec;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.Apps;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.App;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.Subscribers;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.Subscriber;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.Gates;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.ipv6.classifier.Ipv6Classifier;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.TrafficProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.Classifiers;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.ClassifierContainer;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.classifier.Classifier;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.ext.classifier.ExtClassifier;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gate.spec.GateSpec;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.Apps;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.App;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.Subscribers;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.Subscriber;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.Gates;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.ipv6.classifier.Ipv6Classifier;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.TrafficProfile;
 
 /**
  * * A ValidatorProviderFactory that can provide validators for types under packetcable:qos.
index a300a3ba28edf42d350da1b28e69d4ed982df720..065a99e0c00e891209eb311baf20d4a8f1a80722 100644 (file)
@@ -9,7 +9,7 @@
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.ccaps;
 
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.attributes.AmId;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.attributes.AmId;
 
 /**
  * @author rvail
index 1c55e09758fc9136c13258f11e89954a43ee8b88..a6dad9fa3893f7a30fb345130eb2b68fe95ea536 100644 (file)
@@ -9,7 +9,7 @@
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.ccaps;
 
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccaps.Ccap;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccaps.Ccap;
 
 /**
  * @author rvail
index 1c2c3540dd66b18115348c50d753785b4976e073..fa5cd0be9b014bc422472a444f9e508632ed94dc 100644 (file)
@@ -9,8 +9,8 @@
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.ccaps;
 
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.Ccaps;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccaps.Ccap;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.Ccaps;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccaps.Ccap;
 
 /**
  * @author rvail
index 0ba5799257e56861f9346e925c4132f3149d7cce..fc8e224ee59be0718b5b2f315896599a5610cff7 100644 (file)
@@ -9,7 +9,7 @@
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.ccaps;
 
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.attributes.Connection;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.attributes.Connection;
 
 /**
  * @author rvail
index 31d42917b0c2ce389cf83e717bbadb01e7e6ab71..286c5d98a0d2de020bc87113dd58da7e345a1406 100644 (file)
@@ -9,7 +9,7 @@
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos;
 
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.App;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.App;
 
 /**
  * @author rvail
index 5582b31900931a5f73b58eced27866b7b2ea17d2..1142c9d49f0f41e74669f32249ca477093256fb2 100644 (file)
@@ -9,8 +9,8 @@
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos;
 
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.Apps;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.App;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.Apps;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.App;
 
 /**
  * @author rvail
index 2cd603674c5c4ec738273a2bc64aa29447dc1b4e..ed13457bfccef0672b0e3a3fe0c8e05f1aa91ee7 100644 (file)
@@ -9,7 +9,7 @@
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos;
 
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gate.spec.GateSpec;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gate.spec.GateSpec;
 
 /**
  * @author rvail
index db98d07a60a314e6cd19ac0919bd308ccd0b1e4b..aeee4aa7df183ec2e0bc8bf00e918b73259c29c0 100644 (file)
@@ -10,7 +10,7 @@ package org.opendaylight.controller.packetcable.provider.validation.impl.validat
 
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier.ClassifiersValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
 
 /**
  * @author rvail
index b43e6c13772fe588e17e2f5b117178626498fe26..4209ac793254ea7d9e0d5c3cc56f06c2b6c526e9 100644 (file)
@@ -9,8 +9,8 @@
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos;
 
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.Gates;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.Gates;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
 
 /**
  * @author rvail
index 4c929a16ff42efa332bb65d95db8e7d0eaebe453..5ef2c325b40c0ded41d880bbc39f5d1e9dc562f0 100644 (file)
@@ -9,7 +9,7 @@
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos;
 
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.Subscriber;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.Subscriber;
 
 /**
  * @author rvail
index fd90c3d5fbb6d78163ed333ec7ca6300c3b3e834..760e2fb013047dbbdf99d2604f4921fb78d8a04d 100644 (file)
@@ -9,8 +9,8 @@
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos;
 
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.Subscribers;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.Subscriber;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.Subscribers;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.Subscriber;
 
 /**
  * @author rvail
index 80d8816a25d04f0f017dbf4ed1124dd514e2d175..ac2d05eee21d3321525c76f9f6f6bcc76c3e3263 100644 (file)
@@ -9,14 +9,14 @@
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos;
 
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.TrafficProfile;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.TrafficProfileChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.FlowSpecChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.ServiceClassNameChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.RtpChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.UgsChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.flow.spec.profile.FlowSpecProfile;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.serviceclass.name.profile.ServiceClassNameProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.TrafficProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.TrafficProfileChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.FlowSpecChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.ServiceClassNameChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.RtpChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.UgsChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.flow.spec.profile.FlowSpecProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.serviceclass.name.profile.ServiceClassNameProfile;
 
 /**
  * @author rvail
index e8eea5093cf296c5e4f59cd6c15291f35d36afc9..09f06673b29c60ecd9c71d0183ca47e52a6edfae 100644 (file)
@@ -9,10 +9,10 @@
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier;
 
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.classifier.container.ClassifierChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.classifier.container.classifier.choice.ExtClassifierChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.classifier.container.classifier.choice.Ipv6ClassifierChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.classifier.container.classifier.choice.QosClassifierChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.classifier.container.ClassifierChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.classifier.container.classifier.choice.ExtClassifierChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.classifier.container.classifier.choice.Ipv6ClassifierChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.classifier.container.classifier.choice.QosClassifierChoice;
 
 /**
  * @author rvail
index 1079e50ebfab44faa4e85ee2fb32d719ac6bc780..954e870e361ae1e16b1d23eb5d95350716684158 100644 (file)
@@ -9,7 +9,7 @@
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier;
 
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.ClassifierContainer;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.ClassifierContainer;
 
 /**
  * @author rvail
index f870e8e224593b325282080464100fbd523bf05a..de876135e5062e831c44b47237d59be68024bdb8 100644 (file)
@@ -9,7 +9,7 @@
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier;
 
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.classifier.Classifier;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.classifier.Classifier;
 
 
 /**
index aae377acd03867f736856e1999791a58291de0c4..01d14abec27b3c486f46a28e1048d88cb8cdb480 100644 (file)
@@ -9,9 +9,9 @@
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier;
 
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.Classifiers;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.ClassifierContainer;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.classifier.container.classifier.choice.QosClassifierChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.Classifiers;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.ClassifierContainer;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.classifier.container.classifier.choice.QosClassifierChoice;
 
 /**
  * @author rvail
index f0f8fa4967e7b03e5c17b1b3d46745ada35974be..5e64f3e4530b65f3bc39183dca1d2b753f6ea3dc 100644 (file)
@@ -9,7 +9,7 @@
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier;
 
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.ext.classifier.ExtClassifier;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.ext.classifier.ExtClassifier;
 
 /**
  * @author rvail
index 9150618ee5192e290da71247457e43d24c9916d6..faa1de010bb795c87984089a8d6842c1c31633d7 100644 (file)
@@ -9,7 +9,7 @@
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier;
 
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.ipv6.classifier.Ipv6Classifier;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.ipv6.classifier.Ipv6Classifier;
 
 /**
  * @author rvail
index 417722cea45ebfcfe86888873672b9748e1949b2..650903ea507e1a0007594d4eceb04cc2c45e909e 100644 (file)
@@ -35,29 +35,29 @@ import org.junit.Test;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ServiceClassName;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ServiceFlowDirection;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.TosByte;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.TpProtocol;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.attributes.AmId;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.attributes.Connection;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccaps.Ccap;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.Classifiers;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.ClassifierContainer;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.classifier.container.classifier.choice.QosClassifierChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.flow.spec.profile.FlowSpecProfile;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.classifier.Classifier;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gate.spec.GateSpec;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gate.spec.GateSpecBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.TrafficProfile;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.TrafficProfileBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.TrafficProfileChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.FlowSpecChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.FlowSpecChoiceBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.ServiceClassNameChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.ServiceClassNameChoiceBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.serviceclass.name.profile.ServiceClassNameProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ServiceClassName;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ServiceFlowDirection;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.TosByte;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.TpProtocol;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.attributes.AmId;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.attributes.Connection;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccaps.Ccap;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.Classifiers;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.ClassifierContainer;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.classifier.container.classifier.choice.QosClassifierChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.flow.spec.profile.FlowSpecProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.classifier.Classifier;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gate.spec.GateSpec;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gate.spec.GateSpecBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.TrafficProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.TrafficProfileBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.TrafficProfileChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.FlowSpecChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.FlowSpecChoiceBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.ServiceClassNameChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.ServiceClassNameChoiceBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.serviceclass.name.profile.ServiceClassNameProfile;
 import org.pcmm.PCMMPdpAgent;
 import org.pcmm.gates.IPCMMGate;
 import org.pcmm.rcd.IPCMMClient;
index a9c2b5c744b0ed62de2949170dd99e7325465af6..f3f0d8dd7b1f20ea691423b0471f85c15cf54ce6 100644 (file)
@@ -21,7 +21,7 @@ import com.google.common.collect.Maps;
 import java.util.Map;
 import org.junit.Test;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.ccaps.CcapValidatorTest;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccaps.Ccap;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccaps.Ccap;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
index bb605e5706df0280a16eee6290b027ed8d7599ff..54ccfcfa76462f479eed6933919327b4c8d20a39 100644 (file)
@@ -14,10 +14,10 @@ import static org.hamcrest.MatcherAssert.assertThat;
 
 import org.junit.Test;
 import org.opendaylight.controller.packetcable.provider.validation.ValidatorProvider;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.Ccaps;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.attributes.AmId;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.attributes.Connection;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccaps.Ccap;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.Ccaps;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.attributes.AmId;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.attributes.Connection;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccaps.Ccap;
 
 /**
  * @author rvail
index a6ee4d902ea760698f25674c9250529e61bd5e8f..08d1c6075771db5e6e9134f33acb9f8357907d93 100644 (file)
@@ -14,19 +14,19 @@ import static org.hamcrest.MatcherAssert.assertThat;
 
 import org.junit.Test;
 import org.opendaylight.controller.packetcable.provider.validation.ValidatorProvider;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.Classifiers;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.ClassifierContainer;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.classifier.Classifier;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.ext.classifier.ExtClassifier;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gate.spec.GateSpec;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.Apps;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.App;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.Subscribers;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.Subscriber;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.Gates;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.ipv6.classifier.Ipv6Classifier;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.TrafficProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.Classifiers;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.ClassifierContainer;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.classifier.Classifier;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.ext.classifier.ExtClassifier;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gate.spec.GateSpec;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.Apps;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.App;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.Subscribers;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.Subscriber;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.Gates;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.ipv6.classifier.Ipv6Classifier;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.TrafficProfile;
 
 /**
  * @author rvail
index 6b237a1fff539b53e52c27bcab41798315eb7ed6..5a55d13d5a0c0b9abe0d341a578e1b27f4bbea55 100644 (file)
@@ -14,23 +14,23 @@ import static org.hamcrest.MatcherAssert.assertThat;
 
 import org.junit.Test;
 import org.opendaylight.controller.packetcable.provider.validation.ValidatorProvider;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.Ccaps;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.attributes.AmId;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.attributes.Connection;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccaps.Ccap;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.Classifiers;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.ClassifierContainer;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.classifier.Classifier;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.ext.classifier.ExtClassifier;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gate.spec.GateSpec;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.Apps;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.App;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.Subscribers;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.Subscriber;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.Gates;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.ipv6.classifier.Ipv6Classifier;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.TrafficProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.Ccaps;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.attributes.AmId;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.attributes.Connection;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccaps.Ccap;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.Classifiers;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.ClassifierContainer;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.classifier.Classifier;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.ext.classifier.ExtClassifier;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gate.spec.GateSpec;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.Apps;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.App;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.Subscribers;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.Subscriber;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.Gates;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.ipv6.classifier.Ipv6Classifier;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.TrafficProfile;
 
 /**
  * @author rvail
index fd099e39ed247af50a7cb299d82e4d2ba9a8456f..b435a6336f797eca2aee3a266ca51ad37d9fc4e7 100644 (file)
@@ -16,7 +16,7 @@ import org.opendaylight.controller.packetcable.provider.validation.ValidationExc
 import org.opendaylight.controller.packetcable.provider.validation.Validator;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.ccaps.ConnectionValidator;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.ccaps.ConnectionValidatorTest;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.attributes.Connection;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.attributes.Connection;
 
 /**
  * @author rvail
index daf3fa00c58a88d5bd3cdca89ab7509f975cef75..2f6ccbf3375f257270a9d2c68f511ee538d45e2c 100644 (file)
@@ -13,8 +13,8 @@ import org.junit.Test;
 import org.opendaylight.controller.packetcable.provider.test.rules.Params;
 import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.Validator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.attributes.AmId;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.attributes.AmIdBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.attributes.AmId;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.attributes.AmIdBuilder;
 
 /**
  * @author rvail
index 8279ddd89d2a686cc6ab04ef4b567478952b6586..b0a1388a317865c92b034242374038c75a801f8b 100644 (file)
@@ -14,9 +14,9 @@ import org.junit.Test;
 import org.opendaylight.controller.packetcable.provider.test.rules.Params;
 import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.Validator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ServiceClassName;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccaps.Ccap;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccaps.CcapBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ServiceClassName;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccaps.Ccap;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccaps.CcapBuilder;
 
 /**
  * @author rvail
index 8a21bfd6e2ffc4d337ad761c2c064a7e60361737..b86396706591cffd4048c91c26837eb2edc05749 100644 (file)
@@ -14,9 +14,9 @@ import org.junit.Test;
 import org.opendaylight.controller.packetcable.provider.test.rules.Params;
 import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.Validator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.Ccaps;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.CcapsBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccaps.Ccap;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.Ccaps;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.CcapsBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccaps.Ccap;
 
 /**
  * @author rvail
index 26bf422e2330550fa082064077de10dd667dfd0d..57657c3f99d0c3897a1659bef70e485e2535b382 100644 (file)
@@ -16,8 +16,8 @@ import org.opendaylight.controller.packetcable.provider.validation.Validator;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.attributes.Connection;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ccap.attributes.ConnectionBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.attributes.Connection;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.attributes.ConnectionBuilder;
 
 /**
  * @author rvail
index 3beb0d475997f482cf4db899ca0565bcc5753bf7..41145a9b3b568ca99c8c3912649b1e0e3e17fec9 100644 (file)
@@ -13,8 +13,8 @@ import org.junit.Test;
 import org.opendaylight.controller.packetcable.provider.test.rules.Params;
 import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.Validator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.App;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.AppBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.App;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.AppBuilder;
 
 /**
  * @author rvail
index 573e888803ee74681f74b8a0d35831fcaa898c1e..b81f03b4561bff04c642ee9519040e86ba6cdcbf 100644 (file)
@@ -14,8 +14,8 @@ import org.junit.Test;
 import org.opendaylight.controller.packetcable.provider.test.rules.Params;
 import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.Validator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.Apps;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.AppsBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.Apps;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.AppsBuilder;
 
 /**
  * @author rvail
index ce541bfd731ec487b5571e8ccf2895a61ad06fa8..068f196f62916caf0f08624c09c4dff47780a91d 100644 (file)
@@ -13,10 +13,10 @@ import org.junit.Test;
 import org.opendaylight.controller.packetcable.provider.test.rules.Params;
 import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.Validator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ServiceFlowDirection;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.TosByte;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gate.spec.GateSpec;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gate.spec.GateSpecBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ServiceFlowDirection;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.TosByte;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gate.spec.GateSpec;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gate.spec.GateSpecBuilder;
 
 /**
  * @author rvail
index e4f050a3575cdda2f0409fbe2c72c2253a5fdc9e..ff6512652af6fb62e0298edbda640f8ffeb59272 100644 (file)
@@ -14,8 +14,8 @@ import org.opendaylight.controller.packetcable.provider.test.rules.Params;
 import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.Validator;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier.ClassifiersValidatorTest;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.GateBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.GateBuilder;
 
 /**
  * @author rvail
index 195fa0214f2621bc788cfabb2195f6d67d4e2326..bdaed5f3d2986ecf55ee335ad6142ae679255e07 100644 (file)
@@ -14,8 +14,8 @@ import org.junit.Test;
 import org.opendaylight.controller.packetcable.provider.test.rules.Params;
 import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.Validator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.Gates;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.subscriber.GatesBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.Gates;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.GatesBuilder;
 
 /**
  * @author rvail
index 5b44ca988afd488f7b6e576cb92fd58cf9bff382..62b2c8785c9bc140cb322ab5e8be956475890eae 100644 (file)
@@ -13,8 +13,8 @@ import org.junit.Test;
 import org.opendaylight.controller.packetcable.provider.test.rules.Params;
 import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.Validator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.Subscriber;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.subscribers.SubscriberBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.Subscriber;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.SubscriberBuilder;
 
 /**
  * @author rvail
index 05e1726610b27d87528fd32461994122233728d6..d3be94058a70b70c31a158f068dc73b9d659c0e2 100644 (file)
@@ -14,8 +14,8 @@ import org.junit.Test;
 import org.opendaylight.controller.packetcable.provider.test.rules.Params;
 import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.Validator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.Subscribers;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.gates.apps.app.SubscribersBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.Subscribers;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.SubscribersBuilder;
 
 /**
  * @author rvail
index fa8ec22875333841520fa6870b2cf68e10d94897..140bcbc2e2ed8425a735d8ce4df5801fce27704e 100644 (file)
@@ -13,13 +13,13 @@ import org.junit.Test;
 import org.opendaylight.controller.packetcable.provider.test.rules.Params;
 import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.Validator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ServiceClassName;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.TrafficProfile;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.TrafficProfileBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.ServiceClassNameChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.ServiceClassNameChoiceBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.serviceclass.name.profile.ServiceClassNameProfile;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.serviceclass.name.profile.ServiceClassNameProfileBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ServiceClassName;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.TrafficProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.TrafficProfileBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.ServiceClassNameChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.ServiceClassNameChoiceBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.serviceclass.name.profile.ServiceClassNameProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.serviceclass.name.profile.ServiceClassNameProfileBuilder;
 
 /**
  * @author rvail
index 49bba56c875dba6f777ea51ebf55905a6033b4b9..8266a489948b5a621a1b1d0ff7e01c512b18b139 100644 (file)
@@ -13,12 +13,12 @@ import org.junit.Test;
 import org.opendaylight.controller.packetcable.provider.test.rules.Params;
 import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.Validator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.classifier.container.ClassifierChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.classifier.container.classifier.choice.ExtClassifierChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.classifier.container.classifier.choice.ExtClassifierChoiceBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.classifier.container.classifier.choice.Ipv6ClassifierChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.classifier.container.classifier.choice.Ipv6ClassifierChoiceBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.classifier.container.classifier.choice.QosClassifierChoiceBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.classifier.container.ClassifierChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.classifier.container.classifier.choice.ExtClassifierChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.classifier.container.classifier.choice.ExtClassifierChoiceBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.classifier.container.classifier.choice.Ipv6ClassifierChoice;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.classifier.container.classifier.choice.Ipv6ClassifierChoiceBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.classifier.container.classifier.choice.QosClassifierChoiceBuilder;
 import org.opendaylight.yangtools.yang.binding.DataContainer;
 
 /**
index 2019edf026e17251660afb23be727ddbe62fa758..9cba672ef856eb7712ac779dfac7f2eff3aa400d 100644 (file)
@@ -13,8 +13,8 @@ import org.junit.Test;
 import org.opendaylight.controller.packetcable.provider.test.rules.Params;
 import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.Validator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.ClassifierContainer;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.ClassifierContainerBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.ClassifierContainer;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.ClassifierContainerBuilder;
 
 /**
  * @author rvail
index dd94badb719c26e44a5fb48871ae9f0d68c140d2..2fe3267c2f2066faca5dfbc36f2bf173caac17d2 100644 (file)
@@ -15,10 +15,10 @@ import org.opendaylight.controller.packetcable.provider.validation.ValidationExc
 import org.opendaylight.controller.packetcable.provider.validation.Validator;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.TosByte;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.TpProtocol;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.classifier.Classifier;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.classifier.ClassifierBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.TosByte;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.TpProtocol;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.classifier.Classifier;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.classifier.ClassifierBuilder;
 
 /**
  * @author rvail
index 62a6c79ba237e0fc2c2c3a561448a45256122c61..a8dd80fa7c16a4da7c06420326736d7dfd8e6000 100644 (file)
@@ -15,9 +15,9 @@ import org.junit.Test;
 import org.opendaylight.controller.packetcable.provider.test.rules.Params;
 import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.Validator;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.Classifiers;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.ClassifiersBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.classifier.attributes.classifiers.ClassifierContainer;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.Classifiers;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.ClassifiersBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.classifier.attributes.classifiers.ClassifierContainer;
 
 /**
  * @author rvail
index bfff5911c5780f1fce0df7467fc6d5a9f8b422c5..ecde2ca97c76b3ce5fd93dc98f05845c47eb1737 100644 (file)
@@ -15,11 +15,11 @@ import org.opendaylight.controller.packetcable.provider.validation.ValidationExc
 import org.opendaylight.controller.packetcable.provider.validation.Validator;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ClassifierActivationState;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.TosByte;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.TpProtocol;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.ext.classifier.ExtClassifier;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.ext.classifier.ExtClassifierBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ClassifierActivationState;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.TosByte;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.TpProtocol;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.ext.classifier.ExtClassifier;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.ext.classifier.ExtClassifierBuilder;
 
 /**
  * @author rvail
index a3702bdc9436b51687ecbc28b60ffb95c1dfbdf7..4a96ded826830f0edc1e7aabd5f9b12eff769f21 100644 (file)
@@ -15,11 +15,11 @@ import org.opendaylight.controller.packetcable.provider.validation.ValidationExc
 import org.opendaylight.controller.packetcable.provider.validation.Validator;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.ClassifierActivationState;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.TosByte;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.TpProtocol;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.ipv6.classifier.Ipv6Classifier;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170125.pcmm.qos.ipv6.classifier.Ipv6ClassifierBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ClassifierActivationState;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.TosByte;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.TpProtocol;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.ipv6.classifier.Ipv6Classifier;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.ipv6.classifier.Ipv6ClassifierBuilder;
 
 /**
  * @author rvail