use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table._case.multipart.reply.table.TableStatsBuilder in project openflowplugin by opendaylight.
the class OpendaylightFlowTableStatisticsServiceImplTest method testGetFlowTablesStatistics.
@Test
public void testGetFlowTablesStatistics() throws Exception {
Mockito.doAnswer(answerVoidToCallback).when(outboundQueueProvider).commitEntry(Matchers.eq(42L), requestInput.capture(), Matchers.any(FutureCallback.class));
GetFlowTablesStatisticsInputBuilder input = new GetFlowTablesStatisticsInputBuilder().setNode(createNodeRef("unitProt:123"));
rpcResult = RpcResultBuilder.<Object>success(Collections.singletonList(new MultipartReplyMessageBuilder().setVersion(OFConstants.OFP_VERSION_1_3).setMultipartReplyBody(new MultipartReplyTableCaseBuilder().setMultipartReplyTable(new MultipartReplyTableBuilder().setTableStats(Collections.singletonList(new TableStatsBuilder().setActiveCount(31L).setLookupCount(BigInteger.valueOf(32L)).setMatchedCount(BigInteger.valueOf(33L)).setMaxEntries(34L).setName("test-table").setNwDstMask((short) 35).setNwSrcMask((short) 36).setTableId(TABLE_ID).build())).build()).build()).build())).build();
final Future<RpcResult<GetFlowTablesStatisticsOutput>> resultFuture = flowTableStatisticsService.getFlowTablesStatistics(input.build());
Assert.assertTrue(resultFuture.isDone());
final RpcResult<GetFlowTablesStatisticsOutput> rpcResult = resultFuture.get();
Assert.assertTrue(rpcResult.isSuccessful());
Assert.assertEquals(MultipartType.OFPMPTABLE, requestInput.getValue().getType());
Mockito.verify(notificationPublishService).offerNotification(Matchers.<Notification>any());
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table._case.multipart.reply.table.TableStatsBuilder in project openflowplugin by opendaylight.
the class MultipartReplyTranslatorUtilTest method translateTable.
@Test
public void translateTable() {
final MultipartReply multipartReply = buildReply(MultipartType.OFPMPTABLE, new MultipartReplyTableCaseBuilder().setMultipartReplyTable(new MultipartReplyTableBuilder().setTableStats(Collections.singletonList(new TableStatsBuilder().setActiveCount(10L).setLookupCount(BigInteger.ONE).setMatchedCount(BigInteger.ONE).setTableId((short) 10).build())).build()).build());
dummyAssertReply(multipartReply);
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table._case.multipart.reply.table.TableStatsBuilder in project openflowplugin by opendaylight.
the class MultipartReplyMessageFactoryTest method createTableStats.
private static List<TableStats> createTableStats() {
TableStatsBuilder builder = new TableStatsBuilder();
builder.setTableId((short) 1);
builder.setActiveCount(1L);
builder.setLookupCount(BigInteger.valueOf(1L));
builder.setMatchedCount(BigInteger.valueOf(1L));
List<TableStats> list = new ArrayList<>();
list.add(builder.build());
return list;
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table._case.multipart.reply.table.TableStatsBuilder in project openflowplugin by opendaylight.
the class MultipartReplyMessageFactory method setTable.
private static MultipartReplyTableCase setTable(final ByteBuf input) {
MultipartReplyTableCaseBuilder caseBuilder = new MultipartReplyTableCaseBuilder();
MultipartReplyTableBuilder builder = new MultipartReplyTableBuilder();
List<TableStats> tableStatsList = new ArrayList<>();
while (input.readableBytes() > 0) {
TableStatsBuilder tableStatsBuilder = new TableStatsBuilder();
tableStatsBuilder.setTableId(input.readUnsignedByte());
input.skipBytes(PADDING_IN_TABLE_HEADER);
tableStatsBuilder.setActiveCount(input.readUnsignedInt());
byte[] lookupCount = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(lookupCount);
tableStatsBuilder.setLookupCount(new BigInteger(1, lookupCount));
byte[] matchedCount = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(matchedCount);
tableStatsBuilder.setMatchedCount(new BigInteger(1, matchedCount));
tableStatsList.add(tableStatsBuilder.build());
}
builder.setTableStats(tableStatsList);
caseBuilder.setMultipartReplyTable(builder.build());
return caseBuilder.build();
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table._case.multipart.reply.table.TableStatsBuilder in project openflowplugin by opendaylight.
the class OF10StatsReplyMessageFactory method setTable.
private static MultipartReplyTableCase setTable(ByteBuf input) {
final MultipartReplyTableCaseBuilder caseBuilder = new MultipartReplyTableCaseBuilder();
MultipartReplyTableBuilder builder = new MultipartReplyTableBuilder();
List<TableStats> tableStatsList = new ArrayList<>();
// TODO - replace ">= TABLE_STATS_LENGTH" with "> 0" after fix in OVS switch
while (input.readableBytes() >= TABLE_STATS_LENGTH) {
TableStatsBuilder tableStatsBuilder = new TableStatsBuilder();
tableStatsBuilder.setTableId(input.readUnsignedByte());
input.skipBytes(PADDING_IN_TABLE_HEADER);
tableStatsBuilder.setName(ByteBufUtils.decodeNullTerminatedString(input, MAX_TABLE_NAME_LENGTH));
long wildcards = input.readUnsignedInt();
tableStatsBuilder.setWildcards(OF10MatchDeserializer.createWildcards(wildcards));
tableStatsBuilder.setNwSrcMask(OF10MatchDeserializer.decodeNwSrcMask(wildcards));
tableStatsBuilder.setNwDstMask(OF10MatchDeserializer.decodeNwDstMask(wildcards));
tableStatsBuilder.setMaxEntries(input.readUnsignedInt());
tableStatsBuilder.setActiveCount(input.readUnsignedInt());
byte[] lookupCount = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(lookupCount);
tableStatsBuilder.setLookupCount(new BigInteger(1, lookupCount));
byte[] matchedCount = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(matchedCount);
tableStatsBuilder.setMatchedCount(new BigInteger(1, matchedCount));
tableStatsList.add(tableStatsBuilder.build());
}
input.skipBytes(input.readableBytes());
builder.setTableStats(tableStatsList);
caseBuilder.setMultipartReplyTable(builder.build());
return caseBuilder.build();
}
Aggregations