A Discrete-Event Network Simulator
API
internet-trace-helper.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2010 University of Washington
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation;
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, write to the Free Software
15  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16  */
17 
18 #ifndef INTERNET_TRACE_HELPER_H
19 #define INTERNET_TRACE_HELPER_H
20 
21 #include "ns3/assert.h"
22 #include "ns3/ipv4-interface-container.h"
23 #include "ns3/ipv4.h"
24 #include "ns3/ipv6-interface-container.h"
25 #include "ns3/ipv6.h"
26 #include "ns3/trace-helper.h"
27 
28 namespace ns3
29 {
30 
38 {
39  public:
44  {
45  }
46 
51  {
52  }
53 
62  virtual void EnablePcapIpv4Internal(std::string prefix,
63  Ptr<Ipv4> ipv4,
64  uint32_t interface,
65  bool explicitFilename) = 0;
66 
75  void EnablePcapIpv4(std::string prefix,
76  Ptr<Ipv4> ipv4,
77  uint32_t interface,
78  bool explicitFilename = false);
79 
89  void EnablePcapIpv4(std::string prefix,
90  std::string ipv4Name,
91  uint32_t interface,
92  bool explicitFilename = false);
93 
100  void EnablePcapIpv4(std::string prefix, Ipv4InterfaceContainer c);
101 
109  void EnablePcapIpv4(std::string prefix, NodeContainer n);
110 
122  void EnablePcapIpv4(std::string prefix,
123  uint32_t nodeid,
124  uint32_t interface,
125  bool explicitFilename);
126 
133  void EnablePcapIpv4All(std::string prefix);
134 };
135 
143 {
144  public:
149  {
150  }
151 
156  {
157  }
158 
184  std::string prefix,
185  Ptr<Ipv4> ipv4,
186  uint32_t interface,
187  bool explicitFilename) = 0;
188 
197  void EnableAsciiIpv4(std::string prefix,
198  Ptr<Ipv4> ipv4,
199  uint32_t interface,
200  bool explicitFilename = false);
201 
210  void EnableAsciiIpv4(Ptr<OutputStreamWrapper> stream, Ptr<Ipv4> ipv4, uint32_t interface);
211 
221  void EnableAsciiIpv4(std::string prefix,
222  std::string ipv4Name,
223  uint32_t interface,
224  bool explicitFilename = false);
225 
235  void EnableAsciiIpv4(Ptr<OutputStreamWrapper> stream, std::string ipv4Name, uint32_t interface);
236 
245  void EnableAsciiIpv4(std::string prefix, Ipv4InterfaceContainer c);
246 
257 
265  void EnableAsciiIpv4(std::string prefix, NodeContainer n);
266 
276 
283  void EnableAsciiIpv4All(std::string prefix);
284 
293 
307  void EnableAsciiIpv4(std::string prefix,
308  uint32_t nodeid,
309  uint32_t deviceid,
310  bool explicitFilename);
311 
326  uint32_t nodeid,
327  uint32_t interface,
328  bool explicitFilename);
329 
330  private:
347  std::string prefix,
348  uint32_t nodeid,
349  uint32_t interface,
350  bool explicitFilename);
351 
363  void EnableAsciiIpv4Impl(Ptr<OutputStreamWrapper> stream, std::string prefix, NodeContainer n);
364 
377  std::string prefix,
379 
395  std::string prefix,
396  std::string ipv4Name,
397  uint32_t interface,
398  bool explicitFilename);
399 
415  std::string prefix,
416  Ptr<Ipv4> ipv4,
417  uint32_t interface,
418  bool explicitFilename);
419 };
420 
428 {
429  public:
434  {
435  }
436 
441  {
442  }
443 
452  virtual void EnablePcapIpv6Internal(std::string prefix,
453  Ptr<Ipv6> ipv6,
454  uint32_t interface,
455  bool explicitFilename) = 0;
456 
465  void EnablePcapIpv6(std::string prefix,
466  Ptr<Ipv6> ipv6,
467  uint32_t interface,
468  bool explicitFilename = false);
469 
479  void EnablePcapIpv6(std::string prefix,
480  std::string ipv6Name,
481  uint32_t interface,
482  bool explicitFilename = false);
483 
490  void EnablePcapIpv6(std::string prefix, Ipv6InterfaceContainer c);
491 
499  void EnablePcapIpv6(std::string prefix, NodeContainer n);
500 
512  void EnablePcapIpv6(std::string prefix,
513  uint32_t nodeid,
514  uint32_t interface,
515  bool explicitFilename);
516 
523  void EnablePcapIpv6All(std::string prefix);
524 };
525 
533 {
534  public:
539  {
540  }
541 
546  {
547  }
548 
574  std::string prefix,
575  Ptr<Ipv6> ipv6,
576  uint32_t interface,
577  bool explicitFilename) = 0;
578 
587  void EnableAsciiIpv6(std::string prefix,
588  Ptr<Ipv6> ipv6,
589  uint32_t interface,
590  bool explicitFilename = false);
591 
600  void EnableAsciiIpv6(Ptr<OutputStreamWrapper> stream, Ptr<Ipv6> ipv6, uint32_t interface);
601 
611  void EnableAsciiIpv6(std::string prefix,
612  std::string ipv6Name,
613  uint32_t interface,
614  bool explicitFilename = false);
615 
625  void EnableAsciiIpv6(Ptr<OutputStreamWrapper> stream, std::string ipv6Name, uint32_t interface);
626 
635  void EnableAsciiIpv6(std::string prefix, Ipv6InterfaceContainer c);
636 
647 
655  void EnableAsciiIpv6(std::string prefix, NodeContainer n);
656 
666 
680  void EnableAsciiIpv6(std::string prefix,
681  uint32_t nodeid,
682  uint32_t interface,
683  bool explicitFilename);
684 
697  void EnableAsciiIpv6(Ptr<OutputStreamWrapper> stream, uint32_t nodeid, uint32_t interface);
698 
705  void EnableAsciiIpv6All(std::string prefix);
706 
715 
716  private:
733  std::string prefix,
734  uint32_t nodeid,
735  uint32_t interface,
736  bool explicitFilename);
737 
749  void EnableAsciiIpv6Impl(Ptr<OutputStreamWrapper> stream, std::string prefix, NodeContainer n);
750 
763  std::string prefix,
765 
781  std::string prefix,
782  std::string ipv6Name,
783  uint32_t interface,
784  bool explicitFilename);
785 
801  std::string prefix,
802  Ptr<Ipv6> ipv6,
803  uint32_t interface,
804  bool explicitFilename);
805 };
806 
807 } // namespace ns3
808 
809 #endif /* INTERNET_TRACE_HELPER_H */
Base class providing common user-level ascii trace operations for helpers representing IPv4 protocols...
void EnableAsciiIpv4Impl(Ptr< OutputStreamWrapper > stream, std::string prefix, uint32_t nodeid, uint32_t interface, bool explicitFilename)
Enable ascii trace output on the Ipv4 and interface pair specified by a global node-id (of a previous...
virtual ~AsciiTraceHelperForIpv4()
Destroy an AsciiTraceHelperForIpv4.
void EnableAsciiIpv4Impl(Ptr< OutputStreamWrapper > stream, std::string prefix, Ptr< Ipv4 > ipv4, uint32_t interface, bool explicitFilename)
Enable ascii trace output on the Ipv4 and interface pair specified by a global node-id (of a previous...
AsciiTraceHelperForIpv4()
Construct an AsciiTraceHelperForIpv4.
void EnableAsciiIpv4All(std::string prefix)
Enable ascii trace output on all Ipv4 and interface pairs existing in the set of all nodes created in...
void EnableAsciiIpv4(std::string prefix, Ptr< Ipv4 > ipv4, uint32_t interface, bool explicitFilename=false)
Enable ascii trace output on the indicated Ipv4 and interface pair.
virtual void EnableAsciiIpv4Internal(Ptr< OutputStreamWrapper > stream, std::string prefix, Ptr< Ipv4 > ipv4, uint32_t interface, bool explicitFilename)=0
Enable ascii trace output on the indicated Ipv4 and interface pair.
Base class providing common user-level ascii trace operations for helpers representing IPv6 protocols...
void EnableAsciiIpv6All(std::string prefix)
Enable ascii trace output on all Ipv6 and interface pairs existing in the set of all nodes created in...
void EnableAsciiIpv6(std::string prefix, Ptr< Ipv6 > ipv6, uint32_t interface, bool explicitFilename=false)
Enable ascii trace output on the indicated Ipv6 and interface pair.
virtual void EnableAsciiIpv6Internal(Ptr< OutputStreamWrapper > stream, std::string prefix, Ptr< Ipv6 > ipv6, uint32_t interface, bool explicitFilename)=0
Enable ascii trace output on the indicated Ipv6 and interface pair.
AsciiTraceHelperForIpv6()
Construct an AsciiTraceHelperForIpv6.
virtual ~AsciiTraceHelperForIpv6()
Destroy an AsciiTraceHelperForIpv6.
void EnableAsciiIpv6Impl(Ptr< OutputStreamWrapper > stream, std::string prefix, uint32_t nodeid, uint32_t interface, bool explicitFilename)
Enable ascii trace output on the Ipv6 and interface pair specified by a global node-id (of a previous...
void EnableAsciiIpv6Impl(Ptr< OutputStreamWrapper > stream, std::string prefix, Ptr< Ipv6 > ipv6, uint32_t interface, bool explicitFilename)
Enable ascii trace output on the Ipv6 and interface pair specified by a global node-id (of a previous...
holds a vector of std::pair of Ptr<Ipv4> and interface index.
Keep track of a set of IPv6 interfaces.
keep track of a set of node pointers.
Base class providing common user-level pcap operations for helpers representing IPv4 protocols .
virtual void EnablePcapIpv4Internal(std::string prefix, Ptr< Ipv4 > ipv4, uint32_t interface, bool explicitFilename)=0
Enable pcap output the indicated Ipv4 and interface pair.
virtual ~PcapHelperForIpv4()
Destroy a PcapHelperForIpv4.
void EnablePcapIpv4(std::string prefix, Ptr< Ipv4 > ipv4, uint32_t interface, bool explicitFilename=false)
Enable pcap output the indicated Ipv4 and interface pair.
PcapHelperForIpv4()
Construct a PcapHelperForIpv4.
void EnablePcapIpv4All(std::string prefix)
Enable pcap output on all Ipv4 and interface pairs existing in the set of all nodes created in the si...
Base class providing common user-level pcap operations for helpers representing IPv6 protocols .
void EnablePcapIpv6All(std::string prefix)
Enable pcap output on all Ipv6 and interface pairs existing in the set of all nodes created in the si...
PcapHelperForIpv6()
Construct a PcapHelperForIpv6.
virtual ~PcapHelperForIpv6()
Destroy a PcapHelperForIpv6.
void EnablePcapIpv6(std::string prefix, Ptr< Ipv6 > ipv6, uint32_t interface, bool explicitFilename=false)
Enable pcap output the indicated Ipv6 and interface pair.
virtual void EnablePcapIpv6Internal(std::string prefix, Ptr< Ipv6 > ipv6, uint32_t interface, bool explicitFilename)=0
Enable pcap output the indicated Ipv6 and interface pair.
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:78
Every class exported by the ns3 library is enclosed in the ns3 namespace.