Support for QCT switches

Change-Id: Iacb4720b2bdee2f26b0c4b228e52e5c75b7a070f
diff --git a/switchq/vendors.go b/switchq/vendors.go
index 96f4af6..cc4eb94 100644
--- a/switchq/vendors.go
+++ b/switchq/vendors.go
@@ -61,13 +61,24 @@
 }
 
 func (v *VendorsData) Switchq(mac string) (bool, error) {
-	if len(mac) < 8 {
-		return false, nil
-	}
-	rec, ok := v.Vendors[strings.ToUpper(mac[0:8])]
-	if !ok || !rec.Provision {
-		return false, nil
+	// If there is a "full" MAC then attempt to see if that can
+	// be matched. If matched, accept that result and look no
+	// further
+	if len(mac) == 17 {
+		if rec, ok := v.Vendors[strings.ToUpper(mac)]; ok {
+			return rec.Provision, nil
+		}
 	}
 
-	return true, nil
+	// If we have at least a OUI, look to see if that can be
+	// be matched. If matched, accept that result and look no
+	// further.
+	if len(mac) >= 8 {
+		if rec, ok := v.Vendors[strings.ToUpper(mac[0:8])]; ok {
+			return rec.Provision, nil
+		}
+	}
+
+	// No match found, so assume false.
+	return false, nil
 }