libnl  1.1.4
Variables
Queueing Discipline Object

Variables

struct nl_object_ops qdisc_obj_ops
 

Allocation/Freeing

struct rtnl_qdisc * rtnl_qdisc_alloc (void)
 
void rtnl_qdisc_put (struct rtnl_qdisc *qdisc)
 

Iterators

void rtnl_qdisc_foreach_child (struct rtnl_qdisc *qdisc, struct nl_cache *cache, void(*cb)(struct nl_object *, void *), void *arg)
 Call a callback for each child class of a qdisc. More...
 
void rtnl_qdisc_foreach_cls (struct rtnl_qdisc *qdisc, struct nl_cache *cache, void(*cb)(struct nl_object *, void *), void *arg)
 Call a callback for each filter attached to the qdisc. More...
 

Attributes

void rtnl_qdisc_set_ifindex (struct rtnl_qdisc *qdisc, int ifindex)
 
int rtnl_qdisc_get_ifindex (struct rtnl_qdisc *qdisc)
 
void rtnl_qdisc_set_handle (struct rtnl_qdisc *qdisc, uint32_t handle)
 
uint32_t rtnl_qdisc_get_handle (struct rtnl_qdisc *qdisc)
 
void rtnl_qdisc_set_parent (struct rtnl_qdisc *qdisc, uint32_t parent)
 
uint32_t rtnl_qdisc_get_parent (struct rtnl_qdisc *qdisc)
 
void rtnl_qdisc_set_kind (struct rtnl_qdisc *qdisc, const char *name)
 
char * rtnl_qdisc_get_kind (struct rtnl_qdisc *qdisc)
 
uint64_t rtnl_qdisc_get_stat (struct rtnl_qdisc *qdisc, enum rtnl_tc_stats_id id)
 

Qdisc Specific Options

struct nl_msg * rtnl_qdisc_get_opts (struct rtnl_qdisc *qdisc)
 Return qdisc specific options for use in TCA_OPTIONS. More...
 

Detailed Description

Function Documentation

void rtnl_qdisc_foreach_child ( struct rtnl_qdisc *  qdisc,
struct nl_cache *  cache,
void(*)(struct nl_object *, void *)  cb,
void *  arg 
)
Parameters
qdiscthe parent qdisc
cachea class cache including all classes of the interface the specified qdisc is attached to
cbcallback function
argargument to be passed to callback function

Definition at line 139 of file qdisc_obj.c.

References nl_cache_foreach_filter().

141 {
142  struct rtnl_class *filter;
143 
144  filter = rtnl_class_alloc();
145  if (!filter)
146  return;
147 
148  rtnl_class_set_parent(filter, qdisc->q_handle);
149  rtnl_class_set_ifindex(filter, qdisc->q_ifindex);
150  rtnl_class_set_kind(filter, qdisc->q_kind);
151 
152  nl_cache_foreach_filter(cache, (struct nl_object *) filter, cb, arg);
153 
154  rtnl_class_put(filter);
155 }
void nl_cache_foreach_filter(struct nl_cache *cache, struct nl_object *filter, void(*cb)(struct nl_object *, void *), void *arg)
Call a callback on each element of the cache (filtered).
Definition: cache.c:808
void rtnl_qdisc_foreach_cls ( struct rtnl_qdisc *  qdisc,
struct nl_cache *  cache,
void(*)(struct nl_object *, void *)  cb,
void *  arg 
)
Parameters
qdiscthe parent qdisc
cachea filter cache including at least all the filters attached to the specified qdisc
cbcallback function
argargument to be passed to callback function

Definition at line 165 of file qdisc_obj.c.

References nl_cache_foreach_filter().

167 {
168  struct rtnl_cls *filter;
169 
170  filter = rtnl_cls_alloc();
171  if (!filter)
172  return;
173 
174  rtnl_cls_set_ifindex(filter, qdisc->q_ifindex);
175  rtnl_cls_set_parent(filter, qdisc->q_parent);
176 
177  nl_cache_foreach_filter(cache, (struct nl_object *) filter, cb, arg);
178  rtnl_cls_put(filter);
179 }
void nl_cache_foreach_filter(struct nl_cache *cache, struct nl_object *filter, void(*cb)(struct nl_object *, void *), void *arg)
Call a callback on each element of the cache (filtered).
Definition: cache.c:808
struct nl_msg* rtnl_qdisc_get_opts ( struct rtnl_qdisc *  qdisc)
Parameters
qdiscqdisc carrying the optiosn
Returns
new headerless netlink message carrying the options as payload

Definition at line 248 of file qdisc_obj.c.

References rtnl_qdisc_ops::qo_get_opts.

249 {
250  struct rtnl_qdisc_ops *ops;
251 
252  ops = rtnl_qdisc_lookup_ops(qdisc);
253  if (ops && ops->qo_get_opts)
254  return ops->qo_get_opts(qdisc);
255 
256  return NULL;
257 }
struct nl_msg *(* qo_get_opts)(struct rtnl_qdisc *)
Must return the contents supposed to be in TCA_OPTIONS.
Definition: qdisc-modules.h:41
Qdisc Operations.
Definition: qdisc-modules.h:25

Variable Documentation

struct nl_object_ops qdisc_obj_ops
Initial value:
= {
.oo_name = "route/qdisc",
.oo_size = sizeof(struct rtnl_qdisc),
.oo_free_data = qdisc_free_data,
.oo_clone = qdisc_clone,
.oo_dump[NL_DUMP_BRIEF] = qdisc_dump_brief,
.oo_dump[NL_DUMP_FULL] = qdisc_dump_full,
.oo_dump[NL_DUMP_STATS] = qdisc_dump_stats,
.oo_compare = tca_compare,
.oo_id_attrs = (TCA_ATTR_IFINDEX | TCA_ATTR_HANDLE),
}
Dump object in a brief one-liner.
Definition: types.h:22
Dump all attributes but no statistics.
Definition: types.h:23
Dump all attributes including statistics.
Definition: types.h:24

Definition at line 261 of file qdisc_obj.c.