23#ifndef CLICK_INTERNET_STACK_HELPER_H
24#define CLICK_INTERNET_STACK_HELPER_H
26#include "ns3/internet-trace-helper.h"
27#include "ns3/ipv4-l3-protocol.h"
28#include "ns3/ipv6-l3-protocol.h"
29#include "ns3/net-device-container.h"
30#include "ns3/node-container.h"
31#include "ns3/object-factory.h"
32#include "ns3/packet.h"
41class Ipv4RoutingHelper;
50class ClickInternetStackHelper :
public PcapHelperForIpv4,
public AsciiTraceHelperForIpv4
56 ClickInternetStackHelper();
61 ~ClickInternetStackHelper()
override;
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()
const;
115 void SetTcp(std::string tid);
130 void SetTcp(std::string tid, std::string attr,
const AttributeValue& val);
137 void SetClickFile(NodeContainer c, std::string clickfile);
144 void SetClickFile(Ptr<Node> node, std::string clickfile);
151 void SetDefines(NodeContainer c, std::map<std::string, std::string> defines);
158 void SetDefines(Ptr<Node> node, std::map<std::string, std::string> defines);
165 void SetRoutingTableElement(NodeContainer c, std::string rt);
172 void SetRoutingTableElement(Ptr<Node> node, std::string rt);
182 void EnablePcapIpv4Internal(std::string prefix,
185 bool explicitFilename)
override;
196 void EnableAsciiIpv4Internal(Ptr<OutputStreamWrapper> stream,
200 bool explicitFilename)
override;
203 ObjectFactory m_tcpFactory;
205 static void CreateAndAggregateObjectFromTypeId(Ptr<Node> node,
const std::string typeId);
207 static void Cleanup();
209 bool PcapHooked(Ptr<Ipv4> ipv4);
211 bool AsciiHooked(Ptr<Ipv4> ipv4);
221 std::map<Ptr<Node>, std::string> m_nodeToClickFileMap;
226 std::map<Ptr<Node>, std::map<std::string, std::string>> m_nodeToDefinesMap;
231 std::map<Ptr<Node>, std::string> m_nodeToRoutingTableElementMap;
void Reset()
Reset the initial value of every attribute as well as the value of every global to what they were bef...
Every class exported by the ns3 library is enclosed in the ns3 namespace.