blob: 1501dfb881ee2ed4034e2b6a9be8e7e9183a82e5 [file] [log] [blame]
/*
* Copyright 2017-present Open Networking Foundation
*
* 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.drivers.microsemi.yang;
import java.util.List;
import java.util.Map;
import org.onosproject.netconf.DatastoreId;
import org.onosproject.netconf.NetconfException;
import org.onosproject.netconf.NetconfSession;
import org.onosproject.yang.gen.v1.mseaunievcservice.rev20160317.MseaUniEvcService;
import org.onosproject.yang.gen.v1.mseaunievcservice.rev20160317.MseaUniEvcServiceOpParam;
import org.onosproject.yang.gen.v1.mseaunievcservice.rev20160317.mseaunievcservice.mefservices.uni.UniSideInterfaceAssignmentEnum;
/**
* Extension of mseaUniEvcServiceService to include NETCONF sessions.
*
* This is manually extended and should be revised if the msea-uni-evc-service.yang
* file changes
*/
public interface MseaUniEvcServiceNetconfService {
/**
* Returns the configuration and state attributes of the running mseaUniEvcService.
*
* @param mseaUniEvcService value of mseaUniEvcService
* @param session The NETCONF session
* @return mseaUniEvcService
* @throws NetconfException if the session has any error
*/
MseaUniEvcService getMseaUniEvcService(
MseaUniEvcServiceOpParam mseaUniEvcService, NetconfSession session)
throws NetconfException;
/**
* Returns the configuration only attributes of mseaUniEvcService.
*
* @param mseaUniEvcService value of mseaUniEvcService
* @param session The NETCONF session
* @param targetDs one of running, candidate or startup
* @return mseaUniEvcService
* @throws NetconfException if the session has any error
*/
MseaUniEvcService getConfigMseaUniEvcService(
MseaUniEvcServiceOpParam mseaUniEvcService, NetconfSession session,
DatastoreId targetDs) throws NetconfException;
/**
* Sets the value to attribute mseaUniEvcService.
*
* @param mseaUniEvcService value of mseaUniEvcService
* @param session The NETCONF session
* @param targetDs one of running, candidate or startup
* @return Boolean to indicate success or failure
* @throws NetconfException if the session has any error
*/
boolean setMseaUniEvcService(MseaUniEvcServiceOpParam mseaUniEvcService,
NetconfSession session, DatastoreId targetDs)
throws NetconfException;
/**
* Deletes the objects in mseaUniEvcService.
*
* @param mseaUniEvcService value of mseaUniEvcService
* @param session The NETCONF session
* @param targetDs one of running, candidate or startup
* @return Boolean to indicate success or failure
* @throws NetconfException if the session has any error
*/
boolean deleteMseaUniEvcService(MseaUniEvcServiceOpParam mseaUniEvcService,
NetconfSession session, DatastoreId targetDs) throws NetconfException;
/**
* Returns a list of the CeVlanMaps on both sides of the EVC.
*
* @param session A NETCONF Session
* @param ncDs The datastore to affect - running, candidate or startup
* @return The Object Model with the VLans
* @throws NetconfException if the session has any error
*/
MseaUniEvcService getmseaUniEvcCeVlanMaps(
NetconfSession session, DatastoreId ncDs)
throws NetconfException;
/**
* Replace ceVlans or delete EVCs from a device.
*
* It is necessary to have a custom command for this as the YCH cannot
* handle the intricacies of putting a replace operation on the
* ceVlanMap leaf at present
*
* @param ceVlanUpdates A Map of CeVlanMap entries to change, as flows are deleted
* @param flowVlanIds The IDs of flows that are being removed
* @param session A NETCONF Session
* @param targetDs The datastore to affect - running, candidate or startup
* @param portAssign The port assignment of the device
* @throws NetconfException if the session has any error
*/
void removeEvcUniFlowEntries(
Map<Integer, String> ceVlanUpdates,
Map<Integer, List<Short>> flowVlanIds,
NetconfSession session,
DatastoreId targetDs,
UniSideInterfaceAssignmentEnum portAssign)
throws NetconfException;
}