parse_tcpdump_log.pl: Add an option to show that bulk/isoc xfers happened
authorMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 26 Jul 2011 12:06:41 +0000 (09:06 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 23 Nov 2011 21:32:34 +0000 (19:32 -0200)
This is not really a parser for bulk/isoc, but it helps to see where,
in the stream, the xfers started to occur.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
contrib/parse_tcpdump_log.pl

index a29a4a4..e665e29 100755 (executable)
@@ -38,11 +38,13 @@ my $debug = 0;
 my $man = 0;
 my $help = 0;
 my $pcap = 0;
+my $all = 0;
 my $device;
 
 GetOptions('debug=i' => \$debug,
           'help|?' => \$help,
           'pcap' => \$pcap,
+          'all' => \$all,
           'device=s' => \$device,
            man => \$man
          ) or pod2usage(2);
@@ -374,6 +376,13 @@ sub print_frame($$)
        return;
 }
 
+my %frametype = (
+       0 => "ISOC",
+       1 => "Interrupt",
+       2 => "Control",
+       3 => "Bulk",
+);
+
 sub process_frame($) {
        my %frame = %{ $_[0] };
 
@@ -385,7 +394,10 @@ sub process_frame($) {
        }
 
        # For now, we'll take a look only on control frames
-       return if ($frame{"TransferType"} ne "2");
+       if ($frame{"TransferType"} ne "2" && $all) {
+               printf "Transfer type: %s\n", $frametype{$frame{"TransferType"}};
+               return;
+       }
 
        if ($frame{"Status"} eq "-115") {
                push @pending, \%frame;