src/devices/wimax/wimax-net-device.h
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Sat, 10 Apr 2010 13:45:09 -0700
changeset 6183 8a5e1f9db873
parent 6128 f448586c0e52
permissions -rw-r--r--
[bug 822] Move Mtu attribute from NetDevice base class to subclasses
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6111
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
     2
/*
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
     3
 * Copyright (c) 2007,2008, 2009 INRIA, UDcast
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
     4
 *
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
     8
 *
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    12
 * GNU General Public License for more details.
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    13
 *
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    17
 *
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    18
 * Authors: Jahanzeb Farooq <jahanzeb.farooq@sophia.inria.fr>
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    19
 *          Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    20
 */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    21
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    22
#ifndef WIMAX_NET_DEVICE_H
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    23
#define WIMAX_NET_DEVICE_H
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    24
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    25
#include "ns3/net-device.h"
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    26
#include "ns3/event-id.h"
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    27
#include "ns3/mac48-address.h"
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    28
#include "cid.h"
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    29
#include "wimax-connection.h"
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    30
#include "cid-factory.h"
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    31
#include "mac-messages.h"
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    32
#include "dl-mac-messages.h"
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    33
#include "ul-mac-messages.h"
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    34
#include "ns3/traced-callback.h"
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    35
#include "ns3/nstime.h"
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    36
#include "ns3/log.h"
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    37
#include "wimax-phy.h"
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    38
#include "wimax-mac-header.h"
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    39
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    40
namespace ns3 {
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    41
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    42
class Node;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    43
class Packet;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    44
class TraceContext;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    45
class TraceResolver;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    46
class Channel;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    47
class WimaxChannel;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    48
class PacketBurst;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    49
class BurstProfileManager;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    50
class ConnectionManager;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    51
class ServiceFlowManager;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    52
class BandwidthManager;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    53
class UplinkScheduler;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    54
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    55
class WimaxNetDevice : public NetDevice
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    56
{
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    57
public:
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    58
  enum Direction
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    59
  {
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    60
    DIRECTION_DOWNLINK, DIRECTION_UPLINK
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    61
  };
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    62
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    63
  enum RangingStatus
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    64
  {
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    65
    RANGING_STATUS_EXPIRED, RANGING_STATUS_CONTINUE, RANGING_STATUS_ABORT, RANGING_STATUS_SUCCESS
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    66
  };
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    67
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    68
  static TypeId GetTypeId (void);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    69
  WimaxNetDevice (void);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    70
  virtual ~WimaxNetDevice (void);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    71
  /**
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    72
   * \param ttg transmit/receive transition gap
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    73
   */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    74
  void SetTtg (uint16_t ttg);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    75
  /**
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    76
   * \returns transmit/receive transition gap
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    77
   */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    78
  uint16_t GetTtg (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    79
  /**
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    80
   * \param rtg receive/transmit transition gap
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    81
   */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    82
  void SetRtg (uint16_t rtg);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    83
  /**
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    84
   * \returns receive/transmit transition gap
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    85
   */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    86
  uint16_t GetRtg (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    87
  void Attach (Ptr<WimaxChannel> channel);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    88
  /**
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    89
   * \param phy the phy layer to use.
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    90
   */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    91
  void SetPhy (Ptr<WimaxPhy> phy);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    92
  /**
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    93
   * \returns a pointer to the physical layer.
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    94
   */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    95
  Ptr<WimaxPhy> GetPhy (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    96
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    97
  /**
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    98
   * \param wimaxChannel the channel to be used
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
    99
   */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   100
  void SetChannel (Ptr<WimaxChannel> wimaxChannel);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   101
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   102
  uint64_t GetChannel (uint8_t index) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   103
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   104
  void SetNrFrames (uint32_t nrFrames);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   105
  uint32_t GetNrFrames (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   106
  /**
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   107
   * \param address the mac address of the net device
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   108
   */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   109
  void SetMacAddress (Mac48Address address);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   110
  /**
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   111
   * \returns the mac address of the net device
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   112
   */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   113
  Mac48Address GetMacAddress (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   114
  void SetState (uint8_t state);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   115
  uint8_t GetState (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   116
  /**
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   117
   * \returns the initial ranging connection
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   118
   */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   119
  Ptr<WimaxConnection> GetInitialRangingConnection (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   120
  /**
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   121
    * \returns the broadcast connection
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   122
    */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   123
  Ptr<WimaxConnection> GetBroadcastConnection (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   124
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   125
  void SetCurrentDcd (Dcd dcd);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   126
  Dcd GetCurrentDcd (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   127
  void SetCurrentUcd (Ucd ucd);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   128
  Ucd GetCurrentUcd (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   129
  /**
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   130
   * \returns the connection manager of the device
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   131
   */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   132
  Ptr<ConnectionManager> GetConnectionManager (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   133
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   134
  /**
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   135
   * \param  connectionManager the commection manager to be installed in the device
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   136
   */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   137
  virtual void SetConnectionManager (Ptr<ConnectionManager> connectionManager );
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   138
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   139
  /**
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   140
   * \returns the burst profile manager currently installed in the device
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   141
   */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   142
  Ptr<BurstProfileManager> GetBurstProfileManager (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   143
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   144
  /**
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   145
   * \param burstProfileManager the burst profile manager to be installed on the device
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   146
   */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   147
  void SetBurstProfileManager (Ptr<BurstProfileManager> burstProfileManager);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   148
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   149
  /**
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   150
   * \returns the bandwidth manager installed on the device
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   151
   */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   152
  Ptr<BandwidthManager> GetBandwidthManager (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   153
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   154
  /**
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   155
   * \param bandwidthManager the bandwidth manager to be installed on the device
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   156
   */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   157
  void SetBandwidthManager (Ptr<BandwidthManager> bandwidthManager);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   158
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   159
  /*
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   160
   * \brief Creates the initial ranging and broadcast connections
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   161
   */
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   162
  void CreateDefaultConnections (void);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   163
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   164
  virtual void Start (void) = 0;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   165
  virtual void Stop (void) = 0;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   166
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   167
  void SetReceiveCallback (void);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   168
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   169
  void ForwardUp (Ptr<Packet> packet, const Mac48Address &source, const Mac48Address &dest);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   170
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   171
  virtual bool Enqueue (Ptr<Packet> packet, const MacHeaderType &hdrType, Ptr<WimaxConnection> connection) = 0;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   172
  void ForwardDown (Ptr<PacketBurst> burst, WimaxPhy::ModulationType modulationType);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   173
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   174
  // temp, shall be private
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   175
  static uint8_t m_direction; // downlink or uplink
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   176
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   177
  static Time m_frameStartTime; // temp, to determine the frame start time at SS side, shall actually be determined by frame start preamble
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   178
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   179
  virtual void SetName (const std::string name);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   180
  virtual std::string GetName (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   181
  virtual void SetIfIndex (const uint32_t index);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   182
  virtual uint32_t GetIfIndex (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   183
  virtual Ptr<Channel> GetPhyChannel (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   184
  virtual Ptr<Channel> GetChannel (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   185
  virtual void SetAddress (Address address);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   186
  virtual Address GetAddress (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   187
  virtual bool SetMtu (const uint16_t mtu);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   188
  virtual uint16_t GetMtu (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   189
  virtual bool IsLinkUp (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   190
  virtual void SetLinkChangeCallback (Callback<void> callback);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   191
  virtual bool IsBroadcast (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   192
  virtual Address GetBroadcast (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   193
  virtual bool IsMulticast (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   194
  virtual Address GetMulticast (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   195
  virtual Address MakeMulticastAddress (Ipv4Address multicastGroup) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   196
  virtual bool IsPointToPoint (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   197
  virtual bool Send (Ptr<Packet> packet, const Address& dest, uint16_t protocolNumber);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   198
  virtual void SetNode (Ptr<Node> node);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   199
  virtual Ptr<Node> GetNode (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   200
  virtual bool NeedsArp (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   201
  virtual void SetReceiveCallback (NetDevice::ReceiveCallback cb);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   202
  virtual void AddLinkChangeCallback (Callback<void> callback);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   203
  virtual bool SendFrom (Ptr<Packet> packet, const Address& source, const Address& dest, uint16_t protocolNumber);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   204
  virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   205
  NetDevice::PromiscReceiveCallback GetPromiscReceiveCallback (void);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   206
  virtual bool SupportsSendFrom (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   207
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   208
  TracedCallback<Ptr<const Packet>, const Mac48Address&> m_traceRx;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   209
  TracedCallback<Ptr<const Packet>, const Mac48Address&> m_traceTx;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   210
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   211
  virtual void DoDispose (void);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   212
  virtual Address GetMulticast (Ipv6Address addr) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   213
  virtual Address GetMulticast (Ipv4Address multicastGroup) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   214
  virtual bool IsBridge (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   215
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   216
  bool IsPromisc (void);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   217
  void NotifyPromiscTrace (Ptr<Packet> p);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   218
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   219
private:
6128
f448586c0e52 Remove declared but not implemented methods, privatize copy-contructors where appropriate
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 6111
diff changeset
   220
  WimaxNetDevice (const WimaxNetDevice &);
f448586c0e52 Remove declared but not implemented methods, privatize copy-contructors where appropriate
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 6111
diff changeset
   221
  WimaxNetDevice & operator= (const WimaxNetDevice &);
f448586c0e52 Remove declared but not implemented methods, privatize copy-contructors where appropriate
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 6111
diff changeset
   222
6183
8a5e1f9db873 [bug 822] Move Mtu attribute from NetDevice base class to subclasses
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 6128
diff changeset
   223
  static const uint16_t MAX_MSDU_SIZE = 1500;
8a5e1f9db873 [bug 822] Move Mtu attribute from NetDevice base class to subclasses
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 6128
diff changeset
   224
  // recommended by wimax forum.
8a5e1f9db873 [bug 822] Move Mtu attribute from NetDevice base class to subclasses
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 6128
diff changeset
   225
  static const uint16_t DEFAULT_MSDU_SIZE = 1400;
8a5e1f9db873 [bug 822] Move Mtu attribute from NetDevice base class to subclasses
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 6128
diff changeset
   226
6111
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   227
  virtual bool DoSend (Ptr<Packet> packet,
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   228
                       const Mac48Address& source,
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   229
                       const Mac48Address& dest,
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   230
                       uint16_t protocolNumber) = 0;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   231
  virtual void DoReceive (Ptr<Packet> packet) = 0;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   232
  virtual Ptr<WimaxChannel> DoGetChannel (void) const;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   233
  void Receive (Ptr<const PacketBurst> burst);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   234
  void InitializeChannels (void);
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   235
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   236
  Ptr<Node> m_node;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   237
  Ptr<WimaxPhy> m_phy;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   238
  NetDevice::ReceiveCallback m_forwardUp;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   239
  NetDevice::PromiscReceiveCallback m_promiscRx;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   240
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   241
  uint32_t m_ifIndex;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   242
  std::string m_name;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   243
  bool m_linkUp;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   244
  Callback<void> m_linkChange;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   245
  mutable uint16_t m_mtu;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   246
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   247
  // temp, shall be in BS. defined here to allow SS to access. SS shall actually determine it from DLFP, shall be moved to BS after DLFP is implemented
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   248
  static uint32_t m_nrFrames;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   249
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   250
  // not sure if it shall be included here
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   251
  std::vector<uint64_t> m_dlChannels;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   252
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   253
  Mac48Address m_address;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   254
  uint8_t m_state;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   255
  uint32_t m_symbolIndex;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   256
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   257
  // length of TTG and RTG, in units of PSs
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   258
  uint16_t m_ttg;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   259
  uint16_t m_rtg;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   260
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   261
  Dcd m_currentDcd;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   262
  Ucd m_currentUcd;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   263
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   264
  Ptr<WimaxConnection> m_initialRangingConnection;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   265
  Ptr<WimaxConnection> m_broadcastConnection;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   266
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   267
  Ptr<ConnectionManager> m_connectionManager;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   268
  Ptr<BurstProfileManager> m_burstProfileManager;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   269
  Ptr<BandwidthManager> m_bandwidthManager;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   270
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   271
  Ptr<Object> m_mobility;
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   272
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   273
};
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   274
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   275
} // namespace ns3
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   276
0b22ae082153 Merge WiMAX module
Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
parents:
diff changeset
   277
#endif /* WIMAX_NET_DEVICE_H */