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 
23 
24 #include "ns3/assert.h"
25 #include "ns3/ipv4.h"
26 #include "ns3/ipv6.h"
27 #include "ns3/trace-helper.h"
28 
29 namespace ns3
30 {
31 
39 {
40  public:
45  {
46  }
47 
52  {
53  }
54 
63  virtual void EnablePcapIpv4Internal(std::string prefix,
65  uint32_t interface,
66  bool explicitFilename) = 0;
67 
76  void EnablePcapIpv4(std::string prefix,
78  uint32_t interface,
79  bool explicitFilename = false);
80 
90  void EnablePcapIpv4(std::string prefix,
91  std::string ipv4Name,
92  uint32_t interface,
93  bool explicitFilename = false);
94 
101  void EnablePcapIpv4(std::string prefix, Ipv4InterfaceContainer c);
102 
110  void EnablePcapIpv4(std::string prefix, NodeContainer n);
111 
123  void EnablePcapIpv4(std::string prefix,
124  uint32_t nodeid,
125  uint32_t interface,
126  bool explicitFilename);
127 
134  void EnablePcapIpv4All(std::string prefix);
135 };
136 
144 {
145  public:
150  {
151  }
152 
157  {
158  }
159 
185  std::string prefix,
186  Ptr<Ipv4> ipv4,
187  uint32_t interface,
188  bool explicitFilename) = 0;
189 
198  void EnableAsciiIpv4(std::string prefix,
199  Ptr<Ipv4> ipv4,
200  uint32_t interface,
201  bool explicitFilename = false);
202 
211  void EnableAsciiIpv4(Ptr<OutputStreamWrapper> stream, Ptr<Ipv4> ipv4, uint32_t interface);
212 
222  void EnableAsciiIpv4(std::string prefix,
223  std::string ipv4Name,
224  uint32_t interface,
225  bool explicitFilename = false);
226 
236  void EnableAsciiIpv4(Ptr<OutputStreamWrapper> stream, std::string ipv4Name, uint32_t interface);
237 
246  void EnableAsciiIpv4(std::string prefix, Ipv4InterfaceContainer c);
247 
258 
266  void EnableAsciiIpv4(std::string prefix, NodeContainer n);
267 
277 
284  void EnableAsciiIpv4All(std::string prefix);
285 
294 
308  void EnableAsciiIpv4(std::string prefix,
309  uint32_t nodeid,
310  uint32_t deviceid,
311  bool explicitFilename);
312 
327  uint32_t nodeid,
328  uint32_t interface,
329  bool explicitFilename);
330 
331  private:
348  std::string prefix,
349  uint32_t nodeid,
350  uint32_t interface,
351  bool explicitFilename);
352 
364  void EnableAsciiIpv4Impl(Ptr<OutputStreamWrapper> stream, std::string prefix, NodeContainer n);
365 
378  std::string prefix,
380 
396  std::string prefix,
397  std::string ipv4Name,
398  uint32_t interface,
399  bool explicitFilename);
400 
416  std::string prefix,
417  Ptr<Ipv4> ipv4,
418  uint32_t interface,
419  bool explicitFilename);
420 };
421 
429 {
430  public:
435  {
436  }
437 
442  {
443  }
444 
453  virtual void EnablePcapIpv6Internal(std::string prefix,
454  Ptr<Ipv6> ipv6,
455  uint32_t interface,
456  bool explicitFilename) = 0;
457 
466  void EnablePcapIpv6(std::string prefix,
467  Ptr<Ipv6> ipv6,
468  uint32_t interface,
469  bool explicitFilename = false);
470 
480  void EnablePcapIpv6(std::string prefix,
481  std::string ipv6Name,
482  uint32_t interface,
483  bool explicitFilename = false);
484 
491  void EnablePcapIpv6(std::string prefix, Ipv6InterfaceContainer c);
492 
500  void EnablePcapIpv6(std::string prefix, NodeContainer n);
501 
513  void EnablePcapIpv6(std::string prefix,
514  uint32_t nodeid,
515  uint32_t interface,
516  bool explicitFilename);
517 
524  void EnablePcapIpv6All(std::string prefix);
525 };
526 
534 {
535  public:
540  {
541  }
542 
547  {
548  }
549 
575  std::string prefix,
576  Ptr<Ipv6> ipv6,
577  uint32_t interface,
578  bool explicitFilename) = 0;
579 
588  void EnableAsciiIpv6(std::string prefix,
589  Ptr<Ipv6> ipv6,
590  uint32_t interface,
591  bool explicitFilename = false);
592 
601  void EnableAsciiIpv6(Ptr<OutputStreamWrapper> stream, Ptr<Ipv6> ipv6, uint32_t interface);
602 
612  void EnableAsciiIpv6(std::string prefix,
613  std::string ipv6Name,
614  uint32_t interface,
615  bool explicitFilename = false);
616 
626  void EnableAsciiIpv6(Ptr<OutputStreamWrapper> stream, std::string ipv6Name, uint32_t interface);
627 
636  void EnableAsciiIpv6(std::string prefix, Ipv6InterfaceContainer c);
637 
648 
656  void EnableAsciiIpv6(std::string prefix, NodeContainer n);
657 
667 
681  void EnableAsciiIpv6(std::string prefix,
682  uint32_t nodeid,
683  uint32_t interface,
684  bool explicitFilename);
685 
698  void EnableAsciiIpv6(Ptr<OutputStreamWrapper> stream, uint32_t nodeid, uint32_t interface);
699 
706  void EnableAsciiIpv6All(std::string prefix);
707 
716 
717  private:
734  std::string prefix,
735  uint32_t nodeid,
736  uint32_t interface,
737  bool explicitFilename);
738 
750  void EnableAsciiIpv6Impl(Ptr<OutputStreamWrapper> stream, std::string prefix, NodeContainer n);
751 
764  std::string prefix,
766 
782  std::string prefix,
783  std::string ipv6Name,
784  uint32_t interface,
785  bool explicitFilename);
786 
802  std::string prefix,
803  Ptr<Ipv6> ipv6,
804  uint32_t interface,
805  bool explicitFilename);
806 };
807 
808 } // namespace ns3
809 
810 #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:77
Every class exported by the ns3 library is enclosed in the ns3 namespace.