const uint8_t UDP_PROT_NUMBER = 17;
Ptr<FlowMonitor> flowMonitor;
FlowMonitorHelper flowHelper;
flowMonitor = flowHelper.InstallAll();
auto classifier = DynamicCast<Ipv4FlowClassifier>(flowHelper.GetClassifier ());
Simulator::Stop(Seconds(SimulationTime));
Simulator::Run ();
flowMonitor->CheckForLostPackets ();
stats = flowMonitor->GetFlowStats ();
auto rx_bytes{0};
for (auto stat : stats)
{
Ipv4FlowClassifier::FiveTuple t = classifier->FindFlow (stat.first);
if (t.protocol == UDP_PROT_NUMBER && (t.destinationPort == 698 || t.sourcePort == 698))
rx_bytes += stat.second.rxBytes;
}
// rx_bytes will contain the pure OLSR overhead (UDP and IP headers and MAC header/trailer not counted)