WR Testbencher


Description of the WR Testnecher’s components, please read with the drawing of the WR Testbencher, at the end of the document, by hand:


Testbencher GUI and User App.


1. The interface presents configuration of the system, tests and results. 
2. The user can load template of the tests based on the RFC 2544/2889 and WR test, stored in a data base.
3. The user can modify and save new tests in the data base.
4. Before be able to run a test, the App must check that the system configuration and the DUT fulfils the requirements of the test.
5. Transmission of the test to the WR Testbencher.


Implementation


C/C++ and Qt


Test and Result Data Base


1. Contains the tests template (RFC 2544/2889 and WR test) and stores the new test save by the user.
2. Stores the results of the Tests.


Implementation


MySQL or other open data base.


Collector
1. Receives the test configuration from the GUI&App 
2. Processes and shapes the test information 


Length Frame
	Payload
	Frame Rate
	N° Trials
	Burst Size
	Destination Address
	Traffic Direction
	Load per Port
	Interframe gap
	VLAN flags
	

1. Transmits the processed test information to the Engine
2. Gathers the results of a test and sends them to the data base
3. Creation of pseudo-random/specific destination MAC address 
4. Creation of pseudo-random/specific payload
5. Creates a destination port table for a test that send different traffic, rate etc...  in every  port.


Testbencher Engine


1. Stores the result of a test in memory and sens to the Collector , once is finished the test.
2. Organizes the parameters of the test (length frame, payload etc..) and uses them to load, trigger and stop the Frame Generator
3. Receives from the Frame Detector information of the test or DUT and stores the relevant information in memory.
4. Modifies on-the-fly parameters of the running test, if the information received from DUT fulfils pre-defined conditions. 


Frame Generator


1. Generates frames with parameters: legnth, rate etc.. received from the Engine
2. Indicates to the Frame2Port Allocator the destination port of the frames


Implementation


Maciej has developed a frame generator for testing the FEC, we could reuse it. 


Frame Detector


1. Detects pre-defined frames sensible for the test, either from the DUT or from the traffic’s test 
2. Propagate the detected frames to the Engine, or to the WRPTP/RSTP dameon.


Frame2Port Allocator


1. Allocates a frame in the queue of a destination port in the corresponding level of priority  according to the information provided from the Frame Generator.


 Implementation


It is quite similar to the part of the swcore_spec, from (what is so call in the swcore_spec) Input block to the Output block. 




CoS Queues and Queue Manager


1. Hosts accordingly the frames in seven (or less) queues coming from Frame2Port Allocator
2. The Queue Manager transmits to its port the frames from the queues accordingly an algorithm defined to respect a different levels of priority.


 Implementation


The Queue Manager algorithm is being researched in GSI in the frame of a Master Thesis. 
The CoS Queues is a similar to the Output Block in the swcore

