All Classes Namespaces Files Functions Pages
StreamModifier.GrowingSize Class Reference

A frame size modifier which will increase the size of the frame between a minimum and maximum value. More...

Methods

 Description.Get
 Returns a textual description of the object.
 
 Iteration.Get
 Method to get the current configured iteration. More...
 
 Iteration.Set iteration
 Sets the number of times the same frame size will be used. More...
 
 Maximum.Get
 Method to get the current configured maximum frame size. More...
 
 Maximum.Set maximum
 Sets the maximum size of a Frame of a growing size flow. This defines the maximum frame size of the stream. More...
 
 Minimum.Get
 Method to get the current configured minimum frame size. More...
 
 Minimum.Set minimum
 Sets the Minimum size of a Frame of a growing size flow. More...
 
 Parent.Get
 Returns the parent object.
 
 Step.Get
 Method to get the current configured step size. More...
 
 Step.Set step
 Sets the number of bytes a frame will grow in one step. More...
 

Class overview

A frame size modifier which will increase the size of the frame between a minimum and maximum value.

Deprecated:
Since 2.3.0 this functionality is replaced by the FrameSizeModifier.Growing, see Frame::Modifier.Size.Growing.Set for more information.

ByteBlower allows different modifiers on a flow. Some modifiers work on the timing parameters of a frame, others on the size or content. The StreamModifier.GrowingSize is a modifier which modifies the size of the frames added to the Tx.Stream on which this Modifier is added.

A StreamModifier.GrowingSize will increment the frame size with a configured amount of bytes. The following parameters can be configured:

Minimum size
the minimum frame size. This size will be used when the Tx.Stream is started.
Maximum size
the maximum frame size. It this limit is reached, the modifier will return to the minimum size again.
Step size
the amount of bytes the size will increase. By default, a frame will grow with one byte but this parameter allows larger step sizes.
Iteration
this paramter defines the number of times the same frame size is iterated before increasing to the next frame size.

So, a stream with a StreamModifier.GrowingSize installed, will start sending frames with a <Minimum size> size, will send this size <Iteration> times, increase the size with <Step size> bytes until the <Maximum size> is reached.

If the maximum size is reached, the next size is calculated as follows:

<next size> = <Minimum size> + ( <current size> + <Step size> - <Maximum size> )

All sizes define a frame size, excluding the 4 bytes Ethernet checksum.

The frame size modifier will change the sizes of the Frames added to the stream. It the original frame size is longer, the size will truncated to the requested frame size. If automatic checksum calculations have been enabled on the Frame, they will be recalculated. This depends on the configuration of the Frame. See the Frame documentation on how this can be done.

If the original frame size of a Frame is too short, the Frame will be padded with zero-value bytes.

If multiple frames are added to a Tx.Stream which is configured with a StreamModifier.GrowingSize, the frames are sent alternately, while the modifier is applied on all of them. E.g.

 {Frame A , size X}, {Frame B, size X}, {Frame A, size X+1}, {Frame B, size X+1}, ...
Note
It is possible that the maximum size is never reached. Depending on both the <Step size> and the Tx.Stream configuration (NumberOfFrames), the maximum size will never be used.

Definition at line 22086 of file api.tcl.

Method documentation

StreamModifier.GrowingSize::Iteration.Get

Method to get the current configured iteration.

Returns
The iteration which will be used for a growing size flow.
Example

This example show how to retrieve the current iteration.

1 $growingSizeModifier Iteration.Get

Returns:

1 

Definition at line 22103 of file api.tcl.

StreamModifier.GrowingSize::Iteration.Set   iteration  

Sets the number of times the same frame size will be used.

A Frame can be sent with the same frame size multiple times before the size is increased to the next value. This parameter defines the iteration count.

Parameters
iterationNumber of times the same frame size will be used before the frame size is increased to the next value.
Default: 1
Example

This example demonstrates an iteration of 10, before going to the next frame size.

1 $growingSizeModifier Iteration.Set 10

Definition at line 22117 of file api.tcl.

StreamModifier.GrowingSize::Maximum.Get

Method to get the current configured maximum frame size.

Returns
The maximum frame size which will be used for a growing size flow.
Example

This example show how to retrieve the current maximum frame size.

1 $growingSizeModifier Maximum.Get

Returns:

1514 

Definition at line 22129 of file api.tcl.

StreamModifier.GrowingSize::Maximum.Set   maximum  

Sets the maximum size of a Frame of a growing size flow. This defines the maximum frame size of the stream.

Parameters
maximumMaximum byte length of the Frame. This value must be at least 61 bytes, and maximum 8192. The value must also be bigger than the <Minimum size> configured.
Default: 1514
Exceptions
tclerrorMaximum too big or too small.
Example

This example will set the maximum frame size to 128 bytes.

1 $growingSizeModifier Maximum.Set 128

Definition at line 22143 of file api.tcl.

StreamModifier.GrowingSize::Minimum.Get

Method to get the current configured minimum frame size.

Returns
The minimum frame size which will be used for a growing size flow.
Example

This example show how to retrieve the current minimum frame size.

1 $growingSizeModifier Minimum.Get

Returns:

60 

Definition at line 22155 of file api.tcl.

StreamModifier.GrowingSize::Minimum.Set   minimum  

Sets the Minimum size of a Frame of a growing size flow.

This defines the minimal frame size of the stream. This frame size will be used when a Tx.Stream is started.

Parameters
minimumMinimum byte length of the Frame. This value must be at least 60 bytes, and maximum 8191. The value must also be less than the <Maximum size> configured.
Default: 60
Exceptions
tclerrorMinimum too small or too big.
Example

This example will set the minimum frame size to 128 bytes.

1 $growingSizeModifier Minimum.Set 128

Definition at line 22171 of file api.tcl.

StreamModifier.GrowingSize::Step.Get

Method to get the current configured step size.

Returns
The step size which will be used for a growing size flow.
Example

This example show how to retrieve the current step size.

1 $growingSizeModifier Step.Get

Returns:

1 

Definition at line 22188 of file api.tcl.

StreamModifier.GrowingSize::Step.Set   step  

Sets the number of bytes a frame will grow in one step.

Each time the modifier needs to adapt the size of the frame, the size will be incremented with <Step size> bytes.

Parameters
stepThis parameter defines the amount of bytes the frame will grow.
Default: 1
Exceptions
tclerrorAn error is returned when the value is less than 1.
Example

This example demonstrates a step size of 10 bytes:

1 $growingSizeModifier Step.Set 10

Definition at line 22204 of file api.tcl.