src/devices/wifi/wifi-mac-header.cc
changeset 5950 a09eebc83465
parent 5819 514ec98954ab
--- a/src/devices/wifi/wifi-mac-header.cc	Wed Feb 03 20:34:48 2010 +0100
+++ b/src/devices/wifi/wifi-mac-header.cc	Wed Feb 03 20:34:49 2010 +0100
@@ -122,6 +122,19 @@
   m_ctrlType = TYPE_MGT;
   m_ctrlSubtype = 8;
 }
+void
+WifiMacHeader::SetBlockAckReq (void)
+{
+  m_ctrlType = TYPE_CTL;
+  m_ctrlSubtype = 8;
+}
+void
+WifiMacHeader::SetBlockAck (void)
+{
+  m_ctrlType = TYPE_CTL;
+  m_ctrlSubtype = 9;
+}
+
 void 
 WifiMacHeader::SetTypeData (void)
 {
@@ -348,6 +361,21 @@
     break;
   }
 }
+void
+WifiMacHeader::SetQosNormalAck ()
+{
+  m_qosAckPolicy = 0;
+}
+void
+WifiMacHeader::SetQosBlockAck ()
+{
+  m_qosAckPolicy = 3;
+}
+void
+WifiMacHeader::SetQosNoAck ()
+{
+  m_qosAckPolicy = 1;
+}
 void WifiMacHeader::SetQosAmsdu (void)
 {
   m_amsduPresent = 1;
@@ -630,6 +658,16 @@
 {
   return (GetType () == WIFI_MAC_MGT_MULTIHOP_ACTION);
 }
+bool
+WifiMacHeader::IsBlockAckReq (void) const
+{
+  return (GetType () == WIFI_MAC_CTL_BACKREQ)?true:false;
+}
+bool
+WifiMacHeader::IsBlockAck (void) const
+{
+  return (GetType () == WIFI_MAC_CTL_BACKRESP)?true:false;
+}
 
 
 uint16_t 
@@ -808,8 +846,7 @@
       break;
     case SUBTYPE_CTL_BACKREQ:
     case SUBTYPE_CTL_BACKRESP:
-      // NOT IMPLEMENTED
-      NS_ASSERT (false);
+      size = 2+2+6+6;
       break;
     }
     break;
@@ -1018,8 +1055,7 @@
       break;
     case SUBTYPE_CTL_BACKREQ:
     case SUBTYPE_CTL_BACKRESP:
-      // NOT IMPLEMENTED
-      NS_ASSERT (false);
+      WriteTo (i, m_addr2);
       break;
     default:
       //NOTREACHED
@@ -1068,8 +1104,7 @@
       break;
     case SUBTYPE_CTL_BACKREQ:
     case SUBTYPE_CTL_BACKRESP:
-      // NOT IMPLEMENTED
-      NS_ASSERT (false);
+      ReadFrom (i, m_addr2);
       break;
     }
     break;