[haiku-commits] r35579 - in haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination: . services

  • From: coling@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 22 Feb 2010 22:30:37 +0100 (CET)

Author: colin
Date: 2010-02-22 22:30:37 +0100 (Mon, 22 Feb 2010)
New Revision: 35579
Changeset: http://dev.haiku-os.org/changeset/35579/haiku

Added:
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/FragmentService.cpp
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/FragmentService.h
Removed:
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/FragmentateService.cpp
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/FragmentateService.h
Modified:
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/Roster.cpp
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/Roster.h
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/Jamfile
Log:
Renamed FragmentateService to FragmentService after finishing research on the
meaning of "fragmentate": to break into pieces esp. explosively. Source: 
Webster's third new international dictionary of the english language unabridged
with seven language dictionary. Volume I. A to G. Encyclopedia britannica inc.
Chicago, Auckland, Geneva et al. 1961.
So fragmentation of Frames definitely isn't explosive.
Usage example: "they were sure the master rods on the engines were all 
fragmentating" David Beaty


Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/Roster.cpp
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/Roster.cpp
     2010-02-22 21:19:42 UTC (rev 35578)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/Roster.cpp
     2010-02-22 21:30:37 UTC (rev 35579)
@@ -36,5 +36,5 @@
 status_t
 Roster::AddManagementFrame(MacManagement::Frame* frame)
 {
-       return fFragmentateService.Process(frame);
+       return fFragmentService.Process(frame);
 }

Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/Roster.h
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/Roster.h
       2010-02-22 21:19:42 UTC (rev 35578)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/Roster.h
       2010-02-22 21:30:37 UTC (rev 35579)
@@ -9,7 +9,7 @@
 #include <SupportDefs.h>
 
 #include <mac_management/frames/Frame.h>
-#include <mpdu_coordination/services/FragmentateService.h>
+#include <mpdu_coordination/services/FragmentService.h>
 
 
 namespace Ieee80211 {
@@ -20,10 +20,10 @@
 
 class MpduCoordination::Roster {
 public:
-       status_t                        
AddManagementFrame(MacManagement::Frame*);
+       status_t                AddManagementFrame(MacManagement::Frame*);
 
 private:
-       FragmentateService      fFragmentateService;
+       FragmentService fFragmentService;
 };
 
 }      /* namespace Ieee80211 */

Copied: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/FragmentService.cpp
 (from rev 35416, 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/FragmentateService.cpp)
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/FragmentService.cpp
                           (rev 0)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/FragmentService.cpp
   2010-02-22 21:30:37 UTC (rev 35579)
@@ -0,0 +1,130 @@
+/*
+ * Copyright 2010 Haiku Inc. All rights reserved.
+ * Distributed under the terms of the MIT License.
+ *
+ * Authors:
+ *             Colin Günther, coling@xxxxxx
+ */
+
+
+/*!    Implementation of the frame fragmentation service.
+       This service fragments MAC Service Data Units (MSDUs) and MAC Management
+       Protocol Data Units (MMPDUs) into smaller units called MAC Protocol Data
+       Units (MPDU).
+
+       \sa IEEE Std 802.11-2007, Section 9.4 "Fragmentation".
+       \sa IEEE Std 802.11-2007, Annex C.3 "State machines for MAC STAs", page 
845.
+ */
+
+
+#include <mpdu_coordination/services/FragmentService.h>
+
+
+using namespace Ieee80211::MpduCoordination;
+
+
+/* #pragma mark - service interface implementation */
+
+
+/*!    Process a mac data frame.
+       Successful return of this method does only mean, that the service is 
going
+       to process the frame, not that it was processed already.
+
+       \param frame to be processed.
+       \return B_OK Service is going to process the frame.
+       \return Else Service can't process the frame, due to an unrecoverable 
error.
+ */
+status_t
+FragmentService::Process(MacData::Frame* frame)
+{
+       return fProcessDataFrameQueue.Enqueue(frame);
+}
+
+
+/*!    Process a mac management frame.
+       Successful return of this method does only mean, that the service is 
going
+       to process the frame, not that it was processed already.
+
+       \param frame to be processed.
+       \return B_OK Service is going to process the frame.
+       \return Else Service can't process the frame, due to an unrecoverable 
error.
+ */
+status_t
+FragmentService::Process(MacManagement::Frame* frame)
+{
+       return fProcessManagementFrameQueue.Enqueue(frame);
+}
+
+
+/*!    Puts the service for processing mac data frames in its run state.
+
+       \param dummy never used. This is only required to allow different _Run()
+               methods per service in a common way.
+       \return B_OK The service terminated gracefully.
+       \return Else Unrecoverable error during service execution.
+ */
+status_t
+FragmentService::_Run(MacData::Frame* dummy)
+{
+       MacData::Frame* frame = NULL;
+       status_t status = B_OK;
+
+       do {
+               status = fProcessDataFrameQueue.Dequeue(&frame);
+               if (status != B_OK)
+                       break;
+
+               status = _FragmentAndEncryptFragments(frame);
+       } while (status == B_OK);
+
+       return status;
+}
+
+
+/*!    Puts the service for processing mac management frames in its run state.
+
+       \param dummy never used. This is only required to allow different _Run()
+               methods per service in a common way.
+       \return B_OK The service terminated gracefully.
+       \return Else Unrecoverable error during service execution.
+ */
+status_t
+FragmentService::_Run(MacManagement::Frame* dummy)
+{
+       return B_OK;
+}
+
+
+/* #pragma mark - private */
+
+
+/*!    If frame length is greater than dot11FragmentationThreshold divide the 
frame
+       in multiple frames of length dot11FragmentationThreshold.
+       Hand the fragments over to the distribution coordinate service 
afterwards.
+
+       \param frame to be fragmented eventually and distributed afterwards.
+       \return B_OK The frame was successfully handed over to the distribution
+               coordination stage.
+       \return Else The frame wasn't processed, due to an unrecoverable error.
+ */
+status_t
+FragmentService::_FragmentAndDistributeFragments(Frame* frame)
+{
+       return B_OK;
+}
+
+
+/*!    If frame length is greater than dot11FragmentationThreshold divide the 
frame
+       in multiple frames of length dot11FragmentationThreshold.
+       Encrypt the frame/frames afterwards.
+
+       \param frame to be fragmented eventually and encrypted afterwards.
+       \return B_OK The frame was successfully handed over to the encryption
+               stage.
+       \return Else The frame wasn't processed, due to an unrecoverable error.
+ */
+status_t
+FragmentService::_FragmentAndEncryptFragments(Frame* frame)
+{
+       return fEncryptService.Process(frame);
+}


Property changes on: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/FragmentService.cpp
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Copied: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/FragmentService.h
 (from rev 35416, 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/FragmentateService.h)
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/FragmentService.h
                             (rev 0)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/FragmentService.h
     2010-02-22 21:30:37 UTC (rev 35579)
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2010 Haiku Inc. All rights reserved.
+ * Distributed under the terms of the MIT License.
+ */
+#ifndef IEEE80211_FRAGMENTATE_SERVICE_H_
+#define IEEE80211_FRAGMENTATE_SERVICE_H_
+
+
+#include <SupportDefs.h>
+
+#include <interfaces/Frame.h>
+#include <interfaces/Service.h>
+#include <mac_data/frames/Frame.h>
+#include <mac_management/frames/Frame.h>
+#include <mpdu_coordination/services/EncryptService.h>
+#include <utilities/Queue.h>
+
+
+namespace Ieee80211 {
+namespace MpduCoordination {
+class FragmentService;
+}      /* namespace MpduCoordination */
+
+
+class MpduCoordination::FragmentService
+       : public Service<MacData::Frame>, public Service<MacManagement::Frame> {
+public:
+       virtual status_t                                        
Process(MacData::Frame*);
+       virtual status_t                                        
Process(MacManagement::Frame*);
+
+private:
+       virtual status_t                                        
_Run(MacData::Frame*);
+       virtual status_t                                        
_Run(MacManagement::Frame*);
+
+                       status_t                                        
_FragmentAndDistributeFragments(Frame*);
+                       status_t                                        
_FragmentAndEncryptFragments(Frame*);
+
+                       EncryptService                          fEncryptService;
+                       Queue<MacData::Frame>           fProcessDataFrameQueue;
+                       Queue<MacManagement::Frame>     
fProcessManagementFrameQueue;
+};
+
+}      /* namespace Ieee80211 */
+
+#endif /* IEEE80211_FRAGMENTATE_SERVICE_H_ */


Property changes on: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/FragmentService.h
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/Jamfile
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/Jamfile
       2010-02-22 21:19:42 UTC (rev 35578)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/Jamfile
       2010-02-22 21:30:37 UTC (rev 35579)
@@ -5,5 +5,5 @@
 
 KernelMergeObject mpdu_coordination_services.o :
        EncryptService.cpp
-       FragmentateService.cpp
+       FragmentService.cpp
        ;


Other related posts:

  • » [haiku-commits] r35579 - in haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination: . services - coling