taxonomy: iPhone 7+, Nest, and Dish signatures

Also make pcaptest give the name of the file which is missing,
to make it easier to figure out what is wrong.

Change-Id: I87eb73bd90e877799ab2a67e4c00cf91b5dff6b4
diff --git a/taxonomy/ethernet.py b/taxonomy/ethernet.py
index f73cb9e..f80b3cf 100644
--- a/taxonomy/ethernet.py
+++ b/taxonomy/ethernet.py
@@ -53,6 +53,7 @@
 
     '58:67:1a': ['barnes&noble'],
 
+    '04:c9:d9': ['dish'],
     '2c:b0:5d': ['dish'],
 
     '30:8c:fb': ['dropcam'],
diff --git a/taxonomy/pcaptest.py b/taxonomy/pcaptest.py
index fc5806e..b6e4766 100644
--- a/taxonomy/pcaptest.py
+++ b/taxonomy/pcaptest.py
@@ -104,10 +104,39 @@
   ('iPhone 7/7+', './testdata/pcaps/iPhone 7 2.4GHz OnHub iOS10.2 MN8H2LL Specific Probe.pcap'),
   ('iPhone 7/7+', './testdata/pcaps/iPhone 7 2.4GHz OnHub iOS10.2 MN8H2LL Broadcast Probe.pcap'),
   ('iPhone 7/7+', './testdata/pcaps/iPhone 7 2.4GHz Google Wifi iOS10.2 MN8H2LL Specific Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 5GHz OnHub iOS10.1.1 MNQJ2LL Broadcast Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 2.4GHz OnHub iOS10.1.1 MNQJ2LL Specific Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 2.4GHz GFRG210 iOS10.1.1 MNQJ2LL Specific Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 5GHz GFRG210 iOS10.1.1 MNQJ2LL Specific Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 5GHz OnHub iOS10.1.1 MNQJ2LL Specific Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 5GHz GFRG210 iOS10.2 MNQJ2LL Specific Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7 5GHz GFRG210 iOS10.2 MN8H2LL Specific Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 2.4GHz Google Wifi iOS10.2 MNQJ2LL Specific Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7 5GHz GFRG210 iOS10.2 MN8H2LL Broadcast Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 5GHz Google Wifi iOS10.2 MNQJ2LL Specific Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 5GHz Google Wifi iOS10.1.1 MNQJ2LL Broadcast Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7 5GHz Google Wifi iOS10.2 MN8H2LL Specific Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7 5GHz.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 2.4GHz OnHub iOS10.2 MNQJ2LL Specific Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 2.4GHz Google Wifi iOS10.2 MNQJ2LL Broadcast Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 2.4GHz Google Wifi iOS10.1.1 MNQJ2LL Specific Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 5GHz.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7 5GHz Google Wifi iOS10.2 MN8H2LL Broadcast Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 2.4GHz OnHub iOS10.2 MNQJ2LL Broadcast Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7 5GHz OnHub iOS10.2 MN8H2LL Specific Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7 5GHz OnHub iOS10.2 MN8H2LL Broadcast Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 5GHz GFRG210 iOS10.2 MNQJ2LL Broadcast Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 2.4GHz Google Wifi iOS10.1.1 MNQJ2LL Broadcast Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 5GHz Google Wifi iOS10.1.1 MNQJ2LL Specific Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 5GHz OnHub iOS10.2 MNQJ2LL Specific Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 5GHz OnHub iOS10.2 MNQJ2LL Broadcast Probe.pcap'),
+  ('iPhone 7/7+', './testdata/pcaps/iPhone 7+ 5GHz Google Wifi iOS10.2 MNQJ2LL Broadcast Probe.pcap'),
   ('iPod Touch 1st or 2nd gen', './testdata/pcaps/iPod Touch 1st gen 2.4GHz.pcap'),
   ('Moto G or Moto X', './testdata/pcaps/Moto X 2.4GHz Specific.pcap'),
   ('Moto G or Moto X', './testdata/pcaps/Moto X 2.4GHz.pcap'),
