libnl 1.1
Modules
Queueing Discipline Modules
Queueing Disciplines

Modules

 Blackhole
 Class Based Queueing (CBQ)
 Differentiated Services Marker (DSMARK)
 Packet/Bytes FIFO (pfifo/bfifo)
 

The FIFO qdisc comes in two flavours:


 Hierachical Token Bucket (HTB)
 Network Emulator
 

For further documentation see http://linux-net.osdl.org/index.php/Netem.


 (Fast) Prio
 Random Early Detection (RED)
 Stochastic Fairness Queueing (SFQ)
 Token Bucket Filter (TBF)

Module API

int rtnl_qdisc_register (struct rtnl_qdisc_ops *qops)
 Register a qdisc module.
int rtnl_qdisc_unregister (struct rtnl_qdisc_ops *qops)
 Unregister a qdisc module.
struct rtnl_qdisc_ops__rtnl_qdisc_lookup_ops (const char *kind)
struct rtnl_qdisc_opsrtnl_qdisc_lookup_ops (struct rtnl_qdisc *qdisc)

Function Documentation

int rtnl_qdisc_register ( struct rtnl_qdisc_ops qops)
Parameters:
qopsqdisc module operations

Definition at line 40 of file qdisc_api.c.

References rtnl_qdisc_ops::qo_kind, and rtnl_qdisc_ops::qo_next.

{
        struct rtnl_qdisc_ops *o, **op;

        if (!qops->qo_kind[0])
                BUG();

        for (op = &qdisc_ops_list; (o = *op) != NULL; op = &o->qo_next)
                if (!strcasecmp(qops->qo_kind, o->qo_kind))
                        return nl_errno(EEXIST);

        qops->qo_next = NULL;
        *op = qops;

        return 0;
}
int rtnl_qdisc_unregister ( struct rtnl_qdisc_ops qops)
Parameters:
qopsqdisc module operations

Definition at line 61 of file qdisc_api.c.

References rtnl_qdisc_ops::qo_kind, and rtnl_qdisc_ops::qo_next.

{
        struct rtnl_qdisc_ops *o, **op;

        for (op = &qdisc_ops_list; (o = *op) != NULL; op = &o->qo_next)
                if (!strcasecmp(qops->qo_kind, o->qo_kind))
                        break;

        if (!o)
                return nl_errno(ENOENT);

        *op = qops->qo_next;

        return 0;
}