Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.8.
  1#ifndef _HOST_MIBSINTERFACE_H
  2#define _HOST_MIBSINTERFACE_H
  3
  4/*
  5 * Copyright (c) 2007 Beceem Communications Pvt. Ltd
  6 * File Name: HostMIBSInterface.h
  7 * Abstract: This file contains DS used by the Host to update the Host
  8 * statistics used for the MIBS.
  9 */
 10
 11#define MIBS_MAX_CLASSIFIERS		100
 12#define MIBS_MAX_PHSRULES		100
 13#define MIBS_MAX_SERVICEFLOWS		17
 14#define MIBS_MAX_IP_RANGE_LENGTH	4
 15#define MIBS_MAX_PORT_RANGE		4
 16#define MIBS_MAX_PROTOCOL_LENGTH	32
 17#define MIBS_MAX_PHS_LENGTHS		255
 18#define MIBS_IPV6_ADDRESS_SIZEINBYTES	0x10
 19#define MIBS_IP_LENGTH_OF_ADDRESS	4
 20#define MIBS_MAX_HIST_ENTRIES		12
 21#define MIBS_PKTSIZEHIST_RANGE		128
 22
 23union bcm_mibs_ip_addr {
 24	struct {
 25		/* Source Ip Address Range */
 26		unsigned long ulIpv4Addr[MIBS_MAX_IP_RANGE_LENGTH];
 27		/* Source Ip Mask Address Range */
 28		unsigned long ulIpv4Mask[MIBS_MAX_IP_RANGE_LENGTH];
 29	};
 30	struct {
 31		/* Source Ip Address Range */
 32		unsigned long ulIpv6Addr[MIBS_MAX_IP_RANGE_LENGTH * 4];
 33		/* Source Ip Mask Address Range */
 34		unsigned long ulIpv6Mask[MIBS_MAX_IP_RANGE_LENGTH * 4];
 35	};
 36	struct {
 37		unsigned char ucIpv4Address[MIBS_MAX_IP_RANGE_LENGTH * MIBS_IP_LENGTH_OF_ADDRESS];
 38		unsigned char ucIpv4Mask[MIBS_MAX_IP_RANGE_LENGTH * MIBS_IP_LENGTH_OF_ADDRESS];
 39	};
 40	struct {
 41		unsigned char ucIpv6Address[MIBS_MAX_IP_RANGE_LENGTH * MIBS_IPV6_ADDRESS_SIZEINBYTES];
 42		unsigned char ucIpv6Mask[MIBS_MAX_IP_RANGE_LENGTH * MIBS_IPV6_ADDRESS_SIZEINBYTES];
 43	};
 44};
 45
 46struct bcm_mibs_host_info {
 47	u64	GoodTransmits;
 48	u64	GoodReceives;
 49	/* this to keep track of the Tx and Rx MailBox Registers. */
 50	unsigned long	NumDesUsed;
 51	unsigned long	CurrNumFreeDesc;
 52	unsigned long	PrevNumFreeDesc;
 53	/* to keep track the no of byte received */
 54	unsigned long	PrevNumRcevBytes;
 55	unsigned long	CurrNumRcevBytes;
 56	/* QOS Related */
 57	unsigned long	BEBucketSize;
 58	unsigned long	rtPSBucketSize;
 59	unsigned long	LastTxQueueIndex;
 60	bool	TxOutofDescriptors;
 61	bool	TimerActive;
 62	u32	u32TotalDSD;
 63	u32	aTxPktSizeHist[MIBS_MAX_HIST_ENTRIES];
 64	u32	aRxPktSizeHist[MIBS_MAX_HIST_ENTRIES];
 65};
 66
 67struct bcm_mibs_classifier_rule {
 68	unsigned long	ulSFID;
 69	unsigned char	ucReserved[2];
 70	u16	uiClassifierRuleIndex;
 71	bool	bUsed;
 72	unsigned short	usVCID_Value;
 73	u8	u8ClassifierRulePriority;
 74	union bcm_mibs_ip_addr stSrcIpAddress;
 75	/* IP Source Address Length */
 76	unsigned char	ucIPSourceAddressLength;
 77	union bcm_mibs_ip_addr stDestIpAddress;
 78	/* IP Destination Address Length */
 79	unsigned char	ucIPDestinationAddressLength;
 80	unsigned char	ucIPTypeOfServiceLength;
 81	unsigned char	ucTosLow;
 82	unsigned char	ucTosHigh;
 83	unsigned char	ucTosMask;
 84	unsigned char	ucProtocolLength;
 85	unsigned char	ucProtocol[MIBS_MAX_PROTOCOL_LENGTH];
 86	unsigned short	usSrcPortRangeLo[MIBS_MAX_PORT_RANGE];
 87	unsigned short	usSrcPortRangeHi[MIBS_MAX_PORT_RANGE];
 88	unsigned char	ucSrcPortRangeLength;
 89	unsigned short	usDestPortRangeLo[MIBS_MAX_PORT_RANGE];
 90	unsigned short	usDestPortRangeHi[MIBS_MAX_PORT_RANGE];
 91	unsigned char	ucDestPortRangeLength;
 92	bool	bProtocolValid;
 93	bool	bTOSValid;
 94	bool	bDestIpValid;
 95	bool	bSrcIpValid;
 96	unsigned char	ucDirection;
 97	bool	bIpv6Protocol;
 98	u32	u32PHSRuleID;
 99};
