Data Structures | |
| struct | rtnl_qdisc_ops |
| Qdisc Operations. More... | |
Modules | |
| Queueing Discipline Modules | |
| Queueing Discipline Object | |
TC_H_ROOT: root qdisc (directly attached to the device)TC_H_INGRESS: ingress qdisc (directly attached to the device)TC_H_UNSPEC: unspecified qdisc (no reference)// Allocate a new empty qdisc to be filled out struct rtnl_qdisc *qdisc = rtnl_qdisc_alloc(); // ... specify the kind of the Qdisc rtnl_qdisc_set_kind(qdisc, "pfifo"); // Specify the device the qdisc should be attached to rtnl_qdisc_set_ifindex(qdisc, ifindex); // ... specify the parent qdisc rtnl_qdisc_set_parent(qdisc, TC_H_ROOT); // Specifying the handle is not required but makes reidentifying easier // and may help to avoid adding a qdisc twice. rtnl_qdisc_set_handle(qdisc, 0x000A0000); // Now on to specify the qdisc specific options, see the relevant qdisc // modules for documentation, in this example we set the upper limit of // the packet fifo qdisc to 64 rtnl_qdisc_fifo_set_limit(qdisc, 64); rtnl_qdisc_add(handle, qdisc, NLM_R_REPLACE); // Free up the memory rtnl_qdisc_put(qdisc);
// Allocate a new empty qdisc to be filled out with the parameters // specifying the qdisc to be deleted. Alternatively a fully equiped // Qdisc object from a cache can be used. struct rtnl_qdisc *qdisc = rtnl_qdisc_alloc(); // The interface index of the device the qdisc is on and the parent handle // are the least required fields to be filled out. // Note: Specify TC_H_ROOT or TC_H_INGRESS as parent handle to delete the // root respectively root ingress qdisc. rtnl_qdisc_set_ifindex(qdisc, ifindex); rtnl_qdisc_set_parent(qdisc, parent_handle); // If required for identification, the handle can be specified as well. rtnl_qdisc_set_handle(qdisc, qdisc_handle); // Not required but maybe helpful as sanity check, the kind of the qdisc // can be specified to avoid mistakes. rtnl_qdisc_set_kind(qdisc, "pfifo"); // Finally delete the qdisc with rtnl_qdisc_delete(), alternatively // rtnl_qdisc_build_delete_request() can be invoked to generate an // appropritate netlink message to send out. rtnl_qdisc_delete(handle, qdisc); // Free up the memory rtnl_qdisc_put(qdisc);
| struct nl_msg* rtnl_qdisc_build_add_request | ( | struct rtnl_qdisc * | qdisc, | |
| int | flags | |||
| ) | [read] |
| qdisc | qdisc to add | |
| flags | additional netlink message flags |
Common message flags used:
Definition at line 197 of file qdisc.c.
References NLM_F_CREATE.
Referenced by rtnl_qdisc_add().
| int rtnl_qdisc_add | ( | struct nl_handle * | handle, | |
| struct rtnl_qdisc * | qdisc, | |||
| int | flags | |||
| ) |
| handle | netlink handle | |
| qdisc | qdisc to delete | |
| flags | additional netlink message flags |
Common message flags used:
Definition at line 224 of file qdisc.c.
References nl_send_auto_complete(), nl_wait_for_ack(), nlmsg_free(), and rtnl_qdisc_build_add_request().
| struct nl_msg* rtnl_qdisc_build_change_request | ( | struct rtnl_qdisc * | qdisc, | |
| struct rtnl_qdisc * | new | |||
| ) | [read] |
| qdisc | qdisc to change | |
| new | new qdisc attributes |
Definition at line 261 of file qdisc.c.
References NLM_F_REPLACE.
Referenced by rtnl_qdisc_change().
| int rtnl_qdisc_change | ( | struct nl_handle * | handle, | |
| struct rtnl_qdisc * | qdisc, | |||
| struct rtnl_qdisc * | new | |||
| ) |
| handle | netlink handle | |
| qdisc | qdisc to change | |
| new | new qdisc attributes |
Definition at line 279 of file qdisc.c.
References nl_send_auto_complete(), nl_wait_for_ack(), nlmsg_free(), and rtnl_qdisc_build_change_request().
| struct nl_msg* rtnl_qdisc_build_delete_request | ( | struct rtnl_qdisc * | qdisc | ) | [read] |
| qdisc | qdisc to delete |
Definition at line 315 of file qdisc.c.
References nlmsg_alloc_simple(), and nlmsg_append().
Referenced by rtnl_qdisc_delete().
| int rtnl_qdisc_delete | ( | struct nl_handle * | handle, | |
| struct rtnl_qdisc * | qdisc | |||
| ) |
| handle | netlink handle | |
| qdisc | qdisc to delete |
Definition at line 348 of file qdisc.c.
References nl_send_auto_complete(), nl_wait_for_ack(), nlmsg_free(), and rtnl_qdisc_build_delete_request().
| struct nl_cache* rtnl_qdisc_alloc_cache | ( | struct nl_handle * | handle | ) | [read] |
| handle | netlink handle |
Definition at line 384 of file qdisc.c.
References nl_cache_alloc(), nl_cache_free(), and nl_cache_refill().
| struct rtnl_qdisc* rtnl_qdisc_get_by_parent | ( | struct nl_cache * | cache, | |
| int | ifindex, | |||
| uint32_t | parent | |||
| ) | [read] |
| cache | qdisc cache | |
| ifindex | interface the qdisc is attached to | |
| parent | parent handle |
Definition at line 407 of file qdisc.c.
References nl_object_get().
Referenced by rtnl_class_leaf_qdisc().
| struct rtnl_qdisc* rtnl_qdisc_get | ( | struct nl_cache * | cache, | |
| int | ifindex, | |||
| uint32_t | handle | |||
| ) | [read] |
| cache | qdisc cache | |
| ifindex | interface the qdisc is attached to | |
| handle | qdisc handle |
Definition at line 432 of file qdisc.c.
References nl_object_get().
1.5.7.1