forked from osmocom/wireshark
[#17517] capinfos: machine-readable filetype/encap
parent
dee79a0c81
commit
5076aee044
14
capinfos.c
14
capinfos.c
|
@ -629,8 +629,14 @@ print_stats(const gchar *filename, capture_info *cf_info)
|
|||
gchar *size_string;
|
||||
|
||||
/* Build printable strings for various stats */
|
||||
file_type_string = wtap_file_type_subtype_description(cf_info->file_type);
|
||||
file_encap_string = wtap_encap_description(cf_info->file_encap);
|
||||
if (machine_readable) {
|
||||
file_type_string = wtap_file_type_subtype_name(cf_info->file_type);
|
||||
file_encap_string = wtap_encap_name(cf_info->file_encap);
|
||||
}
|
||||
else {
|
||||
file_type_string = wtap_file_type_subtype_description(cf_info->file_type);
|
||||
file_encap_string = wtap_encap_description(cf_info->file_encap);
|
||||
}
|
||||
|
||||
if (filename) printf ("File name: %s\n", filename);
|
||||
if (cap_file_type) {
|
||||
|
@ -878,8 +884,8 @@ print_stats_table(const gchar *filename, capture_info *cf_info)
|
|||
const gchar *file_type_string, *file_encap_string;
|
||||
|
||||
/* Build printable strings for various stats */
|
||||
file_type_string = wtap_file_type_subtype_description(cf_info->file_type);
|
||||
file_encap_string = wtap_encap_description(cf_info->file_encap);
|
||||
file_type_string = wtap_file_type_subtype_name(cf_info->file_type);
|
||||
file_encap_string = wtap_encap_name(cf_info->file_encap);
|
||||
|
||||
if (filename) {
|
||||
putquote();
|
||||
|
|
|
@ -221,9 +221,10 @@ from one another with a single comma "," character.
|
|||
|
||||
=item -M
|
||||
|
||||
Print raw (machine readable) numeric values in long reports.
|
||||
By default capinfos prints human-readable values with SI
|
||||
suffixes. Table reports (-T) always print raw values.
|
||||
Print raw (machine readable) values in long reports.
|
||||
By default capinfos prints numeric values with human-readable SI
|
||||
suffixes, and shows human-readable file type and encapsulation.
|
||||
Table reports (-T) always print raw values.
|
||||
|
||||
=item -n
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ file_type_to_testout = {
|
|||
'pcapng': testout_pcapng,
|
||||
}
|
||||
|
||||
encap_to_link_type = {
|
||||
encap_to_link_type_long = {
|
||||
'Ethernet': 1,
|
||||
'Raw IP': 14,
|
||||
'Linux cooked-mode capture v1': 113,
|
||||
|
@ -36,6 +36,14 @@ encap_to_link_type = {
|
|||
'DVB-CI (Common Interface)': 235,
|
||||
}
|
||||
|
||||
encap_to_link_type = {
|
||||
'ether': 1,
|
||||
'rawip': 14,
|
||||
'linux-sll': 113,
|
||||
'ieee-802-11-radiotap': 127,
|
||||
'dvbci': 235,
|
||||
}
|
||||
|
||||
def check_capinfos_info(self, cap_file):
|
||||
cap_info = {
|
||||
'filetype': None,
|
||||
|
@ -244,7 +252,7 @@ class case_text2pcap_pcapng(subprocesstest.SubprocessTestCase):
|
|||
def check_rawip(run_text2pcap_capinfos_tshark, request):
|
||||
def check_rawip_real(pdata, packets, datasize):
|
||||
self = request.instance
|
||||
self.assertEqual({'encapsulation': 'Raw IPv4', 'packets': packets,
|
||||
self.assertEqual({'encapsulation': 'rawip4', 'packets': packets,
|
||||
'datasize': datasize, 'expert': ''},
|
||||
run_text2pcap_capinfos_tshark(pdata, ("-l228",)))
|
||||
return check_rawip_real
|
||||
|
@ -266,7 +274,7 @@ class case_text2pcap_parsing(subprocesstest.SubprocessTestCase):
|
|||
))
|
||||
self.assertFalse(self.grepOutput('Inconsistent offset'), 'text2pcap failed to parse the hash sign at the end of the line')
|
||||
self.assertTrue(self.grepOutput(r'Directive \[ test_directive'), 'text2pcap failed to parse #TEXT2PCAP test_directive')
|
||||
pre_cmp_info = {'encapsulation': 'Ethernet', 'packets': 1, 'datasize': 96, 'timeend': '2015-10-01 21:16:24.317453000'}
|
||||
pre_cmp_info = {'encapsulation': 'ether', 'packets': 1, 'datasize': 96, 'timeend': '2015-10-01 21:16:24.317453000'}
|
||||
post_cmp_info = check_capinfos_info(self, testout_file)
|
||||
compare_capinfos_info(self, pre_cmp_info, post_cmp_info, txt_fname, testout_pcap)
|
||||
|
||||
|
@ -359,21 +367,21 @@ class case_text2pcap_headers(subprocesstest.SubprocessTestCase):
|
|||
|
||||
def test_text2pcap_tcp(self, run_text2pcap_capinfos_tshark):
|
||||
'''Test TCP over IPv4'''
|
||||
self.assertEqual({'encapsulation': 'Ethernet', 'packets': 1,
|
||||
self.assertEqual({'encapsulation': 'ether', 'packets': 1,
|
||||
'datasize': 60, 'expert': ''},
|
||||
run_text2pcap_capinfos_tshark(
|
||||
"0000: ff ff ff ff\n", ("-T", "1234,1234")))
|
||||
|
||||
def test_text2pcap_udp(self, run_text2pcap_capinfos_tshark):
|
||||
'''Test UDP over IPv4'''
|
||||
self.assertEqual({'encapsulation': 'Ethernet', 'packets': 1,
|
||||
self.assertEqual({'encapsulation': 'ether', 'packets': 1,
|
||||
'datasize': 60, 'expert': ''},
|
||||
run_text2pcap_capinfos_tshark(
|
||||
"0000: ff ff ff ff\n", ("-u", "1234,1234")))
|
||||
|
||||
def test_text2pcap_sctp(self, run_text2pcap_capinfos_tshark):
|
||||
'''Test SCTP over IPv4'''
|
||||
self.assertEqual({'encapsulation': 'Ethernet', 'packets': 1,
|
||||
self.assertEqual({'encapsulation': 'ether', 'packets': 1,
|
||||
'datasize': 70, 'expert': ''},
|
||||
run_text2pcap_capinfos_tshark(
|
||||
"0000 00 03 00 18 00 00 00 00 00 00 00 00 00 00 00 03\n" +
|
||||
|
@ -382,7 +390,7 @@ class case_text2pcap_headers(subprocesstest.SubprocessTestCase):
|
|||
|
||||
def test_text2pcap_sctp_data(self, run_text2pcap_capinfos_tshark):
|
||||
'''Test SCTP DATA over IPv4'''
|
||||
self.assertEqual({'encapsulation': 'Ethernet', 'packets': 1,
|
||||
self.assertEqual({'encapsulation': 'ether', 'packets': 1,
|
||||
'datasize': 70, 'expert': ''},
|
||||
run_text2pcap_capinfos_tshark(
|
||||
"0000: 01 00 03 03 00 00 00 08\n",
|
||||
|
@ -405,19 +413,19 @@ class case_text2pcap_ipv4(subprocesstest.SubprocessTestCase):
|
|||
|
||||
def test_text2pcap_ipv4_tcp(self, run_text2pcap_ipv4):
|
||||
'''Test TCP over IPv4'''
|
||||
self.assertEqual({'encapsulation': 'Ethernet', 'packets': 1,
|
||||
self.assertEqual({'encapsulation': 'ether', 'packets': 1,
|
||||
'datasize': 60, 'expert': ''},
|
||||
run_text2pcap_ipv4("0000: ff ff ff ff\n", ("-T", "1234,1234")))
|
||||
|
||||
def test_text2pcap_ipv4_udp(self, run_text2pcap_ipv4):
|
||||
'''Test UDP over IPv4'''
|
||||
self.assertEqual({'encapsulation': 'Ethernet', 'packets': 1,
|
||||
self.assertEqual({'encapsulation': 'ether', 'packets': 1,
|
||||
'datasize': 60, 'expert': ''},
|
||||
run_text2pcap_ipv4("0000: ff ff ff ff\n", ("-u", "1234,1234")))
|
||||
|
||||
def test_text2pcap_ipv4_sctp(self, run_text2pcap_ipv4):
|
||||
'''Test SCTP over IPv4'''
|
||||
self.assertEqual({'encapsulation': 'Ethernet', 'packets': 1,
|
||||
self.assertEqual({'encapsulation': 'ether', 'packets': 1,
|
||||
'datasize': 70, 'expert': ''},
|
||||
run_text2pcap_ipv4(
|
||||
"0000 00 03 00 18 00 00 00 00 00 00 00 00 00 00 00 03\n" +
|
||||
|
@ -426,7 +434,7 @@ class case_text2pcap_ipv4(subprocesstest.SubprocessTestCase):
|
|||
|
||||
def test_text2pcap_ipv4_sctp_data(self, run_text2pcap_ipv4):
|
||||
'''Test SCTP DATA over IPv4'''
|
||||
self.assertEqual({'encapsulation': 'Ethernet', 'packets': 1,
|
||||
self.assertEqual({'encapsulation': 'ether', 'packets': 1,
|
||||
'datasize': 70, 'expert': ''},
|
||||
run_text2pcap_ipv4("0000: 01 00 03 03 00 00 00 08\n",
|
||||
("-S", "2905,2905,3")))
|
||||
|
@ -462,21 +470,21 @@ class case_text2pcap_ipv6(subprocesstest.SubprocessTestCase):
|
|||
|
||||
def test_text2pcap_ipv6_tcp(self, run_text2pcap_ipv6):
|
||||
'''Test TCP over IPv6'''
|
||||
self.assertEqual({'encapsulation': 'Ethernet', 'packets': 1,
|
||||
self.assertEqual({'encapsulation': 'ether', 'packets': 1,
|
||||
'datasize': 78, 'expert': '',
|
||||
'ipv6': {'plen': '24', 'plen_tree': None}},
|
||||
run_text2pcap_ipv6("0000: ff ff ff ff\n", ("-T", "1234,1234")))
|
||||
|
||||
def test_text2pcap_ipv6_udp(self, run_text2pcap_ipv6):
|
||||
'''Test UDP over IPv6'''
|
||||
self.assertEqual({'encapsulation': 'Ethernet', 'packets': 1,
|
||||
self.assertEqual({'encapsulation': 'ether', 'packets': 1,
|
||||
'datasize': 66, 'expert': '',
|
||||
'ipv6': {'plen': '12', 'plen_tree': None}},
|
||||
run_text2pcap_ipv6("0000: ff ff ff ff\n", ("-u", "1234,1234")))
|
||||
|
||||
def test_text2pcap_ipv6_sctp(self, run_text2pcap_ipv6):
|
||||
'''Test SCTP over IPv6'''
|
||||
self.assertEqual({'encapsulation': 'Ethernet', 'packets': 1,
|
||||
self.assertEqual({'encapsulation': 'ether', 'packets': 1,
|
||||
'datasize': 90, 'expert': '',
|
||||
'ipv6': {'plen': '36', 'plen_tree': None}},
|
||||
run_text2pcap_ipv6(
|
||||
|
@ -486,7 +494,7 @@ class case_text2pcap_ipv6(subprocesstest.SubprocessTestCase):
|
|||
|
||||
def test_text2pcap_ipv6_sctp_data(self, run_text2pcap_ipv6):
|
||||
'''Test SCTP DATA over IPv6'''
|
||||
self.assertEqual({'encapsulation': 'Ethernet', 'packets': 1,
|
||||
self.assertEqual({'encapsulation': 'ether', 'packets': 1,
|
||||
'datasize': 90, 'expert': '',
|
||||
'ipv6': {'plen': '36', 'plen_tree': None}},
|
||||
run_text2pcap_ipv6("0000: 01 00 03 03 00 00 00 08\n",
|
||||
|
@ -501,7 +509,7 @@ class case_text2pcap_i_proto(subprocesstest.SubprocessTestCase):
|
|||
|
||||
def test_text2pcap_i_icmp(self, run_text2pcap_capinfos_tshark):
|
||||
'''Test -i <proto> without -4 or -6'''
|
||||
self.assertEqual({'encapsulation': 'Ethernet', 'packets': 1,
|
||||
self.assertEqual({'encapsulation': 'ether', 'packets': 1,
|
||||
'datasize': 98, 'expert': ''},
|
||||
run_text2pcap_capinfos_tshark(
|
||||
"0000 08 00 bb b3 d7 3b 00 00 51 a7 d6 7d 00 04 51 e4\n" +
|
||||
|
@ -512,7 +520,7 @@ class case_text2pcap_i_proto(subprocesstest.SubprocessTestCase):
|
|||
|
||||
def test_text2pcap_i_icmp_ipv4(self, run_text2pcap_capinfos_tshark):
|
||||
'''Test -i <proto> with IPv4 (-4) header'''
|
||||
self.assertEqual({'encapsulation': 'Ethernet', 'packets': 1,
|
||||
self.assertEqual({'encapsulation': 'ether', 'packets': 1,
|
||||
'datasize': 98, 'expert': ''},
|
||||
run_text2pcap_capinfos_tshark(
|
||||
"0000 08 00 bb b3 d7 3b 00 00 51 a7 d6 7d 00 04 51 e4\n" +
|
||||
|
@ -523,7 +531,7 @@ class case_text2pcap_i_proto(subprocesstest.SubprocessTestCase):
|
|||
|
||||
def test_text2pcap_i_icmpv6_ipv6(self, run_text2pcap_capinfos_tshark):
|
||||
'''Test -i <proto> with IPv6 (-6) header'''
|
||||
self.assertEqual({'encapsulation': 'Ethernet', 'packets': 1,
|
||||
self.assertEqual({'encapsulation': 'ether', 'packets': 1,
|
||||
'datasize': 86, 'expert': ''},
|
||||
run_text2pcap_capinfos_tshark(
|
||||
"0000 87 00 f2 62 00 00 00 00 fe 80 00 00 00 00 00 00\n" +
|
||||
|
@ -532,7 +540,7 @@ class case_text2pcap_i_proto(subprocesstest.SubprocessTestCase):
|
|||
|
||||
def test_text2pcap_i_sctp_ipv6(self, run_text2pcap_capinfos_tshark):
|
||||
'''Test -i <proto> with IPv6 (-6) header'''
|
||||
self.assertEqual({'encapsulation': 'Ethernet', 'packets': 1,
|
||||
self.assertEqual({'encapsulation': 'ether', 'packets': 1,
|
||||
'datasize': 90, 'expert': ''},
|
||||
run_text2pcap_capinfos_tshark(
|
||||
"0000 0b 59 0b 59 00 00 00 00 26 98 58 51 00 03 00 18\n" +
|
||||
|
|
Loading…
Reference in New Issue