libnl 1.1

Hierachical Token Bucket (HTB)

Queueing Discipline Modules | Class Modules

Attribute Modifications

void rtnl_htb_set_rate2quantum (struct rtnl_qdisc *qdisc, uint32_t rate2quantum)
void rtnl_htb_set_defcls (struct rtnl_qdisc *qdisc, uint32_t defcls)
 Set default class of the htb qdisc to the specified value.
void rtnl_htb_set_prio (struct rtnl_class *class, uint32_t prio)
void rtnl_htb_set_mtu (struct rtnl_class *class, uint32_t mtu)
 Set MTU of the data link.
void rtnl_htb_set_rate (struct rtnl_class *class, uint32_t rate)
 Set rate of HTB class.
void rtnl_htb_set_ceil (struct rtnl_class *class, uint32_t ceil)
 Set ceil of HTB class.
void rtnl_htb_set_rbuffer (struct rtnl_class *class, uint32_t rbuffer)
 Set size of the rate bucket of HTB class.
void rtnl_htb_set_cbuffer (struct rtnl_class *class, uint32_t cbuffer)
 Set size of the ceil bucket of HTB class.
void rtnl_htb_set_quantum (struct rtnl_class *class, uint32_t quantum)
 Set how much bytes to serve from leaf at once of HTB class {use r2q}.
void rtnl_htb_set_overhead (struct rtnl_class *class, uint8_t overhead)
 Set per-packet size overhead used in rate computations of HTB class.
void rtnl_htb_set_mpu (struct rtnl_class *class, uint8_t mpu)
 Set the minimum packet size used in rate computations of HTB class.

Function Documentation

void rtnl_htb_set_defcls ( struct rtnl_qdisc *  qdisc,
uint32_t  defcls 
)
Parameters:
qdiscqdisc to change
defclsnew default class

Definition at line 377 of file htb.c.

{
        struct rtnl_htb_qdisc *d = htb_qdisc(qdisc);
        if (d == NULL)
                return;

        d->qh_defcls = defcls;
        d->qh_mask |= SCH_HTB_HAS_DEFCLS;
}
void rtnl_htb_set_mtu ( struct rtnl_class *  class,
uint32_t  mtu 
)
Parameters:
classHTB class to be modified.
mtuNew MTU in bytes.

Sets MTU of the data link controlled by the HTB class. If not set, the Ethernet MTU (1600) is used.

Definition at line 405 of file htb.c.

{
        struct rtnl_htb_class *d = htb_class(class);
        if (d == NULL)
                return;

        d->ch_mtu = mtu;
        d->ch_mask |= SCH_HTB_HAS_MTU;
}
void rtnl_htb_set_rate ( struct rtnl_class *  class,
uint32_t  rate 
)
Parameters:
classHTB class to be modified.
rateNew rate in bytes per second.

Definition at line 420 of file htb.c.

{
        struct rtnl_htb_class *d = htb_class(class);
        if (d == NULL)
                return;

        d->ch_rate.rs_cell_log = UINT8_MAX; /* use default value */
        d->ch_rate.rs_rate = rate;
        d->ch_mask |= SCH_HTB_HAS_RATE;
}
void rtnl_htb_set_ceil ( struct rtnl_class *  class,
uint32_t  ceil 
)
Parameters:
classHTB class to be modified.
ceilNew ceil in bytes per second.

Definition at line 436 of file htb.c.

{
        struct rtnl_htb_class *d = htb_class(class);
        if (d == NULL)
                return;

        d->ch_ceil.rs_cell_log = UINT8_MAX; /* use default value */
        d->ch_ceil.rs_rate = ceil;
        d->ch_mask |= SCH_HTB_HAS_CEIL;
}
void rtnl_htb_set_rbuffer ( struct rtnl_class *  class,
uint32_t  rbuffer 
)
Parameters:
classHTB class to be modified.
rbufferNew size in bytes.

Definition at line 452 of file htb.c.

{
        struct rtnl_htb_class *d = htb_class(class);
        if (d == NULL)
                return;

        d->ch_rbuffer = rbuffer;
        d->ch_mask |= SCH_HTB_HAS_RBUFFER;
}
void rtnl_htb_set_cbuffer ( struct rtnl_class *  class,
uint32_t  cbuffer 
)
Parameters:
classHTB class to be modified.
cbufferNew size in bytes.

Definition at line 467 of file htb.c.

{
        struct rtnl_htb_class *d = htb_class(class);
        if (d == NULL)
                return;

        d->ch_cbuffer = cbuffer;
        d->ch_mask |= SCH_HTB_HAS_CBUFFER;
}
void rtnl_htb_set_quantum ( struct rtnl_class *  class,
uint32_t  quantum 
)
Parameters:
classHTB class to be modified.
quantumNew size in bytes.

Definition at line 482 of file htb.c.

{
        struct rtnl_htb_class *d = htb_class(class);
        if (d == NULL)
                return;

        d->ch_quantum = quantum;
        d->ch_mask |= SCH_HTB_HAS_QUANTUM;
}
void rtnl_htb_set_overhead ( struct rtnl_class *  class,
uint8_t  overhead 
)
Parameters:
classHTB class to be modified.
overheadSize in bytes.

Definition at line 497 of file htb.c.

{
        struct rtnl_htb_class *d = htb_class(class);
        if (d == NULL)
                return;

        d->ch_overhead = overhead;
        d->ch_mask |= SCH_HTB_HAS_OVERHEAD;
}
void rtnl_htb_set_mpu ( struct rtnl_class *  class,
uint8_t  mpu 
)
Parameters:
classHTB class to be modified.
mpuSize in bytes.

Definition at line 512 of file htb.c.

{
        struct rtnl_htb_class *d = htb_class(class);
        if (d == NULL)
                return;

        d->ch_mpu = mpu;
        d->ch_mask |= SCH_HTB_HAS_MPU;
}