mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-10-31 18:58:01 +00:00
l3_vid_group: creating two test groups: one for L3 CX, one for Generic CX
This commit is contained in:
@@ -45,7 +45,8 @@ my $log_cli = "unset"; # use ENV{LOG_CLI} elsewhere
|
|||||||
our $num_cx = -1;
|
our $num_cx = -1;
|
||||||
my $show_help = 0;
|
my $show_help = 0;
|
||||||
our $speed = 1000 * 1000 * 1000;
|
our $speed = 1000 * 1000 * 1000;
|
||||||
our $test_grp;
|
our $generic_test_grp; # we will manage our generic connections using this group (l3_video_em)
|
||||||
|
our $l3_test_grp; # the actual Layer 3 cx will live here, starting with _L3_
|
||||||
our $use_ports_str = "NA";
|
our $use_ports_str = "NA";
|
||||||
our $use_speeds_str = "NA";
|
our $use_speeds_str = "NA";
|
||||||
our $use_max_speeds = "NA";
|
our $use_max_speeds = "NA";
|
||||||
@@ -64,10 +65,11 @@ Usage: $0 # create a large group of Layer 3 creations that emulate video traffic
|
|||||||
--num_cx -n {number} # default 1
|
--num_cx -n {number} # default 1
|
||||||
--resource -r {station resource}
|
--resource -r {station resource}
|
||||||
--speed -s {bps K|M|G} # maximum speed of tx side, default 1Gbps
|
--speed -s {bps K|M|G} # maximum speed of tx side, default 1Gbps
|
||||||
--stream -e {stream resolution name|list} # default yt-sdr-1080p30
|
--stream --vid_mode -e {stream resolution name|list} # default yt-sdr-1080p30
|
||||||
# list of streams maintained in l3_video_em.pl
|
# list of streams maintained in l3_video_em.pl
|
||||||
--test_grp -g {test group name} # all connections placed in this group
|
--test_grp -g {test group name} # all connections placed in this group
|
||||||
# default is {cx_name}_tg
|
# default is {cx_name}_tg for the Generic connections
|
||||||
|
# we manage Layer 3 connections in _L3_{cx_name}_tg
|
||||||
--upstream -u {port short-EID} # video transmitter port;
|
--upstream -u {port short-EID} # video transmitter port;
|
||||||
# use 1.1.eth1 or 1.2.br0 for example
|
# use 1.1.eth1 or 1.2.br0 for example
|
||||||
# upstream port does not need to be on same resource
|
# upstream port does not need to be on same resource
|
||||||
@@ -115,7 +117,8 @@ GetOptions
|
|||||||
'quiet|q=s' => \$::quiet,
|
'quiet|q=s' => \$::quiet,
|
||||||
'resource|r=i' => \$::resource,
|
'resource|r=i' => \$::resource,
|
||||||
'speed|s=i' => \$::speed,
|
'speed|s=i' => \$::speed,
|
||||||
'test_grp|g=s' => \$::test_grp,
|
'stream|vid_mode|e' => \$::vid_mode,
|
||||||
|
'test_group|test_grp|group|g=s' => \$::generic_test_grp,
|
||||||
'upstream|u=s' => \$::upstream,
|
'upstream|u=s' => \$::upstream,
|
||||||
|
|
||||||
) || die($::usage);
|
) || die($::usage);
|
||||||
@@ -158,13 +161,14 @@ $::utils->connect($lfmgr_host, $lfmgr_port);
|
|||||||
|
|
||||||
# Apply defaults
|
# Apply defaults
|
||||||
|
|
||||||
if (!(defined $::test_grp) || ("" eq $::test_grp) || ("NA" eq $::test_grp)) {
|
if (!(defined $::generic_test_grp) || ("" eq $::generic_test_grp) || ("NA" eq $::generic_test_grp)) {
|
||||||
# use cx_name as prefix
|
# use cx_name as prefix
|
||||||
if (!(defined $::cx_name) || ("" eq $::cx_name) || ("NA" eq $::cx_name)) {
|
if (!(defined $::cx_name) || ("" eq $::cx_name) || ("NA" eq $::cx_name)) {
|
||||||
die("No test_grp or cx_name is defined. Bye.");
|
die("No test_grp or cx_name is defined. Bye.");
|
||||||
}
|
}
|
||||||
$::test_grp = $::cx_name ."_tg";
|
$::generic_test_grp = $::cx_name ."_tg";
|
||||||
}
|
}
|
||||||
|
$::l3_test_grp = "_L3_".$::generic_test_grp;
|
||||||
|
|
||||||
# get a list of test groups
|
# get a list of test groups
|
||||||
my $ra_tg_list = $::utils->test_groups();
|
my $ra_tg_list = $::utils->test_groups();
|
||||||
@@ -176,25 +180,31 @@ if ($::clear_group > 0) {
|
|||||||
print "No test groups defined, bye.";
|
print "No test groups defined, bye.";
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
my @matches = grep {/^TestGroup name:\s+${main::test_grp}\s+[\[]/} @$ra_tg_list;
|
my $re = q(^TestGroup name:\s+).$::generic_test_grp.q(\s+[\[]);
|
||||||
|
my @matches = grep {/$re/} @$ra_tg_list;
|
||||||
print Dumper(\@matches) if ($::debug);
|
print Dumper(\@matches) if ($::debug);
|
||||||
if (@matches < 1) {
|
if (@matches < 1) {
|
||||||
print "No test group matching name [$::test_grp], bye.";
|
print "No test group matching name [$::test_grp], bye.";
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
print "will clear group $::test_grp\n";
|
print "will clear groups $::generic_test_grp and $::l3_test_grp\n";
|
||||||
$::utils->doCmd("clear_group $::test_grp");
|
$::utils->doCmd("clear_group $::generic_test_grp");
|
||||||
|
$::utils->doCmd("clear_group $::l3_test_grp");
|
||||||
}
|
}
|
||||||
|
|
||||||
# ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------
|
# ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------
|
||||||
if ($::action eq "create") {
|
if ($::action eq "create") {
|
||||||
my @matches = grep {/^TestGroup name:\s+${main::test_grp}\s+[\[]/} @$ra_tg_list;
|
my $re = q(^TestGroup name:\s+).$::generic_test_grp.q(\s+[\[]);
|
||||||
|
my @matches = grep {/$re/} @$ra_tg_list;
|
||||||
print Dumper(\@matches) if ($::debug);
|
print Dumper(\@matches) if ($::debug);
|
||||||
if (@matches < 1) {
|
if (@matches < 1) {
|
||||||
print "Creating test group matching name [$::test_grp]...";
|
print "Creating test group matching name [$::generic_test_grp]...";
|
||||||
$::utils->doCmd($::utils->fmt_cmd("add_group", $::test_grp));
|
$::utils->doCmd($::utils->fmt_cmd("add_group", $::generic_test_grp));
|
||||||
|
$::utils->doCmd($::utils->fmt_cmd("add_group", $::l3_test_grp));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(defined $::cx_name) or ("" eq $::cx_name)) {
|
if (!(defined $::cx_name) or ("" eq $::cx_name)) {
|
||||||
$::cx_name = $::test_grp."-";
|
$::cx_name = $::generic_test_grp."-";
|
||||||
}
|
}
|
||||||
if (!(defined $::buffer_size) or ($::buffer_size < 0)) {
|
if (!(defined $::buffer_size) or ($::buffer_size < 0)) {
|
||||||
print ("Please set --buffer_size, bye.");
|
print ("Please set --buffer_size, bye.");
|
||||||
@@ -271,16 +281,29 @@ if ($::action eq "create") {
|
|||||||
|
|
||||||
for (my $i=0; $i < $::num_cx; $i++) {
|
for (my $i=0; $i < $::num_cx; $i++) {
|
||||||
my $j = 10000 + $i;
|
my $j = 10000 + $i;
|
||||||
my $name = $::cx_name . substr("$j", 1);
|
my $cname = "_".$::cx_name . substr("$j", 1);
|
||||||
my $ports = join('.', 1, $::resource, $selected_list[$i]).",".$::upstream;
|
my $ports = join('.', 1, $::resource, $selected_list[$i]).",".$::upstream;
|
||||||
|
|
||||||
print "Connection name $name uses $ports\n";
|
#print "Connection name $name uses $ports\n";
|
||||||
my $cmd = qq(./lf_firemod.pl --mgr $::lfmgr_host --mgr_port $::lfmgr_port )
|
my $cmd = qq(/home/lanforge/scripts/lf_firemod.pl --mgr $::lfmgr_host --mgr_port $::lfmgr_port )
|
||||||
.qq(--action create_cx --cx_name $name --endp_type $::endp_type )
|
.qq(--action create_cx --cx_name $cname --endp_type $::endp_type )
|
||||||
.qq(--use_ports $ports --use_speeds 0,0 --report_timer 3000);
|
.qq(--use_ports $ports --use_speeds 0,0 --report_timer 3000);
|
||||||
print "CMD: $cmd\n";
|
print "CMD: $cmd\n";
|
||||||
`$cmd`;
|
`$cmd`;
|
||||||
$::utils->doAsyncCmd($::utils->fmt_cmd("add_tgcx", $::test_grp, $name));
|
$::utils->doAsyncCmd($::utils->fmt_cmd("add_tgcx", $::l3_test_grp, $cname));
|
||||||
|
|
||||||
|
my $gname = $::cx_name . substr("$j", 1);
|
||||||
|
$cmd = qq(/home/lanforge/scripts/l3_video_em.pl --mgr $::lfmgr_host --mgr_port $::lfmgr_port )
|
||||||
|
.qq(--cx_name $cname --max_tx 1G --buf_size $::buffer_size )
|
||||||
|
.qq(--stream $::vid_mode --quiet yes );
|
||||||
|
my $cmd2 = qq(./lf_firemod.pl --mgr $::lfmgr_host --mgr_port $::lfmgr_port )
|
||||||
|
.qq(--action create_endp --endp_name $gname --endp_type 'generic' )
|
||||||
|
.qq(--port_name ).$selected_list[$i].q( )
|
||||||
|
.q(--endp_cmd ").$cmd.q(");
|
||||||
|
print "CMD: $cmd2\n";
|
||||||
|
`$cmd2`;
|
||||||
|
sleep_ms(20);
|
||||||
|
$::utils->doAsyncCmd($::utils->fmt_cmd("add_tgcx", $::generic_test_grp, $gname));
|
||||||
}
|
}
|
||||||
|
|
||||||
exit 0;
|
exit 0;
|
||||||
@@ -292,25 +315,15 @@ if ($::action eq "destroy") {
|
|||||||
}
|
}
|
||||||
# ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------
|
# ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------
|
||||||
if ($::action eq "start") {
|
if ($::action eq "start") {
|
||||||
print "we will start!";
|
if (!(defined $::generic_test_grp) || ("" eq $::generic_test_grp)) {
|
||||||
|
|
||||||
if (!(defined $::test_grp) || ("" eq $::test_grp)) {
|
|
||||||
print "Please specify test group to start: --test_grp foo; bye.";
|
print "Please specify test group to start: --test_grp foo; bye.";
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
# collect all cx names in the test group and start up the
|
# collect all cx names in the test group and start up the
|
||||||
# video pulser on them
|
# video pulser on them
|
||||||
print "==========================================\n";
|
print "Starting connections...";
|
||||||
my $ra_items = $::utils->group_items($::test_grp);
|
$::utils->doCmd("start_group $::generic_test_grp");
|
||||||
|
|
||||||
print Dumper($ra_items) if ($::debug);
|
|
||||||
foreach my $name (@$ra_items) {
|
|
||||||
my $CMD = "./l3_vid_ stuff $::vid_mode ect";
|
|
||||||
print "$CMD\n";
|
|
||||||
}
|
|
||||||
print "==========================================\n";
|
|
||||||
#$::utils->sleep_ms(100);
|
|
||||||
|
|
||||||
exit 0;
|
exit 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user