src/devices/wifi/mac-high-nqsta.h
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Mon, 17 Dec 2007 13:41:51 +0100
changeset 2285 7c716f6fc4de
parent 2159 20f882e85b4a
child 2350 0b54480c4fd1
permissions -rw-r--r--
doxygen
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1948
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     2
/*
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     3
 * Copyright (c) 2005,2006 INRIA
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     4
 *
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as 
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     8
 *
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    12
 * GNU General Public License for more details.
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    13
 *
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    17
 *
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    18
 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    19
 */
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    20
#ifndef MAC_HIGH_NQSTA_H
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    21
#define MAC_HIGH_NQSTA_H
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    22
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    23
#include <stdint.h>
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    24
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    25
#include "ns3/mac48-address.h"
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    26
#include "ns3/callback.h"
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    27
#include "ns3/event-id.h"
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    28
#include "ns3/packet.h"
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    29
#include "ns3/nstime.h"
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    30
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    31
#include "supported-rates.h"
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    32
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    33
namespace ns3 {
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    34
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    35
class WifiMacHeader;
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    36
class WifiNetDevice;
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    37
class DcaTxop;
2009
afed751cc0b5 dynamically update the list of supported rates based on the ap supported rates
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1964
diff changeset
    38
class WifiPhy;
afed751cc0b5 dynamically update the list of supported rates based on the ap supported rates
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1964
diff changeset
    39
class MacStations;
1948
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    40
2285
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    41
/**
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    42
 * \brief a non-QoS STA state machine
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    43
 *
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    44
 * This state machine handles association, disassociation,
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    45
 * authentication and beacon monitoring. It does not perform
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    46
 * channel scanning.
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    47
 * If the station detects a certain number of missed beacons
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    48
 * while associated, it automatically attempts a new association
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    49
 * sequence.
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    50
 */
1948
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    51
class MacHighNqsta {
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    52
public:
2159
20f882e85b4a port to Ptr<Packet> branch
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2054
diff changeset
    53
  typedef Callback<void, Ptr<Packet>, const Mac48Address &> ForwardCallback;
1948
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    54
  typedef Callback<void> AssociatedCallback;
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    55
  typedef Callback<void> DisAssociatedCallback;
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    56
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    57
  MacHighNqsta ();
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    58
  ~MacHighNqsta ();
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    59
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    60
  void SetDcaTxop (DcaTxop *dca);
1964
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1952
diff changeset
    61
  void SetDevice (WifiNetDevice *device);
1948
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    62
  void SetForwardCallback (ForwardCallback callback);
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    63
  void SetAssociatedCallback (AssociatedCallback callback);
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    64
  void SetDisAssociatedCallback (DisAssociatedCallback callback);
2054
ba8e810bae4c derive WifiPhy from Object and manage it with a Ptr<>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2009
diff changeset
    65
  void SetPhy (Ptr<WifiPhy> phy);
2009
afed751cc0b5 dynamically update the list of supported rates based on the ap supported rates
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1964
diff changeset
    66
  void SetStations (MacStations *stations);
1948
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    67
2285
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    68
  /**
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    69
   * \param missed the number of beacons which must be missed
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    70
   * before a new association sequence is started.
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    71
   */
1948
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    72
  void SetMaxMissedBeacons (uint32_t missed);
2285
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    73
  /**
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    74
   * \param timeout
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    75
   *
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    76
   * If no probe response is received within the specified
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    77
   * timeout, the station sends a new probe request.
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    78
   */
1948
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    79
  void SetProbeRequestTimeout (Time timeout);
2285
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    80
  /**
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    81
   * \param timeout
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    82
   *
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    83
   * If no association response is received within the specified
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    84
   * timeout, the station sends a new association request.
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    85
   */
1948
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    86
  void SetAssocRequestTimeout (Time timeout);
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    87
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    88
  Mac48Address GetBssid (void) const;
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    89
2285
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    90
  /**
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    91
   * Start an active association sequence immediately.
7c716f6fc4de doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2159
diff changeset
    92
   */
1948
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    93
  void StartActiveAssociation (void);
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    94
2159
20f882e85b4a port to Ptr<Packet> branch
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2054
diff changeset
    95
  void Queue (Ptr<const Packet> packet, Mac48Address to);
1948
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    96
2159
20f882e85b4a port to Ptr<Packet> branch
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2054
diff changeset
    97
  void Receive (Ptr<Packet> packet, WifiMacHeader const *hdr);
1948
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    98
private:
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    99
  void SetBssid (Mac48Address bssid);
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   100
  Mac48Address GetBroadcastBssid (void);
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   101
  void SendProbeRequest (void);
2009
afed751cc0b5 dynamically update the list of supported rates based on the ap supported rates
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1964
diff changeset
   102
  void SendAssociationRequest (void);
1948
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   103
  void TryToEnsureAssociated (void);
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   104
  void AssocRequestTimeout (void);
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   105
  void ProbeRequestTimeout (void);
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   106
  bool IsAssociated (void);
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   107
  void MissedBeacons (void);
1952
2ad2630756e3 do not use the Watchdog class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1948
diff changeset
   108
  void RestartBeaconWatchdog (Time delay);
2009
afed751cc0b5 dynamically update the list of supported rates based on the ap supported rates
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1964
diff changeset
   109
  SupportedRates GetSupportedRates (void) const;
1948
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   110
  enum {
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   111
    ASSOCIATED,
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   112
    WAIT_PROBE_RESP,
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   113
    WAIT_ASSOC_RESP,
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   114
    BEACON_MISSED,
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   115
    REFUSED
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   116
  } m_state;
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   117
  Time m_probeRequestTimeout;
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   118
  Time m_assocRequestTimeout;
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   119
  EventId m_probeRequestEvent;
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   120
  EventId m_assocRequestEvent;
1964
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1952
diff changeset
   121
  WifiNetDevice *m_device;
1948
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   122
  ForwardCallback m_forward;
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   123
  AssociatedCallback m_associatedCallback;
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   124
  DisAssociatedCallback m_disAssociatedCallback;
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   125
  DcaTxop *m_dca;
1952
2ad2630756e3 do not use the Watchdog class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1948
diff changeset
   126
  EventId m_beaconWatchdog;
2ad2630756e3 do not use the Watchdog class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1948
diff changeset
   127
  Time m_beaconWatchdogEnd;
1948
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   128
  Mac48Address m_bssid;
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   129
  uint32_t m_maxMissedBeacons;
2054
ba8e810bae4c derive WifiPhy from Object and manage it with a Ptr<>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2009
diff changeset
   130
  Ptr<WifiPhy> m_phy;
2009
afed751cc0b5 dynamically update the list of supported rates based on the ap supported rates
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1964
diff changeset
   131
  MacStations *m_stations;
1948
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   132
};
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   133
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   134
} // namespace ns3
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   135
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   136
0559cd5e7a11 build STA code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   137
#endif /* MAC_HIGH_NQSTA_H */