16 * along with this program; if not, write to the Free Software |
16 * along with this program; if not, write to the Free Software |
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
18 * |
18 * |
19 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
19 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
20 */ |
20 */ |
21 #include <cassert> |
21 #include "ns3/assert.h" |
22 #include "ns3/address-utils.h" |
22 #include "ns3/address-utils.h" |
23 #include "wifi-mac-header.h" |
23 #include "wifi-mac-header.h" |
24 |
24 |
25 #define MAC80211HEADER_DEBUG 1 |
25 #define MAC80211HEADER_DEBUG 1 |
26 |
26 |
260 m_duration = duration; |
260 m_duration = duration; |
261 } |
261 } |
262 void |
262 void |
263 WifiMacHeader::SetDurationUs (uint64_t duration_us) |
263 WifiMacHeader::SetDurationUs (uint64_t duration_us) |
264 { |
264 { |
265 assert (duration_us <= (1<<16) - 1); |
265 NS_ASSERT (duration_us <= (1<<16) - 1); |
266 m_duration = static_cast<uint16_t> (duration_us); |
266 m_duration = static_cast<uint16_t> (duration_us); |
267 } |
267 } |
268 |
268 |
269 void WifiMacHeader::SetId (uint16_t id) |
269 void WifiMacHeader::SetId (uint16_t id) |
270 { |
270 { |
590 return (m_ctrlMoreFrag == 1)?true:false; |
590 return (m_ctrlMoreFrag == 1)?true:false; |
591 } |
591 } |
592 bool |
592 bool |
593 WifiMacHeader::IsQosBlockAck (void) const |
593 WifiMacHeader::IsQosBlockAck (void) const |
594 { |
594 { |
595 assert (IsQosData ()); |
595 NS_ASSERT (IsQosData ()); |
596 return (m_qosAckPolicy == 3)?true:false; |
596 return (m_qosAckPolicy == 3)?true:false; |
597 } |
597 } |
598 bool |
598 bool |
599 WifiMacHeader::IsQosNoAck (void) const |
599 WifiMacHeader::IsQosNoAck (void) const |
600 { |
600 { |
601 assert (IsQosData ()); |
601 NS_ASSERT (IsQosData ()); |
602 return (m_qosAckPolicy == 1)?true:false; |
602 return (m_qosAckPolicy == 1)?true:false; |
603 } |
603 } |
604 bool |
604 bool |
605 WifiMacHeader::IsQosAck (void) const |
605 WifiMacHeader::IsQosAck (void) const |
606 { |
606 { |
607 assert (IsQosData ()); |
607 NS_ASSERT (IsQosData ()); |
608 return (m_qosAckPolicy == 0)?true:false; |
608 return (m_qosAckPolicy == 0)?true:false; |
609 } |
609 } |
610 uint8_t |
610 uint8_t |
611 WifiMacHeader::GetQosTid (void) const |
611 WifiMacHeader::GetQosTid (void) const |
612 { |
612 { |
613 assert (IsQosData ()); |
613 NS_ASSERT (IsQosData ()); |
614 return m_qosTid; |
614 return m_qosTid; |
615 } |
615 } |
616 uint8_t |
616 uint8_t |
617 WifiMacHeader::GetQosTxopLimit (void) const |
617 WifiMacHeader::GetQosTxopLimit (void) const |
618 { |
618 { |
619 assert (IsQosData ()); |
619 NS_ASSERT (IsQosData ()); |
620 return m_qosStuff; |
620 return m_qosStuff; |
621 } |
621 } |
622 |
622 |
623 uint16_t |
623 uint16_t |
624 WifiMacHeader::GetFrameControl (void) const |
624 WifiMacHeader::GetFrameControl (void) const |