Initial import of Microsemi Driver
Change-Id: I431d5f2c18e0b66a84c36273c3d9f0b84f223841
Added in BUCK files for building driver
Change-Id: I70681327f5b89f67e904c45d5974ab393652d51f
Corrected some syntax errors
Change-Id: I11150cc499c212005f80619e3900e747f1c23d96
Updated pom file to clean build
Change-Id: I6613ddc9e6802aa882e716cf04df210249870835
Added in utility functions for EA1000 Init
Change-Id: I51ffe0cf0daf9ffcea0e2479ee9982fcd1755440
Added YMS code to Microsemi Driver
Change-Id: I6f2a14e454c6909bf9e9f6025321c74c98c13c72
Updated driver to work with YMS and YCH
Change-Id: If7dbe3cd5bd1b6f902d09d6b2dc3895605d70f70
Implemented IetfSystemManager as a service and call on YMS as a service
Change-Id: If1c5e8482b1f53f578a3b0b770accd50024111cf
Moved YMS calls over in to Yang Service implementation
Change-Id: I044aad06f1ef7452bc48e88987787a683666cd72
improved unit test for IetfSystemManager
Change-Id: I48fbf831e7e5ca0e1ef3de8288e56da1b5ebb7a4
Major changes to IetfSystemManager to work in live system
Change-Id: I6e3aa118ba422151f314b9a666860d90905c9929
Added in retry mechanism for DeviceDescription to wait for YCH
Change-Id: If8e0f2c2f315ffd6db15627a11382a00217dd262
Added in implementation of MseaSaFiltering and unit tests
Change-Id: I34bf888e0e732bd4664d1fb8ef5abb679b1506fe
Updated driver with unit tests for MseaSaFiltering
Change-Id: I7ea2407a546622ff55d1ab21610c45697546d632
Modified removeFlowRules of Ea1000FlowRuleProgrammable
Change-Id: Ibb4a555f61887a8e6e42af588bb42f7b70f58efb
Added in manager for MseaUniEvc service with unit tests
Change-Id: Idc5853f46051548973f52a0659f7f88982ff960c
Implemented getFlowEntries() for EVCs from EA1000
Change-Id: Ie85dadfa7760f0b30a9bdf6ccd09cca9f097fff9
Added in translation of FlowRules in to EVC on EA1000
Change-Id: Icfb65171c3300c96b3ca4e18cbd327f0ed2190be
Added in handling of FlowRule deletion including complex ceVlanMaps
Change-Id: I7fd0bb0ef04d1b40e4b7d6a6db7f7ee662329780
Updated Service entries for new onos-yang-tools
Change-Id: I44e655202f3a45073e1e16f83737caed6e01afa8
Revert "Updated Service entries for new onos-yang-tools"
This reverts commit 642b550ef1de12ed59bad2eaa3a2da414d2e5e59.
Improved timeout mechanism for YANG model loading
Change-Id: If744ecd206372e822edf2b736c83226321a12256
Minor edits of EVC creation
Change-Id: Ib0a4763deaf6dce37625ba77f5095b39cd98272d
Added in CustomEvc and supporting classes
Change-Id: Iad60eb1bcd48d2aec55b894b2d419b51852c3b2f
Created CeVlanUtils to resolve loading problem
Change-Id: I0d63931ad2c5ad2725861ebc7dccc4d5fe7b9298
Modified startup check
Change-Id: I6e6bcfa7e615044cb08fe7ee2f8a6c8b89aabb21
Modified handlin of flow rules
Change-Id: I965a79c23298866122aeb94c6d9d584aafee3bd5
Fixed problem with ceVlanMap
Change-Id: If1458c35d0b95b5b25b6636f098292f9e91c06c6
Minor Pom edits
Change-Id: I5cefb18674aa04b1f50bd7e2306260c1c3ad3814
Commented out extension references in YANG files to avoid onos-yang-tools problems
Change-Id: I32fdb34c4f476f495fe28e75d0f410aaf14e2ec1
Corrected error in removing 0 in CeVlanMapUtils
Change-Id: I8cd1fd02788b81c2613364d5639ef6e090057f80
Changes in YMS to accomodate EA1000 driver
Change-Id: I6ae2b9bd2be49eae8d4ad2f929dfe3214c514550
diff --git a/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/CustomEvc.java b/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/CustomEvc.java
new file mode 100644
index 0000000..722fe78
--- /dev/null
+++ b/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/CustomEvc.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright 2017-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.uni.evc.service
+ .rev20160317.mseaunievcservice.mefservices.uni;
+
+import org.onosproject.drivers.microsemi.yang.UniSide;
+import org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.types
+ .rev20160229.mseatypes.ServiceListType;
+import org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.uni.evc.service.rev20160317.mseaunievcservice.evcperuniextensionattributes.FlowMapping;
+import org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.uni.evc.service
+ .rev20160317.mseaunievcservice.mefservices.uni.evc.CustomEvcPerUni;
+import org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.uni.evc.service.rev20160317.mseaunievcservice.mefservices.uni.evc.evcperuni.EvcPerUnic;
+import org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.uni.evc.service.rev20160317.mseaunievcservice.mefservices.uni.evc.evcperuni.EvcPerUnin;
+
+/**
+ * A custom implementation of the DefaultEvc - especially its Builder.
+ *
+ * This allows the Evc to be modified after creation. These additions to the
+ * builder are necessary because in the EA1000 YANG model many different Open Flow
+ * flows can be associated with one EVC - each one has its own Ce-Vlan-Id and
+ * Flow Reference
+ */
+public class CustomEvc extends DefaultEvc {
+
+ public static EvcBuilder builder(Evc evc) {
+ return new EvcBuilder(evc);
+ }
+
+ public static class EvcBuilder extends DefaultEvc.EvcBuilder {
+
+ /**
+ * Allow a builder to be constructed from an existing EVC
+ * @param evc An existing EVC
+ */
+ public EvcBuilder(Evc evc) {
+ this.evcPerUni = evc.evcPerUni();
+ this.evcStatus = evc.evcStatus();
+ this.evcIndex = evc.evcIndex();
+ this.mtuSize = evc.mtuSize();
+ this.cevlanCosPreservation = evc.cevlanCosPreservation();
+ this.cevlanIdPreservation = evc.cevlanIdPreservation();
+ this.name = evc.name();
+ this.yangEvcOpType = evc.yangEvcOpType();
+ this.yangAugmentedInfoMap = evc.yangAugmentedInfoMap();
+ this.name = evc.name();
+ this.serviceType = evc.serviceType();
+ this.selectLeafFlags = evc.selectLeafFlags();
+ this.uniEvcId = evc.uniEvcId();
+ this.valueLeafFlags = evc.valueLeafFlags();
+ }
+
+ /**
+ * Method to allow ceVlanMap to be modified.
+ * @param additionalCeVlanMap An addition to the existing ceVlanMap
+ * @param side The Uni Side - Customer or Network
+ * @return The updated builder
+ */
+ public EvcBuilder addToCeVlanMap(ServiceListType additionalCeVlanMap, UniSide side) {
+ evcPerUni = CustomEvcPerUni.builder(evcPerUni).addToCeVlanMap(additionalCeVlanMap, side).build();
+ return this;
+ }
+
+ /**
+ * Method to allow the Flow Mapping list to be modified.
+ * @param fm the flow mapping
+ * @param side The Uni Side - Customer or Network
+ * @return The updated builder
+ */
+ public EvcBuilder addToFlowMapping(FlowMapping fm, UniSide side) {
+ evcPerUni = CustomEvcPerUni.builder(evcPerUni).addToFlowMapping(fm, side).build();
+ return this;
+ }
+
+ /**
+ * Method to allow an EVC side to be added.
+ * @param evcUniN An EVCPerUni object
+ * @return The updated builder
+ */
+ public EvcBuilder addUniN(EvcPerUnin evcUniN) {
+ evcPerUni = CustomEvcPerUni.builder(evcPerUni).addUniN(evcUniN).build();
+ return this;
+ }
+
+ /**
+ * Method to allow an EVC side to be added.
+ * @param evcUniC An EVCPerUni object
+ * @return The updated builder
+ */
+ public EvcBuilder addUniC(EvcPerUnic evcUniC) {
+ evcPerUni = CustomEvcPerUni.builder(evcPerUni).addUniC(evcUniC).build();
+ return this;
+ }
+ }
+}
diff --git a/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/evc/CustomEvcPerUni.java b/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/evc/CustomEvcPerUni.java
new file mode 100644
index 0000000..ed53593
--- /dev/null
+++ b/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/evc/CustomEvcPerUni.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright 2017-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.uni.evc.service
+ .rev20160317.mseaunievcservice.mefservices.uni.evc;
+
+import org.onosproject.drivers.microsemi.yang.UniSide;
+import org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.types
+ .rev20160229.mseatypes.ServiceListType;
+import org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.uni.evc.service.rev20160317.mseaunievcservice.evcperuniextensionattributes.FlowMapping;
+import org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.uni.evc.service
+ .rev20160317.mseaunievcservice.mefservices.uni.evc.evcperuni.CustomEvcPerUnic;
+import org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.uni.evc.service
+ .rev20160317.mseaunievcservice.mefservices.uni.evc.evcperuni.CustomEvcPerUnin;
+import org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.uni.evc.service.rev20160317.mseaunievcservice.mefservices.uni.evc.evcperuni.EvcPerUnic;
+import org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.uni.evc.service.rev20160317.mseaunievcservice.mefservices.uni.evc.evcperuni.EvcPerUnin;
+
+/**
+ * A custom implementation of the DefaultEvcPerUni - especially its Builder.
+ *
+ * This allows the EvcPerUni to be modified after creation. These additions to the
+ * builder are necessary because in the EA1000 YANG model the EvcPerUni side can
+ * be added at separate stages
+ */
+public class CustomEvcPerUni extends DefaultEvcPerUni {
+
+ public static EvcPerUniBuilder builder(EvcPerUni evcPerUni) {
+ return new EvcPerUniBuilder(evcPerUni);
+ }
+
+ public static class EvcPerUniBuilder extends DefaultEvcPerUni.EvcPerUniBuilder {
+
+ /**
+ * Allow a builder to be constructed from an existing EvcPerUni
+ * @param evcPerUni An existing EvcPerUni
+ */
+ public EvcPerUniBuilder(EvcPerUni evcPerUni) {
+ this.evcPerUnic = evcPerUni.evcPerUnic();
+ this.evcPerUnin = evcPerUni.evcPerUnin();
+ this.evcUniType = evcPerUni.evcUniType();
+ this.yangEvcPerUniOpType = evcPerUni.yangEvcPerUniOpType();
+ this.valueLeafFlags = evcPerUni.valueLeafFlags();
+ this.selectLeafFlags = evcPerUni.selectLeafFlags();
+ this.yangAugmentedInfoMap = evcPerUni.yangAugmentedInfoMap();
+ }
+
+ /**
+ * Method to allow ceVlanMap to be modified.
+ * @param additionalCeVlanMap An addition to the existing ceVlanMap
+ * @param side The Uni Side - Customer or Network
+ * @return The updated builder
+ */
+ public EvcPerUniBuilder addToCeVlanMap(ServiceListType additionalCeVlanMap, UniSide side) {
+ if (side == UniSide.NETWORK) {
+ evcPerUnin = CustomEvcPerUnin.builder(evcPerUnin).addToCeVlanMap(additionalCeVlanMap).build();
+ } else {
+ evcPerUnic = CustomEvcPerUnic.builder(evcPerUnic).addToCeVlanMap(additionalCeVlanMap).build();
+ }
+
+ return this;
+ }
+
+ /**
+ * Method to allow the Flow Mapping list to be modified.
+ * @param fm the flow mapping
+ * @param side The Uni Side - Customer or Network
+ * @return The updated builder
+ */
+ public EvcPerUniBuilder addToFlowMapping(FlowMapping fm, UniSide side) {
+ if (side == UniSide.NETWORK) {
+ evcPerUnin = CustomEvcPerUnin.builder(evcPerUnin).addToFlowMapping(fm).build();
+ } else {
+ evcPerUnic = CustomEvcPerUnic.builder(evcPerUnic).addToFlowMapping(fm).build();
+ }
+ return this;
+ }
+
+ /**
+ * Method to allow an EVC side to be added.
+ * @param evcUniN An EVCPerUni object
+ * @return The updated builder
+ */
+ public EvcPerUniBuilder addUniN(EvcPerUnin evcUniN) {
+ this.evcPerUnin = evcUniN;
+ return this;
+ }
+
+ /**
+ * Method to allow an EVC side to be added.
+ * @param evcUniC An EVCPerUni object
+ * @return The updated builder
+ */
+ public EvcPerUniBuilder addUniC(EvcPerUnic evcUniC) {
+ this.evcPerUnic = evcUniC;
+ return this;
+ }
+ }
+}
diff --git a/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/evc/evcperuni/CustomEvcPerUnic.java b/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/evc/evcperuni/CustomEvcPerUnic.java
new file mode 100644
index 0000000..2e8dfc6
--- /dev/null
+++ b/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/evc/evcperuni/CustomEvcPerUnic.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2017-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.uni.evc.service
+ .rev20160317.mseaunievcservice.mefservices.uni.evc.evcperuni;
+
+import org.onosproject.drivers.microsemi.yang.utils.CeVlanMapUtils;
+import org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.types
+ .rev20160229.mseatypes.ServiceListType;
+
+/**
+ * A custom implementation of the DefaultEvcPerUnic - especially its Builder.
+ *
+ * This allows the EvcPerUniC to be modified after creation. These additions to the
+ * builder are necessary because in the EA1000 YANG model the EvcPerUniC can
+ * be added at separate stages
+ */
+public class CustomEvcPerUnic extends DefaultEvcPerUnic {
+ public static EvcPerUnicBuilder builder(EvcPerUnic evcPerUnic) {
+ return new EvcPerUnicBuilder(evcPerUnic);
+ }
+
+ public static EvcPerUnicBuilder builder() {
+ return new EvcPerUnicBuilder();
+ }
+
+ public static class EvcPerUnicBuilder extends DefaultEvcPerUnic.EvcPerUnicBuilder {
+
+ /**
+ * Allow a new builder to be constructed
+ */
+ public EvcPerUnicBuilder() {
+ valueLeafFlags.set(LeafIdentifier.CEVLANMAP.getLeafIndex());
+ this.ceVlanMap = new ServiceListType("0");
+ valueLeafFlags.set(LeafIdentifier.INGRESSBWPGROUPINDEX.getLeafIndex());
+ this.ingressBwpGroupIndex = 0;
+ }
+
+ /**
+ * Allow a builder to be constructed from an existing EvcPerUnic
+ * @param evcPerUnic An existing EvcPerUnic
+ */
+ public EvcPerUnicBuilder(EvcPerUnic evcPerUnic) {
+ this.ceVlanMap = evcPerUnic.ceVlanMap();
+ this.evcPerUniServiceType = evcPerUnic.evcPerUniServiceType();
+ this.ingressBwpGroupIndex = evcPerUnic.ingressBwpGroupIndex();
+ this.tagManipulation = evcPerUnic.tagManipulation();
+ this.flowMapping = evcPerUnic.flowMapping();
+ this.yangEvcPerUnicOpType = evcPerUnic.yangEvcPerUnicOpType();
+ this.yangAugmentedInfoMap = evcPerUnic.yangAugmentedInfoMap();
+ this.selectLeafFlags = evcPerUnic.selectLeafFlags();
+ this.valueLeafFlags = evcPerUnic.valueLeafFlags();
+ }
+
+ /**
+ * Method to allow ceVlanMap to be modified.
+ * @param additionalCeVlanMap An addition to the existing ceVlanMap
+ * @return The updated builder
+ */
+ public EvcPerUnicBuilder addToCeVlanMap(ServiceListType additionalCeVlanMap) {
+ String combinedCeVlanMap =
+ CeVlanMapUtils.combineVlanSets(ceVlanMap.string(), additionalCeVlanMap.string());
+ //If it contains 0 we should remove it
+ ceVlanMap = new ServiceListType(
+ CeVlanMapUtils.removeZeroIfPossible(combinedCeVlanMap));
+
+ return this;
+ }
+ }
+}
diff --git a/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/evc/evcperuni/CustomEvcPerUnin.java b/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/evc/evcperuni/CustomEvcPerUnin.java
new file mode 100644
index 0000000..47b438e
--- /dev/null
+++ b/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/evc/evcperuni/CustomEvcPerUnin.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2017-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.uni.evc.service
+ .rev20160317.mseaunievcservice.mefservices.uni.evc.evcperuni;
+
+import org.onosproject.drivers.microsemi.yang.utils.CeVlanMapUtils;
+import org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.types
+ .rev20160229.mseatypes.ServiceListType;
+
+/**
+ * A custom implementation of the DefaultEvcPerUnin - especially its Builder.
+ *
+ * This allows the EvcPerUniN to be modified after creation. These additions to the
+ * builder are necessary because in the EA1000 YANG model the EvcPerUniN can
+ * be added at separate stages
+ */
+public class CustomEvcPerUnin extends DefaultEvcPerUnin {
+ public static EvcPerUninBuilder builder(EvcPerUnin evcPerUnin) {
+ return new EvcPerUninBuilder(evcPerUnin);
+ }
+
+ public static EvcPerUninBuilder builder() {
+ return new EvcPerUninBuilder();
+ }
+
+ public static class EvcPerUninBuilder extends DefaultEvcPerUnin.EvcPerUninBuilder {
+
+ /**
+ * Allow a new builder to be constructed
+ */
+ public EvcPerUninBuilder() {
+ valueLeafFlags.set(LeafIdentifier.CEVLANMAP.getLeafIndex());
+ this.ceVlanMap = new ServiceListType("0");
+ valueLeafFlags.set(LeafIdentifier.INGRESSBWPGROUPINDEX.getLeafIndex());
+ this.ingressBwpGroupIndex = 0;
+ }
+
+ /**
+ * Allow a builder to be constructed from an existing EvcPerUnin
+ * @param evcPerUnin An existing EvcPerUnin
+ */
+ public EvcPerUninBuilder(EvcPerUnin evcPerUnin) {
+ this.ceVlanMap = evcPerUnin.ceVlanMap();
+ this.evcPerUniServiceType = evcPerUnin.evcPerUniServiceType();
+ this.ingressBwpGroupIndex = evcPerUnin.ingressBwpGroupIndex();
+ this.tagManipulation = evcPerUnin.tagManipulation();
+ this.flowMapping = evcPerUnin.flowMapping();
+ this.yangEvcPerUninOpType = evcPerUnin.yangEvcPerUninOpType();
+ this.yangAugmentedInfoMap = evcPerUnin.yangAugmentedInfoMap();
+ this.selectLeafFlags = evcPerUnin.selectLeafFlags();
+ this.valueLeafFlags = evcPerUnin.valueLeafFlags();
+ }
+
+ /**
+ * Method to allow ceVlanMap to be modified.
+ * @param additionalCeVlanMap An addition to the existing ceVlanMap
+ * @return The updated builder
+ */
+ public EvcPerUninBuilder addToCeVlanMap(ServiceListType additionalCeVlanMap) {
+ String combinedCeVlanMap =
+ CeVlanMapUtils.combineVlanSets(ceVlanMap.string(), additionalCeVlanMap.string());
+ //If it contains 0 we should remove it
+ ceVlanMap = new ServiceListType(
+ CeVlanMapUtils.removeZeroIfPossible(combinedCeVlanMap));
+ return this;
+ }
+ }
+}
\ No newline at end of file
diff --git a/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/evc/evcperuni/package-info.java b/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/evc/evcperuni/package-info.java
new file mode 100644
index 0000000..3617d86
--- /dev/null
+++ b/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/evc/evcperuni/package-info.java
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2017-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Package for Microsemi device drivers support for NETCONF for EA1000.
+ */
+package org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.uni.evc.service
+ .rev20160317.mseaunievcservice.mefservices.uni.evc.evcperuni;
\ No newline at end of file
diff --git a/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/evc/package-info.java b/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/evc/package-info.java
new file mode 100644
index 0000000..7813b61
--- /dev/null
+++ b/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/evc/package-info.java
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2017-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Package for Microsemi device drivers support for NETCONF for EA1000.
+ */
+package org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.uni.evc.service
+ .rev20160317.mseaunievcservice.mefservices.uni.evc;
\ No newline at end of file
diff --git a/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/package-info.java b/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/package-info.java
new file mode 100644
index 0000000..3bdeda0
--- /dev/null
+++ b/drivers/microsemi/ea1000yang/src/main/java/org/onosproject/yang/gen/v1/http/www/microsemi/com/microsemi/edge/assure/msea/uni/evc/service/rev20160317/mseaunievcservice/mefservices/uni/package-info.java
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2017-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Package for Microsemi device drivers support for NETCONF for EA1000.
+ */
+package org.onosproject.yang.gen.v1.http.www.microsemi.com.microsemi.edge.assure.msea.uni.evc.service
+ .rev20160317.mseaunievcservice.mefservices.uni;
\ No newline at end of file