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

  • From: coling@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 31 Jan 2010 22:12:30 +0100 (CET)

Author: colin
Date: 2010-01-31 22:12:30 +0100 (Sun, 31 Jan 2010)
New Revision: 35365
Changeset: http://dev.haiku-os.org/changeset/35365/haiku

Added:
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/Roster.cpp
Modified:
   
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Jamfile
   
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.h
   
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.h
Log:
Integrate the MAC Protocol Data Unit coordination system.


Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Jamfile
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Jamfile
  2010-01-31 21:00:29 UTC (rev 35364)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/Jamfile
  2010-01-31 21:12:30 UTC (rev 35365)
@@ -11,6 +11,7 @@
        Stack.cpp
        : :
        mac_management.o
+       mpdu_coordination.o
        station_management.o
        utilities.o
        ;

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:00:29 UTC (rev 35364)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/services/DistributeService.cpp
    2010-01-31 21:12:30 UTC (rev 35365)
@@ -17,8 +17,7 @@
 #include <mac_management/services/DistributeService.h>
 
 
-using namespace Ieee80211;
-using namespace MacManagement;
+using namespace Ieee80211::MacManagement;
 
 
 // #pragma mark - service interface implementation
@@ -35,7 +34,7 @@
 status_t
 DistributeService::Process(Frame* frame)
 {
-       return B_OK;
+       return fProcessQueue.Enqueue(frame);
 }
 
 
@@ -47,7 +46,18 @@
 status_t
 DistributeService::_Run()
 {
-       return B_OK;
+       Frame* frame = NULL;
+       status_t status = B_OK;
+
+       do {
+               status = fProcessQueue.Dequeue(&frame);
+               if (status != B_OK)
+                       break;
+
+               status = fMpduRoster.AddManagementFrame(frame);
+       } while (status == B_OK);
+
+       return status;
 }
 
 

Modified: 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/services/DistributeService.h
===================================================================
--- 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/services/DistributeService.h
      2010-01-31 21:00:29 UTC (rev 35364)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mac_management/services/DistributeService.h
      2010-01-31 21:12:30 UTC (rev 35365)
@@ -10,23 +10,28 @@
 
 #include <interfaces/Service.h>
 #include <mac_management/frames/Frame.h>
+#include <mpdu_coordination/Roster.h>
 #include <utilities/Observable.h>
 #include <utilities/Observer.h>
+#include <utilities/Queue.h>
 
 
 namespace Ieee80211 {
 namespace MacManagement {
 class DistributeService : public Service<Frame>, public Observable {
 public:
-       virtual status_t        Process(Frame*);
+       virtual status_t                        Process(Frame*);
 
-       virtual status_t        AddObserverForEvent(Observer*, Event*);
+       virtual status_t                        AddObserverForEvent(Observer*, 
Event*);
 
 private:
-       virtual status_t        _Run();
+       virtual status_t                        _Run();
 
-       virtual bool            _IsEventSupported(Event*);
-       virtual bool            _IsObserverSupported(Observer*);
+       virtual bool                            _IsEventSupported(Event*);
+       virtual bool                            _IsObserverSupported(Observer*);
+
+       Queue<Frame>                            fProcessQueue;
+       MpduCoordination::Roster        fMpduRoster;
 };
 }      /* namespace MacManagement */
 }      /* namespace Ieee80211 */

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:00:29 UTC (rev 35364)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/Jamfile
        2010-01-31 21:12:30 UTC (rev 35365)
@@ -2,3 +2,7 @@
        mpdu_coordination ;
 
 UseHeaders [ FDirName $(SUBDIR) .. ] : true ;
+
+KernelMergeObject mpdu_coordination.o :
+       Roster.cpp
+       ;

Added: 
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
                             (rev 0)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/Roster.cpp
     2010-01-31 21:12:30 UTC (rev 35365)
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2010 Haiku Inc. All rights reserved.
+ * Distributed under the terms of the MIT License.
+ *
+ * Authors:
+ *             Colin Günther, coling@xxxxxx
+ */
+
+
+/*!    Implementation of the MAC Protocol Data Unit (MPDU) Generation
+       state machine.
+       The IEEE 802.11 formal description of MPDU Generation puts 
fragmentation and
+       encryption services here, only. But the below implementation provides 
their
+       counterparts defragmentation and decryption, too. Thus it is more
+       appropriate of calling this entity MPDU Coordination.
+
+       \sa IEEE Standard 802.11-2007, Annex C.3 "State machines for MAC STAs",
+               page 837
+ */
+
+
+#include <mpdu_coordination/Roster.h>
+
+
+using namespace Ieee80211;
+using namespace Ieee80211::MpduCoordination;
+
+
+/*!    Handling over a new management frame to the MAC Protocol Data Unit 
(MPDU)
+       Coordination.
+       Successful completion of this method does only mean that the MPDU
+       coordinator will try to send the frame, not that it was sent already.
+
+       \param frame to be sent by the MPDU Coordinator.
+       \return B_OK MPDU coordinator will try to send the frame.
+       \return Else MPDU coordinator will not try to send the frame.
+ */
+status_t
+Roster::AddManagementFrame(MacManagement::Frame* frame)
+{
+       return B_OK;
+}


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

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:00:29 UTC (rev 35364)
+++ 
haiku/branches/developer/colin/wireless/src/add-ons/kernel/network/devices/ieee80211/stack/mpdu_coordination/Roster.h
       2010-01-31 21:12:30 UTC (rev 35365)
@@ -6,6 +6,8 @@
 #define IEEE80211_ROSTER_H_
 
 
+#include <SupportDefs.h>
+
 #include <mac_management/frames/Frame.h>
 
 


Other related posts:

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