src/devices/wifi/wifi-net-device.h
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Mon, 25 Feb 2008 19:33:46 +0100
changeset 2470 254581fb9e9c
parent 2284 14b682d28918
child 2503 e667dc0f350e
permissions -rw-r--r--
make NetDevice fully virtual.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     2
/*
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     3
 * Copyright (c) 2005,2006 INRIA
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     4
 *
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as 
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     8
 *
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    12
 * GNU General Public License for more details.
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    13
 *
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    17
 *
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    18
 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    19
 */
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    20
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    21
#ifndef WIFI_NET_DEVICE_H
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    22
#define WIFI_NET_DEVICE_H
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    23
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    24
#include "ns3/net-device.h"
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    25
#include "ns3/packet.h"
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    26
#include "ns3/callback-trace-source.h"
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    27
#include "ns3/mac48-address.h"
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    28
#include "ssid.h"
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    29
#include <string>
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    30
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    31
namespace ns3 {
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    32
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    33
class WifiChannel;
1954
d1fde26bcb1c add WifiNetDevice to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1922
diff changeset
    34
class WifiPhy;
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    35
class MacStations;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    36
class MacLow;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    37
class MacRxMiddle;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    38
class MacTxMiddle;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    39
class MacParameters;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    40
class DcaTxop;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    41
class MacHighAdhoc;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    42
class MacHighNqsta;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    43
class MacHighNqap;
2146
40ad60ac9912 replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2089
diff changeset
    44
class DcfManager;
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    45
2029
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    46
/**
2053
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    47
 * \brief hold the type of trace event generated by 
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    48
 * a WifiNetDevice.
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    49
 */
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    50
class WifiNetDeviceTraceType : public TraceContextElement
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    51
{
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    52
public:
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    53
  enum Type {
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    54
    RX,
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    55
    TX
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    56
  };
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    57
  WifiNetDeviceTraceType ();
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    58
  WifiNetDeviceTraceType (enum Type type);
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    59
  /**
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    60
   * \returns the type of event
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    61
   */
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    62
  enum Type Get (void) const;
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    63
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    64
  static uint16_t GetUid (void);
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    65
  void Print (std::ostream &os) const;
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    66
  std::string GetTypeName (void) const;
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    67
private:
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    68
  enum Type m_type;
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    69
};
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    70
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
    71
/**
2029
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    72
 * \brief the base class for 802.11 network interfaces
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    73
 *
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    74
 */
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    75
class WifiNetDevice : public NetDevice {
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    76
public:
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    77
  virtual ~WifiNetDevice ();
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    78
2029
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    79
  /**
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    80
   * \param channel the channel to connect this 802.11 
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    81
   *        interface to.
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    82
   */
2169
06af4e3c25a2 ConnectTo -> Attach
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2168
diff changeset
    83
  void Attach (Ptr<WifiChannel> channel);
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    84
2029
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    85
  /**
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    86
   * \returns the Mac48Address of this 802.11 interface.
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    87
   *
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    88
   * This method is equivalent to NetDevice::GetAddress. The only
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    89
   * difference is its return type.
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    90
   */
1922
dd18bc29fc3c add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1899
diff changeset
    91
  Mac48Address GetSelfAddress (void) const;
2029
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    92
  /**
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    93
   * \returns the bssid of this 802.11 interface.
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    94
   */
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    95
  virtual Mac48Address GetBssid (void) const = 0;
2029
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    96
  /**
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    97
   * \returns the ssid of this 802.11 interface.
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
    98
   */
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    99
  virtual Ssid GetSsid (void) const = 0;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   100
2470
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   101
  // inherited from NetDevice base class.
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   102
  virtual void SetName(const std::string name);
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   103
  virtual std::string GetName(void) const;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   104
  virtual void SetIfIndex(const uint32_t index);
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   105
  virtual uint32_t GetIfIndex(void) const;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   106
  virtual Ptr<Channel> GetChannel (void) const;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   107
  virtual Address GetAddress (void) const;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   108
  virtual bool SetMtu (const uint16_t mtu);
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   109
  virtual uint16_t GetMtu (void) const;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   110
  virtual bool IsLinkUp (void) const;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   111
  virtual void SetLinkChangeCallback (Callback<void> callback);
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   112
  virtual bool IsBroadcast (void) const;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   113
  virtual Address GetBroadcast (void) const;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   114
  virtual bool IsMulticast (void) const;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   115
  virtual Address GetMulticast (void) const;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   116
  virtual Address MakeMulticastAddress (Ipv4Address multicastGroup) const;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   117
  virtual bool IsPointToPoint (void) const;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   118
  virtual bool Send(Ptr<Packet> packet, const Address& dest, uint16_t protocolNumber);
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   119
  virtual Ptr<Node> GetNode (void) const;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   120
  virtual bool NeedsArp (void) const;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   121
  virtual void SetReceiveCallback (NetDevice::ReceiveCallback cb);
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   122
1964
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1954
diff changeset
   123
private:
2146
40ad60ac9912 replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2089
diff changeset
   124
  class PhyListener;
40ad60ac9912 replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2089
diff changeset
   125
  class NavListener;
40ad60ac9912 replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2089
diff changeset
   126
2284
14b682d28918 add a few comments here and there
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2169
diff changeset
   127
  // inherited from Object
2053
012487e16e31 basic tracing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2029
diff changeset
   128
  virtual Ptr<TraceResolver> GetTraceResolver (void) const;
1964
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1954
diff changeset
   129
  // defined for children
2169
06af4e3c25a2 ConnectTo -> Attach
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2168
diff changeset
   130
  virtual void NotifyAttached (void) = 0;
2159
20f882e85b4a port to Ptr<Packet> branch
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2151
diff changeset
   131
  virtual bool DoSendTo (Ptr<const Packet> packet, const Mac48Address &to) = 0;
1964
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1954
diff changeset
   132
  // private helper
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1954
diff changeset
   133
  void Construct (void);
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   134
2159
20f882e85b4a port to Ptr<Packet> branch
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2151
diff changeset
   135
  CallbackTraceSource<Ptr<const Packet>, Mac48Address> m_rxLogger;
20f882e85b4a port to Ptr<Packet> branch
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2151
diff changeset
   136
  CallbackTraceSource<Ptr<const Packet>, Mac48Address> m_txLogger;
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   137
protected:
2151
7c63780653f2 add constructors to specify the address of a device
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2146
diff changeset
   138
  WifiNetDevice (Ptr<Node> node, Mac48Address self);
2159
20f882e85b4a port to Ptr<Packet> branch
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2151
diff changeset
   139
  void DoForwardUp (Ptr<Packet> packet, const Mac48Address &from);
2284
14b682d28918 add a few comments here and there
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2169
diff changeset
   140
  DcaTxop *CreateDca (uint32_t minCw, uint32_t maxCw, uint32_t aifsn) const;
2470
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   141
  void NotifyLinkUp (void);
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   142
  void NotifyLinkDown (void);
2284
14b682d28918 add a few comments here and there
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2169
diff changeset
   143
  // inherited from Object
1998
41cd4e5694c2 dispose the channel from WifiNetDevice
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1978
diff changeset
   144
  virtual void DoDispose (void);
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   145
1964
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1954
diff changeset
   146
  Ptr<WifiChannel> m_channel;
2054
ba8e810bae4c derive WifiPhy from Object and manage it with a Ptr<>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2053
diff changeset
   147
  Ptr<WifiPhy> m_phy;
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   148
  MacStations *m_stations;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   149
  MacLow *m_low;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   150
  MacRxMiddle *m_rxMiddle;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   151
  MacTxMiddle *m_txMiddle;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   152
  MacParameters *m_parameters;
2146
40ad60ac9912 replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2089
diff changeset
   153
  DcfManager *m_manager;
40ad60ac9912 replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2089
diff changeset
   154
  PhyListener *m_phyListener;
40ad60ac9912 replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2089
diff changeset
   155
  NavListener *m_navListener;
2470
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   156
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   157
  Ptr<Node> m_node;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   158
  Mac48Address m_address;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   159
  NetDevice::ReceiveCallback m_rxCallback;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   160
  uint32_t m_ifIndex;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   161
  std::string m_name;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   162
  bool m_linkUp;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   163
  Callback<void> m_linkChangeCallback;
254581fb9e9c make NetDevice fully virtual.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2284
diff changeset
   164
  uint16_t m_mtu;
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   165
};
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   166
2029
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   167
/**
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   168
 * \brief a 802.11 adhoc network interface
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   169
 *
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   170
 * This network interface is a very simple pass-through 
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   171
 * from the higher layers down to the MAC DCF layer.
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   172
 */
1954
d1fde26bcb1c add WifiNetDevice to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1922
diff changeset
   173
class AdhocWifiNetDevice : public WifiNetDevice {
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   174
public:
2151
7c63780653f2 add constructors to specify the address of a device
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2146
diff changeset
   175
  AdhocWifiNetDevice (Ptr<Node> node, Mac48Address self);
1954
d1fde26bcb1c add WifiNetDevice to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1922
diff changeset
   176
  virtual ~AdhocWifiNetDevice ();
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   177
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   178
  virtual Mac48Address GetBssid (void) const;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   179
  virtual Ssid GetSsid (void) const;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   180
  void SetSsid (Ssid ssid);
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   181
2002
32903f9a7315 add dispose methods in subclasses of WifiNetDevice
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1998
diff changeset
   182
protected:
2284
14b682d28918 add a few comments here and there
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2169
diff changeset
   183
  // inherited from Object
2002
32903f9a7315 add dispose methods in subclasses of WifiNetDevice
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1998
diff changeset
   184
  virtual void DoDispose (void);
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   185
private:
2151
7c63780653f2 add constructors to specify the address of a device
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2146
diff changeset
   186
  void DoConstruct (void);
1964
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1954
diff changeset
   187
  void ForwardUp (void);
2284
14b682d28918 add a few comments here and there
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2169
diff changeset
   188
  // inherited from WifiNetDefice
2159
20f882e85b4a port to Ptr<Packet> branch
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2151
diff changeset
   189
  virtual bool DoSendTo (Ptr<const Packet> packet, Mac48Address const & to);
2169
06af4e3c25a2 ConnectTo -> Attach
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2168
diff changeset
   190
  virtual void NotifyAttached (void);
1964
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1954
diff changeset
   191
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   192
  Ssid m_ssid;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   193
  DcaTxop *m_dca;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   194
  MacHighAdhoc *m_high;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   195
};
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   196
2029
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   197
/**
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   198
 * \brief a 802.11 STA network interface 
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   199
 *
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   200
 * This network interface implements the MAC-level STA 
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   201
 * active probing, association, and disassociation prototols.
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   202
 *
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   203
 * By default, it starts a new probing phase whenever a new 
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   204
 * data packet must be sent and the STA is not yet associated
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   205
 * to the AP.
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   206
 */
1954
d1fde26bcb1c add WifiNetDevice to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1922
diff changeset
   207
class NqstaWifiNetDevice : public WifiNetDevice 
d1fde26bcb1c add WifiNetDevice to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1922
diff changeset
   208
{
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   209
public:
2059
d8b7b2de044e doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2054
diff changeset
   210
  /**
d8b7b2de044e doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2054
diff changeset
   211
   * The ssid is initialized from \valueref{WifiSsid}.
d8b7b2de044e doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2054
diff changeset
   212
   */
2151
7c63780653f2 add constructors to specify the address of a device
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2146
diff changeset
   213
  NqstaWifiNetDevice (Ptr<Node> node, Mac48Address self);
1954
d1fde26bcb1c add WifiNetDevice to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1922
diff changeset
   214
  virtual ~NqstaWifiNetDevice ();
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   215
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   216
  virtual Mac48Address GetBssid (void) const;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   217
  virtual Ssid GetSsid (void) const;
2029
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   218
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   219
  /**
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   220
   * \param ssid the ssid we want to associate with
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   221
   *
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   222
   * Start a new active probing phase with the specified
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   223
   * ssid.
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   224
   */
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   225
  void StartActiveAssociation (Ssid ssid);
2002
32903f9a7315 add dispose methods in subclasses of WifiNetDevice
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1998
diff changeset
   226
protected:
2284
14b682d28918 add a few comments here and there
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2169
diff changeset
   227
  // inherited from Object
2002
32903f9a7315 add dispose methods in subclasses of WifiNetDevice
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1998
diff changeset
   228
  virtual void DoDispose (void);
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   229
private:
2151
7c63780653f2 add constructors to specify the address of a device
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2146
diff changeset
   230
  void DoConstruct (void);
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   231
  void Associated (void);
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   232
  void DisAssociated (void);
2284
14b682d28918 add a few comments here and there
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2169
diff changeset
   233
  // inherited from WifiNetDefice
2159
20f882e85b4a port to Ptr<Packet> branch
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2151
diff changeset
   234
  virtual bool DoSendTo (Ptr<const Packet> packet, Mac48Address const & to);
2169
06af4e3c25a2 ConnectTo -> Attach
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2168
diff changeset
   235
  virtual void NotifyAttached (void);
2284
14b682d28918 add a few comments here and there
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2169
diff changeset
   236
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   237
  Ssid m_ssid;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   238
  DcaTxop *m_dca;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   239
  MacHighNqsta *m_high;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   240
};
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   241
2029
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   242
/**
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   243
 * \brief a 802.11 AP network interface
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   244
 *
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   245
 * This network interface implements the MAC-level
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   246
 * AP-side of the beacon, probing, and, association
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   247
 * protocols. By default, every STA which tries
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   248
 * to associate is accepted.
234f9a8c49af basic doxygen documentation for users
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2002
diff changeset
   249
 */
1954
d1fde26bcb1c add WifiNetDevice to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1922
diff changeset
   250
class NqapWifiNetDevice : public WifiNetDevice 
d1fde26bcb1c add WifiNetDevice to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1922
diff changeset
   251
{
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   252
public:
2059
d8b7b2de044e doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2054
diff changeset
   253
  /**
d8b7b2de044e doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2054
diff changeset
   254
   * The ssid is initialized from \valueref{WifiSsid}.
d8b7b2de044e doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2054
diff changeset
   255
   */
1954
d1fde26bcb1c add WifiNetDevice to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1922
diff changeset
   256
  NqapWifiNetDevice (Ptr<Node> node);
2151
7c63780653f2 add constructors to specify the address of a device
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2146
diff changeset
   257
  NqapWifiNetDevice (Ptr<Node> node, Mac48Address self);
1954
d1fde26bcb1c add WifiNetDevice to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1922
diff changeset
   258
  virtual ~NqapWifiNetDevice ();
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   259
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   260
  virtual Mac48Address GetBssid (void) const;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   261
  virtual Ssid GetSsid (void) const;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   262
  void SetSsid (Ssid ssid);
2089
f6d8dea92b39 implement AP beaconing
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2059
diff changeset
   263
  void StartBeaconing (void);
2002
32903f9a7315 add dispose methods in subclasses of WifiNetDevice
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1998
diff changeset
   264
protected:
2284
14b682d28918 add a few comments here and there
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2169
diff changeset
   265
  // inherited from Object
2002
32903f9a7315 add dispose methods in subclasses of WifiNetDevice
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1998
diff changeset
   266
  virtual void DoDispose (void);
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   267
private:
2151
7c63780653f2 add constructors to specify the address of a device
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2146
diff changeset
   268
  void DoConstruct (void);
2284
14b682d28918 add a few comments here and there
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2169
diff changeset
   269
  // inherited from WifiNetDefice
2159
20f882e85b4a port to Ptr<Packet> branch
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2151
diff changeset
   270
  virtual bool DoSendTo (Ptr<const Packet> packet, Mac48Address const & to);
2169
06af4e3c25a2 ConnectTo -> Attach
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2168
diff changeset
   271
  virtual void NotifyAttached (void);
2284
14b682d28918 add a few comments here and there
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2169
diff changeset
   272
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   273
  Ssid m_ssid;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   274
  DcaTxop *m_dca;
2089
f6d8dea92b39 implement AP beaconing
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2059
diff changeset
   275
  DcaTxop *m_beaconDca;
1899
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   276
  MacHighNqap *m_high;
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   277
};
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   278
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   279
} // namespace ns3
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   280
f601585e8e89 add missing header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   281
#endif /* WIFI_NET_DEVICE_H */