netfilter
firewalling, NAT, and packet mangling for linux
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Collaboration diagram for Token Bucket Filter (TBF):

Attribute Access

int rtnl_qdisc_tbf_set_limit (struct rtnl_qdisc *qdisc, int limit)
 Set limit of TBF qdisc. More...
 
int rtnl_qdisc_tbf_set_limit_by_latency (struct rtnl_qdisc *qdisc, int latency)
 Set limit of TBF qdisc by latency. More...
 
int rtnl_qdisc_tbf_get_limit (struct rtnl_qdisc *qdisc)
 Get limit of TBF qdisc. More...
 
int rtnl_qdisc_tbf_set_mpu (struct rtnl_qdisc *qdisc, int mpu)
 Set MPU of TBF qdisc. More...
 
int rtnl_qdisc_tbf_get_mpu (struct rtnl_qdisc *qdisc)
 Get MPU of TBF qdisc. More...
 
int rtnl_qdisc_tbf_set_rate (struct rtnl_qdisc *qdisc, int rate, int bucket, int cell)
 Set rate of TBF qdisc. More...
 
int rtnl_qdisc_tbf_get_rate (struct rtnl_qdisc *qdisc)
 Get rate of TBF qdisc. More...
 
int rtnl_qdisc_tbf_get_rate_bucket (struct rtnl_qdisc *qdisc)
 Get rate bucket size of TBF qdisc. More...
 
int rtnl_qdisc_tbf_get_rate_cell (struct rtnl_qdisc *qdisc)
 Get rate cell size of TBF qdisc. More...
 
int rtnl_qdisc_tbf_set_peakrate (struct rtnl_qdisc *qdisc, int rate, int bucket, int cell)
 Set peak rate of TBF qdisc. More...
 
int rtnl_qdisc_tbf_get_peakrate (struct rtnl_qdisc *qdisc)
 Get peak rate of TBF qdisc. More...
 
int rtnl_qdisc_tbf_get_peakrate_bucket (struct rtnl_qdisc *qdisc)
 Get peak rate bucket size of TBF qdisc. More...
 
int rtnl_qdisc_tbf_get_peakrate_cell (struct rtnl_qdisc *qdisc)
 Get peak rate cell size of TBF qdisc. More...
 

Detailed Description

Function Documentation

int rtnl_qdisc_tbf_get_limit ( struct rtnl_qdisc qdisc)

Get limit of TBF qdisc.

  • qdisc TBF qdisc.
    Returns
    Limit in bytes or a negative error code.

References NLE_NOATTR, rtnl_tbf::qt_limit, and rtnl_tbf::qt_mask.

int rtnl_qdisc_tbf_get_mpu ( struct rtnl_qdisc qdisc)

Get MPU of TBF qdisc.

  • qdisc TBF qdisc.
    Returns
    MPU in bytes or a negative error code.

References NLE_NOATTR, rtnl_tbf::qt_mask, and rtnl_tbf::qt_mpu.

int rtnl_qdisc_tbf_get_peakrate ( struct rtnl_qdisc qdisc)

Get peak rate of TBF qdisc.

  • qdisc TBF qdisc.
    Returns
    Peak rate in bytes per seconds or a negative error code.

References rtnl_tbf::qt_mask, rtnl_tbf::qt_peakrate, and rtnl_ratespec::rs_rate.

int rtnl_qdisc_tbf_get_peakrate_bucket ( struct rtnl_qdisc qdisc)

Get peak rate bucket size of TBF qdisc.

  • qdisc TBF qdisc.
    Returns
    Size of peak rate bucket or a negative error code.

References rtnl_tbf::qt_mask, and rtnl_tbf::qt_peakrate_bucket.

int rtnl_qdisc_tbf_get_peakrate_cell ( struct rtnl_qdisc qdisc)

Get peak rate cell size of TBF qdisc.

  • qdisc TBF qdisc.
    Returns
    Size of peak rate cell in bytes or a negative error code.

References rtnl_tbf::qt_mask, rtnl_tbf::qt_peakrate, and rtnl_ratespec::rs_cell_log.

int rtnl_qdisc_tbf_get_rate ( struct rtnl_qdisc qdisc)

Get rate of TBF qdisc.

  • qdisc TBF qdisc.
    Returns
    Rate in bytes per seconds or a negative error code.

