X-Git-Url: http://git.onelab.eu/?p=libnl.git;a=blobdiff_plain;f=include%2Fnetlink%2Froute%2Fqdisc-modules.h;fp=include%2Fnetlink%2Froute%2Fqdisc-modules.h;h=235f06be76c7ee9d03a7fa5148cb669784bcfd72;hp=0000000000000000000000000000000000000000;hb=4cee2ecb3b8afa0637e6f5fe4c57985a4bc740ff;hpb=2df2fbe518d5a221ce6e3ee88a3fb23fb1b94b27 diff --git a/include/netlink/route/qdisc-modules.h b/include/netlink/route/qdisc-modules.h new file mode 100644 index 0000000..235f06b --- /dev/null +++ b/include/netlink/route/qdisc-modules.h @@ -0,0 +1,58 @@ +/* + * netlink/route/qdisc-modules.h Qdisc Module API + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2006 Thomas Graf + */ + +#ifndef NETLINK_QDISC_MODULES_H_ +#define NETLINK_QDISC_MODULES_H_ + +#include + +/** + * Qdisc Operations + * @ingroup qdisc + */ +struct rtnl_qdisc_ops +{ + /** + * Kind/Name of Qdisc + */ + char qo_kind[32]; + + /** + * Dump callbacks + */ + int (*qo_dump[NL_DUMP_MAX+1])(struct rtnl_qdisc *, + struct nl_dump_params *, int); + + /** + * Must return the contents supposed to be in TCA_OPTIONS + */ + struct nl_msg *(*qo_get_opts)(struct rtnl_qdisc *); + + /** + * TCA_OPTIONS message parser + */ + int (*qo_msg_parser)(struct rtnl_qdisc *); + + /** + * Called before a Qdisc object gets destroyed + */ + void (*qo_free_data)(struct rtnl_qdisc *); + + /** + * INTERNAL (Do not use) + */ + struct rtnl_qdisc_ops *qo_next; +}; + +extern int rtnl_qdisc_register(struct rtnl_qdisc_ops *); +extern int rtnl_qdisc_unregister(struct rtnl_qdisc_ops *); + +#endif