Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 6485a35

Browse files
committedNov 24, 2014
recognise nano-format pcaps
1 parent 63cd331 commit 6485a35

File tree

2 files changed

+32
-10
lines changed

2 files changed

+32
-10
lines changed
 

‎pcap/pcapparser_10gbmac.v

+16-5
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ module pcapparser_10gbmac
4040
reg [7:0] packet_header [0:15];
4141

4242
integer swapped = 0;
43+
integer toNanos = 0;
4344
integer file = 0;
4445
integer r = 0;
4546
integer eof = 0;
@@ -70,14 +71,24 @@ module pcapparser_10gbmac
7071
r = $fread(global_header,file);
7172

7273
// check magic signature to determine byte ordering
73-
if (global_header[0] == 8'hD4 && global_header[1] == 8'hC3) begin
74-
$display(" pcap endian: swapped");
74+
if (global_header[0] == 8'hD4 && global_header[1] == 8'hC3 && global_header[2] == 8'hB2) begin
75+
$display(" pcap endian: swapped, ms");
7576
swapped = 1;
76-
end else if (global_header[0] == 8'hA1 && global_header[1] == 8'hB2) begin
77-
$display(" pcap endian: native");
77+
toNanos = 32'd1000000;
78+
end else if (global_header[0] == 8'hA1 && global_header[1] == 8'hB2 && global_header[2] == 8'hC3) begin
79+
$display(" pcap endian: native, ms");
7880
swapped = 0;
81+
toNanos = 32'd1000000;
82+
end else if (global_header[0] == 8'h4D && global_header[1] == 8'h3C && global_header[2] == 8'hb2) begin
83+
$display(" pcap endian: swapped, nanos");
84+
swapped = 1;
85+
toNanos = 32'd1;
86+
end else if (global_header[0] == 8'hA1 && global_header[1] == 8'hB2 && global_header[2] == 8'h3c) begin
87+
$display(" pcap endian: native, nanos");
88+
swapped = 0;
89+
toNanos = 32'd1;
7990
end else begin
80-
$display(" pcap endian: unrecognised format");
91+
$display(" pcap endian: unrecognised format %02x%02x%02x%02x", global_header[0], global_header[1], global_header[2], global_header[3] );
8192
$finish_and_return(1);
8293
end
8394
end

‎pcap/pcapparser_1gb.v

+16-5
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ module PcapParser
3838
reg [7:0] packet_header [0:15];
3939

4040
integer swapped = 0;
41+
integer toNanos = 0;
4142
integer file = 0;
4243
integer r = 0;
4344
integer eof = 0;
@@ -65,14 +66,24 @@ module PcapParser
6566
r = $fread(global_header,file);
6667

6768
// check magic signature to determine byte ordering
68-
if (global_header[0] == 8'hD4 && global_header[1] == 8'hC3) begin
69-
$display(" pcap endian: swapped");
69+
if (global_header[0] == 8'hD4 && global_header[1] == 8'hC3 && global_header[2] == 8'hB2) begin
70+
$display(" pcap endian: swapped, ms");
7071
swapped = 1;
71-
end else if (global_header[0] == 8'hA1 && global_header[1] == 8'hB2) begin
72-
$display(" pcap endian: native");
72+
toNanos = 32'd1000000;
73+
end else if (global_header[0] == 8'hA1 && global_header[1] == 8'hB2 && global_header[2] == 8'hC3) begin
74+
$display(" pcap endian: native, ms");
7375
swapped = 0;
76+
toNanos = 32'd1000000;
77+
end else if (global_header[0] == 8'h4D && global_header[1] == 8'h3C && global_header[2] == 8'hb2) begin
78+
$display(" pcap endian: swapped, nanos");
79+
swapped = 1;
80+
toNanos = 32'd1;
81+
end else if (global_header[0] == 8'hA1 && global_header[1] == 8'hB2 && global_header[2] == 8'h3c) begin
82+
$display(" pcap endian: native, nanos");
83+
swapped = 0;
84+
toNanos = 32'd1;
7485
end else begin
75-
$display(" pcap endian: unrecognised format");
86+
$display(" pcap endian: unrecognised format %02x%02x%02x%02x", global_header[0], global_header[1], global_header[2], global_header[3] );
7687
$finish_and_return(1);
7788
end
7889
end

0 commit comments

Comments
 (0)
Please sign in to comment.