Traffic Control
[Routing Netlink]

Modules

 Queueing Classes
 Classifiers
 Queueing Disciplines

Defines

#define RTNL_TC_RTABLE_SIZE   256
 Number of entries in a transmission time lookup table.

Enumerations

enum  rtnl_tc_stats_id {
  RTNL_TC_PACKETS, RTNL_TC_BYTES, RTNL_TC_RATE_BPS, RTNL_TC_RATE_PPS,
  RTNL_TC_QLEN, RTNL_TC_BACKLOG, RTNL_TC_DROPS, RTNL_TC_REQUEUES,
  RTNL_TC_OVERLIMITS, __RTNL_TC_STATS_MAX
}
 

TC statistics identifiers.

More...

Utilities



int rtnl_tc_calc_txtime (int bufsize, int rate)
 Calculate time required to transmit buffer at a specific rate.
int rtnl_tc_calc_bufsize (int txtime, int rate)
 Calculate buffer size able to transmit in a specific time and rate.
int rtnl_tc_calc_cell_log (int cell_size)
 Calculate the binary logarithm for a specific cell size.

Rate Tables



int rtnl_tc_build_rate_table (uint32_t *dst, uint8_t mpu, uint8_t overhead, int cell, int rate)
 Compute a transmission time lookup table.

Traffic Control Handle Translations



char * rtnl_tc_handle2str (uint32_t handle, char *buf, size_t len)
 Convert a traffic control handle to a character string (Reentrant).
int rtnl_tc_str2handle (const char *name, uint32_t *res)
 Convert a charactering strint to a traffic control handle.

Enumeration Type Documentation

Enumerator:
RTNL_TC_PACKETS 

Packets seen.

RTNL_TC_BYTES 

Bytes seen.

RTNL_TC_RATE_BPS 

Current bits/s (rate estimator).

RTNL_TC_RATE_PPS 

Current packet/s (rate estimator).

RTNL_TC_QLEN 

Queue length.

RTNL_TC_BACKLOG 

Backlog length.

RTNL_TC_DROPS 

Packets dropped.

RTNL_TC_REQUEUES 

Number of requeues.

RTNL_TC_OVERLIMITS 

Number of overlimits.

Definition at line 27 of file tc.h.


Function Documentation

int rtnl_tc_calc_txtime ( int  bufsize,
int  rate 
)
Parameters:
bufsize Size of buffer to be transmited in bytes.
rate Transmit rate in bytes per second.

Calculates the number of micro seconds required to transmit a specific buffer at a specific transmit rate.

\[ txtime=\frac{bufsize}{rate}10^6 \]

Returns:
Required transmit time in micro seconds.

Definition at line 383 of file tc.c.

Referenced by rtnl_qdisc_tbf_set_peakrate(), rtnl_qdisc_tbf_set_rate(), and rtnl_tc_build_rate_table().

int rtnl_tc_calc_bufsize ( int  txtime,
int  rate 
)
Parameters:
txtime Available transmit time in micro seconds.
rate Transmit rate in bytes per second.

Calculates the size of the buffer that can be transmitted in a specific time period at a specific transmit rate.

\[ bufsize=\frac{{txtime} \times {rate}}{10^6} \]

Returns:
Size of buffer in bytes.

Definition at line 406 of file tc.c.

int rtnl_tc_calc_cell_log ( int  cell_size  ) 
Parameters:
cell_size Size of cell, must be a power of two.
Returns:
Binary logirhtm of cell size or a negative error code.

Definition at line 420 of file tc.c.

Referenced by rtnl_tc_build_rate_table().

int rtnl_tc_build_rate_table ( uint32_t *  dst,
uint8_t  mpu,
uint8_t  overhead,
int  cell,
int  rate 
)
Parameters:
dst Destination buffer of RTNL_TC_RTABLE_SIZE uint32_t[].
mpu Minimal size of a packet at all times.
overhead Overhead to be added to each packet.
cell Size of cell, i.e. size of step between entries in bytes.
rate Rate in bytes per second.

Computes a table of RTNL_TC_RTABLE_SIZE entries specyfing the transmission times for various packet sizes, e.g. the transmission time for a packet of size pktsize could be looked up:

 txtime = table[pktsize >> log2(cell)];

Definition at line 454 of file tc.c.

References rtnl_tc_calc_cell_log(), rtnl_tc_calc_txtime(), and RTNL_TC_RTABLE_SIZE.

char* rtnl_tc_handle2str ( uint32_t  handle,
char *  buf,
size_t  len 
)
Parameters:
handle traffic control handle
buf destination buffer
len buffer length

Converts a tarffic control handle to a character string in the form of MAJ:MIN and stores it in the specified destination buffer.

Returns:
The destination buffer or the type encoded in hexidecimal form if no match was found.

Definition at line 493 of file tc.c.

int rtnl_tc_str2handle ( const char *  name,
uint32_t *  res 
)
Parameters:
name traffic control handle as character string
res destination buffer

Converts the provided character string specifying a traffic control handle to the corresponding numeric value.

The handle must be provided in one of the following formats:

  • root
  • none
  • XXXX:
  • :YYYY
  • XXXX:YYYY
  • XXXXYYYY
Returns:
0 on success or a negative error code

Definition at line 528 of file tc.c.


Generated by  doxygen 1.6.2