summaryrefslogtreecommitdiff
path: root/python/netlink/route/capi.i
diff options
context:
space:
mode:
Diffstat (limited to 'python/netlink/route/capi.i')
-rw-r--r--python/netlink/route/capi.i61
1 files changed, 61 insertions, 0 deletions
diff --git a/python/netlink/route/capi.i b/python/netlink/route/capi.i
index abe3cc9..204f93a 100644
--- a/python/netlink/route/capi.i
+++ b/python/netlink/route/capi.i
@@ -7,6 +7,10 @@
#include <netlink/route/tc.h>
#include <netlink/route/qdisc.h>
+#include <netlink/route/class.h>
+#include <netlink/route/classifier.h>
+
+#include <netlink/route/qdisc/htb.h>
#include <netlink/route/addr.h>
%}
@@ -231,6 +235,26 @@ extern int rtnl_classid_generate(const char *, uint32_t *, uint32_t);
return (struct rtnl_qdisc *) obj;
}
+ struct nl_object *class2obj(struct rtnl_class *cl)
+ {
+ return OBJ_CAST(cl);
+ }
+
+ struct rtnl_class *obj2class(struct nl_object *obj)
+ {
+ return (struct rtnl_class *) obj;
+ }
+
+ struct nl_object *cls2obj(struct rtnl_cls *cls)
+ {
+ return OBJ_CAST(cls);
+ }
+
+ struct rtnl_cls *obj2cls(struct nl_object *obj)
+ {
+ return (struct rtnl_cls *) obj;
+ }
+
struct rtnl_tc *obj2tc(struct nl_object *obj)
{
return TC_CAST(obj);
@@ -260,6 +284,43 @@ extern int rtnl_qdisc_build_delete_request(struct rtnl_qdisc *,
struct nl_msg **);
extern int rtnl_qdisc_delete(struct nl_sock *, struct rtnl_qdisc *);
+/* <netlink/route/classifier.h> */
+
+extern struct rtnl_cls *rtnl_cls_alloc(void);
+extern void rtnl_cls_put(struct rtnl_cls *);
+
+extern int rtnl_cls_add(struct nl_sock *, struct rtnl_cls *, int);
+
+extern int rtnl_cls_delete(struct nl_sock *, struct rtnl_cls *,
+ int);
+
+extern void rtnl_cls_set_prio(struct rtnl_cls *, uint16_t);
+extern uint16_t rtnl_cls_get_prio(struct rtnl_cls *);
+
+extern void rtnl_cls_set_protocol(struct rtnl_cls *, uint16_t);
+extern uint16_t rtnl_cls_get_protocol(struct rtnl_cls *);
+
+/* <netlink/route/qdisc/htb.h> */
+
+extern uint32_t rtnl_htb_get_rate2quantum(struct rtnl_qdisc *);
+extern int rtnl_htb_set_rate2quantum(struct rtnl_qdisc *, uint32_t);
+extern uint32_t rtnl_htb_get_defcls(struct rtnl_qdisc *);
+extern int rtnl_htb_set_defcls(struct rtnl_qdisc *, uint32_t);
+
+extern uint32_t rtnl_htb_get_prio(struct rtnl_class *);
+extern int rtnl_htb_set_prio(struct rtnl_class *, uint32_t);
+extern uint32_t rtnl_htb_get_rate(struct rtnl_class *);
+extern int rtnl_htb_set_rate(struct rtnl_class *, uint32_t);
+extern uint32_t rtnl_htb_get_ceil(struct rtnl_class *);
+extern int rtnl_htb_set_ceil(struct rtnl_class *, uint32_t);
+extern uint32_t rtnl_htb_get_rbuffer(struct rtnl_class *);
+extern int rtnl_htb_set_rbuffer(struct rtnl_class *, uint32_t);
+extern uint32_t rtnl_htb_get_cbuffer(struct rtnl_class *);
+extern int rtnl_htb_set_cbuffer(struct rtnl_class *, uint32_t);
+extern uint32_t rtnl_htb_get_quantum(struct rtnl_class *);
+extern int rtnl_htb_set_quantum(struct rtnl_class *, uint32_t);
+extern int rtnl_htb_get_level(struct rtnl_class *);
+
/* <netlink/route/addr.h> */
%inline %{