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 SetDefines (NodeContainer c, std::map<std::string, std::string> defines);
157 void SetDefines (Ptr<Node> node, std::map<std::string, std::string> defines);
164 void SetRoutingTableElement (NodeContainer c, std::string rt);
171 void SetRoutingTableElement (Ptr<Node> node, std::string rt);
180 virtual void EnablePcapIpv4Internal (std::string prefix,
183 bool explicitFilename);
194 virtual void EnableAsciiIpv4Internal (Ptr<OutputStreamWrapper> stream,
198 bool explicitFilename);
200 void Initialize (
void);
201 ObjectFactory m_tcpFactory;
203 static void CreateAndAggregateObjectFromTypeId (Ptr<Node> node,
const std::string typeId);
205 static void Cleanup (
void);
207 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::map<std::string, std::string> > m_nodeToDefinesMap;
229 std::map < Ptr<Node>, std::string > m_nodeToRoutingTableElementMap;