#include <altq/altq_rmclass.h>
#include <altq/altq_cbq.h>
typedef enum {
CBQ_QOS_NONE,
CBQ_QOS_GUARANTEED,
CBQ_QOS_PREDICTIVE,
CBQ_QOS_CNTR_DELAY,
CBQ_QOS_CNTR_LOAD
} cbq_tos_t;
struct cbq_ifinfo {
struct classinfo *root_class;
struct classinfo *default_class;
struct classinfo *ctl_class;
double psPerByte;
int is_wrr;
int is_efficient;
bool no_control;
};
struct cbq_classinfo {
uint64_t bandwidth;
uint64_t allocated;
u_int maxdelay;
u_int maxburst;
u_int minburst;
u_int av_pkt_size;
u_int max_pkt_size;
cbq_class_spec_t class_spec;
};
int cbq_interface_parser(const char *ifname, int argc, char **argv);
int cbq_class_parser(const char *ifname, const char *class_name,
const char *parent_name, int argc, char **argv);
int qcmd_cbq_add_if(const char *ifname, uint64_t bandwidth,
int is_wrr, int efficient, bool no_control);
int qcmd_cbq_add_class(const char *ifname, const char *class_name,
const char *parent_name, const char *borrow_name,
u_int pri, uint64_t bandwidth,
u_int maxdelay, u_int maxburst, u_int minburst,
u_int av_pkt_size, u_int max_pkt_size,
int admission_type, int flags);
int qcmd_cbq_modify_class(const char *ifname, const char *class_name,
u_int pri, uint64_t bandwidth,
u_int maxdelay, u_int maxburst, u_int minburst,
u_int av_pkt_size, u_int max_pkt_size, int flags);
int qop_cbq_add_if(struct ifinfo **rp, const char *ifname,
uint64_t bandwidth, int is_wrr, int efficient, bool no_control);
int qop_cbq_add_class(struct classinfo **rp, const char *class_name,
struct ifinfo *ifinfo, struct classinfo *parent,
struct classinfo *borrow, u_int pri, uint64_t bandwidth,
u_int maxdelay, u_int maxburst, u_int minburst,
u_int av_pkt_size, u_int max_pkt_size,
int admission_type, int flags);
int qop_cbq_modify_class(struct classinfo *clinfo, u_int pri, uint64_t bandwidth,
u_int maxdelay, u_int maxburst, u_int minburst,
u_int av_pkt_size, u_int max_pkt_size, int flags);