]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/lib/mac/tkn154/PibP.nc
incoming beacon payload size was caculated wrongly. fixed.
[tinyos-2.x.git] / tos / lib / mac / tkn154 / PibP.nc
index 645b0e57ee7e1a390a8888b4cc54c8d00ad8b8bc..2f55e72a72f4da1b789b7ce61db79a7a9c7235bd 100644 (file)
@@ -150,12 +150,12 @@ implementation
     if (m) {
       k = 0;
       while (k != m) {
-        waitTime += ((uint16_t) 1 << (macMaxBE+k));
+        waitTime += ((uint16_t) 1 << (macMinBE+k));
         k += 1;
       }
     }
     waitTime *= IEEE154_aUnitBackoffPeriod;
-    waitTime += IEEE154_SHR_DURATION;
+    waitTime += call MLME_GET.phyMaxFrameDuration();
     m_pib.macMaxFrameTotalWaitTime = waitTime;
   }
 
@@ -567,7 +567,7 @@ implementation
 
   command uint8_t Packet.maxPayloadLength()
   {
-#if TOSH_DATA_LENGTH < 118
+#if TOSH_DATA_LENGTH < IEEE154_aMaxMACPayloadSize
 #warning Payload portion in message_t is smaller than required (TOSH_DATA_LENGTH < IEEE154_aMaxMACPayloadSize). This means that larger packets cannot be sent/received.
 #endif
     return TOSH_DATA_LENGTH;
@@ -939,7 +939,7 @@ implementation
     uint8_t *mhr = MHR(frame);
     uint8_t len = ((ieee154_header_t*) frame->header)->length & FRAMECTL_LENGTH_MASK;
     if ((mhr[MHR_INDEX_FC1] & FC1_FRAMETYPE_MASK) == FC1_FRAMETYPE_BEACON) {
-      uint8_t *payload = call Frame.getPayload(frame);
+      uint8_t *payload = call BeaconFrame.getBeaconPayload(frame);
       len = len - (payload - (uint8_t *) frame->data);
     } 
     return len;