libnl 1.1
Variables
Queueing Discipline Object
Queueing Disciplines

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.
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.

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.

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().

{
        struct rtnl_class *filter;
        
        filter = rtnl_class_alloc();
        if (!filter)
                return;

        rtnl_class_set_parent(filter, qdisc->q_handle);
        rtnl_class_set_ifindex(filter, qdisc->q_ifindex);
        rtnl_class_set_kind(filter, qdisc->q_kind);

        nl_cache_foreach_filter(cache, (struct nl_object *) filter, cb, arg);

        rtnl_class_put(filter);
}
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().

{
        struct rtnl_cls *filter;

        filter = rtnl_cls_alloc();
        if (!filter)
                return;

        rtnl_cls_set_ifindex(filter, qdisc->q_ifindex);
        rtnl_cls_set_parent(filter, qdisc->q_parent);

        nl_cache_foreach_filter(cache, (struct nl_object *) filter, cb, arg);
        rtnl_cls_put(filter);
}
struct nl_msg* rtnl_qdisc_get_opts ( struct rtnl_qdisc *  qdisc) [read]
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.

{
        struct rtnl_qdisc_ops *ops;

        ops = rtnl_qdisc_lookup_ops(qdisc);
        if (ops && ops->qo_get_opts)
                return ops->qo_get_opts(qdisc);

        return NULL;
}

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),
}

Definition at line 261 of file qdisc_obj.c.