libnl  1.1
Modules
Classifiers

Modules

 Classifier Modules
 
 Classifier Object
 

Classifier Addition/Modification/Deletion

struct nl_msg * rtnl_cls_build_add_request (struct rtnl_cls *cls, int flags)
 Build a netlink message to add a new classifier. More...
 
int rtnl_cls_add (struct nl_handle *handle, struct rtnl_cls *cls, int flags)
 Add a new classifier. More...
 
struct nl_msg * rtnl_cls_build_change_request (struct rtnl_cls *cls, int flags)
 Build a netlink message to change classifier attributes. More...
 
int rtnl_cls_change (struct nl_handle *handle, struct rtnl_cls *cls, int flags)
 Change a classifier. More...
 
struct nl_msg * rtnl_cls_build_delete_request (struct rtnl_cls *cls, int flags)
 Build a netlink request message to delete a classifier. More...
 
int rtnl_cls_delete (struct nl_handle *handle, struct rtnl_cls *cls, int flags)
 Delete a classifier. More...
 

Cache Management

struct nl_cache * rtnl_cls_alloc_cache (struct nl_handle *handle, int ifindex, uint32_t parent)
 Build a classifier cache including all classifiers attached to the specified class/qdisc on eht specified interface. More...
 

Detailed Description

Classifier Identification
  • protocol
  • priority
  • parent
  • interface
  • kind
  • handle

Function Documentation

struct nl_msg* rtnl_cls_build_add_request ( struct rtnl_cls *  cls,
int  flags 
)
read
Parameters
clsclassifier to add
flagsadditional netlink message flags

Builds a new netlink message requesting an addition of a classifier 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. classifier must contain the attributes of the new classifier set via rtnl_cls_set_* functions. opts may point to the clsasifier specific options.

Returns
New netlink message

Definition at line 145 of file classifier.c.

References NLM_F_CREATE.

Referenced by rtnl_cls_add().

int rtnl_cls_add ( struct nl_handle *  handle,
struct rtnl_cls *  cls,
int  flags 
)
Parameters
handlenetlink handle
clsclassifier to add
flagsadditional netlink message flags

Builds a netlink message by calling rtnl_cls_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.

Returns
0 on sucess or a negative error if an error occured.

Definition at line 162 of file classifier.c.

References nl_send_auto_complete(), nl_wait_for_ack(), nlmsg_free(), and rtnl_cls_build_add_request().

struct nl_msg* rtnl_cls_build_change_request ( struct rtnl_cls *  cls,
int  flags 
)
read
Parameters
clsclassifier to change
flagsadditional netlink message flags

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.

Returns
The netlink message

Definition at line 191 of file classifier.c.

References NLM_F_REPLACE.

Referenced by rtnl_cls_change().

int rtnl_cls_change ( struct nl_handle *  handle,
struct rtnl_cls *  cls,
int  flags 
)
Parameters
handlenetlink handle
clsclassifier to change
flagsadditional 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.

Returns
0 on sucess or a negative error if an error occured.

Definition at line 208 of file classifier.c.

References nl_send_auto_complete(), nl_wait_for_ack(), nlmsg_free(), and rtnl_cls_build_change_request().

struct nl_msg* rtnl_cls_build_delete_request ( struct rtnl_cls *  cls,
int  flags 
)
read
Parameters
clsclassifier to delete
flagsadditional netlink message flags

Builds a new netlink message requesting a deletion of a classifier. 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.

Returns
New netlink message

Definition at line 238 of file classifier.c.

Referenced by rtnl_cls_delete().

int rtnl_cls_delete ( struct nl_handle *  handle,
struct rtnl_cls *  cls,
int  flags 
)
Parameters
handlenetlink handle
clsclassifier to delete
flagsadditional netlink message flags

Builds a netlink message by calling rtnl_cls_build_delete_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.

Returns
0 on sucess or a negative error if an error occured.

Definition at line 256 of file classifier.c.

References nl_send_auto_complete(), nl_wait_for_ack(), nlmsg_free(), and rtnl_cls_build_delete_request().

struct nl_cache* rtnl_cls_alloc_cache ( struct nl_handle *  handle,
int  ifindex,
uint32_t  parent 
)
read
Parameters
handlenetlink handle
ifindexinterface index of the link the classes are attached to.
parentparent qdisc/class

Allocates a new cache, initializes it properly and updates it to include all classes attached to the specified interface.

Note
The caller is responsible for destroying and freeing the cache after using it.
Returns
The cache or NULL if an error has occured.

Definition at line 295 of file classifier.c.

References nl_cache_alloc(), nl_cache_free(), and nl_cache_refill().