Attribute Access | |
| |
int | rtnl_qdisc_tbf_set_limit (struct rtnl_qdisc *qdisc, int limit) |
Set limit of TBF qdisc. | |
int | rtnl_qdisc_tbf_set_limit_by_latency (struct rtnl_qdisc *qdisc, int latency) |
Set limit of TBF qdisc by latency. | |
int | rtnl_qdisc_tbf_get_limit (struct rtnl_qdisc *qdisc) |
Get limit of TBF qdisc. | |
int | rtnl_qdisc_tbf_set_mpu (struct rtnl_qdisc *qdisc, int mpu) |
Set MPU of TBF qdisc. | |
int | rtnl_qdisc_tbf_get_mpu (struct rtnl_qdisc *qdisc) |
Get MPU of TBF qdisc. | |
int | rtnl_qdisc_tbf_set_rate (struct rtnl_qdisc *qdisc, int rate, int bucket, int cell) |
Set rate of TBF qdisc. | |
int | rtnl_qdisc_tbf_get_rate (struct rtnl_qdisc *qdisc) |
Get rate of TBF qdisc. | |
int | rtnl_qdisc_tbf_get_rate_bucket (struct rtnl_qdisc *qdisc) |
Get rate bucket size of TBF qdisc. | |
int | rtnl_qdisc_tbf_get_rate_cell (struct rtnl_qdisc *qdisc) |
Get rate cell size of TBF qdisc. | |
int | rtnl_qdisc_tbf_set_peakrate (struct rtnl_qdisc *qdisc, int rate, int bucket, int cell) |
Set peak rate of TBF qdisc. | |
int | rtnl_qdisc_tbf_get_peakrate (struct rtnl_qdisc *qdisc) |
Get peak rate of TBF qdisc. | |
int | rtnl_qdisc_tbf_get_peakrate_bucket (struct rtnl_qdisc *qdisc) |
Get peak rate bucket size of TBF qdisc. | |
int | rtnl_qdisc_tbf_get_peakrate_cell (struct rtnl_qdisc *qdisc) |
Get peak rate cell size of TBF qdisc. |
int rtnl_qdisc_tbf_set_limit | ( | struct rtnl_qdisc * | qdisc, | |
int | limit | |||
) |
qdisc | TBF qdisc to be modified. | |
limit | New limit in bytes. |
Definition at line 223 of file tbf.c.
Referenced by rtnl_qdisc_tbf_set_limit_by_latency().
int rtnl_qdisc_tbf_set_limit_by_latency | ( | struct rtnl_qdisc * | qdisc, | |
int | 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.
Definition at line 266 of file tbf.c.
References rtnl_qdisc_tbf_set_limit().
00267 { 00268 struct rtnl_tbf *tbf; 00269 double limit, limit2; 00270 00271 tbf = tbf_alloc(qdisc); 00272 if (!tbf) 00273 return nl_errno(ENOMEM); 00274 00275 if (!(tbf->qt_mask & TBF_ATTR_RATE)) 00276 return nl_error(EINVAL, "The rate must be specified before " 00277 "limit can be calculated based on latency."); 00278 00279 limit = calc_limit(&tbf->qt_rate, latency, tbf->qt_rate_bucket); 00280 00281 if (tbf->qt_mask & TBF_ATTR_PEAKRATE) { 00282 limit2 = calc_limit(&tbf->qt_peakrate, latency, 00283 tbf->qt_peakrate_bucket); 00284 00285 if (limit2 < limit) 00286 limit = limit2; 00287 } 00288 00289 return rtnl_qdisc_tbf_set_limit(qdisc, (int) limit); 00290 }
int rtnl_qdisc_tbf_get_limit | ( | struct rtnl_qdisc * | qdisc | ) |
qdisc | TBF qdisc. |
int rtnl_qdisc_tbf_set_mpu | ( | struct rtnl_qdisc * | qdisc, | |
int | mpu | |||
) |
qdisc | TBF qdisc to be modified. | |
mpu | New MPU in bytes. |
int rtnl_qdisc_tbf_get_mpu | ( | struct rtnl_qdisc * | qdisc | ) |
qdisc | TBF qdisc. |
int rtnl_qdisc_tbf_set_rate | ( | struct rtnl_qdisc * | qdisc, | |
int | rate, | |||
int | bucket, | |||
int | cell | |||
) |
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. |
Definition at line 369 of file tbf.c.
References rtnl_tc_calc_txtime().
00371 { 00372 struct rtnl_tbf *tbf; 00373 int cell_log; 00374 00375 tbf = tbf_alloc(qdisc); 00376 if (!tbf) 00377 return nl_errno(ENOMEM); 00378 00379 cell_log = calc_cell_log(cell, bucket); 00380 if (cell_log < 0) 00381 return cell_log; 00382 00383 tbf->qt_rate.rs_rate = rate; 00384 tbf->qt_rate_bucket = bucket; 00385 tbf->qt_rate.rs_cell_log = cell_log; 00386 tbf->qt_rate_txtime = rtnl_tc_calc_txtime(bucket, rate); 00387 tbf->qt_mask |= TBF_ATTR_RATE; 00388 00389 return 0; 00390 }
int rtnl_qdisc_tbf_get_rate | ( | struct rtnl_qdisc * | qdisc | ) |
qdisc | TBF qdisc. |
int rtnl_qdisc_tbf_get_rate_bucket | ( | struct rtnl_qdisc * | qdisc | ) |
qdisc | TBF qdisc. |
int rtnl_qdisc_tbf_get_rate_cell | ( | struct rtnl_qdisc * | qdisc | ) |
qdisc | TBF qdisc. |
int rtnl_qdisc_tbf_set_peakrate | ( | struct rtnl_qdisc * | qdisc, | |
int | rate, | |||
int | bucket, | |||
int | cell | |||
) |
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. |
Definition at line 448 of file tbf.c.
References rtnl_tc_calc_txtime().
00450 { 00451 struct rtnl_tbf *tbf; 00452 int cell_log; 00453 00454 tbf = tbf_alloc(qdisc); 00455 if (!tbf) 00456 return nl_errno(ENOMEM); 00457 00458 cell_log = calc_cell_log(cell, bucket); 00459 if (cell_log < 0) 00460 return cell_log; 00461 00462 tbf->qt_peakrate.rs_rate = rate; 00463 tbf->qt_peakrate_bucket = bucket; 00464 tbf->qt_peakrate.rs_cell_log = cell_log; 00465 tbf->qt_peakrate_txtime = rtnl_tc_calc_txtime(bucket, rate); 00466 00467 tbf->qt_mask |= TBF_ATTR_PEAKRATE; 00468 00469 return 0; 00470 }
int rtnl_qdisc_tbf_get_peakrate | ( | struct rtnl_qdisc * | qdisc | ) |
qdisc | TBF qdisc. |
int rtnl_qdisc_tbf_get_peakrate_bucket | ( | struct rtnl_qdisc * | qdisc | ) |
qdisc | TBF qdisc. |
int rtnl_qdisc_tbf_get_peakrate_cell | ( | struct rtnl_qdisc * | qdisc | ) |
qdisc | TBF qdisc. |