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

  • From: coling@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 31 Jan 2010 23:13:51 +0100 (CET)

Author: colin
Date: 2010-01-31 23:13:51 +0100 (Sun, 31 Jan 2010)
New Revision: 35369
Changeset: http://dev.haiku-os.org/changeset/35369/haiku

Added:
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/
   
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
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/Jamfile
Modified:
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/interfaces/Service.h
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/services/AuthenticateService.cpp
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/services/DistributeService.cpp
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/Jamfile
   
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
Log:
Integrating the fragmentation service, which will split large MAC Service Data
Units (MSDUs) or MAC Managment Protocol Data Units (MMPDUs) into smaller   
pieces (MAC Protocol Data Units (MPDUs)) as defined by the 802.11 standard.


Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/interfaces/Service.h
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/interfaces/Service.h
     2010-01-31 21:27:14 UTC (rev 35368)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/interfaces/Service.h
     2010-01-31 22:13:51 UTC (rev 35369)
@@ -10,7 +10,6 @@
 
 
 namespace Ieee80211 {
-namespace MacManagement {
 
 template<class ServiceRequest>
 class Service {
@@ -21,7 +20,6 @@
        virtual status_t _Run() = 0;
 };
 
-}
-}
+}      /* namespace Ieee80211 */
 
 #endif /* IEEE80211_SERVICE_H_ */

Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/services/AuthenticateService.cpp
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/services/AuthenticateService.cpp
  2010-01-31 21:27:14 UTC (rev 35368)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/services/AuthenticateService.cpp
  2010-01-31 22:13:51 UTC (rev 35369)
@@ -11,6 +11,7 @@
        Note: The 802.11 example implementation of this service processes
        deauthentication requests, too. Our services handle one request type 
only,
        which means that we use a dedicated deauthenticate service, instead.
+
        \sa IEEE Standard 802.11-2007, Annex C.3 "State machines for MAC STAs",
                page 885 ff.
  */
@@ -33,7 +34,8 @@
 
        \param request to be processed.
        \return B_OK Service is going to process the request.
-       \return Else Service can't process the request.
+       \return Else Service can't process the request, due to an unrecoverable
+               error.
  */
 status_t
 AuthenticateService::Process(AuthenticateRequest* request)
@@ -48,7 +50,7 @@
 /*!    Puts the service in its run state.
 
        \return B_OK The service terminated gracefully.
-       \return Else Error during service execution.
+       \return Else Unrecoverable error during service execution.
  */
 status_t
 AuthenticateService::_Run()

Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/services/DistributeService.cpp
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/services/DistributeService.cpp
    2010-01-31 21:27:14 UTC (rev 35368)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/services/DistributeService.cpp
    2010-01-31 22:13:51 UTC (rev 35369)
@@ -7,7 +7,7 @@
  */
 
 
-/*!    Implementation of the distribute Mac Managment Protocol Data Unit 
(MMPDU)
+/*!    Implementation of the distribute MAC Management Protocol Data Unit 
(MMPDU)
        service.
        \sa IEEE Standard 802.11-2007, Annex C.3 "State machines for MAC STAs",
                page 883 ff.
@@ -24,12 +24,12 @@
 
 
 /*!    Process a frame.
-       Successful return of this method does only mean, that the service3 is 
going
+       Successful return of this method does only mean, that the service is 
going
        to process the request, 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.
+       \return Else Service can't process the frame, due to an unrecoverable 
error.
  */
 status_t
 DistributeService::Process(Frame* frame)

Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/Jamfile
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/Jamfile
        2010-01-31 21:27:14 UTC (rev 35368)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/Jamfile
        2010-01-31 22:13:51 UTC (rev 35369)
@@ -5,4 +5,8 @@
 
 KernelMergeObject mpdu_coordination.o :
        Roster.cpp
+       : :
+       mpdu_coordination_services.o
        ;
+
+HaikuSubInclude services ;
\ No newline at end of file

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-01-31 21:27:14 UTC (rev 35368)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/Roster.cpp
     2010-01-31 22:13:51 UTC (rev 35369)
@@ -38,5 +38,5 @@
 status_t
 Roster::AddManagementFrame(MacManagement::Frame* frame)
 {
-       return B_OK;
+       return fFragmentateService.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-01-31 21:27:14 UTC (rev 35368)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/Roster.h
       2010-01-31 22:13:51 UTC (rev 35369)
@@ -9,6 +9,7 @@
 #include <SupportDefs.h>
 
 #include <mac_management/frames/Frame.h>
+#include <mpdu_coordination/services/FragmentateService.h>
 
 
 namespace Ieee80211 {
@@ -19,7 +20,10 @@
 
 class MpduCoordination::Roster {
 public:
-       status_t        AddManagementFrame(MacManagement::Frame*);
+       status_t                        
AddManagementFrame(MacManagement::Frame*);
+
+private:
+       FragmentateService      fFragmentateService;
 };
 
 }      /* namespace Ieee80211 */

Added: 
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.cpp
                                (rev 0)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/FragmentateService.cpp
        2010-01-31 22:13:51 UTC (rev 35369)
@@ -0,0 +1,54 @@
+/*
+ * 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 Standard 802.11-2007,  section 9.4 "Fragmentation".
+       \sa IEEE Standard 802.11-2007   Annex C.3 "State machines for MAC STAs",
+               page 845.
+ */
+
+#include <mpdu_coordination/services/FragmentateService.h>
+
+
+using namespace Ieee80211;
+using namespace MpduCoordination;
+
+
+/* #pragma mark - service interface implementation */
+
+
+/*!    Process a frame.
+       Successful return of this method does only mean, that the service is 
going
+       to process the request, 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
+FragmentateService::Process(Frame* frame)
+{
+       return fProcessQueue.Enqueue(frame);
+}
+
+
+/*!    Puts the service in its run state.
+
+       \return B_OK The service terminated gracefully.
+       \return Else Unrecoverable error during service execution.
+ */
+status_t
+FragmentateService::_Run()
+{
+       return B_OK;
+}


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

Added: 
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/FragmentateService.h
                          (rev 0)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/FragmentateService.h
  2010-01-31 22:13:51 UTC (rev 35369)
@@ -0,0 +1,34 @@
+/*
+ * 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 <utilities/Queue.h>
+
+
+namespace Ieee80211 {
+namespace MpduCoordination {
+class FragmentateService;
+}      /* namespace MpduCoordination */
+
+
+class MpduCoordination::FragmentateService : public Service<Frame> {
+public:
+       virtual status_t        Process(Frame*);
+
+private:
+       virtual status_t        _Run();
+
+       Queue<Frame>            fProcessQueue;
+};
+
+}      /* 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/FragmentateService.h
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: 
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
                               (rev 0)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/services/Jamfile
       2010-01-31 22:13:51 UTC (rev 35369)
@@ -0,0 +1,8 @@
+SubDir HAIKU_TOP src add-ons kernel network devices ieee80211 stack
+       mpdu_coordination services ;
+
+UseHeaders [ FDirName $(SUBDIR) .. .. ] : true ;
+
+KernelMergeObject mpdu_coordination_services.o :
+       FragmentateService.cpp
+       ;


Other related posts:

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