-  ('Nest Thermostat v1 or v2', './testdata/pcaps/Nest Thermostat 2.4GHz.pcap'),
+  ('Nest Thermostat v1 or v2', './testdata/pcaps/Nest Thermostat v1 2.4GHz OnHub sw 5.6-7 hw Diamond 1.10 Broadcast Probe.pcap'),
+  ('Nest Thermostat v1 or v2', './testdata/pcaps/Nest Thermostat v1 2.4GHz GFRG210 sw 5.6-7 hw Diamond 1.10 Broadcast Probe.pcap'),
+  ('Nest Thermostat v1 or v2', './testdata/pcaps/Nest Thermostat v1 2.4GHz Google Wifi sw 5.6-7 hw Diamond 1.10 Broadcast Probe.pcap'),
   ('Roku 2 or 3 or Streaming Stick', './testdata/pcaps/Roku 3 2.4GHz 4230.pcap'),
   ('Roku 2 or 3 or Streaming Stick', './testdata/pcaps/Roku 3 5GHz 4230.pcap'),
   ('Roku 4 or TV', './testdata/pcaps/Roku 4 2.4GHz.pcap'),
@@ -168,7 +197,10 @@
   rc = 0
 
   for (expected_model, pcap) in regression:
-    pcaps.remove(pcap)
+    try:
+      pcaps.remove(pcap)
+    except ValueError as e:
+      raise ValueError('%s : %s' % (str(e), pcap))
     if check_pcap(expected_model, pcap):
       rc = 1
 
diff --git a/taxonomy/testdata/dhcp.leases b/taxonomy/testdata/dhcp.leases
index 4d6c71c..af1f5e4 100644
--- a/taxonomy/testdata/dhcp.leases
+++ b/taxonomy/testdata/dhcp.leases
@@ -81,3 +81,4 @@
 1432237016 54:26:96:00:00:00 192.168.42.68 iPhoone-5 *
 1432237016 20:3c:ae:00:00:00 192.168.42.69 iPhoone-7 *
 1432237016 d0:23:db:00:00:00 192.168.42.70 iPhoone-4s *
+1432237016 7c:04:d0:00:00:00 192.168.42.71 iPhoone-7+ *
diff --git a/taxonomy/testdata/dhcp.signatures b/taxonomy/testdata/dhcp.signatures
index cd01395..b172fa7 100644
--- a/taxonomy/testdata/dhcp.signatures
+++ b/taxonomy/testdata/dhcp.signatures
@@ -73,3 +73,4 @@
 54:26:96:00:00:00 1,121,3,6,15,119,252
 20:3c:ae:00:00:00 1,121,3,6,15,119,252
 d0:23:db:00:00:00 1,3,6,15,119,252