100
101struct bcm_mibs_phs_rule {
102	unsigned long	ulSFID;
103	u8	u8PHSI;
104	u8	u8PHSFLength;
105	u8	u8PHSF[MIBS_MAX_PHS_LENGTHS];
106	u8	u8PHSMLength;
107	u8	u8PHSM[MIBS_MAX_PHS_LENGTHS];
108	u8	u8PHSS;
109	u8	u8PHSV;
110	u8	reserved[5];
111	long	PHSModifiedBytes;
112	unsigned long	PHSModifiedNumPackets;
113	unsigned long	PHSErrorNumPackets;
114};
115
116struct bcm_mibs_parameters {
117	u32 wmanIfSfid;
118	u32 wmanIfCmnCpsSfState;
119	u32 wmanIfCmnCpsMaxSustainedRate;
120	u32 wmanIfCmnCpsMaxTrafficBurst;
121	u32 wmanIfCmnCpsMinReservedRate;
122	u32 wmanIfCmnCpsToleratedJitter;
123	u32 wmanIfCmnCpsMaxLatency;
124	u32 wmanIfCmnCpsFixedVsVariableSduInd;
125	u32 wmanIfCmnCpsSduSize;
126	u32 wmanIfCmnCpsSfSchedulingType;
127	u32 wmanIfCmnCpsArqEnable;
128	u32 wmanIfCmnCpsArqWindowSize;
129	u32 wmanIfCmnCpsArqBlockLifetime;
130	u32 wmanIfCmnCpsArqSyncLossTimeout;
131	u32 wmanIfCmnCpsArqDeliverInOrder;
132	u32 wmanIfCmnCpsArqRxPurgeTimeout;
133	u32 wmanIfCmnCpsArqBlockSize;
134	u32 wmanIfCmnCpsMinRsvdTolerableRate;
135	u32 wmanIfCmnCpsReqTxPolicy;
136	u32 wmanIfCmnSfCsSpecification;
137	u32 wmanIfCmnCpsTargetSaid;
138};
139
140struct bcm_mibs_table {
141	unsigned long	ulSFID;
142	unsigned short	usVCID_Value;
143	unsigned int	uiThreshold;
144	u8	u8TrafficPriority;
145	bool	bValid;
146	bool	bActive;
147	bool	bActivateRequestSent;
148	u8	u8QueueType;
149	unsigned int	uiMaxBucketSize;
150	unsigned int	uiCurrentQueueDepthOnTarget;
151	unsigned int	uiCurrentBytesOnHost;
152	unsigned int	uiCurrentPacketsOnHost;
153	unsigned int	uiDroppedCountBytes;
154	unsigned int	uiDroppedCountPackets;
155	unsigned int	uiSentBytes;
156	unsigned int	uiSentPackets;
157	unsigned int	uiCurrentDrainRate;
158	unsigned int	uiThisPeriodSentBytes;
159	u64	liDrainCalculated;
160	unsigned int	uiCurrentTokenCount;
161	u64	liLastUpdateTokenAt;
162	unsigned int	uiMaxAllowedRate;
163	unsigned int	NumOfPacketsSent;
164	unsigned char ucDirection;
165	unsigned short	usCID;
166	struct bcm_mibs_parameters stMibsExtServiceFlowTable;
167	unsigned int	uiCurrentRxRate;
168	unsigned int	uiThisPeriodRxBytes;
169	unsigned int	uiTotalRxBytes;
170	unsigned int	uiTotalTxBytes;
171};
172
173struct bcm_mibs_dropped_cntrl_msg {
174	unsigned long cm_responses;
175	unsigned long cm_control_newdsx_multiclassifier_resp;
176	unsigned long link_control_resp;
177	unsigned long status_rsp;
178	unsigned long stats_pointer_resp;
179	unsigned long idle_mode_status;
180	unsigned long auth_ss_host_msg;
181	unsigned long low_priority_message;
182};
183
184struct bcm_host_stats_mibs {
185	struct bcm_mibs_host_info stHostInfo;
186	struct bcm_mibs_classifier_rule astClassifierTable[MIBS_MAX_CLASSIFIERS];
187	struct bcm_mibs_table	astSFtable[MIBS_MAX_SERVICEFLOWS];
188	struct bcm_mibs_phs_rule astPhsRulesTable[MIBS_MAX_PHSRULES];
189	struct bcm_mibs_dropped_cntrl_msg stDroppedAppCntrlMsgs;
190};
191
192#endif