Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __PJ_SOCK_QOS_H__
00021 #define __PJ_SOCK_QOS_H__
00022
00028 #include <pj/sock.h>
00029
00030 PJ_BEGIN_DECL
00031
00032
00233 typedef enum pj_qos_type
00234 {
00235 PJ_QOS_TYPE_BEST_EFFORT,
00238 PJ_QOS_TYPE_BACKGROUND,
00239 PJ_QOS_TYPE_VIDEO,
00240 PJ_QOS_TYPE_VOICE,
00241 PJ_QOS_TYPE_CONTROL
00242 } pj_qos_type;
00243
00248 typedef enum pj_qos_flag
00249 {
00250 PJ_QOS_PARAM_HAS_DSCP = 1,
00251 PJ_QOS_PARAM_HAS_SO_PRIO = 2,
00252 PJ_QOS_PARAM_HAS_WMM = 4
00253 } pj_qos_flag;
00254
00255
00259 typedef enum pj_qos_wmm_prio
00260 {
00261 PJ_QOS_WMM_PRIO_BULK_EFFORT,
00262 PJ_QOS_WMM_PRIO_BULK,
00263 PJ_QOS_WMM_PRIO_VIDEO,
00264 PJ_QOS_WMM_PRIO_VOICE
00265 } pj_qos_wmm_prio;
00266
00267
00271 typedef struct pj_qos_params
00272 {
00273 pj_uint8_t flags;
00275 pj_uint8_t dscp_val;
00276 pj_uint8_t so_prio;
00277 pj_qos_wmm_prio wmm_prio;
00278 } pj_qos_params;
00279
00280
00281
00293 PJ_DECL(pj_status_t) pj_sock_set_qos_type(pj_sock_t sock,
00294 pj_qos_type type);
00295
00308 PJ_DECL(pj_status_t) pj_sock_get_qos_type(pj_sock_t sock,
00309 pj_qos_type *p_type);
00310
00311
00336 PJ_DECL(pj_status_t) pj_sock_apply_qos(pj_sock_t sock,
00337 pj_qos_type qos_type,
00338 pj_qos_params *qos_params,
00339 unsigned log_level,
00340 const char *log_sender,
00341 const char *sock_name);
00342
00349 PJ_DECL(pj_status_t) pj_sock_apply_qos2(pj_sock_t sock,
00350 pj_qos_type qos_type,
00351 const pj_qos_params *qos_params,
00352 unsigned log_level,
00353 const char *log_sender,
00354 const char *sock_name);
00355
00366 PJ_DECL(pj_status_t) pj_qos_get_params(pj_qos_type type,
00367 pj_qos_params *p_param);
00368
00369
00382 PJ_DECL(pj_status_t) pj_qos_get_type(const pj_qos_params *param,
00383 pj_qos_type *p_type);
00384
00385
00400 PJ_DECL(pj_status_t) pj_sock_set_qos_params(pj_sock_t sock,
00401 pj_qos_params *param);
00402
00415 PJ_DECL(pj_status_t) pj_sock_get_qos_params(pj_sock_t sock,
00416 pj_qos_params *p_param);
00417
00418
00424 PJ_END_DECL
00425
00426 #endif
00427