+7c:04:d0:00:00:00 1,121,3,6,15,119,252
diff --git a/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 2.4GHz GFRG210 sw U334 hw Hopper3 Broadcast Probe.pcap b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 2.4GHz GFRG210 sw U334 hw Hopper3 Broadcast Probe.pcap
new file mode 100644
index 0000000..14483a1
--- /dev/null
+++ b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 2.4GHz GFRG210 sw U334 hw Hopper3 Broadcast Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 2.4GHz GFRG210 sw U334 hw Hopper3 Specific Probe.pcap b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 2.4GHz GFRG210 sw U334 hw Hopper3 Specific Probe.pcap
new file mode 100644
index 0000000..16e5236
--- /dev/null
+++ b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 2.4GHz GFRG210 sw U334 hw Hopper3 Specific Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 2.4GHz Google Wifi sw U334 hw Hopper3 Broadcast Probe.pcap b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 2.4GHz Google Wifi sw U334 hw Hopper3 Broadcast Probe.pcap
new file mode 100644
index 0000000..119483e
--- /dev/null
+++ b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 2.4GHz Google Wifi sw U334 hw Hopper3 Broadcast Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 2.4GHz Google Wifi sw U334 hw Hopper3 Specific Probe.pcap b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 2.4GHz Google Wifi sw U334 hw Hopper3 Specific Probe.pcap
new file mode 100644
index 0000000..99784cb
--- /dev/null
+++ b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 2.4GHz Google Wifi sw U334 hw Hopper3 Specific Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 5GHz GFRG210 sw U334 hw Hopper3 Broadcast Probe.pcap b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 5GHz GFRG210 sw U334 hw Hopper3 Broadcast Probe.pcap
new file mode 100644
index 0000000..0adacf1
--- /dev/null
+++ b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 5GHz GFRG210 sw U334 hw Hopper3 Broadcast Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 5GHz GFRG210 sw U334 hw Hopper3 Specific Probe.pcap b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 5GHz GFRG210 sw U334 hw Hopper3 Specific Probe.pcap
new file mode 100644
index 0000000..d8ae927
--- /dev/null
+++ b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 5GHz GFRG210 sw U334 hw Hopper3 Specific Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 5GHz Google Wifi sw U334 hw Hopper3 Broadcast Probe.pcap b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 5GHz Google Wifi sw U334 hw Hopper3 Broadcast Probe.pcap
new file mode 100644
index 0000000..b1898c1
--- /dev/null
+++ b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 5GHz Google Wifi sw U334 hw Hopper3 Broadcast Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 5GHz Google Wifi sw U334 hw Hopper3 Specific Probe.pcap b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 5GHz Google Wifi sw U334 hw Hopper3 Specific Probe.pcap
new file mode 100644
index 0000000..9ba4923
--- /dev/null
+++ b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 5GHz Google Wifi sw U334 hw Hopper3 Specific Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 5GHz OnHub sw U334 hw Hopper3 Broadcast Probe.pcap b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 5GHz OnHub sw U334 hw Hopper3 Broadcast Probe.pcap
new file mode 100644
index 0000000..e9cf0d6
--- /dev/null
+++ b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 5GHz OnHub sw U334 hw Hopper3 Broadcast Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 5GHz OnHub sw U334 hw Hopper3 Specific Probe.pcap b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 5GHz OnHub sw U334 hw Hopper3 Specific Probe.pcap
new file mode 100644
index 0000000..15e7c1f
--- /dev/null
+++ b/taxonomy/testdata/pcaps/Dish Network Receiver Hopper 3 5GHz OnHub sw U334 hw Hopper3 Specific Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/Nest Thermostat 2.4GHz.pcap b/taxonomy/testdata/pcaps/Nest Thermostat 2.4GHz.pcap
deleted file mode 100644
index d771711..0000000
--- a/taxonomy/testdata/pcaps/Nest Thermostat 2.4GHz.pcap
+++ /dev/null
Binary files differ
diff --git a/taxonomy/testdata/pcaps/Nest Thermostat v1 2.4GHz GFRG210 sw 5.6-7 hw Diamond 1.10 Broadcast Probe.pcap b/taxonomy/testdata/pcaps/Nest Thermostat v1 2.4GHz GFRG210 sw 5.6-7 hw Diamond 1.10 Broadcast Probe.pcap
new file mode 100644
index 0000000..a261a2d
--- /dev/null
+++ b/taxonomy/testdata/pcaps/Nest Thermostat v1 2.4GHz GFRG210 sw 5.6-7 hw Diamond 1.10 Broadcast Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/Nest Thermostat v1 2.4GHz Google Wifi sw 5.6-7 hw Diamond 1.10 Broadcast Probe.pcap b/taxonomy/testdata/pcaps/Nest Thermostat v1 2.4GHz Google Wifi sw 5.6-7 hw Diamond 1.10 Broadcast Probe.pcap
new file mode 100644
index 0000000..4ec3660
--- /dev/null
+++ b/taxonomy/testdata/pcaps/Nest Thermostat v1 2.4GHz Google Wifi sw 5.6-7 hw Diamond 1.10 Broadcast Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/Nest Thermostat v1 2.4GHz OnHub sw 5.6-7 hw Diamond 1.10 Broadcast Probe.pcap b/taxonomy/testdata/pcaps/Nest Thermostat v1 2.4GHz OnHub sw 5.6-7 hw Diamond 1.10 Broadcast Probe.pcap
new file mode 100644
index 0000000..c3d5479
--- /dev/null
+++ b/taxonomy/testdata/pcaps/Nest Thermostat v1 2.4GHz OnHub sw 5.6-7 hw Diamond 1.10 Broadcast Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz GFRG210 iOS10.1.1 MNQJ2LL Specific Probe.pcap b/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz GFRG210 iOS10.1.1 MNQJ2LL Specific Probe.pcap
new file mode 100644
index 0000000..9f6b423
--- /dev/null
+++ b/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz GFRG210 iOS10.1.1 MNQJ2LL Specific Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz Google Wifi iOS10.1.1 MNQJ2LL Broadcast Probe.pcap b/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz Google Wifi iOS10.1.1 MNQJ2LL Broadcast Probe.pcap
new file mode 100644
index 0000000..282cc83
--- /dev/null
+++ b/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz Google Wifi iOS10.1.1 MNQJ2LL Broadcast Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz Google Wifi iOS10.1.1 MNQJ2LL Specific Probe.pcap b/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz Google Wifi iOS10.1.1 MNQJ2LL Specific Probe.pcap
new file mode 100644
index 0000000..a953047
--- /dev/null
+++ b/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz Google Wifi iOS10.1.1 MNQJ2LL Specific Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz Google Wifi iOS10.2 MNQJ2LL Broadcast Probe.pcap b/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz Google Wifi iOS10.2 MNQJ2LL Broadcast Probe.pcap
new file mode 100644
index 0000000..79ce3f3
--- /dev/null
+++ b/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz Google Wifi iOS10.2 MNQJ2LL Broadcast Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz Google Wifi iOS10.2 MNQJ2LL Specific Probe.pcap b/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz Google Wifi iOS10.2 MNQJ2LL Specific Probe.pcap
new file mode 100644
index 0000000..e462779
--- /dev/null
+++ b/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz Google Wifi iOS10.2 MNQJ2LL Specific Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz OnHub iOS10.1.1 MNQJ2LL Specific Probe.pcap b/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz OnHub iOS10.1.1 MNQJ2LL Specific Probe.pcap
new file mode 100644
index 0000000..b5a086e
--- /dev/null
+++ b/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz OnHub iOS10.1.1 MNQJ2LL Specific Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz OnHub iOS10.2 MNQJ2LL Broadcast Probe.pcap b/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz OnHub iOS10.2 MNQJ2LL Broadcast Probe.pcap
new file mode 100644
index 0000000..100c71c
--- /dev/null
+++ b/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz OnHub iOS10.2 MNQJ2LL Broadcast Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz OnHub iOS10.2 MNQJ2LL Specific Probe.pcap b/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz OnHub iOS10.2 MNQJ2LL Specific Probe.pcap
new file mode 100644
index 0000000..d84ad82
--- /dev/null
+++ b/taxonomy/testdata/pcaps/iPhone 7+ 2.4GHz OnHub iOS10.2 MNQJ2LL Specific Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/iPhone 7+ 5GHz GFRG210 iOS10.1.1 MNQJ2LL Specific Probe.pcap b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz GFRG210 iOS10.1.1 MNQJ2LL Specific Probe.pcap
new file mode 100644
index 0000000..56a4b6d
--- /dev/null
+++ b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz GFRG210 iOS10.1.1 MNQJ2LL Specific Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/iPhone 7+ 5GHz GFRG210 iOS10.2 MNQJ2LL Broadcast Probe.pcap b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz GFRG210 iOS10.2 MNQJ2LL Broadcast Probe.pcap
new file mode 100644
index 0000000..009be64
--- /dev/null
+++ b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz GFRG210 iOS10.2 MNQJ2LL Broadcast Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/iPhone 7+ 5GHz GFRG210 iOS10.2 MNQJ2LL Specific Probe.pcap b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz GFRG210 iOS10.2 MNQJ2LL Specific Probe.pcap
new file mode 100644
index 0000000..f10b01d
--- /dev/null
+++ b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz GFRG210 iOS10.2 MNQJ2LL Specific Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/iPhone 7+ 5GHz Google Wifi iOS10.1.1 MNQJ2LL Broadcast Probe.pcap b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz Google Wifi iOS10.1.1 MNQJ2LL Broadcast Probe.pcap
new file mode 100644
index 0000000..84cc66c
--- /dev/null
+++ b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz Google Wifi iOS10.1.1 MNQJ2LL Broadcast Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/iPhone 7+ 5GHz Google Wifi iOS10.1.1 MNQJ2LL Specific Probe.pcap b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz Google Wifi iOS10.1.1 MNQJ2LL Specific Probe.pcap
new file mode 100644
index 0000000..936362b
--- /dev/null
+++ b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz Google Wifi iOS10.1.1 MNQJ2LL Specific Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/iPhone 7+ 5GHz Google Wifi iOS10.2 MNQJ2LL Broadcast Probe.pcap b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz Google Wifi iOS10.2 MNQJ2LL Broadcast Probe.pcap
new file mode 100644
index 0000000..13ec753
--- /dev/null
+++ b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz Google Wifi iOS10.2 MNQJ2LL Broadcast Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/iPhone 7+ 5GHz Google Wifi iOS10.2 MNQJ2LL Specific Probe.pcap b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz Google Wifi iOS10.2 MNQJ2LL Specific Probe.pcap
new file mode 100644
index 0000000..bbefd5c
--- /dev/null
+++ b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz Google Wifi iOS10.2 MNQJ2LL Specific Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/iPhone 7+ 5GHz OnHub iOS10.1.1 MNQJ2LL Broadcast Probe.pcap b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz OnHub iOS10.1.1 MNQJ2LL Broadcast Probe.pcap
new file mode 100644
index 0000000..6c09269
--- /dev/null
+++ b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz OnHub iOS10.1.1 MNQJ2LL Broadcast Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/iPhone 7+ 5GHz OnHub iOS10.1.1 MNQJ2LL Specific Probe.pcap b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz OnHub iOS10.1.1 MNQJ2LL Specific Probe.pcap
new file mode 100644
index 0000000..34751a8
--- /dev/null
+++ b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz OnHub iOS10.1.1 MNQJ2LL Specific Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/iPhone 7+ 5GHz OnHub iOS10.2 MNQJ2LL Broadcast Probe.pcap b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz OnHub iOS10.2 MNQJ2LL Broadcast Probe.pcap
new file mode 100644
index 0000000..ed0196a
--- /dev/null
+++ b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz OnHub iOS10.2 MNQJ2LL Broadcast Probe.pcap
Binary files differ
diff --git a/taxonomy/testdata/pcaps/iPhone 7+ 5GHz OnHub iOS10.2 MNQJ2LL Specific Probe.pcap b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz OnHub iOS10.2 MNQJ2LL Specific Probe.pcap
new file mode 100644
index 0000000..ec9d07f
--- /dev/null
+++ b/taxonomy/testdata/pcaps/iPhone 7+ 5GHz OnHub iOS10.2 MNQJ2LL Specific Probe.pcap
Binary files differ
diff --git a/taxonomy/wifi.py b/taxonomy/wifi.py
index 1d7e200..4173e55 100644
--- a/taxonomy/wifi.py
+++ b/taxonomy/wifi.py
@@ -199,6 +199,11 @@
     'wifi4|probe:0,1,50,45,221(001018,2),221(00904c,51),htcap:186c,htagg:1a,htmcs:0000ffff|assoc:0,1,33,36,48,50,45,221(001018,2),221(00904c,51),221(0050f2,2),htcap:186c,htagg:1a,htmcs:0000ffff,txpow:1408|oui:dish':
         ('Dish Network Receiver', '', '2.4GHz'),
 
