wifi: Convert WifiCodeRate to enum
This commit is contained in:
@@ -54,6 +54,7 @@ Changes from ns-3.38 to ns-3-dev
|
||||
* (wifi) The QosBlockedDestinations class has been removed and its functionality is now provided via a new framework for blocking/unblocking packets that is based on the queue scheduler.
|
||||
* (internet) The function signature of `Ipv4RoutingProtocol::RouteInput` and `Ipv6RoutingProtocol::RouteInput` have changed. The `UnicastForwardCallback` (ucb), `MulticastForwardCallback` (mcb), `LocalDeliverCallback` (lcb) and `ErrorCallback` (ecb) should now be passed as const references.
|
||||
* (olsr) The defines `OLSR_WILL_*` have been replaced by enum `Willingness`.
|
||||
* (wifi) The `WifiCodeRate` typedef was converted to an enum.
|
||||
|
||||
### Changes to build system
|
||||
|
||||
|
||||
@@ -48,28 +48,73 @@ class WifiMode;
|
||||
class Time;
|
||||
|
||||
/**
|
||||
* \ingroup wifi
|
||||
* These constants define the various convolutional coding rates
|
||||
* used for the OFDM transmission modes in the IEEE 802.11
|
||||
* standard. DSSS (for example) rates which do not have an explicit
|
||||
* coding stage in their generation should have this parameter set to
|
||||
* WIFI_CODE_RATE_UNDEFINED.
|
||||
* \note This typedef and constants could be converted to an enum or scoped
|
||||
* enum if pybindgen is upgraded to support Callback<WifiCodeRate>
|
||||
*/
|
||||
typedef uint16_t WifiCodeRate;
|
||||
const uint16_t WIFI_CODE_RATE_UNDEFINED = 0; //!< undefined coding rate
|
||||
const uint16_t WIFI_CODE_RATE_1_2 = 1; //!< 1/2 coding rate
|
||||
const uint16_t WIFI_CODE_RATE_2_3 = 2; //!< 2/3 coding rate
|
||||
const uint16_t WIFI_CODE_RATE_3_4 = 3; //!< 3/4 coding rate
|
||||
const uint16_t WIFI_CODE_RATE_5_6 = 4; //!< 5/6 coding rate
|
||||
const uint16_t WIFI_CODE_RATE_5_8 = 5; //!< 5/8 coding rate
|
||||
const uint16_t WIFI_CODE_RATE_13_16 = 6; //!< 13/16 coding rate
|
||||
const uint16_t WIFI_CODE_RATE_1_4 = 7; //!< 1/4 coding rate
|
||||
const uint16_t WIFI_CODE_RATE_13_28 = 8; //!< 13/28 coding rate
|
||||
const uint16_t WIFI_CODE_RATE_13_21 = 9; //!< 13/21 coding rate
|
||||
const uint16_t WIFI_CODE_RATE_52_63 = 10; //!< 52/63 coding rate
|
||||
const uint16_t WIFI_CODE_RATE_13_14 = 11; //!< 13/14 coding rate
|
||||
const uint16_t WIFI_CODE_RATE_7_8 = 12; //!< 7/8 coding rate
|
||||
enum WifiCodeRate : uint16_t
|
||||
{
|
||||
WIFI_CODE_RATE_UNDEFINED, //!< undefined coding rate
|
||||
WIFI_CODE_RATE_1_2, //!< 1/2 coding rate
|
||||
WIFI_CODE_RATE_2_3, //!< 2/3 coding rate
|
||||
WIFI_CODE_RATE_3_4, //!< 3/4 coding rate
|
||||
WIFI_CODE_RATE_5_6, //!< 5/6 coding rate
|
||||
WIFI_CODE_RATE_5_8, //!< 5/8 coding rate
|
||||
WIFI_CODE_RATE_13_16, //!< 13/16 coding rate
|
||||
WIFI_CODE_RATE_1_4, //!< 1/4 coding rate
|
||||
WIFI_CODE_RATE_13_28, //!< 13/28 coding rate
|
||||
WIFI_CODE_RATE_13_21, //!< 13/21 coding rate
|
||||
WIFI_CODE_RATE_52_63, //!< 52/63 coding rate
|
||||
WIFI_CODE_RATE_13_14, //!< 13/14 coding rate
|
||||
WIFI_CODE_RATE_7_8, //!< 7/8 coding rate
|
||||
};
|
||||
|
||||
/**
|
||||
* \brief Stream insertion operator.
|
||||
*
|
||||
* \param os the stream
|
||||
* \param codeRate the code rate
|
||||
* \returns a reference to the stream
|
||||
*/
|
||||
inline std::ostream&
|
||||
operator<<(std::ostream& os, const WifiCodeRate& codeRate)
|
||||
{
|
||||
switch (codeRate)
|
||||
{
|
||||
case WIFI_CODE_RATE_UNDEFINED:
|
||||
return (os << "Code rate undefined");
|
||||
case WIFI_CODE_RATE_1_2:
|
||||
return (os << "Code rate 1/2");
|
||||
case WIFI_CODE_RATE_2_3:
|
||||
return (os << "Code rate 2/3");
|
||||
case WIFI_CODE_RATE_3_4:
|
||||
return (os << "Code rate 3/4");
|
||||
case WIFI_CODE_RATE_5_6:
|
||||
return (os << "Code rate 5/6");
|
||||
case WIFI_CODE_RATE_5_8:
|
||||
return (os << "Code rate 5/8");
|
||||
case WIFI_CODE_RATE_13_16:
|
||||
return (os << "Code rate 13/16");
|
||||
case WIFI_CODE_RATE_1_4:
|
||||
return (os << "Code rate 1/4");
|
||||
case WIFI_CODE_RATE_13_28:
|
||||
return (os << "Code rate 13/28");
|
||||
case WIFI_CODE_RATE_13_21:
|
||||
return (os << "Code rate 13/21");
|
||||
case WIFI_CODE_RATE_52_63:
|
||||
return (os << "Code rate 52/63");
|
||||
case WIFI_CODE_RATE_13_14:
|
||||
return (os << "Code rate 13/14");
|
||||
case WIFI_CODE_RATE_7_8:
|
||||
return (os << "Code rate 7/8");
|
||||
default:
|
||||
NS_FATAL_ERROR("Unknown code rate");
|
||||
return (os << "Unknown");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* \ingroup wifi
|
||||
|
||||
Reference in New Issue
Block a user