wlan_bearer/wlanldd/wlan_common/umac_common/inc/UmacProtocolStackSideUmac.h
changeset 0 c40eb8fe8501
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_bearer/wlanldd/wlan_common/umac_common/inc/UmacProtocolStackSideUmac.h	Tue Feb 02 02:03:13 2010 +0200
@@ -0,0 +1,100 @@
+/*
+* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Declaration of the MWlanProtocolStackSideUmac class.
+*
+*/
+
+/*
+* %version: 9 %
+*/
+
+#ifndef WLANPROTOCOLSTACKSIDEUMAC_H
+#define WLANPROTOCOLSTACKSIDEUMAC_H
+
+struct TMacAddress;
+class TDataBuffer;
+
+/**
+*  
+*/
+class MWlanProtocolStackSideUmac
+    {
+public:
+
+    virtual ~MWlanProtocolStackSideUmac() {};
+
+    virtual const TMacAddress& StationId() const = 0;
+
+    /**
+    * Triggers the setting of the Tx offset for every frame type which can be
+    * transmitted
+    */
+    virtual void SetTxOffset() = 0;
+
+    /**
+    * Transmit a protocol stack frame
+    * 
+    * The frame to be sent needs to be in 802.3 format
+    * @param aDataBuffer meta header of the frame to be transmitted
+    * @param aMore ETrue if another frame is also ready to be transmitted
+    *              EFalse otherwise
+    */
+    virtual void TxProtocolStackData( 
+        TDataBuffer& aDataBuffer,
+        TBool aMore ) = 0;
+
+    /**
+    * Gets the WLAN vendor needs for extra space (bytes) in frame buffers
+    *  
+    * @param aRxOffset How much extra space needs to be reserved
+    *        in the Rx buffer before every Rx frame that is received from the
+    *        WHA layer.
+    * @param aTxHeaderSpace How much extra space needs to be reserved
+    *        in the Tx buffer before every Tx frame that is given to the 
+    *        WHA layer.
+    * @param aTxTrailerSpace How much extra space needs to be reserved
+    *        in the Tx buffer after every Tx frame that is given to the 
+    *        WHA layer.
+    */
+    virtual void GetFrameExtraSpaceForVendor( 
+        TUint8& aRxOffset,
+        TUint8& aTxHeaderSpace,
+        TUint8& aTxTrailerSpace ) const = 0 ;
+
+    /**
+     * Is protocol stack side transmission permitted
+     * UMAC adaptation needs to call this method every time before calling
+     * TxProtocolStackData() to check if it is allowed to call that
+     * method!
+     *
+     * @param aTxQueueState If the return value is ETrue, the state 
+     *        (full / not full) of every WHA transmit queue. Otherwise, not
+     *        valid.
+     *        Note! A frame shall not be submitted to a full queue - even if
+     *        the return value would be ETrue
+     * @return ETrue if Tx frame submission is permitted
+     *         EFalse if Tx frame submission is not permitted
+     */
+    virtual TBool TxPermitted( TWhaTxQueueState& aTxQueueState ) const = 0;    
+
+    /**
+     * Is user data Tx enabled
+     *
+     * @return ETrue if user data Tx is enabled
+     *         EFalse if user data Tx is not enabled
+     */
+    virtual TBool UserDataTxEnabled() const = 0;
+    };
+
+#endif      // WLANPROTOCOLSTACKSIDEUMAC_H