src/helper/internet-stack-helper.h
author Craig Dowell <craigdo@ee.washington.edu>
Fri, 22 Jan 2010 00:58:01 -0800
changeset 6013 fa3ab7f34eb2
parent 5361 e8989b44bffb
child 6017 050fa2b861df
permissions -rw-r--r--
checkpoint
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
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    24
#include "node-container.h"
2845
2398826af6b4 Add IP layer tracing helpers to InternetStackHelper
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2834
diff changeset
    25
#include "net-device-container.h"
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"
6013
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
    31
#include "pcap-user-helper-for-ipv4.h"
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
    32
#include "ascii-trace-user-helper-for-ipv4.h"
2708
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    33
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    34
namespace ns3 {
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    35
4472
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
    36
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
    37
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
    38
class Ipv6RoutingHelper;
4472
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
    39
2708
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    40
/**
3848
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
    41
 * \brief aggregate IP/TCP/UDP functionality to existing Nodes.
6013
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
    42
 *
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
    43
 * 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
    44
 * associated with a node.  This is substantially similar to the tracing
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
    45
 * that happens in device helpers, but the important difference is that, well,
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
    46
 * 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
    47
 * change, and also the user-visible methods will not reference devices and
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
    48
 * therefore the number of trace enable methods is reduced.
2708
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    49
 */
6013
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
    50
class InternetStackHelper : public PcapUserHelperForIpv4, public AsciiTraceUserHelperForIpv4
2708
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    51
{
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    52
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
    53
  /**
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    54
   * 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
    55
   * 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
    56
   * (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
    57
   * 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
    58
   * 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
    59
   * 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
    60
   * 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
    61
   */
3579
9e5eaef3e082 nsc: enable network simulation cradle
Florian Westphal <fw@strlen.de>
parents: 3009
diff changeset
    62
  InternetStackHelper(void);
5361
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
    63
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
    64
  /**
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
    65
   * Destroy the InternetStackHelper
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
    66
   */
5353
a63513286aa0 Fix memory management of routing helpers (bug 678)
Tom Henderson <tomh@tomh.org>
parents: 5214
diff changeset
    67
  virtual ~InternetStackHelper(void);
5359
a2196f9bca93 add copy constructor to InternetStackHelper
Tom Henderson <tomh@tomh.org>
parents: 5356
diff changeset
    68
  InternetStackHelper (const InternetStackHelper &);
5355
fb4c54590532 allow assignment operator for InternetStackHelper
Tom Henderson <tomh@tomh.org>
parents: 5353
diff changeset
    69
  InternetStackHelper &operator = (const InternetStackHelper &o);
3579
9e5eaef3e082 nsc: enable network simulation cradle
Florian Westphal <fw@strlen.de>
parents: 3009
diff changeset
    70
2709
eecedcae731d doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2708
diff changeset
    71
  /**
5356
8f693fdc3149 add ability to reset InternetStackHelper w/o assigning a temporary
Tom Henderson <tomh@tomh.org>
parents: 5355
diff changeset
    72
   * 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
    73
   */
8f693fdc3149 add ability to reset InternetStackHelper w/o assigning a temporary
Tom Henderson <tomh@tomh.org>
parents: 5355
diff changeset
    74
  void Reset (void);
8f693fdc3149 add ability to reset InternetStackHelper w/o assigning a temporary
Tom Henderson <tomh@tomh.org>
parents: 5355
diff changeset
    75
8f693fdc3149 add ability to reset InternetStackHelper w/o assigning a temporary
Tom Henderson <tomh@tomh.org>
parents: 5355
diff changeset
    76
  /**
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
    77
   * \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
    78
   *
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    79
   * 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
    80
   * 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
    81
   * 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
    82
   * 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
    83
   * 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
    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
  void SetRoutingHelper (const Ipv4RoutingHelper &routing);
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
    86
  
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
    87
  /**
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
    88
   * \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
    89
   * \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
    90
   */
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
    91
  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
    92
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
    93
  /**
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
    94
   * 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
    95
   * 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
    96
   * 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
    97
   * 
4140
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 3863
diff changeset
    98
   * \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
    99
   */
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 3863
diff changeset
   100
  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
   101
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 3863
diff changeset
   102
  /**
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   103
   * 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
   104
   * 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
   105
   * 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
   106
   * 
3848
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   107
   * \param node The node on which to install the stack.
2709
eecedcae731d doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2708
diff changeset
   108
   */
3848
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   109
  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
   110
2398826af6b4 Add IP layer tracing helpers to InternetStackHelper
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2834
diff changeset
   111
  /**
3848
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   112
   * 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
   113
   * 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
   114
   * 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
   115
   * 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
   116
   * 
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   117
   * \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
   118
   * new stacks.
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   119
   */
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   120
  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
   121
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
   122
  /**
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   123
   * 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
   124
   */
a84f60b6cd12 bug 600: lower the default routing priority of Ipv4GlobalRouting; move to helper
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4472
diff changeset
   125
  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
   126
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   127
  /**
4472
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   128
   * \brief set the Tcp stack which will not need any other parameter.  
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   129
   *
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   130
   * 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
   131
   * 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
   132
   * 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
   133
   * 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
   134
   * 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
   135
   *
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   136
   * \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
   137
   */
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   138
  void SetTcp(std::string tid);
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   139
   
3848
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   140
  /**
4472
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   141
   * \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
   142
   * 
3848
affd0834debc address bug 393 (need to overload Install methods for python)
Craig Dowell <craigdo@ee.washington.edu>
parents: 3579
diff changeset
   143
   * 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
   144
   * 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
   145
   * 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
   146
   * 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
   147
   * 
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   148
   * \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
   149
   * \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
   150
   * \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
   151
   */
4472
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   152
  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
   153
9e5eaef3e082 nsc: enable network simulation cradle
Florian Westphal <fw@strlen.de>
parents: 3009
diff changeset
   154
  /**
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   155
   * \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
   156
   * \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
   157
   */
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   158
  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
   159
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   160
  /**
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 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
   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 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
   165
2845
2398826af6b4 Add IP layer tracing helpers to InternetStackHelper
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2834
diff changeset
   166
private:
6013
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   167
  /**
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   168
   * @brief Enable pcap output the indicated Ipv4 and interface pair.
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   169
   * @internal
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   170
   *
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   171
   * @param prefix Filename prefix to use for pcap files.
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   172
   * @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
   173
   * @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
   174
   */
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   175
  virtual void EnablePcapInternal (std::string prefix, Ptr<Ipv4> ipv4, uint32_t interface);
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
  /**
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   178
   * @brief Enable ascii trace output on the indicated Ipv4 and interface pair.
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   179
   * @internal
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   180
   *
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   181
   * @param stream An OutputStreamObject representing an existing file to use
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   182
   *               when writing trace data.
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   183
   * @param prefix Filename prefix to use for ascii trace files.
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   184
   * @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
   185
   * @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
   186
   */
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   187
  virtual void EnableAsciiInternal (Ptr<OutputStreamObject> stream, std::string prefix, Ptr<Ipv4> ipv4, uint32_t interface);
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   188
5356
8f693fdc3149 add ability to reset InternetStackHelper w/o assigning a temporary
Tom Henderson <tomh@tomh.org>
parents: 5355
diff changeset
   189
  void Initialize (void);
4472
e20a31541404 src/ and utils/ changes for IPv4 routing rework
Tom Henderson <tomh@tomh.org>
parents: 4140
diff changeset
   190
  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
   191
  const Ipv4RoutingHelper *m_routing;
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   192
  
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   193
  /**
5361
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   194
   * \internal
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   195
   * \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
   196
   */
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   197
  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
   198
5361
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   199
  /**
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   200
   * \internal
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   201
   */
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
   202
  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
   203
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   204
  /**
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   205
   * \internal
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   206
   */
3009
db5fab391eac bug 170
Craig Dowell <craigdo@ee.washington.edu>
parents: 2996
diff changeset
   207
  static void Cleanup (void);
5361
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   208
6013
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   209
#if 0
5361
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   210
  /**
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   211
   * \internal
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   212
   */
2845
2398826af6b4 Add IP layer tracing helpers to InternetStackHelper
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2834
diff changeset
   213
  static void LogRxIp (std::string context, Ptr<const Packet> packet, uint32_t deviceId);
5361
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   214
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   215
  /**
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   216
   * \internal
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   217
   */
2845
2398826af6b4 Add IP layer tracing helpers to InternetStackHelper
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2834
diff changeset
   218
  static void LogTxIp (std::string context, Ptr<const Packet> packet, uint32_t deviceId);
5361
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   219
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   220
  /**
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   221
   * \internal
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   222
   */
2845
2398826af6b4 Add IP layer tracing helpers to InternetStackHelper
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2834
diff changeset
   223
  static Ptr<PcapWriter> GetStream (uint32_t nodeId, uint32_t interfaceId);
5361
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   224
2845
2398826af6b4 Add IP layer tracing helpers to InternetStackHelper
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2834
diff changeset
   225
  struct Trace {
2398826af6b4 Add IP layer tracing helpers to InternetStackHelper
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2834
diff changeset
   226
    uint32_t nodeId;
2398826af6b4 Add IP layer tracing helpers to InternetStackHelper
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2834
diff changeset
   227
    uint32_t interfaceId;
2398826af6b4 Add IP layer tracing helpers to InternetStackHelper
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2834
diff changeset
   228
    Ptr<PcapWriter> writer;
2398826af6b4 Add IP layer tracing helpers to InternetStackHelper
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2834
diff changeset
   229
  };
5214
ed1c7a9d95c3 Fix InternetStackHelper::EnableAsciiAll to work with the new Drop signature
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 4772
diff changeset
   230
5361
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   231
  /**
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   232
   * \internal
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   233
   */
5214
ed1c7a9d95c3 Fix InternetStackHelper::EnableAsciiAll to work with the new Drop signature
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 4772
diff changeset
   234
  static void AsciiDropEventIpv4 (Ptr<AsciiWriter> writer, std::string path,
ed1c7a9d95c3 Fix InternetStackHelper::EnableAsciiAll to work with the new Drop signature
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 4772
diff changeset
   235
                                  Ipv4Header const &header, Ptr<const Packet> packet,
ed1c7a9d95c3 Fix InternetStackHelper::EnableAsciiAll to work with the new Drop signature
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 4772
diff changeset
   236
                                  Ipv4L3Protocol::DropReason reason, uint32_t interface);
5361
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   237
  /**
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   238
   * \internal
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   239
   */
5214
ed1c7a9d95c3 Fix InternetStackHelper::EnableAsciiAll to work with the new Drop signature
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 4772
diff changeset
   240
  static void AsciiDropEventArp (Ptr<AsciiWriter> writer, std::string path, Ptr<const Packet> packet);
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
  /**
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   243
   * \internal
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   244
   */
5214
ed1c7a9d95c3 Fix InternetStackHelper::EnableAsciiAll to work with the new Drop signature
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 4772
diff changeset
   245
  static void AsciiDropEventIpv6 (Ptr<AsciiWriter> writer, std::string path,
ed1c7a9d95c3 Fix InternetStackHelper::EnableAsciiAll to work with the new Drop signature
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 4772
diff changeset
   246
                                  Ipv6Header const &header, Ptr<const Packet> packet,
ed1c7a9d95c3 Fix InternetStackHelper::EnableAsciiAll to work with the new Drop signature
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 4772
diff changeset
   247
                                  Ipv6L3Protocol::DropReason reason, uint32_t interface);
5361
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   248
2845
2398826af6b4 Add IP layer tracing helpers to InternetStackHelper
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2834
diff changeset
   249
  static std::string m_pcapBaseFilename;
5361
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   250
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   251
  /**
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   252
   * \internal
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   253
   */
2845
2398826af6b4 Add IP layer tracing helpers to InternetStackHelper
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2834
diff changeset
   254
  static uint32_t GetNodeIndex (std::string context);
5361
e8989b44bffb Doxygen and wscript messages point to test.py
Craig Dowell <craigdo@ee.washington.edu>
parents: 5359
diff changeset
   255
2845
2398826af6b4 Add IP layer tracing helpers to InternetStackHelper
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2834
diff changeset
   256
  static std::vector<Trace> m_traces;
6013
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5361
diff changeset
   257
#endif
4731
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   258
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   259
  /**
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   260
   * \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
   261
   */
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   262
  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
   263
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   264
  /**
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   265
   * \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
   266
   */
510db8599bfb second phase of IPv6 checkins from Univ. of Strasbourg team
Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
parents: 4712
diff changeset
   267
  bool m_ipv6Enabled;
2708
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   268
};
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   269
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   270
} // namespace ns3
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   271
83cc896e501c InternetStackHelper.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   272
#endif /* INTERNET_STACK_HELPER_H */