/** * Copyright IBM Corporation, 2013. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.openflowplugin.api.openflow.md.core.session; import java.util.concurrent.Future; import org.opendaylight.openflowplugin.api.openflow.md.core.SwitchConnectionDistinguisher; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.UpdateMeterOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowModInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetAsyncInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetAsyncOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetConfigInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetConfigOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetQueueConfigInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetQueueConfigOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GroupModInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MeterModInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortModInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.RoleRequestInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.RoleRequestOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetAsyncInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetConfigInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.TableModInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.port.service.rev131107.UpdatePortOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.UpdateFlowOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.UpdateGroupOutput; import org.opendaylight.yangtools.yang.common.RpcResult; /** * Message Dispatch Service to send the message to switch. * * @author AnilGujele * */ public interface IMessageDispatchService { /** * send barrier message to switch * * @param input * - message * @param cookie * - to identify connection if null then feel free to send via * any connection * @return - the future */ Future> barrier(BarrierInput input, SwitchConnectionDistinguisher cookie); /** * send experimenter message to switch * * @param input * - message * @param cookie * - to identify connection if null then feel free to send via * any connection * @return - the future */ Future> experimenter(ExperimenterInput input, SwitchConnectionDistinguisher cookie); /** * send flow modification message to switch * * @param input * - message * @param cookie * - to identify connection if null then feel free to send via * any connection * @return - the future */ Future> flowMod(FlowModInput input, SwitchConnectionDistinguisher cookie); /** * send get async message to switch * * @param input * - message * @param cookie * - to identify connection if null then feel free to send via * any connection * @return - the future */ Future> getAsync(GetAsyncInput input, SwitchConnectionDistinguisher cookie); /** * send get config message to switch * * @param input * - message * @param cookie * - to identify connection if null then feel free to send via * any connection * @return - the future */ Future> getConfig(GetConfigInput input, SwitchConnectionDistinguisher cookie); /** * send get features message to switch * * @param input * - message * @param cookie * - to identify connection if null then feel free to send via * any connection * @return - the future */ Future> getFeatures(GetFeaturesInput input, SwitchConnectionDistinguisher cookie); /** * send get queue config message to switch * * @param input * - message * @param cookie * - to identify connection if null then feel free to send via * any connection * @return - the future */ Future> getQueueConfig(GetQueueConfigInput input, SwitchConnectionDistinguisher cookie); /** * send group modification message to switch * * @param input * - message * @param cookie * - to identify connection if null then feel free to send via * any connection * @return - the future */ Future> groupMod(GroupModInput input, SwitchConnectionDistinguisher cookie); /** * send meter modification message to switch * * @param input * - message * @param cookie * - to identify connection if null then feel free to send via * any connection * @return - the future */ Future> meterMod(MeterModInput input, SwitchConnectionDistinguisher cookie); /** * send multipart request message to switch * * @param input * - multipart request message * @param cookie * - to identify connection if null then feel free to send via * any connection * @return - the future */ Future> multipartRequest(MultipartRequestInput input, SwitchConnectionDistinguisher cookie); /** * send packet out message to switch * * @param input * - message * @param cookie * - to identify connection if null then feel free to send via * any connection * @return - the future */ Future> packetOut(PacketOutInput input, SwitchConnectionDistinguisher cookie); /** * send port modification message to switch * * @param input * - message * @param cookie * - to identify connection if null then feel free to send via * any connection * @return - the future */ Future> portMod(PortModInput input, SwitchConnectionDistinguisher cookie); /** * send role request message to switch * * @param input * - message * @param cookie * - to identify connection if null then feel free to send via * any connection * @return - the future */ Future> roleRequest(RoleRequestInput input, SwitchConnectionDistinguisher cookie); /** * send set async message to switch * * @param input * - message * @param cookie * - to identify connection if null then feel free to send via * any connection * @return - the future */ Future> setAsync(SetAsyncInput input, SwitchConnectionDistinguisher cookie); /** * send set config message to switch * * @param input * - message * @param cookie * - to identify connection if null then feel free to send via * any connection * @return - the future */ Future> setConfig(SetConfigInput input, SwitchConnectionDistinguisher cookie); /** * send table modification message to switch * * @param input * - message * @param cookie * - to identify connection if null then feel free to send via * any connection * @return - the future */ Future> tableMod(TableModInput input, SwitchConnectionDistinguisher cookie); }