libnl
3.2.24-rc1
|
Modules | |
Basic Classifier | |
Control Groups Classifier | |
Extended Match | |
Firewall Classifier | |
Universal 32-bit Classifier | |
Allocation/Freeing | |
struct rtnl_cls * | rtnl_cls_alloc (void) |
void | rtnl_cls_put (struct rtnl_cls *cls) |
Addition/Modification/Deletion | |
int | rtnl_cls_build_add_request (struct rtnl_cls *cls, int flags, struct nl_msg **result) |
Build a netlink message requesting the addition of a classifier. More... | |
int | rtnl_cls_add (struct nl_sock *sk, struct rtnl_cls *cls, int flags) |
Add/Update classifier. More... | |
int | rtnl_cls_build_change_request (struct rtnl_cls *cls, int flags, struct nl_msg **result) |
Build a netlink message to change classifier attributes. More... | |
int | rtnl_cls_change (struct nl_sock *sk, struct rtnl_cls *cls, int flags) |
Change a classifier. More... | |
int | rtnl_cls_build_delete_request (struct rtnl_cls *cls, int flags, struct nl_msg **result) |
Build netlink message requesting the deletion of a classifier. More... | |
int | rtnl_cls_delete (struct nl_sock *sk, struct rtnl_cls *cls, int flags) |
Delete classifier. More... | |
Cache Related Functions | |
int | rtnl_cls_alloc_cache (struct nl_sock *sk, int ifindex, uint32_t parent, struct nl_cache **result) |
Allocate a cache and fill it with all configured classifiers. More... | |
int rtnl_cls_build_add_request | ( | struct rtnl_cls * | cls, |
int | flags, | ||
struct nl_msg ** | result | ||
) |
Build a netlink message requesting the addition of a classifier.
cls | Classifier to add |
flags | Additional netlink message flags |
result | Pointer to store resulting netlink message |
The behaviour of this function is identical to rtnl_cls_add() with the exception that it will not send the message but return it int the provided return pointer instead.
Definition at line 137 of file cls.c.
Referenced by rtnl_cls_add().
int rtnl_cls_add | ( | struct nl_sock * | sk, |
struct rtnl_cls * | cls, | ||
int | flags | ||
) |
Add/Update classifier.
sk | Netlink socket |
cls | Classifier to add/update |
flags | Additional netlink message flags |
Builds a RTM_NEWTFILTER
netlink message requesting the addition of a new classifier and sends the message to the kernel. The configuration of the classifier is derived from the attributes of the specified traffic class.
The following flags may be specified:
NLM_F_CREATE:
Create classifier if it does not exist, otherwise -NLE_OBJ_NOTFOUND is returned.NLM_F_EXCL:
Return -NLE_EXISTS if a classifier with matching handle exists already.Existing classifiers with matching handles will be updated, unless the flag NLM_F_EXCL
is specified. If no matching classifier exists, it will be created if the flag NLM_F_CREATE
is set, otherwise the error -NLE_OBJ_NOTFOUND is returned.
If the parent qdisc does not support classes, the error NLE_OPNOTSUPP
is returned.
After sending, the function will wait for the ACK or an eventual error message to be received and will therefore block until the operation has been completed.
Definition at line 184 of file cls.c.
References nl_send_sync(), and rtnl_cls_build_add_request().
int rtnl_cls_build_change_request | ( | struct rtnl_cls * | cls, |
int | flags, | ||
struct nl_msg ** | result | ||
) |
Build a netlink message to change classifier attributes.
cls | classifier to change |
flags | additional netlink message flags |
result | Pointer to store resulting message. |
Builds a new netlink message requesting a change of a neigh attributes. The netlink message header isn't fully equipped with all relevant fields and must thus be sent out via nl_send_auto_complete() or supplemented as needed.
Definition at line 208 of file cls.c.
Referenced by rtnl_cls_change().
int rtnl_cls_change | ( | struct nl_sock * | sk, |
struct rtnl_cls * | cls, | ||
int | flags | ||
) |
Change a classifier.
sk | Netlink socket. |
cls | classifier to change |
flags | additional netlink message flags |
Builds a netlink message by calling rtnl_cls_build_change_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.
Definition at line 226 of file cls.c.
References nl_send_sync(), and rtnl_cls_build_change_request().
int rtnl_cls_build_delete_request | ( | struct rtnl_cls * | cls, |
int | flags, | ||
struct nl_msg ** | result | ||
) |
Build netlink message requesting the deletion of a classifier.
cls | Classifier to delete |
flags | Additional netlink message flags |
result | Pointer to store resulting netlink message |
The behaviour of this function is identical to rtnl_cls_delete() with the exception that it will not send the message but return it in the provided return pointer instead.
Definition at line 251 of file cls.c.
Referenced by rtnl_cls_delete().
int rtnl_cls_delete | ( | struct nl_sock * | sk, |
struct rtnl_cls * | cls, | ||
int | flags | ||
) |
Delete classifier.
sk | Netlink socket |
cls | Classifier to delete |
flags | Additional netlink message flags |
Builds a RTM_DELTFILTER
netlink message requesting the deletion of a classifier and sends the message to the kernel.
The message is constructed out of the following attributes:
ifindex
(required)prio
(required)protocol
(required)handle
(required)parent
(optional, if not specified parent equals root-qdisc)kind
(optional, must match if provided)All other classifier attributes including all class type specific attributes are ignored.
After sending, the function will wait for the ACK or an eventual error message to be received and will therefore block until the operation has been completed.
Definition at line 295 of file cls.c.
References nl_send_sync(), and rtnl_cls_build_delete_request().
int rtnl_cls_alloc_cache | ( | struct nl_sock * | sk, |
int | ifindex, | ||
uint32_t | parent, | ||
struct nl_cache ** | result | ||
) |
Allocate a cache and fill it with all configured classifiers.
sk | Netlink socket |
ifindex | Interface index of the network device |
parent | Parent qdisc/traffic class class |
result | Pointer to store the created cache |
Allocates a new classifier cache and fills it with a list of all configured classifier attached to the specified parent qdisc/traffic class on the specified network device. Release the cache with nl_cache_free().
Definition at line 327 of file cls.c.
References nl_cache_alloc(), nl_cache_free(), and nl_cache_refill().