libnl 1.1
Variables
Class Object
Queueing Classes

Variables

struct nl_object_ops class_obj_ops

Allocation/Freeing

struct rtnl_class * rtnl_class_alloc (void)
void rtnl_class_put (struct rtnl_class *class)

Leaf Qdisc

struct rtnl_qdisc * rtnl_class_leaf_qdisc (struct rtnl_class *class, struct nl_cache *cache)
 Lookup the leaf qdisc of a class.

Iterators

void rtnl_class_foreach_child (struct rtnl_class *class, struct nl_cache *cache, void(*cb)(struct nl_object *, void *), void *arg)
 Call a callback for each child of a class.
void rtnl_class_foreach_cls (struct rtnl_class *class, struct nl_cache *cache, void(*cb)(struct nl_object *, void *), void *arg)
 Call a callback for each classifier attached to the class.

Attributes

void rtnl_class_set_ifindex (struct rtnl_class *class, int ifindex)
int rtnl_class_get_ifindex (struct rtnl_class *class)
void rtnl_class_set_handle (struct rtnl_class *class, uint32_t handle)
uint32_t rtnl_class_get_handle (struct rtnl_class *class)
void rtnl_class_set_parent (struct rtnl_class *class, uint32_t parent)
uint32_t rtnl_class_get_parent (struct rtnl_class *class)
void rtnl_class_set_kind (struct rtnl_class *class, const char *name)
char * rtnl_class_get_kind (struct rtnl_class *class)
uint64_t rtnl_class_get_stat (struct rtnl_class *class, enum rtnl_tc_stats_id id)

Function Documentation

struct rtnl_qdisc* rtnl_class_leaf_qdisc ( struct rtnl_class *  class,
struct nl_cache *  cache 
) [read]
Parameters:
classthe parent class
cachea qdisc cache including at laest all qdiscs of the interface the specified class is attached to
Returns:
The qdisc from the cache or NULL if the class has no leaf qdisc

Definition at line 145 of file class_obj.c.

References rtnl_qdisc_get_by_parent().

{
        struct rtnl_qdisc *leaf;

        if (!class->c_info)
                return NULL;

        leaf = rtnl_qdisc_get_by_parent(cache, class->c_ifindex,
                                        class->c_handle);
        if (!leaf || leaf->q_handle != class->c_info)
                return NULL;

        return leaf;
}
void rtnl_class_foreach_child ( struct rtnl_class *  class,
struct nl_cache *  cache,
void(*)(struct nl_object *, void *)  cb,
void *  arg 
)
Parameters:
classthe parent class
cachea class cache including all classes of the interface the specified class is attached to
cbcallback function
argargument to be passed to callback function

Definition at line 177 of file class_obj.c.

References nl_cache_foreach_filter().

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

        rtnl_class_set_parent(filter, class->c_handle);
        rtnl_class_set_ifindex(filter, class->c_ifindex);
        rtnl_class_set_kind(filter, class->c_kind);

        nl_cache_foreach_filter(cache, (struct nl_object *) filter, cb, arg);
        rtnl_class_put(filter);
}
void rtnl_class_foreach_cls ( struct rtnl_class *  class,
struct nl_cache *  cache,
void(*)(struct nl_object *, void *)  cb,
void *  arg 
)
Parameters:
classthe parent class
cachea filter cache including at least all the filters attached to the specified class
cbcallback function
argargument to be passed to callback function

Definition at line 202 of file class_obj.c.

References nl_cache_foreach_filter().

{
        struct rtnl_cls *filter;

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

        rtnl_cls_set_ifindex(filter, class->c_ifindex);
        rtnl_cls_set_parent(filter, class->c_parent);

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

Variable Documentation

struct nl_object_ops class_obj_ops
Initial value:
 {
        .oo_name                = "route/class",
        .oo_size                = sizeof(struct rtnl_class),
        .oo_free_data           = class_free_data,
        .oo_clone               = class_clone,
        .oo_dump[NL_DUMP_BRIEF] = class_dump_brief,
        .oo_dump[NL_DUMP_FULL]  = class_dump_full,
        .oo_dump[NL_DUMP_STATS] = class_dump_stats,
        .oo_compare             = tca_compare,
        .oo_id_attrs            = (TCA_ATTR_IFINDEX | TCA_ATTR_HANDLE),
}

Definition at line 275 of file class_obj.c.