libnl 1.1.4
classifier.h
1/*
2 * netlink/route/classifier.h Classifiers
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) 2003-2006 Thomas Graf <tgraf@suug.ch>
10 */
11
12#ifndef NETLINK_CLASSIFIER_H_
13#define NETLINK_CLASSIFIER_H_
14
15#include <netlink/netlink.h>
16#include <netlink/cache.h>
17#include <netlink/route/tc.h>
18#include <netlink/utils.h>
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24extern struct nl_object_ops cls_obj_ops;
25
26extern struct rtnl_cls *rtnl_cls_alloc(void);
27extern void rtnl_cls_put(struct rtnl_cls *);
28
29extern struct nl_cache *rtnl_cls_alloc_cache(struct nl_handle *, int, uint32_t);
30
31/* classifier addition */
32extern int rtnl_cls_add(struct nl_handle *, struct rtnl_cls *,
33 int);
34extern struct nl_msg * rtnl_cls_build_add_request(struct rtnl_cls *, int);
35
36extern struct nl_msg *rtnl_cls_build_change_request(struct rtnl_cls *, int);
37extern struct nl_msg *rtnl_cls_build_delete_request(struct rtnl_cls *, int);
38extern int rtnl_cls_delete(struct nl_handle *, struct rtnl_cls *, int);
39
40/* attribute modification */
41extern void rtnl_cls_set_ifindex(struct rtnl_cls *, int);
42extern void rtnl_cls_set_handle(struct rtnl_cls *, uint32_t);
43extern void rtnl_cls_set_parent(struct rtnl_cls *, uint32_t);
44extern void rtnl_cls_set_kind(struct rtnl_cls *, const char *);
45
46extern void rtnl_cls_set_prio(struct rtnl_cls *, int);
47extern int rtnl_cls_get_prio(struct rtnl_cls *);
48
49extern void rtnl_cls_set_protocol(struct rtnl_cls *, int);
50extern int rtnl_cls_get_protocol(struct rtnl_cls *);
51
52#ifdef __cplusplus
53}
54#endif
55
56#endif
struct nl_msg * rtnl_cls_build_change_request(struct rtnl_cls *, int)
Build a netlink message to change classifier attributes.
Definition: classifier.c:191
struct nl_msg * rtnl_cls_build_add_request(struct rtnl_cls *, int)
Build a netlink message to add a new classifier.
Definition: classifier.c:145
struct nl_msg * rtnl_cls_build_delete_request(struct rtnl_cls *, int)
Build a netlink request message to delete a classifier.
Definition: classifier.c:238
int rtnl_cls_add(struct nl_handle *, struct rtnl_cls *, int)
Add a new classifier.
Definition: classifier.c:162
int rtnl_cls_delete(struct nl_handle *, struct rtnl_cls *, int)
Delete a classifier.
Definition: classifier.c:256
struct nl_cache * rtnl_cls_alloc_cache(struct nl_handle *, int, uint32_t)
Build a classifier cache including all classifiers attached to the specified class/qdisc on eht speci...
Definition: classifier.c:295
Object Operations.
Definition: object-api.h:255