From b5b8f9502499f0e804251f3a91b7311eaf867d76 Mon Sep 17 00:00:00 2001 From: Davide Pesavento Date: Thu, 26 Jul 2018 14:19:16 -0400 Subject: [PATCH] dump: add -t option to suppress printing per-packet timestamp Change-Id: I4e0e44c62451629428d2d065692a0cb497a9203a --- manpages/ndndump.rst | 4 ++++ tests/dump/ndndump.t.cpp | 11 +++++++++++ tools/dump/main.cpp | 2 ++ tools/dump/ndndump.cpp | 4 +++- tools/dump/ndndump.hpp | 1 + 5 files changed, 21 insertions(+), 1 deletion(-) diff --git a/manpages/ndndump.rst b/manpages/ndndump.rst index 51737bb..e219538 100644 --- a/manpages/ndndump.rst +++ b/manpages/ndndump.rst @@ -54,6 +54,10 @@ Options Do not put the interface into promiscuous mode. +.. option:: -t, --no-timestamp + + Do not print a timestamp for each packet. + .. option:: -v, --verbose Produce verbose output. diff --git a/tests/dump/ndndump.t.cpp b/tests/dump/ndndump.t.cpp index 7583f08..b3f255e 100644 --- a/tests/dump/ndndump.t.cpp +++ b/tests/dump/ndndump.t.cpp @@ -191,6 +191,17 @@ BOOST_AUTO_TEST_CASE(CaptureUnknownNetworkPacket) BOOST_CHECK(output.is_equal(expected)); } +BOOST_AUTO_TEST_CASE(NoTimestamp) +{ + dump.wantTimestamp = false; + + lp::Packet lpPacket; + this->receive(lpPacket); + + const std::string expected = "Tunnel Type: EthernetFrame, NDNLPv2-IDLE\n"; + BOOST_CHECK(output.is_equal(expected)); +} + BOOST_AUTO_TEST_CASE(PcapTraceFile) { dump.inputFile = "tests/dump/nack.pcap"; diff --git a/tools/dump/main.cpp b/tools/dump/main.cpp index ebec765..4f756e5 100644 --- a/tools/dump/main.cpp +++ b/tools/dump/main.cpp @@ -74,6 +74,7 @@ main(int argc, char* argv[]) ("filter,f", po::value(&nameFilter), "print packet only if name matches this regular expression") ("no-promiscuous-mode,p", po::bool_switch(), "do not put the interface into promiscuous mode") + ("no-timestamp,t", po::bool_switch(), "do not print a timestamp for each packet") ("verbose,v", po::bool_switch(&instance.wantVerbose), "print more detailed information about each packet") ("version,V", "print program version and exit") @@ -140,6 +141,7 @@ main(int argc, char* argv[]) } instance.wantPromisc = !vm["no-promiscuous-mode"].as(); + instance.wantTimestamp = !vm["no-timestamp"].as(); try { instance.run(); diff --git a/tools/dump/ndndump.cpp b/tools/dump/ndndump.cpp index 4c43826..77743a8 100644 --- a/tools/dump/ndndump.cpp +++ b/tools/dump/ndndump.cpp @@ -158,7 +158,9 @@ NdnDump::printPacket(const pcap_pkthdr* pkthdr, const uint8_t* payload) const } std::ostringstream os; - printTimestamp(os, pkthdr->ts); + if (wantTimestamp) { + printTimestamp(os, pkthdr->ts); + } ssize_t payloadSize = pkthdr->len; diff --git a/tools/dump/ndndump.hpp b/tools/dump/ndndump.hpp index 4de7f57..3a78edc 100644 --- a/tools/dump/ndndump.hpp +++ b/tools/dump/ndndump.hpp @@ -88,6 +88,7 @@ public: // options std::string pcapFilter = getDefaultPcapFilter(); optional nameFilter; bool wantPromisc = true; + bool wantTimestamp = true; bool wantVerbose = false; private: