final RequestContext<T> requestContext = requestContextStack.createRequestContext();
final SettableFuture<RpcResult<T>> result = requestContextStack.storeOrFail(requestContext);
- final DataCrate<T> dataCrate = DataCrateBuilder.<T>builder().setiDConnection(connectionID)
- .setRequestContext(requestContext).build();
if (!result.isDone()) {
+ final DataCrate<T> dataCrate = DataCrateBuilder.<T>builder().setiDConnection(connectionID)
+ .setRequestContext(requestContext).build();
+ requestContext.setXid(deviceContext.getNextXid());
+
+ LOG.trace("Hooking xid {} to device context - precaution.", requestContext.getXid().getValue());
+ deviceContext.hookRequestCtx(requestContext.getXid(), requestContext);
+
final ListenableFuture<RpcResult<F>> resultFromOFLib = function.apply(dataCrate);
final OFJResult2RequestCtxFuture<T> OFJResult2RequestCtxFuture = new OFJResult2RequestCtxFuture<>(requestContext, deviceContext);
@Override
public void onSuccess(final RpcResult<F> fRpcResult) {
if (!fRpcResult.isSuccessful()) {
+ // remove current request from request cache in deviceContext
+ deviceContext.getRequests().remove(requestContext.getXid().getValue());
+ // handle requestContext failure
StringBuilder rpcErrors = new StringBuilder();
if (null != fRpcResult.getErrors() && fRpcResult.getErrors().size() > 0) {
for (RpcError error : fRpcResult.getErrors()) {
requestContext.getFuture().set(
RpcResultBuilder.<T>failed().withRpcErrors(fRpcResult.getErrors()).build());
RequestContextUtil.closeRequstContext(requestContext);
- } else {
- LOG.trace("Hooking xid {} to device context.", requestContext.getXid().getValue());
- deviceContext.hookRequestCtx(requestContext.getXid(), requestContext);
}
}
@Override
public ListenableFuture<RpcResult<Void>> apply(DataCrate<Void> data) {
- final Xid xid = deviceContext.getNextXid();
- data.getRequestContext().setXid(xid);
+ final Xid xid = data.getRequestContext().getXid();
final PacketOutInput message = PacketOutConvertor.toPacketOutInput(input, version, xid.getValue(),
datapathId);
}
protected <T> ListenableFuture<RpcResult<Void>> createResultForFlowMod(final DataCrate<T> data, final FlowModInputBuilder flowModInput) {
- final Xid xId = deviceContext.getNextXid();
- flowModInput.setXid(xId.getValue());
- data.getRequestContext().setXid(xId);
+ final Xid xid = data.getRequestContext().getXid();
+ flowModInput.setXid(xid.getValue());
Future<RpcResult<Void>> flowModResult = provideConnectionAdapter(data.getiDConnection()).flowMod(
flowModInput.build());
return JdkFutureAdapters.listenInPoolThread(flowModResult);
*/
package org.opendaylight.openflowplugin.impl.services;
+import com.google.common.base.Function;
import com.google.common.util.concurrent.JdkFutureAdapters;
import com.google.common.util.concurrent.ListenableFuture;
+import java.util.concurrent.Future;
import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack;
import org.opendaylight.openflowplugin.api.openflow.device.Xid;
-
-import com.google.common.base.Function;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.GroupConvertor;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GroupModInputBuilder;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.slf4j.Logger;
-import java.util.concurrent.Future;
public class SalGroupServiceImpl extends CommonService implements SalGroupService {
<T> ListenableFuture<RpcResult<Void>> convertAndSend(final Group iputGroup, final DataCrate<T> data) {
final GroupModInputBuilder ofGroupModInput = GroupConvertor.toGroupModInput(iputGroup, version, datapathId);
- final Xid xid = deviceContext.getNextXid();
+ final Xid xid = data.getRequestContext().getXid();
ofGroupModInput.setXid(xid.getValue());
- data.getRequestContext().setXid(xid);
return JdkFutureAdapters.listenInPoolThread(provideConnectionAdapter(data.getiDConnection()).groupMod(ofGroupModInput.build()));
}
}
*/
package org.opendaylight.openflowplugin.impl.services;
+import com.google.common.base.Function;
import com.google.common.util.concurrent.JdkFutureAdapters;
import com.google.common.util.concurrent.ListenableFuture;
+import java.util.concurrent.Future;
import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack;
import org.opendaylight.openflowplugin.api.openflow.device.Xid;
-import com.google.common.base.Function;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.MeterConvertor;
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeterInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeterOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MeterModInputBuilder;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.slf4j.Logger;
-import java.util.concurrent.Future;
public class SalMeterServiceImpl extends CommonService implements SalMeterService {
<T> ListenableFuture<RpcResult<Void>> convertAndSend(final Meter iputMeter, final DataCrate<T> data) {
final MeterModInputBuilder ofMeterModInput = MeterConvertor.toMeterModInput(iputMeter, version);
- Xid xid = deviceContext.getNextXid();
+ final Xid xid = data.getRequestContext().getXid();
ofMeterModInput.setXid(xid.getValue());
- data.getRequestContext().setXid(xid);
return JdkFutureAdapters.listenInPoolThread(provideConnectionAdapter(data.getiDConnection()).meterMod(ofMeterModInput.build()));
}
}
*/
package org.opendaylight.openflowplugin.impl.services;
+import com.google.common.base.Function;
import com.google.common.util.concurrent.JdkFutureAdapters;
import com.google.common.util.concurrent.ListenableFuture;
+import java.util.concurrent.Future;
import org.opendaylight.openflowplugin.api.openflow.device.Xid;
-
-import com.google.common.base.Function;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.PortConvertor;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.port.mod.port.Port;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortModInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.port.service.rev131107.UpdatePortOutput;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.slf4j.Logger;
-import java.util.concurrent.Future;
public class SalPortServiceImpl extends CommonService implements SalPortService {
private static final Logger LOG = org.slf4j.LoggerFactory.getLogger(SalPortServiceImpl.class);
final Port inputPort = input.getUpdatedPort().getPort().getPort().get(0);
final PortModInput ofPortModInput = PortConvertor.toPortModInput(inputPort, version);
final PortModInputBuilder mdInput = new PortModInputBuilder(ofPortModInput);
- Xid xid = deviceContext.getNextXid();
+ final Xid xid = data.getRequestContext().getXid();
mdInput.setXid(xid.getValue());
- data.getRequestContext().setXid(xid);
return JdkFutureAdapters.listenInPoolThread(provideConnectionAdapter(data.getiDConnection()).portMod(mdInput.build()));
}
});
*/
package org.opendaylight.openflowplugin.impl.services;
-import org.opendaylight.openflowplugin.api.openflow.device.Xid;
-
import com.google.common.base.Function;
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.JdkFutureAdapters;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.SettableFuture;
+import java.math.BigInteger;
+import java.util.List;
+import java.util.concurrent.Future;
import org.opendaylight.openflowplugin.api.OFConstants;
+import org.opendaylight.openflowplugin.api.openflow.device.Xid;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.TableFeaturesConvertor;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.TransactionId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartRequestFlags;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
import org.slf4j.Logger;
-import java.math.BigInteger;
-import java.util.List;
-import java.util.concurrent.Future;
/**
* @author joe
caseBuilder.setMultipartRequestTableFeatures(requestBuilder.build());
// Set request body to main multipart request
- final Xid xid = deviceContext.getNextXid();
- data.getRequestContext().setXid(xid);
+ final Xid xid = data.getRequestContext().getXid();
final MultipartRequestInputBuilder mprInput = createMultipartHeader(MultipartType.OFPMPTABLEFEATURES,
xid.getValue());
mprInput.setMultipartRequestBody(caseBuilder.build());
import com.google.common.base.Function;
import com.google.common.util.concurrent.JdkFutureAdapters;
import com.google.common.util.concurrent.ListenableFuture;
+import java.util.concurrent.Future;
import org.opendaylight.openflowplugin.api.OFConstants;
import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
import org.opendaylight.openflowplugin.api.openflow.device.RequestContext;
import org.opendaylight.openflowplugin.api.openflow.device.Xid;
import org.opendaylight.openflowplugin.impl.services.CommonService;
import org.opendaylight.openflowplugin.impl.services.DataCrate;
-import org.opendaylight.openflowplugin.impl.services.RequestInputUtils;
import org.opendaylight.openflowplugin.impl.services.OFJResult2RequestCtxFuture;
+import org.opendaylight.openflowplugin.impl.services.RequestInputUtils;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchReactor;
import org.opendaylight.openflowplugin.openflow.md.util.FlowCreatorUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAggregateFlowStatisticsFromFlowTableForAllFlowsInput;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.concurrent.Future;
/**
* @author joe
// Set request body to main multipart request
multipartRequestAggregateCaseBuilder.setMultipartRequestAggregate(mprAggregateRequestBuilder
.build());
- final Xid xid = deviceContext.getNextXid();
- data.getRequestContext().setXid(xid);
+ final Xid xid = data.getRequestContext().getXid();
final MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
MultipartType.OFPMPAGGREGATE, xid.getValue(), version);
multipartRequestAggregateCaseBuilder.setMultipartRequestAggregate(mprAggregateRequestBuilder
.build());
- final Xid xid = deviceContext.getNextXid();
- data.getRequestContext().setXid(xid);
+ final Xid xid = data.getRequestContext().getXid();
final MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
MultipartType.OFPMPAGGREGATE, xid.getValue(), version);
final MultipartRequestFlowCaseBuilder multipartRequestFlowCaseBuilder = new MultipartRequestFlowCaseBuilder();
multipartRequestFlowCaseBuilder.setMultipartRequestFlow(mprFlowRequestBuilder.build());
- final Xid xid = deviceContext.getNextXid();
- data.getRequestContext().setXid(xid);
+ final Xid xid = data.getRequestContext().getXid();
final MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
MultipartType.OFPMPFLOW, xid.getValue(), version);
mprFlowRequestBuilder.setCookieMask(OFConstants.DEFAULT_COOKIE_MASK);
FlowCreatorUtil.setWildcardedFlowMatch(version, mprFlowRequestBuilder);
- final Xid xid = deviceContext.getNextXid();
- data.getRequestContext().setXid(xid);
+ final Xid xid = data.getRequestContext().getXid();
final MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
MultipartType.OFPMPFLOW, xid.getValue(), version);
deviceContext.getPrimaryConnectionContext().getFeatures().getDatapathId());
// Set request body to main multipart request
+ final Xid xid = data.getRequestContext().getXid();
multipartRequestFlowCaseBuilder.setMultipartRequestFlow(mprFlowRequestBuilder.build());
- final Xid xid = deviceContext.getNextXid();
- data.getRequestContext().setXid(xid);
final MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
MultipartType.OFPMPFLOW, xid.getValue(), version);
mprInput.setMultipartRequestBody(multipartRequestFlowCaseBuilder.build());
import com.google.common.base.Function;
import com.google.common.util.concurrent.JdkFutureAdapters;
import com.google.common.util.concurrent.ListenableFuture;
+import java.util.concurrent.Future;
import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack;
import org.opendaylight.openflowplugin.api.openflow.device.Xid;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTableCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.table._case.MultipartRequestTableBuilder;
import org.opendaylight.yangtools.yang.common.RpcResult;
-import java.util.concurrent.Future;
/**
* @author joe
multipartRequestTableCaseBuilder.setMultipartRequestTable(multipartRequestTableBuilder.build());
// Set request body to main multipart request
- final Xid xid = deviceContext.getNextXid();
- data.getRequestContext().setXid(xid);
+ final Xid xid = data.getRequestContext().getXid();
final MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
MultipartType.OFPMPFLOW, xid.getValue(), version);
import com.google.common.base.Function;
import com.google.common.util.concurrent.JdkFutureAdapters;
import com.google.common.util.concurrent.ListenableFuture;
+import java.util.concurrent.Future;
import org.opendaylight.openflowjava.protocol.api.util.BinContent;
import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupFeaturesCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.group._case.MultipartRequestGroupBuilder;
import org.opendaylight.yangtools.yang.common.RpcResult;
-import java.util.concurrent.Future;
/**
* @author joe
caseBuilder.setMultipartRequestGroup(mprGroupBuild.build());
// Create multipart request header
- final Xid xid = deviceContext.getNextXid();
- data.getRequestContext().setXid(xid);
+ final Xid xid = data.getRequestContext().getXid();
final MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
MultipartType.OFPMPGROUP, xid.getValue(), version);
public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetGroupDescriptionOutput> data) {
final MultipartRequestGroupDescCaseBuilder mprGroupDescCaseBuild = new MultipartRequestGroupDescCaseBuilder();
- final Xid xid = deviceContext.getNextXid();
- data.getRequestContext().setXid(xid);
+ final Xid xid = data.getRequestContext().getXid();
final MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
MultipartType.OFPMPGROUPDESC, xid.getValue(), version);
mprInput.setMultipartRequestBody(mprGroupDescCaseBuild.build());
public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetGroupFeaturesOutput> data) {
final MultipartRequestGroupFeaturesCaseBuilder mprGroupFeaturesBuild = new MultipartRequestGroupFeaturesCaseBuilder();
- final Xid xid = deviceContext.getNextXid();
- data.getRequestContext().setXid(xid);
+ final Xid xid = data.getRequestContext().getXid();
final MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
MultipartType.OFPMPGROUPFEATURES, xid.getValue(), version);
mprInput.setMultipartRequestBody(mprGroupFeaturesBuild.build());
mprGroupBuild.setGroupId(new GroupId(input.getGroupId().getValue()));
caseBuilder.setMultipartRequestGroup(mprGroupBuild.build());
- final Xid xid = deviceContext.getNextXid();
- data.getRequestContext().setXid(xid);
+ final Xid xid = data.getRequestContext().getXid();
final MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
MultipartType.OFPMPGROUP, xid.getValue(), version);
import com.google.common.base.Function;
import com.google.common.util.concurrent.JdkFutureAdapters;
import com.google.common.util.concurrent.ListenableFuture;
+import java.util.concurrent.Future;
import org.opendaylight.openflowjava.protocol.api.util.BinContent;
import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.meter._case.MultipartRequestMeterBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.meter.config._case.MultipartRequestMeterConfigBuilder;
import org.opendaylight.yangtools.yang.common.RpcResult;
-import java.util.concurrent.Future;
/**
* @author joe
.types.rev130731.Meter.OFPMALL.getIntValue())));
caseBuilder.setMultipartRequestMeterConfig(mprMeterConfigBuild.build());
- final Xid xid = deviceContext.getNextXid();
- data.getRequestContext().setXid(xid);
+ final Xid xid = data.getRequestContext().getXid();
MultipartRequestInputBuilder mprInput = RequestInputUtils
.createMultipartHeader(MultipartType.OFPMPMETERCONFIG, xid.getValue(), version);
mprInput.setMultipartRequestBody(caseBuilder.build());
@Override
public Future<RpcResult<GetAllMeterStatisticsOutput>> getAllMeterStatistics(final GetAllMeterStatisticsInput input) {
- final long xid = deviceContext.getNextXid().getValue();
return this.<GetAllMeterStatisticsOutput, Void>handleServiceCall(
PRIMARY_CONNECTION,
new Function<DataCrate<GetAllMeterStatisticsOutput>, ListenableFuture<RpcResult<Void>>>() {
.types.rev130731.Meter.OFPMALL.getIntValue())));
caseBuilder.setMultipartRequestMeter(mprMeterBuild.build());
+ final Xid xid = data.getRequestContext().getXid();
MultipartRequestInputBuilder mprInput = RequestInputUtils
- .createMultipartHeader(MultipartType.OFPMPMETER, xid, version);
+ .createMultipartHeader(MultipartType.OFPMPMETER, xid.getValue(), version);
mprInput.setMultipartRequestBody(caseBuilder.build());
Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext()
.getConnectionAdapter().multipartRequest(mprInput.build());
@Override
public Future<RpcResult<GetMeterFeaturesOutput>> getMeterFeatures(final GetMeterFeaturesInput input) {
- final long xid = deviceContext.getNextXid().getValue();
return this.<GetMeterFeaturesOutput, Void>handleServiceCall(
PRIMARY_CONNECTION,
new Function<DataCrate<GetMeterFeaturesOutput>, ListenableFuture<RpcResult<Void>>>() {
MultipartRequestMeterFeaturesCaseBuilder mprMeterFeaturesBuild =
new MultipartRequestMeterFeaturesCaseBuilder();
+ final Xid xid = data.getRequestContext().getXid();
MultipartRequestInputBuilder mprInput =
- RequestInputUtils.createMultipartHeader(MultipartType.OFPMPMETERFEATURES, xid, version);
+ RequestInputUtils.createMultipartHeader(MultipartType.OFPMPMETERFEATURES, xid.getValue(), version);
mprInput.setMultipartRequestBody(mprMeterFeaturesBuild.build());
Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build());
return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
@Override
public Future<RpcResult<GetMeterStatisticsOutput>> getMeterStatistics(final GetMeterStatisticsInput input) {
- final long xid = deviceContext.getNextXid().getValue();
return this.<GetMeterStatisticsOutput, Void>handleServiceCall(
PRIMARY_CONNECTION,
new Function<DataCrate<GetMeterStatisticsOutput>, ListenableFuture<RpcResult<Void>>>() {
mprMeterBuild.setMeterId(new MeterId(input.getMeterId().getValue()));
caseBuilder.setMultipartRequestMeter(mprMeterBuild.build());
+ final Xid xid = data.getRequestContext().getXid();
MultipartRequestInputBuilder mprInput =
- RequestInputUtils.createMultipartHeader(MultipartType.OFPMPMETER, xid, version);
+ RequestInputUtils.createMultipartHeader(MultipartType.OFPMPMETER, xid.getValue(), version);
mprInput.setMultipartRequestBody(caseBuilder.build());
Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build());
return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
import com.google.common.base.Function;
import com.google.common.util.concurrent.JdkFutureAdapters;
import com.google.common.util.concurrent.ListenableFuture;
+import java.util.concurrent.Future;
import org.opendaylight.openflowplugin.api.OFConstants;
import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack;
import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.GetNodeConnectorStatisticsOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.OpendaylightPortStatisticsService;
import org.opendaylight.yangtools.yang.common.RpcResult;
-import java.util.concurrent.Future;
/**
* @author joe
mprPortStatsBuilder.setPortNo(OFConstants.OFPP_ANY);
caseBuilder.setMultipartRequestPortStats(mprPortStatsBuilder.build());
- final Xid xid = deviceContext.getNextXid();
- data.getRequestContext().setXid(xid);
+ final Xid xid = data.getRequestContext().getXid();
MultipartRequestInputBuilder mprInput = RequestInputUtils
.createMultipartHeader(MultipartType.OFPMPPORTSTATS, xid.getValue(), version);
mprInput.setMultipartRequestBody(caseBuilder.build());
input.getNodeConnectorId()));
caseBuilder.setMultipartRequestPortStats(mprPortStatsBuilder.build());
- final Xid xid = deviceContext.getNextXid();
- data.getRequestContext().setXid(xid);
+ final Xid xid = data.getRequestContext().getXid();
MultipartRequestInputBuilder mprInput = RequestInputUtils
.createMultipartHeader(MultipartType.OFPMPPORTSTATS, xid.getValue(), version);
mprInput.setMultipartRequestBody(caseBuilder.build());
caseBuilder.setMultipartRequestQueue(mprQueueBuilder.build());
// Set request body to main multipart request
- final Xid xid = deviceContext.getNextXid();
- data.getRequestContext().setXid(xid);
+ final Xid xid = data.getRequestContext().getXid();
MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
MultipartType.OFPMPQUEUE, xid.getValue(), version);
mprInput.setMultipartRequestBody(caseBuilder.build());
caseBuilder.setMultipartRequestQueue(mprQueueBuilder.build());
// Set request body to main multipart request
- final Xid xid = deviceContext.getNextXid();
- data.getRequestContext().setXid(xid);
+ final Xid xid = data.getRequestContext().getXid();
MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
MultipartType.OFPMPQUEUE, xid.getValue(), version);
mprInput.setMultipartRequestBody(caseBuilder.build());
caseBuilder.setMultipartRequestQueue(mprQueueBuilder.build());
// Set request body to main multipart request
- final Xid xid = deviceContext.getNextXid();
- data.getRequestContext().setXid(xid);
+ final Xid xid = data.getRequestContext().getXid();
MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
MultipartType.OFPMPQUEUE, xid.getValue(), version);
mprInput.setMultipartRequestBody(caseBuilder.build());
public ListenableFuture<RpcResult<Void>> apply(final DataCrate<List<MultipartReply>> data) {
LOG.info("Calling multipart request for type {}", type);
- final Xid xid = deviceContext.getNextXid();
- data.getRequestContext().setXid(xid);
+ final Xid xid = data.getRequestContext().getXid();
+
deviceContext.getOpenflowMessageListenerFacade().registerMultipartXid(xid.getValue());
MultipartRequestInput multipartRequestInput = MultipartRequestInputFactory.
makeMultipartRequestInput(xid.getValue(),