diff -r 000000000000 -r c40eb8fe8501 wlan_bearer/wlanldd/wlan_common/umac_common/inc/UmacProtocolStackSideUmac.h --- /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