#ifndef CNTRL_SIGNALING_INTERFACE_ #define CNTRL_SIGNALING_INTERFACE_ #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 #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 accommodate 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 struct _stCPacketClassificationRuleSI{ /** 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; }; typedef struct _stCPacketClassificationRuleSI CCPacketClassificationRuleSI,stCPacketClassificationRuleSI, *pstCPacketClassificationRuleSI; /// \brief class CPhsRuleSI typedef struct _stPhsRuleSI { /** 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 suppressed 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 suppressed 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]; }stPhsRuleSI,*pstPhsRuleSI; typedef stPhsRuleSI CPhsRuleSI; /// \brief structure cConvergenceSLTypes struct _stConvergenceSLTypes{ /** 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 stCPacketClassificationRuleSI cCPacketClassificationRule; /// \brief class CPhsRuleSI struct _stPhsRuleSI cPhsRule; }; typedef struct _stConvergenceSLTypes stConvergenceSLTypes,CConvergenceSLTypes, *pstConvergenceSLTypes; /// \brief structure CServiceFlowParamSI typedef struct _stServiceFlowParamSI{ /** 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; //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*/ /** Structure for Convergence SubLayer Types with a maximum of 4 classifiers */ stConvergenceSLTypes cConvergenceSLTypes[MAX_CLASSIFIERS_IN_SF]; } stServiceFlowParamSI, *pstServiceFlowParamSI; typedef stServiceFlowParamSI CServiceFlowParamSI; /** structure stLocalSFAddRequest */ typedef struct _stLocalSFAddRequest{ 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 stServiceFlowParamSI *psfParameterSet; /**< structure ParameterSet*/ }stLocalSFAddRequest, *pstLocalSFAddRequest; /** structure stLocalSFAddIndication */ typedef struct _stLocalSFAddIndication{ 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*/ /// \brief structure AuthorizedSet /// \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*/ B_UINT8 u8CC; /**< Confirmation Code*/ B_UINT8 u8Padd; /**< 8-bit Padding */ B_UINT16 u16Padd; /**< 16 bit Padding */ }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{ B_UINT8 u8Type; /**< Type*/ B_UINT8 u8Padding; /**< Padding byte*/ B_UINT16 u16TID; /**< TID*/ /// \brief 32bitSFID B_UINT32 u32SFID; /**< SFID*/ }stLocalSFDeleteRequest, *pstLocalSFDeleteRequest; /** structure stLocalSFDeleteIndication */ typedef struct stLocalSFDeleteIndication{ 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 */ }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