References rtnl_tbf::qt_mask, rtnl_tbf::qt_rate, and rtnl_ratespec::rs_rate.

int rtnl_qdisc_tbf_get_rate_bucket ( struct rtnl_qdisc qdisc)

Get rate bucket size of TBF qdisc.

  • qdisc TBF qdisc.
    Returns
    Size of rate bucket or a negative error code.

References rtnl_tbf::qt_mask, and rtnl_tbf::qt_rate_bucket.

int rtnl_qdisc_tbf_get_rate_cell ( struct rtnl_qdisc qdisc)

Get rate cell size of TBF qdisc.

  • qdisc TBF qdisc.
    Returns
    Size of rate cell in bytes or a negative error code.

References rtnl_tbf::qt_mask, rtnl_tbf::qt_rate, and rtnl_ratespec::rs_cell_log.

int rtnl_qdisc_tbf_set_limit ( struct rtnl_qdisc qdisc,
int  limit 
)

Set limit of TBF qdisc.

  • qdisc TBF qdisc to be modified.
  • limit New limit in bytes.
    Returns
    0 on success or a negative error code.

References NLE_NOMEM, rtnl_tbf::qt_limit, and rtnl_tbf::qt_mask.

Referenced by rtnl_qdisc_tbf_set_limit_by_latency().

Here is the caller graph for this function:

int rtnl_qdisc_tbf_set_limit_by_latency ( struct rtnl_qdisc qdisc,
int  latency 
)

Set limit of TBF qdisc by latency.

  • qdisc TBF qdisc to be modified.
  • latency Latency in micro seconds.

Calculates and sets the limit based on the desired latency and the configured rate and peak rate. In order for this operation to succeed, the rate and if required the peak rate must have been set in advance.

\[ limit_n = \frac{{rate_n} \times {latency}}{10^6}+{bucketsize}_n \]

\[ limit = min(limit_{rate},limit_{peak}) \]

Returns
0 on success or a negative error code.

References NLE_MISSING_ATTR, NLE_NOMEM, rtnl_tbf::qt_mask, rtnl_tbf::qt_peakrate, rtnl_tbf::qt_peakrate_bucket, rtnl_tbf::qt_rate, rtnl_tbf::qt_rate_bucket, and rtnl_qdisc_tbf_set_limit().

Here is the call graph for this function:

int rtnl_qdisc_tbf_set_mpu ( struct rtnl_qdisc qdisc,
int  mpu 
)

Set MPU of TBF qdisc.

  • qdisc TBF qdisc to be modified.
  • mpu New MPU in bytes.
    Returns
    0 on success or a negative error code.

References NLE_NOMEM, rtnl_tbf::qt_mask, and rtnl_tbf::qt_mpu.

int rtnl_qdisc_tbf_set_peakrate ( struct rtnl_qdisc qdisc,
int  rate,
int  bucket,
int  cell 
)

Set peak rate of TBF qdisc.

  • qdisc TBF qdisc to be modified.
  • rate New peak rate in bytes per second.
  • bucket Size of peakrate bucket.
  • cell Size of a peakrate cell or 0 to get default value.
    Returns
    0 on success or a negative error code.

References NLE_NOMEM, rtnl_tbf::qt_mask, rtnl_tbf::qt_peakrate, rtnl_tbf::qt_peakrate_bucket, rtnl_tbf::qt_peakrate_txtime, rtnl_ratespec::rs_cell_log, rtnl_ratespec::rs_rate, and rtnl_tc_calc_txtime().

Here is the call graph for this function:

int rtnl_qdisc_tbf_set_rate ( struct rtnl_qdisc qdisc,
int  rate,
int  bucket,
int  cell 
)

Set rate of TBF qdisc.

  • qdisc TBF qdisc to be modified.
  • rate New rate in bytes per second.
  • bucket Size of bucket in bytes.
  • cell Size of a rate cell or 0 to get default value.
    Returns
    0 on success or a negative error code.

References NLE_NOMEM, rtnl_tbf::qt_mask, rtnl_tbf::qt_rate, rtnl_tbf::qt_rate_bucket, rtnl_tbf::qt_rate_txtime, rtnl_ratespec::rs_cell_log, rtnl_ratespec::rs_rate, and rtnl_tc_calc_txtime().

Here is the call graph for this function: