Go to main content

man pages section 4: Device and Network Interfaces

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

tokenmt(4IPP)

Name

tokenmt - Single and Two Rate Three Conformance Level Meter

Description

The tokenmt module can be configured as a Single or a Two Rate meter. Packets are deemed to belong to one of the three levels - Red, Yellow or Green - depending on the configured rate(s) and the burst sizes. When configured as a Single Rate meter, tokenmt can operate with just the Green and Red levels.

Configuration parameters for tokenmt correspond to definitions in RFC– 2697 and RFC– 2698 as follows:

Configuring tokenmt as a Single Rate meter (from RFC– 2697):

  • committed_rate - CIR
  • committed_burst - CBS
  • peak_burst - EBS

(thus peak_burst for a single rate meter is actually the 'excess burst' in the RFC. However, throughout the text the parameter name peak burst is used.)

Configuring tokenmt as a Two Rate meter (from RFC– 2698):

  • committed_rate - CIR
  • peak_rate - PIR
  • committed_burst - CBS
  • peak_burst - PBS

The meter is implemented using token buckets C and P, which initially hold tokens equivalent to committed and peak burst sizes (bits) respectively. When a packet of size B bits arrive at time t, the following occurs:

When operating as a Single Rate meter, the outcome (level) 
is decided as follows:
        - Update tokens in C and P
              o Compute no. of tokens accumulated since the 
                last time packet was seen at the committed rate as
                T(t) = committed rate * (t - t')
                (where t' is the time the last packet was seen)
              o Add T tokens to C up to a maximum of committed burst 
                size. Add remaining tokens ((C+T) - Committed Burst),
                if any, to P, to a maximum of peak burst size.
        - Decide outcome
              o If not color aware
                      o If B <= C, outcome is GREEN and C -= B.
                      o Else, if B <= P, outcome is YELLOW and P -= B.
                      o Else, outcome is Red.
              o Else,
                      o obtain DSCP from packet
                      o obtain color from color_map, color_map[DSCP]
                      o if (color is GREEN) and (B <= C), outcome is 
                        GREEN and C -= B.
                      o Else, if (color is GREEN or YELLOW) and
                        (B <= P), outcome is YELLOW and  P -= B.
                      o Else, outcome is RED.
     Note that if peak_burst and yellow_next_actions are 
     not specified (that is, a single rate meter with two 
     outcomes), the outcome is never YELLOW.

When operating as a Two Rate meter, the outcome (level) is decided as follows:

- Update tokens in C and P
                  o Compute no. of tokens accumulated since the last time a
                    packet was seen at the committed and peak rates as
                    Tc(t) = committed rate * (t - t')
                    Tp(t) = peak rate * (t - t')
                    (where t' is the time the last packet was seen)
                  o Add Tc to C up to a maximum of committed burst size
                  o Add Tp to P up to a maximum of peak burst size
             - Decide outcome
                  o If not color aware
                        o If B > P, outcome is RED.
                        o Else, if B > C, outcome is YELLOW and P -= B
                        o Else, outcome is GREEN and C -= B & P -= B
                  o Else,
                        o obtain DSCP from packet
                        o obtain color from color_map, color_map[DSCP]
                        o if (color is RED) or (B > P), outcome is RED
                        o Else, if (color is YELLOW) or (B > C),
                          outcome is YELLOW and P -= B
                        o Else, outcome is GREEN and C -= B & P -= B
 

Statistics

The tokenmt module exports the following statistics through kstat:

Global statistics:


module: tokenmt                          instance: <action id>
  name: tokenmt statistics               class <action name>
        epackets                         <number of packets in error>
        green_bits                       <number of bits in green>
        green_packets                    <number of packets in green>
        red_bits                         <number of bits in red>
        red_packets                      <number of packets in red>
        yellow_bits                      <number of bits in yellow>
        yellow packets                   <number of packets in yellow>

Attributes

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
system/network/ipqos

See Also

dlcosmk(4IPP), dscpmk(4IPP), flowacct(4IPP), ipgpc(4IPP), ipqos(4IPP), tswtclmt(4IPP), dladm(8), dlstat(8), flowadm(8), flowstat(8), ipqosconf(8)

RFC 2697, A Single Rate Three Color Marker J. Heinanen, R. Guerin, The Internet Society, 1999.

RFC 2698, A Two Rate Three Color Marker J. Heinanen, R. Guerin , The Internet Society, 1999.

Notes

The IPQoS facility may be removed in a future release. Users are encouraged to migrate to dladm(8), dlstat(8), flowadm(8), and flowstat(8), which support similar bandwidth resource control features.