f.setMatch(match);\r
FlowOnNode fon = new FlowOnNode(f);\r
fon.setByteCount(200);\r
+ fon.setPacketCount(6);\r
fon.setDurationSeconds(1);\r
fon.setDurationNanoseconds(100000000);\r
flowStatsListn1.add(fon);\r
f.setMatch(match);\r
fon = new FlowOnNode(f);\r
fon.setByteCount(64);\r
+ fon.setPacketCount(5);\r
fon.setDurationSeconds(1);\r
fon.setDurationNanoseconds(0);\r
flowStatsListn1.add(fon);\r
f.setMatch(match);\r
fon = new FlowOnNode(f);\r
fon.setByteCount(76);\r
+ fon.setPacketCount(4);\r
fon.setDurationSeconds(2);\r
fon.setDurationNanoseconds(0);\r
flowStatsListn1.add(fon);\r
f.setMatch(match);\r
fon = new FlowOnNode(f);\r
fon.setByteCount(300);\r
+ fon.setPacketCount(3);\r
fon.setDurationSeconds(1);\r
fon.setDurationNanoseconds(200000000);\r
flowStatsListn2.add(fon);\r
f.setMatch(match);\r
fon = new FlowOnNode(f);\r
fon.setByteCount(27);\r
+ fon.setPacketCount(4);\r
fon.setDurationSeconds(1);\r
fon.setDurationNanoseconds(0);\r
flowStatsListn1.add(fon);\r
f.setMatch(match);\r
fon = new FlowOnNode(f);\r
fon.setByteCount(234);\r
+ fon.setPacketCount(2);\r
fon.setDurationSeconds(2);\r
fon.setDurationNanoseconds(0);\r
flowStatsListn2.add(fon);\r
f.setMatch(match);\r
fon = new FlowOnNode(f);\r
fon.setByteCount(54);\r
+ fon.setPacketCount(1);\r
fon.setDurationSeconds(3);\r
fon.setDurationNanoseconds(100000000);\r
flowStatsListn2.add(fon);\r
\r
// Host pairs - basic stats\r
Assert.assertTrue(am.getByteCount(hnc1, hnc3) == 200 + 64);\r
+ Assert.assertTrue(am.getPacketCount(hnc1, hnc3) == 6 + 5);\r
Assert.assertTrue(am.getDuration(hnc1, hnc3) == 1.1);\r
Assert.assertTrue(am.getBitRate(hnc1, hnc3) == ((200 + 64) * 8.0) / 1.1);\r
Assert.assertTrue(am.getByteCount(hnc1, hnc4) == 76);\r
+ Assert.assertTrue(am.getPacketCount(hnc1, hnc4) == 4);\r
Assert.assertTrue(am.getDuration(hnc1, hnc4) == 2.0);\r
Assert.assertTrue(am.getBitRate(hnc1, hnc4) == (76 * 8.0) / 2.0);\r
Assert.assertTrue(am.getByteCount(hnc2, hnc4) == 300);\r
+ Assert.assertTrue(am.getPacketCount(hnc2, hnc4) == 3);\r
Assert.assertTrue(am.getDuration(hnc2, hnc4) == 1.2);\r
Assert.assertTrue(am.getBitRate(hnc2, hnc4) == (300 * 8.0) / 1.2);\r
Assert.assertTrue(am.getByteCount(hnc1, hnc5) == 27);\r
+ Assert.assertTrue(am.getPacketCount(hnc1, hnc5) == 4);\r
Assert.assertTrue(am.getDuration(hnc1, hnc5) == 1.0);\r
Assert.assertTrue(am.getBitRate(hnc1, hnc5) == (27 * 8.0) / 1.0);\r
Assert.assertTrue(am.getByteCount(hnc2, hnc5) == 234 + 54);\r
+ Assert.assertTrue(am.getPacketCount(hnc2, hnc5) == 2 + 1);\r
Assert.assertTrue(am.getDuration(hnc2, hnc5) == 3.1);\r
Assert.assertTrue(am.getBitRate(hnc2, hnc5) == ((234 + 54) * 8.0) / 3.1);\r
\r
// Host pairs - per-protocol stats\r
Assert.assertTrue(am.getByteCount(hnc1, hnc3, IPProtocols.ICMP.byteValue()) == 64);\r
+ Assert.assertTrue(am.getPacketCount(hnc1, hnc3, IPProtocols.ICMP.byteValue()) == 5);\r
Assert.assertTrue(am.getDuration(hnc1, hnc3, IPProtocols.ICMP.byteValue()) == 1.0);\r
Assert.assertTrue(am.getBitRate(hnc1, hnc3, IPProtocols.ICMP.byteValue()) == (64 * 8.0) / 1.0);\r
Assert.assertTrue(am.getByteCount(hnc1, hnc3, IPProtocols.UDP.byteValue()) == 200);\r
+ Assert.assertTrue(am.getPacketCount(hnc1, hnc3, IPProtocols.UDP.byteValue()) == 6);\r
Assert.assertTrue(am.getDuration(hnc1, hnc3, IPProtocols.UDP.byteValue()) == 1.1);\r
Assert.assertTrue(am.getBitRate(hnc1, hnc3, IPProtocols.UDP.byteValue()) == (200 * 8.0) / 1.1);\r
Assert.assertTrue(am.getByteCount(hnc1, hnc3, IPProtocols.TCP.byteValue()) == 0);\r
+ Assert.assertTrue(am.getPacketCount(hnc1, hnc3, IPProtocols.TCP.byteValue()) == 0);\r
Assert.assertTrue(am.getDuration(hnc1, hnc3, IPProtocols.TCP.byteValue()) == 0.0);\r
Assert.assertTrue(am.getBitRate(hnc1, hnc3, IPProtocols.TCP.byteValue()) == 0.0);\r
Assert.assertTrue(am.getByteCount(hnc1, hnc4, IPProtocols.TCP.byteValue()) == 76);\r
+ Assert.assertTrue(am.getPacketCount(hnc1, hnc4, IPProtocols.TCP.byteValue()) == 4);\r
Assert.assertTrue(am.getDuration(hnc1, hnc4, IPProtocols.TCP.byteValue()) == 2.0);\r
Assert.assertTrue(am.getBitRate(hnc1, hnc4, IPProtocols.TCP.byteValue()) == (76 * 8.0) / 2.0);\r
Assert.assertTrue(am.getByteCount(hnc2, hnc4, IPProtocols.TCP.byteValue()) == 300);\r
+ Assert.assertTrue(am.getPacketCount(hnc2, hnc4, IPProtocols.TCP.byteValue()) == 3);\r
Assert.assertTrue(am.getDuration(hnc2, hnc4, IPProtocols.TCP.byteValue()) == 1.2);\r
Assert.assertTrue(am.getBitRate(hnc2, hnc4, IPProtocols.TCP.byteValue()) == (300 * 8.0) / 1.2);\r
Assert.assertTrue(am.getByteCount(hnc1, hnc5, IPProtocols.UDP.byteValue()) == 27);\r
+ Assert.assertTrue(am.getPacketCount(hnc1, hnc5, IPProtocols.UDP.byteValue()) == 4);\r
Assert.assertTrue(am.getDuration(hnc1, hnc5, IPProtocols.UDP.byteValue()) == 1.0);\r
Assert.assertTrue(am.getBitRate(hnc1, hnc5, IPProtocols.UDP.byteValue()) == (27 * 8.0) / 1.0);\r
Assert.assertTrue(am.getByteCount(hnc2, hnc5, IPProtocols.ICMP.byteValue()) == 54);\r
+ Assert.assertTrue(am.getPacketCount(hnc2, hnc5, IPProtocols.ICMP.byteValue()) == 1);\r
Assert.assertTrue(am.getDuration(hnc2, hnc5, IPProtocols.ICMP.byteValue()) == 3.1);\r
Assert.assertTrue(am.getBitRate(hnc2, hnc5, IPProtocols.ICMP.byteValue()) == (54 * 8.0) / 3.1);\r
Assert.assertTrue(am.getByteCount(hnc2, hnc5, IPProtocols.TCP.byteValue()) == 234);\r
+ Assert.assertTrue(am.getPacketCount(hnc2, hnc5, IPProtocols.TCP.byteValue()) == 2);\r
Assert.assertTrue(am.getDuration(hnc2, hnc5, IPProtocols.TCP.byteValue()) == 2.0);\r
Assert.assertTrue(am.getBitRate(hnc2, hnc5, IPProtocols.TCP.byteValue()) == (234 * 8.0) / 2.0);\r
\r
// Host pairs - all stats\r
- Map<Byte, Long> byteCounts = am.getAllByteCounts(hnc1, hnc3);\r
- Map<Byte, Double> bitRates = am.getAllBitRates(hnc1, hnc3);\r
- Assert.assertTrue(byteCounts.get(IPProtocols.ICMP.byteValue()) == am.getByteCount(hnc1, hnc3, IPProtocols.ICMP.byteValue()));\r
- Assert.assertTrue(byteCounts.get(IPProtocols.UDP.byteValue()) == am.getByteCount(hnc1, hnc3, IPProtocols.UDP.byteValue()));\r
- Assert.assertTrue(byteCounts.get(IPProtocols.TCP.byteValue()) == null);\r
- Assert.assertTrue(bitRates.get(IPProtocols.ICMP.byteValue()) == am.getBitRate(hnc1, hnc3, IPProtocols.ICMP.byteValue()));\r
- Assert.assertTrue(bitRates.get(IPProtocols.UDP.byteValue()) == am.getBitRate(hnc1, hnc3, IPProtocols.UDP.byteValue()));\r
- Assert.assertTrue(bitRates.get(IPProtocols.TCP.byteValue()) == null);\r
- byteCounts = am.getAllByteCounts(hnc1, hnc4);\r
- bitRates = am.getAllBitRates(hnc1, hnc4);\r
- Assert.assertTrue(byteCounts.get(IPProtocols.TCP.byteValue()) == am.getByteCount(hnc1, hnc4, IPProtocols.TCP.byteValue()));\r
- Assert.assertTrue(bitRates.get(IPProtocols.TCP.byteValue()) == am.getBitRate(hnc1, hnc4, IPProtocols.TCP.byteValue()));\r
- byteCounts = am.getAllByteCounts(hnc2, hnc4);\r
- bitRates = am.getAllBitRates(hnc2, hnc4);\r
- Assert.assertTrue(byteCounts.get(IPProtocols.TCP.byteValue()) == am.getByteCount(hnc2, hnc4, IPProtocols.TCP.byteValue()));\r
- Assert.assertTrue(bitRates.get(IPProtocols.TCP.byteValue()) == am.getBitRate(hnc2, hnc4, IPProtocols.TCP.byteValue()));\r
- byteCounts = am.getAllByteCounts(hnc1, hnc5);\r
- bitRates = am.getAllBitRates(hnc1, hnc5);\r
- Assert.assertTrue(byteCounts.get(IPProtocols.UDP.byteValue()) == am.getByteCount(hnc1, hnc5, IPProtocols.UDP.byteValue()));\r
- Assert.assertTrue(bitRates.get(IPProtocols.UDP.byteValue()) == am.getBitRate(hnc1, hnc5, IPProtocols.UDP.byteValue()));\r
- byteCounts = am.getAllByteCounts(hnc2, hnc5);\r
- bitRates = am.getAllBitRates(hnc2, hnc5);\r
- Assert.assertTrue(byteCounts.get(IPProtocols.ICMP.byteValue()) == am.getByteCount(hnc2, hnc5, IPProtocols.ICMP.byteValue()));\r
- Assert.assertTrue(byteCounts.get(IPProtocols.TCP.byteValue()) == am.getByteCount(hnc2, hnc5, IPProtocols.TCP.byteValue()));\r
- Assert.assertTrue(bitRates.get(IPProtocols.ICMP.byteValue()) == am.getBitRate(hnc2, hnc5, IPProtocols.ICMP.byteValue()));\r
- Assert.assertTrue(bitRates.get(IPProtocols.TCP.byteValue()) == am.getBitRate(hnc2, hnc5, IPProtocols.TCP.byteValue()));\r
+ Set<Byte> allProtocols = new HashSet<Byte>(Arrays.asList(IPProtocols.ICMP.byteValue(), IPProtocols.UDP.byteValue(), IPProtocols.TCP.byteValue()));\r
+ for (Host h1 : allHosts) {\r
+ for (Host h2 : allHosts) {\r
+ Map<Byte, Long> byteCounts = am.getAllByteCounts(h1, h2);\r
+ Map<Byte, Long> packetCounts = am.getAllPacketCounts(h1, h2);\r
+ Map<Byte, Double> durations = am.getAllDurations(h1, h2);\r
+ Map<Byte, Double> bitRates = am.getAllBitRates(h1, h2);\r
+ for (Byte protocol : allProtocols) {\r
+ if (byteCounts.get(protocol) == null) {\r
+ Assert.assertTrue(am.getByteCount(h1, h2, protocol) == 0);\r
+ Assert.assertTrue(am.getPacketCount(h1, h2, protocol) == 0);\r
+ Assert.assertTrue(am.getDuration(h1, h2, protocol) == 0.0);\r
+ Assert.assertTrue(am.getBitRate(h1, h2, protocol) == 0.0);\r
+ }\r
+ else {\r
+ Assert.assertTrue(byteCounts.get(protocol) == am.getByteCount(h1, h2, protocol));\r
+ Assert.assertTrue(packetCounts.get(protocol) == am.getPacketCount(h1, h2, protocol));\r
+ Assert.assertTrue(durations.get(protocol) == am.getDuration(h1, h2, protocol));\r
+ Assert.assertTrue(bitRates.get(protocol) == am.getBitRate(h1, h2, protocol));\r
+ }\r
+ }\r
+ }\r
+ }\r
\r
// Host groups - basic stats\r
Set<Host> srcHosts = new HashSet<Host>(Arrays.asList(hnc1, hnc2));\r
Set<Host> dstHosts = new HashSet<Host>(Arrays.asList(hnc3, hnc4));\r
Assert.assertTrue(am.getByteCount(srcHosts, dstHosts, null) == 64 + 200 + 76 + 300);\r
+ Assert.assertTrue(am.getPacketCount(srcHosts, dstHosts, null) == 6 + 5 + 4 + 3);\r
Assert.assertTrue(am.getDuration(srcHosts, dstHosts, null) == 2.0);\r
Assert.assertTrue(am.getBitRate(srcHosts, dstHosts, null) == ((64 + 200 + 76 + 300) * 8.0) / 2.0);\r
\r
// Host groups - per-protocol stats\r
Assert.assertTrue(am.getByteCount(srcHosts, dstHosts, IPProtocols.ICMP.byteValue()) == 64);\r
+ Assert.assertTrue(am.getPacketCount(srcHosts, dstHosts, IPProtocols.ICMP.byteValue()) == 5);\r
Assert.assertTrue(am.getDuration(srcHosts, dstHosts, IPProtocols.ICMP.byteValue()) == 1.0);\r
Assert.assertTrue(am.getBitRate(srcHosts, dstHosts, IPProtocols.ICMP.byteValue()) == (64 * 8.0) / 1.0);\r
Assert.assertTrue(am.getByteCount(srcHosts, dstHosts, IPProtocols.TCP.byteValue()) == 76 + 300);\r
+ Assert.assertTrue(am.getPacketCount(srcHosts, dstHosts, IPProtocols.TCP.byteValue()) == 4 + 3);\r
Assert.assertTrue(am.getDuration(srcHosts, dstHosts, IPProtocols.TCP.byteValue()) == 2.0);\r
Assert.assertTrue(am.getBitRate(srcHosts, dstHosts, IPProtocols.TCP.byteValue()) == ((76 + 300) * 8.0) / 2.0);\r
Assert.assertTrue(am.getByteCount(srcHosts, dstHosts, IPProtocols.UDP.byteValue()) == 200);\r
+ Assert.assertTrue(am.getPacketCount(srcHosts, dstHosts, IPProtocols.UDP.byteValue()) == 6);\r
Assert.assertTrue(am.getDuration(srcHosts, dstHosts, IPProtocols.UDP.byteValue()) == 1.1);\r
Assert.assertTrue(am.getBitRate(srcHosts, dstHosts, IPProtocols.UDP.byteValue()) == (200 * 8.0) / 1.1);\r
\r
// Host groups - all stats\r
- byteCounts = am.getAllByteCounts(srcHosts, dstHosts);\r
- bitRates = am.getAllBitRates(srcHosts, dstHosts);\r
+ Map<Byte, Long> byteCounts = am.getAllByteCounts(srcHosts, dstHosts);\r
+ Map<Byte, Long> packetCounts = am.getAllPacketCounts(srcHosts, dstHosts);\r
+ Map<Byte, Double> durations = am.getAllDurations(srcHosts, dstHosts);\r
+ Map<Byte, Double> bitRates = am.getAllBitRates(srcHosts, dstHosts);\r
Assert.assertTrue(byteCounts.get(IPProtocols.ICMP.byteValue()) == am.getByteCount(srcHosts, dstHosts, IPProtocols.ICMP.byteValue()));\r
Assert.assertTrue(byteCounts.get(IPProtocols.UDP.byteValue()) == am.getByteCount(srcHosts, dstHosts, IPProtocols.UDP.byteValue()));\r
Assert.assertTrue(byteCounts.get(IPProtocols.TCP.byteValue()) == am.getByteCount(srcHosts, dstHosts, IPProtocols.TCP.byteValue()));\r
Assert.assertTrue(byteCounts.get(IPProtocols.ANY.byteValue()) == null);\r
+ Assert.assertTrue(packetCounts.get(IPProtocols.ICMP.byteValue()) == am.getPacketCount(srcHosts, dstHosts, IPProtocols.ICMP.byteValue()));\r
+ Assert.assertTrue(packetCounts.get(IPProtocols.UDP.byteValue()) == am.getPacketCount(srcHosts, dstHosts, IPProtocols.UDP.byteValue()));\r
+ Assert.assertTrue(packetCounts.get(IPProtocols.TCP.byteValue()) == am.getPacketCount(srcHosts, dstHosts, IPProtocols.TCP.byteValue()));\r
+ Assert.assertTrue(packetCounts.get(IPProtocols.ANY.byteValue()) == null);\r
+ Assert.assertTrue(durations.get(IPProtocols.ICMP.byteValue()) == am.getDuration(srcHosts, dstHosts, IPProtocols.ICMP.byteValue()));\r
+ Assert.assertTrue(durations.get(IPProtocols.UDP.byteValue()) == am.getDuration(srcHosts, dstHosts, IPProtocols.UDP.byteValue()));\r
+ Assert.assertTrue(durations.get(IPProtocols.TCP.byteValue()) == am.getDuration(srcHosts, dstHosts, IPProtocols.TCP.byteValue()));\r
+ Assert.assertTrue(durations.get(IPProtocols.ANY.byteValue()) == null);\r
Assert.assertTrue(bitRates.get(IPProtocols.ICMP.byteValue()) == am.getBitRate(srcHosts, dstHosts, IPProtocols.ICMP.byteValue()));\r
Assert.assertTrue(bitRates.get(IPProtocols.UDP.byteValue()) == am.getBitRate(srcHosts, dstHosts, IPProtocols.UDP.byteValue()));\r
Assert.assertTrue(bitRates.get(IPProtocols.TCP.byteValue()) == am.getBitRate(srcHosts, dstHosts, IPProtocols.TCP.byteValue()));\r
// Correct flow over-writing\r
fon = new FlowOnNode(f); // 10.0.0.2 -> 10.0.0.5, ICMP\r
fon.setByteCount(300);\r
+ fon.setPacketCount(7);\r
fon.setDurationSeconds(4);\r
fon.setDurationNanoseconds(100000000);\r
flowStatsListn2.add(fon);\r
am.nodeFlowStatisticsUpdated(n2, flowStatsListn2, allHosts);\r
Assert.assertTrue(am.getByteCount(hnc2, hnc5) == 300 + 234);\r
+ Assert.assertTrue(am.getPacketCount(hnc2, hnc5) == 2 + 7);\r
Assert.assertTrue(am.getBitRate(hnc2, hnc5) == ((300 + 234) * 8.0) / 4.1);\r
Assert.assertTrue(am.getByteCount(hnc2, hnc5, IPProtocols.ICMP.byteValue()) == 300);\r
+ Assert.assertTrue(am.getPacketCount(hnc2, hnc5, IPProtocols.ICMP.byteValue()) == 7);\r
} catch (ConstructionException e) {\r
Assert.assertTrue(false);\r
} catch (UnknownHostException e) {\r