Enabling TCP window tracing (there is a trick to do it with
Config::Connect, see examples/congestion-pop.cc)
There was a bug with InFlight interest calculation
diff --git a/helper/tracers/ccnx-consumer-window-tracer.h b/helper/tracers/ccnx-consumer-window-tracer.h
index b178ee1..c538931 100644
--- a/helper/tracers/ccnx-consumer-window-tracer.h
+++ b/helper/tracers/ccnx-consumer-window-tracer.h
@@ -28,41 +28,49 @@
class Node;
-class CcnxConsumerWindowTracer : public SimpleRefCount<CcnxConsumerWindowTracer>
+class WindowTracer : public SimpleRefCount<WindowTracer>
{
public:
- CcnxConsumerWindowTracer (std::ostream &os, Ptr<Node> node, const std::string &appId = "*");
- virtual ~CcnxConsumerWindowTracer () { };
-
- void
- Connect ();
-
- virtual void
- PrintHeader (std::ostream &os) const;
+ WindowTracer (std::ostream &os, Ptr<Node> node, const std::string &appId = "*");
+ virtual ~WindowTracer () { };
+
+ static void
+ PrintHeader (std::ostream &os);
virtual void
- Print (std::ostream &os) const;
-
- virtual void
OnWindowChange (std::string context,
uint32_t oldValue, uint32_t newValue);
protected:
std::string m_appId;
std::string m_node;
+ std::string m_nodeName;
Ptr<Node> m_nodePtr;
std::ostream& m_os;
};
-inline std::ostream&
-operator << (std::ostream &os, const CcnxConsumerWindowTracer &tracer)
+class CcnxConsumerWindowTracer : public WindowTracer
{
- os << "# ";
- tracer.PrintHeader (os);
- os << "\n";
- tracer.Print (os);
- return os;
-}
+public:
+ CcnxConsumerWindowTracer (std::ostream &os, Ptr<Node> node, const std::string &appId = "*")
+ : WindowTracer (os, node, appId)
+ { Connect (); }
+
+ void
+ Connect ();
+};
+
+class TcpCongestionWindowTracer : public WindowTracer
+{
+public:
+ TcpCongestionWindowTracer (std::ostream &os, Ptr<Node> node, const std::string &appId = "*")
+ : WindowTracer (os, node, appId)
+ { Connect (); }
+
+ void
+ Connect ();
+};
+
} // namespace ns3