use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.queue.property.header.QueueProperty in project openflowplugin by opendaylight.
the class OF10QueueGetConfigReplyMessageFactory method createPropertiesList.
private static List<QueueProperty> createPropertiesList(ByteBuf input, int length) {
int propertiesLength = length;
List<QueueProperty> propertiesList = new ArrayList<>();
while (propertiesLength > 0) {
QueuePropertyBuilder propertiesBuilder = new QueuePropertyBuilder();
QueueProperties property = QueueProperties.forValue(input.readUnsignedShort());
propertiesBuilder.setProperty(property);
propertiesLength -= input.readUnsignedShort();
input.skipBytes(PADDING_IN_QUEUE_PROPERTY_HEADER);
if (property.equals(QueueProperties.OFPQTMINRATE)) {
RateQueuePropertyBuilder rateBuilder = new RateQueuePropertyBuilder();
rateBuilder.setRate(input.readUnsignedShort());
propertiesBuilder.addAugmentation(RateQueueProperty.class, rateBuilder.build());
input.skipBytes(PADDING_IN_RATE_QUEUE_PROPERTY);
}
propertiesList.add(propertiesBuilder.build());
}
return propertiesList;
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.queue.property.header.QueueProperty in project openflowplugin by opendaylight.
the class QueueGetConfigReplyMessageFactory method serialize.
@Override
public void serialize(GetQueueConfigOutput message, ByteBuf outBuffer) {
ByteBufUtils.writeOFHeader(MESSAGE_TYPE, message, outBuffer, EncodeConstants.EMPTY_LENGTH);
outBuffer.writeInt(message.getPort().getValue().intValue());
outBuffer.writeZero(PADDING);
for (Queues queue : message.getQueues()) {
ByteBuf queueBuff = UnpooledByteBufAllocator.DEFAULT.buffer();
queueBuff.writeInt(queue.getQueueId().getValue().intValue());
queueBuff.writeInt(queue.getPort().getValue().intValue());
queueBuff.writeShort(EncodeConstants.EMPTY_LENGTH);
queueBuff.writeZero(QUEUE_PADDING);
for (QueueProperty property : queue.getQueueProperty()) {
ByteBuf propertyBuff = UnpooledByteBufAllocator.DEFAULT.buffer();
propertyBuff.writeShort(property.getProperty().getIntValue());
propertyBuff.writeShort(EncodeConstants.EMPTY_LENGTH);
propertyBuff.writeZero(PROPERTY_HEADER_PADDING);
switch(property.getProperty()) {
case OFPQTMINRATE:
case OFPQTMAXRATE:
serializeRateBody(property.getAugmentation(RateQueueProperty.class), propertyBuff);
break;
case OFPQTEXPERIMENTER:
serializeExperimenterBody(property.getAugmentation(ExperimenterIdQueueProperty.class), propertyBuff);
break;
default:
break;
}
propertyBuff.setShort(PROPERTY_LENGTH_INDEX, propertyBuff.readableBytes());
queueBuff.writeBytes(propertyBuff);
}
queueBuff.setShort(QUEUE_LENGTH_INDEX, queueBuff.readableBytes());
outBuffer.writeBytes(queueBuff);
}
ByteBufUtils.updateOFHeaderLength(outBuffer);
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.queue.property.header.QueueProperty in project openflowplugin by opendaylight.
the class QueueGetConfigReplyMessageFactory method createPropertiesList.
private List<QueueProperty> createPropertiesList(ByteBuf input, int length) {
int propertiesLength = length;
List<QueueProperty> propertiesList = new ArrayList<>();
while (propertiesLength > 0) {
int propertyStartIndex = input.readerIndex();
QueuePropertyBuilder propertiesBuilder = new QueuePropertyBuilder();
QueueProperties property = QueueProperties.forValue(input.readUnsignedShort());
propertiesBuilder.setProperty(property);
int currentPropertyLength = input.readUnsignedShort();
propertiesLength -= currentPropertyLength;
input.skipBytes(PADDING_IN_QUEUE_PROPERTY_HEADER);
if (property.equals(QueueProperties.OFPQTMINRATE) || property.equals(QueueProperties.OFPQTMAXRATE)) {
RateQueuePropertyBuilder rateBuilder = new RateQueuePropertyBuilder();
rateBuilder.setRate(input.readUnsignedShort());
propertiesBuilder.addAugmentation(RateQueueProperty.class, rateBuilder.build());
input.skipBytes(PADDING_IN_RATE_QUEUE_PROPERTY);
} else if (property.equals(QueueProperties.OFPQTEXPERIMENTER)) {
long expId = input.readUnsignedInt();
input.readerIndex(propertyStartIndex);
OFDeserializer<QueueProperty> deserializer = registry.getDeserializer(ExperimenterDeserializerKeyFactory.createQueuePropertyDeserializerKey(EncodeConstants.OF13_VERSION_ID, expId));
propertiesList.add(deserializer.deserialize(input));
continue;
}
propertiesList.add(propertiesBuilder.build());
}
return propertiesList;
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.queue.property.header.QueueProperty in project openflowplugin by opendaylight.
the class QueueGetConfigReplyMessageFactoryTest method createPropertiesList.
private static List<QueueProperty> createPropertiesList() {
final List<QueueProperty> propertiesList = new ArrayList<>();
QueuePropertyBuilder pb = new QueuePropertyBuilder();
pb.setProperty(QueueProperties.forValue(2));
RateQueuePropertyBuilder rateBuilder = new RateQueuePropertyBuilder();
rateBuilder.setRate(5);
pb.addAugmentation(RateQueueProperty.class, rateBuilder.build());
propertiesList.add(pb.build());
return propertiesList;
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.queue.property.header.QueueProperty 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);
}
Aggregations