/** * Copyright 2013, Big Switch Networks, Inc. * * 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 net.floodlightcontroller.flowcache; import net.floodlightcontroller.core.FloodlightContextStore; import net.floodlightcontroller.core.module.FloodlightModuleContext; import net.floodlightcontroller.core.module.FloodlightModuleException; import net.floodlightcontroller.core.module.IFloodlightService; /** * The Interface IFlowReconcileEngine. * * public interface APIs to Big Switch Flow-Reconcile Service. FlowReconcileEngine queries * the network-level flows that are currently deployed in the underlying * network. The flow reconcile engine can be triggered using various filters by using the * corresponding APIs. * * @author MeiYang */ public interface IFlowReconcileEngineService extends IFloodlightService { /** * A FloodlightContextStore object that can be used to interact with the * FloodlightContext information about flowCache. */ public static final FloodlightContextStore<String> fcStore = new FloodlightContextStore<String>(); public static final String FLOWRECONCILE_APP_INSTANCE_NAME = "net.floodlightcontroller.flowcache.appInstanceName"; /** * Submit a network flow query with query parameters specified in ReconcileQueryObj * object. The query object can be created using one of the new ReconcileQueryObj * helper functions in IFlowCache interface. * * @param query the flow cache query object as input */ public void submitFlowQueryEvent(FlowReconcileQuery query); /** * Flush Local Counter Updates * */ public void updateFlush(); public void init(FloodlightModuleContext fmc) throws FloodlightModuleException; public void startUp(FloodlightModuleContext fmc); }