src/internet/helper/internet-stack-helper.h
author Tom Henderson <tomh@tomh.org>
Sun, 22 May 2011 23:18:47 -0700
changeset 7256 b04ba6772f8c
parent 7176 9f2663992e99
child 7446 e20e42e74605
permissions -rw-r--r--
rerun check-style.py at default level to enforce space after function name
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2833
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2709
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2709
diff changeset
     2
/*
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2709
diff changeset
     3
 * Copyright (c) 2008 INRIA
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2709
diff changeset
     4
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2709
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2709
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2709
diff changeset
     7
 * published by the Free Software Foundation;
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2709
diff changeset
     8
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2709
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2709
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2709
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2709
diff changeset
    12
 * GNU General Public License for more details.
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2709
diff changeset
    13
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2709
diff changeset
    14
 * You should have received a copy of the GNU General Public License
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2709
diff changeset
    15
 * along with this program; if not, write to the Free Software
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2709
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2709
diff changeset
    17
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2709
diff changeset
    18
 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2709
diff changeset
    19
 */
3848
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
    20
2708
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    21
#ifndef INTERNET_STACK_HELPER_H
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    22
#define INTERNET_STACK_HELPER_H
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    23
6823
a27f86fb4e55 Merge node and common modules into new network module
Tom Henderson <tomh@tomh.org>
parents: 6096
diff changeset
    24
#include "ns3/node-container.h"
a27f86fb4e55 Merge node and common modules into new network module
Tom Henderson <tomh@tomh.org>
parents: 6096
diff changeset
    25
#include "ns3/net-device-container.h"
2845
2398826af6b4 Add IP layer tracing helpers to InternetStackHelper
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2834
diff changeset
    26
#include "ns3/packet.h"
4472
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
    27
#include "ns3/ptr.h"
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
    28
#include "ns3/object-factory.h"
5214
ed1c7a9d95c3 Fix InternetStackHelper::EnableAsciiAll to work with the new Drop signature
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 4772
diff changeset
    29
#include "ns3/ipv4-l3-protocol.h"
ed1c7a9d95c3 Fix InternetStackHelper::EnableAsciiAll to work with the new Drop signature
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 4772
diff changeset
    30
#include "ns3/ipv6-l3-protocol.h"
6837
7333e147e014 Split internet components from trace-helper.{cc,h}
Tom Henderson <tomh@tomh.org>
parents: 6834
diff changeset
    31
