From e75a1c373ad447ddf376b77f36c8e4ef039de3b5 Mon Sep 17 00:00:00 2001 From: Cong Wang Date: Wed, 28 Jan 2015 17:12:12 -0800 Subject: [PATCH] route/tc: add rtnl_tc_stat2str() and rtnl_tc_str2stat() [thaller@redhat.com: add symbols to libnl-route-3.sym] Signed-off-by: Cong Wang Signed-off-by: Thomas Haller --- include/netlink/route/tc.h | 2 ++ lib/route/tc.c | 22 ++++++++++++++++++++++ libnl-route-3.sym | 2 ++ 3 files changed, 26 insertions(+) diff --git a/include/netlink/route/tc.h b/include/netlink/route/tc.h index 870c1f2..f1f0f8d 100644 --- a/include/netlink/route/tc.h +++ b/include/netlink/route/tc.h @@ -97,6 +97,8 @@ extern uint32_t rtnl_tc_get_parent(struct rtnl_tc *); extern int rtnl_tc_set_kind(struct rtnl_tc *, const char *); extern char * rtnl_tc_get_kind(struct rtnl_tc *); extern uint64_t rtnl_tc_get_stat(struct rtnl_tc *, enum rtnl_tc_stat); +extern char * rtnl_tc_stat2str(enum rtnl_tc_stat, char *, size_t); +extern int rtnl_tc_str2stat(const char *); extern int rtnl_tc_calc_txtime(int, int); extern int rtnl_tc_calc_bufsize(int, int); diff --git a/lib/route/tc.c b/lib/route/tc.c index 1dcb986..b24c06e 100644 --- a/lib/route/tc.c +++ b/lib/route/tc.c @@ -564,6 +564,28 @@ uint64_t rtnl_tc_get_stat(struct rtnl_tc *tc, enum rtnl_tc_stat id) * @{ */ +static const struct trans_tbl tc_stats[] = { + __ADD(RTNL_TC_PACKETS, packets), + __ADD(RTNL_TC_BYTES, bytes), + __ADD(RTNL_TC_RATE_BPS, rate_bps), + __ADD(RTNL_TC_RATE_PPS, rate_pps), + __ADD(RTNL_TC_QLEN, qlen), + __ADD(RTNL_TC_BACKLOG, backlog), + __ADD(RTNL_TC_DROPS, drops), + __ADD(RTNL_TC_REQUEUES, requeues), + __ADD(RTNL_TC_OVERLIMITS, overlimits), +}; + +char *rtnl_tc_stat2str(enum rtnl_tc_stat st, char *buf, size_t len) +{ + return __type2str(st, buf, len, tc_stats, ARRAY_SIZE(tc_stats)); +} + +int rtnl_tc_str2stat(const char *name) +{ + return __str2type(name, tc_stats, ARRAY_SIZE(tc_stats)); +} + /** * Calculate time required to transmit buffer at a specific rate * @arg bufsize Size of buffer to be transmited in bytes. diff --git a/libnl-route-3.sym b/libnl-route-3.sym index a0ca051..2768f05 100644 --- a/libnl-route-3.sym +++ b/libnl-route-3.sym @@ -850,6 +850,8 @@ global: rtnl_skbedit_set_mark; rtnl_skbedit_set_priority; rtnl_skbedit_set_queue_mapping; + rtnl_tc_stat2str; + rtnl_tc_str2stat; rtnl_u32_add_mark; rtnl_u32_del_mark; } libnl_3; -- 2.40.0