8 testcase, traffic_ctlr, traffic_gen, traffic_defaults, HwSwTrafficGen;
\r
11 HwSwTrafficGen note HwSwTrafficGen [ label = "Ixia, Spirent, Xena, Moongen, etc."];
\r
12 testcase => traffic_ctlr [ label = "create(traffic_gen_class)" ];
\r
13 traffic_ctlr => traffic_gen [label = "create()"];
\r
14 traffic_ctlr => traffic_gen [label = "connect()"];
\r
15 testcase => traffic_ctlr [ label = "send_traffic(traffic)" ];
\r
16 --- [ label = "foreach packet_size in configuration"];
\r
17 traffic_ctlr note traffic_ctlr [ label = "invokes send_rfc2544_back2back/tput or send_cont based on traffic['traffic_type']; Also fetches duration/trials from config" ];
\r
18 traffic_ctlr => traffic_gen [ label = "send_rfc2544_tput(traffic, ...)" ];
\r
19 traffic_gen -> traffic_gen [ label = "start_rfc2544_tput(traffic)" ];
\r
20 traffic_gen => traffic_defaults [ label = "default_traffic_params = read()" ];
\r
21 traffic_gen note traffic_gen [ label = "merge traffic with default_traffic_params)" ];
\r
22 traffic_gen note traffic_gen [ label = "Actual test starts here. Details of interactions between traffic_gen class actual traffic generator (HwSwTrafficGen) are hidden to vsperf"];
\r
23 traffic_gen <=> HwSwTrafficGen [ label = "..."];
\r
24 traffic_gen => traffic_gen [ label = "wait_rfc2544_throughput()"];
\r
25 traffic_ctlr << traffic_gen [ label = "results (string/value pairs)"];
\r
26 traffic_ctlr note traffic_ctlr [ label = "store_results()" ];
\r
27 --- [ label = "end foreach"];
\r
28 testcase => traffic_ctlr [label = "get_results()"];
\r
29 testcase => testcase [label = "write_results_to_file"];
\r