1/*
2 * netlink/cli/tc.h     CLI Traffic Control Helpers
3 *
4 *	This library is free software; you can redistribute it and/or
5 *	modify it under the terms of the GNU Lesser General Public
6 *	License as published by the Free Software Foundation version 2.1
7 *	of the License.
8 *
9 * Copyright (c) 2010-2011 Thomas Graf <tgraf@suug.ch>
10 */
11
12#ifndef __NETLINK_CLI_TC_H_
13#define __NETLINK_CLI_TC_H_
14
15#include <netlink/route/tc.h>
16
17struct rtnl_tc_ops;
18
19extern void nl_cli_tc_parse_dev(struct rtnl_tc *, struct nl_cache *, char *);
20extern void nl_cli_tc_parse_parent(struct rtnl_tc *, char *);
21extern void nl_cli_tc_parse_handle(struct rtnl_tc *, char *, int);
22extern void nl_cli_tc_parse_mtu(struct rtnl_tc *, char *);
23extern void nl_cli_tc_parse_mpu(struct rtnl_tc *, char *);
24extern void nl_cli_tc_parse_overhead(struct rtnl_tc *, char *);
25extern void nl_cli_tc_parse_linktype(struct rtnl_tc *, char *);
26extern void nl_cli_tc_parse_kind(struct rtnl_tc *, char *);
27
28struct nl_cli_tc_module
29{
30	const char *		tm_name;
31	enum rtnl_tc_type	tm_type;
32	struct rtnl_tc_ops *	tm_ops;
33	void		      (*tm_parse_argv)(struct rtnl_tc *, int, char **);
34	struct nl_list_head	tm_list;
35};
36
37extern struct nl_cli_tc_module *nl_cli_tc_lookup(struct rtnl_tc_ops *);
38extern void nl_cli_tc_register(struct nl_cli_tc_module *);
39extern void nl_cli_tc_unregister(struct nl_cli_tc_module *);
40
41#endif
42