--- a/src/node/ipv4.h Sun Mar 18 19:31:32 2007 +0100
+++ b/src/node/ipv4.h Sun Mar 18 14:06:51 2007 -0700
@@ -24,6 +24,8 @@
#include <list>
#include <stdint.h>
+#include "ns3/callback-trace-source.h"
+#include "ns3/array-trace-resolver.h"
#include "ipv4-address.h"
#include "l3-protocol.h"
@@ -36,6 +38,8 @@
class Ipv4Header;
class Ipv4Route;
class Node;
+class TraceResolver;
+class TraceContext;
/**
@@ -46,9 +50,19 @@
public:
static const uint16_t PROT_NUMBER;
+ enum TraceType {
+ TX,
+ RX,
+ DROP,
+ INTERFACES,
+ };
+ typedef ArrayTraceResolver<Ipv4Interface>::Index InterfaceIndex;
+
Ipv4(Node *node);
virtual ~Ipv4 ();
+ virtual TraceResolver *CreateTraceResolver (TraceContext const &context);
+
void SetDefaultTtl (uint8_t ttl);
/* add route to host dest through host nextHop
@@ -88,7 +102,7 @@
uint32_t AddInterface (Ipv4Interface *interface);
Ipv4Interface * GetInterface (uint32_t i);
- uint32_t GetNInterfaces (void) const;
+ uint32_t GetNInterfaces (void);
Ipv4Interface *FindInterfaceForDevice (NetDevice const*device);
@@ -109,6 +123,7 @@
void SendRealOut (Packet const &packet, Ipv4Header const &ip, Ipv4Route const &route);
bool Forwarding (Packet const &packet, Ipv4Header &ipHeader, NetDevice &device);
void ForwardUp (Packet p, Ipv4Header const&ip);
+ TraceResolver *InterfacesCreateTraceResolver (TraceContext const &context);
typedef std::list<Ipv4Interface*> Ipv4InterfaceList;
typedef std::list<Ipv4Route *> HostRoutes;
@@ -126,6 +141,9 @@
NetworkRoutes m_networkRoutes;
Ipv4Route *m_defaultRoute;
Node *m_node;
+ CallbackTraceSource<Packet const &> m_txTrace;
+ CallbackTraceSource<Packet const &> m_rxTrace;
+ CallbackTraceSource<Packet const &> m_dropTrace;
};
} // Namespace ns3