use of org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.queues.Queue in project openflowplugin by opendaylight.
the class MultipartRequestInputFactory method serializeQueueBody.
private static void serializeQueueBody(final MultipartRequestBody multipartRequestBody, final ByteBuf output) {
MultipartRequestQueueCase queueCase = (MultipartRequestQueueCase) multipartRequestBody;
MultipartRequestQueue queue = queueCase.getMultipartRequestQueue();
output.writeInt(queue.getPortNo().intValue());
output.writeInt(queue.getQueueId().intValue());
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.queues.Queue in project openflowplugin by opendaylight.
the class OF10QueueGetConfigReplyMessageFactory method serialize.
@Override
public void serialize(GetQueueConfigOutput message, ByteBuf outBuffer) {
ByteBufUtils.writeOFHeader(MESSAGE_TYPE, message, outBuffer, EncodeConstants.EMPTY_LENGTH);
outBuffer.writeShort(message.getPort().getValue().intValue());
outBuffer.writeZero(PADDING);
for (Queues queue : message.getQueues()) {
ByteBuf queueBuff = UnpooledByteBufAllocator.DEFAULT.buffer();
queueBuff.writeInt(queue.getQueueId().getValue().intValue());
queueBuff.writeShort(EncodeConstants.EMPTY_LENGTH);
queueBuff.writeZero(QUEUE_PADDING);
for (QueueProperty queueProperty : queue.getQueueProperty()) {
ByteBuf queuePropertyBuff = UnpooledByteBufAllocator.DEFAULT.buffer();
queuePropertyBuff.writeShort(queueProperty.getProperty().getIntValue());
queuePropertyBuff.writeShort(EncodeConstants.EMPTY_LENGTH);
queuePropertyBuff.writeZero(4);
if (queueProperty.getProperty() == QueueProperties.OFPQTMINRATE) {
RateQueueProperty body = queueProperty.getAugmentation(RateQueueProperty.class);
queuePropertyBuff.writeShort(body.getRate().intValue());
queuePropertyBuff.writeZero(QUEUE_PROPERTY_PADDING);
}
queuePropertyBuff.setShort(QUEUE_PROPERTY_LENGTH_INDEX, queuePropertyBuff.readableBytes());
queueBuff.writeBytes(queuePropertyBuff);
}
queueBuff.setShort(QUEUE_LENGTH_INDEX, queueBuff.readableBytes());
outBuffer.writeBytes(queueBuff);
}
ByteBufUtils.updateOFHeaderLength(outBuffer);
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.queues.Queue in project openflowplugin by opendaylight.
the class OF10StatsRequestInputFactory method serializeQueueBody.
private static void serializeQueueBody(final MultipartRequestBody multipartRequestBody, final ByteBuf output) {
MultipartRequestQueueCase queueCase = (MultipartRequestQueueCase) multipartRequestBody;
MultipartRequestQueue queue = queueCase.getMultipartRequestQueue();
output.writeShort(queue.getPortNo().intValue());
output.writeZero(PADING_IN_QUEUE_BODY);
output.writeInt(queue.getQueueId().intValue());
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.queues.Queue in project openflowplugin by opendaylight.
the class MultipartReplyMessageFactoryTest method testQueueSerialize.
@Test
public void testQueueSerialize() throws Exception {
MultipartReplyMessageBuilder builder = new MultipartReplyMessageBuilder();
BufferHelper.setupHeader(builder, EncodeConstants.OF13_VERSION_ID);
builder.setFlags(new MultipartRequestFlags(true));
builder.setType(MultipartType.forValue(5));
MultipartReplyQueueCaseBuilder queueCase = new MultipartReplyQueueCaseBuilder();
MultipartReplyQueueBuilder queue = new MultipartReplyQueueBuilder();
queue.setQueueStats(createQueueStats());
queueCase.setMultipartReplyQueue(queue.build());
builder.setMultipartReplyBody(queueCase.build());
MultipartReplyMessage message = builder.build();
ByteBuf serializedBuffer = UnpooledByteBufAllocator.DEFAULT.buffer();
factory.serialize(message, serializedBuffer);
BufferHelper.checkHeaderV13(serializedBuffer, MESSAGE_TYPE, 56);
Assert.assertEquals("Wrong type", MultipartType.OFPMPQUEUE.getIntValue(), serializedBuffer.readShort());
Assert.assertEquals("Wrong flags", message.getFlags(), createMultipartRequestFlags(serializedBuffer.readShort()));
serializedBuffer.skipBytes(PADDING);
MultipartReplyQueueCase body = (MultipartReplyQueueCase) message.getMultipartReplyBody();
MultipartReplyQueue messageOutput = body.getMultipartReplyQueue();
QueueStats queueStats = messageOutput.getQueueStats().get(0);
Assert.assertEquals("Wrong PortNo", queueStats.getPortNo().intValue(), serializedBuffer.readUnsignedInt());
Assert.assertEquals("Wrong queue id", queueStats.getQueueId().intValue(), serializedBuffer.readUnsignedInt());
Assert.assertEquals("Wrong tx bytes", queueStats.getTxBytes().longValue(), serializedBuffer.readLong());
Assert.assertEquals("Wrong tx packets", queueStats.getTxPackets().longValue(), serializedBuffer.readLong());
Assert.assertEquals("Wrong tx errors", queueStats.getTxErrors().longValue(), serializedBuffer.readLong());
Assert.assertEquals("Wrong duration sec", queueStats.getDurationSec().intValue(), serializedBuffer.readInt());
Assert.assertEquals("Wrong duration nsec", queueStats.getDurationNsec().intValue(), serializedBuffer.readInt());
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.queues.Queue in project openflowplugin by opendaylight.
the class QueueGetConfigReplyMessageFactoryTest method testSerialize.
@Test
public void testSerialize() throws Exception {
GetQueueConfigOutputBuilder builder = new GetQueueConfigOutputBuilder();
BufferHelper.setupHeader(builder, EncodeConstants.OF13_VERSION_ID);
builder.setPort(new PortNumber(0x00010203L));
builder.setQueues(createQueuesList());
GetQueueConfigOutput message = builder.build();
ByteBuf serializedBuffer = UnpooledByteBufAllocator.DEFAULT.buffer();
factory.serialize(message, serializedBuffer);
BufferHelper.checkHeaderV13(serializedBuffer, MESSAGE_TYPE, 80);
Assert.assertEquals("Wrong port", message.getPort().getValue().longValue(), serializedBuffer.readInt());
serializedBuffer.skipBytes(PADDING);
Assert.assertEquals("Wrong queue Id", message.getQueues().get(0).getQueueId().getValue().longValue(), serializedBuffer.readInt());
Assert.assertEquals("Wrong port", message.getQueues().get(0).getPort().getValue().longValue(), serializedBuffer.readInt());
Assert.assertEquals("Wrong length", 32, serializedBuffer.readShort());
serializedBuffer.skipBytes(QUEUE_PADDING);
List<QueueProperty> properties = message.getQueues().get(0).getQueueProperty();
Assert.assertEquals("Wrong property", properties.get(0).getProperty().getIntValue(), serializedBuffer.readShort());
Assert.assertEquals("Wrong property length", 16, serializedBuffer.readShort());
serializedBuffer.skipBytes(PROPERTY_HEADER_PADDING);
RateQueueProperty rateQueueProperty = properties.get(0).getAugmentation(RateQueueProperty.class);
Assert.assertEquals("Wrong rate", rateQueueProperty.getRate().intValue(), serializedBuffer.readShort());
serializedBuffer.skipBytes(PROPERTY_RATE_PADDING);
Assert.assertEquals("Wrong queue Id", message.getQueues().get(1).getQueueId().getValue().longValue(), serializedBuffer.readInt());
Assert.assertEquals("Wrong queue Id", message.getQueues().get(1).getPort().getValue().longValue(), serializedBuffer.readInt());
Assert.assertEquals("Wrong length", 32, serializedBuffer.readShort());
serializedBuffer.skipBytes(QUEUE_PADDING);
List<QueueProperty> propertiesTwo = message.getQueues().get(1).getQueueProperty();
Assert.assertEquals("Wrong property", propertiesTwo.get(0).getProperty().getIntValue(), serializedBuffer.readShort());
Assert.assertEquals("Wrong property length", 16, serializedBuffer.readShort());
serializedBuffer.skipBytes(PROPERTY_HEADER_PADDING);
RateQueueProperty rateQueuePropertyTwo = propertiesTwo.get(0).getAugmentation(RateQueueProperty.class);
Assert.assertEquals("Wrong rate", rateQueuePropertyTwo.getRate().intValue(), serializedBuffer.readShort());
serializedBuffer.skipBytes(PROPERTY_RATE_PADDING);
}
Aggregations