src/helper/mesh-helper.h
author Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
Wed, 16 Sep 2009 15:03:00 +0100
changeset 5202 53bee26fce31
parent 5167 a3ede758b713
child 5362 d31f56c9b7cb
permissions -rw-r--r--
Missing code, methods declared but not implemented...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4793
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
     2
/*
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
     3
 * Copyright (c) 2008,2009 IITP RAS
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
     4
 *
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
4812
adcb26652e1d Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents: 4811
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
4793
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
     8
 *
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
    12
 * GNU General Public License for more details.
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
    13
 *
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
    17
 *
4811
080b8f23fa4a Added license information to some files.
Andrey Mazo <mazo@iitp.ru>
parents: 4793
diff changeset
    18
 * Author: Kirill Andreev <andreev@iitp.ru>
4929
1689c94d7442 802.11s helper (ns3::dot11s::MeshWifiHelper) refactored
Pavel Boyko <boyko@iitp.ru>
parents: 4887
diff changeset
    19
 *         Pavel Boyko <boyko@iitp.ru>
4793
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
    20
 */
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
    21
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
    22
5164
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    23
#ifndef MESH_HELPER_H
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    24
#define MESH_HELPER_H
4929
1689c94d7442 802.11s helper (ns3::dot11s::MeshWifiHelper) refactored
Pavel Boyko <boyko@iitp.ru>
parents: 4887
diff changeset
    25
4860
bb5194d57734 New peer management protocol moved to 802.11s/
Pavel Boyko <boyko@iitp.ru>
parents: 4858
diff changeset
    26
#include "ns3/wifi-helper.h"
5081
869b81c5e774 Restructured installers
Kirill Andreev <andreev@iitp.ru>
parents: 5063
diff changeset
    27
#include "ns3/mesh-stack-installer.h"
4793
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
    28
4812
adcb26652e1d Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents: 4811
diff changeset
    29
