24 #ifndef CLICK_INTERNET_STACK_HELPER_H
25 #define CLICK_INTERNET_STACK_HELPER_H
27 #include "ns3/node-container.h"
28 #include "ns3/net-device-container.h"
29 #include "ns3/packet.h"
31 #include "ns3/object-factory.h"
32 #include "ns3/ipv4-l3-protocol.h"
33 #include "ns3/ipv6-l3-protocol.h"
34 #include "ns3/internet-trace-helper.h"
40 class Ipv4RoutingHelper;
49 class ClickInternetStackHelper :
public PcapHelperForIpv4,
50 public AsciiTraceHelperForIpv4
56 ClickInternetStackHelper (
void);
61 virtual ~ClickInternetStackHelper (
void);
62 ClickInternetStackHelper (
const ClickInternetStackHelper &);
63 ClickInternetStackHelper &operator = (
const ClickInternetStackHelper &o);
77 void Install (std::string nodeName)
const;
86 void Install (Ptr<Node> node)
const;
97 void Install (NodeContainer c)
const;
102 void InstallAll (
void)
const;
115 void SetTcp (std::string tid);
129 void SetTcp (std::string tid, std::string attr,
const AttributeValue &val);
136 void SetClickFile (NodeContainer c, std::string clickfile);
143 void SetClickFile (Ptr<Node> node, std::string clickfile);
150 void SetRoutingTableElement (NodeContainer c, std::string rt);
157 void SetRoutingTableElement (Ptr<Node> node, std::string rt);
167 virtual void EnablePcapIpv4Internal (std::string prefix,
170 bool explicitFilename);
182 virtual void EnableAsciiIpv4Internal (Ptr<OutputStreamWrapper> stream,
186 bool explicitFilename);
188 void Initialize (
void);
189 ObjectFactory m_tcpFactory;
194 static void CreateAndAggregateObjectFromTypeId (Ptr<Node> node,
const std::string typeId);
199 static void Cleanup (
void);
204 bool PcapHooked (Ptr<Ipv4> ipv4);
209 bool AsciiHooked (Ptr<Ipv4> ipv4);
219 std::map < Ptr<Node>, std::string > m_nodeToClickFileMap;
224 std::map < Ptr<Node>, std::string > m_nodeToRoutingTableElementMap;