This commit is contained in:
Mathieu Lacage
2007-12-17 13:41:51 +01:00
parent 30bbef4b14
commit f043a8789c
4 changed files with 60 additions and 5 deletions

View File

@@ -33,6 +33,13 @@ class WifiMacHeader;
class MacStations;
class WifiPhy;
/**
* \brief the Adhoc state machine
*
* For now, this class is really empty but it should contain
* the code for the distributed generation of beacons in an adhoc
* network.
*/
class MacHighAdhoc {
public:
typedef Callback<void, Ptr<Packet>, const Mac48Address &> ForwardCallback;

View File

@@ -35,6 +35,18 @@ class DcaTxop;
class MacStations;
class WifiPhy;
/**
* \brief non-QoS AP state machine
*
* Handle association, dis-association and authentication,
* of STAs within an IBSS.
* This class uses two output queues, each of which is server by
* a single DCF
* - the highest priority DCF serves the queue which contains
* only beacons.
* - the lowest priority DCF serves the queue which contains all
* other frames, including user data frames.
*/
class MacHighNqap {
public:
typedef Callback<void, Ptr<Packet>, const Mac48Address &> ForwardCallback;
@@ -52,6 +64,9 @@ public:
void Queue (Ptr<const Packet> packet, Mac48Address to);
/**
* Start beacon transmission immediately.
*/
void StartBeaconing (void);
void Receive (Ptr<Packet> packet, WifiMacHeader const *hdr);

View File

@@ -38,6 +38,16 @@ class DcaTxop;
class WifiPhy;
class MacStations;
/**
* \brief a non-QoS STA state machine
*
* This state machine handles association, disassociation,
* authentication and beacon monitoring. It does not perform
* channel scanning.
* If the station detects a certain number of missed beacons
* while associated, it automatically attempts a new association
* sequence.
*/
class MacHighNqsta {
public:
typedef Callback<void, Ptr<Packet>, const Mac48Address &> ForwardCallback;
@@ -55,12 +65,31 @@ public:
void SetPhy (Ptr<WifiPhy> phy);
void SetStations (MacStations *stations);
/**
* \param missed the number of beacons which must be missed
* before a new association sequence is started.
*/
void SetMaxMissedBeacons (uint32_t missed);
/**
* \param timeout
*
* If no probe response is received within the specified
* timeout, the station sends a new probe request.
*/
void SetProbeRequestTimeout (Time timeout);
/**
* \param timeout
*
* If no association response is received within the specified
* timeout, the station sends a new association request.
*/
void SetAssocRequestTimeout (Time timeout);
Mac48Address GetBssid (void) const;
/**
* Start an active association sequence immediately.
*/
void StartActiveAssociation (void);
void Queue (Ptr<const Packet> packet, Mac48Address to);

View File

@@ -20,21 +20,23 @@
* - a simple adhoc state machine which does not perform any
* kind of beacon generation, probing, or association. This
* state machine is implemented by the ns3::AdhocWifiNetDevice
* class.
* and ns3::MacHighAdhoc classes.
* - an active probing and association state machine which handles
* automatic re-association whenever too many beacons are missed
* is implemented by the ns3::NqstaWifiNetDevice class.
* is implemented by the ns3::NqstaWifiNetDevice and
* ns3::MacHighNqsta classes.
* - an access point which generates periodic beacons, and which
* accepts every attempt to associate. This AP state machine
* is implemented by the ns3::NqapWifiNetDevice.
* is implemented by the ns3::NqapWifiNetDevice and
* ns3::MacHighNqap classes.
*
* The MAC low layer is split in 3 components:
* - ns3::MacLow which takes care of RTS/CTS/DATA/ACK transactions.
* - ns3::Dcf which implements the DCF function.
* - ns3::DcfManager and ns3::DcfState which implements the DCF function.
* - ns3::DcaTxop which handles the packet queue, packet fragmentation,
* and packet retransmissions if they are needed.
*
* The PHY layer implements a single model in ns3::WifiPhy.
* The PHY layer implements a single model in the ns3::WifiPhy class.
*
* It also provides a set of Rate control algorithms:
* - ns3::ArfMacStations (initialized from \valueref{WifiArfTimerThreshold}, and,
@@ -45,6 +47,8 @@
* - ns3::IdealMacStations (initialized from \valueref{WifiIdealRateControlBerThreshold})
* - ns3::CrMacStations (initialized from \valueref{WifiConstantDataRate}, and,
* \valueref{WifiConstantCtlRate}).
* - ns3::OnoeMacStations
* - ns3::AmrrMacStations
*
* The type of rate control algorithm is controlled through \valueref{WifiRateControlAlgorithm}.
*