use of org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.multipart.reply.multipart.reply.body.MultipartReplyPortStatsBuilder in project openflowplugin by opendaylight.
the class MultipartReplyPortStatsDeserializer method deserialize.
@Override
public MultipartReplyBody deserialize(ByteBuf message) {
final MultipartReplyPortStatsBuilder builder = new MultipartReplyPortStatsBuilder();
final List<NodeConnectorStatisticsAndPortNumberMap> items = new ArrayList<>();
while (message.readableBytes() > 0) {
final NodeConnectorStatisticsAndPortNumberMapBuilder itemBuilder = new NodeConnectorStatisticsAndPortNumberMapBuilder();
final long port = message.readUnsignedInt();
itemBuilder.setNodeConnectorId(new NodeConnectorId(OpenflowPortsUtil.getProtocolAgnosticPortUri(EncodeConstants.OF13_VERSION_ID, port)));
message.skipBytes(PADDING_IN_PORT_STATS_HEADER);
final byte[] recPack = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
message.readBytes(recPack);
final byte[] txPack = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
message.readBytes(txPack);
final byte[] recByt = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
message.readBytes(recByt);
final byte[] txByt = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
message.readBytes(txByt);
final byte[] recDrop = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
message.readBytes(recDrop);
final byte[] txDrop = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
message.readBytes(txDrop);
final byte[] recError = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
message.readBytes(recError);
final byte[] txError = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
message.readBytes(txError);
final byte[] recFrameError = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
message.readBytes(recFrameError);
final byte[] recOverRunError = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
message.readBytes(recOverRunError);
final byte[] recCrcError = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
message.readBytes(recCrcError);
final byte[] collisionCount = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
message.readBytes(collisionCount);
items.add(itemBuilder.setKey(new NodeConnectorStatisticsAndPortNumberMapKey(itemBuilder.getNodeConnectorId())).setPackets(new PacketsBuilder().setReceived(new BigInteger(1, recPack)).setTransmitted(new BigInteger(1, txPack)).build()).setBytes(new BytesBuilder().setReceived(new BigInteger(1, recByt)).setTransmitted(new BigInteger(1, txByt)).build()).setReceiveDrops(new BigInteger(1, recDrop)).setTransmitDrops(new BigInteger(1, txDrop)).setReceiveErrors(new BigInteger(1, recError)).setTransmitErrors(new BigInteger(1, txError)).setReceiveFrameError(new BigInteger(1, recFrameError)).setReceiveOverRunError(new BigInteger(1, recOverRunError)).setReceiveCrcError(new BigInteger(1, recCrcError)).setCollisionCount(new BigInteger(1, collisionCount)).setDuration(new DurationBuilder().setSecond(new Counter32(message.readUnsignedInt())).setNanosecond(new Counter32(message.readUnsignedInt())).build()).build());
}
return builder.setNodeConnectorStatisticsAndPortNumberMap(items).build();
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.multipart.reply.multipart.reply.body.MultipartReplyPortStatsBuilder in project openflowplugin by opendaylight.
the class NodeConnectorDirectStatisticsServiceTest method testBuildReply.
@Override
public void testBuildReply() throws Exception {
final NodeConnectorStatisticsAndPortNumberMap portStat = new NodeConnectorStatisticsAndPortNumberMapBuilder().setNodeConnectorId(nodeConnectorId).build();
final MultipartReply reply = new MultipartReplyBuilder().setMultipartReplyBody(new MultipartReplyPortStatsBuilder().setNodeConnectorStatisticsAndPortNumberMap(Collections.singletonList(portStat)).build()).build();
final List<MultipartReply> input = Collections.singletonList(reply);
final GetNodeConnectorStatisticsOutput output = service.buildReply(input, true);
assertTrue(output.getNodeConnectorStatisticsAndPortNumberMap().size() > 0);
final NodeConnectorStatisticsAndPortNumberMap stats = output.getNodeConnectorStatisticsAndPortNumberMap().get(0);
assertEquals(stats.getNodeConnectorId(), nodeConnectorId);
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.multipart.reply.multipart.reply.body.MultipartReplyPortStatsBuilder in project openflowplugin by opendaylight.
the class MultipartReplyTranslatorUtil method translatePortStats.
private static org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.multipart.reply.multipart.reply.body.MultipartReplyPortStats translatePortStats(final MultipartReply msg, final OpenflowVersion ofVersion, final BigInteger datapathId) {
MultipartReplyPortStatsBuilder message = new MultipartReplyPortStatsBuilder();
MultipartReplyPortStatsCase caseBody = (MultipartReplyPortStatsCase) msg.getMultipartReplyBody();
MultipartReplyPortStats replyBody = caseBody.getMultipartReplyPortStats();
List<NodeConnectorStatisticsAndPortNumberMap> statsMap = new ArrayList<>();
for (PortStats portStats : replyBody.getPortStats()) {
NodeConnectorStatisticsAndPortNumberMapBuilder statsBuilder = new NodeConnectorStatisticsAndPortNumberMapBuilder();
statsBuilder.setNodeConnectorId(InventoryDataServiceUtil.nodeConnectorIdfromDatapathPortNo(datapathId, portStats.getPortNo(), ofVersion));
BytesBuilder bytesBuilder = new BytesBuilder();
bytesBuilder.setReceived(portStats.getRxBytes());
bytesBuilder.setTransmitted(portStats.getTxBytes());
statsBuilder.setBytes(bytesBuilder.build());
PacketsBuilder packetsBuilder = new PacketsBuilder();
packetsBuilder.setReceived(portStats.getRxPackets());
packetsBuilder.setTransmitted(portStats.getTxPackets());
statsBuilder.setPackets(packetsBuilder.build());
DurationBuilder durationBuilder = new DurationBuilder();
if (portStats.getDurationSec() != null) {
durationBuilder.setSecond(new Counter32(portStats.getDurationSec()));
}
if (portStats.getDurationNsec() != null) {
durationBuilder.setNanosecond(new Counter32(portStats.getDurationNsec()));
}
statsBuilder.setDuration(durationBuilder.build());
statsBuilder.setCollisionCount(portStats.getCollisions());
statsBuilder.setKey(new NodeConnectorStatisticsAndPortNumberMapKey(statsBuilder.getNodeConnectorId()));
statsBuilder.setReceiveCrcError(portStats.getRxCrcErr());
statsBuilder.setReceiveDrops(portStats.getRxDropped());
statsBuilder.setReceiveErrors(portStats.getRxErrors());
statsBuilder.setReceiveFrameError(portStats.getRxFrameErr());
statsBuilder.setReceiveOverRunError(portStats.getRxOverErr());
statsBuilder.setTransmitDrops(portStats.getTxDropped());
statsBuilder.setTransmitErrors(portStats.getTxErrors());
statsMap.add(statsBuilder.build());
}
message.setNodeConnectorStatisticsAndPortNumberMap(statsMap);
return message.build();
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.multipart.reply.multipart.reply.body.MultipartReplyPortStatsBuilder in project openflowplugin by opendaylight.
the class MultipartReplyMessageFactory method setPortStats.
private static MultipartReplyPortStatsCase setPortStats(final ByteBuf input) {
MultipartReplyPortStatsCaseBuilder caseBuilder = new MultipartReplyPortStatsCaseBuilder();
MultipartReplyPortStatsBuilder builder = new MultipartReplyPortStatsBuilder();
List<PortStats> portStatsList = new ArrayList<>();
while (input.readableBytes() > 0) {
PortStatsBuilder portStatsBuilder = new PortStatsBuilder();
portStatsBuilder.setPortNo(input.readUnsignedInt());
input.skipBytes(PADDING_IN_PORT_STATS_HEADER);
byte[] rxPackets = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(rxPackets);
portStatsBuilder.setRxPackets(new BigInteger(1, rxPackets));
byte[] txPackets = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(txPackets);
portStatsBuilder.setTxPackets(new BigInteger(1, txPackets));
byte[] rxBytes = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(rxBytes);
portStatsBuilder.setRxBytes(new BigInteger(1, rxBytes));
byte[] txBytes = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(txBytes);
portStatsBuilder.setTxBytes(new BigInteger(1, txBytes));
byte[] rxDropped = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(rxDropped);
portStatsBuilder.setRxDropped(new BigInteger(1, rxDropped));
byte[] txDropped = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(txDropped);
portStatsBuilder.setTxDropped(new BigInteger(1, txDropped));
byte[] rxErrors = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(rxErrors);
portStatsBuilder.setRxErrors(new BigInteger(1, rxErrors));
byte[] txErrors = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(txErrors);
portStatsBuilder.setTxErrors(new BigInteger(1, txErrors));
byte[] rxFrameErr = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(rxFrameErr);
portStatsBuilder.setRxFrameErr(new BigInteger(1, rxFrameErr));
byte[] rxOverErr = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(rxOverErr);
portStatsBuilder.setRxOverErr(new BigInteger(1, rxOverErr));
byte[] rxCrcErr = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(rxCrcErr);
portStatsBuilder.setRxCrcErr(new BigInteger(1, rxCrcErr));
byte[] collisions = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(collisions);
portStatsBuilder.setCollisions(new BigInteger(1, collisions));
portStatsBuilder.setDurationSec(input.readUnsignedInt());
portStatsBuilder.setDurationNsec(input.readUnsignedInt());
portStatsList.add(portStatsBuilder.build());
}
builder.setPortStats(portStatsList);
caseBuilder.setMultipartReplyPortStats(builder.build());
return caseBuilder.build();
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.multipart.reply.multipart.reply.body.MultipartReplyPortStatsBuilder in project openflowplugin by opendaylight.
the class OF10StatsReplyMessageFactory method setPortStats.
private static MultipartReplyPortStatsCase setPortStats(ByteBuf input) {
MultipartReplyPortStatsCaseBuilder caseBuilder = new MultipartReplyPortStatsCaseBuilder();
MultipartReplyPortStatsBuilder builder = new MultipartReplyPortStatsBuilder();
List<PortStats> portStatsList = new ArrayList<>();
while (input.readableBytes() > 0) {
PortStatsBuilder portStatsBuilder = new PortStatsBuilder();
portStatsBuilder.setPortNo((long) input.readUnsignedShort());
input.skipBytes(PADDING_IN_PORT_STATS_HEADER);
byte[] rxPackets = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(rxPackets);
portStatsBuilder.setRxPackets(new BigInteger(1, rxPackets));
byte[] txPackets = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(txPackets);
portStatsBuilder.setTxPackets(new BigInteger(1, txPackets));
byte[] rxBytes = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(rxBytes);
portStatsBuilder.setRxBytes(new BigInteger(1, rxBytes));
byte[] txBytes = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(txBytes);
portStatsBuilder.setTxBytes(new BigInteger(1, txBytes));
byte[] rxDropped = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(rxDropped);
portStatsBuilder.setRxDropped(new BigInteger(1, rxDropped));
byte[] txDropped = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(txDropped);
portStatsBuilder.setTxDropped(new BigInteger(1, txDropped));
byte[] rxErrors = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(rxErrors);
portStatsBuilder.setRxErrors(new BigInteger(1, rxErrors));
byte[] txErrors = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(txErrors);
portStatsBuilder.setTxErrors(new BigInteger(1, txErrors));
byte[] rxFrameErr = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(rxFrameErr);
portStatsBuilder.setRxFrameErr(new BigInteger(1, rxFrameErr));
byte[] rxOverErr = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(rxOverErr);
portStatsBuilder.setRxOverErr(new BigInteger(1, rxOverErr));
byte[] rxCrcErr = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(rxCrcErr);
portStatsBuilder.setRxCrcErr(new BigInteger(1, rxCrcErr));
byte[] collisions = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(collisions);
portStatsBuilder.setCollisions(new BigInteger(1, collisions));
portStatsList.add(portStatsBuilder.build());
}
builder.setPortStats(portStatsList);
caseBuilder.setMultipartReplyPortStats(builder.build());
return caseBuilder.build();
}
Aggregations