src/helper/wifi-helper.h
author Craig Dowell <craigdo@ee.washington.edu>
Tue, 10 Mar 2009 23:47:55 -0700
changeset 4264 9d2e96c4e6e4
parent 4263 fec2f830d015
child 4406 39f119de91ef
permissions -rw-r--r--
Piles of changes for tracing rework
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2833
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
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: 2805
diff changeset
     2
/*
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
diff changeset
     3
 * Copyright (c) 2008 INRIA
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
diff changeset
     4
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
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: 2805
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: 2805
diff changeset
     7
 * published by the Free Software Foundation;
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
diff changeset
     8
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
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: 2805
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: 2805
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: 2805
diff changeset
    12
 * GNU General Public License for more details.
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
diff changeset
    13
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
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: 2805
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: 2805
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: 2805
diff changeset
    17
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
diff changeset
    18
 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
diff changeset
    19
 */
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    20
#ifndef WIFI_HELPER_H
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    21
#define WIFI_HELPER_H
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    22
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    23
#include <string>
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    24
#include "ns3/attribute.h"
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    25
#include "ns3/object-factory.h"
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    26
#include "ns3/node-container.h"
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    27
#include "ns3/net-device-container.h"
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    28
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    29
namespace ns3 {
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    30
3912
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    31
class WifiPhy;
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    32
class WifiNetDevice;
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    33
class Node;
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    34
4001
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    35
/**
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    36
 * \brief create PHY objects
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    37
 *
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    38
 * This base class must be implemented by new PHY implementation which wish to integrate
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    39
 * with the \ref ns3::WifiHelper class.
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    40
 */
3912
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    41
class WifiPhyHelper
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    42
{
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    43
public:
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    44
  virtual ~WifiPhyHelper ();
4001
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    45
  /**
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    46
   * \param node the node on which the PHY object will reside
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    47
   * \param device the device within which the PHY object will reside
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    48
   * \returns a new PHY object.
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    49
   *
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    50
   * Subclasses must implement this method to allow the ns3::WifiHelper class
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    51
   * to create PHY objects from ns3::WifiHelper::Install.
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    52
   */
3912
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    53
  virtual Ptr<WifiPhy> Create (Ptr<Node> node, Ptr<WifiNetDevice> device) const = 0;
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    54
};
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    55
2696
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    56
/**
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    57
 * \brief helps to create WifiNetDevice objects
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    58
 *
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    59
 * This class can help to create a large set of similar
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    60
 * WifiNetDevice objects and to configure a large set of
3381
3cdd9d60f7c7 bug 232, references to Parameter obsolete
Craig Dowell <craigdo@ee.washington.edu>
parents: 2997
diff changeset
    61
 * their attributes during creation.
2696
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    62
 */
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    63
class WifiHelper
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    64
{
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    65
public:
4001
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    66
  /**
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    67
   * Create a Wifi helper in an empty state: all its parameters
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    68
   * must be set before calling ns3::WifiHelper::Install
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    69
   */
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    70
  WifiHelper ();
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    71
4001
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    72
  /**
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    73
   * \returns a new WifiHelper in a default state
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    74
   *
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    75
   * The default state is defined as being an Adhoc MAC layer with an ARF rate control algorithm
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    76
   * and both objects using their default attribute values.
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    77
   */
3912
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    78
  static WifiHelper Default (void);
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    79
2696
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    80
  /**
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    81
   * \param type the type of ns3::WifiRemoteStationManager to create.
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    82
   * \param n0 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    83
   * \param v0 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    84
   * \param n1 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    85
   * \param v1 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    86
   * \param n2 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    87
   * \param v2 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    88
   * \param n3 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    89
   * \param v3 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    90
   * \param n4 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    91
   * \param v4 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    92
   * \param n5 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    93
   * \param v5 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    94
   * \param n6 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    95
   * \param v6 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    96
   * \param n7 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    97
   * \param v7 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    98
   *
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    99
   * All the attributes specified in this method should exist
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   100
   * in the requested station manager.
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   101
   */
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   102
  void SetRemoteStationManager (std::string type,
3786
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   103
                                std::string n0 = "", const AttributeValue &v0 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   104
                                std::string n1 = "", const AttributeValue &v1 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   105
                                std::string n2 = "", const AttributeValue &v2 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   106
                                std::string n3 = "", const AttributeValue &v3 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   107
                                std::string n4 = "", const AttributeValue &v4 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   108
                                std::string n5 = "", const AttributeValue &v5 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   109
                                std::string n6 = "", const AttributeValue &v6 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   110
                                std::string n7 = "", const AttributeValue &v7 = EmptyAttributeValue ());
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   111
2696
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   112
  /**
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   113
   * \param type the type of ns3::WifiMac to create.
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   114
   * \param n0 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   115
   * \param v0 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   116
   * \param n1 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   117
   * \param v1 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   118
   * \param n2 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   119
   * \param v2 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   120
   * \param n3 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   121
   * \param v3 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   122
   * \param n4 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   123
   * \param v4 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   124
   * \param n5 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   125
   * \param v5 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   126
   * \param n6 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   127
   * \param v6 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   128
   * \param n7 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   129
   * \param v7 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   130
   *
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   131
   * All the attributes specified in this method should exist
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   132
   * in the requested mac.
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   133
   */
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   134
  void SetMac (std::string type,
3786
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   135
               std::string n0 = "", const AttributeValue &v0 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   136
               std::string n1 = "", const AttributeValue &v1 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   137
               std::string n2 = "", const AttributeValue &v2 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   138
               std::string n3 = "", const AttributeValue &v3 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   139
               std::string n4 = "", const AttributeValue &v4 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   140
               std::string n5 = "", const AttributeValue &v5 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   141
               std::string n6 = "", const AttributeValue &v6 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   142
               std::string n7 = "", const AttributeValue &v7 = EmptyAttributeValue ());
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   143
4001
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
   144
  /**
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
   145
   * \param phy the PHY helper to create PHY objects
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
   146
   * \param c the set of nodes on which a wifi device must be created
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
   147
   * \returns a device container which contains all the devices created by this method.
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
   148
   */
3912
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
   149
  NetDeviceContainer Install (const WifiPhyHelper &phy, NodeContainer c) const;
4001
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
   150
  /**
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
   151
   * \param phy the PHY helper to create PHY objects
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
   152
   * \param node the node on which a wifi device must be created
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
   153
   * \returns a device container which contains all the devices created by this method.
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
   154
   */
3915
c798f3d5cb2e add WifiHelper::Install (Ptr<Node>) method per craig's comment.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3914
diff changeset
   155
  NetDeviceContainer Install (const WifiPhyHelper &phy, Ptr<Node> node) const;
4140
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 4001
diff changeset
   156
  /**
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 4001
diff changeset
   157
   * \param phy the PHY helper to create PHY objects
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 4001
diff changeset
   158
   * \param nodeName the name of node on which a wifi device must be created
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 4001
diff changeset
   159
   * \returns a device container which contains all the devices created by this method.
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 4001
diff changeset
   160
   */
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 4001
diff changeset
   161
  NetDeviceContainer Install (const WifiPhyHelper &phy, std::string nodeName) const;
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   162
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   163
private:
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   164
  ObjectFactory m_stationManager;
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   165
  ObjectFactory m_mac;
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   166
};
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   167
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   168
} // namespace ns3
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   169
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   170
#endif /* WIFI_HELPER_H */