View | Details | Raw Unified | Return to bug 3021
Collapse All | Expand All

(-)a/CHANGES.html (+1 lines)
 Lines 61-66   us a note on ns-developers mailing list.</p> Link Here 
61
</li>
61
</li>
62
<li>New attributes <b>QosTxop::AddBaResponseTimeout</b> and <b>QosTxop::FailedAddBaTimeout</b> have been added to set the timeout to wait for an ADDBA response after the ACK to the ADDBA request is received and to set the timeout after a failed BA agreement, respectively.
62
<li>New attributes <b>QosTxop::AddBaResponseTimeout</b> and <b>QosTxop::FailedAddBaTimeout</b> have been added to set the timeout to wait for an ADDBA response after the ACK to the ADDBA request is received and to set the timeout after a failed BA agreement, respectively.
63
</li>
63
</li>
64
  <li> Added a new trace source <b>EndOfHePreamble</b> in WifiPhy for tracing end of preamble (after training fields) for received 802.11ax packets.</li>
64
</ul>
65
</ul>
65
<h2>Changes to existing API:</h2>
66
<h2>Changes to existing API:</h2>
66
<ul>
67
<ul>
(-)a/src/wifi/model/wifi-phy.cc (+17 lines)
 Lines 358-363   WifiPhy::GetTypeId (void) Link Here 
358
                     "in monitor mode to sniff all frames being transmitted",
358
                     "in monitor mode to sniff all frames being transmitted",
359
                     MakeTraceSourceAccessor (&WifiPhy::m_phyMonitorSniffTxTrace),
359
                     MakeTraceSourceAccessor (&WifiPhy::m_phyMonitorSniffTxTrace),
360
                     "ns3::WifiPhy::MonitorSnifferTxTracedCallback")
360
                     "ns3::WifiPhy::MonitorSnifferTxTracedCallback")
361
    .AddTraceSource ("EndOfHePreamble",
362
                     "Trace source indicating the end of the 802.11ax preamble (after training fields)",
363
                     MakeTraceSourceAccessor (&WifiPhy::m_phyEndOfHePreambleTrace),
364
                     "ns3::WifiPhy::EndOfHePreambleTracedCallback")
361
  ;
365
  ;
362
  return tid;
366
  return tid;
363
}
367
}
 Lines 2357-2362   WifiPhy::NotifyMonitorSniffTx (Ptr<const Packet> packet, uint16_t channelFreqMhz Link Here 
2357
}
2361
}
2358
2362
2359
void
2363
void
2364
WifiPhy::NotifyEndOfHePreamble (HePreambleParameters params)
2365
{
2366
  m_phyEndOfHePreambleTrace (params);
2367
}
2368
2369
void
2360
WifiPhy::SendPacket (Ptr<const Packet> packet, WifiTxVector txVector, MpduType mpdutype)
2370
WifiPhy::SendPacket (Ptr<const Packet> packet, WifiTxVector txVector, MpduType mpdutype)
2361
{
2371
{
2362
  NS_LOG_FUNCTION (this << packet << txVector.GetMode ()
2372
  NS_LOG_FUNCTION (this << packet << txVector.GetMode ()
 Lines 2627-2632   WifiPhy::StartReceivePacket (Ptr<Packet> packet, Link Here 
2627
        {
2637
        {
2628
          NS_LOG_DEBUG ("receiving plcp payload"); //endReceive is already scheduled
2638
          NS_LOG_DEBUG ("receiving plcp payload"); //endReceive is already scheduled
2629
          m_plcpSuccess = true;
2639
          m_plcpSuccess = true;
2640
          if (txVector.GetMode ().GetModulationClass () == WIFI_MOD_CLASS_HE)
2641
            {
2642
              HePreambleParameters params;
2643
              params.rssiW = event->GetRxPowerW ();
2644
              params.bssColor = txVector.GetBssColor ();
2645
              NotifyEndOfHePreamble (params);
2646
            }
2630
        }
2647
        }
2631
      else //mode is not allowed
2648
      else //mode is not allowed
2632
        {
2649
        {
(-)a/src/wifi/model/wifi-phy.h (+29 lines)
 Lines 58-63   struct MpduInfo Link Here 
58
  uint32_t mpduRefNumber; ///< MPDU ref number
58
  uint32_t mpduRefNumber; ///< MPDU ref number
59
};
59
};
60
60
61
// Parameters for receive HE preamble
62
struct HePreambleParameters
63
{
64
  double rssiW; ///< RSSI in W
65
  uint8_t bssColor; ///< BSS color
66
};
67
61
/**
68
/**
62
 * \brief 802.11 PHY layer model
69
 * \brief 802.11 PHY layer model
63
 * \ingroup wifi
70
 * \ingroup wifi
 Lines 1196-1201   public: Link Here 
1196
                                            MpduInfo aMpdu);
1203
                                            MpduInfo aMpdu);
1197
1204
1198
  /**
1205
  /**
1206
   * Public method used to fire a EndOfHePreamble trace once both HE SIG fields have been received, as well as training fields.
1207
   *
1208
   * \param params the HE preamble parameters
1209
   */
1210
  void NotifyEndOfHePreamble (HePreambleParameters params);
1211
1212
  /**
1213
   * TracedCallback signature for end of HE-SIG-A events.
1214
   *
1215
   *
1216
   * \param params the HE preamble parameters
1217
   */
1218
  typedef void (* EndOfHePreambleCallback)(HePreambleParameters params);
1219
1220
  /**
1199
   * Assign a fixed random variable stream number to the random variables
1221
   * Assign a fixed random variable stream number to the random variables
1200
   * used by this model. Return the number of streams (possibly zero) that
1222
   * used by this model. Return the number of streams (possibly zero) that
1201
   * have been assigned.
1223
   * have been assigned.
 Lines 1736-1741   private: Link Here 
1736
  TracedCallback<Ptr<const Packet>, uint16_t, WifiTxVector, MpduInfo> m_phyMonitorSniffTxTrace;
1758
  TracedCallback<Ptr<const Packet>, uint16_t, WifiTxVector, MpduInfo> m_phyMonitorSniffTxTrace;
1737
1759
1738
  /**
1760
  /**
1761
   * A trace source that indiates the end of both HE SIG fields as well as training fields for received 802.11ax packets
1762
   *
1763
   * \see class CallBackTraceSource
1764
   */
1765
  TracedCallback<HePreambleParameters> m_phyEndOfHePreambleTrace;
1766
1767
  /**
1739
   * This vector holds the set of transmission modes that this
1768
   * This vector holds the set of transmission modes that this
1740
   * WifiPhy(-derived class) can support. In conversation we call this
1769
   * WifiPhy(-derived class) can support. In conversation we call this
1741
   * the DeviceRateSet (not a term you'll find in the standard), and
1770
   * the DeviceRateSet (not a term you'll find in the standard), and

Return to bug 3021