A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
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
29namespace ns3
30{
31
39{
40 public:
45 {
46 }
47
52 {
53 }
54
63 virtual void EnablePcapIpv4Internal(std::string prefix,
64 Ptr<Ipv4> ipv4,
65 uint32_t interface,
66 bool explicitFilename) = 0;
67
76 void EnablePcapIpv4(std::string prefix,
77 Ptr<Ipv4> ipv4,
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.