#include "internet-trace-helper.h"
2708
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    32
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    33
namespace ns3 {
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    34
4472
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
    35
class Node;
4616
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    36
class Ipv4RoutingHelper;
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
    37
class Ipv6RoutingHelper;
4472
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
    38
2708
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    39
/**
3848
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
    40
 * \brief aggregate IP/TCP/UDP functionality to existing Nodes.
6013
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
    41
 *
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
    42
 * This helper enables pcap and ascii tracing of events in the internet stack
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
    43
 * associated with a node.  This is substantially similar to the tracing
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
    44
 * that happens in device helpers, but the important difference is that, well,
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
    45
 * there is no device.  This means that the creation of output file names will
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
    46
 * change, and also the user-visible methods will not reference devices and
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
    47
 * therefore the number of trace enable methods is reduced.
6026
38a97b815052 some words about mixins in helpers
Craig Dowell <craigdo@ee.washington.edu>
parents: 6017
diff changeset
    48
 *
38a97b815052 some words about mixins in helpers
Craig Dowell <craigdo@ee.washington.edu>
parents: 6017
diff changeset
    49
 * Normally we eschew multiple inheritance, however, the classes 
38a97b815052 some words about mixins in helpers
Craig Dowell <craigdo@ee.washington.edu>
parents: 6017
diff changeset
    50
 * PcapUserHelperForIpv4 and AsciiTraceUserHelperForIpv4 are
38a97b815052 some words about mixins in helpers
Craig Dowell <craigdo@ee.washington.edu>
parents: 6017
diff changeset
    51
 * treated as "mixins".  A mixin is a self-contained class that
38a97b815052 some words about mixins in helpers
Craig Dowell <craigdo@ee.washington.edu>
parents: 6017
diff changeset
    52
 * encapsulates a general attribute or a set of functionality that
38a97b815052 some words about mixins in helpers
Craig Dowell <craigdo@ee.washington.edu>
parents: 6017
diff changeset
    53
 * may be of interest to many other classes.
2708
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    54
 */
6048
2f91f77ba14e move back to mixins for helpers
Craig Dowell <craigdo@ee.washington.edu>
parents: 6030
diff changeset
    55
class InternetStackHelper : public PcapHelperForIpv4, public PcapHelperForIpv6, 
7176
9f2663992e99 internet coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 6837
diff changeset
    56
                            public AsciiTraceHelperForIpv4, public AsciiTraceHelperForIpv6
2708
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    57
{
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    58
public:
4616
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    59
  /**
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    60
   * Create a new InternetStackHelper which uses a mix of static routing
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    61
   * and global routing by default. The static routing protocol 
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    62
   * (ns3::Ipv4StaticRouting) and the global routing protocol are
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    63
   * stored in an ns3::Ipv4ListRouting protocol with priorities 0, and -10
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    64
   * by default. If you wish to use different priorites and different
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    65
   * routing protocols, you need to use an adhoc ns3::Ipv4RoutingHelper, 
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    66
   * such as ns3::OlsrHelper
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    67
   */
3579
9e5eaef3e082 nsc: enable network simulation cradle
Florian Westphal <fw@strlen.de>
parents: 3009
diff changeset
    68
  InternetStackHelper(void);
5361
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
    69
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
    70
  /**
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
    71
   * Destroy the InternetStackHelper
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
    72
   */
5353
a63513286aa0 Fix memory management of routing helpers (bug 678)
Tom Henderson <tomh@tomh.org>
parents: 5214
diff changeset
    73
  virtual ~InternetStackHelper(void);
5359
a2196f9bca93 add copy constructor to InternetStackHelper
Tom Henderson <tomh@tomh.org>
parents: 5356
diff changeset
    74
  InternetStackHelper (const InternetStackHelper &);
5355
fb4c54590532 allow assignment operator for InternetStackHelper
Tom Henderson <tomh@tomh.org>
parents: 5353
diff changeset
    75
  InternetStackHelper &operator = (const InternetStackHelper &o);
3579
9e5eaef3e082 nsc: enable network simulation cradle
Florian Westphal <fw@strlen.de>
parents: 3009
diff changeset
    76
2709
eecedcae731d doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2708
diff changeset
    77
  /**
5356
8f693fdc3149 add ability to reset InternetStackHelper w/o assigning a temporary
Tom Henderson <tomh@tomh.org>
parents: 5355
diff changeset
    78
   * Return helper internal state to that of a newly constructed one
8f693fdc3149 add ability to reset InternetStackHelper w/o assigning a temporary
Tom Henderson <tomh@tomh.org>
parents: 5355
diff changeset
    79
   */
8f693fdc3149 add ability to reset InternetStackHelper w/o assigning a temporary
Tom Henderson <tomh@tomh.org>
parents: 5355
diff changeset
    80
  void Reset (void);
8f693fdc3149 add ability to reset InternetStackHelper w/o assigning a temporary
Tom Henderson <tomh@tomh.org>
parents: 5355
diff changeset
    81
8f693fdc3149 add ability to reset InternetStackHelper w/o assigning a temporary
Tom Henderson <tomh@tomh.org>
parents: 5355
diff changeset
    82
  /**
4616
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    83
   * \param routing a new routing helper
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    84
   *
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    85
   * Set the routing helper to use during Install. The routing
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    86
   * helper is really an object factory which is used to create 
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    87
   * an object of type ns3::Ipv4RoutingProtocol per node. This routing
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    88
   * object is then associated to a single ns3::Ipv4 object through its 
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    89
   * ns3::Ipv4::SetRoutingProtocol.
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    90
   */
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    91
  void SetRoutingHelper (const Ipv4RoutingHelper &routing);
7176
9f2663992e99 internet coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 6837
diff changeset
    92
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
    93
  /**
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
    94
   * \brief Set IPv6 routing helper.
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
    95
   * \param routing IPv6 routing helper
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
    96
   */
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
    97
  void SetRoutingHelper (const Ipv6RoutingHelper &routing);
4616
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    98
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    99
  /**
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   100
   * Aggregate implementations of the ns3::Ipv4, ns3::Ipv6, ns3::Udp, and ns3::Tcp classes
3848
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   101
   * onto the provided node.  This method will assert if called on a node that 
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   102
   * already has an Ipv4 object aggregated to it.
2995
b72805b3ca69 Align helper API use of Install()
Tom Henderson <tomh@tomh.org>
parents: 2887
diff changeset
   103
   * 
4140
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 3863
diff changeset
   104
   * \param nodeName The name of the node on which to install the stack.
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 3863
diff changeset
   105
   */
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 3863
diff changeset
   106
  void Install (std::string nodeName) const;
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 3863
diff changeset
   107
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 3863
diff changeset
   108
  /**
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   109
   * Aggregate implementations of the ns3::Ipv4, ns3::Ipv6, ns3::Udp, and ns3::Tcp classes
4140
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 3863
diff changeset
   110
   * onto the provided node.  This method will assert if called on a node that 
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 3863
diff changeset
   111
   * already has an Ipv4 object aggregated to it.
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 3863
diff changeset
   112
   * 
3848
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   113
   * \param node The node on which to install the stack.
2709
eecedcae731d doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2708
diff changeset
   114
   */
3848
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   115
  void Install (Ptr<Node> node) const;
2845
2398826af6b4 Add IP layer tracing helpers to InternetStackHelper
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2834
diff changeset
   116
2398826af6b4 Add IP layer tracing helpers to InternetStackHelper
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2834
diff changeset
   117
  /**
3848
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   118
   * For each node in the input container, aggregate implementations of the 
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   119
   * ns3::Ipv4, ns3::Ipv6, ns3::Udp, and, ns3::Tcp classes.  The program will assert 
3848
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   120
   * if this method is called on a container with a node that already has
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   121
   * an Ipv4 object aggregated to it.
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   122
   * 
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   123
   * \param c NodeContainer that holds the set of nodes on which to install the
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   124
   * new stacks.
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   125
   */
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   126
  void Install (NodeContainer c) const;
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   127
4616
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
   128
  /**
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   129
   * Aggregate IPv4, IPv6, UDP, and TCP stacks to all nodes in the simulation
4616
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
   130
   */
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
   131
  void InstallAll (void) const;
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
   132
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   133
  /**
7176
9f2663992e99 internet coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 6837
diff changeset
   134
   * \brief set the Tcp stack which will not need any other parameter.
4472
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   135
   *
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   136
   * This function sets up the tcp stack to the given TypeId. It should not be 
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   137
   * used for NSC stack setup because the nsc stack needs the Library attribute
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   138
   * to be setup, please use instead the version that requires an attribute
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   139
   * and a value. If you choose to use this function anyways to set nsc stack
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   140
   * the default value for the linux library will be used: "liblinux2.6.26.so".
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   141
   *
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   142
   * \param tid the type id, typically it is set to  "ns3::TcpL4Protocol"
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   143
   */
7256
b04ba6772f8c rerun check-style.py at default level to enforce space after function name
Tom Henderson <tomh@tomh.org>
parents: 7176
diff changeset
   144
  void SetTcp (std::string tid);
7176
9f2663992e99 internet coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 6837
diff changeset
   145
3848
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   146
  /**
4472
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   147
   * \brief This function is used to setup the Network Simulation Cradle stack with library value.
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   148
   * 
3848
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   149
   * Give the NSC stack a shared library file name to use when creating the 
4472
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   150
   * stack implementation.  The attr string is actually the attribute name to 
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   151
   * be setup and val is its value. The attribute is the stack implementation 
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   152
   * to be used and the value is the shared library name.
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   153
   * 
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   154
   * \param tid The type id, for the case of nsc it would be "ns3::NscTcpL4Protocol" 
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   155
   * \param attr The attribute name that must be setup, for example "Library"
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   156
   * \param val The attribute value, which will be in fact the shared library name (example:"liblinux2.6.26.so")
3579
9e5eaef3e082 nsc: enable network simulation cradle
Florian Westphal <fw@strlen.de>
parents: 3009
diff changeset
   157
   */
4472
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   158
  void SetTcp (std::string tid, std::string attr, const AttributeValue &val); 
3579
9e5eaef3e082 nsc: enable network simulation cradle
Florian Westphal <fw@strlen.de>
parents: 3009
diff changeset
   159
9e5eaef3e082 nsc: enable network simulation cradle
Florian Westphal <fw@strlen.de>
parents: 3009
diff changeset
   160
  /**
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   161
   * \brief Enable/disable IPv4 stack install.
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   162
   * \param enable enable state
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   163
   */
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   164
  void SetIpv4StackInstall (bool enable);
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   165
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   166
  /**
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   167
   * \brief Enable/disable IPv6 stack install.
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   168
   * \param enable enable state
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   169
   */
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   170
  void SetIpv6StackInstall (bool enable);
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   171
2845
2398826af6b4 Add IP layer tracing helpers to InternetStackHelper
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2834
diff changeset
   172
private:
6013
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   173
  /**
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   174
   * @brief Enable pcap output the indicated Ipv4 and interface pair.
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   175
   * @internal
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   176
   *
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   177
   * @param prefix Filename prefix to use for pcap files.
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   178
   * @param ipv4 Ptr to the Ipv4 interface on which you want to enable tracing.
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   179
   * @param interface Interface ID on the Ipv4 on which you want to enable tracing.
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   180
   */
6027
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   181
  virtual void EnablePcapIpv4Internal (std::string prefix, 
6096
96deefc231fa plumb explicitFilename everywhere and update manual and tutorial
Craig Dowell <craigdo@ee.washington.edu>
parents: 6053
diff changeset
   182
                                       Ptr<Ipv4> ipv4, 
96deefc231fa plumb explicitFilename everywhere and update manual and tutorial
Craig Dowell <craigdo@ee.washington.edu>
parents: 6053
diff changeset
   183
                                       uint32_t interface,
96deefc231fa plumb explicitFilename everywhere and update manual and tutorial
Craig Dowell <craigdo@ee.washington.edu>
parents: 6053
diff changeset
   184
                                       bool explicitFilename);
6013
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   185
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   186
  /**
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   187
   * @brief Enable ascii trace output on the indicated Ipv4 and interface pair.
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   188
   * @internal
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   189
   *
6053
b17ea72acee9 OutputStreamKeeper to OutputStreamWrapper
Craig Dowell <craigdo@ee.washington.edu>
parents: 6049
diff changeset
   190
   * @param stream An OutputStreamWrapper representing an existing file to use
6013
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   191
   *               when writing trace data.
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   192
   * @param prefix Filename prefix to use for ascii trace files.
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   193
   * @param ipv4 Ptr to the Ipv4 interface on which you want to enable tracing.
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   194
   * @param interface Interface ID on the Ipv4 on which you want to enable tracing.
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   195
   */
6096
96deefc231fa plumb explicitFilename everywhere and update manual and tutorial
Craig Dowell <craigdo@ee.washington.edu>
parents: 6053
diff changeset
   196
  virtual void EnableAsciiIpv4Internal (Ptr<OutputStreamWrapper> stream, 
96deefc231fa plumb explicitFilename everywhere and update manual and tutorial
Craig Dowell <craigdo@ee.washington.edu>
parents: 6053
diff changeset
   197
                                        std::string prefix, 
96deefc231fa plumb explicitFilename everywhere and update manual and tutorial
Craig Dowell <craigdo@ee.washington.edu>
parents: 6053
diff changeset
   198
                                        Ptr<Ipv4> ipv4, 
96deefc231fa plumb explicitFilename everywhere and update manual and tutorial
Craig Dowell <craigdo@ee.washington.edu>
parents: 6053
diff changeset
   199
                                        uint32_t interface,
96deefc231fa plumb explicitFilename everywhere and update manual and tutorial
Craig Dowell <craigdo@ee.washington.edu>
parents: 6053
diff changeset
   200
                                        bool explicitFilename);
6027
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   201
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   202
  /**
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   203
   * @brief Enable pcap output the indicated Ipv4 and interface pair.
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   204
   * @internal
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   205
   *
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   206
   * @param prefix Filename prefix to use for pcap files.
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   207
   * @param ipv4 Ptr to the Ipv4 interface on which you want to enable tracing.
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   208
   * @param interface Interface ID on the Ipv4 on which you want to enable tracing.
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   209
   */
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   210
  virtual void EnablePcapIpv6Internal (std::string prefix, 
6096
96deefc231fa plumb explicitFilename everywhere and update manual and tutorial
Craig Dowell <craigdo@ee.washington.edu>
parents: 6053
diff changeset
   211
                                       Ptr<Ipv6> ipv6, 
96deefc231fa plumb explicitFilename everywhere and update manual and tutorial
Craig Dowell <craigdo@ee.washington.edu>
parents: 6053
diff changeset
   212
                                       uint32_t interface,
96deefc231fa plumb explicitFilename everywhere and update manual and tutorial
Craig Dowell <craigdo@ee.washington.edu>
parents: 6053
diff changeset
   213
                                       bool explicitFilename);
6027
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   214
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   215
  /**
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   216
   * @brief Enable ascii trace output on the indicated Ipv4 and interface pair.
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   217
   * @internal
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   218
   *
6053
b17ea72acee9 OutputStreamKeeper to OutputStreamWrapper
Craig Dowell <craigdo@ee.washington.edu>
parents: 6049
diff changeset
   219
   * @param stream An OutputStreamWrapper representing an existing file to use
6027
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   220
   *               when writing trace data.
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   221
   * @param prefix Filename prefix to use for ascii trace files.
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   222
   * @param ipv4 Ptr to the Ipv4 interface on which you want to enable tracing.
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   223
   * @param interface Interface ID on the Ipv4 on which you want to enable tracing.
8ed838dd0be5 add ipv6
Craig Dowell <craigdo@ee.washington.edu>
parents: 6026
diff changeset
   224
   */
6096
96deefc231fa plumb explicitFilename everywhere and update manual and tutorial
Craig Dowell <craigdo@ee.washington.edu>
parents: 6053
diff changeset
   225
  virtual void EnableAsciiIpv6Internal (Ptr<OutputStreamWrapper> stream, 
96deefc231fa plumb explicitFilename everywhere and update manual and tutorial
Craig Dowell <craigdo@ee.washington.edu>
parents: 6053
diff changeset
   226
                                        std::string prefix, 
96deefc231fa plumb explicitFilename everywhere and update manual and tutorial
Craig Dowell <craigdo@ee.washington.edu>
parents: 6053
diff changeset
   227
                                        Ptr<Ipv6> ipv6, 
96deefc231fa plumb explicitFilename everywhere and update manual and tutorial
Craig Dowell <craigdo@ee.washington.edu>
parents: 6053
diff changeset
   228
                                        uint32_t interface,
96deefc231fa plumb explicitFilename everywhere and update manual and tutorial
Craig Dowell <craigdo@ee.washington.edu>
parents: 6053
diff changeset
   229
                                        bool explicitFilename);
6013
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   230
5356
8f693fdc3149 add ability to reset InternetStackHelper w/o assigning a temporary
Tom Henderson <tomh@tomh.org>
parents: 5355
diff changeset
   231
  void Initialize (void);
4472
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   232
  ObjectFactory m_tcpFactory;
4616
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
   233
  const Ipv4RoutingHelper *m_routing;
7176
9f2663992e99 internet coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 6837
diff changeset
   234
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   235
  /**
5361
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   236
   * \internal
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   237
   * \brief IPv6 routing helper.
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   238
   */
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   239
  const Ipv6RoutingHelper *m_routingv6;
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   240
5361
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   241
  /**
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   242
   * \internal
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   243
   */
4616
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
   244
  static void CreateAndAggregateObjectFromTypeId (Ptr<Node> node, const std::string typeId);
5361
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   245
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   246
  /**
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   247
   * \internal
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   248
   */
3009
db5fab391eac bug 170
Craig Dowell <craigdo@ee.washington.edu>
parents: 2996
diff changeset
   249
  static void Cleanup (void);
5361
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   250
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   251
  /**
6030
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   252
   * \internal
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   253
   */
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   254
  bool PcapHooked (Ptr<Ipv4> ipv4);
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   255
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   256
  /**
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   257
   * \internal
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   258
   */
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   259
  bool AsciiHooked (Ptr<Ipv4> ipv4);
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   260
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   261
  /**
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   262
   * \internal
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   263
   */
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   264
  bool PcapHooked (Ptr<Ipv6> ipv6);
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   265
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   266
  /**
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   267
   * \internal
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   268
   */
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   269
  bool AsciiHooked (Ptr<Ipv6> ipv6);
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   270
7b67e0413b57 linearize mixins and make internet stack helper work correctly
Craig Dowell <craigdo@ee.washington.edu>
parents: 6028
diff changeset
   271
  /**
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   272
   * \brief IPv4 install state (enabled/disabled) ?
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   273
   */
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   274
  bool m_ipv4Enabled;
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   275
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   276
  /**
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   277
   * \brief IPv6 install state (enabled/disabled) ?
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   278
   */
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   279
  bool m_ipv6Enabled;
2708
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   280
};
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   281
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   282
} // namespace ns3
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   283
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   284
#endif /* INTERNET_STACK_HELPER_H */