namespace ns3 {
4855
0b5980b04249 Restructured helper: switch to new mac, now only beacon functionality works
Kirill Andreev <andreev@iitp.ru>
parents: 4852
diff changeset
    30
4812
adcb26652e1d Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents: 4811
diff changeset
    31
class WifiChannel;
4793
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
    32
4815
4d5befafc0a5 L2RoutingNetDevice refactored to MeshPointDevice
pavlo
parents: 4813
diff changeset
    33
/** 
4860
bb5194d57734 New peer management protocol moved to 802.11s/
Pavel Boyko <boyko@iitp.ru>
parents: 4858
diff changeset
    34
 * \ingroup dot11s
4815
4d5befafc0a5 L2RoutingNetDevice refactored to MeshPointDevice
pavlo
parents: 4813
diff changeset
    35
 * 
4929
1689c94d7442 802.11s helper (ns3::dot11s::MeshWifiHelper) refactored
Pavel Boyko <boyko@iitp.ru>
parents: 4887
diff changeset
    36
 * \brief Helper to create IEEE 802.11s mesh networks
4815
4d5befafc0a5 L2RoutingNetDevice refactored to MeshPointDevice
pavlo
parents: 4813
diff changeset
    37
 */
5086
fccfd0073ea3 Fixed names: now protocols are called *-protocol.[h,cc], plugin is called
Kirill Andreev <andreev@iitp.ru>
parents: 5081
diff changeset
    38
class MeshHelper
4812
adcb26652e1d Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents: 4811
diff changeset
    39
{
4929
1689c94d7442 802.11s helper (ns3::dot11s::MeshWifiHelper) refactored
Pavel Boyko <boyko@iitp.ru>
parents: 4887
diff changeset
    40
public:
5164
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    41
  MeshHelper ();
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    42
  static MeshHelper
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    43
  Default ();
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    44
  /**
5167
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    45
   * \param n0 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    46
   * \param v0 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    47
   * \param n1 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    48
   * \param v1 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    49
   * \param n2 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    50
   * \param v2 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    51
   * \param n3 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    52
   * \param v3 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    53
   * \param n4 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    54
   * \param v4 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    55
   * \param n5 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    56
   * \param v5 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    57
   * \param n6 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    58
   * \param v6 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    59
   * \param n7 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    60
   * \param v7 the value of the attribute to set
5164
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    61
   *
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    62
   * All the attributes specified in this method should exist
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    63
   * in the requested mac.
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    64
   */
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    65
  void SetMacType (std::string n0 = "", const AttributeValue &v0 = EmptyAttributeValue (),
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    66
        std::string n1 = "", const AttributeValue &v1 = EmptyAttributeValue (),
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    67
        std::string n2 = "", const AttributeValue &v2 = EmptyAttributeValue (),
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    68
        std::string n3 = "", const AttributeValue &v3 = EmptyAttributeValue (),
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    69
        std::string n4 = "", const AttributeValue &v4 = EmptyAttributeValue (),
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    70
        std::string n5 = "", const AttributeValue &v5 = EmptyAttributeValue (),
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    71
        std::string n6 = "", const AttributeValue &v6 = EmptyAttributeValue (),
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    72
        std::string n7 = "", const AttributeValue &v7 = EmptyAttributeValue ());
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    73
  /**
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    74
   * \param type the type of ns3::WifiRemoteStationManager to create.
5167
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    75
   * \param n0 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    76
   * \param v0 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    77
   * \param n1 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    78
   * \param v1 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    79
   * \param n2 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    80
   * \param v2 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    81
   * \param n3 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    82
   * \param v3 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    83
   * \param n4 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    84
   * \param v4 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    85
   * \param n5 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    86
   * \param v5 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    87
   * \param n6 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    88
   * \param v6 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    89
   * \param n7 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
    90
   * \param v7 the value of the attribute to set
5164
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    91
   *
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    92
   * All the attributes specified in this method should exist
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    93
   * in the requested station manager.
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    94
   */
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    95
  void
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    96
  SetRemoteStationManager (std::string type,
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    97
      std::string n0 = "", const AttributeValue &v0 = EmptyAttributeValue (),    
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    98
      std::string n1 = "", const AttributeValue &v1 = EmptyAttributeValue (),
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
    99
      std::string n2 = "", const AttributeValue &v2 = EmptyAttributeValue (),
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   100
      std::string n3 = "", const AttributeValue &v3 = EmptyAttributeValue (),
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   101
      std::string n4 = "", const AttributeValue &v4 = EmptyAttributeValue (),
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   102
      std::string n5 = "", const AttributeValue &v5 = EmptyAttributeValue (),
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   103
      std::string n6 = "", const AttributeValue &v6 = EmptyAttributeValue (),
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   104
      std::string n7 = "", const AttributeValue &v7 = EmptyAttributeValue ());
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   105
  /**
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   106
   * Set PHY standard
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   107
   */
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   108
  void SetStandard (enum WifiPhyStandard standard);
5202
53bee26fce31 Missing code, methods declared but not implemented...
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 5167
diff changeset
   109
  //void SetMeshId (std::string s); // XXX
4929
1689c94d7442 802.11s helper (ns3::dot11s::MeshWifiHelper) refactored
Pavel Boyko <boyko@iitp.ru>
parents: 4887
diff changeset
   110
  /** 
4937
7211ebc93e69 Add spread interfaces frequency channels option
Pavel Boyko <boyko@iitp.ru>
parents: 4930
diff changeset
   111
   *  \brief Spread/not spread frequency channels of MP interfaces. 
7211ebc93e69 Add spread interfaces frequency channels option
Pavel Boyko <boyko@iitp.ru>
parents: 4930
diff changeset
   112
   * 
7211ebc93e69 Add spread interfaces frequency channels option
Pavel Boyko <boyko@iitp.ru>
parents: 4930
diff changeset
   113
   *  If set to true different non-overlaping 20MHz frequency 
7211ebc93e69 Add spread interfaces frequency channels option
Pavel Boyko <boyko@iitp.ru>
parents: 4930
diff changeset
   114
   *  channels will be assigned to different mesh point interfaces.
5163
f1119f03b7a9 Code review fixes
Kirill Andreev <andreev@iitp.ru>
parents: 5141
diff changeset
   115
   */
5164
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   116
  enum ChannelPolicy
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   117
  {
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   118
    SPREAD_CHANNELS,
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   119
    ZERO_CHANNEL
5163
f1119f03b7a9 Code review fixes
Kirill Andreev <andreev@iitp.ru>
parents: 5141
diff changeset
   120
  };
f1119f03b7a9 Code review fixes
Kirill Andreev <andreev@iitp.ru>
parents: 5141
diff changeset
   121
  void SetSpreadInterfaceChannels (ChannelPolicy);
f1119f03b7a9 Code review fixes
Kirill Andreev <andreev@iitp.ru>
parents: 5141
diff changeset
   122
  /**
f1119f03b7a9 Code review fixes
Kirill Andreev <andreev@iitp.ru>
parents: 5141
diff changeset
   123
   * \brief Set a number of interfaces in a mesh network
f1119f03b7a9 Code review fixes
Kirill Andreev <andreev@iitp.ru>
parents: 5141
diff changeset
   124
   * \param nInterfaces is the number of interfaces
f1119f03b7a9 Code review fixes
Kirill Andreev <andreev@iitp.ru>
parents: 5141
diff changeset
   125
   */
f1119f03b7a9 Code review fixes
Kirill Andreev <andreev@iitp.ru>
parents: 5141
diff changeset
   126
  void SetNumberOfInterfaces (uint32_t nInterfaces);
4937
7211ebc93e69 Add spread interfaces frequency channels option
Pavel Boyko <boyko@iitp.ru>
parents: 4930
diff changeset
   127
  
7211ebc93e69 Add spread interfaces frequency channels option
Pavel Boyko <boyko@iitp.ru>
parents: 4930
diff changeset
   128
  /** 
5063
97b947e83640 Faker's code review response
Pavel Boyko <boyko@iitp.ru>
parents: 5056
diff changeset
   129
   * \brief Install 802.11s mesh device & protocols on given node list
4929
1689c94d7442 802.11s helper (ns3::dot11s::MeshWifiHelper) refactored
Pavel Boyko <boyko@iitp.ru>
parents: 4887
diff changeset
   130
   * 
5167
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
   131
   * \param phyHelper           Wifi PHY helper
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
   132
   * \param c               List of nodes to install
4929
1689c94d7442 802.11s helper (ns3::dot11s::MeshWifiHelper) refactored
Pavel Boyko <boyko@iitp.ru>
parents: 4887
diff changeset
   133
   * 
1689c94d7442 802.11s helper (ns3::dot11s::MeshWifiHelper) refactored
Pavel Boyko <boyko@iitp.ru>
parents: 4887
diff changeset
   134
   * \return list of created mesh point devices, see MeshPointDevice
1689c94d7442 802.11s helper (ns3::dot11s::MeshWifiHelper) refactored
Pavel Boyko <boyko@iitp.ru>
parents: 4887
diff changeset
   135
   */
5163
f1119f03b7a9 Code review fixes
Kirill Andreev <andreev@iitp.ru>
parents: 5141
diff changeset
   136
  NetDeviceContainer
5164
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   137
  Install (const WifiPhyHelper &phyHelper, NodeContainer c) const;
5081
869b81c5e774 Restructured installers
Kirill Andreev <andreev@iitp.ru>
parents: 5063
diff changeset
   138
  /**
869b81c5e774 Restructured installers
Kirill Andreev <andreev@iitp.ru>
parents: 5063
diff changeset
   139
   * \param type the type of ns3::MeshStack.
5167
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
   140
   * \param n0 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
   141
   * \param v0 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
   142
   * \param n1 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
   143
   * \param v1 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
   144
   * \param n2 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
   145
   * \param v2 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
   146
   * \param n3 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
   147
   * \param v3 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
   148
   * \param n4 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
   149
   * \param v4 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
   150
   * \param n5 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
   151
   * \param v5 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
   152
   * \param n6 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
   153
   * \param v6 the value of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
   154
   * \param n7 the name of the attribute to set
a3ede758b713 Doxygen: fixed warnings
Kirill Andreev <andreev@iitp.ru>
parents: 5164
diff changeset
   155
   * \param v7 the value of the attribute to set
5081
869b81c5e774 Restructured installers
Kirill Andreev <andreev@iitp.ru>
parents: 5063
diff changeset
   156
   */
5141
22e79c2a4c5f Added root mesh point as argument of command line
Kirill Andreev <andreev@iitp.ru>
parents: 5086
diff changeset
   157
  void SetStackInstaller (std::string type,
22e79c2a4c5f Added root mesh point as argument of command line
Kirill Andreev <andreev@iitp.ru>
parents: 5086
diff changeset
   158
                std::string n0 = "", const AttributeValue &v0 = EmptyAttributeValue (),
22e79c2a4c5f Added root mesh point as argument of command line
Kirill Andreev <andreev@iitp.ru>
parents: 5086
diff changeset
   159
                std::string n1 = "", const AttributeValue &v1 = EmptyAttributeValue (),
22e79c2a4c5f Added root mesh point as argument of command line
Kirill Andreev <andreev@iitp.ru>
parents: 5086
diff changeset
   160
                std::string n2 = "", const AttributeValue &v2 = EmptyAttributeValue (),
22e79c2a4c5f Added root mesh point as argument of command line
Kirill Andreev <andreev@iitp.ru>
parents: 5086
diff changeset
   161
                std::string n3 = "", const AttributeValue &v3 = EmptyAttributeValue (),
22e79c2a4c5f Added root mesh point as argument of command line
Kirill Andreev <andreev@iitp.ru>
parents: 5086
diff changeset
   162
                std::string n4 = "", const AttributeValue &v4 = EmptyAttributeValue (),
22e79c2a4c5f Added root mesh point as argument of command line
Kirill Andreev <andreev@iitp.ru>
parents: 5086
diff changeset
   163
                std::string n5 = "", const AttributeValue &v5 = EmptyAttributeValue (),
22e79c2a4c5f Added root mesh point as argument of command line
Kirill Andreev <andreev@iitp.ru>
parents: 5086
diff changeset
   164
                std::string n6 = "", const AttributeValue &v6 = EmptyAttributeValue (),
22e79c2a4c5f Added root mesh point as argument of command line
Kirill Andreev <andreev@iitp.ru>
parents: 5086
diff changeset
   165
                std::string n7 = "", const AttributeValue &v7 = EmptyAttributeValue ());
5081
869b81c5e774 Restructured installers
Kirill Andreev <andreev@iitp.ru>
parents: 5063
diff changeset
   166
  void Report (const ns3::Ptr<ns3::NetDevice>&, std::ostream&);
869b81c5e774 Restructured installers
Kirill Andreev <andreev@iitp.ru>
parents: 5063
diff changeset
   167
  void ResetStats (const ns3::Ptr<ns3::NetDevice>&);
4929
1689c94d7442 802.11s helper (ns3::dot11s::MeshWifiHelper) refactored
Pavel Boyko <boyko@iitp.ru>
parents: 4887
diff changeset
   168
private:
5164
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   169
  /**
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   170
   * \returns a WifiNetDevice with ready-to-use interface
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   171
   */
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   172
  Ptr<WifiNetDevice> CreateInterface (const WifiPhyHelper &phyHelper, Ptr<Node> node, uint16_t channelId) const;
5163
f1119f03b7a9 Code review fixes
Kirill Andreev <andreev@iitp.ru>
parents: 5141
diff changeset
   173
  uint32_t m_nInterfaces;
f1119f03b7a9 Code review fixes
Kirill Andreev <andreev@iitp.ru>
parents: 5141
diff changeset
   174
  ChannelPolicy m_spreadChannelPolicy;
5081
869b81c5e774 Restructured installers
Kirill Andreev <andreev@iitp.ru>
parents: 5063
diff changeset
   175
  Ptr<MeshStack> m_stack;
869b81c5e774 Restructured installers
Kirill Andreev <andreev@iitp.ru>
parents: 5063
diff changeset
   176
  ObjectFactory m_stackFactory;
5164
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   177
  ///\name Interface factory
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   178
  ///\{
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   179
  ObjectFactory m_mac;
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   180
  ObjectFactory m_stationManager;
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   181
  enum WifiPhyStandard m_standard;
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   182
    ///\}
4812
adcb26652e1d Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents: 4811
diff changeset
   183
};
4872
ea1bce018a44 Added namespace dot11s
Kirill Andreev <andreev@iitp.ru>
parents: 4871
diff changeset
   184
} //namespace ns3
ea1bce018a44 Added namespace dot11s
Kirill Andreev <andreev@iitp.ru>
parents: 4871
diff changeset
   185
5164
b81ab8394a61 Restructured helper - removed MeshInterfaceHelper
Kirill Andreev <andreev@iitp.ru>
parents: 5163
diff changeset
   186
#endif /* MESH_HELPER_H */
4793
4f6a6772628e Merge 802.11s code.
Andrey Mazo <mazo@iitp.ru>
parents:
diff changeset
   187