+    'wifi4|probe:0,1,45,221(001018,2),htcap:087e,htagg:17,htmcs:0000ffff|assoc:0,1,33,36,48,45,221(001018,2),221(0050f2,2),htcap:087e,htagg:17,htmcs:0000ffff,txpow:000a|oui:dish':
+        ('Dish Network Receiver', 'Hopper 3', '5GHz'),
+    'wifi4|probe:0,1,50,3,45,221(001018,2),htcap:083c,htagg:17,htmcs:0000ffff|assoc:0,1,50,33,36,48,45,221(001018,2),221(0050f2,2),htcap:083c,htagg:17,htmcs:0000ffff,txpow:120a|oui:dish':
+        ('Dish Network Receiver', 'Hopper 3', '2.4GHz'),
+
     'wifi4|probe:0,1,45,htcap:106e,htagg:01,htmcs:000000ff|assoc:0,1,45,33,36,48,221(0050f2,2),htcap:106e,htagg:01,htmcs:000000ff,txpow:0e00|oui:dropcam':
         ('Dropcam', '', '5GHz'),
     'wifi4|probe:0,1,50,45,htcap:002c,htagg:01,htmcs:000000ff|assoc:0,1,50,45,48,221(0050f2,2),htcap:002c,htagg:01,htmcs:000000ff|oui:dropcam':
