Merge "ixia: VLAN support without l3/l4 headers"
[vswitchperf.git] / docs / msc / vsperf.msc
1 msc {
2   #Options
3   hscale = "2.0";
4
5   #Entities
6   vsperf, testcase, vnf_ctl, vnf, vswitch_ctl, vswitch, traffic_ctl, traffic_gen, load_gen;
7
8   #Arcs
9   vsperf note vsperf [ label = "$ ./vsperf pvp_tput" ];
10   vsperf note vsperf [ label = " foreach test specified" ];
11   vsperf => testcase [ label="run()" ];
12   --- [ label = " skipping details of finding and creating correct subclasses of IVSwitch, ITrafficGenerator etc." ];
13   testcase => vswitch_ctl [ label="create(vswitch_class" ];
14   vswitch_ctl note vswitch_ctl [ label="vswitch_ctl is instance of VswitchControllerPXP"];
15   testcase => vnf_ctl [ label="create(vnf_class)" ];
16   vnf_ctl note vnf_ctl [ label="vnf_ctl is instance of VnfController"];
17   testcase => traffic_ctl [ label="create()" ];
18   traffic_ctl note traffic_ctl [ label="traffic_ctl is instance of TrafficControllerRFC2544"];
19   |||;
20   testcase note testcase [ label="Python context management protocol __enter__, __exit__ is used to start/stop controllers"];
21   testcase => vswitch_ctl [ label="__enter__()"];
22   vswitch_ctl => vswitch [ label ="create()"];
23   vswitch note vswitch [label="vswitch is instance of OvsDpdkVhost"];
24   vswitch_ctl => vswitch [ label="add_phy_port()" ];
25   vswitch_ctl => vswitch [ label="add_vport()" ];
26   vswitch_ctl => vswitch [ label="add_flow()" ];
27   --- [ label = " skipping full details of switch configuration " ];
28   |||;
29   testcase => vnf_ctl [ label="__enter__()"];
30   vnf_ctl => vnf [ label="create()"];
31   |||;
32   testcase => load_gen [ label="create/start()" ];
33   load_gen note load_gen [ label="loadgen simulates system load using 'stress' tool "];
34   |||;
35   testcase => traffic_ctl [ label="send_traffic(traffic)" ];
36   traffic_ctl note traffic_ctl [ label="'traffic' specifies the 'Traffic Type' from 01_testcases.conf as well as other traffic details" ];
37   traffic_ctl => traffic_gen [label="send_rfc2544_throughput()"];
38   traffic_gen note traffic_gen [label="The implementation is dependent on the vendor specific Traffic Gen used"];
39   |||;
40   traffic_ctl << traffic_gen [label="returns results as str:value pairs"];
41   testcase << traffic_ctl;
42   testcase => traffic_ctl [label="get_results()"];
43   testcase => testcase [label="write_result_to_file()"];
44   |||;
45   |||;
46 }
47