]>
git.proxmox.com Git - mirror_iproute2.git/blob - tc/tc_util.h
5 #include <linux/pkt_sched.h>
6 #include <linux/pkt_cls.h>
7 #include <linux/gen_stats.h>
12 struct qdisc_util
*next
;
14 int (*parse_qopt
)(struct qdisc_util
*qu
, int argc
, char **argv
, struct nlmsghdr
*n
);
15 int (*print_qopt
)(struct qdisc_util
*qu
, FILE *f
, struct rtattr
*opt
);
16 int (*print_xstats
)(struct qdisc_util
*qu
, FILE *f
, struct rtattr
*xstats
);
18 int (*parse_copt
)(struct qdisc_util
*qu
, int argc
, char **argv
, struct nlmsghdr
*n
);
19 int (*print_copt
)(struct qdisc_util
*qu
, FILE *f
, struct rtattr
*opt
);
24 struct filter_util
*next
;
26 int (*parse_fopt
)(struct filter_util
*qu
, char *fhandle
, int argc
,
27 char **argv
, struct nlmsghdr
*n
);
28 int (*print_fopt
)(struct filter_util
*qu
, FILE *f
, struct rtattr
*opt
, __u32 fhandle
);
33 struct action_util
*next
;
35 int (*parse_aopt
)(struct action_util
*a
, int *argc
, char ***argv
,
36 int code
, struct nlmsghdr
*n
);
37 int (*print_aopt
)(struct action_util
*au
, FILE *f
, struct rtattr
*opt
);
38 int (*print_xstats
)(struct action_util
*au
, FILE *f
, struct rtattr
*xstats
);
41 extern struct qdisc_util
*get_qdisc_kind(const char *str
);
42 extern struct filter_util
*get_filter_kind(const char *str
);
44 extern int get_qdisc_handle(__u32
*h
, const char *str
);
45 extern int get_rate(unsigned *rate
, const char *str
);
46 extern int get_percent(unsigned *percent
, const char *str
);
47 extern int get_size(unsigned *size
, const char *str
);
48 extern int get_size_and_cell(unsigned *size
, int *cell_log
, char *str
);
49 extern int get_usecs(unsigned *usecs
, const char *str
);
50 extern void print_rate(char *buf
, int len
, __u32 rate
);
51 extern void print_size(char *buf
, int len
, __u32 size
);
52 extern void print_percent(char *buf
, int len
, __u32 percent
);
53 extern void print_qdisc_handle(char *buf
, int len
, __u32 h
);
54 extern void print_usecs(char *buf
, int len
, __u32 usecs
);
55 extern char * sprint_rate(__u32 rate
, char *buf
);
56 extern char * sprint_size(__u32 size
, char *buf
);
57 extern char * sprint_qdisc_handle(__u32 h
, char *buf
);
58 extern char * sprint_tc_classid(__u32 h
, char *buf
);
59 extern char * sprint_usecs(__u32 usecs
, char *buf
);
60 extern char * sprint_percent(__u32 percent
, char *buf
);
62 extern void print_tcstats_attr(FILE *fp
, struct rtattr
*tb
[], char *prefix
, struct rtattr
**xstats
);
63 extern void print_tcstats2_attr(FILE *fp
, struct rtattr
*rta
, char *prefix
, struct rtattr
**xstats
);
65 extern int get_tc_classid(__u32
*h
, const char *str
);
66 extern int print_tc_classid(char *buf
, int len
, __u32 h
);
67 extern char * sprint_tc_classid(__u32 h
, char *buf
);
69 extern int tc_print_police(FILE *f
, struct rtattr
*tb
);
70 extern int parse_police(int *, char ***, int, struct nlmsghdr
*);
72 extern char *action_n2a(int action
, char *buf
, int len
);
73 extern int action_a2n(char *arg
, int *result
);
74 extern int act_parse_police(struct action_util
*a
,int *, char ***, int, struct nlmsghdr
*);
75 extern int print_police(struct action_util
*a
, FILE *f
,
77 extern int police_print_xstats(struct action_util
*a
,FILE *f
,
79 extern int tc_print_action(FILE *f
, const struct rtattr
*tb
);
80 extern int tc_print_ipt(FILE *f
, const struct rtattr
*tb
);
81 extern int parse_action(int *, char ***, int, struct nlmsghdr
*);
82 extern void print_tm(FILE *f
, const struct tcf_t
*tm
);