@@ -650,21 +655,33 @@
         ('iPhone 6s/6s+', '', '2.4GHz'),
 
     'wifi4|probe:0,1,45,127,107,191,221(0017f2,10),221(0050f2,8),221(001018,2),htcap:006f,htagg:17,htmcs:000000ff,vhtcap:0f807032,vhtrxmcs:0000fffe,vhttxmcs:0000fffe,extcap:00000884|assoc:0,1,33,36,48,70,54,45,127,191,199,221(0017f2,10),221(001018,2),221(0050f2,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f811032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,txpow:13f9,extcap:000008|os:ios':
-        ('iPhone 7', '', '5GHz'),
+        ('iPhone 7/7+', '', '5GHz'),
     'wifi4|probe:0,1,45,127,107,191,221(0017f2,10),221(0050f2,8),221(001018,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f811032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,extcap:00000884|assoc:0,1,33,36,48,45,127,191,221(0017f2,10),221(001018,2),221(0050f2,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f811032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,txpow:13f9,extcap:000008|os:ios':
-        ('iPhone 7', '', '5GHz'),
+        ('iPhone 7/7+', '', '5GHz'),
     'wifi4|probe:0,1,45,127,107,191,221(0017f2,10),221(0050f2,8),221(001018,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f817032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,extcap:00000884|assoc:0,1,33,36,48,45,127,191,221(0017f2,10),221(001018,2),221(0050f2,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f811032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,txpow:13f9,extcap:000008|os:ios':
