Linux SDK (lite-qmi)  MBPL_SDK_R25_ENG3
qaGobiApiQos.h
Go to the documentation of this file.
1 
9 /*
10  * Copyright: © 2013-2015 Sierra Wireless, Inc. all rights reserved
11  */
12 #ifndef __GOBI_API_QOS_H__
13 #define __GOBI_API_QOS_H__
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
24 #define MAX_QOS_SPEC_PER_APN (10)
25 
32 #define MAX_QOS_FILTER_TLV 25
33 
46 typedef struct
47 {
48  ULONG dataRateMax;
49  ULONG guaranteedRate;
50 } dataRate;
51 
66 typedef struct
67 {
68  ULONG peakRate;
69  ULONG tokenRate;
70  ULONG bucketSz;
71 } tokenBucket;
72 
86 typedef struct
87 {
88  WORD multiplier;
89  WORD exponent;
90 } pktErrRate;
91 
188 typedef struct
189 {
190  BYTE index;
191  WORD *pProfileId3GPP2;
192  BYTE *p3GPP2Pri;
193  BYTE *pTrafficClass;
194  dataRate *pDataRate;
195  tokenBucket *pTokenBucket;
196  ULONG *pLatency;
197  ULONG *pJitter;
198  pktErrRate *pPktErrRate;
199  ULONG *pMinPolicedPktSz;
200  ULONG *pMaxAllowedPktSz;
201  WORD *p3GPPResResidualBER;
202  BYTE *p3GPPTraHdlPri;
203  BYTE *p3GPPImCn;
204  BYTE *p3GPPSigInd;
205  BYTE *pLteQci;
206 } swiQosFlow;
207 
222 typedef struct
223 {
224  ULONG addr;
225  ULONG subnetMask;
226 } IPv4Addr;
227 
245 typedef struct
246 {
247  BYTE val;
248  BYTE mask;
249 } Tos;
250 
264 typedef struct
265 {
266  BYTE addr[16];
267  BYTE prefixLen;
268 } IPv6Addr;
269 
287 typedef struct
288 {
289  BYTE val;
290  BYTE mask;
291 } IPv6TrafCls;
292 
306 typedef struct
307 {
308  WORD port;
309  WORD range;
310 } Port;
311 
420 typedef struct
421 {
422  BYTE index;
423  BYTE version;
424  IPv4Addr *pIPv4SrcAddr;
425  IPv4Addr *pIPv4DstAddr;
426  BYTE *pNxtHdrProto;
427  Tos *pTos;
428  IPv6Addr *pIPv6SrcAddr;
429  IPv6Addr *pIPv6DstAddr;
430  IPv6TrafCls *pIPv6TrafCls;
431  ULONG *pIPv6Label;
432  Port *pTCPSrcPort;
433  Port *pTCPDstPort;
434  Port *pUDPSrcPort;
435  Port *pUDPDstPort;
436  ULONG *pEspSpi;
437  WORD *pPrecedence;
438  WORD *pId;
439  Port *pTranSrcPort;
440  Port *pTranDstPort;
441 } swiQosFilter;
442 
464 typedef struct
465 {
466  BYTE index;
467  swiQosFlow *pTxFlow;
468  swiQosFlow *pRxFlow;
469  swiQosFilter *pTxFilter;
470  swiQosFilter *pRxFilter;
471 } swiQosReq;
472 
485 typedef struct
486 {
487  BYTE sz;
488  ULONG *pIds;
489 } swiQosIds;
490 
513 typedef struct
514 {
515  ULONG id;
516  swiQosFlow *pTxFlow;
517  swiQosFlow *pRxFlow;
518  swiQosFilter *pTxFilter;
519  swiQosFilter *pRxFilter;
521 
534 typedef struct
535 {
536  swiQosFlow *pTxFlow;
537  swiQosFlow *pRxFlow;
538 } swiQosGranted;
539 
552 typedef struct
553 {
554  WORD tech;
555  BYTE *pProfSz;
556  WORD *pProfValues;
557 } NWProfile;
558 
579 typedef struct
580 {
581  ULONG bearerId;
582  ULONG tx_pkt;
583  ULONG tx_pkt_drp;
584  ULONGLONG tx_bytes;
585  ULONGLONG tx_bytes_drp;
586 } sQosFlowStat;
587 
622 typedef struct
623 {
624  ULONG apnId;
625  ULONG total_tx_pkt;
626  ULONG total_tx_pkt_drp;
627  ULONG total_rx_pkt;
628  ULONGLONG total_tx_bytes;
629  ULONGLONG total_tx_bytes_drp;
630  ULONGLONG total_rx_bytes;
631 
632  ULONG numQosFlow;
634 } sQosStat;
635 
669 typedef struct
670 {
671  ULONG apnId;
672  BYTE ambr_ul;
673  BYTE ambr_dl;
674  BYTE ambr_ul_ext;
675  BYTE ambr_dl_ext;
676  BYTE ambr_ul_ext2;
677  BYTE ambr_dl_ext2;
679 
799 typedef struct
800 {
801  ULONGLONG flow_valid_params;
802  ULONG ip_flow_trf_cls;
803  ULONGLONG data_rate_max;
804  ULONGLONG guaranteed_rate;
805  ULONG peak_rate;
806  ULONG token_rate;
807  ULONG bucket_size;
808  ULONG ip_flow_latency;
809  ULONG ip_flow_jitter;
810  WORD ip_flow_pkt_error_rate_multiplier;
811  WORD ip_flow_pkt_error_rate_exponen;
812  ULONG ip_flow_min_policed_packet_size;
813  ULONG ip_flow_max_allowed_packet_size;
814  ULONG ip_flow_3gpp_residual_bit_error_rate;
815  ULONG ip_flow_3gpp_traffic_handling_priority;
816  WORD ip_flow_3gpp2_profile_id;
817  BYTE ip_flow_3gpp2_flow_priority;
818  BYTE ip_flow_3gpp_im_cn_flag;
819  BYTE ip_flow_3gpp_sig_ind;
820  ULONG ip_flow_lte_qci;
821 }QosFlow;
822 
834 typedef struct
835 {
836  BYTE tx_qos_flow_len;
837  QosFlow *pQosFlow;
838 }QosFlowList;
839 
958 typedef struct
959 {
960  BYTE ip_version;
961  ULONGLONG ipv4_valid_params;
962  ULONG ipv4_addr_1;
963  ULONG ipv4_subnet_mask_1;
964  ULONG ipv4_addr_2;
965  ULONG ipv4_subnet_mask_2;
966  BYTE ipv4_val;
967  BYTE ipv4_mask;
968  ULONGLONG ipv6_valid_params;
969  BYTE ipv6_address_1[16];
970  BYTE ipv6_prefix_len_1;
971  BYTE ipv6_address_2[16];
972  BYTE ipv6_prefix_len_2;
973  BYTE ipv6_val;
974  BYTE ipv6_mask;
975  ULONG ipv6_flow_label;
976  ULONG ipv6_xport_protocol;
977  ULONGLONG port_valid_params;
978  WORD src_port;
979  WORD src_range;
980  WORD des_port;
981  WORD des_range;
982  ULONGLONG valid_params_4;
983  WORD port_3;
984  WORD range_3;
985  WORD port_4;
986  WORD range_4;
987  ULONGLONG icmp_valid_params;
988  BYTE icmp_type;
989  BYTE icmp_code;
990  ULONGLONG ipsec_valid_params;
991  ULONG ipsec_spi;
992  ULONGLONG ipsec_valid_params_2;
993  ULONG ipsec_spi_2;
994  WORD ipsec_filter_id;
995  WORD filter_precedence;
997 
1010 typedef struct
1011 {
1012  BYTE tx_qos_filter_len;
1013  QosFilterSpecs *pQoSFilterSpecs;
1014 
1016 
1028 typedef struct
1029 {
1030  BYTE tx_filter_match_all_len;
1031  WORD *pfilter_id;
1032 
1034 
1047 typedef struct
1048 {
1049  BYTE tx_rx_5g_qci_len;
1050  ULONG *pTxRx_5g_qci;
1051 
1052 }TxRx5GQCI;
1053 
1067 typedef struct
1068 {
1069  BYTE tx_averaging_window_len;
1070  ULONG *pTxRx_averaging_window;
1071 
1073 
1103 typedef struct
1104 {
1105  BYTE tx_rx_qos_flow_error_len;
1106  ULONG *pTxRx_qos_flow_error;
1108 
1138 typedef struct
1139 {
1140  BYTE tx_rx_qos_filter_error_len;
1141  ULONG *pTxRx_qos_filter_error;
1143 
1144 #ifdef __cplusplus
1145 } /* extern "C" { */
1146 #endif
1147 
1148 #endif /* __GOBI_API_QOS_H__ */
Definition: qaGobiApiQos.h:306
Definition: qaGobiApiQos.h:834
Definition: qaGobiApiQos.h:799
Definition: qaGobiApiQos.h:264
Definition: qaGobiApiQos.h:534
Definition: qaGobiApiQos.h:1067
Definition: qaGobiApiQos.h:958
Definition: qaGobiApiQos.h:622
Definition: qaGobiApiQos.h:222
Definition: qaGobiApiQos.h:552
Definition: qaGobiApiQos.h:420
Definition: qaGobiApiQos.h:1103
Definition: qaGobiApiQos.h:1010
Definition: qaGobiApiQos.h:579
#define MAX_QOS_SPEC_PER_APN
Definition: qaGobiApiQos.h:24
Definition: qaGobiApiQos.h:46
Definition: qaGobiApiQos.h:669
Definition: qaGobiApiQos.h:1047
Definition: qaGobiApiQos.h:464
Definition: qaGobiApiQos.h:287
Definition: qaGobiApiQos.h:188
Definition: qaGobiApiQos.h:485
Definition: qaGobiApiQos.h:513
Definition: qaGobiApiQos.h:1138
Definition: qaGobiApiQos.h:245
Definition: qaGobiApiQos.h:1028
Definition: qaGobiApiQos.h:86
Definition: qaGobiApiQos.h:66