+our @single_sw_port_visible;
+sub single_sw_port_visible {
+ @single_sw_port_visible = ();
+ my $s = {};
+ foreach my $sw ( keys %$later ) {
+ if ( exists $stat->{_found}->{$sw} ) {
+ my @d = delete $later->{$sw};
+ warn "REMOVED $sw from later it's _found! later was = ",dump( \@d );
+ next;
+ }
+ my @ports = sort keys %{ $later->{$sw} };
+ foreach my $port ( @ports ) {
+ my @visible = uniq_visible( @{ $later->{$sw}->{$port} } );
+ if ( $#visible < 0 ) {
+ warn "REMOVED $sw $port from later it's empty";
+ delete $later->{$sw}->{$port};
+ next;
+ }
+ $s->{$sw}->{$port} = [ @visible ];
+ push @single_sw_port_visible, [ $sw, $port, $visible[0] ] if $#visible == 0; # single
+ }
+ }
+ my $d_s = dump($s);
+ my $d_l = dump($later);
+ if ( $d_s ne $d_l ) {
+ $later = $s;
+ warn "# single_sw_port_visible = ",dump( \@single_sw_port_visible );
+ warn "# reduced later = ",dump( $later );
+ }
+}
+