25 : configuration_(configuration),
28 startTime_(
senf::ClockService::milliseconds(0)),
29 nextTimeout_(
senf::ClockService::milliseconds(0)),
37 initWait_.
timeout( senf::scheduler::now() + configuration.
maxWait);
40 prefix_ void FrameAnalyzer::timerEvent()
53 prefix_ void FrameAnalyzer::initWaitEvent()
70 prefix_ void FrameAnalyzer::request()
86 if (!handleDataFrame(ethIn, ap)) {
125 if (handleDataFrame(eth, ap))
142 if (handleMPLSPacket(eth, ap, mpls, tim)) {
157 if (handleUDPPacket( eth, ap, ip4, udp)) {
174 mplsDetected_ =
true;
211 auto key (std::make_pair(type, flowId));
256 std::string label (
"?!?UNKNOWN?!?");
259 label =
"RECEIVED " + senf::str(flowId);
262 label =
"CORRUPT " + senf::str(flowId);
265 label =
"DATA " + senf::str(flowId);
268 label =
"CTRL " + senf::str(flowId);
271 label =
"MNGT " + senf::str(flowId);
274 label =
"OTHER " + senf::str(flowId);
277 label =
"IPERF " + senf::str(flowId);
280 label =
"MGEN " + senf::str(flowId);
283 label =
"TIM " + senf::str(flowId);
287 label.resize(16,
' ');
297 ps.second->dump(std::cout, actualDuration,
true);
300 ps.second->dump(std::cout, actualDuration,
false);
302 std::cout << std::endl;
senf::ClockService::clock_type duration
config::time_type clock_type
senf::INet4SocketAddress destination
senf::ClockService::clock_type maxWait
static SENF_CLOCKSERVICE_CONSTEXPR int64_type in_milliseconds(clock_type const &v)
PacketStatistics * flowStats(PacketStatistics::Type, std::uint32_t flowId)
virtual void terminate() const
boost::function< R(Args)> membind(R(T::*fn)(Args), T *ob)
void noroute(connector::Connector &connector)
WLANPacket_DataFrameType::packet WLANPacket_DataFrame
WLANPacket_MgtFrameType::packet WLANPacket_MgtFrame
static INet4Address const None
static SENF_CLOCKSERVICE_CONSTEXPR clock_type milliseconds(int64_type const &v)
void timeout(ClockService::clock_type const &timeout, bool initiallyEnabled=true)
80211Analyzer public header
senf::ClockService::clock_type reportingInterval
WLANPacket_CtrlFrameType::packet WLANPacket_CtrlFrame
Configuration const & configuration_
void onRequest(Handler handler)
senf::INet4SocketAddress source
bool analyze(senf::AnnotationsPacket const &ap, std::uint16_t payloadSize)
WLANInterface public header.
WLANModulationParameter const & findModulationById(ModulationParameter::id_t id) const
static WLANModulationParameterRegistry & instance()
senf::ppi::connector::PassiveInput< senf::EthernetPacket > input
FrameAnalyzer(Configuration const &configuration)
ConcretePacket< EthernetPacketType > EthernetPacket
INet4Address address() const
boost::ptr_map< std::pair< PacketStatistics::Type, std::uint32_t >, PacketStatistics > packetStatsMap
ConcretePacket< UDPPacketType > UDPPacket
ConcretePacket< IPv4PacketType > IPv4Packet