summaryrefslogblamecommitdiffstats
path: root/drivers/staging/bcm/cntrl_SignalingInterface.h
blob: 38bed281420d23ab6c334ab3c8ba0c4543c9ada4 (plain) (tree)
1
2
3


                                  































                                                                                                   




                                                                                
                                       
                                                     
                                 
                                               
                           
                                                                        
                                                  
                                                                
                                         
                                               
                                        
                                       
                                                          
                                                             
                           
                                                  
                                              
                                                                                   
                                                                      
                                                
                                             
                                                                                 
                                                                      
                                                   
                                                
                                                                  
                                                                          
                                                 
                                              
                                                                
                                                                         
                                                          
                                               
                                                                                           
                                                                        
                                                     
                                                 
                                                                                      
                                                                         
                                   
                                  
                                                   
                                                 
                                                       
                                 
                                                                                   
                                                      
                                                                   


                                                                                
                                                  
                                                          
                                                         

                                       
  
                                                                                                                                           

                           
                             
                                                 
                       
                                              


                                                                                                                                    
                                              
                             
                                  
                                        
                                                                               
                       
                                                                                                             
                       
                                                                   
                                                
                                                            


                                                                   
                               

                                        
                              
                                                            
                                     
                                                      
                               
                              




                                                                 
  
                                                                                                       

                                        








                                                                       
                                                         


                                                        
                                           


                                                                                
                                               






                                                                               
                                          


                                       
                                                      

                                       

                                                                             




                                                                 
                                                                       




                                                          
                                             
                                      
                                                              
                                         
                                                           
                                       
                                                                                           








                                                                                                                             
                                                                                                       
                                                          
                                                                         


                                                                                
                                                                                              
                                    
                                                     
                                         
                                                                          


                                                  
                                                                          
                                   
                                                                                                          


                                                                                                   
                                                                                                          








                                                                                                  
                                                  




                                                                                              
                                                          
                                  
                                                
                                               
                                                                         


                                                        
                                                         
                                               
                                                                  
                                                                  
                                                


                                                                             


                                                                        
                                                                        
 

                                                 



                             


                                                            
                             
                                         
                           
                                          
                            


                                                                              
 
                                             



                                


                                                            
                             
















                                                                                                   













                                                                                              






                                                   



                                   









                                           
                                         


                                                             


                                 





                                                                                                                                   


                    
#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 suppression */
	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 parameters 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