commit | fae8e665fa47a1496fbeb97dba90da9c6ca2cf5d | [log] [tgz] |
---|---|---|
author | Sean Condon <sean.condon@microsemi.com> | Thu Dec 15 10:25:13 2016 +0000 |
committer | Thomas Vachuska <tom@onlab.us> | Wed Apr 26 19:07:03 2017 +0000 |
tree | f804026f2defa2c5e8d373283f57b7254ce2e6d8 | |
parent | 6a4febe41602c9bca76ff612d8dc605244a16806 [diff] [blame] |
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/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