#ifndef CNTRL_SIGNALING_INTERFACE_ #define CNTRL_SIGNALING_INTERFACE_ #ifdef BECEEM_TARGET #include #include #include #include #include using namespace Beceem; #ifdef ENABLE_CORRIGENDUM2_UPDATE extern B_UINT32 g_u32Corr2MacFlags; #endif #else #define DSA_REQ 11 #define DSA_RSP 12 #define DSA_ACK 13 #define DSC_REQ 14 #define DSC_RSP 15 #define DSC_ACK 16 #define DSD_REQ 17 #define DSD_RSP 18 #define DSD_ACK 19 #define MAX_CLASSIFIERS_IN_SF 4 #endif #define MAX_STRING_LEN 20 #define MAX_PHS_LENGTHS 255 #define VENDOR_PHS_PARAM_LENGTH 10 #define MAX_NUM_ACTIVE_BS 10 #define AUTH_TOKEN_LENGTH 10 #define NUM_HARQ_CHANNELS 16 //Changed from 10 to 16 to accomodate all HARQ channels #define VENDOR_CLASSIFIER_PARAM_LENGTH 1 //Changed the size to 1 byte since we dnt use it #define VENDOR_SPECIF_QOS_PARAM 1 #define VENDOR_PHS_PARAM_LENGTH 10 #define MBS_CONTENTS_ID_LENGTH 10 #define GLOBAL_SF_CLASSNAME_LENGTH 6 #define TYPE_OF_SERVICE_LENGTH 3 #define IP_MASKED_SRC_ADDRESS_LENGTH 32 #define IP_MASKED_DEST_ADDRESS_LENGTH 32 #define PROTOCOL_SRC_PORT_RANGE_LENGTH 4 #define PROTOCOL_DEST_PORT_RANGE_LENGTH 4 #define ETHERNET_DEST_MAC_ADDR_LENGTH 12 #define ETHERNET_SRC_MAC_ADDR_LENGTH 12 #define NUM_ETHERTYPE_BYTES 3 #define NUM_IPV6_FLOWLABLE_BYTES 3 //////////////////////////////////////////////////////////////////////////////// ////////////////////////structure Definitions/////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// /// \brief class cCPacketClassificationRule #ifdef BECEEM_TARGET class CCPacketClassificationRuleSI{ public: /// \brief Constructor for the class CCPacketClassificationRuleSI(): u8ClassifierRulePriority(mClassifierRulePriority), u8IPTypeOfServiceLength(mIPTypeOfService), u8Protocol(mProtocol), u8IPMaskedSourceAddressLength(0), u8IPDestinationAddressLength(0), u8ProtocolSourcePortRangeLength(0), u8ProtocolDestPortRangeLength(0), u8EthernetDestMacAddressLength(0), u8EthernetSourceMACAddressLength(0), u8EthertypeLength(0), u16UserPriority(mUserPriority), u16VLANID(mVLANID), u8AssociatedPHSI(mAssociatedPHSI), u16PacketClassificationRuleIndex(mPacketClassifierRuleIndex), u8VendorSpecificClassifierParamLength(mVendorSpecificClassifierParamLength), u8IPv6FlowLableLength(mIPv6FlowLableLength), u8ClassifierActionRule(mClassifierActionRule) {} void Reset() { CCPacketClassificationRuleSI(); } #else struct _stCPacketClassificationRuleSI{ #endif /** 16bit UserPriority Of The Service Flow*/ B_UINT16 u16UserPriority; /** 16bit VLANID Of The Service Flow*/ B_UINT16 u16VLANID; /** 16bit Packet Classification RuleIndex Of The Service Flow*/ B_UINT16 u16PacketClassificationRuleIndex; /** 8bit Classifier Rule Priority Of The Service Flow*/ B_UINT8 u8ClassifierRulePriority; /** Length of IP TypeOfService field*/ B_UINT8 u8IPTypeOfServiceLength; /** 3bytes IP TypeOfService */ B_UINT8 u8IPTypeOfService[TYPE_OF_SERVICE_LENGTH]; /** Protocol used in classification of Service Flow*/ B_UINT8 u8Protocol; /** Length of IP Masked Source Address */ B_UINT8 u8IPMaskedSourceAddressLength; /** IP Masked Source Address used in classification for the Service Flow*/ B_UINT8 u8IPMaskedSourceAddress[IP_MASKED_SRC_ADDRESS_LENGTH]; /** Length of IP Destination Address */ B_UINT8 u8IPDestinationAddressLength; /** IP Destination Address used in classification for the Service Flow*/ B_UINT8 u8IPDestinationAddress[IP_MASKED_DEST_ADDRESS_LENGTH]; /** Length of Protocol Source Port Range */ B_UINT8 u8ProtocolSourcePortRangeLength; /** Protocol Source Port Range used in the Service Flow*/ B_UINT8 u8ProtocolSourcePortRange[PROTOCOL_SRC_PORT_RANGE_LENGTH]; /** Length of Protocol Dest Port Range */ B_UINT8 u8ProtocolDestPortRangeLength; /** Protocol Dest Port Range used in the Service Flow*/ B_UINT8 u8ProtocolDestPortRange[PROTOCOL_DEST_PORT_RANGE_LENGTH]; /** Length of Ethernet Destination MAC Address */ B_UINT8 u8EthernetDestMacAddressLength; /** Ethernet Destination MAC Address used in classification of the Service Flow*/ B_UINT8 u8EthernetDestMacAddress[ETHERNET_DEST_MAC_ADDR_LENGTH]; /** Length of Ethernet Source MAC Address */ B_UINT8 u8EthernetSourceMACAddressLength; /** Ethernet Source MAC Address used in classification of the Service Flow*/ B_UINT8 u8EthernetSourceMACAddress[ETHERNET_SRC_MAC_ADDR_LENGTH]; /** Length of Ethertype */ B_UINT8 u8EthertypeLength; /** 3bytes Ethertype Of The Service Flow*/ B_UINT8 u8Ethertype[NUM_ETHERTYPE_BYTES]; /** 8bit Associated PHSI Of The Service Flow*/ B_UINT8 u8AssociatedPHSI; /** Length of Vendor Specific Classifier Param length Of The Service Flow*/ B_UINT8 u8VendorSpecificClassifierParamLength; /** Vendor Specific Classifier Param Of The Service Flow*/ B_UINT8 u8VendorSpecificClassifierParam[VENDOR_CLASSIFIER_PARAM_LENGTH]; /** Length Of IPv6 Flow Lable of the Service Flow*/ B_UINT8 u8IPv6FlowLableLength; /** IPv6 Flow Lable Of The Service Flow*/ B_UINT8 u8IPv6FlowLable[NUM_IPV6_FLOWLABLE_BYTES]; /** Action associated with the classifier rule*/ B_UINT8 u8ClassifierActionRule; B_UINT16 u16ValidityBitMap; }; #ifndef BECEEM_TARGET typedef struct _stCPacketClassificationRuleSI CCPacketClassificationRuleSI,stCPacketClassificationRuleSI, *pstCPacketClassificationRuleSI; #endif /// \brief class CPhsRuleSI #ifdef BECEEM_TARGET class CPhsRuleSI{ public: /// \brief Constructor for the class CPhsRuleSI(): u8PHSI(mPHSI), u8PHSFLength(0), u8PHSMLength(0), u8PHSS(mPHSS), u8PHSV(mPHSV), u8VendorSpecificPHSParamsLength(mVendorSpecificPHSParamLength){} void Reset() { CPhsRuleSI(); } #else typedef struct _stPhsRuleSI { #endif /** 8bit PHS Index Of The Service Flow*/ B_UINT8 u8PHSI; /** PHSF Length Of The Service Flow*/ B_UINT8 u8PHSFLength; /** String of bytes containing header information to be supressed by the sending CS and reconstructed by the receiving CS*/ B_UINT8 u8PHSF[MAX_PHS_LENGTHS]; /** PHSM Length Of The Service Flow*/ B_UINT8 u8PHSMLength; /** PHS Mask for the SF*/ B_UINT8 u8PHSM[MAX_PHS_LENGTHS]; /** 8bit Total number of bytes to be supressed for the Service Flow*/ B_UINT8 u8PHSS; /** 8bit Indicates whether or not Packet Header contents need to be verified prior to supression */ B_UINT8 u8PHSV; /** Vendor Specific PHS param Length Of The Service Flow*/ B_UINT8 u8VendorSpecificPHSParamsLength; /** Vendor Specific PHS param Of The Service Flow*/ B_UINT8 u8VendorSpecificPHSParams[VENDOR_PHS_PARAM_LENGTH]; B_UINT8 u8Padding[2]; #ifdef BECEEM_TARGET }; #else }stPhsRuleSI,*pstPhsRuleSI; typedef stPhsRuleSI CPhsRuleSI; #endif /// \brief structure cConvergenceSLTypes #ifdef BECEEM_TARGET class CConvergenceSLTypes{ public: /// \brief Constructor for the class CConvergenceSLTypes(): u8ClassfierDSCAction(mClassifierDSCAction), u8PhsDSCAction (mPhsDSCAction) {} void Reset() { CConvergenceSLTypes(); cCPacketClassificationRule.Reset(); cPhsRule.Reset(); } #else struct _stConvergenceSLTypes{ #endif /** 8bit Phs Classfier Action Of The Service Flow*/ B_UINT8 u8ClassfierDSCAction; /** 8bit Phs DSC Action Of The Service Flow*/ B_UINT8 u8PhsDSCAction; /** 16bit Padding */ B_UINT8 u8Padding[2]; /// \brief class cCPacketClassificationRule #ifdef BECEEM_TARGET CCPacketClassificationRuleSI cCPacketClassificationRule; #else stCPacketClassificationRuleSI cCPacketClassificationRule; #endif /// \brief class CPhsRuleSI #ifdef BECEEM_TARGET CPhsRuleSI cPhsRule; #else struct _stPhsRuleSI cPhsRule; #endif }; #ifndef BECEEM_TARGET typedef struct _stConvergenceSLTypes stConvergenceSLTypes,CConvergenceSLTypes, *pstConvergenceSLTypes; #endif /// \brief structure CServiceFlowParamSI #ifdef BECEEM_TARGET class CServiceFlowParamSI{ public: /// \brief Constructor for the class CServiceFlowParamSI(): u32SFID(mSFid), u16CID(mCid), u8ServiceClassNameLength(mServiceClassNameLength), u8MBSService(mMBSService), u8QosParamSet(mQosParamSetType), u8TrafficPriority(mTrafficPriority), u32MaxSustainedTrafficRate(mMaximumSustainedTrafficRate), u32MaxTrafficBurst(mMaximumTrafficBurst), u32MinReservedTrafficRate(mMinimumReservedTrafficRate), u8ServiceFlowSchedulingType(mServiceFlowSchedulingType), u8RequesttransmissionPolicy(mRequestTransmissionPolicy), u32ToleratedJitter(mToleratedJitter), u32MaximumLatency(mMaximumLatency), u8FixedLengthVSVariableLengthSDUIndicator (mFixedLengthVSVariableLength), u8SDUSize(mSDUSize), u16TargetSAID(mTargetSAID), u8ARQEnable(mARQEnable), u16ARQWindowSize(mARQWindowSize), u16ARQBlockLifeTime(mARQBlockLifeTime), u16ARQSyncLossTimeOut(mARQSyncLossTimeOut), u8ARQDeliverInOrder(mARQDeliverInOrder), u16ARQRxPurgeTimeOut(mARQRXPurgeTimeOut), //Add ARQ BLOCK SIZE, ARQ TX and RX delay initializations here //after we move to only CORR2 u8RxARQAckProcessingTime(mRxARQAckProcessingTime), u8CSSpecification(mCSSpecification), u8TypeOfDataDeliveryService(mTypeOfDataDeliveryService), u16SDUInterArrivalTime(mSDUInterArrivalTime), u16TimeBase(mTimeBase), u8PagingPreference(mPagingPreference), u8MBSZoneIdentifierassignment(mMBSZoneIdentifierassignmentLength), u8TrafficIndicationPreference(mTrafficIndicationPreference), u8GlobalServicesClassNameLength(mGlobalServicesClassNameLength), u8SNFeedbackEnabled(mSNFeedbackEnabled), u8FSNSize(mFSNSize), u8CIDAllocation4activeBSsLength(mCIDAllocation4activeBSsLength), u16UnsolicitedGrantInterval(mUnsolicitedGrantInterval), u16UnsolicitedPollingInterval(mUnsolicitedPollingInterval), u8PDUSNExtendedSubheader4HarqReordering(mPDUSNExtendedSubheader4HarqReordering), u8MBSContentsIDLength(mMBSContentsIDLength), u8HARQServiceFlows(mHARQServiceFlows), u8AuthTokenLength(mAuthTokenLength), u8HarqChannelMappingLength(mHarqChannelMappingLength), u8VendorSpecificQoSParamLength(mVendorSpecificQoSParamLength), bValid(FALSE), u8TotalClassifiers() { //Remove the bolck after we move to Corr2 only code #ifdef ENABLE_CORRIGENDUM2_UPDATE if((g_u32Corr2MacFlags & CORR_2_DSX) || (g_u32Corr2MacFlags & CORR_2_ARQ)) { /* IEEE Comment #627 / MTG Comment #426 */ u16ARQBlockSize = mARQBlockSize; if(g_u32Corr2MacFlags & CORR_2_ARQ) { u16ARQRetryTxTimeOut = mARQRetryTimeOutTxDelay; if(g_u32VENDOR_TYPE == VENDOR_ALCATEL) { u16ARQRetryRxTimeOut = mARQRetryTimeOutRxDelay_ALU; } else { u16ARQRetryRxTimeOut = mARQRetryTimeOutRxDelay; } } else { u16ARQRetryTxTimeOut = mARQRetryTimeOutTxDelayCorr1; u16ARQRetryRxTimeOut = mARQRetryTimeOutRxDelayCorr1; } } else #endif { u16ARQBlockSize = mARQBlockSizeCorr1; u16ARQRetryTxTimeOut = mARQRetryTimeOutTxDelayCorr1; u16ARQRetryRxTimeOut = mARQRetryTimeOutRxDelayCorr1; } } void ComputeMacOverhead(B_UINT8 u8SecOvrhead); B_UINT16 GetMacOverhead() { return u16MacOverhead; } #else typedef struct _stServiceFlowParamSI{ #endif //end of ifdef BECEEM_TARGET /** 32bitSFID Of The Service Flow*/ B_UINT32 u32SFID; /** 32bit Maximum Sustained Traffic Rate of the Service Flow*/ B_UINT32 u32MaxSustainedTrafficRate; /** 32bit Maximum Traffic Burst allowed for the Service Flow*/ B_UINT32 u32MaxTrafficBurst; /** 32bit Minimum Reserved Traffic Rate of the Service Flow*/ B_UINT32 u32MinReservedTrafficRate; /** 32bit Tolerated Jitter of the Service Flow*/ B_UINT32 u32ToleratedJitter; /** 32bit Maximum Latency of the Service Flow*/ B_UINT32 u32MaximumLatency; /** 16bitCID Of The Service Flow*/ B_UINT16 u16CID; /** 16bit SAID on which the service flow being set up shall be mapped*/ B_UINT16 u16TargetSAID; /** 16bit ARQ window size negotiated*/ B_UINT16 u16ARQWindowSize; /** 16bit Total Tx delay incl sending, receiving & processing delays */ B_UINT16 u16ARQRetryTxTimeOut; /** 16bit Total Rx delay incl sending, receiving & processing delays */ B_UINT16 u16ARQRetryRxTimeOut; /** 16bit ARQ block lifetime */ B_UINT16 u16ARQBlockLifeTime; /** 16bit ARQ Sync loss timeout*/ B_UINT16 u16ARQSyncLossTimeOut; /** 16bit ARQ Purge timeout */ B_UINT16 u16ARQRxPurgeTimeOut; #if 0 //def ENABLE_CORRIGENDUM2_UPDATE /* IEEE Comment #627 / MTG Comment #426 */ /// \brief Size of an ARQ block, changed from 2 bytes to 1 B_UINT8 u8ARQBlockSize; #endif //TODO::Remove this once we move to a new CORR2 driver /// \brief Size of an ARQ block B_UINT16 u16ARQBlockSize; //#endif /** 16bit Nominal interval b/w consecutive SDU arrivals at MAC SAP*/ B_UINT16 u16SDUInterArrivalTime; /** 16bit Specifies the time base for rate measurement */ B_UINT16 u16TimeBase; /** 16bit Interval b/w Successive Grant oppurtunities*/ B_UINT16 u16UnsolicitedGrantInterval; /** 16bit Interval b/w Successive Polling grant oppurtunities*/ B_UINT16 u16UnsolicitedPollingInterval; /** internal var to get the overhead */ B_UINT16 u16MacOverhead; /** MBS contents Identifier*/ B_UINT16 u16MBSContentsID[MBS_CONTENTS_ID_LENGTH]; /** MBS contents Identifier length*/ B_UINT8 u8MBSContentsIDLength; /** ServiceClassName Length Of The Service Flow*/ B_UINT8 u8ServiceClassNameLength; /** 32bytes ServiceClassName Of The Service Flow*/ B_UINT8 u8ServiceClassName[32]; /** 8bit Indicates whether or not MBS service is requested for this Serivce Flow*/ B_UINT8 u8MBSService; /** 8bit QOS Parameter Set specifies proper application of QoS paramters to Provisioned, Admitted and Active sets*/ B_UINT8 u8QosParamSet; /** 8bit Traffic Priority Of the Service Flow */ B_UINT8 u8TrafficPriority; /** 8bit Uplink Grant Scheduling Type of The Service Flow */ B_UINT8 u8ServiceFlowSchedulingType; /** 8bit Request transmission Policy of the Service Flow*/ B_UINT8 u8RequesttransmissionPolicy; /** 8bit Specifies whether SDUs for this Service flow are of FixedLength or Variable length */ B_UINT8 u8FixedLengthVSVariableLengthSDUIndicator; /** 8bit Length of the SDU for a fixed length SDU service flow*/ B_UINT8 u8SDUSize; /** 8bit Indicates whether or not ARQ is requested for this connection*/ B_UINT8 u8ARQEnable; /**< 8bit Indicates whether or not data has tobe delivered in order to higher layer*/ B_UINT8 u8ARQDeliverInOrder; /** 8bit Receiver ARQ ACK processing time */ B_UINT8 u8RxARQAckProcessingTime; /** 8bit Convergence Sublayer Specification Of The Service Flow*/ B_UINT8 u8CSSpecification; /** 8 bit Type of data delivery service*/ B_UINT8 u8TypeOfDataDeliveryService; /** 8bit Specifies whether a service flow may generate Paging */ B_UINT8 u8PagingPreference; /** 8bit Indicates the MBS Zone through which the connection or virtual connection is valid */ B_UINT8 u8MBSZoneIdentifierassignment; /** 8bit Specifies whether traffic on SF should generate MOB_TRF_IND to MS in sleep mode*/ B_UINT8 u8TrafficIndicationPreference; /** 8bit Speciifes the length of predefined Global QoS parameter set encoding for this SF */ B_UINT8 u8GlobalServicesClassNameLength; /** 6 byte Speciifes the predefined Global QoS parameter set encoding for this SF */ B_UINT8 u8GlobalServicesClassName[GLOBAL_SF_CLASSNAME_LENGTH]; /** 8bit Indicates whether or not SN feedback is enabled for the conn */ B_UINT8 u8SNFeedbackEnabled; /** Indicates the size of the Fragment Sequence Number for the connection */ B_UINT8 u8FSNSize; /** 8bit Number of CIDs in active BS list */ B_UINT8 u8CIDAllocation4activeBSsLength; /** CIDs of BS in the active list */ B_UINT8 u8CIDAllocation4activeBSs[MAX_NUM_ACTIVE_BS]; /** Specifies if PDU extended subheader should be applied on every PDU on this conn*/ B_UINT8 u8PDUSNExtendedSubheader4HarqReordering; /** 8bit Specifies whether the connection uses HARQ or not */ B_UINT8 u8HARQServiceFlows; /** Specifies the length of Authorization token*/ B_UINT8 u8AuthTokenLength; /** Specifies the Authorization token*/ B_UINT8 u8AuthToken[AUTH_TOKEN_LENGTH]; /** specifes Number of HARQ channels used to carry data length*/ B_UINT8 u8HarqChannelMappingLength; /** specifes HARQ channels used to carry data*/ B_UINT8 u8HARQChannelMapping[NUM_HARQ_CHANNELS]; /** 8bit Length of Vendor Specific QoS Params */ B_UINT8 u8VendorSpecificQoSParamLength; /** 1byte Vendor Specific QoS Param Of The Service Flow*/ B_UINT8 u8VendorSpecificQoSParam[VENDOR_SPECIF_QOS_PARAM]; // indicates total classifiers in the SF B_UINT8 u8TotalClassifiers; /**< Total number of valid classifiers*/ B_UINT8 bValid; /**< Validity flag */ B_UINT8 u8Padding; /**< Padding byte*/ #ifdef BECEEM_TARGET /** Structure for Convergence SubLayer Types with a maximum of 4 classifiers */ CConvergenceSLTypes cConvergenceSLTypes[MAX_CLASSIFIERS_IN_SF]; #else /** Structure for Convergence SubLayer Types with a maximum of 4 classifiers */ stConvergenceSLTypes cConvergenceSLTypes[MAX_CLASSIFIERS_IN_SF]; #endif #ifdef BECEEM_TARGET }; #else } stServiceFlowParamSI, *pstServiceFlowParamSI; typedef stServiceFlowParamSI CServiceFlowParamSI; #endif /** structure stLocalSFAddRequest */ typedef struct _stLocalSFAddRequest{ #ifdef BECEEM_TARGET _stLocalSFAddRequest( ) : u8Type(0x00), eConnectionDir(0x00), u16TID(0x0000), u16CID(0x0000), u16VCID(0x0000) {} #endif B_UINT8 u8Type; /**< Type*/ B_UINT8 eConnectionDir; /**< Connection direction*/ /// \brief 16 bit TID B_UINT16 u16TID; /**< 16bit TID*/ /// \brief 16bitCID B_UINT16 u16CID; /**< 16bit CID*/ /// \brief 16bitVCID B_UINT16 u16VCID; /**< 16bit VCID*/ /// \brief structure ParameterSet #ifdef BECEEM_SIGNALLING_INTERFACE_API CServiceFlowParamSI sfParameterSet; #endif #ifdef BECEEM_TARGET CServiceFlowParamSI *psfParameterSet; #else stServiceFlowParamSI *psfParameterSet; /**< structure ParameterSet*/ #endif #ifdef USING_VXWORKS USE_DATA_MEMORY_MANAGER(); #endif }stLocalSFAddRequest, *pstLocalSFAddRequest; /** structure stLocalSFAddIndication */ typedef struct _stLocalSFAddIndication{ #ifdef BECEEM_TARGET _stLocalSFAddIndication( ) : u8Type(0x00), eConnectionDir(0x00), u16TID(0x0000), u16CID(0x0000), u16VCID(0x0000) {} #endif B_UINT8 u8Type; /**< Type*/ B_UINT8 eConnectionDir; /**< Connection Direction*/ /// \brief 16 bit TID B_UINT16 u16TID; /**< TID*/ /// \brief 16bitCID B_UINT16 u16CID; /**< 16bitCID*/ /// \brief 16bitVCID B_UINT16 u16VCID; /**< 16bitVCID*/ #ifdef BECEEM_SIGNALLING_INTERFACE_API CServiceFlowParamSI sfAuthorizedSet; /// \brief structure AdmittedSet CServiceFlowParamSI sfAdmittedSet; /// \brief structure ActiveSet CServiceFlowParamSI sfActiveSet; #endif /// \brief structure AuthorizedSet #ifdef BECEEM_TARGET CServiceFlowParamSI *psfAuthorizedSet; /// \brief structure AdmittedSet CServiceFlowParamSI *psfAdmittedSet; /// \brief structure ActiveSet CServiceFlowParamSI *psfActiveSet; #else /// \brief structure AuthorizedSet stServiceFlowParamSI *psfAuthorizedSet; /**< AuthorizedSet of type stServiceFlowParamSI*/ /// \brief structure AdmittedSet stServiceFlowParamSI *psfAdmittedSet; /**< AdmittedSet of type stServiceFlowParamSI*/ /// \brief structure ActiveSet stServiceFlowParamSI *psfActiveSet; /**< sfActiveSet of type stServiceFlowParamSI*/ #endif B_UINT8 u8CC; /**< Confirmation Code*/ B_UINT8 u8Padd; /**< 8-bit Padding */ B_UINT16 u16Padd; /**< 16 bit Padding */ #ifdef USING_VXWORKS USE_DATA_MEMORY_MANAGER(); #endif }stLocalSFAddIndication; typedef struct _stLocalSFAddIndication *pstLocalSFAddIndication; /** structure stLocalSFChangeRequest is same as structure stLocalSFAddIndication */ typedef struct _stLocalSFAddIndication stLocalSFChangeRequest, *pstLocalSFChangeRequest; /** structure stLocalSFChangeIndication is same as structure stLocalSFAddIndication */ typedef struct _stLocalSFAddIndication stLocalSFChangeIndication, *pstLocalSFChangeIndication; /** structure stLocalSFDeleteRequest */ typedef struct _stLocalSFDeleteRequest{ #ifdef BECEEM_TARGET _stLocalSFDeleteRequest( ) : u8Type(0x00), u8Padding(0x00), u16TID(0x0000), u32SFID (0x00000000) {} #endif B_UINT8 u8Type; /**< Type*/ B_UINT8 u8Padding; /**< Padding byte*/ B_UINT16 u16TID; /**< TID*/ /// \brief 32bitSFID B_UINT32 u32SFID; /**< SFID*/ #ifdef USING_VXWORKS USE_DATA_MEMORY_MANAGER(); #endif }stLocalSFDeleteRequest, *pstLocalSFDeleteRequest; /** structure stLocalSFDeleteIndication */ typedef struct stLocalSFDeleteIndication{ #ifdef BECEEM_TARGET stLocalSFDeleteIndication( ) : u8Type(0x00), u8Padding(0x00), u16TID(0x0000), u16CID(0x0000), u16VCID(0x0000),u32SFID (0x00000000) {} #endif B_UINT8 u8Type; /**< Type */ B_UINT8 u8Padding; /**< Padding */ B_UINT16 u16TID; /**< TID */ /// \brief 16bitCID B_UINT16 u16CID; /**< CID */ /// \brief 16bitVCID B_UINT16 u16VCID; /**< VCID */ /// \brief 32bitSFID B_UINT32 u32SFID; /**< SFID */ /// \brief 8bit Confirmation code B_UINT8 u8ConfirmationCode; /**< Confirmation code */ B_UINT8 u8Padding1[3]; /**< 3 byte Padding */ #ifdef USING_VXWORKS USE_DATA_MEMORY_MANAGER(); #endif }stLocalSFDeleteIndication; typedef struct _stIM_SFHostNotify { B_UINT32 SFID; //SFID of the service flow B_UINT16 newCID; //the new/changed CID B_UINT16 VCID; //Get new Vcid if the flow has been made active in CID update TLV, but was inactive earlier or the orig vcid B_UINT8 RetainSF; //Indication to Host if the SF is to be retained or deleted; if TRUE-retain else delete B_UINT8 QoSParamSet; //QoS paramset of the retained SF B_UINT16 u16reserved; //For byte alignment } stIM_SFHostNotify; #endif