-        ('iPhone 7', '', '5GHz'),
+        ('iPhone 7/7+', '', '5GHz'),
     'wifi4|probe:0,1,45,127,107,191,221(0017f2,10),221(0050f2,8),221(001018,2),htcap:006f,htagg:17,htmcs:000000ff,vhtcap:0f801032,vhtrxmcs:0000fffe,vhttxmcs:0000fffe,extcap:00000884|assoc:0,1,33,36,48,45,127,191,221(0017f2,10),221(001018,2),221(0050f2,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f813032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,txpow:13f9,extcap:000008|os:ios':
-        ('iPhone 7', '', '5GHz'),
+        ('iPhone 7/7+', '', '5GHz'),
     'wifi4|probe:0,1,45,127,107,191,221(0017f2,10),221(0050f2,8),221(001018,2),htcap:006f,htagg:17,htmcs:000000ff,vhtcap:0f807032,vhtrxmcs:0000fffe,vhttxmcs:0000fffe,extcap:00000884|assoc:0,1,33,36,48,45,127,191,221(0017f2,10),221(001018,2),221(0050f2,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f813032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,txpow:13f9,extcap:000008|os:ios':
-        ('iPhone 7', '', '5GHz'),
+        ('iPhone 7/7+', '', '5GHz'),
     'wifi4|probe:0,1,45,127,107,191,221(0017f2,10),221(0050f2,8),221(001018,2),htcap:006f,htagg:17,htmcs:000000ff,vhtcap:0f803032,vhtrxmcs:0000fffe,vhttxmcs:0000fffe,extcap:00000884|assoc:0,1,33,36,48,70,45,191,221(0017f2,10),221(001018,2),221(0050f2,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f811032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,txpow:13f9|os:ios':
-        ('iPhone 7', '', '5GHz'),
+        ('iPhone 7/7+', '', '5GHz'),
     'wifi4|probe:0,1,45,127,107,191,221(0017f2,10),221(0050f2,8),221(001018,2),htcap:006f,htagg:17,htmcs:000000ff,vhtcap:0f807032,vhtrxmcs:0000fffe,vhttxmcs:0000fffe,extcap:00000884|assoc:0,1,33,36,48,70,45,191,221(0017f2,10),221(001018,2),221(0050f2,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f811032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,txpow:13f9|os:ios':
