Modules | |
Class Based Queueing (CBQ) | |
Differentiated Services Marker (DSMARK) | |
Hierachical Token Bucket (HTB) | |
Addition/Modification | |
| |
int | rtnl_class_build_add_request (struct rtnl_class *class, int flags, struct nl_msg **result) |
Build a netlink message to add a new class. | |
int | rtnl_class_add (struct nl_sock *sk, struct rtnl_class *class, int flags) |
Add a new class. | |
int | rtnl_class_build_delete_request (struct rtnl_class *class, struct nl_msg **result) |
int | rtnl_class_delete (struct nl_sock *sk, struct rtnl_class *class) |
Delete a class. | |
Allocation/Freeing | |
| |
struct rtnl_class * | rtnl_class_alloc (void) |
void | rtnl_class_put (struct rtnl_class *class) |
Leaf Qdisc | |
| |
struct rtnl_qdisc * | rtnl_class_leaf_qdisc (struct rtnl_class *class, struct nl_cache *cache) |
Lookup the leaf qdisc of a class. | |
Iterators | |
| |
void | rtnl_class_foreach_child (struct rtnl_class *class, struct nl_cache *cache, void(*cb)(struct nl_object *, void *), void *arg) |
Call a callback for each child of a class. | |
void | rtnl_class_foreach_cls (struct rtnl_class *class, struct nl_cache *cache, void(*cb)(struct nl_object *, void *), void *arg) |
Call a callback for each classifier attached to the class. | |
Cache Management | |
| |
int | rtnl_class_alloc_cache (struct nl_sock *sk, int ifindex, struct nl_cache **result) |
Build a class cache including all classes attached to the specified interface. | |
struct rtnl_class * | rtnl_class_get (struct nl_cache *cache, int ifindex, uint32_t handle) |
Look up class by its handle in the provided cache. |
int rtnl_class_build_add_request | ( | struct rtnl_class * | class, | |
int | flags, | |||
struct nl_msg ** | result | |||
) |
Build a netlink message to add a new class.
class | class to add | |
flags | additional netlink message flags | |
result | Pointer to store resulting message. |
Builds a new netlink message requesting an addition of a class. The netlink message header isn't fully equipped with all relevant fields and must be sent out via nl_send_auto_complete() or supplemented as needed.
Common message flags
Definition at line 98 of file class.c.
Referenced by rtnl_class_add().
int rtnl_class_add | ( | struct nl_sock * | sk, | |
struct rtnl_class * | class, | |||
int | flags | |||
) |
Add a new class.
sk | Netlink socket. | |
class | class to delete | |
flags | additional netlink message flags |
Builds a netlink message by calling rtnl_qdisc_build_add_request(), sends the request to the kernel and waits for the next ACK to be received and thus blocks until the request has been processed.
Common message flags
Definition at line 119 of file class.c.
References nlmsg_free(), and rtnl_class_build_add_request().
int rtnl_class_delete | ( | struct nl_sock * | sk, | |
struct rtnl_class * | class | |||
) |
Delete a class.
sk | Netlink socket. | |
class | class to delete |
Builds a netlink message by calling rtnl_class_build_delete_request(), sends the request to the kernel and waits for the ACK to be received and thus blocks until the request has been processed.
Definition at line 173 of file class.c.
References nlmsg_free().
struct rtnl_qdisc* rtnl_class_leaf_qdisc | ( | struct rtnl_class * | class, | |
struct nl_cache * | cache | |||
) | [read] |
Lookup the leaf qdisc of a class.
class | the parent class | |
cache | a qdisc cache including at laest all qdiscs of the interface the specified class is attached to |
Definition at line 226 of file class.c.
References rtnl_qdisc_get_by_parent().
void rtnl_class_foreach_child | ( | struct rtnl_class * | class, | |
struct nl_cache * | cache, | |||
void(*)(struct nl_object *, void *) | cb, | |||
void * | arg | |||
) |
Call a callback for each child of a class.
class | the parent class | |
cache | a class cache including all classes of the interface the specified class is attached to | |
cb | callback function | |
arg | argument to be passed to callback function |
Definition at line 258 of file class.c.
References nl_cache_foreach_filter(), rtnl_tc_set_ifindex(), rtnl_tc_set_kind(), rtnl_tc_set_parent(), and TC_CAST.
void rtnl_class_foreach_cls | ( | struct rtnl_class * | class, | |
struct nl_cache * | cache, | |||
void(*)(struct nl_object *, void *) | cb, | |||
void * | arg | |||
) |
Call a callback for each classifier attached to the class.
class | the parent class | |
cache | a filter cache including at least all the filters attached to the specified class | |
cb | callback function | |
arg | argument to be passed to callback function |
Definition at line 283 of file class.c.
References nl_cache_foreach_filter(), rtnl_tc_set_ifindex(), and rtnl_tc_set_parent().
int rtnl_class_alloc_cache | ( | struct nl_sock * | sk, | |
int | ifindex, | |||
struct nl_cache ** | result | |||
) |
Build a class cache including all classes attached to the specified interface.
sk | Netlink socket. | |
ifindex | interface index of the link the classes are attached to. |
Allocates a new cache, initializes it properly and updates it to include all classes attached to the specified interface.
Definition at line 318 of file class.c.
References nl_cache_alloc(), nl_cache_free(), and nl_cache_refill().
struct rtnl_class* rtnl_class_get | ( | struct nl_cache * | cache, | |
int | ifindex, | |||
uint32_t | handle | |||
) | [read] |
Look up class by its handle in the provided cache.
cache | class cache | |
ifindex | interface the class is attached to | |
handle | class handle |
Definition at line 346 of file class.c.
References nl_object_get().