src/helper/wifi-helper.h
author Tom Henderson <tomh@tomh.org>
Fri, 26 Jun 2009 10:35:46 +0200
changeset 4605 fd44ff061631
parent 4588 0698fdc1aaf9
child 4720 15221757964f
permissions -rw-r--r--
bug 608: painful to enable logging of all wifi components
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
4406
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
     4
 * Copyright (c) 2009 MIRKO BANCHI
2833
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
diff changeset
     5
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
diff changeset
     6
 * 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
     7
 * 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
     8
 * published by the Free Software Foundation;
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
diff changeset
     9
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
diff changeset
    10
 * 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
    11
 * 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
    12
 * 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
    13
 * GNU General Public License for more details.
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
diff changeset
    14
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
diff changeset
    15
 * 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
    16
 * 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
    17
 * 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
    18
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
diff changeset
    19
 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
4406
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    20
 * Author: Mirko Banchi <mk.banchi@gmail.com>
2833
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
diff changeset
    21
 */
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    22
#ifndef WIFI_HELPER_H
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    23
#define WIFI_HELPER_H
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    24
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    25
#include <string>
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    26
#include "ns3/attribute.h"
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    27
#include "ns3/object-factory.h"
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    28
#include "ns3/node-container.h"
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    29
#include "ns3/net-device-container.h"
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    30
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    31
namespace ns3 {
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    32
3912
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    33
class WifiPhy;
4406
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    34
class WifiMac;
3912
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    35
class WifiNetDevice;
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    36
class Node;
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    37
4001
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    38
/**
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    39
 * \brief create PHY objects
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    40
 *
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    41
 * 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
    42
 * with the \ref ns3::WifiHelper class.
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    43
 */
3912
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    44
class WifiPhyHelper
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    45
{
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    46
public:
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    47
  virtual ~WifiPhyHelper ();
4001
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    48
  /**
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    49
   * \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
    50
   * \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
    51
   * \returns a new PHY object.
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    52
   *
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    53
   * 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
    54
   * 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
    55
   */
3912
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
    56
  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
    57
};
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    58
2696
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    59
/**
4406
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    60
 * \brief create MAC objects
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    61
 *
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    62
 * This base class must be implemented by new MAC implementation which wish to integrate
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    63
 * with the \ref ns3::WifiHelper class.
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    64
 */
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    65
class WifiMacHelper
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    66
{
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    67
public:
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    68
  virtual ~WifiMacHelper ();
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    69
  /**
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    70
   * \returns a new MAC object.
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    71
   *
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    72
   * Subclasses must implement this method to allow the ns3::WifiHelper class
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    73
   * to create MAC objects from ns3::WifiHelper::Install.
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    74
   */
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    75
  virtual Ptr<WifiMac> Create (void) const = 0;
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    76
};
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    77
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
    78
/**
2696
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    79
 * \brief helps to create WifiNetDevice objects
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
 * This class can help to create a large set of similar
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    82
 * 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
    83
 * their attributes during creation.
2696
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    84
 */
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    85
class WifiHelper
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    86
{
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    87
public:
4001
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    88
  /**
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    89
   * 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
    90
   * 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
    91
   */
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    92
  WifiHelper ();
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    93
4001
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    94
  /**
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    95
   * \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
    96
   *
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
    97
   * 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
    98
   * 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
    99
   */
3912
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
   100
  static WifiHelper Default (void);
4d1a61f80745 new wifi API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3906
diff changeset
   101
2696
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   102
  /**
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   103
   * \param type the type of ns3::WifiRemoteStationManager to create.
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   104
   * \param n0 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   105
   * \param v0 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   106
   * \param n1 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   107
   * \param v1 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   108
   * \param n2 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   109
   * \param v2 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   110
   * \param n3 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   111
   * \param v3 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   112
   * \param n4 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   113
   * \param v4 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   114
   * \param n5 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   115
   * \param v5 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   116
   * \param n6 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   117
   * \param v6 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   118
   * \param n7 the name of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   119
   * \param v7 the value of the attribute to set
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   120
   *
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   121
   * All the attributes specified in this method should exist
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   122
   * in the requested station manager.
f001689cacd2 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   123
   */
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   124
  void SetRemoteStationManager (std::string type,
3786
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   125
                                std::string n0 = "", const AttributeValue &v0 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   126
                                std::string n1 = "", const AttributeValue &v1 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   127
                                std::string n2 = "", const AttributeValue &v2 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   128
                                std::string n3 = "", const AttributeValue &v3 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   129
                                std::string n4 = "", const AttributeValue &v4 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   130
                                std::string n5 = "", const AttributeValue &v5 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   131
                                std::string n6 = "", const AttributeValue &v6 = EmptyAttributeValue (),
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3381
diff changeset
   132
                                std::string n7 = "", const AttributeValue &v7 = EmptyAttributeValue ());
4001
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
   133
  /**
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
   134
   * \param phy the PHY helper to create PHY objects
4406
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
   135
   * \param mac the MAC helper to create MAC objects
4001
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
   136
   * \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
   137
   * \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
   138
   */
4406
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
   139
  NetDeviceContainer Install (const WifiPhyHelper &phy,
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
   140
                              const WifiMacHelper &mac, NodeContainer c) const;
4001
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
   141
  /**
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
   142
   * \param phy the PHY helper to create PHY objects
4406
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
   143
   * \param mac the MAC helper to create MAC objects
4001
3f87cca47331 bug 435: API doc update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3915
diff changeset
   144
   * \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
   145
   * \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
   146
   */
4406
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
   147
  NetDeviceContainer Install (const WifiPhyHelper &phy,
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
   148
                              const WifiMacHelper &mac, 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
   149
  /**
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 4001
diff changeset
   150
   * \param phy the PHY helper to create PHY objects
4406
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
   151
   * \param mac the MAC helper to create MAC objects
4140
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 4001
diff changeset
   152
   * \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
   153
   * \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
   154
   */
4406
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
   155
  NetDeviceContainer Install (const WifiPhyHelper &phy,
39f119de91ef Add WifiMacHelper
Mirko Banchi <mk.banchi@gmail.com>
parents: 4264
diff changeset
   156
                              const WifiMacHelper &mac, std::string nodeName) const;
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   157
4588
0698fdc1aaf9 WifiHelper method to enable all Wifi logging
Tom Henderson <tomh@tomh.org>
parents: 4406
diff changeset
   158
  /**
0698fdc1aaf9 WifiHelper method to enable all Wifi logging
Tom Henderson <tomh@tomh.org>
parents: 4406
diff changeset
   159
   * Helper to enable all WifiNetDevice log components with one statement 
0698fdc1aaf9 WifiHelper method to enable all Wifi logging
Tom Henderson <tomh@tomh.org>
parents: 4406
diff changeset
   160
   */
4605
fd44ff061631 bug 608: painful to enable logging of all wifi components
Tom Henderson <tomh@tomh.org>
parents: 4588
diff changeset
   161
  static void EnableLogComponents (void);
4588
0698fdc1aaf9 WifiHelper method to enable all Wifi logging
Tom Henderson <tomh@tomh.org>
parents: 4406
diff changeset
   162
2524
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
};
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
} // namespace ns3
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   168
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   169
#endif /* WIFI_HELPER_H */