-        ('iPhone 7', '', '5GHz'),
+        ('iPhone 7/7+', '', '5GHz'),
     'wifi4|probe:0,1,45,127,107,191,221(0017f2,10),221(0050f2,8),221(001018,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f817032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,extcap:00000884|assoc:0,1,33,36,48,45,191,221(0017f2,10),221(001018,2),221(0050f2,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f817032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,txpow:13f9|os:ios':
-        ('iPhone 7+', '', '5GHz'),
+        ('iPhone 7/7+', '', '5GHz'),
+    'wifi4|probe:0,1,45,127,107,191,221(0017f2,10),221(0050f2,8),221(001018,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f811032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,extcap:0000088400000040|assoc:0,1,33,36,48,45,127,191,221(0017f2,10),221(001018,2),221(0050f2,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f813032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,txpow:13f9,extcap:0000080000000040|os:ios':
+        ('iPhone 7/7+', '', '5GHz'),
+    'wifi4|probe:0,1,45,127,107,191,221(0017f2,10),221(0050f2,8),221(001018,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f813032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,extcap:0000088400000040|assoc:0,1,33,36,48,45,127,191,221(0017f2,10),221(001018,2),221(0050f2,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f811032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,txpow:13f9,extcap:0000080000000040|os:ios':
+        ('iPhone 7/7+', '', '5GHz'),
+    'wifi4|probe:0,1,45,127,107,191,221(0017f2,10),221(0050f2,8),221(001018,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f817032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,extcap:0000088400000040|assoc:0,1,33,36,48,45,127,191,221(0017f2,10),221(001018,2),221(0050f2,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f811032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,txpow:13f9,extcap:0000080000000040|os:ios':
+        ('iPhone 7/7+', '', '5GHz'),
+    'wifi4|probe:0,1,45,127,107,191,221(0017f2,10),221(0050f2,8),221(001018,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f817032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,extcap:00000884|assoc:0,1,33,36,48,45,127,191,221(0017f2,10),221(001018,2),221(0050f2,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f813032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,txpow:13f9,extcap:000008|os:ios':
+        ('iPhone 7/7+', '', '5GHz'),
+    'wifi4|probe:0,1,45,127,107,191,221(0017f2,10),221(0050f2,8),221(001018,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f811032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,extcap:00000884|assoc:0,1,33,36,48,45,127,191,221(0017f2,10),221(001018,2),221(0050f2,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f813032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,txpow:13f9,extcap:000008|os:ios':
+        ('iPhone 7/7+', '', '5GHz'),
+    'wifi4|probe:0,1,45,127,107,191,221(0017f2,10),221(0050f2,8),221(001018,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f817032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,extcap:0000088400000040|assoc:0,1,33,36,48,45,127,191,221(0017f2,10),221(001018,2),221(0050f2,2),htcap:006f,htagg:17,htmcs:0000ffff,vhtcap:0f813032,vhtrxmcs:0000fffa,vhttxmcs:0000fffa,txpow:13f9,extcap:0000080000000040|os:ios':
+        ('iPhone 7/7+', '', '5GHz'),
     'wifi4|probe:0,1,50,3,45,127,107,221(0017f2,10),221(0050f2,8),221(001018,2),htcap:002d,htagg:17,htmcs:0000ffff,extcap:00000884|assoc:0,1,50,33,36,48,45,127,221(0017f2,10),221(001018,2),221(0050f2,2),htcap:002d,htagg:17,htmcs:0000ffff,txpow:13f9,extcap:000008|os:ios':
         ('iPhone 7/7+', '', '2.4GHz'),
     'wifi4|probe:0,1,50,3,45,127,107,221(0017f2,10),221(0050f2,8),221(001018,2),htcap:002d,htagg:17,htmcs:000000ff,extcap:00000884|assoc:0,1,50,33,36,48,45,127,221(0017f2,10),221(001018,2),221(0050f2,2),htcap:002d,htagg:17,htmcs:0000ffff,txpow:13f9,extcap:000008|os:ios':