Skip to content
Tom Barbette edited this page Oct 3, 2018 · 2 revisions

Shaper Element Documentation

NAME

Shaper — Click element; shapes traffic to maximum rate (pkt/s)

SYNOPSIS

Shaper(RATE)

Ports: 1 input, 1-2 outputs
Processing: Pull

DESCRIPTION

Shaper is a pull element that allows a maximum of RATE packets per second to pass through. That is, traffic is shaped to RATE packets per second. Shaper is dependent on the timing of its pull requests; if it receives only sporadic pull requests, then it will emit packets only sporadically. However, if it receives a large number of evenly-spaced pull requests, then it will emit packets at the specified RATE with low burstiness.

Pull requests on optional output port 1 return packets that do not meet the shaping condition at the time of the pull. Use with care: packets are now pulled from upstream without shaping. (This is different from RatedSplitter, whose optional output port 1 emits packets that would otherwise just have been dropped.) Port 1 can be useful for sampling in pull context, as in the example below.

NOTES

Shaper cannot implement every rate smoothly. For example, it can smoothly generate 1000000 packets per second and 1000244 packets per second, but not rates in between. (In-between rates will result in minor burstiness.) This granularity issue is negligible at low rates, and becomes serious at very high rates; for example, Shaper cannot smoothly implement any rate between 2.048e10 and 4.096e10 packets per second.

EXAMPLES

 Rate limited printing in pull context:
 ..
 -> Shaper(10)
 => ( [0] -> Print -> [0];
 [1] -> [1] )
 => RoundRobinSched
 -> ..

ELEMENT HANDLERS

  • rate (read/write) — Returns or sets the RATE parameter.

SEE ALSO

BandwidthShaper, RatedSplitter, RatedUnqueue

Generated by click-elem2man from ../elements/standard/shaper.hh:8 on 2018/10/03.

Clone this wiki locally