use of org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId 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.inventory.rev130819.NodeConnectorId in project openflowplugin by opendaylight.
the class PortDescMultipartWriter method storeStatistics.
@Override
public void storeStatistics(final MultipartReplyPortDesc statistics, final boolean withParents) {
statistics.getPorts().forEach(stat -> {
final NodeConnectorId id = InventoryDataServiceUtil.nodeConnectorIdfromDatapathPortNo(features.getDatapathId(), OpenflowPortsUtil.getProtocolPortNumber(OpenflowVersion.get(features.getVersion()), stat.getPortNumber()), OpenflowVersion.get(features.getVersion()));
writeToTransaction(getInstanceIdentifier().child(NodeConnector.class, new NodeConnectorKey(id)), new NodeConnectorBuilder().setId(id).addAugmentation(FlowCapableNodeConnector.class, new FlowCapableNodeConnectorBuilder(stat).build()).addAugmentation(FlowCapableNodeConnectorStatisticsData.class, new FlowCapableNodeConnectorStatisticsDataBuilder().build()).build(), withParents);
});
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId in project openflowplugin by opendaylight.
the class OF10DeviceInitializer method writePhyPortInformation.
@SuppressWarnings("checkstyle:IllegalCatch")
private static void writePhyPortInformation(final DeviceContext deviceContext) {
final DeviceInfo deviceInfo = deviceContext.getDeviceInfo();
final ConnectionContext connectionContext = deviceContext.getPrimaryConnectionContext();
final MessageTranslator<PortGrouping, FlowCapableNodeConnector> translator = deviceContext.oook().lookupTranslator(new TranslatorKey(deviceInfo.getVersion(), PortGrouping.class.getName()));
connectionContext.getFeatures().getPhyPort().forEach(port -> {
final NodeConnectorId nodeConnectorId = InventoryDataServiceUtil.nodeConnectorIdfromDatapathPortNo(deviceInfo.getDatapathId(), port.getPortNo(), OpenflowVersion.get(deviceInfo.getVersion()));
try {
deviceContext.writeToTransaction(LogicalDatastoreType.OPERATIONAL, deviceInfo.getNodeInstanceIdentifier().child(NodeConnector.class, new NodeConnectorKey(nodeConnectorId)), new NodeConnectorBuilder().setId(nodeConnectorId).addAugmentation(FlowCapableNodeConnector.class, translator.translate(port, deviceInfo, null)).addAugmentation(FlowCapableNodeConnectorStatisticsData.class, new FlowCapableNodeConnectorStatisticsDataBuilder().build()).build());
} catch (final Exception e) {
LOG.debug("Failed to write node {} to DS ", deviceInfo, e);
}
});
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId in project openflowplugin by opendaylight.
the class InPortEntrySerializerTest method testSerialize.
@Test
public void testSerialize() throws Exception {
final int port = 42;
final Match match = new MatchBuilder().setInPort(new NodeConnectorId("openflow:1:" + port)).build();
assertMatch(match, false, (out) -> assertEquals(out.readUnsignedInt(), port));
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId in project openflowplugin by opendaylight.
the class OpenflowpluginTestCommandProvider method createInphyportMatch.
private static MatchBuilder createInphyportMatch(final NodeId nodeId) {
final MatchBuilder match = new MatchBuilder();
match.setInPort(new NodeConnectorId(nodeId + ":202"));
match.setInPhyPort(new NodeConnectorId(nodeId + ":10122"));
return match;
}
Aggregations