summaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
Diffstat (limited to 'epan')
-rw-r--r--epan/CMakeLists.txt2
-rw-r--r--epan/dfilter/dfunctions.c10
-rw-r--r--epan/dfilter/dfvm.c4
-rw-r--r--epan/dfilter/scanner.l2
-rw-r--r--epan/dissectors/asn1/kerberos/packet-kerberos-template.c2
-rw-r--r--epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c3
-rw-r--r--epan/dissectors/asn1/snmp/packet-snmp-template.c10
-rw-r--r--epan/dissectors/asn1/t38/packet-t38-template.c5
-rw-r--r--epan/dissectors/asn1/tcap/packet-tcap-template.c3
-rw-r--r--epan/dissectors/file-blf.c5
-rw-r--r--epan/dissectors/file-jpeg.c4
-rw-r--r--epan/dissectors/file-rbm.c20
-rw-r--r--epan/dissectors/packet-6lowpan.c8
-rw-r--r--epan/dissectors/packet-afp.c8
-rw-r--r--epan/dissectors/packet-alljoyn.c27
-rw-r--r--epan/dissectors/packet-amqp.c19
-rw-r--r--epan/dissectors/packet-asam-cmp.c9
-rw-r--r--epan/dissectors/packet-asap.c99
-rw-r--r--epan/dissectors/packet-babel.c3
-rw-r--r--epan/dissectors/packet-bacnet.c6
-rw-r--r--epan/dissectors/packet-banana.c3
-rw-r--r--epan/dissectors/packet-beep.c7
-rw-r--r--epan/dissectors/packet-bencode.c17
-rw-r--r--epan/dissectors/packet-bfcp.c6
-rw-r--r--epan/dissectors/packet-bgp.c9
-rw-r--r--epan/dissectors/packet-bt-dht.c4
-rw-r--r--epan/dissectors/packet-btbnep.c3
-rw-r--r--epan/dissectors/packet-btsdp.c3
-rw-r--r--epan/dissectors/packet-bvlc.c6
-rw-r--r--epan/dissectors/packet-cip.c7
-rw-r--r--epan/dissectors/packet-cmip.c12
-rw-r--r--epan/dissectors/packet-cmp.c12
-rw-r--r--epan/dissectors/packet-corosync-totemsrp.c4
-rw-r--r--epan/dissectors/packet-cose.c6
-rw-r--r--epan/dissectors/packet-cql.c25
-rw-r--r--epan/dissectors/packet-csn1.c15
-rw-r--r--epan/dissectors/packet-dap.c45
-rw-r--r--epan/dissectors/packet-dccp.c5
-rw-r--r--epan/dissectors/packet-dcm.c63
-rw-r--r--epan/dissectors/packet-dcm.h4
-rw-r--r--epan/dissectors/packet-dcom.c3
-rw-r--r--epan/dissectors/packet-dhcpv6.c8
-rw-r--r--epan/dissectors/packet-disp.c23
-rw-r--r--epan/dissectors/packet-docsis-macmgmt.c2
-rw-r--r--epan/dissectors/packet-dof.c71
-rw-r--r--epan/dissectors/packet-dvb-s2-bb.c2
-rw-r--r--epan/dissectors/packet-e2ap.c34
-rw-r--r--epan/dissectors/packet-edonkey.c6
-rw-r--r--epan/dissectors/packet-enrp.c53
-rw-r--r--epan/dissectors/packet-erldp.c7
-rw-r--r--epan/dissectors/packet-etch.c42
-rw-r--r--epan/dissectors/packet-extrememesh.c2
-rw-r--r--epan/dissectors/packet-fcswils.c2
-rw-r--r--epan/dissectors/packet-geonw.c5
-rw-r--r--epan/dissectors/packet-giop.c28
-rw-r--r--epan/dissectors/packet-glow.c34
-rw-r--r--epan/dissectors/packet-goose.c12
-rw-r--r--epan/dissectors/packet-gquic.c2
-rw-r--r--epan/dissectors/packet-gsm_abis_oml.c6
-rw-r--r--epan/dissectors/packet-gsm_gsup.c3
-rw-r--r--epan/dissectors/packet-gtp.c21
-rw-r--r--epan/dissectors/packet-gtpv2.c18
-rw-r--r--epan/dissectors/packet-h223.c12
-rw-r--r--epan/dissectors/packet-h225.c23
-rw-r--r--epan/dissectors/packet-h245.c78
-rw-r--r--epan/dissectors/packet-h248.c12
-rw-r--r--epan/dissectors/packet-h264.c26
-rw-r--r--epan/dissectors/packet-h265.c21
-rw-r--r--epan/dissectors/packet-hsms.c9
-rw-r--r--epan/dissectors/packet-http2.c76
-rw-r--r--epan/dissectors/packet-icmpv6.c5
-rw-r--r--epan/dissectors/packet-icq.c4
-rw-r--r--epan/dissectors/packet-ieee1609dot2.c12
-rw-r--r--epan/dissectors/packet-ieee1722.c2
-rw-r--r--epan/dissectors/packet-ip.c4
-rw-r--r--epan/dissectors/packet-ipp.c31
-rw-r--r--epan/dissectors/packet-ippusb.c12
-rw-r--r--epan/dissectors/packet-ipv6.c4
-rw-r--r--epan/dissectors/packet-isakmp.c11
-rw-r--r--epan/dissectors/packet-iscsi.c3
-rw-r--r--epan/dissectors/packet-isis-lsp.c11
-rw-r--r--epan/dissectors/packet-iso15765.c11
-rw-r--r--epan/dissectors/packet-iso7816.c20
-rw-r--r--epan/dissectors/packet-isup.c14
-rw-r--r--epan/dissectors/packet-its.c12
-rw-r--r--epan/dissectors/packet-json_3gpp.c3
-rw-r--r--epan/dissectors/packet-jxta.c11
-rw-r--r--epan/dissectors/packet-kafka.c12
-rw-r--r--epan/dissectors/packet-kerberos.c2
-rw-r--r--epan/dissectors/packet-kink.c12
-rw-r--r--epan/dissectors/packet-knxip.c5
-rw-r--r--epan/dissectors/packet-ldap.c12
-rw-r--r--epan/dissectors/packet-ldp.c7
-rw-r--r--epan/dissectors/packet-li5g.c6
-rw-r--r--epan/dissectors/packet-lisp-tcp.c2
-rw-r--r--epan/dissectors/packet-lisp.c75
-rw-r--r--epan/dissectors/packet-lisp.h2
-rw-r--r--epan/dissectors/packet-llrp.c9
-rw-r--r--epan/dissectors/packet-lwm2mtlv.c11
-rw-r--r--epan/dissectors/packet-m2ua.c7
-rw-r--r--epan/dissectors/packet-m3ua.c12
-rw-r--r--epan/dissectors/packet-mac-lte.c26
-rw-r--r--epan/dissectors/packet-mbim.c5
-rw-r--r--epan/dissectors/packet-mms.c45
-rw-r--r--epan/dissectors/packet-mongo.c9
-rw-r--r--epan/dissectors/packet-mpeg-pes.c3
-rw-r--r--epan/dissectors/packet-mpls-echo.c4
-rw-r--r--epan/dissectors/packet-mq-pcf.c5
-rw-r--r--epan/dissectors/packet-mqtt-sn.c3
-rw-r--r--epan/dissectors/packet-msdp.c4
-rw-r--r--epan/dissectors/packet-msgpack.c8
-rw-r--r--epan/dissectors/packet-mswsp.c8
-rw-r--r--epan/dissectors/packet-nas_5gs.c3
-rw-r--r--epan/dissectors/packet-nbt.c35
-rw-r--r--epan/dissectors/packet-netflow.c7
-rw-r--r--epan/dissectors/packet-netlink.c7
-rw-r--r--epan/dissectors/packet-nhrp.c4
-rw-r--r--epan/dissectors/packet-ntlmssp.c2
-rw-r--r--epan/dissectors/packet-openflow_v4.c2
-rw-r--r--epan/dissectors/packet-openflow_v5.c4
-rw-r--r--epan/dissectors/packet-openflow_v6.c5
-rw-r--r--epan/dissectors/packet-opensafety.c2
-rw-r--r--epan/dissectors/packet-openwire.c8
-rw-r--r--epan/dissectors/packet-opsi.c17
-rw-r--r--epan/dissectors/packet-osc.c9
-rw-r--r--epan/dissectors/packet-p22.c45
-rw-r--r--epan/dissectors/packet-p7.c12
-rw-r--r--epan/dissectors/packet-pana.c7
-rw-r--r--epan/dissectors/packet-parlay.c15
-rw-r--r--epan/dissectors/packet-pim.c5
-rw-r--r--epan/dissectors/packet-protobuf.c20
-rw-r--r--epan/dissectors/packet-proxy.c3
-rw-r--r--epan/dissectors/packet-q2931.c6
-rw-r--r--epan/dissectors/packet-qnet6.c7
-rw-r--r--epan/dissectors/packet-rdp.c4
-rw-r--r--epan/dissectors/packet-resp.c5
-rw-r--r--epan/dissectors/packet-rpl.c4
-rw-r--r--epan/dissectors/packet-rsl.c4
-rw-r--r--epan/dissectors/packet-rsvp.c6
-rw-r--r--epan/dissectors/packet-rtls.c3
-rw-r--r--epan/dissectors/packet-rtmpt.c59
-rw-r--r--epan/dissectors/packet-rtp.c13
-rw-r--r--epan/dissectors/packet-rtps.c61
-rw-r--r--epan/dissectors/packet-s7comm.c10
-rw-r--r--epan/dissectors/packet-scsi.c3
-rw-r--r--epan/dissectors/packet-sctp.c36
-rw-r--r--epan/dissectors/packet-simulcrypt.c6
-rw-r--r--epan/dissectors/packet-sll.h1
-rw-r--r--epan/dissectors/packet-slsk.c282
-rw-r--r--epan/dissectors/packet-smb2.c17
-rw-r--r--epan/dissectors/packet-sml.c5
-rw-r--r--epan/dissectors/packet-sna.c7
-rw-r--r--epan/dissectors/packet-snmp.c10
-rw-r--r--epan/dissectors/packet-snort-config.c2
-rw-r--r--epan/dissectors/packet-socketcan.c413
-rw-r--r--epan/dissectors/packet-socketcan.h46
-rw-r--r--epan/dissectors/packet-socks.c6
-rw-r--r--epan/dissectors/packet-solaredge.c12
-rw-r--r--epan/dissectors/packet-someip.c34
-rw-r--r--epan/dissectors/packet-sua.c19
-rw-r--r--epan/dissectors/packet-t38.c5
-rw-r--r--epan/dissectors/packet-tcap.c3
-rw-r--r--epan/dissectors/packet-tcp.c6
-rw-r--r--epan/dissectors/packet-teap.c8
-rw-r--r--epan/dissectors/packet-tecmp.c2
-rw-r--r--epan/dissectors/packet-tftp.c17
-rw-r--r--epan/dissectors/packet-thread.c3
-rw-r--r--epan/dissectors/packet-thrift.c107
-rw-r--r--epan/dissectors/packet-tls-utils.c8
-rw-r--r--epan/dissectors/packet-tn5250.c3
-rw-r--r--epan/dissectors/packet-usb-hid.c3
-rw-r--r--epan/dissectors/packet-usb-video.c3
-rw-r--r--epan/dissectors/packet-vp9.c2
-rw-r--r--epan/dissectors/packet-wassp.c3
-rw-r--r--epan/dissectors/packet-windows-common.c16
-rw-r--r--epan/dissectors/packet-wlccp.c2
-rw-r--r--epan/dissectors/packet-wow.c26
-rw-r--r--epan/dissectors/packet-wtp.c2
-rw-r--r--epan/dissectors/packet-x11.c28
-rw-r--r--epan/dissectors/packet-x509if.c34
-rw-r--r--epan/dissectors/packet-x509sat.c12
-rw-r--r--epan/dissectors/packet-x75.c2
-rw-r--r--epan/dissectors/packet-xml.c6
-rw-r--r--epan/dissectors/packet-xmpp-utils.c32
-rw-r--r--epan/dissectors/packet-xmpp-utils.h2
-rw-r--r--epan/dissectors/packet-xmpp.c2
-rw-r--r--epan/dissectors/packet-yami.c3
-rw-r--r--epan/dissectors/packet-z3950.c34
-rw-r--r--epan/dissectors/packet-zbee-nwk-gp.c14
-rw-r--r--epan/dissectors/packet-zbee-zcl.c4
-rw-r--r--epan/dissectors/usb.c117
-rw-r--r--epan/enterprises.c438
-rw-r--r--epan/epan.c10
-rw-r--r--epan/manuf-data.c807
-rw-r--r--epan/packet.c23
-rw-r--r--epan/packet.h14
-rw-r--r--epan/packet_info.h1
-rw-r--r--epan/pci-ids.c5634
-rw-r--r--epan/prefs.c31
-rw-r--r--epan/print.c30
-rw-r--r--epan/proto.c6
-rw-r--r--epan/protobuf_lang_tree.c31
-rw-r--r--epan/services-data.c74
-rw-r--r--epan/show_exception.c9
-rw-r--r--epan/strutil.c20
-rw-r--r--epan/wslua/init_wslua.c10
-rw-r--r--epan/wslua/lrexlib/pcre2/lpcre2.c2
-rw-r--r--epan/wslua/lua_bitop.c25
-rwxr-xr-xepan/wslua/make-taps.py24
-rw-r--r--epan/wslua/wslua_byte_array.c12
-rw-r--r--epan/wslua/wslua_dissector.c4
-rw-r--r--epan/wslua/wslua_field.c12
-rw-r--r--epan/wslua/wslua_file.c10
-rw-r--r--epan/wslua/wslua_file_handler.c8
-rw-r--r--epan/wslua/wslua_frame_info.c8
-rw-r--r--epan/wslua/wslua_pinfo.c2
-rw-r--r--epan/wslua/wslua_pref.c4
-rw-r--r--epan/wslua/wslua_proto.c50
-rw-r--r--epan/wslua/wslua_struct.c10
-rw-r--r--epan/wslua/wslua_tree.c6
-rw-r--r--epan/wslua/wslua_tvb.c58
-rw-r--r--epan/wslua/wslua_wtap.c10
222 files changed, 6917 insertions, 3878 deletions
diff --git a/epan/CMakeLists.txt b/epan/CMakeLists.txt
index 9281a2a1..3a3d19c0 100644
--- a/epan/CMakeLists.txt
+++ b/epan/CMakeLists.txt
@@ -314,7 +314,7 @@ add_library(epan
set_target_properties(epan PROPERTIES
COMPILE_DEFINITIONS "WS_BUILD_DLL"
LINK_FLAGS "${WS_LINK_FLAGS}"
- VERSION "17.0.2" SOVERSION 17
+ VERSION "17.0.4" SOVERSION 17
INSTALL_RPATH "${LIBRARY_INSTALL_RPATH}"
# By default the name for a library with target name epan will be libepan,
# but Ethereal is now named Wireshark
diff --git a/epan/dfilter/dfunctions.c b/epan/dfilter/dfunctions.c
index be364241..4b09b704 100644
--- a/epan/dfilter/dfunctions.c
+++ b/epan/dfilter/dfunctions.c
@@ -176,10 +176,12 @@ df_func_compare(GSList *stack, uint32_t arg_count, df_cell_t *retval,
for (args = stack, i = 0; i < arg_count; args = args->next, i++) {
arg1 = args->data;
- for (unsigned j = 0; j < arg1->len; j++) {
- arg_fvalue = arg1->pdata[j];
- if (fv_ret == NULL || fv_cmp(arg_fvalue, fv_ret)) {
- fv_ret = arg_fvalue;
+ if (arg1 != NULL) {
+ for (unsigned j = 0; j < arg1->len; j++) {
+ arg_fvalue = arg1->pdata[j];
+ if (fv_ret == NULL || fv_cmp(arg_fvalue, fv_ret)) {
+ fv_ret = arg_fvalue;
+ }
}
}
}
diff --git a/epan/dfilter/dfvm.c b/epan/dfilter/dfvm.c
index cae73360..a0a21b68 100644
--- a/epan/dfilter/dfvm.c
+++ b/epan/dfilter/dfvm.c
@@ -1428,7 +1428,9 @@ stack_pop(dfilter_t *df, dfvm_value_t *arg1)
for (unsigned i = 0; i < count; i++) {
/* Free top of stack data. */
- g_ptr_array_unref(df->function_stack->data);
+ if (df->function_stack->data) {
+ g_ptr_array_unref(df->function_stack->data);
+ }
/* Remove top of stack. */
df->function_stack = g_slist_delete_link(df->function_stack, df->function_stack);
}
diff --git a/epan/dfilter/scanner.l b/epan/dfilter/scanner.l
index e5565d2a..c6b876ac 100644
--- a/epan/dfilter/scanner.l
+++ b/epan/dfilter/scanner.l
@@ -902,8 +902,8 @@ parse_charconst(dfsyntax_t *dfs, const char *s, unsigned long *valuep)
dfilter_fail(dfs, DF_ERROR_GENERIC, dfs->string_loc, "%s isn't a valid character constant.", s);
return false;
}
+ cp++;
}
- cp++;
break;
case 'u':
diff --git a/epan/dissectors/asn1/kerberos/packet-kerberos-template.c b/epan/dissectors/asn1/kerberos/packet-kerberos-template.c
index 49646377..2b5a906d 100644
--- a/epan/dissectors/asn1/kerberos/packet-kerberos-template.c
+++ b/epan/dissectors/asn1/kerberos/packet-kerberos-template.c
@@ -2074,7 +2074,7 @@ verify_krb5_pac_ticket_checksum(proto_tree *tree _U_,
}
checksum.length = MIN(checksum.length, (unsigned int)checksum_length);
- tepdata.data = (void *)(uintptr_t)tepbuffer;
+ tepdata.data = (void *)tepbuffer;
tepdata.length = teplength;
ret = decode_krb5_enc_tkt_part(&tepdata, &tep);
diff --git a/epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c b/epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c
index c4e8990d..680fa910 100644
--- a/epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c
+++ b/epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c
@@ -399,6 +399,7 @@ static int
dissect_mpeg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data);
static gboolean
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_mpeg_pes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
int prefix;
@@ -434,6 +435,7 @@ dissect_mpeg_pes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
offset = dissect_mpeg_pes_PES(tvb, offset, &asn1_ctx,
tree, proto_mpeg_pes);
+ increment_dissection_depth(pinfo);
if (stream == STREAM_PICTURE) {
int frame_type;
@@ -598,6 +600,7 @@ dissect_mpeg_pes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
proto_tree_add_item(tree, hf_mpeg_pes_data, tvb,
offset / 8, -1, ENC_NA);
}
+ decrement_dissection_depth(pinfo);
return TRUE;
}
diff --git a/epan/dissectors/asn1/snmp/packet-snmp-template.c b/epan/dissectors/asn1/snmp/packet-snmp-template.c
index e8e606e1..96a4a4ae 100644
--- a/epan/dissectors/asn1/snmp/packet-snmp-template.c
+++ b/epan/dissectors/asn1/snmp/packet-snmp-template.c
@@ -411,12 +411,9 @@ snmp_match_request_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
{
proto_item *it;
- // if it is a request
- if (srrp->request_frame_id == pinfo->fd->num)
+ // if it is the response
+ if (srrp->response_frame_id == pinfo->fd->num)
{
- it=proto_tree_add_uint(tree, hf_snmp_response_in, tvb, 0, 0, srrp->response_frame_id);
- proto_item_set_generated(it);
- } else {
nstime_t ns;
it=proto_tree_add_uint(tree, hf_snmp_response_to, tvb, 0, 0, srrp->request_frame_id);
proto_item_set_generated(it);
@@ -425,6 +422,9 @@ snmp_match_request_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_item_set_generated(it);
return srrp;
+ } else {
+ it=proto_tree_add_uint(tree, hf_snmp_response_in, tvb, 0, 0, srrp->response_frame_id);
+ proto_item_set_generated(it);
}
}
diff --git a/epan/dissectors/asn1/t38/packet-t38-template.c b/epan/dissectors/asn1/t38/packet-t38-template.c
index ad46a999..852885c1 100644
--- a/epan/dissectors/asn1/t38/packet-t38-template.c
+++ b/epan/dissectors/asn1/t38/packet-t38-template.c
@@ -250,6 +250,7 @@ void t38_add_address(packet_info *pinfo,
p_conversation_data->setup_frame_number = setup_frame_number;
p_conversation_data->src_t38_info.reass_ID = 0;
p_conversation_data->src_t38_info.reass_start_seqnum = -1;
+ p_conversation_data->src_t38_info.reass_start_data_field = 0;
p_conversation_data->src_t38_info.reass_data_type = 0;
p_conversation_data->src_t38_info.last_seqnum = -1;
p_conversation_data->src_t38_info.packet_lost = 0;
@@ -261,6 +262,7 @@ void t38_add_address(packet_info *pinfo,
p_conversation_data->dst_t38_info.reass_ID = 0;
p_conversation_data->dst_t38_info.reass_start_seqnum = -1;
+ p_conversation_data->dst_t38_info.reass_start_data_field = 0;
p_conversation_data->dst_t38_info.reass_data_type = 0;
p_conversation_data->dst_t38_info.last_seqnum = -1;
p_conversation_data->dst_t38_info.packet_lost = 0;
@@ -323,8 +325,9 @@ force_reassemble_seq(reassembly_table *table, packet_info *pinfo, guint32 id)
last_fd=fd_i;
}
- data = (guint8 *) wmem_alloc(pinfo->pool, size);
+ data = (guint8 *) g_malloc(size);
fd_head->tvb_data = tvb_new_real_data(data, size, size);
+ tvb_set_free_cb(fd_head->tvb_data, g_free);
fd_head->len = size; /* record size for caller */
/* add all data fragments */
diff --git a/epan/dissectors/asn1/tcap/packet-tcap-template.c b/epan/dissectors/asn1/tcap/packet-tcap-template.c
index 65efb15b..97485493 100644
--- a/epan/dissectors/asn1/tcap/packet-tcap-template.c
+++ b/epan/dissectors/asn1/tcap/packet-tcap-template.c
@@ -2114,6 +2114,7 @@ static void cleanup_tcap(void)
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_tcap_param(asn1_ctx_t *actx, proto_tree *tree, tvbuff_t *tvb, int offset)
{
gint tag_offset, saved_offset, len_offset;
@@ -2156,7 +2157,9 @@ dissect_tcap_param(asn1_ctx_t *actx, proto_tree *tree, tvbuff_t *tvb, int offset
if (len-(2*ind_field)) /*should always be positive unless we get an empty contructor pointless? */
{
next_tvb = tvb_new_subset_length(tvb, offset, len-(2*ind_field));
+ increment_dissection_depth(actx->pinfo);
dissect_tcap_param(actx, subtree,next_tvb,0);
+ decrement_dissection_depth(actx->pinfo);
}
if (ind_field)
diff --git a/epan/dissectors/file-blf.c b/epan/dissectors/file-blf.c
index 200d5de6..d527ea31 100644
--- a/epan/dissectors/file-blf.c
+++ b/epan/dissectors/file-blf.c
@@ -22,6 +22,7 @@
#include <epan/packet.h>
#include <epan/prefs.h>
+
#include <wiretap/blf.h>
static int proto_blf = -1;
@@ -395,6 +396,7 @@ dissect_blf_api_version(proto_tree *tree, int hf, tvbuff_t *tvb, gint offset, gi
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_blf_lobj(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, gint offset_orig) {
proto_item *ti_root = NULL;
proto_item *ti = NULL;
@@ -722,6 +724,7 @@ dissect_blf_lobj(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, gint o
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_blf_next_object(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset) {
gint offset_orig = offset;
@@ -729,7 +732,9 @@ dissect_blf_next_object(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gin
if (tvb_memeql(tvb, offset, blf_lobj_magic, MAGIC_NUMBER_SIZE) != 0) {
offset += 1;
} else {
+ increment_dissection_depth(pinfo);
int bytes_parsed = dissect_blf_lobj(tvb, pinfo, tree, offset);
+ decrement_dissection_depth(pinfo);
if (bytes_parsed <= 0) {
return 0;
} else {
diff --git a/epan/dissectors/file-jpeg.c b/epan/dissectors/file-jpeg.c
index 12a7e578..0eba3c95 100644
--- a/epan/dissectors/file-jpeg.c
+++ b/epan/dissectors/file-jpeg.c
@@ -25,6 +25,7 @@
#include "config.h"
#include <epan/packet.h>
+#include <epan/proto_data.h>
#include <epan/expert.h>
#include <wiretap/wtap.h>
@@ -770,6 +771,7 @@ process_app0_segment(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, guint3
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
process_tiff_ifd_chain(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo,
guint encoding, guint32 start_ifd_offset,
int hf_tag, const char *ifd_type_desc)
@@ -893,9 +895,11 @@ process_tiff_ifd_chain(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo,
if (extension_ifd_type_desc) {
if (extension_ifd_offset < tvb_reported_length(tvb)) {
+ increment_dissection_depth(pinfo);
process_tiff_ifd_chain(tree, tvb, pinfo, encoding,
extension_ifd_offset, extension_hf_ifd_tag,
extension_ifd_type_desc);
+ decrement_dissection_depth(pinfo);
} else {
expert_add_info_format(pinfo, value_item, &ei_start_ifd_offset,
"bogus, should be < %u", tvb_reported_length(tvb));
diff --git a/epan/dissectors/file-rbm.c b/epan/dissectors/file-rbm.c
index 988b7048..dd043d35 100644
--- a/epan/dissectors/file-rbm.c
+++ b/epan/dissectors/file-rbm.c
@@ -20,8 +20,10 @@
*/
#include "config.h"
-#include <epan/packet.h>
+
#include <epan/expert.h>
+#include <epan/packet.h>
+
#include <file-rbm.h>
#include <wiretap/ruby_marshal.h>
@@ -193,6 +195,7 @@ static void dissect_rbm_string_data(tvbuff_t* tvb, packet_info* pinfo, proto_tre
dissect_rbm_string_data_trailer(tvb, pinfo, tree, offset, label, prefix, "", value_str);
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_rbm_array(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value_str)
{
gint32 value;
@@ -219,6 +222,7 @@ static void dissect_rbm_array(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tre
*value_str = wmem_strdup_printf(pinfo->pool, "%d", value);
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_rbm_hash(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value_str)
{
gint32 value;
@@ -318,6 +322,7 @@ static void dissect_rbm_struct_data(tvbuff_t* tvb, packet_info* pinfo, proto_tre
*value_str = wmem_strdup_printf(pinfo->pool, "%d", value);
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_rbm_string(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value)
{
dissect_rbm_string_data(tvb, pinfo, tree, offset, "String", "", value);
@@ -326,6 +331,7 @@ static void dissect_rbm_string(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tr
dissect_rbm_object(tvb, pinfo, tree, offset, NULL, NULL);
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_rbm_regex(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value)
{
dissect_rbm_string_data_trailer(tvb, pinfo, tree, offset, "Regexp", "/", "/", value);
@@ -341,6 +347,7 @@ static void dissect_rbm_class(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tre
dissect_rbm_string_data(tvb, pinfo, tree, offset, "Class", "", value_str);
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_rbm_userclass(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value)
{
rbm_set_info(pinfo, "UserClass");
@@ -352,6 +359,7 @@ static void dissect_rbm_symbol(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tr
dissect_rbm_string_data(tvb, pinfo, tree, offset, "Symbol", ":", value_str);
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_rbm_variable(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value_str)
{
gint offset_start = *offset;
@@ -365,12 +373,14 @@ static void dissect_rbm_module(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tr
dissect_rbm_string_data(tvb, pinfo, tree, offset, "Module", "", value_str);
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_rbm_struct(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value)
{
dissect_rbm_struct_data(tvb, pinfo, tree, offset, value);
dissect_rbm_hash(tvb, pinfo, tree, offset, NULL);
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_rbm_drb(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset)
{
gint offset_start = *offset;
@@ -380,6 +390,7 @@ static void dissect_rbm_drb(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree,
proto_item_set_len(drb_tree, *offset - offset_start);
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_rbm_rubyobject(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset)
{
gint offset_start = *offset;
@@ -397,6 +408,7 @@ static void dissect_rbm_rubyobject(tvbuff_t* tvb, packet_info* pinfo, proto_tree
proto_item_set_len(obj_tree, *offset - offset_start);
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_rbm_extended(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset)
{
gint offset_start = *offset;
@@ -407,6 +419,7 @@ static void dissect_rbm_extended(tvbuff_t* tvb, packet_info* pinfo, proto_tree*
proto_item_set_len(ext_tree, *offset - offset_start);
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_rbm_object(tvbuff_t* tvb, packet_info* pinfo, proto_tree* ptree, guint* offset, gchar** type, gchar** value)
{
guint8 subtype = tvb_get_guint8(tvb, *offset);
@@ -420,6 +433,8 @@ static void dissect_rbm_object(tvbuff_t* tvb, packet_info* pinfo, proto_tree* pt
proto_tree_add_item(tree, hf_rbm_type, tvb, *offset, 1, ENC_NA);
*offset += 1;
+ increment_dissection_depth(pinfo);
+
switch (subtype) {
case '0':
case 'T':
@@ -509,6 +524,8 @@ static void dissect_rbm_object(tvbuff_t* tvb, packet_info* pinfo, proto_tree* pt
*type = type_local;
if (value)
*value = value_local;
+
+ decrement_dissection_depth(pinfo);
}
static gboolean dissect_rbm_header(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset)
@@ -532,6 +549,7 @@ static gboolean dissect_rbm_header(tvbuff_t* tvb, packet_info* pinfo, proto_tree
return TRUE;
}
+// NOLINTNEXTLINE(misc-no-recursion)
void dissect_rbm_inline(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** type, gchar** value)
{
if (!dissect_rbm_header(tvb, pinfo, tree, offset))
diff --git a/epan/dissectors/packet-6lowpan.c b/epan/dissectors/packet-6lowpan.c
index 068b9a6e..b13cd08d 100644
--- a/epan/dissectors/packet-6lowpan.c
+++ b/epan/dissectors/packet-6lowpan.c
@@ -238,6 +238,7 @@ void proto_reg_handoff_6lowpan(void);
/* 6LoWPAN interface identifier length. */
#define LOWPAN_IFC_ID_LEN 8
+
/* Protocol fields handles. */
static int proto_6lowpan = -1;
static int hf_6lowpan_pattern = -1;
@@ -1858,6 +1859,7 @@ dissect_6lowpan_hc1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint dg
*---------------------------------------------------------------
*/
static tvbuff_t *
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_6lowpan_iphc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint dgram_size, const guint8 *siid, const guint8 *diid)
{
ieee802154_hints_t *hints;
@@ -2296,6 +2298,7 @@ dissect_6lowpan_iphc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint d
*---------------------------------------------------------------
*/
static struct lowpan_nhdr *
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_6lowpan_iphc_nhc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, gint dgram_size, const guint8 *siid, const guint8 *diid)
{
gint length;
@@ -2326,7 +2329,10 @@ dissect_6lowpan_iphc_nhc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gi
offset += 1;
/* Decode the remainder of the packet using IPHC encoding. */
+ increment_dissection_depth(pinfo);
iphc_tvb = dissect_6lowpan_iphc(tvb_new_subset_remaining(tvb, offset), pinfo, tree, dgram_size, siid, diid);
+ decrement_dissection_depth(pinfo);
+
if (!iphc_tvb) return NULL;
/* Create the next header structure for the tunneled IPv6 header. */
@@ -2457,7 +2463,9 @@ dissect_6lowpan_iphc_nhc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gi
* There are more LOWPAN_NHC structures to parse. Call ourself again
* recursively to parse them and build the linked list.
*/
+ increment_dissection_depth(pinfo);
nhdr->next = dissect_6lowpan_iphc_nhc(tvb, pinfo, tree, offset, dgram_size - nhdr->reported, siid, diid);
+ decrement_dissection_depth(pinfo);
}
else if (ipv6_ext.ip6e_nxt != IP_PROTO_NONE) {
/* Create another next header structure for the remaining payload. */
diff --git a/epan/dissectors/packet-afp.c b/epan/dissectors/packet-afp.c
index a17fc57b..f6229da3 100644
--- a/epan/dissectors/packet-afp.c
+++ b/epan/dissectors/packet-afp.c
@@ -19,6 +19,7 @@
#include <epan/exceptions.h>
#include <epan/to_str.h>
#include <epan/conversation.h>
+#include <epan/prefs.h>
#include <epan/tap.h>
#include <epan/srt_table.h>
#include <epan/expert.h>
@@ -4219,6 +4220,7 @@ static const val64_string cpx_qtype_string_values[] = {
};
static gint
+// NOLINTNEXTLINE(misc-no-recursion)
spotlight_dissect_query_loop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset,
guint64 cpx_query_type, gint count, gint toc_offset, guint encoding)
{
@@ -4240,8 +4242,8 @@ spotlight_dissect_query_loop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
/*
* This loops through a possibly nested query data structure.
* The outermost one is always without count and called from
- * dissect_spotlight() with count = INT_MAX thus the while (...)
- * loop terminates if (offset >= toc_offset).
+ * dissect_spotlight() with count = prefs.gui_max_tree_depth
+ * thus the while (...) loop terminates if (offset >= toc_offset).
* If nested structures are found, these will have an encoded element
* count which is used in a recursive call to
* spotlight_dissect_query_loop as count parameter, thus in this case
@@ -4495,7 +4497,7 @@ dissect_spotlight(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* dat
"Spotlight RPC data");
/* Queries */
- offset = spotlight_dissect_query_loop(tvb, pinfo, sub_tree_queries, offset, SQ_CPX_TYPE_ARRAY, INT_MAX, offset + (gint)toc_offset + 8, encoding);
+ offset = spotlight_dissect_query_loop(tvb, pinfo, sub_tree_queries, offset, SQ_CPX_TYPE_ARRAY, prefs.gui_max_tree_depth, offset + (gint)toc_offset + 8, encoding);
/* ToC */
sub_tree_toc = proto_tree_add_subtree_format(tree, tvb, offset,
diff --git a/epan/dissectors/packet-alljoyn.c b/epan/dissectors/packet-alljoyn.c
index 8dee1bff..a122bc89 100644
--- a/epan/dissectors/packet-alljoyn.c
+++ b/epan/dissectors/packet-alljoyn.c
@@ -769,13 +769,15 @@ append_struct_signature(proto_item *item,
* @param signature_length is a pointer to the length of the signature.
*/
static void
-advance_to_end_of_signature(const guint8 **signature,
- guint8 *signature_length)
+// NOLINTNEXTLINE(misc-no-recursion)
+advance_to_end_of_signature(packet_info *pinfo, const guint8 **signature, guint8 *signature_length)
{
gboolean done = FALSE;
gint8 current_type;
gint8 end_type = ARG_INVALID;
+ increment_dissection_depth(pinfo);
+
while (*signature_length > 0 && **signature && !done) {
current_type = *(++(*signature));
--*signature_length;
@@ -792,15 +794,15 @@ advance_to_end_of_signature(const guint8 **signature,
switch(current_type)
{
case ARG_ARRAY:
- advance_to_end_of_signature(signature, signature_length);
+ advance_to_end_of_signature(pinfo, signature, signature_length);
break;
case ARG_STRUCT:
end_type = ')';
- advance_to_end_of_signature(signature, signature_length);
+ advance_to_end_of_signature(pinfo, signature, signature_length);
break;
case ARG_DICT_ENTRY:
end_type = '}';
- advance_to_end_of_signature(signature, signature_length);
+ advance_to_end_of_signature(pinfo, signature, signature_length);
break;
case ARG_BYTE:
@@ -825,6 +827,7 @@ advance_to_end_of_signature(const guint8 **signature,
break;
}
}
+ decrement_dissection_depth(pinfo);
}
/* This is called to add a padding item. There is not padding done for each call made.
@@ -877,6 +880,7 @@ static void add_padding_item(gint padding_start, gint padding_end, tvbuff_t *tvb
* parameters come in.
*/
static gint
+// NOLINTNEXTLINE(misc-no-recursion)
parse_arg(tvbuff_t *tvb,
packet_info *pinfo,
proto_item *header_item,
@@ -941,10 +945,12 @@ parse_arg(tvbuff_t *tvb,
add_padding_item(padding_start, offset, tvb, tree);
if(0 == length) {
- advance_to_end_of_signature(signature, signature_length);
+ advance_to_end_of_signature(pinfo, signature, signature_length);
} else {
guint8 sig_length_saved = *signature_length - 1;
+ increment_dissection_depth(pinfo);
+
while((offset - starting_offset) < length) {
const guint8 *sig_pointer;
guint8 remaining_sig_length;
@@ -970,6 +976,7 @@ parse_arg(tvbuff_t *tvb,
*signature = sig_pointer;
*signature_length = remaining_sig_length;
}
+ decrement_dissection_depth(pinfo);
}
if(item) {
@@ -1180,14 +1187,18 @@ parse_arg(tvbuff_t *tvb,
offset += length;
sig_pointer = sig_saved;
+ increment_dissection_depth(pinfo);
+
/* The signature of the variant has now been taken care of. So now take care of the variant data. */
while(((sig_pointer - sig_saved) < (length - 1)) && (tvb_reported_length_remaining(tvb, offset) > 0)) {
proto_item_append_text(item, "%c", g_ascii_isprint(*sig_pointer) ? *sig_pointer : '?');
offset = parse_arg(tvb, pinfo, header_item, encoding, offset, tree, is_reply_to,
*sig_pointer, field_code, &sig_pointer, &variant_sig_length, field_starting_offset);
+
}
+ decrement_dissection_depth(pinfo);
proto_item_append_text(item, "'");
proto_item_set_end(item, tvb, offset);
}
@@ -1241,6 +1252,8 @@ parse_arg(tvbuff_t *tvb,
(*signature)++; /* Advance past the '(' or '{'. */
(*signature_length)--;
+ increment_dissection_depth(pinfo);
+
/* *signature should never be NULL but just make sure to avoid potential issues. */
while(*signature && **signature && **signature != type_stop
&& tvb_reported_length_remaining(tvb, offset) > 0) {
@@ -1258,6 +1271,8 @@ parse_arg(tvbuff_t *tvb,
field_starting_offset);
}
+ decrement_dissection_depth(pinfo);
+
proto_item_set_end(item, tvb, offset);
}
break;
diff --git a/epan/dissectors/packet-amqp.c b/epan/dissectors/packet-amqp.c
index 69b85075..65cf1dfb 100644
--- a/epan/dissectors/packet-amqp.c
+++ b/epan/dissectors/packet-amqp.c
@@ -2394,6 +2394,7 @@ get_amqp_0_9_message_len(packet_info *pinfo _U_, tvbuff_t *tvb,
/* Dissection routine for AMQP 0-9 field tables */
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_amqp_0_9_field_table(tvbuff_t *tvb, packet_info *pinfo, int offset, guint length, proto_item *item)
{
proto_tree *field_table_tree, *field_item_tree;
@@ -2419,7 +2420,9 @@ dissect_amqp_0_9_field_table(tvbuff_t *tvb, packet_info *pinfo, int offset, guin
offset += namelen;
length -= namelen;
+ increment_dissection_depth(pinfo);
vallen = dissect_amqp_0_9_field_value(tvb, pinfo, offset, length, name, field_item_tree);
+ decrement_dissection_depth(pinfo);
if(vallen == 0)
goto too_short;
offset += vallen;
@@ -2435,6 +2438,7 @@ too_short:
/* Dissection routine for AMQP 0-9 field arrays */
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_amqp_0_9_field_array(tvbuff_t *tvb, packet_info *pinfo, int offset, guint length, proto_item *item)
{
proto_tree *field_table_tree, *field_item_tree;
@@ -2453,7 +2457,9 @@ dissect_amqp_0_9_field_array(tvbuff_t *tvb, packet_info *pinfo, int offset, guin
field_item_tree = proto_item_add_subtree(field_item, ett_amqp_0_9_field);
name = wmem_strdup_printf(pinfo->pool, "[%i]", idx);
+ increment_dissection_depth(pinfo);
vallen = dissect_amqp_0_9_field_value(tvb, pinfo, offset, length, name, field_item_tree);
+ decrement_dissection_depth(pinfo);
if(vallen == 0)
goto too_short;
offset += vallen;
@@ -2523,6 +2529,7 @@ static const value_string amqp_0_9_field_type_vals[] = {
};
static guint
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_amqp_0_9_field_value(tvbuff_t *tvb, packet_info *pinfo, int offset, guint length,
const char *name _U_, proto_tree *field_tree)
{
@@ -2818,6 +2825,7 @@ dissect_amqp_0_10_map(tvbuff_t *tvb, proto_item *item)
/* Dissection routine for AMQP 0-10 maps */
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_amqp_0_10_array(tvbuff_t *tvb,
packet_info *pinfo,
int offset, /* Start of array in tvb */
@@ -5811,6 +5819,7 @@ dissect_amqp_0_10_struct_stream_properties(tvbuff_t *tvb,
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_amqp_0_10_struct32(tvbuff_t *tvb,
packet_info *pinfo,
proto_item *ti)
@@ -5827,6 +5836,8 @@ dissect_amqp_0_10_struct32(tvbuff_t *tvb,
proto_tree_add_item_ret_uint(tree, hf_amqp_0_10_struct32_class, tvb, offset, 1, ENC_NA, &class_code);
proto_tree_add_item_ret_uint(tree, hf_amqp_0_10_struct32_struct, tvb, offset+1, 1, ENC_NA, &struct_code);
+ increment_dissection_depth(pinfo);
+
switch(class_code) {
case AMQP_0_10_CLASS_MESSAGE:
switch (struct_code) {
@@ -5956,6 +5967,7 @@ dissect_amqp_0_10_struct32(tvbuff_t *tvb,
}
break;
}
+ decrement_dissection_depth(pinfo);
}
/* decodes AMQP 1.0 list
@@ -5971,6 +5983,7 @@ dissect_amqp_0_10_struct32(tvbuff_t *tvb,
* name: what to show for unformatted content
*/
static guint
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_amqp_1_0_list(tvbuff_t *tvb,
packet_info *pinfo,
int offset,
@@ -6081,6 +6094,7 @@ dissect_amqp_1_0_list(tvbuff_t *tvb,
* arguments: see dissect_amqp_1_0_list
*/
static guint
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_amqp_1_0_map(tvbuff_t *tvb,
packet_info *pinfo,
int offset,
@@ -6214,6 +6228,7 @@ dissect_amqp_1_0_map(tvbuff_t *tvb,
* arguments: see dissect_amqp_1_0_list
*/
static guint
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_amqp_1_0_array(tvbuff_t *tvb,
packet_info *pinfo,
int offset,
@@ -10009,6 +10024,7 @@ static const struct amqp1_typeinfo* decode_fixed_type(guint8 code)
* length_size: decoded length
*/
static void
+// NOLINTNEXTLINE(misc-no-recursion)
get_amqp_1_0_value_formatter(tvbuff_t *tvb,
packet_info *pinfo,
guint8 code,
@@ -10023,6 +10039,7 @@ get_amqp_1_0_value_formatter(tvbuff_t *tvb,
const struct amqp1_typeinfo* element_type;
const char *value = NULL;
+ increment_dissection_depth(pinfo);
element_type = decode_fixed_type(code);
if (element_type)
{
@@ -10141,6 +10158,7 @@ get_amqp_1_0_value_formatter(tvbuff_t *tvb,
break;
}
}
+ decrement_dissection_depth(pinfo);
}
/* It decodes 1.0 type, including type constructor
@@ -10226,6 +10244,7 @@ get_amqp_1_0_type_formatter(tvbuff_t *tvb,
* arguments: see get_amqp_1_0_value_formatter
*/
static void
+// NOLINTNEXTLINE(misc-no-recursion)
get_amqp_1_0_type_value_formatter(tvbuff_t *tvb,
packet_info *pinfo,
int offset,
diff --git a/epan/dissectors/packet-asam-cmp.c b/epan/dissectors/packet-asam-cmp.c
index 09af5add..2d37c220 100644
--- a/epan/dissectors/packet-asam-cmp.c
+++ b/epan/dissectors/packet-asam-cmp.c
@@ -1,7 +1,7 @@
/* packet-asam-cmp.c
* ASAM Capture Module Protocol dissector.
* Copyright 2021-2023 Alicia Mediano Schikarski, Technica Engineering GmbH
- * Copyright 2021-2023 Dr. Lars Voelker, Technica Engineering GmbH
+ * Copyright 2021-2024 Dr. Lars Voelker, Technica Engineering GmbH
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -1218,7 +1218,7 @@ dissect_asam_cmp_data_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *root_tr
can_id = can_id | CAN_ERR_FLAG;
}
- struct can_info can_info = { .id = can_id, .len = msg_payload_type_length, .fd = false, .bus_id = ht_interface_config_to_bus_id(interface_id) };
+ struct can_info can_info = { .id = can_id, .len = msg_payload_type_length, .fd = CAN_TYPE_CAN_CLASSIC, .bus_id = ht_interface_config_to_bus_id(interface_id) };
if (!socketcan_call_subdissectors(sub_tvb, pinfo, tree, &can_info, heuristic_first)) {
call_data_dissector(sub_tvb, pinfo, tree);
}
@@ -1326,7 +1326,7 @@ dissect_asam_cmp_data_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *root_tr
can_id = can_id | CAN_ERR_FLAG;
}
- struct can_info can_info = { .id = can_id, .len = msg_payload_type_length, .fd = true, .bus_id = ht_interface_config_to_bus_id(interface_id) };
+ struct can_info can_info = { .id = can_id, .len = msg_payload_type_length, .fd = CAN_TYPE_CAN_FD, .bus_id = ht_interface_config_to_bus_id(interface_id) };
if (!socketcan_call_subdissectors(sub_tvb, pinfo, tree, &can_info, heuristic_first)) {
call_data_dissector(sub_tvb, pinfo, tree);
}
@@ -1938,7 +1938,6 @@ dissect_asam_cmp_status_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *root_
offset += 2;
if ((asam_cmp_status_msg_vendor_data_length) > 0) {
- asam_cmp_status_msg_vendor_data_length += (asam_cmp_status_msg_vendor_data_length % 2); /* padding to 16bit */
proto_tree_add_item(asam_cmp_status_msg_payload_tree, hf_cmp_status_vendor_data, tvb, offset, asam_cmp_status_msg_vendor_data_length, ENC_NA);
offset += (gint)asam_cmp_status_msg_vendor_data_length;
}
@@ -2016,7 +2015,6 @@ dissect_asam_cmp_status_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *root_
offset += 2;
if ((asam_cmp_status_msg_vendor_data_length) > 0) {
- asam_cmp_status_msg_vendor_data_length += (asam_cmp_status_msg_vendor_data_length % 2); /* padding to 16bit */
proto_tree_add_item(subtree, hf_cmp_iface_vendor_data, tvb, offset, asam_cmp_status_msg_vendor_data_length, ENC_NA);
offset += (gint)asam_cmp_status_msg_vendor_data_length;
}
@@ -2660,6 +2658,7 @@ proto_reg_handoff_asam_cmp(void) {
eth_handle = find_dissector("eth_maybefcs");
dissector_add_for_decode_as("ethertype", asam_cmp_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", asam_cmp_handle);
lin_subdissector_table = find_dissector_table("lin.frame_id");
}
diff --git a/epan/dissectors/packet-asap.c b/epan/dissectors/packet-asap.c
index f33f4eed..1b83af7e 100644
--- a/epan/dissectors/packet-asap.c
+++ b/epan/dissectors/packet-asap.c
@@ -93,9 +93,9 @@ static guint64 asap_total_msgs = 0;
static guint64 asap_total_bytes = 0;
static void
-dissect_parameters(tvbuff_t *, proto_tree *);
+dissect_parameters(tvbuff_t *, packet_info *, proto_tree *);
static void
-dissect_parameter(tvbuff_t *, proto_tree *);
+dissect_parameter(tvbuff_t *, packet_info *, proto_tree *);
static int
dissect_asap(tvbuff_t *, packet_info *, proto_tree *, void *);
@@ -125,13 +125,16 @@ dissect_unknown_cause(tvbuff_t *cause_tvb, proto_tree *cause_tree, proto_item *c
}
static void
-dissect_error_cause(tvbuff_t *cause_tvb, proto_tree *parameter_tree)
+// NOLINTNEXTLINE(misc-no-recursion)
+dissect_error_cause(tvbuff_t *cause_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
guint16 code, length, padding_length;
proto_item *cause_item;
proto_tree *cause_tree;
tvbuff_t *parameter_tvb, *message_tvb;
+ pinfo->flags.in_error_pkt = true;
+
code = tvb_get_ntohs(cause_tvb, CAUSE_CODE_OFFSET);
length = tvb_get_ntohs(cause_tvb, CAUSE_LENGTH_OFFSET);
padding_length = tvb_reported_length(cause_tvb) - length;
@@ -145,27 +148,27 @@ dissect_error_cause(tvbuff_t *cause_tvb, proto_tree *parameter_tree)
switch(code) {
case UNRECOGNIZED_PARAMETER_CAUSE_CODE:
parameter_tvb = tvb_new_subset_remaining(cause_tvb, CAUSE_INFO_OFFSET);
- dissect_parameter(parameter_tvb, cause_tree);
+ dissect_parameter(parameter_tvb, pinfo, cause_tree);
break;
case UNRECONGNIZED_MESSAGE_CAUSE_CODE:
message_tvb = tvb_new_subset_remaining(cause_tvb, CAUSE_INFO_OFFSET);
- dissect_asap(message_tvb, NULL, cause_tree, NULL);
+ dissect_asap(message_tvb, pinfo, cause_tree, NULL);
break;
case INVALID_VALUES:
parameter_tvb = tvb_new_subset_remaining(cause_tvb, CAUSE_INFO_OFFSET);
- dissect_parameter(parameter_tvb, cause_tree);
+ dissect_parameter(parameter_tvb, pinfo, cause_tree);
break;
case NON_UNIQUE_PE_IDENTIFIER:
break;
case POOLING_POLICY_INCONSISTENT_CAUSE_CODE:
parameter_tvb = tvb_new_subset_remaining(cause_tvb, CAUSE_INFO_OFFSET);
- dissect_parameter(parameter_tvb, cause_tree);
+ dissect_parameter(parameter_tvb, pinfo, cause_tree);
break;
case LACK_OF_RESOURCES_CAUSE_CODE:
break;
case INCONSISTENT_TRANSPORT_TYPE_CAUSE_CODE:
parameter_tvb = tvb_new_subset_remaining(cause_tvb, CAUSE_INFO_OFFSET);
- dissect_parameter(parameter_tvb, cause_tree);
+ dissect_parameter(parameter_tvb, pinfo, cause_tree);
break;
case INCONSISTENT_DATA_CONTROL_CONFIGURATION_CAUSE_CODE:
break;
@@ -182,7 +185,8 @@ dissect_error_cause(tvbuff_t *cause_tvb, proto_tree *parameter_tree)
}
static void
-dissect_error_causes(tvbuff_t *error_causes_tvb, proto_tree *parameter_tree)
+// NOLINTNEXTLINE(misc-no-recursion)
+dissect_error_causes(tvbuff_t *error_causes_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
guint16 length, total_length;
gint offset;
@@ -193,7 +197,7 @@ dissect_error_causes(tvbuff_t *error_causes_tvb, proto_tree *parameter_tree)
length = tvb_get_ntohs(error_causes_tvb, offset + CAUSE_LENGTH_OFFSET);
total_length = WS_ROUNDUP_4(length);
error_cause_tvb = tvb_new_subset_length(error_causes_tvb, offset , total_length);
- dissect_error_cause(error_cause_tvb, parameter_tree);
+ dissect_error_cause(error_cause_tvb, pinfo, parameter_tree);
offset += total_length;
}
}
@@ -215,7 +219,8 @@ dissect_ipv6_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, prot
}
static void
-dissect_dccp_transport_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree)
+// NOLINTNEXTLINE(misc-no-recursion)
+dissect_dccp_transport_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -224,11 +229,12 @@ dissect_dccp_transport_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_
proto_tree_add_item(parameter_tree, hf_dccp_service_code, parameter_tvb, DCCP_SERVICE_CODE_OFFSET, DCCP_SERVICE_CODE_LENGTH, ENC_BIG_ENDIAN);
parameters_tvb = tvb_new_subset_remaining(parameter_tvb, DCCP_ADDRESS_OFFSET);
- dissect_parameters(parameters_tvb, parameter_tree);
+ dissect_parameters(parameters_tvb, pinfo, parameter_tree);
}
static void
-dissect_sctp_transport_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree)
+// NOLINTNEXTLINE(misc-no-recursion)
+dissect_sctp_transport_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -236,11 +242,12 @@ dissect_sctp_transport_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_
proto_tree_add_item(parameter_tree, hf_transport_use, parameter_tvb, SCTP_TRANSPORT_USE_OFFSET, SCTP_TRANSPORT_USE_LENGTH, ENC_BIG_ENDIAN);
parameters_tvb = tvb_new_subset_remaining(parameter_tvb, SCTP_ADDRESS_OFFSET);
- dissect_parameters(parameters_tvb, parameter_tree);
+ dissect_parameters(parameters_tvb, pinfo, parameter_tree);
}
static void
-dissect_tcp_transport_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree)
+// NOLINTNEXTLINE(misc-no-recursion)
+dissect_tcp_transport_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -248,11 +255,12 @@ dissect_tcp_transport_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_t
proto_tree_add_item(parameter_tree, hf_transport_use, parameter_tvb, TCP_TRANSPORT_USE_OFFSET, TCP_TRANSPORT_USE_LENGTH, ENC_BIG_ENDIAN);
parameters_tvb = tvb_new_subset_remaining(parameter_tvb, TCP_ADDRESS_OFFSET);
- dissect_parameters(parameters_tvb, parameter_tree);
+ dissect_parameters(parameters_tvb, pinfo, parameter_tree);
}
static void
-dissect_udp_transport_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree)
+// NOLINTNEXTLINE(misc-no-recursion)
+dissect_udp_transport_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -260,11 +268,12 @@ dissect_udp_transport_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_t
proto_tree_add_item(parameter_tree, hf_udp_reserved, parameter_tvb, UDP_RESERVED_OFFSET, UDP_RESERVED_LENGTH, ENC_BIG_ENDIAN);
parameters_tvb = tvb_new_subset_remaining(parameter_tvb, UDP_ADDRESS_OFFSET);
- dissect_parameters(parameters_tvb, parameter_tree);
+ dissect_parameters(parameters_tvb, pinfo, parameter_tree);
}
static void
-dissect_udp_lite_transport_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree)
+// NOLINTNEXTLINE(misc-no-recursion)
+dissect_udp_lite_transport_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -272,7 +281,7 @@ dissect_udp_lite_transport_parameter(tvbuff_t *parameter_tvb, proto_tree *parame
proto_tree_add_item(parameter_tree, hf_udp_lite_reserved, parameter_tvb, UDP_LITE_RESERVED_OFFSET, UDP_LITE_RESERVED_LENGTH, ENC_BIG_ENDIAN);
parameters_tvb = tvb_new_subset_remaining(parameter_tvb, UDP_LITE_ADDRESS_OFFSET);
- dissect_parameters(parameters_tvb, parameter_tree);
+ dissect_parameters(parameters_tvb, pinfo, parameter_tree);
}
static void
@@ -348,7 +357,8 @@ dissect_pool_handle_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tre
}
static void
-dissect_pool_element_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree)
+// NOLINTNEXTLINE(misc-no-recursion)
+dissect_pool_element_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t* parameters_tvb;
@@ -357,27 +367,29 @@ dissect_pool_element_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tr
proto_tree_add_item(parameter_tree, hf_reg_life, parameter_tvb, REGISTRATION_LIFE_OFFSET, REGISTRATION_LIFE_LENGTH, ENC_BIG_ENDIAN);
parameters_tvb = tvb_new_subset_remaining(parameter_tvb, USER_TRANSPORT_PARAMETER_OFFSET);
- dissect_parameters(parameters_tvb, parameter_tree);
+ dissect_parameters(parameters_tvb, pinfo, parameter_tree);
}
static void
-dissect_server_information_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree)
+// NOLINTNEXTLINE(misc-no-recursion)
+dissect_server_information_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
proto_tree_add_item(parameter_tree, hf_server_identifier, parameter_tvb, SERVER_ID_OFFSET, SERVER_ID_LENGTH, ENC_BIG_ENDIAN);
parameters_tvb = tvb_new_subset_remaining(parameter_tvb, SERVER_TRANSPORT_OFFSET);
- dissect_parameters(parameters_tvb, parameter_tree);
+ dissect_parameters(parameters_tvb, pinfo, parameter_tree);
}
static void
-dissect_operation_error_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree)
+// NOLINTNEXTLINE(misc-no-recursion)
+dissect_operation_error_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t *error_causes_tvb;
error_causes_tvb = tvb_new_subset_remaining(parameter_tvb, ERROR_CAUSES_OFFSET);
- dissect_error_causes(error_causes_tvb, parameter_tree);
+ dissect_error_causes(error_causes_tvb, pinfo, parameter_tree);
}
static void
@@ -426,7 +438,8 @@ dissect_unknown_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, p
}
static void
-dissect_parameter(tvbuff_t *parameter_tvb, proto_tree *asap_tree)
+// NOLINTNEXTLINE(misc-no-recursion)
+dissect_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *asap_tree)
{
guint16 type, length, padding_length;
proto_item *parameter_item;
@@ -445,6 +458,7 @@ dissect_parameter(tvbuff_t *parameter_tvb, proto_tree *asap_tree)
proto_tree_add_item(parameter_tree, hf_parameter_type, parameter_tvb, PARAMETER_TYPE_OFFSET, PARAMETER_TYPE_LENGTH, ENC_BIG_ENDIAN);
proto_tree_add_item(parameter_tree, hf_parameter_length, parameter_tvb, PARAMETER_LENGTH_OFFSET, PARAMETER_LENGTH_LENGTH, ENC_BIG_ENDIAN);
+ increment_dissection_depth(pinfo);
switch(type) {
case IPV4_ADDRESS_PARAMETER_TYPE:
dissect_ipv4_parameter(parameter_tvb, parameter_tree, parameter_item);
@@ -453,19 +467,19 @@ dissect_parameter(tvbuff_t *parameter_tvb, proto_tree *asap_tree)
dissect_ipv6_parameter(parameter_tvb, parameter_tree, parameter_item);
break;
case DCCP_TRANSPORT_PARAMETER_TYPE:
- dissect_dccp_transport_parameter(parameter_tvb, parameter_tree);
+ dissect_dccp_transport_parameter(parameter_tvb, pinfo, parameter_tree);
break;
case SCTP_TRANSPORT_PARAMETER_TYPE:
- dissect_sctp_transport_parameter(parameter_tvb, parameter_tree);
+ dissect_sctp_transport_parameter(parameter_tvb, pinfo, parameter_tree);
break;
case TCP_TRANSPORT_PARAMETER_TYPE:
- dissect_tcp_transport_parameter(parameter_tvb, parameter_tree);
+ dissect_tcp_transport_parameter(parameter_tvb, pinfo, parameter_tree);
break;
case UDP_TRANSPORT_PARAMETER_TYPE:
- dissect_udp_transport_parameter(parameter_tvb, parameter_tree);
+ dissect_udp_transport_parameter(parameter_tvb, pinfo, parameter_tree);
break;
case UDP_LITE_TRANSPORT_PARAMETER_TYPE:
- dissect_udp_lite_transport_parameter(parameter_tvb, parameter_tree);
+ dissect_udp_lite_transport_parameter(parameter_tvb, pinfo, parameter_tree);
break;
case POOL_MEMBER_SELECTION_POLICY_PARAMETER_TYPE:
dissect_pool_member_selection_policy_parameter(parameter_tvb, parameter_tree);
@@ -474,13 +488,13 @@ dissect_parameter(tvbuff_t *parameter_tvb, proto_tree *asap_tree)
dissect_pool_handle_parameter(parameter_tvb, parameter_tree);
break;
case POOL_ELEMENT_PARAMETER_TYPE:
- dissect_pool_element_parameter(parameter_tvb, parameter_tree);
+ dissect_pool_element_parameter(parameter_tvb, pinfo, parameter_tree);
break;
case SERVER_INFORMATION_PARAMETER_TYPE:
- dissect_server_information_parameter(parameter_tvb, parameter_tree);
+ dissect_server_information_parameter(parameter_tvb, pinfo, parameter_tree);
break;
case OPERATION_ERROR_PARAMETER_TYPE:
- dissect_operation_error_parameter(parameter_tvb, parameter_tree);
+ dissect_operation_error_parameter(parameter_tvb, pinfo, parameter_tree);
break;
case COOKIE_PARAMETER_TYPE:
dissect_cookie_parameter(parameter_tvb, parameter_tree, parameter_item);
@@ -498,13 +512,15 @@ dissect_parameter(tvbuff_t *parameter_tvb, proto_tree *asap_tree)
dissect_unknown_parameter(parameter_tvb, parameter_tree, parameter_item);
break;
};
+ decrement_dissection_depth(pinfo);
if (padding_length > 0)
proto_tree_add_item(parameter_tree, hf_parameter_padding, parameter_tvb, PARAMETER_HEADER_OFFSET + length, padding_length, ENC_NA);
}
static void
-dissect_parameters(tvbuff_t *parameters_tvb, proto_tree *tree)
+// NOLINTNEXTLINE(misc-no-recursion)
+dissect_parameters(tvbuff_t *parameters_tvb, packet_info *pinfo, proto_tree *tree)
{
gint offset, length, total_length, remaining_length;
tvbuff_t *parameter_tvb;
@@ -517,7 +533,7 @@ dissect_parameters(tvbuff_t *parameters_tvb, proto_tree *tree)
total_length = MIN(total_length, remaining_length);
/* create a tvb for the parameter including the padding bytes */
parameter_tvb = tvb_new_subset_length(parameters_tvb, offset, total_length);
- dissect_parameter(parameter_tvb, tree);
+ dissect_parameter(parameter_tvb, pinfo, tree);
/* get rid of the handled parameter */
offset += total_length;
}
@@ -574,6 +590,7 @@ static const true_false_string reject_bit_value = {
};
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_asap_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *asap_tree)
{
asap_tap_rec_t *tap_rec;
@@ -584,7 +601,7 @@ dissect_asap_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *asap
type = tvb_get_guint8(message_tvb, MESSAGE_TYPE_OFFSET);
/* pinfo is NULL only if dissect_asap_message is called via dissect_error_cause */
- if (pinfo) {
+ if (!pinfo->flags.in_error_pkt) {
tap_rec = wmem_new0(pinfo->pool, asap_tap_rec_t);
tap_rec->type = type;
tap_rec->size = tvb_get_ntohs(message_tvb, MESSAGE_LENGTH_OFFSET);
@@ -611,19 +628,21 @@ dissect_asap_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *asap
} else {
parameters_tvb = tvb_new_subset_remaining(message_tvb, MESSAGE_VALUE_OFFSET);
}
- dissect_parameters(parameters_tvb, asap_tree);
+ dissect_parameters(parameters_tvb, pinfo, asap_tree);
}
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_asap(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_item *asap_item;
proto_tree *asap_tree;
/* pinfo is NULL only if dissect_asap is called from dissect_error_cause */
- if (pinfo)
+ if (!pinfo->flags.in_error_pkt) {
col_set_str(pinfo->cinfo, COL_PROTOCOL, "ASAP");
+ }
/* create the asap protocol tree */
asap_item = proto_tree_add_item(tree, proto_asap, message_tvb, 0, -1, ENC_NA);
diff --git a/epan/dissectors/packet-babel.c b/epan/dissectors/packet-babel.c
index 964070b3..f2453907 100644
--- a/epan/dissectors/packet-babel.c
+++ b/epan/dissectors/packet-babel.c
@@ -337,6 +337,7 @@ dissect_babel_subtlvs(tvbuff_t * tvb, guint8 type, guint16 beg,
/* The following function is used to read the packet body and
the packet trailer */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_babel_body(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
int offset, guint16 bodylen)
{
@@ -549,7 +550,9 @@ dissect_babel_body(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
subtree = proto_tree_add_subtree_format(tree, tvb, 4+bodylen, packet_len,
ett_packet_trailer, NULL,
"Packet Trailer (%u)", packet_len);
+ increment_dissection_depth(pinfo);
dissect_babel_body(tvb, pinfo, subtree, bodylen, packet_len);
+ decrement_dissection_depth(pinfo);
}
return i;
}
diff --git a/epan/dissectors/packet-bacnet.c b/epan/dissectors/packet-bacnet.c
index 9622113b..b9992482 100644
--- a/epan/dissectors/packet-bacnet.c
+++ b/epan/dissectors/packet-bacnet.c
@@ -477,6 +477,7 @@ bacnet_dissect_sec_wrapper(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_bacnet_npdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset)
{
proto_item *ti;
@@ -748,7 +749,10 @@ dissect_bacnet_npdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint of
tvb_set_reported_length(tvb, bacnet_len);
if (is_net_msg_flg) {
/* decode network layer message */
- return dissect_bacnet_npdu(tvb, pinfo, tree, offset);
+ increment_dissection_depth(pinfo);
+ int npdu_len = dissect_bacnet_npdu(tvb, pinfo, tree, offset);
+ decrement_dissection_depth(pinfo);
+ return npdu_len;
}
/* APDU - call the APDU dissector */
next_tvb = tvb_new_subset_remaining(tvb, offset);
diff --git a/epan/dissectors/packet-banana.c b/epan/dissectors/packet-banana.c
index 891b66a3..5a629c37 100644
--- a/epan/dissectors/packet-banana.c
+++ b/epan/dissectors/packet-banana.c
@@ -110,6 +110,7 @@ static const value_string pb_vals[] = {
/* Dissect the packets */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_banana_element(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset) {
proto_item *ti;
proto_tree *list_tree;
@@ -150,7 +151,9 @@ dissect_banana_element(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
list_tree = proto_item_add_subtree(ti, ett_list);
for (i = 0; i < val; i++) {
old_offset = offset;
+ increment_dissection_depth(pinfo);
offset += dissect_banana_element(tvb, pinfo, list_tree, offset);
+ decrement_dissection_depth(pinfo);
if (offset <= old_offset) {
return offset - start_offset;
}
diff --git a/epan/dissectors/packet-beep.c b/epan/dissectors/packet-beep.c
index 3e1b3fcc..56e4685e 100644
--- a/epan/dissectors/packet-beep.c
+++ b/epan/dissectors/packet-beep.c
@@ -437,6 +437,7 @@ set_mime_hdr_flags(int more, struct beep_request_val *request_val,
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_beep_tree(tvbuff_t *tvb, int offset, packet_info *pinfo,
proto_tree *tree, struct beep_request_val *request_val,
struct beep_proto_data *beep_frame_data)
@@ -574,9 +575,11 @@ dissect_beep_tree(tvbuff_t *tvb, int offset, packet_info *pinfo,
/* If anything else left, dissect it ... */
- if (tvb_reported_length_remaining(tvb, offset) > 0)
+ if (tvb_reported_length_remaining(tvb, offset) > 0) {
+ increment_dissection_depth(pinfo);
offset += dissect_beep_tree(tvb, offset, pinfo, tree, request_val, beep_frame_data);
-
+ decrement_dissection_depth(pinfo);
+ }
} else if (tvb_strneql(tvb, offset, "SEQ ", 4) == 0) {
if (tree) {
diff --git a/epan/dissectors/packet-bencode.c b/epan/dissectors/packet-bencode.c
index 1f893e4c..93c042c3 100644
--- a/epan/dissectors/packet-bencode.c
+++ b/epan/dissectors/packet-bencode.c
@@ -163,6 +163,7 @@ static int dissect_bencoding_int(tvbuff_t *tvb, packet_info *pinfo,
return -1;
}
+// NOLINTNEXTLINE(misc-no-recursion)
static int dissect_bencoding_rec(tvbuff_t *tvb, packet_info *pinfo,
int offset, int length, proto_tree *tree, int level, proto_item *treei, int treeadd)
{
@@ -207,8 +208,12 @@ static int dissect_bencoding_rec(tvbuff_t *tvb, packet_info *pinfo,
}
op2len = -1;
- if ((length - op1len) > 2)
+ if ((length - op1len) > 2) {
+ increment_dissection_depth(pinfo);
op2len = dissect_bencoding_rec(tvb, pinfo, offset + used + op1len, length - op1len, NULL, level + 1, NULL, 0);
+ decrement_dissection_depth(pinfo);
+ }
+
if (op2len < 0) {
proto_tree_add_expert(dtree, pinfo, &ei_bencode_dict_value, tvb, offset + used + op1len, -1);
return op2len;
@@ -218,7 +223,9 @@ static int dissect_bencoding_rec(tvbuff_t *tvb, packet_info *pinfo,
itree = proto_item_add_subtree(ti, ett_bencode_dict_entry);
dissect_bencoding_str(tvb, pinfo, offset + used, length, itree, ti, 1);
+ increment_dissection_depth(pinfo);
dissect_bencoding_rec(tvb, pinfo, offset + used + op1len, length - op1len, itree, level + 1, ti, 2);
+ decrement_dissection_depth(pinfo);
used += op1len + op2len;
length -= op1len + op2len;
@@ -234,6 +241,7 @@ static int dissect_bencoding_rec(tvbuff_t *tvb, packet_info *pinfo,
used = 1;
length--;
+ increment_dissection_depth(pinfo);
while (length >= 1) {
op = tvb_get_guint8(tvb, offset + used);
@@ -242,11 +250,16 @@ static int dissect_bencoding_rec(tvbuff_t *tvb, packet_info *pinfo,
}
oplen = dissect_bencoding_rec(tvb, pinfo, offset + used, length, itree, level + 1, ti, 0);
- if (oplen < 1) return oplen;
+
+ if (oplen < 1) {
+ decrement_dissection_depth(pinfo);
+ return oplen;
+ }
used += oplen;
length -= oplen;
}
+ decrement_dissection_depth(pinfo);
proto_tree_add_item(itree, hf_bencode_truncated_data, tvb, offset + used, -1, ENC_NA);
return -1;
diff --git a/epan/dissectors/packet-bfcp.c b/epan/dissectors/packet-bfcp.c
index 3f356edc..f5c7889c 100644
--- a/epan/dissectors/packet-bfcp.c
+++ b/epan/dissectors/packet-bfcp.c
@@ -281,6 +281,7 @@ show_setup_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_bfcp_attributes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, int bfcp_payload_length)
{
proto_item *ti, *item;
@@ -291,6 +292,7 @@ dissect_bfcp_attributes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
gint read_attr = 0;
guint8 first_byte, pad_len;
+ increment_dissection_depth(pinfo);
while ((tvb_reported_length_remaining(tvb, offset) >= 2) &&
((bfcp_payload_length - read_attr) >= 2))
{
@@ -499,6 +501,7 @@ dissect_bfcp_attributes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
}
read_attr = read_attr + length;
}
+ decrement_dissection_depth(pinfo);
return offset;
}
@@ -850,8 +853,7 @@ void proto_register_bfcp(void)
};
/* Register protocol name and description */
- proto_bfcp = proto_register_protocol("Binary Floor Control Protocol",
- "BFCP", "bfcp");
+ proto_bfcp = proto_register_protocol("Binary Floor Control Protocol", "BFCP", "bfcp");
bfcp_handle = register_dissector("bfcp", dissect_bfcp, proto_bfcp);
diff --git a/epan/dissectors/packet-bgp.c b/epan/dissectors/packet-bgp.c
index 75d9fc9a..85142598 100644
--- a/epan/dissectors/packet-bgp.c
+++ b/epan/dissectors/packet-bgp.c
@@ -5327,6 +5327,7 @@ decode_link_state_attribute_flex_algo_subtlv(proto_tree *tree, tvbuff_t *tvb, gi
* Decode a multiprotocol prefix
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
decode_link_state_attribute_tlv(proto_tree *tree, tvbuff_t *tvb, gint offset, packet_info *pinfo, guint8 protocol_id)
{
guint16 type;
@@ -5350,6 +5351,7 @@ decode_link_state_attribute_tlv(proto_tree *tree, tvbuff_t *tvb, gint offset, pa
type = tvb_get_ntohs(tvb, offset);
length = tvb_get_ntohs(tvb, offset + 2);
+ increment_dissection_depth(pinfo);
switch (type) {
/* NODE ATTRIBUTE TLVs */
@@ -6449,6 +6451,7 @@ decode_link_state_attribute_tlv(proto_tree *tree, tvbuff_t *tvb, gint offset, pa
"Unknown BGP-LS Attribute TLV Code (%u)!", type);
break;
}
+ decrement_dissection_depth(pinfo);
return length + 4;
}
@@ -9574,6 +9577,7 @@ dissect_bgp_update_pmsi_attr(packet_info *pinfo, proto_tree *parent_tree, tvbuff
*
*/
void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_bgp_path_attr(proto_tree *subtree, tvbuff_t *tvb, guint16 path_attr_len, guint tvb_off, packet_info *pinfo)
{
guint8 bgpa_flags; /* path attributes */
@@ -9631,6 +9635,7 @@ dissect_bgp_path_attr(proto_tree *subtree, tvbuff_t *tvb, guint16 path_attr_len,
o = tvb_off;
+ increment_dissection_depth(pinfo);
while (i < path_attr_len) {
proto_item *ti_pa, *ti_flags;
int off;
@@ -10862,6 +10867,7 @@ dissect_bgp_path_attr(proto_tree *subtree, tvbuff_t *tvb, guint16 path_attr_len,
i += alen + aoff;
}
+ decrement_dissection_depth(pinfo);
{
/* FF: postponed BGPTYPE_LINK_STATE_ATTR dissection */
link_state_data *data = load_link_state_data(pinfo);
@@ -14102,8 +14108,7 @@ proto_register_bgp(void)
{NULL, NULL, -1}
};
- proto_bgp = proto_register_protocol("Border Gateway Protocol",
- "BGP", "bgp");
+ proto_bgp = proto_register_protocol("Border Gateway Protocol", "BGP", "bgp");
proto_register_field_array(proto_bgp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
expert_bgp = expert_register_protocol(proto_bgp);
diff --git a/epan/dissectors/packet-bt-dht.c b/epan/dissectors/packet-bt-dht.c
index 4d442a76..8b7a545b 100644
--- a/epan/dissectors/packet-bt-dht.c
+++ b/epan/dissectors/packet-bt-dht.c
@@ -187,6 +187,7 @@ static int dissect_bencoded_dict(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
/* dissect a bencoded list from tvb, start at offset. it's like "lXXXe", "X" is any bencoded thing */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_bencoded_list(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const char *label )
{
proto_item *ti;
@@ -428,6 +429,7 @@ dissect_bt_dht_nodes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_bencoded_dict_entry(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset )
{
proto_item *ti;
@@ -556,6 +558,7 @@ dissect_bencoded_dict_entry(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/* dict = d...e */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_bencoded_dict(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const char *label )
{
proto_item *ti;
@@ -790,6 +793,7 @@ proto_reg_handoff_bt_dht(void)
{
heur_dissector_add("udp", dissect_bt_dht_heur, "BitTorrent DHT over UDP", "bittorrent_dht_udp", proto_bt_dht, HEURISTIC_ENABLE);
+ // If this is ever streamed (transported over TCP) we need to add recursion checks.
dissector_add_for_decode_as_with_preference("udp.port", bt_dht_handle);
}
diff --git a/epan/dissectors/packet-btbnep.c b/epan/dissectors/packet-btbnep.c
index 0ce39f97..533a765e 100644
--- a/epan/dissectors/packet-btbnep.c
+++ b/epan/dissectors/packet-btbnep.c
@@ -237,6 +237,7 @@ dissect_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_extension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
{
guint8 extension_flag;
@@ -262,7 +263,9 @@ dissect_extension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offse
offset += extension_length;
}
+ increment_dissection_depth(pinfo);
if (extension_flag) offset = dissect_extension(tvb, pinfo, tree, offset);
+ decrement_dissection_depth(pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-btsdp.c b/epan/dissectors/packet-btsdp.c
index ef1141e8..c7bc939a 100644
--- a/epan/dissectors/packet-btsdp.c
+++ b/epan/dissectors/packet-btsdp.c
@@ -2113,6 +2113,7 @@ dissect_protocol_descriptor_list(proto_tree *next_tree, tvbuff_t *tvb,
static gint
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_sdp_type(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb,
gint offset, gint attribute, bluetooth_uuid_t service_uuid,
gint service_did_vendor_id, gint service_did_vendor_id_source,
@@ -3532,6 +3533,7 @@ dissect_sdp_type(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb,
wmem_strbuf_append(info_buf, "{ ");
+ increment_dissection_depth(pinfo);
while (bytes_to_go > 0) {
if (!first) {
wmem_strbuf_append(info_buf, ", ");
@@ -3550,6 +3552,7 @@ dissect_sdp_type(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb,
next_offset += size;
bytes_to_go -= size;
}
+ decrement_dissection_depth(pinfo);
wmem_strbuf_append(info_buf, "} ");
break;
diff --git a/epan/dissectors/packet-bvlc.c b/epan/dissectors/packet-bvlc.c
index 58acc3a9..3fe10a36 100644
--- a/epan/dissectors/packet-bvlc.c
+++ b/epan/dissectors/packet-bvlc.c
@@ -503,6 +503,7 @@ static int * const bscvlc_header_flags[] = {
};
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_ipv4_bvlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -664,7 +665,9 @@ dissect_ipv4_bvlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
call_data_dissector(tvb, pinfo, tree);
return tvb_captured_length(tvb);
}
+ increment_dissection_depth(pinfo);
dissect_ipv4_bvlc(tvb, pinfo, tree, data);
+ decrement_dissection_depth(pinfo);
break;
/* We check this if we get a FDT-packet somewhere */
case 0x04: /* Forwarded-NPDU
@@ -704,6 +707,7 @@ dissect_ipv4_bvlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_ipv6_bvlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
proto_item *ti;
@@ -851,7 +855,9 @@ dissect_ipv6_bvlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
call_data_dissector(tvb, pinfo, tree);
return tvb_captured_length(tvb);
}
+ increment_dissection_depth(pinfo);
dissect_ipv6_bvlc(tvb, pinfo, tree, data);
+ decrement_dissection_depth(pinfo);
break;
case 0x02: /* Original-Broadcast-NPDU */
case 0x0c: /* Distribute-Broadcast-To-Network */
diff --git a/epan/dissectors/packet-cip.c b/epan/dissectors/packet-cip.c
index 13cb87a2..5f22dd52 100644
--- a/epan/dissectors/packet-cip.c
+++ b/epan/dissectors/packet-cip.c
@@ -6643,6 +6643,7 @@ dissect_cip_set_attribute_list_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree
return 2 + (offset - start_offset);
}
+// NOLINTNEXTLINE(misc-no-recursion)
int dissect_cip_multiple_service_packet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item * item, int offset, gboolean request)
{
proto_tree *mult_serv_tree, *offset_tree;
@@ -6773,6 +6774,7 @@ int dissect_cip_multiple_service_packet(tvbuff_t *tvb, packet_info *pinfo, proto
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_cip_generic_service_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, cip_simple_request_info_t* req_data)
{
proto_item *cmd_data_item;
@@ -7149,6 +7151,7 @@ gboolean should_dissect_cip_response(tvbuff_t *tvb, int offset, guint8 gen_statu
}
int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_cip_generic_service_rsp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
proto_item *cmd_data_item;
@@ -9230,6 +9233,7 @@ dissect_class_cco_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
*
************************************************/
+// NOLINTNEXTLINE(misc-no-recursion)
void dissect_cip_data( proto_tree *item_tree, tvbuff_t *tvb, int offset, packet_info *pinfo, cip_req_info_t* preq_info, proto_item* msp_item, gboolean is_msp_item )
{
proto_item *ti;
@@ -9266,6 +9270,7 @@ void dissect_cip_data( proto_tree *item_tree, tvbuff_t *tvb, int offset, packet_
proto_tree_add_item( rrsc_tree, hf_cip_reqrsp, tvb, offset, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item(rrsc_tree, hf_cip_service_code, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ increment_dissection_depth(pinfo);
if( service & CIP_SC_RESPONSE_MASK )
{
/* Response message */
@@ -9432,6 +9437,8 @@ void dissect_cip_data( proto_tree *item_tree, tvbuff_t *tvb, int offset, packet_
}
} /* End of if-else( request ) */
+ decrement_dissection_depth(pinfo);
+
p_remove_proto_data(wmem_file_scope(), pinfo, proto_cip, 0);
p_add_proto_data(wmem_file_scope(), pinfo, proto_cip, 0, p_save_proto_data);
diff --git a/epan/dissectors/packet-cmip.c b/epan/dissectors/packet-cmip.c
index b3aaa2b9..b7ccee3c 100644
--- a/epan/dissectors/packet-cmip.c
+++ b/epan/dissectors/packet-cmip.c
@@ -602,7 +602,6 @@ static const char *object_identifier_id;
static int dissect_cmip_CMISFilter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.
static int
@@ -1012,16 +1011,15 @@ static const ber_choice_t CMISFilter_choice[] = {
static int
dissect_cmip_CMISFilter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 3;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // CMISFilter → CMISFilter/and → CMISFilter
+ actx->pinfo->dissection_depth += 2;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
CMISFilter_choice, hf_index, ett_cmip_CMISFilter,
NULL);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 2;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-cmp.c b/epan/dissectors/packet-cmp.c
index 30c422e2..64bc3100 100644
--- a/epan/dissectors/packet-cmp.c
+++ b/epan/dissectors/packet-cmp.c
@@ -277,7 +277,6 @@ static gint ett_cmp_PollRepContent_item = -1;
/*int dissect_cmp_PKIMessage(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);*/
-#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.
static const value_string cmp_CMPCertificate_vals[] = {
{ 0, "x509v3PKCert" },
@@ -1088,15 +1087,14 @@ static const ber_sequence_t PKIMessage_sequence[] = {
int
dissect_cmp_PKIMessage(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 5;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // PKIMessage → PKIBody → NestedMessageContent → PKIMessages → PKIMessage
+ actx->pinfo->dissection_depth += 4;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
PKIMessage_sequence, hf_index, ett_cmp_PKIMessage);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 4;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-corosync-totemsrp.c b/epan/dissectors/packet-corosync-totemsrp.c
index 6f0feaf8..fce101da 100644
--- a/epan/dissectors/packet-corosync-totemsrp.c
+++ b/epan/dissectors/packet-corosync-totemsrp.c
@@ -473,6 +473,7 @@ dissect_corosync_totemsrp_srp_addr(tvbuff_t *tvb,
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_corosync_totemsrp_mcast(tvbuff_t *tvb,
packet_info *pinfo, proto_tree *tree,
guint length, int offset,
@@ -797,6 +798,7 @@ dissect_corosync_totemsrp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_
#define COROSYNC_TOTEMSRP_TEST_BIG_ENDIAN 0xFF22
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_corosync_totemsrp0(tvbuff_t *tvb,
packet_info *pinfo, proto_tree *tree,
gboolean encapsulated)
@@ -868,6 +870,7 @@ dissect_corosync_totemsrp0(tvbuff_t *tvb,
info.nodeid = corosync_totemsrp_get_guint32(tvb, offset, encoding);
offset += 4;
+ increment_dissection_depth(pinfo);
switch (message_header__type) {
case COROSYNC_TOTEMSRP_MESSAGE_TYPE_ORF_TOKEN:
dissect_corosync_totemsrp_orf_token(tvb, pinfo, corosync_tree, length, offset, encoding);
@@ -896,6 +899,7 @@ dissect_corosync_totemsrp0(tvbuff_t *tvb,
default:
break;
}
+ decrement_dissection_depth(pinfo);
return length;
}
diff --git a/epan/dissectors/packet-cose.c b/epan/dissectors/packet-cose.c
index 5f5a7e6e..2637c1fa 100644
--- a/epan/dissectors/packet-cose.c
+++ b/epan/dissectors/packet-cose.c
@@ -558,6 +558,8 @@ static void dissect_ciphertext(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
}
}
static void dissect_cose_recipient(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint *offset);
+
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_cose_recipient_list(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint *offset) {
wscbor_chunk_t *chunk_list = wscbor_chunk_read(pinfo->pool, tvb, offset);
wscbor_require_array(chunk_list);
@@ -571,6 +573,8 @@ static void dissect_cose_recipient_list(tvbuff_t *tvb, packet_info *pinfo, proto
}
proto_item_set_len(item_list, *offset - chunk_list->start);
}
+
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_cose_recipient(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint *offset) {
wscbor_chunk_t *chunk_recip = wscbor_chunk_read(pinfo->pool, tvb, offset);
wscbor_require_array_size(chunk_recip, 3, 4);
@@ -581,7 +585,9 @@ static void dissect_cose_recipient(tvbuff_t *tvb, packet_info *pinfo, proto_tree
dissect_headers(tvb, pinfo, tree_recip, offset);
dissect_ciphertext(tvb, pinfo, tree_recip, offset);
if (chunk_recip->head_value > 3) {
+ increment_dissection_depth(pinfo);
dissect_cose_recipient_list(tvb, pinfo, tree_recip, offset);
+ decrement_dissection_depth(pinfo);
}
}
proto_item_set_len(item_recip, *offset - chunk_recip->start);
diff --git a/epan/dissectors/packet-cql.c b/epan/dissectors/packet-cql.c
index 3f000a7e..32b03ec2 100644
--- a/epan/dissectors/packet-cql.c
+++ b/epan/dissectors/packet-cql.c
@@ -572,7 +572,8 @@ typedef enum {
} cql_compression_level;
-static int parse_option(proto_tree* metadata_subtree, tvbuff_t* tvb, gint offset)
+// NOLINTNEXTLINE(misc-no-recursion)
+static int parse_option(proto_tree* metadata_subtree, packet_info *pinfo, tvbuff_t* tvb, gint offset)
{
guint32 data_type = 0;
guint32 string_length = 0;
@@ -582,16 +583,17 @@ static int parse_option(proto_tree* metadata_subtree, tvbuff_t* tvb, gint offset
proto_tree_add_item_ret_uint(metadata_subtree, hf_cql_result_rows_data_type, tvb, offset, 2, ENC_BIG_ENDIAN, &data_type);
offset += 2;
+ increment_dissection_depth(pinfo);
switch (data_type) {
case CQL_RESULT_ROW_TYPE_LIST:
- offset = parse_option(metadata_subtree, tvb, offset);
+ offset = parse_option(metadata_subtree, pinfo, tvb, offset);
break;
case CQL_RESULT_ROW_TYPE_MAP:
- offset = parse_option(metadata_subtree, tvb, offset);
- offset = parse_option(metadata_subtree, tvb, offset);
+ offset = parse_option(metadata_subtree, pinfo, tvb, offset);
+ offset = parse_option(metadata_subtree, pinfo, tvb, offset);
break;
case CQL_RESULT_ROW_TYPE_SET:
- offset = parse_option(metadata_subtree, tvb, offset);
+ offset = parse_option(metadata_subtree, pinfo, tvb, offset);
break;
case CQL_RESULT_ROW_TYPE_UDT:
/* keyspace */
@@ -618,19 +620,20 @@ static int parse_option(proto_tree* metadata_subtree, tvbuff_t* tvb, gint offset
offset += string_length;
/* UDT field option */
- offset = parse_option(metadata_subtree, tvb, offset);
+ offset = parse_option(metadata_subtree, pinfo, tvb, offset);
}
break;
case CQL_RESULT_ROW_TYPE_TUPLE:
proto_tree_add_item_ret_uint(metadata_subtree, hf_cql_result_rows_tuple_size, tvb, offset, 2, ENC_BIG_ENDIAN, &tuple_size);
offset += 2;
for (i = 0; i < tuple_size; i++) {
- offset = parse_option(metadata_subtree, tvb, offset);
+ offset = parse_option(metadata_subtree, pinfo, tvb, offset);
}
break;
default:
break;
}
+ decrement_dissection_depth(pinfo);
return offset;
}
@@ -684,6 +687,7 @@ static void add_cql_uuid(proto_tree* tree, int hf_uuid, tvbuff_t* tvb, gint offs
}
+// NOLINTNEXTLINE(misc-no-recursion)
static int parse_value(proto_tree* columns_subtree, packet_info *pinfo, tvbuff_t* tvb, gint* offset_metadata, gint offset)
{
guint32 data_type = 0;
@@ -722,6 +726,7 @@ static int parse_value(proto_tree* columns_subtree, packet_info *pinfo, tvbuff_t
return offset;
}
+ increment_dissection_depth(pinfo);
switch (data_type) {
case CQL_RESULT_ROW_TYPE_CUSTOM:
proto_tree_add_item(columns_subtree, hf_cql_custom, tvb, offset, bytes_length, ENC_UTF_8 | ENC_NA);
@@ -819,6 +824,7 @@ static int parse_value(proto_tree* columns_subtree, packet_info *pinfo, tvbuff_t
item = proto_tree_add_item_ret_int(columns_subtree, hf_cql_string_result_rows_list_size, tvb, offset, 4, ENC_BIG_ENDIAN, &list_size);
if (list_size < 0) {
expert_add_info(pinfo, item, &ei_cql_unexpected_negative_value);
+ decrement_dissection_depth(pinfo);
return tvb_reported_length(tvb);
}
offset += 4;
@@ -835,6 +841,7 @@ static int parse_value(proto_tree* columns_subtree, packet_info *pinfo, tvbuff_t
proto_item_append_text(map_subtree, " with %" PRId32 " element(s)", map_size);
if (map_size < 0) {
expert_add_info(pinfo, item, &ei_cql_unexpected_negative_value);
+ decrement_dissection_depth(pinfo);
return tvb_reported_length(tvb);
} else if (map_size == 0) {
*offset_metadata += 4; /* skip the type fields of *both* key and value in the map in the metadata */
@@ -853,6 +860,7 @@ static int parse_value(proto_tree* columns_subtree, packet_info *pinfo, tvbuff_t
offset += 4;
if (set_size < 0) {
expert_add_info(pinfo, item, &ei_cql_unexpected_negative_value);
+ decrement_dissection_depth(pinfo);
return tvb_reported_length(tvb);
} else if (set_size == 0) {
*offset_metadata += 2; /* skip the type field of the elements in the set in the metadata */
@@ -910,6 +918,7 @@ static int parse_value(proto_tree* columns_subtree, packet_info *pinfo, tvbuff_t
default:
break;
}
+ decrement_dissection_depth(pinfo);
return offset;
}
@@ -1474,7 +1483,7 @@ dissect_cql_tcp_pdu(tvbuff_t* raw_tvb, packet_info* pinfo, proto_tree* tree, voi
/* type "option" */
- offset = parse_option(col_spec_subtree, tvb, offset);
+ offset = parse_option(col_spec_subtree, pinfo, tvb, offset);
}
}
diff --git a/epan/dissectors/packet-csn1.c b/epan/dissectors/packet-csn1.c
index 15b4a718..815e7708 100644
--- a/epan/dissectors/packet-csn1.c
+++ b/epan/dissectors/packet-csn1.c
@@ -150,6 +150,7 @@ existNextElement(tvbuff_t *tvb, gint bit_offset, guint8 Tag)
gint16
+// NOLINTNEXTLINE(misc-no-recursion)
csnStreamDissector(proto_tree *tree, csnStream_t* ar, const CSN_DESCR* pDescr, tvbuff_t *tvb, void* data, int ett_csn1)
{
gint remaining_bits_len = ar->remaining_bits_len;
@@ -475,7 +476,9 @@ csnStreamDissector(proto_tree *tree, csnStream_t* ar, const CSN_DESCR* pDescr, t
test_tree = proto_tree_add_subtree_format(tree, tvb, bit_offset>>3, 1, ett_csn1, &ti, "%s[%d]",pDescr->sz, i++);
csnStreamInit(&arT, bit_offset, remaining_bits_len, ar->pinfo);
+ increment_dissection_depth(ar->pinfo);
Status = csnStreamDissector(test_tree, &arT, (const CSN_DESCR*)pDescr->descr.ptr, tvb, pui8, ett_csn1);
+ decrement_dissection_depth(ar->pinfo);
if (Status >= 0)
{
pui8 += nSize;
@@ -539,7 +542,9 @@ csnStreamDissector(proto_tree *tree, csnStream_t* ar, const CSN_DESCR* pDescr, t
} else {
test_tree = proto_tree_add_subtree_format(tree, tvb, bit_offset>>3, 1, ett_csn1, &ti, "%s", pDescr->sz);
csnStreamInit(&arT, bit_offset, remaining_bits_len, ar->pinfo);
+ increment_dissection_depth(ar->pinfo);
Status = csnStreamDissector(test_tree, &arT, (const CSN_DESCR*)pDescr->descr.ptr, tvb, pvDATA(data, pDescr->offset), ett_csn1);
+ decrement_dissection_depth(ar->pinfo);
if (Status >= 0)
{
proto_item_set_len(ti,((arT.bit_offset-1)>>3) - (bit_offset>>3)+1);
@@ -604,7 +609,9 @@ csnStreamDissector(proto_tree *tree, csnStream_t* ar, const CSN_DESCR* pDescr, t
}
csnStreamInit(&arT, bit_offset, remaining_bits_len, ar->pinfo);
+ increment_dissection_depth(ar->pinfo);
Status = csnStreamDissector(test_tree, &arT, (const CSN_DESCR*)descr, tvb, data, ett_csn1);
+ decrement_dissection_depth(ar->pinfo);
if (Status >= 0)
{
@@ -960,7 +967,9 @@ csnStreamDissector(proto_tree *tree, csnStream_t* ar, const CSN_DESCR* pDescr, t
test_tree = proto_tree_add_subtree_format(tree, tvb, bit_offset>>3, 1, ett_csn1, &ti, "%s[%d]",pDescr->sz, i++);
csnStreamInit(&arT, bit_offset, remaining_bits_len, ar->pinfo);
+ increment_dissection_depth(ar->pinfo);
Status = csnStreamDissector(test_tree, &arT, (const CSN_DESCR *)pDescr->descr.ptr, tvb, pui8, ett_csn1);
+ decrement_dissection_depth(ar->pinfo);
if (Status >= 0)
{
pui8 += nSize;
@@ -1013,7 +1022,9 @@ csnStreamDissector(proto_tree *tree, csnStream_t* ar, const CSN_DESCR* pDescr, t
} else {
test_tree = proto_tree_add_subtree(tree, tvb, bit_offset>>3, 1, ett_csn1, &ti, pDescr->sz);
csnStreamInit(&arT, bit_offset, remaining_bits_len, ar->pinfo);
+ increment_dissection_depth(ar->pinfo);
Status = csnStreamDissector(test_tree, &arT, (const CSN_DESCR *)pDescr->descr.ptr, tvb, pvDATA(data, pDescr->offset), ett_csn1);
+ decrement_dissection_depth(ar->pinfo);
if (Status >= 0)
{
proto_item_set_len(ti,((arT.bit_offset-1)>>3) - (bit_offset>>3)+1);
@@ -1405,7 +1416,9 @@ csnStreamDissector(proto_tree *tree, csnStream_t* ar, const CSN_DESCR* pDescr, t
test_tree = proto_tree_add_subtree(tree, tvb, bit_offset>>3, 1, ett_csn1, &ti, pDescr->sz);
csnStreamInit(&arT, bit_offset, remaining_bits_len, ar->pinfo);
+ increment_dissection_depth(ar->pinfo);
Status = csnStreamDissector(test_tree, &arT, (const CSN_DESCR *)pDescr->descr.ptr, tvb, pvDATA(data, pDescr->offset), ett_csn1);
+ decrement_dissection_depth(ar->pinfo);
if (Status >= 0)
{ /* successful completion */
@@ -1474,7 +1487,9 @@ csnStreamDissector(proto_tree *tree, csnStream_t* ar, const CSN_DESCR* pDescr, t
test_tree = proto_tree_add_subtree_format(tree, tvb, bit_offset>>3, 1, ett_csn1, &ti, "%s[%d]", pDescr->sz, ElementCount-1);
csnStreamInit(&arT, bit_offset, remaining_bits_len, ar->pinfo);
+ increment_dissection_depth(ar->pinfo);
Status = csnStreamDissector(test_tree, &arT, (const CSN_DESCR *)pDescr->descr.ptr, tvb, pvDATA(data, pDescr->offset), ett_csn1);
+ decrement_dissection_depth(ar->pinfo);
if (Status >= 0)
{ /* successful completion */
diff --git a/epan/dissectors/packet-dap.c b/epan/dissectors/packet-dap.c
index bb5c9d5d..8a823140 100644
--- a/epan/dissectors/packet-dap.c
+++ b/epan/dissectors/packet-dap.c
@@ -701,7 +701,6 @@ static int dissect_dap_ListResultData(bool implicit_tag _U_, tvbuff_t *tvb _U_,
static int dissect_dap_SearchResultData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.
const value_string dap_FamilyGrouping_vals[] = {
{ 1, "entryOnly" },
@@ -1266,15 +1265,14 @@ static const ber_sequence_t FamilyEntries_sequence[] = {
static int
dissect_dap_FamilyEntries(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 5;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // FamilyEntries → FamilyEntries/familyEntries → FamilyEntry → FamilyEntry/family-info → FamilyEntries
+ actx->pinfo->dissection_depth += 4;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
FamilyEntries_sequence, hf_index, ett_dap_FamilyEntries);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 4;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -1470,16 +1468,15 @@ static const ber_choice_t Filter_choice[] = {
int
dissect_dap_Filter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 3;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // Filter → SetOfFilter → Filter
+ actx->pinfo->dissection_depth += 2;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
Filter_choice, hf_index, ett_dap_Filter,
NULL);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 2;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -2932,16 +2929,15 @@ static const ber_choice_t ListResultData_choice[] = {
static int
dissect_dap_ListResultData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 4;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // ListResultData → ListResultData/uncorrelatedListInfo → ListResult → ListResultData
+ actx->pinfo->dissection_depth += 3;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
ListResultData_choice, hf_index, ett_dap_ListResultData,
NULL);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 3;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -3323,16 +3319,15 @@ static const ber_choice_t SearchResultData_choice[] = {
static int
dissect_dap_SearchResultData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 4;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // SearchResultData → SearchResultData/uncorrelatedSearchInfo → SearchResult → SearchResultData
+ actx->pinfo->dissection_depth += 3;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
SearchResultData_choice, hf_index, ett_dap_SearchResultData,
NULL);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 3;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-dccp.c b/epan/dissectors/packet-dccp.c
index 3481698c..e03154e5 100644
--- a/epan/dissectors/packet-dccp.c
+++ b/epan/dissectors/packet-dccp.c
@@ -755,6 +755,7 @@ dissect_feature_options(proto_tree *dccp_options_tree, tvbuff_t *tvb,
* This function dissects DCCP options
*/
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_options(tvbuff_t *tvb, packet_info *pinfo,
proto_tree *dccp_options_tree, proto_tree *tree _U_,
e_dccphdr *dccph _U_,
@@ -890,6 +891,7 @@ dissect_options(tvbuff_t *tvb, packet_info *pinfo,
mp_option_sub_item = proto_tree_add_item(option_tree, hf_mpdccp_confirm, tvb, offset, 1, ENC_BIG_ENDIAN);
mp_option_sub_tree = proto_item_add_subtree(mp_option_sub_item, ett_dccp_options_item);
offset += 1;
+ // We recurse here, but we'll run out of packet before we run out of stack.
dissect_options(tvb, pinfo, mp_option_sub_tree, tree, dccph, offset, offset + option_len);
break;
case 1:
@@ -1943,8 +1945,7 @@ proto_register_dccp(void)
expert_module_t* expert_dccp;
proto_dccp =
- proto_register_protocol("Datagram Congestion Control Protocol", "DCCP",
- "dccp");
+ proto_register_protocol("Datagram Congestion Control Protocol", "DCCP", "dccp");
dccp_handle = register_dissector("dccp", dissect_dccp, proto_dccp);
proto_register_field_array(proto_dccp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
diff --git a/epan/dissectors/packet-dcm.c b/epan/dissectors/packet-dcm.c
index fab18c61..f6e74084 100644
--- a/epan/dissectors/packet-dcm.c
+++ b/epan/dissectors/packet-dcm.c
@@ -664,7 +664,7 @@ typedef struct dcm_status {
const gchar *description;
} dcm_status_t;
-static dcm_status_t dcm_status_data[] = {
+static dcm_status_t const dcm_status_data[] = {
/* From PS 3.7 */
@@ -1010,11 +1010,11 @@ static const gchar *
dcm_rsp2str(guint16 status_value)
{
- dcm_status_t *status = NULL;
+ dcm_status_t const *status = NULL;
const gchar *s;
/* Use specific text first */
- status = (dcm_status_t*) wmem_map_lookup(dcm_status_table, GUINT_TO_POINTER((guint32)status_value));
+ status = (dcm_status_t const *)wmem_map_lookup(dcm_status_table, GUINT_TO_POINTER((guint32)status_value));
if (status) {
s = status->description;
@@ -1657,7 +1657,7 @@ dissect_dcm_assoc_item(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guin
proto_tree *assoc_item_ptree; /* Tree for item details */
proto_item *assoc_item_pitem;
- dcm_uid_t *uid = NULL;
+ dcm_uid_t const *uid = NULL;
guint32 item_number = 0;
@@ -1681,7 +1681,7 @@ dissect_dcm_assoc_item(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guin
case DCM_ITEM_VALUE_TYPE_UID:
*item_value = (gchar *)tvb_get_string_enc(pinfo->pool, tvb, offset+4, item_len, ENC_ASCII);
- uid = (dcm_uid_t *)wmem_map_lookup(dcm_uid_table, (gpointer) *item_value);
+ uid = (dcm_uid_t const *)wmem_map_lookup(dcm_uid_table, (gpointer) *item_value);
if (uid) {
*item_description = uid->name;
buf_desc = wmem_strdup_printf(pinfo->pool, "%s (%s)", *item_description, *item_value);
@@ -1733,7 +1733,7 @@ dissect_dcm_assoc_sopclass_extneg(tvbuff_t *tvb, packet_info *pinfo, proto_tree
gint32 cnt = 0;
gchar *buf_desc = NULL; /* Used for item text */
- dcm_uid_t *sopclassuid=NULL;
+ dcm_uid_t const *sopclassuid=NULL;
gchar *sopclassuid_str = NULL;
item_len = tvb_get_ntohs(tvb, offset+2);
@@ -1748,7 +1748,7 @@ dissect_dcm_assoc_sopclass_extneg(tvbuff_t *tvb, packet_info *pinfo, proto_tree
proto_tree_add_item(assoc_item_extneg_tree, hf_dcm_info_extneg_sopclassuid_len, tvb, offset+4, 2, ENC_BIG_ENDIAN);
sopclassuid_str = (gchar *)tvb_get_string_enc(pinfo->pool, tvb, offset+6, sop_class_uid_len, ENC_ASCII);
- sopclassuid = (dcm_uid_t *)wmem_map_lookup(dcm_uid_table, (gpointer) sopclassuid_str);
+ sopclassuid = (dcm_uid_t const *)wmem_map_lookup(dcm_uid_table, (gpointer) sopclassuid_str);
if (sopclassuid) {
buf_desc = wmem_strdup_printf(pinfo->pool, "%s (%s)", sopclassuid->name, sopclassuid->value);
@@ -1907,7 +1907,7 @@ dissect_dcm_assoc_role_selection(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
guint8 scp_role, scu_role;
gchar *buf_desc; /* Used for item text */
- dcm_uid_t *sopclassuid;
+ dcm_uid_t const *sopclassuid;
gchar *sopclassuid_str;
item_len = tvb_get_ntohs(tvb, offset+2);
@@ -1922,7 +1922,7 @@ dissect_dcm_assoc_role_selection(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
proto_tree_add_item(assoc_item_rolesel_tree, hf_dcm_info_rolesel_sopclassuid_len, tvb, offset+4, 2, ENC_BIG_ENDIAN);
sopclassuid_str = (gchar *)tvb_get_string_enc(pinfo->pool, tvb, offset+6, sop_class_uid_len, ENC_ASCII);
- sopclassuid = (dcm_uid_t *)wmem_map_lookup(dcm_uid_table, (gpointer) sopclassuid_str);
+ sopclassuid = (dcm_uid_t const *)wmem_map_lookup(dcm_uid_table, (gpointer) sopclassuid_str);
scu_role = tvb_get_guint8(tvb, offset+6+sop_class_uid_len);
scp_role = tvb_get_guint8(tvb, offset+7+sop_class_uid_len);
@@ -2574,7 +2574,7 @@ dissect_dcm_tag_value(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, dcm_s
*/
gchar *vals;
- dcm_uid_t *uid = NULL;
+ dcm_uid_t const *uid = NULL;
guint8 val8;
val8 = tvb_get_guint8(tvb, offset + vl_max - 1);
@@ -2594,7 +2594,7 @@ dissect_dcm_tag_value(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, dcm_s
if ((strncmp(vr, "UI", 2) == 0)) {
/* This is a UID. Attempt a lookup. Will only return something for classes of course */
- uid = (dcm_uid_t *)wmem_map_lookup(dcm_uid_table, (gpointer) vals);
+ uid = (dcm_uid_t const *)wmem_map_lookup(dcm_uid_table, (gpointer) vals);
if (uid) {
*tag_value = wmem_strdup_printf(pinfo->pool, "%s (%s)", vals, uid->name);
}
@@ -2828,19 +2828,19 @@ dcm_tag_is_open(dcm_state_pdv_t *pdv, guint32 startpos, guint32 offset, guint32
}
}
-static dcm_tag_t*
+static dcm_tag_t const *
dcm_tag_lookup(guint16 grp, guint16 elm)
{
- static dcm_tag_t *tag_def = NULL;
+ static dcm_tag_t const *tag_def = NULL;
- static dcm_tag_t tag_unknown = { 0x00000000, "(unknown)", "UN", "1", 0, 0};
- static dcm_tag_t tag_private = { 0x00000000, "Private Tag", "UN", "1", 0, 0 };
- static dcm_tag_t tag_private_grp_len = { 0x00000000, "Private Tag Group Length", "UL", "1", 0, 0 };
- static dcm_tag_t tag_grp_length = { 0x00000000, "Group Length", "UL", "1", 0, 0 };
+ static dcm_tag_t const tag_unknown = { 0x00000000, "(unknown)", "UN", "1", 0, 0};
+ static dcm_tag_t const tag_private = { 0x00000000, "Private Tag", "UN", "1", 0, 0 };
+ static dcm_tag_t const tag_private_grp_len = { 0x00000000, "Private Tag Group Length", "UL", "1", 0, 0 };
+ static dcm_tag_t const tag_grp_length = { 0x00000000, "Group Length", "UL", "1", 0, 0 };
/* Try a direct hit first before doing a masked search */
- tag_def = (dcm_tag_t *)wmem_map_lookup(dcm_tag_table, GUINT_TO_POINTER(((guint32)grp << 16) | elm));
+ tag_def = (dcm_tag_t const *)wmem_map_lookup(dcm_tag_table, GUINT_TO_POINTER(((guint32)grp << 16) | elm));
if (tag_def == NULL) {
@@ -2858,23 +2858,23 @@ dcm_tag_lookup(guint16 grp, guint16 elm)
/* There are a few tags that require a mask to be found */
else if (((grp & 0xFF00) == 0x5000) || ((grp & 0xFF00) == 0x6000) || ((grp & 0xFF00) == 0x7F00)) {
/* Do a special for groups 0x50xx, 0x60xx and 0x7Fxx */
- tag_def = (dcm_tag_t *)wmem_map_lookup(dcm_tag_table, GUINT_TO_POINTER((((guint32)grp & 0xFF00) << 16) | elm));
+ tag_def = (dcm_tag_t const *)wmem_map_lookup(dcm_tag_table, GUINT_TO_POINTER((((guint32)grp & 0xFF00) << 16) | elm));
}
else if ((grp == 0x0020) && ((elm & 0xFF00) == 0x3100)) {
- tag_def = (dcm_tag_t *)wmem_map_lookup(dcm_tag_table, GUINT_TO_POINTER(((guint32)grp << 16) | (elm & 0xFF00)));
+ tag_def = (dcm_tag_t const *)wmem_map_lookup(dcm_tag_table, GUINT_TO_POINTER(((guint32)grp << 16) | (elm & 0xFF00)));
}
else if ((grp == 0x0028) && ((elm & 0xFF00) == 0x0400)) {
/* This map was done to 0x041x */
- tag_def = (dcm_tag_t *)wmem_map_lookup(dcm_tag_table, GUINT_TO_POINTER(((guint32)grp << 16) | (elm & 0xFF0F) | 0x0010));
+ tag_def = (dcm_tag_t const *)wmem_map_lookup(dcm_tag_table, GUINT_TO_POINTER(((guint32)grp << 16) | (elm & 0xFF0F) | 0x0010));
}
else if ((grp == 0x0028) && ((elm & 0xFF00) == 0x0800)) {
- tag_def = (dcm_tag_t *)wmem_map_lookup(dcm_tag_table, GUINT_TO_POINTER(((guint32)grp << 16) | (elm & 0xFF0F)));
+ tag_def = (dcm_tag_t const *)wmem_map_lookup(dcm_tag_table, GUINT_TO_POINTER(((guint32)grp << 16) | (elm & 0xFF0F)));
}
else if (grp == 0x1000) {
- tag_def = (dcm_tag_t *)wmem_map_lookup(dcm_tag_table, GUINT_TO_POINTER(((guint32)grp << 16) | (elm & 0x000F)));
+ tag_def = (dcm_tag_t const *)wmem_map_lookup(dcm_tag_table, GUINT_TO_POINTER(((guint32)grp << 16) | (elm & 0x000F)));
}
else if (grp == 0x1010) {
- tag_def = (dcm_tag_t *)wmem_map_lookup(dcm_tag_table, GUINT_TO_POINTER(((guint32)grp << 16) | (elm & 0x0000)));
+ tag_def = (dcm_tag_t const *)wmem_map_lookup(dcm_tag_table, GUINT_TO_POINTER(((guint32)grp << 16) | (elm & 0x0000)));
}
if (tag_def == NULL) {
@@ -2920,6 +2920,7 @@ Decode one tag. If it is a sequence or item start create a subtree. Returns new
http://dicom.nema.org/medical/dicom/current/output/chtml/part05/chapter_7.html
*/
static guint32
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_dcm_tag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
dcm_state_pdv_t *pdv, guint32 offset, guint32 endpos,
gboolean is_first_tag, const gchar **tag_description,
@@ -2927,11 +2928,11 @@ dissect_dcm_tag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
{
- proto_tree *tag_ptree = NULL; /* Tree for decoded tag details */
- proto_tree *seq_ptree = NULL; /* Possible subtree for sequences and items */
+ proto_tree *tag_ptree = NULL; /* Tree for decoded tag details */
+ proto_tree *seq_ptree = NULL; /* Possible subtree for sequences and items */
- proto_item *tag_pitem = NULL;
- dcm_tag_t *tag_def = NULL;
+ proto_item *tag_pitem = NULL;
+ dcm_tag_t const *tag_def = NULL;
gint ett;
@@ -3220,6 +3221,7 @@ dissect_dcm_tag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (vl == 0xFFFFFFFF) {
/* Undefined length */
+ increment_dissection_depth(pinfo);
while ((!local_end_of_seq_or_item) && (!pdv->open_tag.is_header_fragmented) && (offset < endpos)) {
offset = dissect_dcm_tag(tvb, pinfo, seq_ptree, pdv, offset, endpos, FALSE, &item_description, &local_end_of_seq_or_item);
@@ -3229,11 +3231,13 @@ dissect_dcm_tag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
is_first_desc = FALSE;
}
}
+ decrement_dissection_depth(pinfo);
}
else {
/* Defined length */
endpos_item = offset + vl_max;
+ increment_dissection_depth(pinfo);
while (offset < endpos_item) {
offset = dissect_dcm_tag(tvb, pinfo, seq_ptree, pdv, offset, endpos_item, FALSE, &item_description, &local_end_of_seq_or_item);
@@ -3243,6 +3247,7 @@ dissect_dcm_tag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
is_first_desc = FALSE;
}
}
+ decrement_dissection_depth(pinfo);
}
} /* if ((is_sequence || is_item) && (vl > 0)) */
else if ((grp == 0xFFFE) && (elm == 0xE00D)) {
@@ -3292,7 +3297,9 @@ dissect_dcm_tag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
else {
/* Regular value. Identify the type, decode and display */
+ increment_dissection_depth(pinfo);
offset = dissect_dcm_tag_value(tvb, pinfo, tag_ptree, pdv, offset, grp, elm, vl, vl_max, vr, &tag_value);
+ decrement_dissection_depth(pinfo);
/* -------------------------------------------------------------
We have decoded the value. Now store those tags of interest
diff --git a/epan/dissectors/packet-dcm.h b/epan/dissectors/packet-dcm.h
index e132f31e..3b44b8d1 100644
--- a/epan/dissectors/packet-dcm.h
+++ b/epan/dissectors/packet-dcm.h
@@ -93,7 +93,7 @@ typedef struct dcm_tag {
const gboolean add_to_summary; /* Add to parent's item description */
} dcm_tag_t;
-static dcm_tag_t dcm_tag_data[] = {
+static dcm_tag_t const dcm_tag_data[] = {
/* Command Tags */
{ 0x00000000, "Command Group Length", "UL", "1", 0, 0},
@@ -5498,7 +5498,7 @@ typedef struct dcm_uid {
#define DCM_UID_LDAP_OID_DICOMTRANSFERCAPABILITY "1.2.840.10008.15.0.4.8"
#define DCM_UID_SYNCHRONIZATION_FRAME_OF_REFERENCE_UNIVERSAL_COORDINATED_TIME "1.2.840.10008.15.1.1"
-static dcm_uid_t dcm_uid_data[] = {
+static dcm_uid_t const dcm_uid_data[] = {
{ DCM_UID_SOP_CLASS_VERIFICATION, "Verification SOP Class", "SOP Class"},
{ DCM_UID_TRANSFER_SYNTAX_IMPLICIT_VR_LITTLE_ENDIAN, "Implicit VR Little Endian: Default Transfer Syntax for DICOM", "Transfer Syntax"},
{ DCM_UID_TRANSFER_SYNTAX_EXPLICIT_VR_LITTLE_ENDIAN, "Explicit VR Little Endian", "Transfer Syntax"},
diff --git a/epan/dissectors/packet-dcom.c b/epan/dissectors/packet-dcom.c
index 14f7d601..a3eb6142 100644
--- a/epan/dissectors/packet-dcom.c
+++ b/epan/dissectors/packet-dcom.c
@@ -1289,6 +1289,7 @@ dissect_dcom_VARTYPE(tvbuff_t *tvb, int offset, packet_info *pinfo,
int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_dcom_VARIANT(tvbuff_t *tvb, int offset, packet_info *pinfo,
proto_tree *tree, dcerpc_info *di, guint8 *drep, int hfindex)
{
@@ -1349,6 +1350,7 @@ dissect_dcom_VARIANT(tvbuff_t *tvb, int offset, packet_info *pinfo,
offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, sub_tree, di, drep, &u32Pointer);
}
+ increment_dissection_depth(pinfo);
switch (u32VarType) {
case(WIRESHARK_VT_EMPTY):
break;
@@ -1445,6 +1447,7 @@ dissect_dcom_VARIANT(tvbuff_t *tvb, int offset, packet_info *pinfo,
offset = dissect_dcom_tobedone_data(tvb, offset, pinfo, sub_tree, drep,
10000);
}
+ decrement_dissection_depth(pinfo);
/* update subtree header */
proto_item_append_text(sub_item, ": %s",
diff --git a/epan/dissectors/packet-dhcpv6.c b/epan/dissectors/packet-dhcpv6.c
index 1ca4ac36..bbbbff83 100644
--- a/epan/dissectors/packet-dhcpv6.c
+++ b/epan/dissectors/packet-dhcpv6.c
@@ -1843,6 +1843,7 @@ cablelabs_fmt_dpoe_server_version( gchar *result, guint32 revision )
/* Returns the number of bytes consumed by this option. */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dhcpv6_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree,
int off, int eoff, gboolean *at_end, int protocol, hopcount_info hpi, guint8 msgtype)
{
@@ -1883,6 +1884,8 @@ dhcpv6_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree,
proto_tree_add_item(subtree, hf_option_length, tvb, off + 2, 2, ENC_BIG_ENDIAN);
off += 4;
+ increment_dissection_depth(pinfo);
+
switch (opttype) {
case OPTION_CLIENTID:
if (optlen > 0) {
@@ -2949,12 +2952,15 @@ dhcpv6_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree,
break;
}
+ decrement_dissection_depth(pinfo);
+
return 4 + optlen;
}
-/* May be called recursively */
+/* May be called recursively via dhcpv6_option */
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_dhcpv6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
int off, int eoff, hopcount_info hpi)
{
diff --git a/epan/dissectors/packet-disp.c b/epan/dissectors/packet-disp.c
index 7d206fb0..61325352 100644
--- a/epan/dissectors/packet-disp.c
+++ b/epan/dissectors/packet-disp.c
@@ -232,7 +232,6 @@ static int dissect_disp_Subtree(bool implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int dissect_disp_IncrementalStepRefresh(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.
static int
@@ -1042,15 +1041,14 @@ static const ber_sequence_t Subtree_sequence[] = {
static int
dissect_disp_Subtree(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 3;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // Subtree → Subtree/subtree → Subtree
+ actx->pinfo->dissection_depth += 2;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
Subtree_sequence, hf_index, ett_disp_Subtree);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 2;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -1206,15 +1204,14 @@ static const ber_sequence_t IncrementalStepRefresh_sequence[] = {
static int
dissect_disp_IncrementalStepRefresh(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 4;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // IncrementalStepRefresh → IncrementalStepRefresh/subordinateUpdates → SubordinateChanges → IncrementalStepRefresh
+ actx->pinfo->dissection_depth += 3;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
IncrementalStepRefresh_sequence, hf_index, ett_disp_IncrementalStepRefresh);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 3;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-docsis-macmgmt.c b/epan/dissectors/packet-docsis-macmgmt.c
index 23864bbf..e3bf924a 100644
--- a/epan/dissectors/packet-docsis-macmgmt.c
+++ b/epan/dissectors/packet-docsis-macmgmt.c
@@ -3832,6 +3832,7 @@ dissect_uccrsp (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* da
* attributes. It's called recursively, to dissect embedded attributes
*/
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_attrs (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree)
{
guint8 type;
@@ -3883,6 +3884,7 @@ dissect_attrs (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree)
ti = proto_tree_add_item (attr_tree, hf_docsis_bpkmattr_cm_id, tvb, pos, length, ENC_NA);
attr_subtree = proto_item_add_subtree(ti, ett_docsis_bpkmattr_cmid);
attr_tvb = tvb_new_subset_length (tvb, pos, length);
+ // We recurse here, but we're limited by our packet length and the depth check in proto_tree_add_node.
dissect_attrs (attr_tvb, pinfo, attr_subtree);
break;
case BPKM_DISPLAY_STR:
diff --git a/epan/dissectors/packet-dof.c b/epan/dissectors/packet-dof.c
index d1075a2c..a8e07d5e 100644
--- a/epan/dissectors/packet-dof.c
+++ b/epan/dissectors/packet-dof.c
@@ -813,7 +813,7 @@ static int dissect_2008_16_security_13(tvbuff_t *tvb, packet_info *pinfo, proto_
static int dissect_2009_11_type_4(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data);
static int dissect_2009_11_type_5(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
-static const gchar* dof_oid_create_standard_string(guint32 bufferSize, const guint8 *pOIDBuffer);
+static const gchar* dof_oid_create_standard_string(guint32 bufferSize, const guint8 *pOIDBuffer, packet_info *pinfo);
static const gchar* dof_iid_create_standard_string(guint32 bufferSize, const guint8 *pIIDBuffer);
static guint8 dof_oid_create_internal(const char *oid, guint32 *size, guint8 *buffer);
static void dof_oid_new_standard_string(const char *data, guint32 *rsize, guint8 **oid);
@@ -1340,7 +1340,7 @@ typedef struct
static oap_1_binding* oap_1_resolve_alias(oap_1_alias_key *key);
-static int oap_1_tree_add_alias(dof_api_data *api_data, oap_1_packet_data *oap_packet _U_, dof_packet_data *packet, proto_tree *tree, tvbuff_t *tvb, gint offset, guint8 alias_length, guint8 resolve)
+static int oap_1_tree_add_alias(dof_api_data *api_data, oap_1_packet_data *oap_packet _U_, dof_packet_data *packet, proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint offset, guint8 alias_length, guint8 resolve)
{
dof_session_data *session = api_data->session;
proto_item *ti;
@@ -1381,7 +1381,7 @@ static int oap_1_tree_add_alias(dof_api_data *api_data, oap_1_packet_data *oap_p
proto_item_set_generated(ti);
/* Decode the Object ID */
- ti = proto_tree_add_bytes_format_value(tree, hf_oap_1_objectid, tvb, 0, 0, binding->oid, "%s", dof_oid_create_standard_string(binding->oid_length, binding->oid));
+ ti = proto_tree_add_bytes_format_value(tree, hf_oap_1_objectid, tvb, 0, 0, binding->oid, "%s", dof_oid_create_standard_string(binding->oid_length, binding->oid, pinfo));
proto_item_set_generated(ti);
proto_tree_add_uint_format(options_tree, hf_oap_1_alias_frame,
@@ -3061,6 +3061,7 @@ static int dissect_2008_16_security_13(tvbuff_t *tvb, packet_info *pinfo, proto_
*
* If 'tree' is NULL then just return the length.
*/
+// NOLINTNEXTLINE(misc-no-recursion)
static gint dissect_2009_11_type_4(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
proto_item *ti;
@@ -3075,7 +3076,7 @@ static gint dissect_2009_11_type_4(tvbuff_t *tvb, packet_info *pinfo, proto_tree
if (tree)
{
ti = proto_tree_get_parent(tree);
- proto_item_set_text(ti, "Object ID: %s", dof_oid_create_standard_string(tvb_reported_length(tvb), tvb_get_ptr(tvb, 0, tvb_reported_length(tvb))));
+ proto_item_set_text(ti, "Object ID: %s", dof_oid_create_standard_string(tvb_reported_length(tvb), tvb_get_ptr(tvb, 0, tvb_reported_length(tvb)), pinfo));
}
offset = read_c4(tvb, offset, &oid_class, &oid_class_len);
@@ -3120,7 +3121,9 @@ static gint dissect_2009_11_type_4(tvbuff_t *tvb, packet_info *pinfo, proto_tree
ti = proto_tree_add_item(tree, hf_oid_all_attribute_data, tvb, offset, -1, ENC_NA);
attribute_tree = proto_item_add_subtree(ti, ett_oid_attribute);
flag = tvb_get_guint8(tvb, offset);
+ increment_dissection_depth(pinfo);
attribute_length = dissect_2009_11_type_5(packet, pinfo, attribute_tree);
+ decrement_dissection_depth(pinfo);
proto_item_set_len(ti, (const gint)attribute_length);
offset += attribute_length;
}
@@ -3152,6 +3155,7 @@ static gint dissect_2009_11_type_4(tvbuff_t *tvb, packet_info *pinfo, proto_tree
*
* If 'tree' is NULL then just return the length.
*/
+// NOLINTNEXTLINE(misc-no-recursion)
static int dissect_2009_11_type_5(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
proto_item *ti;
@@ -3190,7 +3194,9 @@ static int dissect_2009_11_type_5(tvbuff_t *tvb, packet_info *pinfo, proto_tree
ti = proto_tree_add_item(tree, hf_oid_attribute_oid, tvb, offset, -1, ENC_NA);
attribute_tree = proto_item_add_subtree(ti, ett_oid_attribute_oid);
+ increment_dissection_depth(pinfo);
offset += dissect_2009_11_type_4(packet, pinfo, attribute_tree, NULL);
+ decrement_dissection_depth(pinfo);
}
break;
@@ -4084,7 +4090,8 @@ static DOFObjectID DOFObjectID_Create_Bytes(guint32 bufferSize, const guint8 *pO
return rval;
}
-static guint32 ObjectID_ToStringLength(const DOFObjectID oid)
+// NOLINTNEXTLINE(misc-no-recursion)
+static guint32 ObjectID_ToStringLength(const DOFObjectID oid, packet_info *pinfo)
{
guint32 len = 0;
@@ -4097,6 +4104,7 @@ static guint32 ObjectID_ToStringLength(const DOFObjectID oid)
len += 4; /* Four more hex digits. */
else if (DOFObjectID_GetIDClass(oid) & 0xFF00)
len += 2; /* Two more hex digits. */
+ increment_dissection_depth(pinfo);
/* Handle Attributes, if any. */
if (DOFObjectID_HasAttributes(oid))
{
@@ -4120,7 +4128,7 @@ static guint32 ObjectID_ToStringLength(const DOFObjectID oid)
DOFObjectIDAttribute_GetValue(avpDescriptor));
if (embedOID)
{
- len += ObjectID_ToStringLength(embedOID); /* Recurse to compute string rep length of found OID. */
+ len += ObjectID_ToStringLength(embedOID, pinfo); /* Recurse to compute string rep length of found OID. */
DOFObjectID_Destroy(embedOID);
}
else
@@ -4131,6 +4139,7 @@ static guint32 ObjectID_ToStringLength(const DOFObjectID oid)
}
} /* end for(). */
}
+ decrement_dissection_depth(pinfo);
return len;
}
@@ -4167,7 +4176,8 @@ static guint32 InterfaceID_ToString(const guint8 *iid, char *pBuf)
return len;
}
-static guint32 ObjectID_ToString(const DOFObjectID oid, char *pBuf)
+// NOLINTNEXTLINE(misc-no-recursion)
+static guint32 ObjectID_ToString(const DOFObjectID oid, char *pBuf, packet_info *pinfo)
{
DOFObjectIDClass oidClass;
guint32 len = 0;
@@ -4225,7 +4235,9 @@ static guint32 ObjectID_ToString(const DOFObjectID oid, char *pBuf)
DOFObjectIDAttribute_GetValue(avpDescriptor));
if (embedOID)
{
- len += ObjectID_ToString(embedOID, &pBuf[len]); /* Recurse to output string rep of found OID. */
+ increment_dissection_depth(pinfo);
+ len += ObjectID_ToString(embedOID, &pBuf[len], pinfo); /* Recurse to output string rep of found OID. */
+ decrement_dissection_depth(pinfo);
DOFObjectID_Destroy(embedOID);
}
else
@@ -4257,7 +4269,7 @@ static const gchar* dof_iid_create_standard_string(guint32 bufferSize, const gui
return pRetval;
}
-static const gchar* dof_oid_create_standard_string(guint32 bufferSize, const guint8 *pOIDBuffer)
+static const gchar* dof_oid_create_standard_string(guint32 bufferSize, const guint8 *pOIDBuffer, packet_info *pinfo)
{
DOFObjectID oid;
gchar *pRetval;
@@ -4267,12 +4279,12 @@ static const gchar* dof_oid_create_standard_string(guint32 bufferSize, const gui
if (!oid)
return "Illegal OID";
- len = ObjectID_ToStringLength(oid);
+ len = ObjectID_ToStringLength(oid, pinfo);
/* Use PCRMem_Alloc() and not DOFMem_Alloc() because app caller will be freeing memory with PCRMem_Destroy(). */
pRetval = (gchar *)wmem_alloc(wmem_packet_scope(), len + 1);
if (pRetval)
{
- ObjectID_ToString(oid, pRetval);
+ ObjectID_ToString(oid, pRetval, pinfo);
pRetval[len] = 0;
}
@@ -4287,6 +4299,7 @@ struct parseCtx
guint32 oidLen;
guint32 currOidPos;
guint32 currBufferPos;
+ unsigned depth;
}parseCtx;
/* Operations on OID string */
@@ -4537,22 +4550,29 @@ static guint8 parseAttributeID(struct parseCtx *ctx)
return 1;
}
+// NOLINTNEXTLINE(misc-no-recursion)
static guint8 parseAttributeData(struct parseCtx *ctx)
{
+ uint8_t ret;
+ ctx->depth++;
+ DISSECTOR_ASSERT(ctx->depth < prefs.gui_max_tree_depth);
if (PARSECTX_PEEK_CHAR_OID(ctx) == '[')
{
- return parseFormatOID(ctx);
+ ret = parseFormatOID(ctx);
}
else if (PARSECTX_PEEK_CHAR_OID(ctx) == '{')
{
- return parseHexField(ctx);
+ ret = parseHexField(ctx);
}
else
{
- return parseStringField(ctx);
+ ret = parseStringField(ctx);
}
+ ctx->depth--;
+ return ret;
}
+// NOLINTNEXTLINE(misc-no-recursion)
static guint8 parseAttribute(struct parseCtx *ctx)
{
if (parseAttributeID(ctx) == 0)
@@ -4603,6 +4623,7 @@ static guint8 parseAttributes(struct parseCtx *ctx)
return 1;
}
+// NOLINTNEXTLINE(misc-no-recursion)
static guint8 parseFormatOID(struct parseCtx *ctx)
{
/* oid must start with '[' */
@@ -4658,12 +4679,10 @@ static guint8 parseFormatOID(struct parseCtx *ctx)
static guint8 dof_oid_create_internal(const char *oid, guint32 *size, guint8 *buffer)
{
- struct parseCtx ctx;
+ struct parseCtx ctx = {0};
ctx.oid = oid;
ctx.buffer = buffer;
- ctx.currOidPos = 0;
- ctx.currBufferPos = 0;
if (oid)
{
@@ -6765,7 +6784,7 @@ static int dissect_dpp_2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo
if (packet_data->sender_sid)
{
- const gchar *SID = dof_oid_create_standard_string(packet_data->sender_sid[0], packet_data->sender_sid + 1);
+ const gchar *SID = dof_oid_create_standard_string(packet_data->sender_sid[0], packet_data->sender_sid + 1, pinfo);
ti = proto_tree_add_bytes_format_value(tree, hf_2008_1_dpp_sid_str, tvb, 0, 0, packet_data->sender_sid, "%s", SID);
proto_item_set_generated(ti);
}
@@ -6776,7 +6795,7 @@ static int dissect_dpp_2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo
if (packet_data->receiver_sid)
{
- const gchar *SID = dof_oid_create_standard_string(packet_data->receiver_sid[0], packet_data->receiver_sid + 1);
+ const gchar *SID = dof_oid_create_standard_string(packet_data->receiver_sid[0], packet_data->receiver_sid + 1, pinfo);
ti = proto_tree_add_bytes_format_value(tree, hf_2008_1_dpp_rid_str, tvb, 0, 0, packet_data->receiver_sid, "%s", SID);
proto_item_set_generated(ti);
}
@@ -8313,7 +8332,7 @@ static int dissect_oap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
expert_add_info(pinfo, ti, &ei_oap_no_session);
return offset;
}
- offset = oap_1_tree_add_alias(api_data, oap_packet, packet_data, oap_tree, tvb, offset, alias_len, TRUE);
+ offset = oap_1_tree_add_alias(api_data, oap_packet, packet_data, oap_tree, tvb, pinfo, offset, alias_len, TRUE);
}
else
offset = oap_1_tree_add_binding(oap_tree, pinfo, tvb, offset);
@@ -8356,7 +8375,7 @@ static int dissect_oap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
expert_add_info(pinfo, ti, &ei_oap_no_session);
return offset;
}
- offset = oap_1_tree_add_alias(api_data, oap_packet, packet_data, oap_tree, tvb, offset, alias_len, TRUE);
+ offset = oap_1_tree_add_alias(api_data, oap_packet, packet_data, oap_tree, tvb, pinfo, offset, alias_len, TRUE);
}
else
offset = oap_1_tree_add_binding(oap_tree, pinfo, tvb, offset);
@@ -8392,7 +8411,7 @@ static int dissect_oap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
expert_add_info(pinfo, ti, &ei_oap_no_session);
return offset;
}
- offset = oap_1_tree_add_alias(api_data, oap_packet, packet_data, oap_tree, tvb, offset, alias_len, TRUE);
+ offset = oap_1_tree_add_alias(api_data, oap_packet, packet_data, oap_tree, tvb, pinfo, offset, alias_len, TRUE);
}
else
offset = oap_1_tree_add_binding(oap_tree, pinfo, tvb, offset);
@@ -8429,7 +8448,7 @@ static int dissect_oap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
expert_add_info(pinfo, ti, &ei_oap_no_session);
return offset;
}
- offset = oap_1_tree_add_alias(api_data, oap_packet, packet_data, oap_tree, tvb, offset, alias_len, TRUE);
+ offset = oap_1_tree_add_alias(api_data, oap_packet, packet_data, oap_tree, tvb, pinfo, offset, alias_len, TRUE);
}
else
offset = oap_1_tree_add_binding(oap_tree, pinfo, tvb, offset);
@@ -8455,7 +8474,7 @@ static int dissect_oap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
expert_add_info(pinfo, ti, &ei_oap_no_session);
return offset;
}
- offset = oap_1_tree_add_alias(api_data, oap_packet, packet_data, oap_tree, tvb, offset, alias_len, TRUE);
+ offset = oap_1_tree_add_alias(api_data, oap_packet, packet_data, oap_tree, tvb, pinfo, offset, alias_len, TRUE);
}
else
offset = oap_1_tree_add_binding(oap_tree, pinfo, tvb, offset);
@@ -8488,7 +8507,7 @@ static int dissect_oap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
expert_add_info(pinfo, ti, &ei_oap_no_session);
return offset;
}
- offset = oap_1_tree_add_alias(api_data, oap_packet, packet_data, oap_tree, tvb, offset, alias_length, FALSE);
+ offset = oap_1_tree_add_alias(api_data, oap_packet, packet_data, oap_tree, tvb, pinfo, offset, alias_length, FALSE);
iid_offset = offset;
offset = oap_1_tree_add_interface(oap_tree, tvb, offset);
@@ -8546,7 +8565,7 @@ static int dissect_oap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
expert_add_info(pinfo, ti, &ei_oap_no_session);
return offset;
}
- offset = oap_1_tree_add_alias(api_data, oap_packet, packet_data, oap_tree, tvb, offset, alias_len, TRUE);
+ offset = oap_1_tree_add_alias(api_data, oap_packet, packet_data, oap_tree, tvb, pinfo, offset, alias_len, TRUE);
}
else
offset = oap_1_tree_add_binding(oap_tree, pinfo, tvb, offset);
diff --git a/epan/dissectors/packet-dvb-s2-bb.c b/epan/dissectors/packet-dvb-s2-bb.c
index 3f603b20..f1ee9b15 100644
--- a/epan/dissectors/packet-dvb-s2-bb.c
+++ b/epan/dissectors/packet-dvb-s2-bb.c
@@ -1310,7 +1310,7 @@ static int dissect_dvb_s2_gse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
next_tvb = process_reassembled_data(tvb, new_off, pinfo, "Reassembled GSE",
dvbs2_frag_head, &dvb_s2_gse_frag_items, &update_col_info, tree);
- if (next_tvb != NULL) {
+ if (next_tvb != NULL && subpacket_data) {
/* We have a reassembled packet. */
complete = TRUE;
labeltype = subpacket_data->labeltype;
diff --git a/epan/dissectors/packet-e2ap.c b/epan/dissectors/packet-e2ap.c
index 19069a79..e1952aba 100644
--- a/epan/dissectors/packet-e2ap.c
+++ b/epan/dissectors/packet-e2ap.c
@@ -2100,7 +2100,6 @@ static int dissect_e2ap_RANParameter_Definition(tvbuff_t *tvb _U_, int offset _U
static int dissect_e2ap_RANParameter_ValueType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.
static const value_string e2ap_Criticality_vals[] = {
{ 0, "reject" },
@@ -7286,15 +7285,14 @@ static const per_sequence_t RANParameter_Testing_Item_sequence[] = {
static int
dissect_e2ap_RANParameter_Testing_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 5;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // RANParameter-Testing-Item → RANParameter-Testing-Item/ranParameter-Type → RANParameter-Testing-Item-Choice-List → RANParameter-Testing-LIST → RANParameter-Testing-Item
+ actx->pinfo->dissection_depth += 4;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_e2ap_RANParameter_Testing_Item, RANParameter_Testing_Item_sequence);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 4;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -7679,15 +7677,14 @@ static const per_sequence_t RANParameter_Definition_sequence[] = {
static int
dissect_e2ap_RANParameter_Definition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 6;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // RANParameter-Definition → RANParameter-Definition-Choice → RANParameter-Definition-Choice-LIST → RANParameter-Definition-Choice-LIST/ranParameter-List → RANParameter-Definition-Choice-LIST-Item → RANParameter-Definition
+ actx->pinfo->dissection_depth += 5;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_e2ap_RANParameter_Definition, RANParameter_Definition_sequence);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 5;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -7837,16 +7834,15 @@ static const per_choice_t RANParameter_ValueType_choice[] = {
static int
dissect_e2ap_RANParameter_ValueType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 6;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // RANParameter-ValueType → RANParameter-ValueType-Choice-Structure → RANParameter-STRUCTURE → RANParameter-STRUCTURE/sequence-of-ranParameters → RANParameter-STRUCTURE-Item → RANParameter-ValueType
+ actx->pinfo->dissection_depth += 5;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_e2ap_RANParameter_ValueType, RANParameter_ValueType_choice,
NULL);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 5;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-edonkey.c b/epan/dissectors/packet-edonkey.c
index 3cb1a64f..8e338abe 100644
--- a/epan/dissectors/packet-edonkey.c
+++ b/epan/dissectors/packet-edonkey.c
@@ -1653,6 +1653,7 @@ static int dissect_kademlia2_peer(tvbuff_t *tvb, packet_info *pinfo,
/* Dissects the eDonkey search query */
+// NOLINTNEXTLINE(misc-no-recursion)
static int dissect_edonkey_search_query(tvbuff_t *tvb, packet_info *pinfo,
int offset, proto_tree *tree)
{
@@ -1668,6 +1669,7 @@ static int dissect_edonkey_search_query(tvbuff_t *tvb, packet_info *pinfo,
search_length = 1;
ti = proto_tree_add_uint(tree, hf_edonkey_search_type, tvb, offset, 1, search_type);
+ increment_dissection_depth(pinfo);
switch (search_type)
{
case EDONKEY_SEARCH_BOOL:
@@ -1752,6 +1754,7 @@ static int dissect_edonkey_search_query(tvbuff_t *tvb, packet_info *pinfo,
offset += search_length;
break;
}
+ decrement_dissection_depth(pinfo);
return offset;
}
@@ -2507,6 +2510,7 @@ static int dissect_kademlia_search_result(tvbuff_t *tvb, packet_info *pinfo,
return dissect_kademlia_taglist( tvb, pinfo, offset, tree );
}
+// NOLINTNEXTLINE(misc-no-recursion)
static int dissect_kademlia_search_expression_tree(tvbuff_t *tvb, packet_info *pinfo,
int offset, proto_tree *tree)
{
@@ -2518,6 +2522,7 @@ static int dissect_kademlia_search_expression_tree(tvbuff_t *tvb, packet_info *p
ti = proto_tree_add_uint(tree, hf_kademlia_search_expression_type, tvb, offset, 1, op);
tree = proto_item_add_subtree( ti, ett_kademlia_search_expression );
++offset;
+ increment_dissection_depth(pinfo);
switch( op ) {
case 0: /* Bool op */
proto_tree_add_item(tree, hf_kademlia_search_bool_op, tvb, offset, 1, ENC_NA );
@@ -2553,6 +2558,7 @@ static int dissect_kademlia_search_expression_tree(tvbuff_t *tvb, packet_info *p
default:
expert_add_info_format(pinfo, ti, &ei_kademlia_search_expression_type, "NOT DECODED op %x", op );
}
+ decrement_dissection_depth(pinfo);
proto_item_set_len( ti, offset - item_start_offset );
return offset;
}
diff --git a/epan/dissectors/packet-enrp.c b/epan/dissectors/packet-enrp.c
index 2611e12a..70114dcc 100644
--- a/epan/dissectors/packet-enrp.c
+++ b/epan/dissectors/packet-enrp.c
@@ -102,6 +102,7 @@ static guint64 enrp_total_msgs = 0;
static guint64 enrp_total_bytes = 0;
static expert_field ei_enrp_max_recursion_depth_reached = EI_INIT;
+static expert_field ei_enrp_invalid_length = EI_INIT;
static void
dissect_parameters(tvbuff_t *, packet_info *, proto_tree *);
@@ -114,6 +115,7 @@ dissect_enrp(tvbuff_t *, packet_info *, proto_tree *, void*);
#define ENRP_UDP_PORT 9901
#define ENRP_SCTP_PORT 9901
+#define ENRP_MAX_RECURSION_DEPTH 10
typedef struct _enrp_tap_rec_t {
guint8 type;
@@ -137,6 +139,7 @@ dissect_unknown_cause(tvbuff_t *cause_tvb, proto_tree *cause_tree, proto_item *c
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_error_cause(tvbuff_t *cause_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
guint16 code, length, padding_length;
@@ -194,6 +197,7 @@ dissect_error_cause(tvbuff_t *cause_tvb, packet_info *pinfo, proto_tree *paramet
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_error_causes(tvbuff_t *error_causes_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
guint16 length, total_length;
@@ -203,6 +207,12 @@ dissect_error_causes(tvbuff_t *error_causes_tvb, packet_info *pinfo, proto_tree
offset = 0;
while(tvb_reported_length_remaining(error_causes_tvb, offset) > 0) {
length = tvb_get_ntohs(error_causes_tvb, offset + CAUSE_LENGTH_OFFSET);
+ if (length < 4) {
+ proto_tree_add_expert_format(parameter_tree, pinfo, &ei_enrp_invalid_length,
+ error_causes_tvb, offset + CAUSE_LENGTH_OFFSET, 2,
+ "Error cause length must be at least 4 bytes");
+ return;
+ }
total_length = WS_ROUNDUP_4(length);
error_cause_tvb = tvb_new_subset_length(error_causes_tvb, offset, total_length);
dissect_error_cause(error_cause_tvb, pinfo, parameter_tree);
@@ -227,6 +237,7 @@ dissect_ipv6_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_dccp_transport_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -240,6 +251,7 @@ dissect_dccp_transport_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, pr
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_sctp_transport_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -252,6 +264,7 @@ dissect_sctp_transport_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, pr
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_tcp_transport_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -264,6 +277,7 @@ dissect_tcp_transport_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, pro
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_udp_transport_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -276,6 +290,7 @@ dissect_udp_transport_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, pro
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_udp_lite_transport_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -360,6 +375,7 @@ dissect_pool_handle_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_pool_element_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t* parameters_tvb;
@@ -373,6 +389,7 @@ dissect_pool_element_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, prot
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_server_information_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -384,6 +401,7 @@ dissect_server_information_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_operation_error_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t *error_causes_tvb;
@@ -432,12 +450,22 @@ dissect_unknown_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, p
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *enrp_tree)
{
guint16 type, length, padding_length;
proto_tree *parameter_item;
proto_tree *parameter_tree;
+ unsigned recursion_depth = p_get_proto_depth(pinfo, proto_enrp);
+
+ if (recursion_depth > ENRP_MAX_RECURSION_DEPTH) {
+ proto_tree_add_expert(enrp_tree, pinfo, &ei_enrp_max_recursion_depth_reached,
+ parameter_tvb, 0, 0);
+ return;
+ }
+ p_set_proto_depth(pinfo, proto_enrp, recursion_depth + 1);
+
/* extract tag and length from the parameter */
type = tvb_get_ntohs(parameter_tvb, PARAMETER_TYPE_OFFSET);
length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET);
@@ -504,9 +532,12 @@ dissect_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *enrp_
if (padding_length > 0)
proto_tree_add_item(parameter_tree, hf_parameter_padding, parameter_tvb, PARAMETER_HEADER_OFFSET + length, padding_length, ENC_NA);
+
+ p_set_proto_depth(pinfo, proto_enrp, recursion_depth);
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_parameters(tvbuff_t *parameters_tvb, packet_info *pinfo, proto_tree *tree)
{
gint offset, length, total_length, remaining_length;
@@ -515,6 +546,11 @@ dissect_parameters(tvbuff_t *parameters_tvb, packet_info *pinfo, proto_tree *tre
offset = 0;
while((remaining_length = tvb_reported_length_remaining(parameters_tvb, offset)) > 0) {
length = tvb_get_ntohs(parameters_tvb, offset + PARAMETER_LENGTH_OFFSET);
+ if (length < 4) {
+ proto_tree_add_expert(tree, pinfo, &ei_enrp_invalid_length,
+ parameters_tvb, offset + PARAMETER_LENGTH_OFFSET, 2);
+ return;
+ }
total_length = WS_ROUNDUP_4(length);
if (remaining_length >= length)
total_length = MIN(total_length, remaining_length);
@@ -543,6 +579,7 @@ static const true_false_string reply_required_bit_value = {
};
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_enrp_presence_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *message_tree, proto_tree *flags_tree)
{
tvbuff_t *parameters_tvb;
@@ -585,6 +622,7 @@ static const true_false_string more_to_send_bit_value = {
};
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_enrp_handle_table_response_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *message_tree, proto_tree *flags_tree)
{
tvbuff_t *parameters_tvb;
@@ -617,6 +655,7 @@ static const true_false_string tos_bit_value = {
};
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_enrp_handle_update_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *message_tree, proto_tree *flags_tree)
{
tvbuff_t *parameters_tvb;
@@ -639,6 +678,7 @@ dissect_enrp_list_request_message(tvbuff_t *message_tvb, packet_info *pinfo _U_,
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_enrp_list_response_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *message_tree, proto_tree *flags_tree)
{
tvbuff_t *parameters_tvb;
@@ -681,6 +721,7 @@ dissect_enrp_init_takeover_server_message(tvbuff_t *message_tvb, packet_info *pi
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_enrp_error_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *message_tree, proto_tree *flags_tree _U_)
{
tvbuff_t *parameters_tvb;
@@ -722,6 +763,7 @@ static const value_string message_type_values[] = {
{ 0, NULL } };
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_enrp_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *enrp_tree)
{
enrp_tap_rec_t *tap_rec;
@@ -783,21 +825,20 @@ dissect_enrp_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *enrp
}
}
-#define ENRP_MAX_RECURSION_DEPTH 10
-
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_enrp_main(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *tree)
{
proto_item *enrp_item;
proto_tree *enrp_tree;
unsigned recursion_depth = p_get_proto_depth(pinfo, proto_enrp);
- if (++recursion_depth >= ENRP_MAX_RECURSION_DEPTH) {
+ if (recursion_depth > ENRP_MAX_RECURSION_DEPTH) {
proto_tree_add_expert(tree, pinfo, &ei_enrp_max_recursion_depth_reached,
message_tvb, 0, 0);
return;
}
- p_set_proto_depth(pinfo, proto_enrp, recursion_depth);
+ p_set_proto_depth(pinfo, proto_enrp, recursion_depth + 1);
/* create the enrp protocol tree */
enrp_item = proto_tree_add_item(tree, proto_enrp, message_tvb, 0, -1, ENC_NA);
@@ -1111,7 +1152,9 @@ proto_register_enrp(void)
static ei_register_info ei[] = {
{ &ei_enrp_max_recursion_depth_reached, { "enrp.max_recursion_depth_reached",
- PI_PROTOCOL, PI_WARN, "Maximum allowed recursion depth reached - stop decoding", EXPFILL }}
+ PI_PROTOCOL, PI_WARN, "Maximum allowed recursion depth reached - stop decoding", EXPFILL }},
+ { &ei_enrp_invalid_length, { "enrp.invalid_length",
+ PI_MALFORMED, PI_ERROR, "Parameter length must be at least 4 bytes", EXPFILL }}
};
static tap_param enrp_stat_params[] = {
diff --git a/epan/dissectors/packet-erldp.c b/epan/dissectors/packet-erldp.c
index dcf50527..b44f333b 100644
--- a/epan/dissectors/packet-erldp.c
+++ b/epan/dissectors/packet-erldp.c
@@ -354,6 +354,7 @@ static gint dissect_etf_dist_header(packet_info *pinfo _U_, tvbuff_t *tvb, gint
return offset;
}
+// NOLINTNEXTLINE(misc-no-recursion)
static gint dissect_etf_tuple_content(gboolean large, packet_info *pinfo, tvbuff_t *tvb, gint offset, proto_tree *tree, const gchar **value_str _U_) {
guint32 arity, i;
@@ -415,12 +416,15 @@ static gint dissect_etf_big_ext(tvbuff_t *tvb, gint offset, guint32 len, proto_t
return offset + len;
}
+// NOLINTNEXTLINE(misc-no-recursion)
static gint dissect_etf_type_content(guint8 tag, packet_info *pinfo, tvbuff_t *tvb, gint offset, proto_tree *tree, const gchar **value_str) {
gint32 int_val;
guint32 len, i, uint_val;
guint32 id;
const guint8 *str_val;
+ increment_dissection_depth(pinfo);
+
switch (tag) {
case ATOM_CACHE_REF:
proto_tree_add_item_ret_uint(tree, hf_erldp_atom_cache_ref, tvb, offset, 1, ENC_BIG_ENDIAN, &uint_val);
@@ -623,6 +627,8 @@ static gint dissect_etf_type_content(guint8 tag, packet_info *pinfo, tvbuff_t *t
break;
}
+ decrement_dissection_depth(pinfo);
+
return offset;
}
@@ -737,6 +743,7 @@ static gint dissect_etf_versioned_type(const gchar *label, packet_info *pinfo, t
return dissect_etf_type(label, pinfo, tvb, offset, tree);
}
+// NOLINTNEXTLINE(misc-no-recursion)
static gint dissect_etf_type(const gchar *label, packet_info *pinfo, tvbuff_t *tvb, gint offset, proto_tree *tree) {
gint begin = offset;
guint32 tag;
diff --git a/epan/dissectors/packet-etch.c b/epan/dissectors/packet-etch.c
index a651fdab..8d9b1919 100644
--- a/epan/dissectors/packet-etch.c
+++ b/epan/dissectors/packet-etch.c
@@ -139,11 +139,11 @@ static gboolean gbl_have_symbol = FALSE;
* forward declared dissector methods
*/
static void read_key_value(unsigned int *offset, tvbuff_t *tvb,
- proto_tree *etch_tree);
+ proto_tree *etch_tree, packet_info *pinfo);
static void read_struct(unsigned int *offset, tvbuff_t *tvb,
- proto_tree *etch_tree, int add_type_field);
+ proto_tree *etch_tree, packet_info *pinfo, int add_type_field);
static int read_value(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree,
- int asWhat);
+ packet_info *pinfo, int asWhat);
/************************************************************************
* Symbol value-string functions
@@ -440,7 +440,8 @@ read_length(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree)
* read an array from tvb and add it to tree
*/
static void
-read_array(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree)
+// NOLINTNEXTLINE(misc-no-recursion)
+read_array(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree, packet_info *pinfo)
{
int length;
@@ -458,7 +459,7 @@ read_array(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree)
length = read_length(offset, tvb, etch_tree);
for (; length > 0; length--) {
- read_value(offset, tvb, etch_tree, hf_etch_value);
+ read_value(offset, tvb, etch_tree, pinfo, hf_etch_value);
}
/* terminaton */
read_type(offset, tvb, etch_tree);
@@ -536,8 +537,9 @@ read_number(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree,
* read a value and add it to tree
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
read_value(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree,
- int asWhat)
+ packet_info *pinfo, int asWhat)
{
guint8 type_code;
@@ -550,12 +552,13 @@ read_value(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree,
return type_code;
}
+ increment_dissection_depth(pinfo);
switch(type_code) {
case ETCH_TC_CUSTOM:
- read_struct(offset, tvb, etch_tree, 1);
+ read_struct(offset, tvb, etch_tree, pinfo, 1);
break;
case ETCH_TC_ARRAY:
- read_array(offset, tvb, etch_tree);
+ read_array(offset, tvb, etch_tree, pinfo);
break;
case ETCH_TC_STRING:
read_string(offset, tvb, etch_tree);
@@ -584,6 +587,7 @@ read_value(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree,
default:
read_number(offset, tvb, etch_tree, asWhat, type_code);
}
+ decrement_dissection_depth(pinfo);
return 0;
}
@@ -592,7 +596,7 @@ read_value(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree,
*/
static void
read_struct(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree,
- int add_type_field)
+ packet_info *pinfo, int add_type_field)
{
proto_item *ti;
proto_tree *new_tree;
@@ -607,13 +611,13 @@ read_struct(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree,
read_type(offset, tvb, new_tree);
}
/* struct type as hash */
- read_value(offset, tvb, new_tree, hf_etch_value);
+ read_value(offset, tvb, new_tree, pinfo, hf_etch_value);
/* struct length */
- length = read_value(offset, tvb, new_tree, hf_etch_length);
+ length = read_value(offset, tvb, new_tree, pinfo, hf_etch_length);
for (i = 0; i < length; i++) {
- read_key_value(offset, tvb, new_tree);
+ read_key_value(offset, tvb, new_tree, pinfo);
}
/* termination */
@@ -624,7 +628,8 @@ read_struct(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree,
* read a key value pair and add it to tree
*/
static void
-read_key_value(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree)
+// NOLINTNEXTLINE(misc-no-recursion)
+read_key_value(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree, packet_info *pinfo)
{
proto_tree *new_tree;
proto_tree *new_tree_bck;
@@ -641,7 +646,7 @@ read_key_value(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree)
ti = proto_tree_add_item(new_tree, hf_etch_keyname, tvb, *offset, 0,
ENC_NA);
new_tree = proto_item_add_subtree(ti, ett_etch_key);
- read_value(offset, tvb, new_tree, hf_etch_value);
+ read_value(offset, tvb, new_tree, pinfo, hf_etch_value);
/* append the symbol of the key */
if(gbl_have_symbol == TRUE){
@@ -651,7 +656,7 @@ read_key_value(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree)
ti = proto_tree_add_item(new_tree_bck, hf_etch_valuename, tvb, *offset,
0, ENC_NA);
new_tree = proto_item_add_subtree(ti, ett_etch_value);
- read_value(offset, tvb, new_tree, hf_etch_value);
+ read_value(offset, tvb, new_tree, pinfo, hf_etch_value);
}
/*************************************************************************/
@@ -731,7 +736,7 @@ dissect_etch_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
proto_tree_add_item(etch_tree, hf_etch_sig, tvb, 0, 4, ENC_BIG_ENDIAN);
proto_tree_add_item(etch_tree, hf_etch_length, tvb, 4, 4, ENC_BIG_ENDIAN);
proto_tree_add_item(etch_tree, hf_etch_version, tvb, 8, 1, ENC_BIG_ENDIAN);
- read_struct(&offset, tvb, etch_tree, 0);
+ read_struct(&offset, tvb, etch_tree, pinfo, 0);
}
return tvb_captured_length(tvb);
@@ -920,10 +925,7 @@ void proto_register_etch(void)
&ett_etch_value,
};
- proto_etch = proto_register_protocol("Apache Etch Protocol", /* name */
- "Etch", /* short name */
- "etch" /* abbrev */
- );
+ proto_etch = proto_register_protocol("Apache Etch Protocol", "Etch", "etch");
proto_register_field_array(proto_etch, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
diff --git a/epan/dissectors/packet-extrememesh.c b/epan/dissectors/packet-extrememesh.c
index ca97fa9d..dedeb6b1 100644
--- a/epan/dissectors/packet-extrememesh.c
+++ b/epan/dissectors/packet-extrememesh.c
@@ -1462,6 +1462,7 @@ static gint dissect_extrememesh_probe(tvbuff_t *tvb, packet_info *pinfo, proto_t
return MESH_NEXT_PROTOCOL_INVALID;
}
+// NOLINTNEXTLINE(misc-no-recursion)
static gint dissect_extrememesh_mch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
proto_tree *meshTree = tree;
@@ -1514,6 +1515,7 @@ static gint dissect_extrememesh_mch(tvbuff_t *tvb, packet_info *pinfo, proto_tre
next_proto = MESH_NEXT_PROTOCOL_INVALID;
break;
case MESH_NEXT_PROTOCOL_MCH:
+ // We recurse here, but we'll run out of packet before we run out of stack.
next_proto = dissect_extrememesh_mch(nextTvb, pinfo, meshTree);
break;
case MESH_NEXT_PROTOCOL_ENCAPSULATED_ETH:
diff --git a/epan/dissectors/packet-fcswils.c b/epan/dissectors/packet-fcswils.c
index e9fb3e70..904c5aa0 100644
--- a/epan/dissectors/packet-fcswils.c
+++ b/epan/dissectors/packet-fcswils.c
@@ -1207,6 +1207,7 @@ dissect_swils_zone_mbr(tvbuff_t *tvb, packet_info* pinfo, proto_tree *zmbr_tree,
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_swils_zone_obj(tvbuff_t *tvb, packet_info* pinfo, proto_tree *zobj_tree, int offset)
{
proto_tree *zmbr_tree;
@@ -1229,6 +1230,7 @@ dissect_swils_zone_obj(tvbuff_t *tvb, packet_info* pinfo, proto_tree *zobj_tree,
offset += 8 + ZONENAME_LEN(tvb, offset+4);
for (i = 0; i < numrec; i++) {
if (objtype == FC_SWILS_ZONEOBJ_ZONESET) {
+ // We recurse here, but we'll run out of packet before we run out of stack.
dissect_swils_zone_obj(tvb, pinfo, zobj_tree, offset);
offset += get_zoneobj_len(tvb, offset);
}
diff --git a/epan/dissectors/packet-geonw.c b/epan/dissectors/packet-geonw.c
index 34059574..77d7e282 100644
--- a/epan/dissectors/packet-geonw.c
+++ b/epan/dissectors/packet-geonw.c
@@ -1742,6 +1742,7 @@ static int dissect_sec_signer_info(tvbuff_t *tvb, gint *offset, packet_info *pin
static int hf_sgeonw_certification_version = -1;
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_sec_certificate(tvbuff_t *tvb, gint *offset, packet_info *pinfo, proto_tree *tree, guint8 version)
{
guint32 tmp_val;
@@ -1777,6 +1778,7 @@ dissect_sec_certificate(tvbuff_t *tvb, gint *offset, packet_info *pinfo, proto_t
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_sec_signer_info(tvbuff_t *tvb, gint *offset, packet_info *pinfo, proto_tree *tree, guint8 version)
{
gint start = *offset;
@@ -1787,6 +1789,8 @@ dissect_sec_signer_info(tvbuff_t *tvb, gint *offset, packet_info *pinfo, proto_t
proto_item *tinner;
proto_tree *insidetree;
+ increment_dissection_depth(pinfo);
+
tmp_val = tvb_get_guint8(tvb, *offset);
if (tmp_val == self) {
// No additional data shall be given
@@ -1836,6 +1840,7 @@ dissect_sec_signer_info(tvbuff_t *tvb, gint *offset, packet_info *pinfo, proto_t
}
proto_item_set_end(ti, tvb, *offset);
}
+ decrement_dissection_depth(pinfo);
return (*offset) - start;
}
diff --git a/epan/dissectors/packet-giop.c b/epan/dissectors/packet-giop.c
index fd5c72ec..9e1c7325 100644
--- a/epan/dissectors/packet-giop.c
+++ b/epan/dissectors/packet-giop.c
@@ -2183,6 +2183,7 @@ static void set_new_alignment(int *offset, int delta, int alignment) {
*
* data_name is allowed to be NULL or empty string
*/
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_data_for_typecode_with_params(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_item *item, gint *offset,
gboolean stream_is_big_endian, guint32 boundary,
@@ -2220,11 +2221,11 @@ static void dissect_data_for_typecode_with_params(tvbuff_t *tvb, packet_info *pi
const gchar *buf = NULL; /* ptr to string buffer */
unsigned recursion_depth = p_get_proto_depth(pinfo, proto_giop);
- if (++recursion_depth >= GIOP_MAX_RECURSION_DEPTH) {
+ if (recursion_depth > GIOP_MAX_RECURSION_DEPTH) {
proto_tree_add_expert(tree, pinfo, &ei_giop_max_recursion_depth_reached, tvb, 0, 0);
return;
}
- p_set_proto_depth(pinfo, proto_giop, recursion_depth);
+ p_set_proto_depth(pinfo, proto_giop, recursion_depth + 1);
/* Grab the data according to data type */
@@ -2483,7 +2484,7 @@ static void dissect_data_for_typecode_with_params(tvbuff_t *tvb, packet_info *pi
expert_add_info_format(pinfo, item, &ei_giop_unknown_typecode_datatype, "Unknown typecode data type %u", data_type);
break;
}
- p_set_proto_depth(pinfo, proto_giop, recursion_depth - 1);
+ p_set_proto_depth(pinfo, proto_giop, recursion_depth);
}
/*
@@ -2546,6 +2547,7 @@ static void dissect_tk_objref_params(tvbuff_t *tvb, proto_tree *tree, gint *offs
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_tk_struct_params(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint *offset,
gboolean stream_is_big_endian, guint32 boundary,
MessageHeader * header, wmem_list_t *params) {
@@ -2606,6 +2608,7 @@ static void dissect_tk_struct_params(tvbuff_t *tvb, packet_info *pinfo, proto_tr
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_tk_union_params(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item* item,
gint *offset, gboolean stream_is_big_endian, guint32 boundary,
MessageHeader * header) {
@@ -2716,6 +2719,7 @@ static void dissect_tk_enum_params(tvbuff_t *tvb, proto_tree *tree, gint *offset
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_tk_sequence_params(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint *offset,
gboolean stream_is_big_endian, guint32 boundary,
MessageHeader * header, wmem_list_t *params) {
@@ -2748,6 +2752,7 @@ static void dissect_tk_sequence_params(tvbuff_t *tvb, packet_info *pinfo, proto_
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_tk_array_params(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint *offset,
gboolean stream_is_big_endian, guint32 boundary,
MessageHeader * header, wmem_list_t *params) {
@@ -2787,6 +2792,7 @@ static void dissect_tk_array_params(tvbuff_t *tvb, packet_info *pinfo, proto_tre
* dissection of nested (complex) types. Those are saved into a nested linked
* list which can be handed into dissect_data_for_typecode_with_params
*/
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_tk_alias_params(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint *offset,
gboolean stream_is_big_endian, guint32 boundary,
MessageHeader * header, wmem_list_t *params) {
@@ -2822,6 +2828,7 @@ static void dissect_tk_alias_params(tvbuff_t *tvb, packet_info *pinfo, proto_tre
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_tk_except_params(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint *offset,
gboolean stream_is_big_endian, guint32 boundary,
MessageHeader * header) {
@@ -2868,6 +2875,7 @@ static void dissect_tk_except_params(tvbuff_t *tvb, packet_info *pinfo, proto_tr
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_tk_value_params(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint *offset,
gboolean stream_is_big_endian, guint32 boundary,
MessageHeader * header) {
@@ -2928,6 +2936,7 @@ static void dissect_tk_value_params(tvbuff_t *tvb, packet_info *pinfo, proto_tre
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_tk_value_box_params(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint *offset,
gboolean stream_is_big_endian, guint32 boundary,
MessageHeader * header) {
@@ -3087,6 +3096,7 @@ guint32 get_CDR_encap_info(tvbuff_t *tvb, proto_tree *tree, gint *offset,
* followed by the encoded value.
*/
+// NOLINTNEXTLINE(misc-no-recursion)
void get_CDR_any(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *item,
gint *offset, gboolean stream_is_big_endian, int boundary,
MessageHeader * header ) {
@@ -3627,6 +3637,7 @@ guint32 get_CDR_string(tvbuff_t *tvb, const gchar **seq, int *offset, gboolean s
*
* It returns a guint32 representing a TCKind value.
*/
+// NOLINTNEXTLINE(misc-no-recursion)
guint32 get_CDR_typeCode(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree,
gint *offset, gboolean stream_is_big_endian,
int boundary, MessageHeader * header ) {
@@ -3638,6 +3649,7 @@ guint32 get_CDR_typeCode(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree,
}
+// NOLINTNEXTLINE(misc-no-recursion)
static guint32 get_CDR_typeCode_with_params(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree,
gint *offset, gboolean stream_is_big_endian,
int boundary, MessageHeader * header,
@@ -3650,6 +3662,14 @@ static guint32 get_CDR_typeCode_with_params(tvbuff_t *tvb, packet_info* pinfo, p
proto_item *ti;
val = get_CDR_ulong(tvb, offset, stream_is_big_endian, boundary); /* get TCKind enum */
+
+ unsigned recursion_depth = p_get_proto_depth(pinfo, proto_giop);
+ if (recursion_depth > GIOP_MAX_RECURSION_DEPTH) {
+ proto_tree_add_expert(tree, pinfo, &ei_giop_max_recursion_depth_reached, tvb, 0, 0);
+ return val;
+ }
+ p_set_proto_depth(pinfo, proto_giop, recursion_depth + 1);
+
ti = proto_tree_add_uint(tree, hf_giop_TCKind, tvb, *offset-4, 4, val);
proto_tree *params_tree = proto_tree_add_subtree(tree, tvb, *offset, -1, ett_giop_typecode_parameters, NULL, "TypeCode-Parameters");
@@ -3765,6 +3785,8 @@ static guint32 get_CDR_typeCode_with_params(tvbuff_t *tvb, packet_info* pinfo, p
break;
} /* val */
+ p_set_proto_depth(pinfo, proto_giop, recursion_depth);
+
return val;
}
diff --git a/epan/dissectors/packet-glow.c b/epan/dissectors/packet-glow.c
index 32e6ec9d..d374395c 100644
--- a/epan/dissectors/packet-glow.c
+++ b/epan/dissectors/packet-glow.c
@@ -185,7 +185,6 @@ static int dissect_glow_ElementCollection(bool implicit_tag _U_, tvbuff_t *tvb _
static int dissect_glow_Template(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.
static int
@@ -1086,15 +1085,14 @@ dissect_glow_SEQUENCE_OF_Element(bool implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_glow_ElementCollection(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 6;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // ElementCollection → ElementCollection/_untag → Element → Node → Node/_untag → ElementCollection
+ actx->pinfo->dissection_depth += 5;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 4, TRUE, dissect_glow_SEQUENCE_OF_Element);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 5;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -1118,15 +1116,14 @@ dissect_glow_Parameter_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
static int
dissect_glow_Parameter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 6;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // Parameter → Parameter/_untag → ElementCollection → ElementCollection/_untag → Element → Parameter
+ actx->pinfo->dissection_depth += 5;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 1, TRUE, dissect_glow_Parameter_U);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 5;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -1176,15 +1173,14 @@ dissect_glow_Template_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_
static int
dissect_glow_Template(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 9;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // Template → Template/_untag → TemplateElement → Parameter → Parameter/_untag → ElementCollection → ElementCollection/_untag → Element → Template
+ actx->pinfo->dissection_depth += 8;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 24, TRUE, dissect_glow_Template_U);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 8;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-goose.c b/epan/dissectors/packet-goose.c
index 2eb45619..b11f8a46 100644
--- a/epan/dissectors/packet-goose.c
+++ b/epan/dissectors/packet-goose.c
@@ -187,7 +187,6 @@ static gint ett_goose_Data = -1;
static int dissect_goose_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.
static int
@@ -711,16 +710,15 @@ static const ber_choice_t Data_choice[] = {
static int
dissect_goose_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 3;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // Data → Data/array → Data
+ actx->pinfo->dissection_depth += 2;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
Data_choice, hf_index, ett_goose_Data,
NULL);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 2;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-gquic.c b/epan/dissectors/packet-gquic.c
index 36053c01..372bd405 100644
--- a/epan/dissectors/packet-gquic.c
+++ b/epan/dissectors/packet-gquic.c
@@ -1396,6 +1396,7 @@ gboolean is_gquic_unencrypt(tvbuff_t *tvb, packet_info *pinfo, guint offset, gui
}
static guint32
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_gquic_tag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *gquic_tree, guint offset, guint32 tag_number){
guint32 tag_offset_start = offset + tag_number*4*2;
guint32 tag_offset = 0, total_tag_len = 0;
@@ -1490,6 +1491,7 @@ dissect_gquic_tag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *gquic_tree, gui
scfg_tag_number = tvb_get_guint32(tvb, tag_offset_start + tag_offset, ENC_LITTLE_ENDIAN);
tag_offset += 4;
+ // We recurse here, but we're limited by tree depth checks in epan
dissect_gquic_tag(tvb, pinfo, tag_tree, tag_offset_start + tag_offset, scfg_tag_number);
tag_offset += tag_len - 4 - 4;
}
diff --git a/epan/dissectors/packet-gsm_abis_oml.c b/epan/dissectors/packet-gsm_abis_oml.c
index 43294758..0b667872 100644
--- a/epan/dissectors/packet-gsm_abis_oml.c
+++ b/epan/dissectors/packet-gsm_abis_oml.c
@@ -1567,6 +1567,7 @@ dissect_ipacc_test_rep(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb)
/* Dissect OML FOM Attributes after OML + FOM header */
static gint
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_oml_attrs(tvbuff_t *tvb, int base_offs, int length,
packet_info *pinfo, proto_tree *tree)
{
@@ -1770,7 +1771,9 @@ dissect_oml_attrs(tvbuff_t *tvb, int base_offs, int length,
tvb, loffset++, 1,
ENC_LITTLE_ENDIAN);
}
+ increment_dissection_depth(pinfo);
dissect_oml_attrs(tvb, loffset, len - 1 - not_counted, pinfo, att_tree);
+ decrement_dissection_depth(pinfo);
}
break;
case NM_ATT_INTERF_BOUND:
@@ -2804,8 +2807,7 @@ proto_register_abis_oml(void)
NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_CGI, TLV_TYPE_TL16V, 0);
/* assign our custom match functions */
- proto_abis_oml = proto_register_protocol("GSM A-bis OML", "A-bis OML",
- "gsm_abis_oml");
+ proto_abis_oml = proto_register_protocol("GSM A-bis OML", "A-bis OML", "gsm_abis_oml");
proto_register_field_array(proto_abis_oml, hf, array_length(hf));
diff --git a/epan/dissectors/packet-gsm_gsup.c b/epan/dissectors/packet-gsm_gsup.c
index 6e36e00b..fe20fde6 100644
--- a/epan/dissectors/packet-gsm_gsup.c
+++ b/epan/dissectors/packet-gsm_gsup.c
@@ -696,6 +696,7 @@ static void dissect_name_ie(tvbuff_t *tvb, packet_info *pinfo _U_, guint offset,
static gint
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_gsup_tlvs(tvbuff_t *tvb, int base_offs, int length, packet_info *pinfo, proto_tree *tree,
proto_item *gsup_ti, guint8 msg_type)
{
@@ -729,6 +730,7 @@ dissect_gsup_tlvs(tvbuff_t *tvb, int base_offs, int length, packet_info *pinfo,
proto_tree_add_item(att_tree, hf_gsup_iei, tvb, offset-2, 1, ENC_BIG_ENDIAN);
proto_tree_add_uint(att_tree, hf_gsup_ie_len, tvb, offset-1, 1, len);
+ increment_dissection_depth(pinfo);
switch (tag) {
/* Nested TLVs */
case OSMO_GSUP_AUTH_TUPLE_IE:
@@ -884,6 +886,7 @@ dissect_gsup_tlvs(tvbuff_t *tvb, int base_offs, int length, packet_info *pinfo,
proto_tree_add_item(att_tree, hf_gsup_ie_payload, tvb, offset, len, ENC_NA);
break;
}
+ decrement_dissection_depth(pinfo);
offset += len;
}
diff --git a/epan/dissectors/packet-gtp.c b/epan/dissectors/packet-gtp.c
index 87861709..1302d80a 100644
--- a/epan/dissectors/packet-gtp.c
+++ b/epan/dissectors/packet-gtp.c
@@ -2408,12 +2408,15 @@ static const value_string gtp_ext_hdr_pdu_ses_cont_pdu_type_vals[] = {
#define MM_PROTO_SESSION_MGMT 0x0A
#define MM_PROTO_NON_CALL_RELATED 0x0B
-static wmem_map_t *gtpstat_msg_idx_hash = NULL;
+static GHashTable *gtpstat_msg_idx_hash = NULL;
static void
gtpstat_init(struct register_srt* srt _U_, GArray* srt_array)
{
- gtpstat_msg_idx_hash = wmem_map_new(wmem_file_scope(), g_direct_hash, g_direct_equal);
+ if (gtpstat_msg_idx_hash != NULL) {
+ g_hash_table_destroy(gtpstat_msg_idx_hash);
+ }
+ gtpstat_msg_idx_hash = g_hash_table_new(g_direct_hash, g_direct_equal);
init_srt_table("GTP Requests", NULL, srt_array, 0, NULL, NULL, NULL);
}
@@ -2443,13 +2446,13 @@ gtpstat_packet(void *pss, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
gtp_srt_table = g_array_index(data->srt_array, srt_stat_table*, i);
- idx = GPOINTER_TO_UINT(wmem_map_lookup(gtpstat_msg_idx_hash, GUINT_TO_POINTER(gtp->msgtype)));
+ idx = GPOINTER_TO_UINT(g_hash_table_lookup(gtpstat_msg_idx_hash, GUINT_TO_POINTER(gtp->msgtype)));
/* Store the value incremented by 1 to avoid confusing index 0 with NULL */
if (idx == 0) {
- idx = wmem_map_size(gtpstat_msg_idx_hash);
- wmem_map_insert(gtpstat_msg_idx_hash, GUINT_TO_POINTER(gtp->msgtype), GUINT_TO_POINTER(idx + 1));
- init_srt_table_row(gtp_srt_table, idx, val_to_str_ext(gtp->msgtype, &gtp_message_type_ext, "Unknown (%d)"));
+ idx = g_hash_table_size(gtpstat_msg_idx_hash);
+ g_hash_table_insert(gtpstat_msg_idx_hash, GUINT_TO_POINTER(gtp->msgtype), GUINT_TO_POINTER(idx + 1));
+ init_srt_table_row(gtp_srt_table, idx, val_to_str_ext_const(gtp->msgtype, &gtp_message_type_ext, "Unknown"));
} else {
idx -= 1;
}
@@ -2987,7 +2990,7 @@ typedef struct {
/* ---------------------
* GPRS messages
* ---------------------*/
-static _gtp_mess_items gprs_mess_items[] = {
+static const _gtp_mess_items gprs_mess_items[] = {
{
GTP_MSG_ECHO_REQ, {
@@ -3319,7 +3322,7 @@ static _gtp_mess_items gprs_mess_items[] = {
/* -----------------------------
* UMTS messages
* -----------------------------*/
-static _gtp_mess_items umts_mess_items[] = {
+static const _gtp_mess_items umts_mess_items[] = {
/* 7.2 Path Management Messages */
{
GTP_MSG_ECHO_REQ, {
@@ -4391,7 +4394,7 @@ check_field_presence_and_decoder(guint8 message, guint8 field, int *position, ie
{
guint i = 0;
- _gtp_mess_items *mess_items;
+ const _gtp_mess_items *mess_items;
switch (gtp_version) {
case 0:
diff --git a/epan/dissectors/packet-gtpv2.c b/epan/dissectors/packet-gtpv2.c
index dc4a8204..4953729a 100644
--- a/epan/dissectors/packet-gtpv2.c
+++ b/epan/dissectors/packet-gtpv2.c
@@ -1561,12 +1561,15 @@ gtpv2_sn_equal_unmatched(gconstpointer k1, gconstpointer k2)
return key1->seq_nr == key2->seq_nr;
}
-static wmem_map_t *gtpv2_stat_msg_idx_hash = NULL;
+static GHashTable *gtpv2_stat_msg_idx_hash = NULL;
static void
gtpv2_stat_init(struct register_srt* srt _U_, GArray*srt_array)
{
- gtpv2_stat_msg_idx_hash = wmem_map_new(wmem_file_scope(), g_direct_hash, g_direct_equal);
+ if (gtpv2_stat_msg_idx_hash != NULL) {
+ g_hash_table_destroy(gtpv2_stat_msg_idx_hash);
+ }
+ gtpv2_stat_msg_idx_hash = g_hash_table_new(g_direct_hash, g_direct_equal);
init_srt_table("GTPv2 Requests", NULL, srt_array, 0, NULL, NULL, NULL);
}
@@ -1596,13 +1599,13 @@ gtpv2_stat_packet(void *pss, packet_info *pinfo, epan_dissect_t *edt _U_, const
* (requests and responses have different message types, and we
* only use the request value.)
*/
- idx = GPOINTER_TO_UINT(wmem_map_lookup(gtpv2_stat_msg_idx_hash, GUINT_TO_POINTER(gcrp->msgtype)));
+ idx = GPOINTER_TO_UINT(g_hash_table_lookup(gtpv2_stat_msg_idx_hash, GUINT_TO_POINTER(gcrp->msgtype)));
/* Store the row value incremented by 1 to distinguish 0 from NULL */
if (idx == 0) {
- idx = wmem_map_size(gtpv2_stat_msg_idx_hash);
- wmem_map_insert(gtpv2_stat_msg_idx_hash, GUINT_TO_POINTER(gcrp->msgtype), GUINT_TO_POINTER(idx + 1));
- init_srt_table_row(gtpv2_srt_table, idx, val_to_str_ext(gcrp->msgtype, &gtpv2_message_type_vals_ext, "Unknown (%d)"));
+ idx = g_hash_table_size(gtpv2_stat_msg_idx_hash);
+ g_hash_table_insert(gtpv2_stat_msg_idx_hash, GUINT_TO_POINTER(gcrp->msgtype), GUINT_TO_POINTER(idx + 1));
+ init_srt_table_row(gtpv2_srt_table, idx, val_to_str_ext_const(gcrp->msgtype, &gtpv2_message_type_vals_ext, "Unknown"));
} else {
idx -= 1;
}
@@ -8956,6 +8959,7 @@ dissect_gtpv2_ie_common(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree,
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_gtpv2(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* data _U_)
{
proto_tree *gtpv2_tree;
@@ -9137,7 +9141,9 @@ dissect_gtpv2(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* data
new_p_tvb = tvb_new_subset_remaining(tvb, msg_length + 4);
col_append_str(pinfo->cinfo, COL_INFO, " / ");
col_set_fence(pinfo->cinfo, COL_INFO);
+ increment_dissection_depth(pinfo);
dissect_gtpv2(new_p_tvb, pinfo, tree, NULL);
+ decrement_dissection_depth(pinfo);
}
return tvb_captured_length(tvb);
diff --git a/epan/dissectors/packet-h223.c b/epan/dissectors/packet-h223.c
index f6b451db..f0f99e7f 100644
--- a/epan/dissectors/packet-h223.c
+++ b/epan/dissectors/packet-h223.c
@@ -800,17 +800,20 @@ dissect_mux_sdu_fragment(tvbuff_t *volatile next_tvb, packet_info *pinfo,
}
static guint32
-mux_element_sublist_size( h223_mux_element* me )
+// NOLINTNEXTLINE(misc-no-recursion)
+mux_element_sublist_size(packet_info *pinfo, h223_mux_element* me)
{
h223_mux_element *current_me = me->next;
guint32 length = 0;
+ increment_dissection_depth(pinfo);
while ( current_me ) {
if ( current_me->sublist )
- length += current_me->repeat_count * mux_element_sublist_size( current_me->sublist );
+ length += current_me->repeat_count * mux_element_sublist_size(pinfo, current_me->sublist);
else
length += current_me->repeat_count;
current_me = current_me->next;
}
+ decrement_dissection_depth(pinfo);
/* should never happen, but to avoid infinite loops... */
DISSECTOR_ASSERT(length != 0);
@@ -832,6 +835,7 @@ mux_element_sublist_size( h223_mux_element* me )
* endOfMuxSdu true if the end-of-sdu flag was set
*/
static guint32
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_mux_payload_by_me_list( tvbuff_t *tvb, packet_info *pinfo,
guint32 pkt_offset, proto_tree *pdu_tree,
h223_call_info* call_info,
@@ -843,10 +847,11 @@ dissect_mux_payload_by_me_list( tvbuff_t *tvb, packet_info *pinfo,
guint32 frag_len;
guint32 sublist_len;
int i;
+ increment_dissection_depth(pinfo);
while ( me ) {
if ( me->sublist ) {
if ( me->repeat_count == 0 ) {
- for(sublist_len = mux_element_sublist_size( me->sublist );
+ for(sublist_len = mux_element_sublist_size(pinfo, me->sublist);
offset + sublist_len <= len;
offset = dissect_mux_payload_by_me_list( tvb, pinfo, pkt_offset, pdu_tree,
call_info, me->sublist, offset, endOfMuxSdu,
@@ -873,6 +878,7 @@ dissect_mux_payload_by_me_list( tvbuff_t *tvb, packet_info *pinfo,
}
me = me->next;
}
+ decrement_dissection_depth(pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-h225.c b/epan/dissectors/packet-h225.c
index 5bd5f1f1..1d348ad1 100644
--- a/epan/dissectors/packet-h225.c
+++ b/epan/dissectors/packet-h225.c
@@ -1257,7 +1257,6 @@ static int dissect_h225_EnumeratedParameter(tvbuff_t *tvb _U_, int offset _U_, a
/*int dissect_h225_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);*/
-#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.
static int
@@ -3968,11 +3967,9 @@ static const per_sequence_t EnumeratedParameter_sequence[] = {
static int
dissect_h225_EnumeratedParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 4;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // EnumeratedParameter → Content → Content/compound → EnumeratedParameter
+ actx->pinfo->dissection_depth += 3;
+ increment_dissection_depth(actx->pinfo);
gef_ctx_t *parent_gefx;
parent_gefx = gef_ctx_get(actx->private_data);
@@ -3980,7 +3977,8 @@ dissect_h225_EnumeratedParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h225_EnumeratedParameter, EnumeratedParameter_sequence);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 3;
+ decrement_dissection_depth(actx->pinfo);
actx->private_data = parent_gefx;
return offset;
}
@@ -3994,11 +3992,9 @@ static const per_sequence_t GenericData_sequence[] = {
int
dissect_h225_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 6;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // GenericData → GenericData/parameters → EnumeratedParameter → Content → Content/nested → GenericData
+ actx->pinfo->dissection_depth += 5;
+ increment_dissection_depth(actx->pinfo);
void *priv_data = actx->private_data;
gef_ctx_t *gefx;
@@ -4011,7 +4007,8 @@ dissect_h225_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h225_GenericData, GenericData_sequence);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 5;
+ decrement_dissection_depth(actx->pinfo);
actx->private_data = priv_data;
return offset;
}
diff --git a/epan/dissectors/packet-h245.c b/epan/dissectors/packet-h245.c
index 5fb832f5..92b9fa55 100644
--- a/epan/dissectors/packet-h245.c
+++ b/epan/dissectors/packet-h245.c
@@ -2426,7 +2426,6 @@ static int dissect_h245_AudioMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int dissect_h245_ModeElementType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.
static int
@@ -3865,15 +3864,14 @@ static const per_sequence_t GenericParameter_sequence[] = {
static int
dissect_h245_GenericParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 4;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // GenericParameter → ParameterValue → ParameterValue/genericParameter → GenericParameter
+ actx->pinfo->dissection_depth += 3;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h245_GenericParameter, GenericParameter_sequence);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 3;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -5666,11 +5664,9 @@ static const per_choice_t VideoCapability_choice[] = {
static int
dissect_h245_VideoCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 4;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // VideoCapability → ExtendedVideoCapability → ExtendedVideoCapability/videoCapability → VideoCapability
+ actx->pinfo->dissection_depth += 3;
+ increment_dissection_depth(actx->pinfo);
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -5680,7 +5676,8 @@ dissect_h245_VideoCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
codec_type = val_to_str(value, h245_VideoCapability_vals, "<unknown>");
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 3;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -5988,11 +5985,9 @@ static const per_choice_t AudioCapability_choice[] = {
static int
dissect_h245_AudioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 3;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // AudioCapability → VBDCapability → AudioCapability
+ actx->pinfo->dissection_depth += 2;
+ increment_dissection_depth(actx->pinfo);
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -6001,7 +5996,8 @@ dissect_h245_AudioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
codec_type = val_to_str(value, h245_AudioCapability_short_vals, "<unknown>");
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 2;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -7152,11 +7148,9 @@ static const per_choice_t DataType_choice[] = {
static int
dissect_h245_DataType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 5;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // DataType → H235Media → H235Media/mediaType → RedundancyEncoding → DataType
+ actx->pinfo->dissection_depth += 4;
+ increment_dissection_depth(actx->pinfo);
gint choice_index;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -7173,7 +7167,8 @@ if (upcoming_channel){
}
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 4;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -8874,11 +8869,9 @@ static const per_sequence_t MultiplexElement_sequence[] = {
static int
dissect_h245_MultiplexElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 4;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // MultiplexElement → MultiplexElement/type → MultiplexElement/type/subElementList → MultiplexElement
+ actx->pinfo->dissection_depth += 3;
+ increment_dissection_depth(actx->pinfo);
/*MultiplexElement*/
h223_mux_element* me = wmem_new(wmem_file_scope(), h223_mux_element);
h223_me->next = me;
@@ -8887,7 +8880,8 @@ dissect_h245_MultiplexElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_h245_MultiplexElement, MultiplexElement_sequence);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 3;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -9509,11 +9503,9 @@ static const per_choice_t AudioMode_choice[] = {
static int
dissect_h245_AudioMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 3;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // AudioMode → VBDMode → AudioMode
+ actx->pinfo->dissection_depth += 2;
+ increment_dissection_depth(actx->pinfo);
gint32 value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
@@ -9522,7 +9514,8 @@ dissect_h245_AudioMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
codec_type = val_to_str(value, h245_AudioMode_vals, "<unknown>");
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 2;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -9868,16 +9861,15 @@ static const per_choice_t ModeElementType_choice[] = {
static int
dissect_h245_ModeElementType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 6;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // ModeElementType → RedundancyEncodingDTMode → RedundancyEncodingDTModeElement → RedundancyEncodingDTModeElement/type → FECMode → ModeElementType
+ actx->pinfo->dissection_depth += 5;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_h245_ModeElementType, ModeElementType_choice,
NULL);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 5;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-h248.c b/epan/dissectors/packet-h248.c
index ca5f4192..d1799fed 100644
--- a/epan/dissectors/packet-h248.c
+++ b/epan/dissectors/packet-h248.c
@@ -2619,7 +2619,6 @@ static int dissect_h248_MtpAddress(bool implicit_tag, tvbuff_t *tvb, int offset,
static int dissect_h248_SecondEventsDescriptor(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.
static int
@@ -4248,15 +4247,14 @@ static const ber_sequence_t SecondEventsDescriptor_sequence[] = {
static int
dissect_h248_SecondEventsDescriptor(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 7;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // SecondEventsDescriptor → SecondEventsDescriptor/eventList → SecondRequestedEvent → SecondRequestedActions → NotifyBehaviour → RegulatedEmbeddedDescriptor → SecondEventsDescriptor
+ actx->pinfo->dissection_depth += 6;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
SecondEventsDescriptor_sequence, hf_index, ett_h248_SecondEventsDescriptor);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 6;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-h264.c b/epan/dissectors/packet-h264.c
index 9d9a1256..8ca3f5e9 100644
--- a/epan/dissectors/packet-h264.c
+++ b/epan/dissectors/packet-h264.c
@@ -561,17 +561,20 @@ dissect_h264_exp_golomb_code(proto_tree *tree, int hf_index, tvbuff_t *tvb, gint
start_offset = *start_bit_offset>>3;
- if (hf_index > -1)
+ if (hf_index > -1) {
hf_field = proto_registrar_get_nth(hf_index);
+ }
- switch (descriptor) {
- case H264_SE_V:
- DISSECTOR_ASSERT_FIELD_TYPE(hf_field, FT_INT32);
- break;
+ if (hf_field) {
+ switch (descriptor) {
+ case H264_SE_V:
+ DISSECTOR_ASSERT_FIELD_TYPE(hf_field, FT_INT32);
+ break;
- default:
- DISSECTOR_ASSERT_FIELD_TYPE(hf_field, FT_UINT32);
- break;
+ default:
+ DISSECTOR_ASSERT_FIELD_TYPE(hf_field, FT_UINT32);
+ break;
+ }
}
bit_offset = *start_bit_offset;
@@ -2131,6 +2134,7 @@ static int dissect_h264_prefix(proto_tree *tree, tvbuff_t *tvb, packet_info *pin
/* RFC 6190 Section: 4.9 - Payload Content Scalability Information (PACSI) */
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_h264_pacsi(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint offset)
{
gint8 pacsi_flags;
@@ -2201,6 +2205,7 @@ dissect_h264_pacsi(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint off
* RFC 3984 Section 5.7.1 - Single-Time Aggregation Packet (STAP)
*/
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_h264_stap(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset, gint8 nal_type)
{
guint16 nal_unit_size;
@@ -2246,6 +2251,7 @@ dissect_h264_stap(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint
* RFC 3984 Section 5.7.2 Multi-Time Aggregation Packet (MTAP)
*/
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_h264_mtap(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset, gint8 nal_type)
{
gint size_offset;
@@ -2303,6 +2309,7 @@ dissect_h264_mtap(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint
* Dissect NAL Header extension and NI-MTAP Subtype defined in RFC 6190
*/
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_h264_nalu_extension (proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset)
{
gint size_offset;
@@ -2545,6 +2552,7 @@ dissect_h264_bytestream(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
/* Code to actually dissect the packets */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_h264(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
int offset = 0;
@@ -2615,6 +2623,7 @@ dissect_h264(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
rbsp_tvb = dissect_h265_unescap_nal_unit(tvb, pinfo, offset);
stream_tree = proto_tree_add_subtree(h264_tree, tvb, offset, -1, ett_h264_stream, NULL, "H264 NAL Unit Payload");
+ increment_dissection_depth(pinfo);
switch (type) {
case 1: /* 1 Coded slice of a non-IDR picture */
dissect_h264_slice_layer_without_partitioning_rbsp(stream_tree, rbsp_tvb, pinfo, 0);
@@ -2660,6 +2669,7 @@ dissect_h264(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
default:
break;
}
+ decrement_dissection_depth(pinfo);
} /* if (tree) */
return tvb_captured_length(tvb);
}
diff --git a/epan/dissectors/packet-h265.c b/epan/dissectors/packet-h265.c
index eb71ca59..cd0a0481 100644
--- a/epan/dissectors/packet-h265.c
+++ b/epan/dissectors/packet-h265.c
@@ -801,18 +801,21 @@ dissect_h265_exp_golomb_code(proto_tree *tree, int hf_index, tvbuff_t *tvb, pack
start_offset = *start_bit_offset >> 3;
- if (hf_index > -1)
+ if (hf_index > -1) {
hf_field = proto_registrar_get_nth(hf_index);
+ }
- /* Allow only gint32 for se(v), guint32 for others. */
- switch (descriptor) {
- case H265_SE_V:
- DISSECTOR_ASSERT_FIELD_TYPE(hf_field, FT_INT32);
- break;
+ if (hf_field) {
+ /* Allow only gint32 for se(v), guint32 for others. */
+ switch (descriptor) {
+ case H265_SE_V:
+ DISSECTOR_ASSERT_FIELD_TYPE(hf_field, FT_INT32);
+ break;
- default:
- DISSECTOR_ASSERT_FIELD_TYPE(hf_field, FT_UINT32);
- break;
+ default:
+ DISSECTOR_ASSERT_FIELD_TYPE(hf_field, FT_UINT32);
+ break;
+ }
}
bit_offset = *start_bit_offset;
diff --git a/epan/dissectors/packet-hsms.c b/epan/dissectors/packet-hsms.c
index 361012aa..b30c3934 100644
--- a/epan/dissectors/packet-hsms.c
+++ b/epan/dissectors/packet-hsms.c
@@ -174,6 +174,7 @@ static gint ett_hsms_data_item = -1;
#define HSMS_MIN_LENGTH 14
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_secs_variable(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data, int *offset)
{
proto_item *hdr_stream_item;
@@ -265,7 +266,9 @@ dissect_secs_variable(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
if (item_format_code == 0)
{
/* add sub items for list element to item tree */
+ increment_dissection_depth(pinfo);
int subItemLength = dissect_secs_variable(tvb, pinfo, hsms_data_item_tree, data, offset);
+ decrement_dissection_depth(pinfo);
/* check for parsing error in sub list */
if (subItemLength == -1)
@@ -733,11 +736,7 @@ proto_register_hsms(void)
};
/* Register the protocol name and description */
- proto_hsms = proto_register_protocol (
- "High-speed SECS Message Service Protocol", /* name */
- "HSMS", /* short name */
- "hsms" /* abbrev */
- );
+ proto_hsms = proto_register_protocol ("High-speed SECS Message Service Protocol", "HSMS", "hsms");
/* Required function calls to register the header fields and subtrees */
proto_register_field_array(proto_hsms, hf, array_length(hf));
diff --git a/epan/dissectors/packet-http2.c b/epan/dissectors/packet-http2.c
index 7d9cac01..5def945a 100644
--- a/epan/dissectors/packet-http2.c
+++ b/epan/dissectors/packet-http2.c
@@ -2947,6 +2947,78 @@ get_reassembly_id_from_stream(packet_info *pinfo, http2_session_t* session)
return stream_info->stream_id | (flow_index << 31);
}
+/*
+ * Like process_reassembled_data() in reassemble.[ch], but ignores the layer
+ * number, which is not always stable in HTTP/2, if multiple TLS records are
+ * in the same frame.
+ */
+static tvbuff_t*
+http2_process_reassembled_data(tvbuff_t *tvb, const int offset, packet_info *pinfo,
+ const char *name, fragment_head *fd_head, const fragment_items *fit,
+ gboolean *update_col_infop, proto_tree *tree)
+{
+ tvbuff_t* next_tvb;
+ gboolean update_col_info;
+ proto_item* frag_tree_item;
+
+ if (fd_head != NULL) {
+ /*
+ * OK, we've reassembled this.
+ * Is this something that's been reassembled from more
+ * than one fragment?
+ */
+ if (fd_head->next != NULL) {
+ /*
+ * Yes.
+ * Allocate a new tvbuff, referring to the
+ * reassembled payload, and set
+ * the tvbuff to the list of tvbuffs to which
+ * the tvbuff we were handed refers, so it'll get
+ * cleaned up when that tvbuff is cleaned up.
+ */
+ next_tvb = tvb_new_chain(tvb, fd_head->tvb_data);
+
+ /* Add the defragmented data to the data source list. */
+ add_new_data_source(pinfo, next_tvb, name);
+
+ /* show all fragments */
+ if (fd_head->flags & FD_BLOCKSEQUENCE) {
+ update_col_info = !show_fragment_seq_tree(
+ fd_head, fit, tree, pinfo, next_tvb, &frag_tree_item);
+ }
+ else {
+ update_col_info = !show_fragment_tree(fd_head,
+ fit, tree, pinfo, next_tvb, &frag_tree_item);
+ }
+ }
+ else {
+ /*
+ * No.
+ * Return a tvbuff with the payload. next_tvb ist from offset until end
+ */
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
+ pinfo->fragmented = FALSE; /* one-fragment packet */
+ update_col_info = TRUE;
+ }
+ if (update_col_infop != NULL)
+ *update_col_infop = update_col_info;
+ } else {
+ /*
+ * We don't have the complete reassembled payload, or this
+ * isn't the final frame of that payload.
+ */
+ next_tvb = NULL;
+ /* process_reassembled_data() in reassemble.[ch] adds reassembled_in
+ * here, but the reas_in_layer_num is often unstable in HTTP/2 now so
+ * we rely on the stream end flag (that's why we have this function).
+ *
+ * Perhaps we could DISSECTOR_ASSERT() in this path, we shouldn't
+ * get here.
+ */
+ }
+ return next_tvb;
+}
+
static tvbuff_t*
reassemble_http2_data_into_full_frame(tvbuff_t *tvb, packet_info *pinfo, http2_session_t* http2_session, proto_tree *http2_tree, guint offset,
guint8 flags, guint datalen)
@@ -2973,8 +3045,8 @@ reassemble_http2_data_into_full_frame(tvbuff_t *tvb, packet_info *pinfo, http2_s
* incorrectly match for frames that exist in the same packet as the final DATA frame and incorrectly add
* reassembly information to those dissection trees */
if (head && IS_HTTP2_END_STREAM(flags)) {
- return process_reassembled_data(tvb, offset, pinfo, "Reassembled body", head,
- &http2_body_fragment_items, NULL, http2_tree);
+ return http2_process_reassembled_data(tvb, offset, pinfo, "Reassembled body", head,
+ &http2_body_fragment_items, NULL, http2_tree);
}
/* Add frame where reassembly happened. process_reassembled_data() does this automatically if the reassembled
diff --git a/epan/dissectors/packet-icmpv6.c b/epan/dissectors/packet-icmpv6.c
index 1b0d5a22..08b29344 100644
--- a/epan/dissectors/packet-icmpv6.c
+++ b/epan/dissectors/packet-icmpv6.c
@@ -1682,8 +1682,9 @@ static icmp_transaction_t *transaction_end(packet_info *pinfo, proto_tree *tree,
} /* transaction_end() */
-static int
-dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
+// This is recursive, but we'll run out of PDU before we'll run out of stack.
+// NOLINTNEXTLINE(misc-no-recursion)
+static int dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
{
proto_tree *icmp6opt_tree;
proto_item *ti, *ti_opt, *ti_opt_len;
diff --git a/epan/dissectors/packet-icq.c b/epan/dissectors/packet-icq.c
index 93e55bd1..2df62eee 100644
--- a/epan/dissectors/packet-icq.c
+++ b/epan/dissectors/packet-icq.c
@@ -786,6 +786,7 @@ icqv5_srv_user_online(proto_tree *tree,/* Tree to put the data in */
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
icqv5_srv_multi(proto_tree *tree, /* Tree to put the data in */
tvbuff_t *tvb, /* Packet content */
int offset, /* Offset from the start of the packet to the content */
@@ -804,6 +805,7 @@ icqv5_srv_multi(proto_tree *tree, /* Tree to put the data in */
for (i = 0; i < num; i++) {
pktSz = tvb_get_letohs(tvb, offset);
offset += 2;
+ // We recurse here, but we'll run out of packet before we run out of stack.
dissect_icqv5Server(tvb, offset, pinfo, tree, pktSz);
offset += pktSz;
}
@@ -1123,6 +1125,7 @@ dissect_icqv5Client(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_icqv5Server(tvbuff_t *tvb, int offset, packet_info *pinfo,
proto_tree *tree, int pktsize)
{
@@ -1180,6 +1183,7 @@ dissect_icqv5Server(tvbuff_t *tvb, int offset, packet_info *pinfo,
pktsize - ICQ5_SRV_HDRSIZE, pinfo);
break;
case SRV_MULTI:
+ // We recurse here, but we'll run out of packet before we run out of stack.
icqv5_srv_multi(icq_body_tree, tvb, offset + ICQ5_SRV_HDRSIZE, pinfo);
break;
case SRV_ACK:
diff --git a/epan/dissectors/packet-ieee1609dot2.c b/epan/dissectors/packet-ieee1609dot2.c
index 9675333e..2c06c97e 100644
--- a/epan/dissectors/packet-ieee1609dot2.c
+++ b/epan/dissectors/packet-ieee1609dot2.c
@@ -427,7 +427,6 @@ ieee1609dot2_set_next_default_psid(packet_info *pinfo, guint32 psid)
static int dissect_ieee1609dot2_Ieee1609Dot2Data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.
static int
@@ -3024,16 +3023,15 @@ static const oer_sequence_t Ieee1609Dot2Data_sequence[] = {
static int
dissect_ieee1609dot2_Ieee1609Dot2Data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 6;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // Ieee1609Dot2Data → Ieee1609Dot2Content → SignedData → ToBeSignedData → SignedDataPayload → Ieee1609Dot2Data
+ actx->pinfo->dissection_depth += 5;
+ increment_dissection_depth(actx->pinfo);
actx->private_data = (void*)wmem_new0(actx->pinfo->pool, ieee1609_private_data_t);
offset = dissect_oer_sequence(tvb, offset, actx, tree, hf_index,
ett_ieee1609dot2_Ieee1609Dot2Data, Ieee1609Dot2Data_sequence);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 5;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-ieee1722.c b/epan/dissectors/packet-ieee1722.c
index e7a9b5f1..277de8f7 100644
--- a/epan/dissectors/packet-ieee1722.c
+++ b/epan/dissectors/packet-ieee1722.c
@@ -2652,7 +2652,7 @@ static int dissect_1722_acf_can_common(tvbuff_t *tvb, packet_info *pinfo, proto_
}
can_info.len = (guint32)parsed.datalen;
- can_info.fd = parsed.is_fd;
+ can_info.fd = parsed.is_fd ? CAN_TYPE_CAN_FD : CAN_TYPE_CAN_CLASSIC;
/* for practical reasons a remapping might be needed in the future */
can_info.bus_id = (guint16)parsed.bus_id;
diff --git a/epan/dissectors/packet-ip.c b/epan/dissectors/packet-ip.c
index 355fc6c0..481d3725 100644
--- a/epan/dissectors/packet-ip.c
+++ b/epan/dissectors/packet-ip.c
@@ -568,7 +568,7 @@ capture_ip(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo,
}
static void
-add_geoip_info_entry(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, gint offset, ws_in4_addr ip, int isdst)
+add_geoip_info_entry(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, gint offset, ws_in4_addr ip, gboolean isdst)
{
const mmdb_lookup_t *lookup = maxmind_db_lookup_ipv4(&ip);
if (!lookup->found) return;
@@ -593,7 +593,7 @@ add_geoip_info_entry(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, gint o
wmem_strbuf_append(summary, lookup->as_org);
}
- int addr_offset = offset + isdst ? IPH_DST : IPH_SRC;
+ int addr_offset = offset + (isdst ? IPH_DST : IPH_SRC);
int dir_hf = isdst ? hf_geoip_dst_summary : hf_geoip_src_summary;
proto_item *geoip_info_item = proto_tree_add_string(tree, dir_hf, tvb, addr_offset, 4, wmem_strbuf_finalize(summary));
proto_item_set_generated(geoip_info_item);
diff --git a/epan/dissectors/packet-ipp.c b/epan/dissectors/packet-ipp.c
index 8c6941d5..03855671 100644
--- a/epan/dissectors/packet-ipp.c
+++ b/epan/dissectors/packet-ipp.c
@@ -377,20 +377,20 @@ static const value_string status_vals[] = {
{ 0, NULL }
};
-static int parse_attributes(tvbuff_t *tvb, int offset, proto_tree *tree);
+static int parse_attributes(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree);
static proto_tree *add_integer_tree(proto_tree *tree, tvbuff_t *tvb,
int offset, int name_length, const gchar *name, int value_length, guint8 tag);
static void add_integer_value(const gchar *tag_desc, proto_tree *tree,
tvbuff_t *tvb, int offset, int name_length, const gchar *name, int value_length, guint8 tag);
-static proto_tree *add_octetstring_tree(proto_tree *tree, tvbuff_t *tvb,
+static proto_tree *add_octetstring_tree(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo,
int offset, int name_length, const gchar *name, int value_length, guint8 tag);
static proto_tree *add_octetstring_value(const gchar *tag_desc, proto_tree *tree,
- tvbuff_t *tvb, int offset, int name_length, const gchar *name, int value_length, guint8 tag);
+ tvbuff_t *tvb, packet_info *pinfo, int offset, int name_length, const gchar *name, int value_length, guint8 tag);
static proto_tree *add_charstring_tree(proto_tree *tree, tvbuff_t *tvb,
int offset, guint8 tag, int name_length, const gchar *name, int value_length);
static void add_charstring_value(const gchar *tag_desc, proto_tree *tree,
tvbuff_t *tvb, int offset, int name_length, const gchar *name, int value_length, guint8 tag);
-static int ipp_fmt_collection(tvbuff_t *tvb, int offset, char *buffer, int bufsize);
+static int ipp_fmt_collection(tvbuff_t *tvb, packet_info *pinfo, int offset, char *buffer, int bufsize);
static int
dissect_ipp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
@@ -546,7 +546,7 @@ dissect_ipp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
proto_tree_add_item(ipp_tree, hf_ipp_request_id, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
- offset = parse_attributes(tvb, offset, ipp_tree);
+ offset = parse_attributes(tvb, pinfo, offset, ipp_tree);
if (tvb_offset_exists(tvb, offset)) {
call_data_dissector(tvb_new_subset_remaining(tvb, offset), pinfo, ipp_tree);
@@ -630,7 +630,7 @@ static const value_string tag_vals[] = {
};
static int
-parse_attributes(tvbuff_t *tvb, int offset, proto_tree *tree)
+parse_attributes(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree)
{
guint8 tag;
const gchar *tag_desc;
@@ -746,12 +746,12 @@ parse_attributes(tvbuff_t *tvb, int offset, proto_tree *tree)
* an additional value, so
* start a tree for it.
*/
- attr_tree = add_octetstring_tree(as_tree, tvb, offset, name_length, name, value_length, tag);
+ attr_tree = add_octetstring_tree(as_tree, tvb, pinfo, offset, name_length, name, value_length, tag);
}
if (tag == TAG_ENDCOLLECTION)
attr_tree = proto_tree_get_parent_tree(attr_tree);
else
- attr_tree = add_octetstring_value(tag_desc, attr_tree, tvb, offset, name_length, name, value_length, tag);
+ attr_tree = add_octetstring_value(tag_desc, attr_tree, tvb, pinfo, offset, name_length, name, value_length, tag);
break;
case TAG_TYPE_CHARSTRING :
@@ -1007,7 +1007,7 @@ add_integer_value(const gchar *tag_desc, proto_tree *tree, tvbuff_t *tvb,
}
static proto_tree *
-add_octetstring_tree(proto_tree *tree, tvbuff_t *tvb, int offset, int name_length, const gchar *name, int value_length, guint8 tag)
+add_octetstring_tree(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int offset, int name_length, const gchar *name, int value_length, guint8 tag)
{
int count = 0;
const char *type = val_to_str(tag, tag_vals, "unknown-%02x");
@@ -1232,7 +1232,7 @@ add_octetstring_tree(proto_tree *tree, tvbuff_t *tvb, int offset, int name_lengt
count ++;
- valoffset = ipp_fmt_collection(tvb, valoffset + 1 + 2 + name_length + 2 + value_length, temp, sizeof(temp));
+ valoffset = ipp_fmt_collection(tvb, pinfo, valoffset + 1 + 2 + name_length + 2 + value_length, temp, sizeof(temp));
if (value)
value = wmem_strconcat(wmem_packet_scope(), value, ",", temp, NULL);
@@ -1268,7 +1268,7 @@ add_octetstring_tree(proto_tree *tree, tvbuff_t *tvb, int offset, int name_lengt
}
static proto_tree *
-add_octetstring_value(const gchar *tag_desc, proto_tree *tree, tvbuff_t *tvb,
+add_octetstring_value(const gchar *tag_desc, proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo,
int offset, int name_length, const gchar *name _U_, int value_length, guint8 tag)
{
proto_tree *subtree = tree;
@@ -1357,7 +1357,7 @@ add_octetstring_value(const gchar *tag_desc, proto_tree *tree, tvbuff_t *tvb,
break;
case TAG_BEGCOLLECTION :
- endoffset = ipp_fmt_collection(tvb, valoffset + value_length, value, sizeof(value));
+ endoffset = ipp_fmt_collection(tvb, pinfo, valoffset + value_length, value, sizeof(value));
subtree = proto_tree_add_subtree_format(tree, tvb, valoffset, endoffset - valoffset, ett_ipp_member, NULL, "collection %s", value);
break;
@@ -1450,7 +1450,8 @@ add_charstring_value(const gchar *tag_desc, proto_tree *tree, tvbuff_t *tvb,
}
static int
-ipp_fmt_collection(tvbuff_t *tvb, int valoffset, char *buffer, int bufsize)
+// NOLINTNEXTLINE(misc-no-recursion)
+ipp_fmt_collection(tvbuff_t *tvb, packet_info *pinfo, int valoffset, char *buffer, int bufsize)
{
char *bufptr = buffer, *bufend = buffer + bufsize - 1;
guint8 tag;
@@ -1499,7 +1500,9 @@ ipp_fmt_collection(tvbuff_t *tvb, int valoffset, char *buffer, int bufsize)
if (tag == TAG_BEGCOLLECTION) {
char temp[176];
- valoffset = ipp_fmt_collection(tvb, valoffset, temp, sizeof(temp));
+ increment_dissection_depth(pinfo);
+ valoffset = ipp_fmt_collection(tvb, pinfo, valoffset, temp, sizeof(temp));
+ decrement_dissection_depth(pinfo);
if (!overflow) {
if ((bufend - bufptr) < (int)strlen(temp)) {
(void) g_strlcpy(bufptr, "...", bufend - bufptr + 1);
diff --git a/epan/dissectors/packet-ippusb.c b/epan/dissectors/packet-ippusb.c
index e2f9e963..a2a2571b 100644
--- a/epan/dissectors/packet-ippusb.c
+++ b/epan/dissectors/packet-ippusb.c
@@ -203,7 +203,6 @@ dissect_ippusb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
gint next_offset;
guint8 last;
guint8 status_code;
- const guchar *last_chunk = NULL;
struct ippusb_analysis *ippusbd = NULL;
conversation_t *conv = NULL;
@@ -234,9 +233,10 @@ dissect_ippusb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
last = tvb_get_guint8(tvb, captured_length - 1);
status_code = tvb_get_bits8(tvb, 3 * BITS_PER_BYTE, BITS_PER_BYTE);
- /* If segment has length of last chunk from chunk transfer */
- if(captured_length == CHUNK_LENGTH_MIN){
- last_chunk = tvb_get_ptr(tvb, offset, captured_length);
+ /* Is the segment the last chunk from chunk transfer? */
+ bool is_last_chunk = false;
+ if (captured_length == CHUNK_LENGTH_MIN) {
+ is_last_chunk = tvb_memeql(tvb, offset, CHUNKED_END, CHUNK_LENGTH_MIN) == 0;
}
if (is_http_header(first_linelen, first_line) && last == TAG_END_OF_ATTRIBUTES && status_code != PRINT_JOB && status_code != SEND_DOCUMENT) {
@@ -292,7 +292,7 @@ dissect_ippusb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
new_msp->document |= MSP_HAS_DOCUMENT;
}
- if(!(last_chunk && strncmp(last_chunk, CHUNKED_END, CHUNK_LENGTH_MIN) == 0)){
+ if (!is_last_chunk) {
/* If this segment is not the last chunk in a chunked transfer */
if (captured_length < reported_length && (new_msp->document & MSP_HAS_DOCUMENT)) {
@@ -403,7 +403,7 @@ dissect_ippusb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
}
}
}
- else if (current_msp &&last_chunk && strncmp(last_chunk, CHUNKED_END, CHUNK_LENGTH_MIN) == 0) {
+ else if (current_msp && is_last_chunk) {
/* This is the last segment of the chunked transfer and reassembled packet */
proto_tree_add_item(tree, proto_ippusb, tvb, offset, -1, ENC_NA);
diff --git a/epan/dissectors/packet-ipv6.c b/epan/dissectors/packet-ipv6.c
index 3358b92b..2e62cf29 100644
--- a/epan/dissectors/packet-ipv6.c
+++ b/epan/dissectors/packet-ipv6.c
@@ -1027,7 +1027,7 @@ capture_ipv6_exthdr(const guchar *pd, int offset, int len, capture_packet_info_t
}
static void
-add_geoip_info_entry(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, gint offset, const ws_in6_addr *ip6, int isdst)
+add_geoip_info_entry(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, gint offset, const ws_in6_addr *ip6, gboolean isdst)
{
const mmdb_lookup_t *lookup = maxmind_db_lookup_ipv6(ip6);
if (!lookup->found) return;
@@ -1052,7 +1052,7 @@ add_geoip_info_entry(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, gint o
wmem_strbuf_append(summary, lookup->as_org);
}
- int addr_offset = offset + isdst ? IP6H_DST : IP6H_SRC;
+ int addr_offset = offset + (isdst ? IP6H_DST : IP6H_SRC);
int dir_hf = isdst ? hf_geoip_dst_summary : hf_geoip_src_summary;
proto_item *geoip_info_item = proto_tree_add_string(tree, dir_hf, tvb, addr_offset, 16, wmem_strbuf_finalize(summary));
proto_item_set_generated(geoip_info_item);
diff --git a/epan/dissectors/packet-isakmp.c b/epan/dissectors/packet-isakmp.c
index 35d05677..03020be7 100644
--- a/epan/dissectors/packet-isakmp.c
+++ b/epan/dissectors/packet-isakmp.c
@@ -3128,6 +3128,7 @@ static const bytes_string vendor_id[] = {
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_payloads(tvbuff_t *tvb, proto_tree *tree,
int isakmp_version, guint8 initial_payload, int offset, int length,
packet_info *pinfo, guint32 message_id, gboolean is_request, void* decr_data)
@@ -3148,6 +3149,7 @@ dissect_payloads(tvbuff_t *tvb, proto_tree *tree,
ntree = dissect_payload_header(tvb, pinfo, offset, length, isakmp_version, payload, &next_payload, &payload_length, tree);
if (payload_length >= 4) { /* XXX = > 4? */
+ increment_dissection_depth(pinfo);
tvb_ensure_bytes_exist(tvb, offset + 4, payload_length - 4);
switch(payload){
case PLOAD_IKE_SA:
@@ -3250,6 +3252,7 @@ dissect_payloads(tvbuff_t *tvb, proto_tree *tree,
proto_tree_add_item(ntree, hf_isakmp_datapayload, tvb, offset + 4, payload_length-4, ENC_NA);
break;
}
+ increment_dissection_depth(pinfo);
}
else if (payload_length > length) {
proto_tree_add_expert_format(ntree, pinfo, &ei_isakmp_payload_bad_length, tvb, 0, 0,
@@ -3279,6 +3282,7 @@ isakmp_dissect_payloads(tvbuff_t *tvb, proto_tree *tree, int isakmp_version,
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_isakmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
int offset = 0, len;
@@ -3530,6 +3534,7 @@ dissect_payload_header(tvbuff_t *tvb, packet_info *pinfo, int offset, int length
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_sa(tvbuff_t *tvb, int offset, int length, proto_tree *tree, int isakmp_version, packet_info *pinfo, gboolean is_request, void* decr_data)
{
guint32 doi;
@@ -4549,6 +4554,7 @@ dissect_nonce(tvbuff_t *tvb, int offset, int length, proto_tree *ntree)
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_cisco_fragmentation(tvbuff_t *tvb, int offset, int length, proto_tree *tree, packet_info *pinfo)
{
guint8 seq; /* Packet sequence number, starting from 1 */
@@ -4603,6 +4609,7 @@ dissect_cisco_fragmentation(tvbuff_t *tvb, int offset, int length, proto_tree *t
/* This is RFC7383 reassembly. */
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_ikev2_fragmentation(tvbuff_t *tvb, int offset, proto_tree *tree,
packet_info *pinfo, guint message_id, guint8 next_payload, gboolean is_request, void* decr_info)
{
@@ -5537,6 +5544,7 @@ dissect_sa_kek(tvbuff_t *tvb, packet_info *pinfo _U_, int offset, int length, pr
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_sa_tek(tvbuff_t *tvb, packet_info *pinfo _U_, int offset, int length, proto_tree *tree)
{
int offset_end = 0, payload_end=0;
@@ -5603,7 +5611,9 @@ dissect_sa_tek(tvbuff_t *tvb, packet_info *pinfo _U_, int offset, int length, pr
}
if(PLOAD_IKE_SAT == next_payload)
{
+ increment_dissection_depth(pinfo);
dissect_sa_tek(tvb, pinfo, offset, length, tree);
+ decrement_dissection_depth(pinfo);
}
} else {
proto_tree_add_item(ntree, hf_isakmp_sat_payload, tvb, offset, offset_end - offset, ENC_NA);
@@ -5856,6 +5866,7 @@ dissect_ts_payload(tvbuff_t *tvb, int offset, int length, proto_tree *tree)
/* For RFC 7383 reassembly, only need decrypted payload, so don't set dissect_payload_now .*/
/* TODO: rename? */
static tvbuff_t*
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_enc(tvbuff_t *tvb,
int offset,
int length,
diff --git a/epan/dissectors/packet-iscsi.c b/epan/dissectors/packet-iscsi.c
index 0741025c..69072b9d 100644
--- a/epan/dissectors/packet-iscsi.c
+++ b/epan/dissectors/packet-iscsi.c
@@ -715,6 +715,7 @@ handleDataSegmentAsTextKeys(iscsi_session_t *iscsi_session, packet_info *pinfo,
/* Code to actually dissect the packets */
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_iscsi_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, guint8 opcode, guint32 data_segment_len, iscsi_session_t *iscsi_session, conversation_t *conversation) {
guint original_offset = offset;
@@ -1562,7 +1563,9 @@ dissect_iscsi_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint off
tt = proto_tree_add_subtree(ti, tvb, offset, -1, ett_iscsi_RejectHeader, NULL, "Rejected Header");
+ increment_dissection_depth(pinfo);
dissect_iscsi_pdu(tvb, pinfo, tt, offset, next_opcode, 0, iscsi_session, conversation);
+ decrement_dissection_depth(pinfo);
} else if(opcode == ISCSI_OPCODE_VENDOR_SPECIFIC_I0 ||
opcode == ISCSI_OPCODE_VENDOR_SPECIFIC_I1 ||
opcode == ISCSI_OPCODE_VENDOR_SPECIFIC_I2 ||
diff --git a/epan/dissectors/packet-isis-lsp.c b/epan/dissectors/packet-isis-lsp.c
index 598052ca..db15cfb7 100644
--- a/epan/dissectors/packet-isis-lsp.c
+++ b/epan/dissectors/packet-isis-lsp.c
@@ -21,8 +21,9 @@
#include "config.h"
-#include <epan/packet.h>
#include <epan/expert.h>
+#include <epan/packet.h>
+
#include "packet-osi.h"
#include "packet-isis.h"
#include "packet-isis-clv.h"
@@ -3429,6 +3430,7 @@ dissect_srv6_sid_struct_subsubclv(tvbuff_t *tvb, packet_info* pinfo,
*/
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_sub_clv_tlv_22_22_23_141_222_223(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree,
int offset, int subclvs_len)
{
@@ -3446,6 +3448,8 @@ dissect_sub_clv_tlv_22_22_23_141_222_223(tvbuff_t *tvb, packet_info* pinfo, prot
proto_tree *subsubtree = NULL;
proto_item *ti_subsubtree = NULL;
+ increment_dissection_depth(pinfo);
+
while (i < subclvs_len) {
/* offset for each sub-TLV */
sub_tlv_offset = offset + i;
@@ -3705,8 +3709,9 @@ dissect_sub_clv_tlv_22_22_23_141_222_223(tvbuff_t *tvb, packet_info* pinfo, prot
proto_tree_add_item(subtree, hf_isis_lsp_ext_is_reachability_value, tvb, sub_tlv_offset, clv_len, ENC_NA);
break;
}
- i += clv_len + 2;
- }
+ i += clv_len + 2;
+ }
+ decrement_dissection_depth(pinfo);
}
diff --git a/epan/dissectors/packet-iso15765.c b/epan/dissectors/packet-iso15765.c
index bd3ff614..b27dc7ca 100644
--- a/epan/dissectors/packet-iso15765.c
+++ b/epan/dissectors/packet-iso15765.c
@@ -871,10 +871,17 @@ dissect_iso15765_can(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
return 0;
}
- if (can_info.fd) {
+ switch (can_info.fd) {
+
+ case CAN_TYPE_CAN_FD:
return dissect_iso15765(tvb, pinfo, tree, ISO15765_TYPE_CAN_FD, can_info.id, can_info.len);
- } else {
+
+ case CAN_TYPE_CAN_CLASSIC:
return dissect_iso15765(tvb, pinfo, tree, ISO15765_TYPE_CAN, can_info.id, can_info.len);
+
+ default:
+ DISSECTOR_ASSERT_NOT_REACHED();
+ return tvb_captured_length(tvb);
}
}
diff --git a/epan/dissectors/packet-iso7816.c b/epan/dissectors/packet-iso7816.c
index 7f071fc9..dbf7276d 100644
--- a/epan/dissectors/packet-iso7816.c
+++ b/epan/dissectors/packet-iso7816.c
@@ -634,18 +634,20 @@ dissect_iso7816_cmd_apdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
ret = dissect_iso7816_class(tvb, offset, pinfo, tree);
- if (ret==-1) {
+ if (ret == -1) {
/* the class byte says that the remaining APDU is not
in ISO7816 format */
- iso7816_trans->handle =
- dissector_get_payload_handle(iso7816_apdu_pld_table);
- if (iso7816_trans->handle != NULL) {
- ret = call_dissector(iso7816_trans->handle, tvb, pinfo, tree);
- if (ret == 0) {
- col_append_sep_str(pinfo->cinfo, COL_INFO, NULL,
- "Command APDU using proprietary format");
- return 1; /* we only dissected the class byte */
+ if (iso7816_trans) {
+ iso7816_trans->handle =
+ dissector_get_payload_handle(iso7816_apdu_pld_table);
+ if (iso7816_trans->handle != NULL) {
+ ret = call_dissector(iso7816_trans->handle, tvb, pinfo, tree);
+ if (ret == 0) {
+ col_append_sep_str(pinfo->cinfo, COL_INFO, NULL,
+ "Command APDU using proprietary format");
+ return 1; /* we only dissected the class byte */
+ }
}
}
diff --git a/epan/dissectors/packet-isup.c b/epan/dissectors/packet-isup.c
index be5060b7..67dac0ec 100644
--- a/epan/dissectors/packet-isup.c
+++ b/epan/dissectors/packet-isup.c
@@ -9723,6 +9723,7 @@ dissect_japan_chg_inf(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *isu
}
/* ------------------------------------------------------------------ */
+// NOLINTBEGIN(misc-no-recursion)
static void
dissect_ansi_isup_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *isup_tree, guint8 itu_isup_variant, guint32 circuit_id)
{
@@ -9739,6 +9740,9 @@ dissect_ansi_isup_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree
tap_calling_number = NULL;
offset = 0;
+ // We call ourselves for MESSAGE_TYPE_PASS_ALONG.
+ increment_dissection_depth(pinfo);
+
/* Extract message type field */
message_type = tvb_get_guint8(message_tvb, 0);
@@ -9991,8 +9995,12 @@ dissect_ansi_isup_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree
tap_rec->called_number = tap_called_number;
tap_rec->cause_value = tap_cause_value;
tap_queue_packet(isup_tap, pinfo, tap_rec);
+
+ decrement_dissection_depth(pinfo);
}
+// NOLINTEND(misc-no-recursion)
+// NOLINTBEGIN(misc-no-recursion)
static void
dissect_isup_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *isup_tree, guint8 itu_isup_variant, guint32 circuit_id)
{
@@ -10009,6 +10017,9 @@ dissect_isup_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *isup
tap_calling_number = NULL;
offset = 0;
+ // We call ourselves for MESSAGE_TYPE_PASS_ALONG.
+ increment_dissection_depth(pinfo);
+
/* Extract message type field */
message_type = tvb_get_guint8(message_tvb, 0);
@@ -10360,7 +10371,10 @@ dissect_isup_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *isup
tap_rec->called_number = tap_called_number;
tap_rec->cause_value = tap_cause_value;
tap_queue_packet(isup_tap, pinfo, tap_rec);
+
+ decrement_dissection_depth(pinfo);
}
+// NOLINTEND(misc-no-recursion)
/* ------------------------------------------------------------------ */
static int
diff --git a/epan/dissectors/packet-its.c b/epan/dissectors/packet-its.c
index d40d5afe..a651376c 100644
--- a/epan/dissectors/packet-its.c
+++ b/epan/dissectors/packet-its.c
@@ -14082,7 +14082,6 @@ static int dissect_AddGrpC_SignalStatusPackage_addGrpC_PDU(tvbuff_t *tvb _U_, pa
static int dissect_gdd_GddStructure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.
static int
@@ -14999,15 +14998,14 @@ static const per_sequence_t gdd_GddStructure_sequence[] = {
static int
dissect_gdd_GddStructure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 9;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // GddStructure → GddAttributes → GddAttributes/_item → InternationalSign-destinationInformation → InternationalSign-destinationInformation/ioList → DestinationInformationIO → DestinationInformationIO/destPlace → DestinationPlace → GddStructure
+ actx->pinfo->dissection_depth += 8;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_gdd_GddStructure, gdd_GddStructure_sequence);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 8;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-json_3gpp.c b/epan/dissectors/packet-json_3gpp.c
index 662df5b0..8cb4cadb 100644
--- a/epan/dissectors/packet-json_3gpp.c
+++ b/epan/dissectors/packet-json_3gpp.c
@@ -271,6 +271,9 @@ dissect_3gpp_supportfeatures(tvbuff_t* tvb, proto_tree* tree, packet_info* pinfo
}
ti = proto_tree_add_item(tree, hf_json_3gpp_suppfeat, tvb, offset, len, ENC_ASCII);
+ if (len <= 0) {
+ return;
+ }
sub_tree = proto_item_add_subtree(ti, ett_json_3gpp_data);
suppfeat_tvb = tvb_new_subset_length(tvb, offset, len);
diff --git a/epan/dissectors/packet-jxta.c b/epan/dissectors/packet-jxta.c
index 2f020ce8..a6b44d70 100644
--- a/epan/dissectors/packet-jxta.c
+++ b/epan/dissectors/packet-jxta.c
@@ -1461,6 +1461,7 @@ static int dissect_jxta_message(tvbuff_t * tvb, packet_info * pinfo, proto_tree
* the packet was not recognized as a JXTA packet and negative if the
* dissector needs more bytes in order to process a PDU.
**/
+// NOLINTNEXTLINE(misc-no-recursion)
static int dissect_jxta_message_element_1(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, guint ns_count,
const gchar ** names_table)
{
@@ -1591,7 +1592,9 @@ static int dissect_jxta_message_element_1(tvbuff_t * tvb, packet_info * pinfo, p
jxta_signature_element_tvb = tvb_new_subset_remaining(tvb, offset);
+ increment_dissection_depth(pinfo);
processed = dissect_jxta_message_element_1(jxta_signature_element_tvb, pinfo, NULL, 0, NULL);
+ decrement_dissection_depth(pinfo);
if (processed == 0) {
return offset;
@@ -1685,7 +1688,9 @@ static int dissect_jxta_message_element_1(tvbuff_t * tvb, packet_info * pinfo, p
if ((flags & JXTAMSG1_ELMFLAG_SIGNATURE) != 0) {
tvbuff_t *jxta_message_element_tvb = tvb_new_subset_remaining(tvb, tree_offset);
+ increment_dissection_depth(pinfo);
tree_offset += dissect_jxta_message_element_1(jxta_message_element_tvb, pinfo, jxta_elem_tree, ns_count, names_table);
+ decrement_dissection_depth(pinfo);
}
proto_item_set_end(jxta_elem_tree_item, tvb, tree_offset);
@@ -1709,6 +1714,7 @@ static int dissect_jxta_message_element_1(tvbuff_t * tvb, packet_info * pinfo, p
* the packet was not recognized as a JXTA packet and negative if the
* dissector needs more bytes in order to process a PDU.
**/
+// NOLINTNEXTLINE(misc-no-recursion)
static int dissect_jxta_message_element_2(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, guint names_count,
const gchar ** names_table)
{
@@ -1848,7 +1854,9 @@ static int dissect_jxta_message_element_2(tvbuff_t * tvb, packet_info * pinfo, p
jxta_signature_element_tvb = tvb_new_subset_remaining(tvb, offset);
+ increment_dissection_depth(pinfo);
processed = dissect_jxta_message_element_2(jxta_signature_element_tvb, pinfo, NULL, 0, NULL);
+ decrement_dissection_depth(pinfo);
if (processed == 0) {
return offset;
@@ -2014,6 +2022,7 @@ static int dissect_jxta_message_element_2(tvbuff_t * tvb, packet_info * pinfo, p
* the packet was not recognized and negative if the dissector needs
* more bytes in order to process a PDU.
**/
+// NOLINTNEXTLINE(misc-no-recursion)
static int dissect_media( const gchar* fullmediatype, tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree) {
int dissected = 0;
@@ -2047,7 +2056,9 @@ static int dissect_media( const gchar* fullmediatype, tvbuff_t * tvb, packet_inf
add_new_data_source(pinfo, uncomp_tvb, "Uncompressed Element Content");
/* XXX bondolo 20060201 Force XML for uncompressed data. */
+ increment_dissection_depth(pinfo);
dissected = dissect_media("text/xml;charset=\"UTF-8\"", uncomp_tvb, pinfo, tree);
+ decrement_dissection_depth(pinfo);
if( dissected > 0 ) {
/* report back the uncompressed length. */
diff --git a/epan/dissectors/packet-kafka.c b/epan/dissectors/packet-kafka.c
index 798f1c95..482a6701 100644
--- a/epan/dissectors/packet-kafka.c
+++ b/epan/dissectors/packet-kafka.c
@@ -1907,6 +1907,7 @@ decompress(tvbuff_t *tvb, packet_info *pinfo, int offset, guint32 length, int co
* returns: pointer to the next message/batch
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_kafka_message_old(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, int end_offset _U_)
{
proto_item *message_ti;
@@ -2000,6 +2001,7 @@ dissect_kafka_message_old(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, i
* returns: pointer to the next message/batch
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_kafka_message_new(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, int end_offset _U_)
{
proto_item *batch_ti;
@@ -2073,6 +2075,7 @@ dissect_kafka_message_new(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, i
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_kafka_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, int end_offset)
{
gint8 magic_byte;
@@ -2093,14 +2096,19 @@ dissect_kafka_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int o
}
magic_byte = tvb_get_guint8(tvb, offset + 16);
+ int message_offset = 0;
+ increment_dissection_depth(pinfo);
if (magic_byte < 2) {
- return dissect_kafka_message_old(tvb, pinfo, tree, offset, end_offset);
+ message_offset = dissect_kafka_message_old(tvb, pinfo, tree, offset, end_offset);
} else {
- return dissect_kafka_message_new(tvb, pinfo, tree, offset, end_offset);
+ message_offset = dissect_kafka_message_new(tvb, pinfo, tree, offset, end_offset);
}
+ decrement_dissection_depth(pinfo);
+ return message_offset;
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_kafka_message_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, guint len, guint8 codec)
{
proto_item *ti;
diff --git a/epan/dissectors/packet-kerberos.c b/epan/dissectors/packet-kerberos.c
index 34a5408f..024d2192 100644
--- a/epan/dissectors/packet-kerberos.c
+++ b/epan/dissectors/packet-kerberos.c
@@ -2508,7 +2508,7 @@ verify_krb5_pac_ticket_checksum(proto_tree *tree _U_,
}
checksum.length = MIN(checksum.length, (unsigned int)checksum_length);
- tepdata.data = (void *)(uintptr_t)tepbuffer;
+ tepdata.data = (void *)tepbuffer;
tepdata.length = teplength;
ret = decode_krb5_enc_tkt_part(&tepdata, &tep);
diff --git a/epan/dissectors/packet-kink.c b/epan/dissectors/packet-kink.c
index 7c19b1da..87c7fd65 100644
--- a/epan/dissectors/packet-kink.c
+++ b/epan/dissectors/packet-kink.c
@@ -275,6 +275,7 @@ dissect_kink(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
* This function called by the respective function again.
*/
static void
+// NOLINTNEXTLINE(misc-no-recursion)
control_payload(packet_info *pinfo, tvbuff_t *tvb, int offset, guint8 next_payload, proto_tree *kink_tree){
switch(next_payload){
case KINK_DONE:
@@ -310,6 +311,7 @@ control_payload(packet_info *pinfo, tvbuff_t *tvb, int offset, guint8 next_paylo
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_payload_kink_ap_req(packet_info *pinfo, tvbuff_t *tvb, int offset, proto_tree *tree){
proto_tree *payload_kink_ap_req_tree;
proto_item *ti;
@@ -365,6 +367,7 @@ dissect_payload_kink_ap_req(packet_info *pinfo, tvbuff_t *tvb, int offset, proto
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_payload_kink_ap_rep(packet_info *pinfo, tvbuff_t *tvb, int offset, proto_tree *tree){
proto_tree *payload_kink_ap_rep_tree;
proto_item *ti;
@@ -420,6 +423,7 @@ dissect_payload_kink_ap_rep(packet_info *pinfo, tvbuff_t *tvb, int offset, proto
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_payload_kink_krb_error(packet_info *pinfo, tvbuff_t *tvb, int offset, proto_tree *tree){
proto_tree *payload_kink_krb_error_tree;
proto_item *ti;
@@ -472,6 +476,7 @@ dissect_payload_kink_krb_error(packet_info *pinfo, tvbuff_t *tvb, int offset, pr
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_payload_kink_tgt_req(packet_info *pinfo, tvbuff_t *tvb, int offset, proto_tree *tree){
proto_tree *payload_kink_tgt_req_tree;
guint8 next_payload;
@@ -514,6 +519,7 @@ dissect_payload_kink_tgt_req(packet_info *pinfo, tvbuff_t *tvb, int offset, prot
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_payload_kink_tgt_rep(packet_info *pinfo, tvbuff_t *tvb, int offset, proto_tree *tree){
proto_tree *payload_kink_tgt_rep_tree;
guint8 next_payload;
@@ -572,6 +578,7 @@ dissect_payload_kink_tgt_rep(packet_info *pinfo, tvbuff_t *tvb, int offset, prot
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_payload_kink_isakmp(packet_info *pinfo, tvbuff_t *tvb, int offset, proto_tree *tree){
proto_tree *payload_kink_isakmp_tree;
proto_item *ti;
@@ -636,6 +643,7 @@ dissect_payload_kink_isakmp(packet_info *pinfo, tvbuff_t *tvb, int offset, proto
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_payload_kink_encrypt(packet_info *pinfo, tvbuff_t *tvb, int offset, proto_tree *tree){
proto_tree *payload_kink_encrypt_tree;
proto_item *ti;
@@ -714,6 +722,7 @@ dissect_payload_kink_encrypt(packet_info *pinfo, tvbuff_t *tvb, int offset, prot
#ifdef HAVE_KERBEROS
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_decrypt_kink_encrypt(packet_info *pinfo, tvbuff_t *tvb, proto_tree *tree, int payload_length){
proto_tree *decrypt_kink_encrypt_tree;
@@ -750,6 +759,7 @@ static const range_string kink_error_rvals[] = {
};
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_payload_kink_error(packet_info *pinfo, tvbuff_t *tvb, int offset, proto_tree *tree){
proto_tree *payload_kink_error_tree;
proto_item *ti;
@@ -784,6 +794,7 @@ dissect_payload_kink_error(packet_info *pinfo, tvbuff_t *tvb, int offset, proto_
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_payload_kink_not_defined(packet_info *pinfo, tvbuff_t *tvb, int offset, proto_tree *tree){
proto_tree *payload_kink_not_defined_tree;
guint8 next_payload;
@@ -980,6 +991,7 @@ proto_register_kink(void) {
}
void proto_reg_handoff_kink(void) {
+ // If this is ever streamed (transported over TCP) we need to add recursion checks.
dissector_add_uint_with_preference("udp.port", KINK_PORT, kink_handle);
}
diff --git a/epan/dissectors/packet-knxip.c b/epan/dissectors/packet-knxip.c
index cb7d5ec6..15f13d44 100644
--- a/epan/dissectors/packet-knxip.c
+++ b/epan/dissectors/packet-knxip.c
@@ -2646,6 +2646,7 @@ static void make_key_info( gchar* text, gint text_max, const guint8* key, const
/* Dissect SECURE_WRAPPER
*/
+// NOLINTNEXTLINE(misc-no-recursion)
static guint8 dissect_secure_wrapper( guint8 header_length, tvbuff_t* tvb, packet_info* pinfo, proto_tree* root, proto_item* item, proto_tree* tree, gint* p_offset )
{
guint8 ok = 1;
@@ -2803,7 +2804,9 @@ static guint8 dissect_secure_wrapper( guint8 header_length, tvbuff_t* tvb, packe
/* Dissect embedded KIP packet */
{
tvbuff_t* tvb3 = tvb_new_subset_length( tvb2, 0, size2 );
+ increment_dissection_depth(pinfo);
dissect_knxip( tvb3, pinfo, root, NULL );
+ decrement_dissection_depth(pinfo);
}
}
}
@@ -3177,6 +3180,7 @@ static guint8 dissect_session_status( tvbuff_t* tvb, packet_info* pinfo, proto_i
/* Dissect KNX-IP data after KNX-IP header
*/
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_knxip_data( guint8 header_length, guint8 protocol_version _U_, guint16 service, tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, proto_item* kip_item, proto_tree* kip_tree )
{
guint8 ok = 1;
@@ -3740,6 +3744,7 @@ get_knxip_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data
return tvb_get_ntohs( tvb, offset+4 );
}
+// NOLINTNEXTLINE(misc-no-recursion)
static gint dissect_knxip( tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data _U_ )
{
gint offset = 0;
diff --git a/epan/dissectors/packet-ldap.c b/epan/dissectors/packet-ldap.c
index 1ad92152..42834ced 100644
--- a/epan/dissectors/packet-ldap.c
+++ b/epan/dissectors/packet-ldap.c
@@ -1115,7 +1115,6 @@ ldap_match_call_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
static int dissect_ldap_Filter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.
static int
@@ -2174,11 +2173,9 @@ static const ber_choice_t Filter_choice[] = {
static int
dissect_ldap_Filter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 4;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // Filter → Filter/and → Filter/and/_item → Filter
+ actx->pinfo->dissection_depth += 3;
+ increment_dissection_depth(actx->pinfo);
proto_tree *tr;
proto_item *it;
attributedesc_string=NULL;
@@ -2204,7 +2201,8 @@ dissect_ldap_Filter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, as
proto_item_append_text(it, "%s", string_or_null(Filter_string));
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 3;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-ldp.c b/epan/dissectors/packet-ldp.c
index e4114f39..25daf89d 100644
--- a/epan/dissectors/packet-ldp.c
+++ b/epan/dissectors/packet-ldp.c
@@ -2433,6 +2433,7 @@ static int
dissect_tlv(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tree *tree, int rem);
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_tlv_er(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tree *tree, int rem)
{
proto_tree *val_tree;
@@ -2514,6 +2515,7 @@ dissect_tlv_upstrm_ass_lbl(tvbuff_t *tvb, packet_info *pinfo, guint offset, prot
}
/*Dissect IPv4 Interface ID TLV*/
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_tlv_ipv4_interface_id(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tree *tree, int rem)
{
proto_tree *val_tree, *sub_tree;
@@ -2558,6 +2560,7 @@ dissect_tlv_ip_multicast_tunnel(tvbuff_t *tvb, guint offset, proto_tree *tree, i
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_tlv_mpls_context_lbl(tvbuff_t *tvb,packet_info *pinfo, guint offset, proto_tree *tree, int rem)
{
proto_tree *val_tree;
@@ -2594,6 +2597,7 @@ dissect_tlv_rsvp_te_p2mp_lsp(tvbuff_t *tvb, guint offset, proto_tree *tree)
/* Dissect a TLV and return the number of bytes consumed ... */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_tlv(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tree *tree, int rem)
{
guint16 type, typebak;
@@ -2616,6 +2620,8 @@ dissect_tlv(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tree *tree, i
rem -= 4; /*do not count header*/
length = MIN(length, rem); /* Don't go haywire if a problem ... */
+ increment_dissection_depth(pinfo);
+
if (tree) {
proto_tree *tlv_tree;
/*chk for vendor-private*/
@@ -3000,6 +3006,7 @@ dissect_tlv(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tree *tree, i
}
}
+ decrement_dissection_depth(pinfo);
return length + 4; /* Length of the value field + header */
}
diff --git a/epan/dissectors/packet-li5g.c b/epan/dissectors/packet-li5g.c
index f9950c06..af930f46 100644
--- a/epan/dissectors/packet-li5g.c
+++ b/epan/dissectors/packet-li5g.c
@@ -100,6 +100,7 @@ static const value_string attribute_type_vals[] = {
};
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_li5g(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_tree *li5g_tree, *attr_tree, *parent=NULL;
@@ -171,8 +172,11 @@ dissect_li5g(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
li5g_tree->parent=parent;
/* have another li5g in the same packet? */
- if (tvb_captured_length(tvb)>offset+payloadLen)
+ if (tvb_captured_length(tvb)>offset+payloadLen) {
+ increment_dissection_depth(pinfo);
dissect_li5g(tvb_new_subset_remaining(tvb, offset+payloadLen), pinfo, tree, NULL);
+ decrement_dissection_depth(pinfo);
+ }
/* set these info at the end*/
col_set_str(pinfo->cinfo, COL_PROTOCOL, "5GLI");
diff --git a/epan/dissectors/packet-lisp-tcp.c b/epan/dissectors/packet-lisp-tcp.c
index f05e2bbf..108e9f58 100644
--- a/epan/dissectors/packet-lisp-tcp.c
+++ b/epan/dissectors/packet-lisp-tcp.c
@@ -150,7 +150,7 @@ dissect_lisp_tcp_message_eid_prefix(tvbuff_t *tvb, packet_info *pinfo, proto_tre
prefix_length = tvb_get_guint8(tvb, offset);
prefix_afi = tvb_get_ntohs(tvb, offset + 1);
- prefix = get_addr_str(pinfo->pool, tvb, offset + 3, prefix_afi, &addr_len);
+ prefix = get_addr_str(tvb, pinfo, offset + 3, prefix_afi, &addr_len);
if (prefix == NULL) {
expert_add_info_format(pinfo, message_tree, &ei_lisp_tcp_unexpected_afi,
diff --git a/epan/dissectors/packet-lisp.c b/epan/dissectors/packet-lisp.c
index 6eb7db4d..56f9a3ec 100644
--- a/epan/dissectors/packet-lisp.c
+++ b/epan/dissectors/packet-lisp.c
@@ -515,7 +515,8 @@ get_lcaf_data(tvbuff_t *tvb, gint offset, guint8 *lcaf_type, guint16 *len)
}
const gchar *
-get_addr_str(wmem_allocator_t *pool, tvbuff_t *tvb, gint offset, guint16 afi, guint16 *addr_len)
+// NOLINTNEXTLINE(misc-no-recursion)
+get_addr_str(tvbuff_t *tvb, packet_info *pinfo, gint offset, guint16 afi, guint16 *addr_len)
{
const gchar *notset_str = "not set";
const gchar *addr_str;
@@ -529,11 +530,11 @@ get_addr_str(wmem_allocator_t *pool, tvbuff_t *tvb, gint offset, guint16 afi, gu
return notset_str;
case AFNUM_INET:
*addr_len = INET_ADDRLEN;
- addr_str = tvb_ip_to_str(pool, tvb, offset);
+ addr_str = tvb_ip_to_str(pinfo->pool, tvb, offset);
return addr_str;
case AFNUM_INET6:
*addr_len = INET6_ADDRLEN;
- addr_str = tvb_ip6_to_str(pool, tvb, offset);
+ addr_str = tvb_ip6_to_str(pinfo->pool, tvb, offset);
return addr_str;
case AFNUM_LCAF:
get_lcaf_data(tvb, offset, &lcaf_type, addr_len);
@@ -541,24 +542,28 @@ get_addr_str(wmem_allocator_t *pool, tvbuff_t *tvb, gint offset, guint16 afi, gu
if (lcaf_type == LCAF_IID) {
iid = tvb_get_ntohl(tvb, offset + LCAF_HEADER_LEN);
afi = tvb_get_ntohs(tvb, offset + LCAF_HEADER_LEN + 4);
- addr_str = get_addr_str(pool, tvb, offset + LCAF_HEADER_LEN + 6, afi, &cur_len);
- return wmem_strdup_printf(pool, "[%d] %s", iid, addr_str);
+ increment_dissection_depth(pinfo);
+ addr_str = get_addr_str(tvb, pinfo, offset + LCAF_HEADER_LEN + 6, afi, &cur_len);
+ decrement_dissection_depth(pinfo);
+ return wmem_strdup_printf(pinfo->pool, "[%d] %s", iid, addr_str);
}
if (lcaf_type == LCAF_ASN) {
asn = tvb_get_ntohl(tvb, offset + LCAF_HEADER_LEN);
afi = tvb_get_ntohs(tvb, offset + LCAF_HEADER_LEN + 4);
- addr_str = get_addr_str(pool, tvb, offset + LCAF_HEADER_LEN + 6, afi, &cur_len);
- return wmem_strdup_printf(pool, "%s (ASN %d)", addr_str, asn);
+ increment_dissection_depth(pinfo);
+ addr_str = get_addr_str(tvb, pinfo, offset + LCAF_HEADER_LEN + 6, afi, &cur_len);
+ decrement_dissection_depth(pinfo);
+ return wmem_strdup_printf(pinfo->pool, "%s (ASN %d)", addr_str, asn);
}
return addr_str;
case AFNUM_802:
case AFNUM_EUI48:
*addr_len = EUI48_ADDRLEN;
- addr_str = tvb_ether_to_str(pool, tvb, offset);
+ addr_str = tvb_ether_to_str(pinfo->pool, tvb, offset);
return addr_str;
case AFNUM_DISTNAME:
*addr_len = tvb_strsize(tvb, offset);
- addr_str = tvb_get_stringz_enc(pool, tvb, offset, NULL, ENC_ASCII);
+ addr_str = tvb_get_stringz_enc(pinfo->pool, tvb, offset, NULL, ENC_ASCII);
return addr_str;
default:
return NULL;
@@ -566,6 +571,7 @@ get_addr_str(wmem_allocator_t *pool, tvbuff_t *tvb, gint offset, guint16 afi, gu
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_lcaf_natt_rloc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
gint offset, const gchar *str, int idx)
{
@@ -584,7 +590,7 @@ dissect_lcaf_natt_rloc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 2;
/* Reencap hop */
- rloc_str = get_addr_str(pinfo->pool, tvb, offset, rloc_afi, &addr_len);
+ rloc_str = get_addr_str(tvb, pinfo, offset, rloc_afi, &addr_len);
switch (rloc_afi) {
case AFNUM_RESERVED:
@@ -616,6 +622,7 @@ dissect_lcaf_natt_rloc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_lcaf_elp_hop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
gint offset, int idx, proto_item *tip)
{
@@ -646,7 +653,7 @@ dissect_lcaf_elp_hop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 2;
/* Reencap hop */
- hop_str = get_addr_str(pinfo->pool, tvb, offset, hop_afi, &addr_len);
+ hop_str = get_addr_str(tvb, pinfo, offset, hop_afi, &addr_len);
switch (hop_afi) {
case AFNUM_INET:
@@ -688,6 +695,7 @@ dissect_lcaf_elp_hop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_lcaf_rle_entry(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
gint offset, int idx, proto_item *tip)
{
@@ -716,7 +724,7 @@ dissect_lcaf_rle_entry(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 2;
/* RTR/ETR entry */
- entry_str = get_addr_str(pinfo->pool, tvb, offset, entry_afi, &addr_len);
+ entry_str = get_addr_str(tvb, pinfo, offset, entry_afi, &addr_len);
switch (entry_afi) {
case AFNUM_INET:
@@ -756,6 +764,7 @@ dissect_lcaf_rle_entry(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_lcaf_afi_list(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
gint offset, guint16 length)
{
@@ -796,7 +805,7 @@ dissect_lcaf_afi_list(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case AFNUM_LCAF:
old_offset = offset;
- lcaf_str = get_addr_str(pinfo->pool, tvb, offset, afi, &addr_len);
+ lcaf_str = get_addr_str(tvb, pinfo, offset, afi, &addr_len);
proto_item_append_text(tir, " %d. %s", i, lcaf_str);
proto_item_set_len(tir, 2 + addr_len);
offset = dissect_lcaf(tvb, pinfo, lisp_afi_list_tree, offset, tir);
@@ -848,6 +857,7 @@ dissect_lcaf_afi_list(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_lcaf_iid(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, proto_item *tip)
{
const gchar *ip_address;
@@ -865,7 +875,7 @@ dissect_lcaf_iid(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offse
offset += 2;
/* Address */
- ip_address = get_addr_str(pinfo->pool, tvb, offset, afi, &addr_len);
+ ip_address = get_addr_str(tvb, pinfo, offset, afi, &addr_len);
if (ip_address && afi)
proto_item_append_text(tip, ", Address: %s", ip_address);
@@ -922,6 +932,7 @@ dissect_lcaf_iid(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offse
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_lcaf_asn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, proto_item *tip)
{
const gchar *addr;
@@ -939,7 +950,7 @@ dissect_lcaf_asn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offse
offset += 2;
/* Address */
- addr = get_addr_str(pinfo->pool, tvb, offset, afi, &addr_len);
+ addr = get_addr_str(tvb, pinfo, offset, afi, &addr_len);
if (addr && afi)
proto_item_append_text(tip, ", Address: %s", addr);
@@ -1000,6 +1011,7 @@ dissect_lcaf_asn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offse
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_lcaf_geo(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, proto_item *tir)
{
guint16 addr_len = 0;
@@ -1108,7 +1120,7 @@ dissect_lcaf_geo(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offse
proto_tree_add_item(tree, hf_lisp_lcaf_geo_afi, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
- ip_address = get_addr_str(pinfo->pool, tvb, offset, afi, &addr_len);
+ ip_address = get_addr_str(tvb, pinfo, offset, afi, &addr_len);
if (ip_address && afi)
proto_item_append_text(tir, ", Address: %s", ip_address);
@@ -1235,6 +1247,7 @@ dissect_lcaf_natt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_lcaf_nonce_loc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, proto_item *tip)
{
const gchar *addr;
@@ -1257,7 +1270,7 @@ dissect_lcaf_nonce_loc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint
offset += 2;
/* Address */
- addr = get_addr_str(pinfo->pool, tvb, offset, afi, &addr_len);
+ addr = get_addr_str(tvb, pinfo, offset, afi, &addr_len);
if (addr && afi)
proto_item_append_text(tip, ", Address: %s", addr);
@@ -1318,6 +1331,7 @@ dissect_lcaf_nonce_loc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_lcaf_mcast_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
gint offset, proto_item *tir)
{
@@ -1356,7 +1370,7 @@ dissect_lcaf_mcast_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 2;
/* Source/Subnet Address */
- src_str = get_addr_str(pinfo->pool, tvb, offset, afi, &addr_len);
+ src_str = get_addr_str(tvb, pinfo, offset, afi, &addr_len);
switch (afi) {
case AFNUM_INET:
@@ -1389,7 +1403,7 @@ dissect_lcaf_mcast_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 2;
/* Group Address */
- grp_str = get_addr_str(pinfo->pool, tvb, offset, afi, &addr_len);
+ grp_str = get_addr_str(tvb, pinfo, offset, afi, &addr_len);
switch (afi) {
case AFNUM_INET:
@@ -1479,6 +1493,7 @@ dissect_lcaf_elp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_lcaf_src_dst_key(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
gint offset, proto_item *tir)
{
@@ -1511,7 +1526,7 @@ dissect_lcaf_src_dst_key(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 2;
/* Source Prefix */
- src_str = get_addr_str(pinfo->pool, tvb, offset, afi, &addr_len);
+ src_str = get_addr_str(tvb, pinfo, offset, afi, &addr_len);
switch (afi) {
case AFNUM_INET:
@@ -1550,7 +1565,7 @@ dissect_lcaf_src_dst_key(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 2;
/* Destination Prefix */
- dst_str = get_addr_str(pinfo->pool, tvb, offset, afi, &addr_len);
+ dst_str = get_addr_str(tvb, pinfo, offset, afi, &addr_len);
switch (afi) {
case AFNUM_INET:
@@ -1643,6 +1658,7 @@ dissect_lcaf_rle(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_lcaf_kv_addr_pair(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
gint offset)
{
@@ -1661,7 +1677,7 @@ dissect_lcaf_kv_addr_pair(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 2;
/* Key */
- key_str = get_addr_str(pinfo->pool, tvb, offset, afi, &addr_len);
+ key_str = get_addr_str(tvb, pinfo, offset, afi, &addr_len);
switch (afi) {
case AFNUM_INET:
@@ -1705,7 +1721,7 @@ dissect_lcaf_kv_addr_pair(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 2;
/* Value */
- value_str = get_addr_str(pinfo->pool, tvb, offset, afi, &addr_len);
+ value_str = get_addr_str(tvb, pinfo, offset, afi, &addr_len);
switch (afi) {
case AFNUM_INET:
@@ -1821,6 +1837,7 @@ dissect_lcaf_vendor(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
*/
int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_lcaf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, proto_item *tip)
{
guint8 lcaf_type;
@@ -1875,6 +1892,7 @@ dissect_lcaf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, p
payload_tvb = tvb_new_subset_length(tvb, 0, offset + len);
ti = (tip) ? tip : tir;
+ increment_dissection_depth(pinfo);
switch (lcaf_type) {
case LCAF_NULL:
break;
@@ -1918,6 +1936,7 @@ dissect_lcaf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, p
proto_tree_add_expert(tree, pinfo, &ei_lisp_undecoded, tvb, offset, len);
return offset + len;
}
+ decrement_dissection_depth(pinfo);
return offset;
}
@@ -1985,7 +2004,7 @@ dissect_lisp_locator(tvbuff_t *tvb, packet_info *pinfo, proto_tree *lisp_mapping
loc_afi = tvb_get_ntohs(tvb, offset);
offset += 2;
- locator = get_addr_str(pinfo->pool, tvb, offset, loc_afi, &addr_len);
+ locator = get_addr_str(tvb, pinfo, offset, loc_afi, &addr_len);
if (locator == NULL) {
expert_add_info_format(pinfo, lisp_mapping_tree, &ei_lisp_unexpected_field,
@@ -2054,7 +2073,7 @@ dissect_lisp_mapping(tvbuff_t *tvb, packet_info *pinfo, proto_tree *lisp_tree,
act = flags & LISP_MAP_ACT;
act >>= 13;
- prefix = get_addr_str(pinfo->pool, tvb, offset + 12, prefix_afi, &addr_len);
+ prefix = get_addr_str(tvb, pinfo, offset + 12, prefix_afi, &addr_len);
if (prefix == NULL) {
expert_add_info_format(pinfo, lisp_tree, &ei_lisp_unexpected_field,
@@ -2290,7 +2309,7 @@ dissect_lisp_map_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *lisp_tre
offset += INET6_ADDRLEN;
break;
case AFNUM_LCAF:
- src_eid = get_addr_str(pinfo->pool, tvb, offset, src_eid_afi, &addr_len);
+ src_eid = get_addr_str(tvb, pinfo, offset, src_eid_afi, &addr_len);
lcaf_src_eid_tree = proto_tree_add_subtree_format(lisp_tree, tvb, offset, addr_len, ett_lisp_lcaf, NULL, "Source EID: %s", src_eid);
dissect_lcaf(tvb, pinfo, lcaf_src_eid_tree, offset, NULL);
offset += addr_len;
@@ -2355,7 +2374,7 @@ dissect_lisp_map_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *lisp_tre
addr_len = 0;
prefix_mask = tvb_get_guint8(tvb, offset + 1);
prefix_afi = tvb_get_ntohs(tvb, offset + 2);
- prefix = get_addr_str(pinfo->pool, tvb, offset + 4, prefix_afi, &addr_len);
+ prefix = get_addr_str(tvb, pinfo, offset + 4, prefix_afi, &addr_len);
if (prefix == NULL) {
expert_add_info_format(pinfo, lisp_tree, &ei_lisp_unexpected_field,
@@ -2879,7 +2898,7 @@ dissect_lisp_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *lisp_tree)
proto_tree_add_item(prefix_tree, hf_lisp_info_prefix_afi, tvb, offset, 2, ENC_BIG_ENDIAN);
prefix_afi = tvb_get_ntohs(tvb, offset); offset += 2;
- prefix = get_addr_str(pinfo->pool, tvb, offset, prefix_afi, &addr_len);
+ prefix = get_addr_str(tvb, pinfo, offset, prefix_afi, &addr_len);
if (prefix == NULL) {
expert_add_info_format(pinfo, lisp_tree, &ei_lisp_unexpected_field,
diff --git a/epan/dissectors/packet-lisp.h b/epan/dissectors/packet-lisp.h
index b85a647a..5a61c63a 100644
--- a/epan/dissectors/packet-lisp.h
+++ b/epan/dissectors/packet-lisp.h
@@ -22,7 +22,7 @@
#define LISP_CONTROL_PORT 4342
-const gchar * get_addr_str(wmem_allocator_t *pool, tvbuff_t *tvb, gint offset, guint16 afi, guint16 *addr_len);
+const gchar * get_addr_str(tvbuff_t *tvb, packet_info *pinfo, gint offset, guint16 afi, guint16 *addr_len);
int dissect_lcaf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, proto_item *tip);
int dissect_lisp_mapping(tvbuff_t *tvb, packet_info *pinfo, proto_tree *lisp_tree,
guint8 rec_cnt, int rec, gboolean referral, gint offset, proto_item *tim);
diff --git a/epan/dissectors/packet-llrp.c b/epan/dissectors/packet-llrp.c
index 9b02b072..4e97b53c 100644
--- a/epan/dissectors/packet-llrp.c
+++ b/epan/dissectors/packet-llrp.c
@@ -1519,6 +1519,7 @@ static guint dissect_llrp_item_array(tvbuff_t * const tvb, packet_info *pinfo,
}
static guint
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_llrp_impinj_parameter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *param_tree,
guint suboffset, const guint param_end)
{
@@ -1806,6 +1807,7 @@ dissect_llrp_impinj_parameter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *par
}
static guint
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_llrp_parameters(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
guint offset, const guint end, const guint depth)
{
@@ -1857,6 +1859,7 @@ dissect_llrp_parameters(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 2;
suboffset = offset;
+ increment_dissection_depth(pinfo);
switch(type) {
case LLRP_TLV_RO_BOUND_SPEC:
case LLRP_TLV_UHF_CAPABILITIES:
@@ -2503,6 +2506,7 @@ dissect_llrp_parameters(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
break;
}
+ decrement_dissection_depth(pinfo);
/* Have we decoded exactly the number of bytes declared in the parameter? */
if(suboffset != param_end) {
/* Report problem */
@@ -2566,7 +2570,7 @@ dissect_llrp_parameters(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
* will already show up as 'unknown'. */
real_len = 0;
break;
- };
+ }
ti = proto_tree_add_none_format(tree, hf_llrp_param, tvb,
offset, real_len + 1, "TV Parameter : %s",
@@ -3996,8 +4000,7 @@ proto_register_llrp(void)
expert_module_t* expert_llrp;
/* Register the protocol name and description */
- proto_llrp = proto_register_protocol("Low Level Reader Protocol",
- "LLRP", "llrp");
+ proto_llrp = proto_register_protocol("Low Level Reader Protocol", "LLRP", "llrp");
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array(proto_llrp, hf, array_length(hf));
diff --git a/epan/dissectors/packet-lwm2mtlv.c b/epan/dissectors/packet-lwm2mtlv.c
index da5995fb..032a13f6 100644
--- a/epan/dissectors/packet-lwm2mtlv.c
+++ b/epan/dissectors/packet-lwm2mtlv.c
@@ -820,6 +820,7 @@ addValueInterpretations(packet_info *pinfo, tvbuff_t *tvb, proto_tree *tlv_tree,
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
addValueTree(packet_info *pinfo, tvbuff_t *tvb, proto_tree *tlv_tree, lwm2mElement_t *element, gint object_id, gint resource_id, const lwm2m_resource_t *resource)
{
guint valueOffset = 1 + element->length_of_identifier + element->length_of_length;
@@ -839,6 +840,7 @@ addValueTree(packet_info *pinfo, tvbuff_t *tvb, proto_tree *tlv_tree, lwm2mEleme
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
addTlvElement(packet_info *pinfo, tvbuff_t *tvb, proto_tree *tlv_tree, lwm2mElement_t *element, gint object_id, gint resource_id)
{
proto_tree *element_tree = NULL;
@@ -906,6 +908,7 @@ static guint parseTLVHeader(tvbuff_t *tvb, lwm2mElement_t *element)
return element->totalLength;
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void parseArrayOfElements(packet_info *pinfo, tvbuff_t *tvb, proto_tree *tlv_tree, gint object_id, gint resource_id)
{
guint length;
@@ -916,6 +919,7 @@ static void parseArrayOfElements(packet_info *pinfo, tvbuff_t *tvb, proto_tree *
length = tvb_reported_length(tvb);
+ increment_dissection_depth(pinfo);
while ( length > 0 ) {
tvbuff_t* sub = tvb_new_subset_length(tvb, offset, length);
elementLength = parseTLVHeader(sub, &element);
@@ -932,6 +936,7 @@ static void parseArrayOfElements(packet_info *pinfo, tvbuff_t *tvb, proto_tree *
break;
}
}
+ decrement_dissection_depth(pinfo);
proto_item_append_text(tlv_tree, " (%u element%s)", element_count, plurality(element_count, "", "s"));
}
@@ -1170,11 +1175,7 @@ void proto_register_lwm2mtlv(void)
module_t *lwm2mtlv_module;
/* Register our configuration options */
- proto_lwm2mtlv = proto_register_protocol (
- "Lightweight M2M TLV",
- "LwM2M-TLV",
- "lwm2mtlv"
- );
+ proto_lwm2mtlv = proto_register_protocol ("Lightweight M2M TLV", "LwM2M-TLV","lwm2mtlv");
proto_register_field_array(proto_lwm2mtlv, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
diff --git a/epan/dissectors/packet-m2ua.c b/epan/dissectors/packet-m2ua.c
index 3e0e662a..e575ebad 100644
--- a/epan/dissectors/packet-m2ua.c
+++ b/epan/dissectors/packet-m2ua.c
@@ -655,6 +655,7 @@ dissect_retrieval_result_parameter(tvbuff_t *parameter_tvb, proto_tree *paramete
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_link_key_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -702,6 +703,7 @@ dissect_sdl_identifier_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_registration_result_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -745,6 +747,7 @@ dissect_registration_status_parameter(tvbuff_t *parameter_tvb, proto_tree *param
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_deregistration_result_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -864,6 +867,7 @@ static const value_string parameter_tag_values[] = {
static gint protocol_data_1_global = PROTOCOL_DATA_1_PARAMETER_TAG;
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree, proto_tree *m2ua_tree)
{
guint16 tag, length, padding_length;
@@ -994,6 +998,7 @@ dissect_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree,
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_parameters(tvbuff_t *parameters_tvb, packet_info *pinfo, proto_tree *tree, proto_tree *m2ua_tree)
{
gint offset, length, total_length, remaining_length;
@@ -1007,7 +1012,9 @@ dissect_parameters(tvbuff_t *parameters_tvb, packet_info *pinfo, proto_tree *tre
total_length = MIN(total_length, remaining_length);
/* create a tvb for the parameter including the padding bytes */
parameter_tvb = tvb_new_subset_length(parameters_tvb, offset, total_length);
+ increment_dissection_depth(pinfo);
dissect_parameter(parameter_tvb, pinfo, tree, m2ua_tree);
+ decrement_dissection_depth(pinfo);
/* get rid of the handled parameter */
offset += total_length;
}
diff --git a/epan/dissectors/packet-m3ua.c b/epan/dissectors/packet-m3ua.c
index 7ce880c6..73533fda 100644
--- a/epan/dissectors/packet-m3ua.c
+++ b/epan/dissectors/packet-m3ua.c
@@ -860,6 +860,7 @@ dissect_concerned_destination_parameter(tvbuff_t *parameter_tvb, proto_tree *par
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_routing_key_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -900,6 +901,7 @@ dissect_v67_registration_result_parameter(tvbuff_t *parameter_tvb, proto_tree *p
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_registration_result_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -933,6 +935,7 @@ dissect_v67_deregistration_result_parameter(tvbuff_t *parameter_tvb, proto_tree
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_deregistration_result_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -1308,6 +1311,7 @@ dissect_deregistration_status_parameter(tvbuff_t *parameter_tvb, proto_tree *par
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_registration_results_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -1319,6 +1323,7 @@ dissect_registration_results_parameter(tvbuff_t *parameter_tvb, packet_info *pin
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_deregistration_results_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -1498,6 +1503,7 @@ static const value_string v6_parameter_tag_values[] = {
{ 0, NULL } };
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_v6_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree, proto_tree *m3ua_tree)
{
guint16 tag, length, padding_length;
@@ -1665,6 +1671,7 @@ static const value_string v7_parameter_tag_values[] = {
{ 0, NULL } };
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_v7_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree, proto_tree *m3ua_tree)
{
guint16 tag, length, padding_length;
@@ -1831,6 +1838,7 @@ static const value_string parameter_tag_values[] = {
{ 0, NULL } };
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree, proto_tree *m3ua_tree)
{
guint16 tag, length, padding_length;
@@ -1940,6 +1948,7 @@ dissect_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree,
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_parameters(tvbuff_t *parameters_tvb, packet_info *pinfo, proto_tree *tree, proto_tree *m3ua_tree)
{
gint offset, length, total_length, remaining_length;
@@ -1953,6 +1962,7 @@ dissect_parameters(tvbuff_t *parameters_tvb, packet_info *pinfo, proto_tree *tre
total_length = MIN(total_length, remaining_length);
/* create a tvb for the parameter including the padding bytes */
parameter_tvb = tvb_new_subset_length(parameters_tvb, offset, total_length);
+ increment_dissection_depth(pinfo);
switch(version) {
case M3UA_V5:
dissect_v5_parameter(parameter_tvb, pinfo, tree, m3ua_tree);
@@ -1967,6 +1977,7 @@ dissect_parameters(tvbuff_t *parameters_tvb, packet_info *pinfo, proto_tree *tre
dissect_parameter(parameter_tvb, pinfo, tree, m3ua_tree);
break;
}
+ decrement_dissection_depth(pinfo);
/* get rid of the handled parameter */
offset += total_length;
}
@@ -1974,6 +1985,7 @@ dissect_parameters(tvbuff_t *parameters_tvb, packet_info *pinfo, proto_tree *tre
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *tree, proto_tree *m3ua_tree)
{
tvbuff_t *common_header_tvb, *parameters_tvb;
diff --git a/epan/dissectors/packet-mac-lte.c b/epan/dissectors/packet-mac-lte.c
index e6c882fc..363a9bc5 100644
--- a/epan/dissectors/packet-mac-lte.c
+++ b/epan/dissectors/packet-mac-lte.c
@@ -3151,7 +3151,7 @@ static gint dissect_rar_entry(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
proto_item *ul_grant_ti;
guint32 timing_advance;
guint32 ul_grant;
- guint16 temp_crnti;
+ guint32 temp_crnti;
const gchar *rapid_description;
guint32 bits_offset;
@@ -3356,7 +3356,7 @@ static gint dissect_rar_entry(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
/* Temporary C-RNTI */
proto_tree_add_item_ret_uint(rar_body_tree, hf_mac_lte_rar_temporary_crnti, tvb, offset, 2,
- ENC_BIG_ENDIAN, (guint32*)&temp_crnti);
+ ENC_BIG_ENDIAN, &temp_crnti);
offset += 2;
rapid_description = get_mac_lte_rapid_description(rapid);
@@ -3379,6 +3379,7 @@ static void dissect_rar(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, pro
{
guint number_of_rars = 0; /* No of RAR bodies expected following headers */
guint8 *rapids = (guint8 *)wmem_alloc(pinfo->pool, MAX_RAR_PDUS * sizeof(guint8));
+ guint32 temp_rapid;
gboolean backoff_indicator_seen = FALSE;
guint32 backoff_indicator = 0;
guint8 extension;
@@ -3469,7 +3470,8 @@ static void dissect_rar(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, pro
const gchar *rapid_description;
proto_tree_add_item_ret_uint(rar_header_tree, hf_mac_lte_rar_rapid, tvb, offset, 1,
- ENC_BIG_ENDIAN, (guint32*)&rapids[number_of_rars]);
+ ENC_BIG_ENDIAN, &temp_rapid);
+ rapids[number_of_rars] = (guint8)temp_rapid;
rapid_description = get_mac_lte_rapid_description(rapids[number_of_rars]);
@@ -6260,7 +6262,7 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
proto_tree *bsr_tree;
proto_item *bsr_ti, *bsr_median_ti;
proto_item *buffer_size_ti;
- guint8 buffer_size[4];
+ guint32 buffer_size[4];
int hfindex[4];
value_string_ext *p_vs_ext;
guint32 *p_buffer_size_median;
@@ -6294,7 +6296,7 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
/* LCID Group 0 */
buffer_size_ti = proto_tree_add_item_ret_uint(bsr_tree, hfindex[0],
tvb, offset, 1,
- ENC_BIG_ENDIAN, (guint32*)&buffer_size[0]);
+ ENC_BIG_ENDIAN, &buffer_size[0]);
if (global_mac_lte_show_BSR_median) {
/* Add value that can be graphed */
@@ -6302,7 +6304,7 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
proto_item_set_generated(bsr_median_ti);
}
- if (buffer_size[0] >= global_mac_lte_bsr_warn_threshold) {
+ if ((gint)buffer_size[0] >= global_mac_lte_bsr_warn_threshold) {
expert_add_info_format(pinfo, buffer_size_ti, &ei_mac_lte_bsr_warn_threshold_exceeded,
"UE %u - BSR for LCG 0 exceeds threshold: %u (%s)",
p_mac_lte_info->ueid,
@@ -6313,7 +6315,7 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
/* LCID Group 1 */
buffer_size_ti = proto_tree_add_item_ret_uint(bsr_tree, hfindex[1],
tvb, offset, 2,
- ENC_BIG_ENDIAN, (guint32*)&buffer_size[1]);
+ ENC_BIG_ENDIAN, &buffer_size[1]);
if (global_mac_lte_show_BSR_median) {
/* Add value that can be graphed */
@@ -6322,7 +6324,7 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
}
offset++;
- if (buffer_size[1] >= global_mac_lte_bsr_warn_threshold) {
+ if ((gint)buffer_size[1] >= global_mac_lte_bsr_warn_threshold) {
expert_add_info_format(pinfo, buffer_size_ti, &ei_mac_lte_bsr_warn_threshold_exceeded,
"UE %u - BSR for LCG 1 exceeds threshold: %u (%s)",
p_mac_lte_info->ueid,
@@ -6333,7 +6335,7 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
/* LCID Group 2 */
buffer_size_ti = proto_tree_add_item_ret_uint(bsr_tree, hfindex[2],
tvb, offset, 2,
- ENC_BIG_ENDIAN, (guint32*)&buffer_size[2]);
+ ENC_BIG_ENDIAN, &buffer_size[2]);
if (global_mac_lte_show_BSR_median) {
/* Add value that can be graphed */
@@ -6342,7 +6344,7 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
}
offset++;
- if (buffer_size[2] >= global_mac_lte_bsr_warn_threshold) {
+ if ((gint)buffer_size[2] >= global_mac_lte_bsr_warn_threshold) {
expert_add_info_format(pinfo, buffer_size_ti, &ei_mac_lte_bsr_warn_threshold_exceeded,
"UE %u - BSR for LCG 2 exceeds threshold: %u (%s)",
p_mac_lte_info->ueid,
@@ -6353,7 +6355,7 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
/* LCID Group 3 */
buffer_size_ti = proto_tree_add_item_ret_uint(bsr_tree, hfindex[3],
tvb, offset, 1,
- ENC_BIG_ENDIAN, (guint32*)&buffer_size[3]);
+ ENC_BIG_ENDIAN, &buffer_size[3]);
if (global_mac_lte_show_BSR_median) {
/* Add value that can be graphed */
@@ -6362,7 +6364,7 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
}
offset++;
- if (buffer_size[3] >= global_mac_lte_bsr_warn_threshold) {
+ if ((gint)buffer_size[3] >= global_mac_lte_bsr_warn_threshold) {
expert_add_info_format(pinfo, buffer_size_ti, &ei_mac_lte_bsr_warn_threshold_exceeded,
"UE %u - BSR for LCG 3 exceeds threshold: %u (%s)",
p_mac_lte_info->ueid,
diff --git a/epan/dissectors/packet-mbim.c b/epan/dissectors/packet-mbim.c
index 1b594968..0cf68657 100644
--- a/epan/dissectors/packet-mbim.c
+++ b/epan/dissectors/packet-mbim.c
@@ -3373,6 +3373,7 @@ mbim_dissect_nssai(tvbuff_t* tvb, proto_tree* tree, gint offset, gint nssai_buff
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
mbim_dissect_precfg_dflt_cfg_nssai(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, gint offset, gint nssai_buffer_length)
{
proto_tree* subtree;
@@ -3418,6 +3419,7 @@ mbim_dissect_rej_nssai(tvbuff_t* tvb, proto_tree* tree, gint offset, gint rej_ns
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
mbim_dissect_ladn(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, gint offset, gint rej_nssai_buffer_length)
{
proto_tree* subtree, * ladn_tree;
@@ -3598,6 +3600,7 @@ mbim_dissect_ursp_rules(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, gin
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
mbim_dissect_tlv_ie(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint *offset)
{
guint tlv_data_offset;
@@ -3615,6 +3618,7 @@ mbim_dissect_tlv_ie(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint *o
*offset += 4;
tlv_data_offset = *offset;
if (data_length) {
+ increment_dissection_depth(pinfo);
// New TLV types will be added here
switch (tlv_type) {
case TLV_TYPE_SINGLE_NSSAI:
@@ -3665,6 +3669,7 @@ mbim_dissect_tlv_ie(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint *o
proto_tree_add_item(tree, hf_mbim_tlv_ie_unnamed_data, tvb, *offset, data_length, ENC_NA);
break;
}
+ decrement_dissection_depth(pinfo);
*offset = tlv_data_offset + data_length;
}
if (padding_length) {
diff --git a/epan/dissectors/packet-mms.c b/epan/dissectors/packet-mms.c
index cacfdbaf..81e7aaf3 100644
--- a/epan/dissectors/packet-mms.c
+++ b/epan/dissectors/packet-mms.c
@@ -1039,7 +1039,6 @@ static int dissect_mms_AlternateAccess(bool implicit_tag _U_, tvbuff_t *tvb _U_,
static int dissect_mms_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.
static int
@@ -1558,16 +1557,15 @@ static const ber_choice_t TypeSpecification_choice[] = {
static int
dissect_mms_TypeSpecification(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 3;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // TypeSpecification → TypeSpecification/array → TypeSpecification
+ actx->pinfo->dissection_depth += 2;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
TypeSpecification_choice, hf_index, ett_mms_TypeSpecification,
NULL);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 2;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -1749,15 +1747,14 @@ static const ber_sequence_t AlternateAccess_sequence_of[1] = {
static int
dissect_mms_AlternateAccess(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 5;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // AlternateAccess → AlternateAccess/_item → AlternateAccessSelection → AlternateAccessSelection/selectAlternateAccess → AlternateAccess
+ actx->pinfo->dissection_depth += 4;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
AlternateAccess_sequence_of, hf_index, ett_mms_AlternateAccess);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 4;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -1811,16 +1808,15 @@ static const ber_choice_t VariableSpecification_choice[] = {
static int
dissect_mms_VariableSpecification(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 4;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // VariableSpecification → ScatteredAccessDescription → ScatteredAccessDescription/_item → VariableSpecification
+ actx->pinfo->dissection_depth += 3;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
VariableSpecification_choice, hf_index, ett_mms_VariableSpecification,
NULL);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 3;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -2097,16 +2093,15 @@ static const ber_choice_t Data_choice[] = {
static int
dissect_mms_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 3;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // Data → Data/array → Data
+ actx->pinfo->dissection_depth += 2;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
Data_choice, hf_index, ett_mms_Data,
NULL);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 2;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-mongo.c b/epan/dissectors/packet-mongo.c
index 64e6747b..db23a063 100644
--- a/epan/dissectors/packet-mongo.c
+++ b/epan/dissectors/packet-mongo.c
@@ -319,6 +319,7 @@ dissect_fullcollectionname(tvbuff_t *tvb, guint offset, proto_tree *tree)
#define BSON_MAX_NESTING 100
#define BSON_MAX_DOC_SIZE (16 * 1000 * 1000)
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_bson_document(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tree *tree, int hf_mongo_doc)
{
gint32 document_length;
@@ -702,6 +703,7 @@ dissect_mongo_op_commandreply(tvbuff_t *tvb, packet_info *pinfo, guint offset, p
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_mongo_op_compressed(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tree *tree, guint *effective_opcode)
{
guint opcode = 0;
@@ -896,10 +898,15 @@ dissect_mongo_op_msg(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tree
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_opcode_types(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tree *mongo_tree, guint opcode, guint *effective_opcode)
{
*effective_opcode = opcode;
+ unsigned recursion_depth = p_get_proto_depth(pinfo, proto_mongo);
+ DISSECTOR_ASSERT(recursion_depth <= BSON_MAX_NESTING);
+ p_set_proto_depth(pinfo, proto_mongo, recursion_depth + 1);
+
switch(opcode){
case OP_REPLY:
offset = dissect_mongo_reply(tvb, pinfo, offset, mongo_tree);
@@ -942,6 +949,8 @@ dissect_opcode_types(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tree
break;
}
+ p_set_proto_depth(pinfo, proto_mongo, recursion_depth);
+
return offset;
}
diff --git a/epan/dissectors/packet-mpeg-pes.c b/epan/dissectors/packet-mpeg-pes.c
index 5db34f63..0ab1dea2 100644
--- a/epan/dissectors/packet-mpeg-pes.c
+++ b/epan/dissectors/packet-mpeg-pes.c
@@ -819,6 +819,7 @@ static int
dissect_mpeg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data);
static gboolean
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_mpeg_pes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
int prefix;
@@ -854,6 +855,7 @@ dissect_mpeg_pes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
offset = dissect_mpeg_pes_PES(tvb, offset, &asn1_ctx,
tree, proto_mpeg_pes);
+ increment_dissection_depth(pinfo);
if (stream == STREAM_PICTURE) {
int frame_type;
@@ -1018,6 +1020,7 @@ dissect_mpeg_pes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
proto_tree_add_item(tree, hf_mpeg_pes_data, tvb,
offset / 8, -1, ENC_NA);
}
+ decrement_dissection_depth(pinfo);
return TRUE;
}
diff --git a/epan/dissectors/packet-mpls-echo.c b/epan/dissectors/packet-mpls-echo.c
index 6178c742..4e7a847b 100644
--- a/epan/dissectors/packet-mpls-echo.c
+++ b/epan/dissectors/packet-mpls-echo.c
@@ -1572,21 +1572,25 @@ dissect_mpls_echo_tlv(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tre
* Dissector for Errored TLVs
*/
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_mpls_echo_tlv_errored(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tree *tree, int rem)
{
int errored_tlv_length;
+ increment_dissection_depth(pinfo);
while (rem >= 4) {
errored_tlv_length = dissect_mpls_echo_tlv(tvb, pinfo, offset, tree, rem, TRUE);
rem -= errored_tlv_length;
offset += errored_tlv_length;
}
+ increment_dissection_depth(pinfo);
}
/*
* Dissector for MPLS Echo TLVs and return bytes consumed
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_mpls_echo_tlv(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tree *tree, int rem, gboolean in_errored)
{
proto_tree *ti = NULL, *mpls_echo_tlv_tree = NULL;
diff --git a/epan/dissectors/packet-mq-pcf.c b/epan/dissectors/packet-mq-pcf.c
index b9b4b979..8e15e3ec 100644
--- a/epan/dissectors/packet-mq-pcf.c
+++ b/epan/dissectors/packet-mq-pcf.c
@@ -149,6 +149,8 @@ static void dissect_mqpcf_parm_int(tvbuff_t *tvb, proto_tree *tree, guint offset
}
}
}
+
+// NOLINTNEXTLINE(misc-no-recursion)
int dissect_mqpcf_parm_grp(tvbuff_t* tvb, packet_info* pinfo, proto_tree* mq_tree,
guint offset, guint bLittleEndian, gboolean bParse)
{
@@ -169,6 +171,7 @@ int dissect_mqpcf_parm_grp(tvbuff_t* tvb, packet_info* pinfo, proto_tree* mq_tre
return offset;
}
+// NOLINTNEXTLINE(misc-no-recursion)
guint32 dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq_tree,
guint offset, guint32 uCount, guint bLittleEndian, gboolean bParse)
{
@@ -252,6 +255,7 @@ guint32 dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq_tre
uTyp, val_to_str_ext_const(uTyp, GET_VALS_EXTP(PrmTyp2), " Unkn") + 6,
uPrm, uPrm);
+ increment_dissection_depth(pinfo);
switch (uTyp)
{
case MQ_MQCFT_NONE:
@@ -571,6 +575,7 @@ guint32 dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq_tre
}
break;
}
+ decrement_dissection_depth(pinfo);
offset = tOfs + uLen;
}
if (u != uCount)
diff --git a/epan/dissectors/packet-mqtt-sn.c b/epan/dissectors/packet-mqtt-sn.c
index b9623a0a..f086a3ec 100644
--- a/epan/dissectors/packet-mqtt-sn.c
+++ b/epan/dissectors/packet-mqtt-sn.c
@@ -184,6 +184,7 @@ static gint ett_mqttsn_msg = -1;
static gint ett_mqttsn_flags = -1;
/* Dissect a single MQTT-SN packet. */
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_mqttsn_packet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
{
/* Various variables. */
@@ -477,7 +478,9 @@ static void dissect_mqttsn_packet(tvbuff_t *tvb, packet_info *pinfo, proto_tree
/* Dissect encapsulated message (if present). */
if (tvb_reported_length_remaining(tvb, offset) > 0)
{
+ increment_dissection_depth(pinfo);
dissect_mqttsn_packet(tvb, pinfo, mqttsn_msg_tree, offset);
+ decrement_dissection_depth(pinfo);
}
/* Default Case */
diff --git a/epan/dissectors/packet-msdp.c b/epan/dissectors/packet-msdp.c
index ef952782..12532eb8 100644
--- a/epan/dissectors/packet-msdp.c
+++ b/epan/dissectors/packet-msdp.c
@@ -169,6 +169,7 @@ dissect_msdp_notification(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_msdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_item *ti;
@@ -189,6 +190,7 @@ dissect_msdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
msdp_tree = proto_item_add_subtree(ti, ett_msdp);
offset = 0;
+ increment_dissection_depth(pinfo);
while (tvb_reported_length_remaining(tvb, offset) != 0) {
proto_tree_add_item_ret_uint(msdp_tree, hf_msdp_type, tvb, offset, 1, ENC_BIG_ENDIAN, &type);
length_item = proto_tree_add_item_ret_uint(msdp_tree, hf_msdp_length, tvb, offset + 1, 2, ENC_BIG_ENDIAN, &length);
@@ -269,6 +271,7 @@ dissect_msdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
break;
}
}
+ decrement_dissection_depth(pinfo);
return tvb_captured_length(tvb);
}
@@ -378,6 +381,7 @@ static void add_notification_data_ipv4addr(tvbuff_t *tvb, proto_tree *tree, int
return;
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_msdp_notification(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int *offset, guint16 tlv_len, proto_item *length_item)
{
guint8 error, error_sub;
diff --git a/epan/dissectors/packet-msgpack.c b/epan/dissectors/packet-msgpack.c
index fa7b819a..1dac8b38 100644
--- a/epan/dissectors/packet-msgpack.c
+++ b/epan/dissectors/packet-msgpack.c
@@ -157,6 +157,7 @@ static void dissect_msgpack_integer(tvbuff_t* tvb, packet_info *pinfo, proto_tre
}
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_msgpack_map(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint8 type, void* data, int* offset, char** value)
{
proto_tree* subtree;
@@ -178,6 +179,7 @@ static void dissect_msgpack_map(tvbuff_t* tvb, packet_info* pinfo, proto_tree* t
dissect_msgpack_object(tvb, pinfo, map_subtree, "Key", offset, value);
if (value)
proto_item_append_text(map_subtree, " %s:", *value);
+ // We recurse here, but we'll run out of packet before we run out of stack.
dissect_msgpack_object(tvb, pinfo, map_subtree, "Value", offset, value);
if (value)
proto_item_append_text(map_subtree, " %s", *value);
@@ -187,6 +189,7 @@ static void dissect_msgpack_map(tvbuff_t* tvb, packet_info* pinfo, proto_tree* t
*value = label;
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_msgpack_array(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint8 type, void* data, int* offset, char** value)
{
proto_tree* subtree;
@@ -203,6 +206,7 @@ static void dissect_msgpack_array(tvbuff_t* tvb, packet_info* pinfo, proto_tree*
subtree = proto_item_add_subtree(ti, ett_msgpack_array);
*offset += 1;
for (i = 0; i < len; i++) {
+ // We recurse here, but we'll run out of packet before we run out of stack.
dissect_msgpack_object(tvb, pinfo, subtree, data, offset, value);
}
@@ -312,6 +316,7 @@ static void dissect_msgpack_ext(tvbuff_t* tvb, proto_tree* tree, int type, void*
proto_item_set_len(ext_tree, *offset - offset_start);
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_msgpack_object(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data, int* offset, char** value)
{
guint8 type;
@@ -356,12 +361,14 @@ static void dissect_msgpack_object(tvbuff_t* tvb, packet_info* pinfo, proto_tree
// Array
if (type >> 4 == 0x9) {
+ // We recurse here, but we'll run out of packet before we run out of stack.
dissect_msgpack_array(tvb, pinfo, tree, type, data, offset, value);
return;
}
// Map
if (type >> 4 == 0x8) {
+ // We recurse here, but we'll run out of packet before we run out of stack.
dissect_msgpack_map(tvb, pinfo, tree, type, data, offset, value);
return;
}
@@ -464,6 +471,7 @@ void proto_register_msgpack(void)
void proto_reg_handoff_msgpack(void)
{
+ // If this is ever streamed (transported over TCP) we need to add recursion checks
dissector_add_for_decode_as("udp.port", msgpack_handle);
}
diff --git a/epan/dissectors/packet-mswsp.c b/epan/dissectors/packet-mswsp.c
index 5f676c69..d706c803 100644
--- a/epan/dissectors/packet-mswsp.c
+++ b/epan/dissectors/packet-mswsp.c
@@ -3531,6 +3531,7 @@ static int parse_CPropertyRestriction(tvbuff_t *tvb, packet_info *pinfo, int off
return offset;
}
+// NOLINTNEXTLINE(misc-no-recursion)
static int parse_CCoercionRestriction(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *parent_tree, proto_tree *pad_tree, struct CCoercionRestriction *v, const char *fmt, ...)
{
proto_tree *tree;
@@ -3746,6 +3747,7 @@ static int parse_rType(tvbuff_t *tvb, int offset, proto_tree *tree, enum rType *
return offset + 4;
}
+// NOLINTNEXTLINE(misc-no-recursion)
static int parse_CRestriction(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *parent_tree, proto_tree *pad_tree, struct CRestriction *v, const char *fmt, ...)
{
proto_tree *tree;
@@ -3767,6 +3769,7 @@ static int parse_CRestriction(tvbuff_t *tvb, packet_info *pinfo, int offset, pro
proto_tree_add_uint(tree, hf_mswsp_crestrict_weight, tvb, offset, 4, v->Weight);
offset += 4;
+ increment_dissection_depth(pinfo);
switch(v->ulType) {
case RTNone:
break;
@@ -3819,6 +3822,7 @@ static int parse_CRestriction(tvbuff_t *tvb, packet_info *pinfo, int offset, pro
default:
proto_item_append_text(item, " Not supported!");
}
+ decrement_dissection_depth(pinfo);
proto_item_set_end(item, tvb, offset);
return offset;
@@ -3861,6 +3865,7 @@ static int parse_CRestrictionArray(tvbuff_t *tvb, packet_info *pinfo, int offset
return offset;
}
+// NOLINTNEXTLINE(misc-no-recursion)
static int parse_CNodeRestriction(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *parent_tree, proto_tree *pad_tree, struct CNodeRestriction *v, const char *fmt, ...)
{
proto_tree *tree;
@@ -7980,8 +7985,7 @@ proto_register_mswsp(void)
};
int i;
- proto_mswsp = proto_register_protocol("Windows Search Protocol",
- "MS-WSP", "mswsp");
+ proto_mswsp = proto_register_protocol("Windows Search Protocol", "MS-WSP", "mswsp");
proto_register_field_array(proto_mswsp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
diff --git a/epan/dissectors/packet-nas_5gs.c b/epan/dissectors/packet-nas_5gs.c
index ac58b247..915ae1c0 100644
--- a/epan/dissectors/packet-nas_5gs.c
+++ b/epan/dissectors/packet-nas_5gs.c
@@ -2897,12 +2897,14 @@ static const value_string nas_5gs_mm_pld_cont_opt_ie_type_vals[] = {
* 9.11.3.39 Payload container
*/
static guint16
+// NOLINTNEXTLINE(misc-no-recursion)
de_nas_5gs_mm_pld_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
guint32 offset, guint len,
gchar *add_string _U_, int string_len _U_)
{
struct nas5gs_private_data *nas5gs_data = nas5gs_get_private_data(pinfo);
+ increment_dissection_depth(pinfo);
switch (nas5gs_data->payload_container_type) {
case 1: /* N1 SM information */
dissect_nas_5gs_common(tvb_new_subset_length(tvb, offset, len), pinfo, tree, 0, NULL);
@@ -3032,6 +3034,7 @@ de_nas_5gs_mm_pld_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
proto_tree_add_item(tree, hf_nas_5gs_mm_pld_cont, tvb, offset, len, ENC_NA);
break;
}
+ decrement_dissection_depth(pinfo);
return len;
}
diff --git a/epan/dissectors/packet-nbt.c b/epan/dissectors/packet-nbt.c
index c409bca5..abb6b252 100644
--- a/epan/dissectors/packet-nbt.c
+++ b/epan/dissectors/packet-nbt.c
@@ -1468,16 +1468,39 @@ dissect_nbss(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
* (If it is reassembled data, it shouldn't be a continuation,
* as reassembly should've gathered the continuations together
* into a message.)
+ * XXX: Unless it was reassembled because we didn't have enough
+ * data for a NBSS header, it had a first byte that looked like a
+ * message type, but it turned out not to be a message but continuation
+ * data after all. Perhaps we should check even reassembled data,
+ * at least if it's the first message in the conversation.
*/
if (!tcpinfo->is_reassembled) {
if (max_data < 4) {
/*
- * Not enough data for an NBSS header; assume
- * it's a continuation of a message.
- *
- * XXX - if there's not enough data, we should
- * attempt to reassemble the data, if the first byte
- * is a valid message type.
+ * Not enough data for an NBSS header. It could be a message
+ * split into a very small payload, or a continuation of a message.
+ */
+ if (try_val_to_str(msg_type, message_types)) {
+ /*
+ * The first byte looks like a valid message type.
+ * Can we do reassembly?
+ */
+ if (nbss_desegment && pinfo->can_desegment) {
+ /*
+ * Yes. Tell the TCP dissector where the data for this message
+ * starts in the data it handed us and that we need "some more
+ * data." Don't tell it exactly how many bytes we need because
+ * if/when we ask for even more (after the header) that will
+ * break reassembly.
+ */
+ pinfo->desegment_offset = offset;
+ pinfo->desegment_len = DESEGMENT_ONE_MORE_SEGMENT;
+ return tvb_captured_length(tvb);
+ }
+ }
+ /*
+ * Either we can't do reassembly, or this doesn't look
+ * like a valid message type. Mark it as continuation.
*/
return dissect_continuation_packet(tvb, pinfo, tree);
}
diff --git a/epan/dissectors/packet-netflow.c b/epan/dissectors/packet-netflow.c
index 4226b815..5c6ffaab 100644
--- a/epan/dissectors/packet-netflow.c
+++ b/epan/dissectors/packet-netflow.c
@@ -5123,6 +5123,7 @@ enum duration_type_e {
/* SubTemplateList reference https://tools.ietf.org/html/rfc6313#section-4.5.2 */
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_v10_pdu_subtemplate_list(tvbuff_t* tvb, packet_info* pinfo, proto_item* pduitem, int offset,
guint16 length, hdrinfo_t* hdrinfo_p)
{
@@ -5156,6 +5157,7 @@ dissect_v10_pdu_subtemplate_list(tvbuff_t* tvb, packet_info* pinfo, proto_item*
}
proto_item_set_generated(ti);
+ increment_dissection_depth(pinfo);
while (offset < end_offset) {
sub_tree = proto_tree_add_subtree_format(pdutree, tvb, offset, subtmplt_p->length,
ett_subtemplate_list, NULL, "List Item %d", count++);
@@ -5168,6 +5170,7 @@ dissect_v10_pdu_subtemplate_list(tvbuff_t* tvb, packet_info* pinfo, proto_item*
}
offset += consumed;
}
+ decrement_dissection_depth(pinfo);
if (offset != end_offset) {
int data_bytes = offset - start_offset;
proto_tree_add_expert_format(pdutree, NULL, &ei_cflow_subtemplate_bad_length,
@@ -5184,6 +5187,7 @@ dissect_v10_pdu_subtemplate_list(tvbuff_t* tvb, packet_info* pinfo, proto_item*
}
static guint
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_v9_v10_pdu_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *pdutree, int offset,
v9_v10_tmplt_t *tmplt_p, hdrinfo_t *hdrinfo_p, v9_v10_tmplt_fields_type_t fields_type)
{
@@ -5289,6 +5293,9 @@ dissect_v9_v10_pdu_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *pdutree,
string_len_long = length = tvb_get_ntohs(tvb, offset+1);
}
offset += vstr_len;
+ if (length == 0) {
+ continue;
+ }
gen_str_offset = offset;
}
diff --git a/epan/dissectors/packet-netlink.c b/epan/dissectors/packet-netlink.c
index b437ed34..200d4718 100644
--- a/epan/dissectors/packet-netlink.c
+++ b/epan/dissectors/packet-netlink.c
@@ -14,6 +14,8 @@
#include <epan/packet.h>
#include <epan/arptypes.h>
#include <epan/exceptions.h>
+#include <epan/prefs.h>
+
#include <wiretap/wtap.h>
#include <wsutil/ws_roundup.h>
@@ -152,6 +154,7 @@ static int * const netlink_header_standard_flags[] = {
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_netlink_attributes_common(tvbuff_t *tvb, int hf_type, int ett_tree, int ett_attrib, void *data, struct packet_netlink_data *nl_data, proto_tree *tree, int offset, int length, netlink_attributes_cb_t cb)
{
int encoding;
@@ -261,6 +264,9 @@ dissect_netlink_attributes_common(tvbuff_t *tvb, int hf_type, int ett_tree, int
offset += 2;
proto_item_append_text(ti, " %u", rta_type);
+ // In theory we should use increment_dissection_depth here, but that
+ // requires adding pinfo all over packet-netlink*.[ch] and we're limited
+ // to 262144 bytes (WTAP_MAX_PACKET_SIZE_STANDARD).
dissect_netlink_attributes(tvb, hf_type, ett_attrib, data, nl_data, attr_tree, offset, rta_len - 4, cb);
}
@@ -276,6 +282,7 @@ dissect_netlink_attributes_common(tvbuff_t *tvb, int hf_type, int ett_tree, int
}
int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_netlink_attributes(tvbuff_t *tvb, int hf_type, int ett, void *data, struct packet_netlink_data *nl_data, proto_tree *tree, int offset, int length, netlink_attributes_cb_t cb)
{
return dissect_netlink_attributes_common(tvb, hf_type, ett, -1, data, nl_data, tree, offset, length, cb);
diff --git a/epan/dissectors/packet-nhrp.c b/epan/dissectors/packet-nhrp.c
index 44edaebb..33c32b0c 100644
--- a/epan/dissectors/packet-nhrp.c
+++ b/epan/dissectors/packet-nhrp.c
@@ -562,6 +562,7 @@ static void dissect_cie_list(tvbuff_t *tvb,
}
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void dissect_nhrp_mand(tvbuff_t *tvb,
packet_info *pinfo,
proto_tree *tree,
@@ -757,6 +758,7 @@ static void dissect_nhrp_mand(tvbuff_t *tvb,
save_in_error_pkt = pinfo->flags.in_error_pkt;
pinfo->flags.in_error_pkt = TRUE;
sub_tvb = tvb_new_subset_remaining(tvb, offset);
+ // We recurse here, but we'll run out of packet before we run out of stack.
_dissect_nhrp(sub_tvb, pinfo, ind_tree, TRUE, FALSE);
pinfo->flags.in_error_pkt = save_in_error_pkt;
break;
@@ -994,6 +996,7 @@ static int dissect_nhrp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
return tvb_captured_length(tvb);
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void _dissect_nhrp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
gboolean nested, gboolean codeinfo)
{
@@ -1034,6 +1037,7 @@ static void _dissect_nhrp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
if (mandLen) {
tvbuff_t *mand_tvb = tvb_new_subset_length(tvb, offset, mandLen);
+ // We recurse here, but we'll run out of packet before we run out of stack.
dissect_nhrp_mand(mand_tvb, pinfo, nhrp_tree, oui_info, &hdr, &srcLen,
codeinfo);
offset += mandLen;
diff --git a/epan/dissectors/packet-ntlmssp.c b/epan/dissectors/packet-ntlmssp.c
index 85ec0e9a..a538c204 100644
--- a/epan/dissectors/packet-ntlmssp.c
+++ b/epan/dissectors/packet-ntlmssp.c
@@ -764,6 +764,7 @@ create_ntlmssp_v1_key(const guint8 *serverchallenge, const guint8 *clientchallen
static const unsigned char lmhash_key[] =
{0x4b, 0x47, 0x53, 0x21, 0x40, 0x23, 0x24, 0x25}; // "KGS!@#$%"
+ memset(sessionkey, 0, NTLMSSP_KEY_LEN);
/* Create a NT hash of the input password, even if empty */
// NTOWFv1 as defined in https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/464551a8-9fc4-428e-b3d3-bc5bfb2e73a5
password_len = strlen(password);
@@ -857,7 +858,6 @@ create_ntlmssp_v1_key(const guint8 *serverchallenge, const guint8 *clientchallen
}
get_keyexchange_key(keyexchangekey, sessionbasekey, lm_challenge_response, flags);
- memset(sessionkey, 0, NTLMSSP_KEY_LEN);
/*printnbyte(nt_challenge_response, 24, "NT challenge response", "\n");
printnbyte(lm_challenge_response, 24, "LM challenge response", "\n");*/
/* now decrypt session key if needed and setup sessionkey for decrypting further communications */
diff --git a/epan/dissectors/packet-openflow_v4.c b/epan/dissectors/packet-openflow_v4.c
index a4c47044..b4901d63 100644
--- a/epan/dissectors/packet-openflow_v4.c
+++ b/epan/dissectors/packet-openflow_v4.c
@@ -1494,6 +1494,7 @@ static const value_string openflow_v4_error_table_features_failed_code_values[]
};
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_openflow_error_v4(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, guint16 length)
{
proto_tree *data_tree;
@@ -4342,6 +4343,7 @@ dissect_openflow_metermod_v4(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_openflow_message_v4(tvbuff_t *tvb, packet_info *pinfo, proto_tree *openflow_tree, int offset)
{
diff --git a/epan/dissectors/packet-openflow_v5.c b/epan/dissectors/packet-openflow_v5.c
index ffe2f56b..d49de46f 100644
--- a/epan/dissectors/packet-openflow_v5.c
+++ b/epan/dissectors/packet-openflow_v5.c
@@ -1752,6 +1752,7 @@ static const value_string openflow_v5_error_bundle_failed_code_values[] = {
};
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_openflow_error_v5(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, guint16 length)
{
proto_tree *data_tree;
@@ -5746,6 +5747,7 @@ dissect_openflow_table_status_v5(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_openflow_requestforward_v5(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, guint16 length _U_)
{
proto_item *ti;
@@ -5879,6 +5881,7 @@ dissect_openflow_bundle_control_v5(tvbuff_t *tvb, packet_info *pinfo _U_, proto_
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_openflow_bundle_add_v5(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, guint16 length _U_)
{
proto_item *ti;
@@ -5917,6 +5920,7 @@ dissect_openflow_bundle_add_v5(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_openflow_message_v5(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
{
guint8 type;
diff --git a/epan/dissectors/packet-openflow_v6.c b/epan/dissectors/packet-openflow_v6.c
index 12e2be14..d6dbe272 100644
--- a/epan/dissectors/packet-openflow_v6.c
+++ b/epan/dissectors/packet-openflow_v6.c
@@ -1980,6 +1980,7 @@ static const value_string openflow_v6_error_bundle_failed_code_values[] = {
};
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_openflow_error_v6(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, guint16 length)
{
proto_tree *data_tree;
@@ -4509,6 +4510,7 @@ dissect_openflow_switch_description_v6(tvbuff_t *tvb, packet_info *pinfo _U_, pr
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_openflow_flow_desc_v6(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, guint16 length _U_)
{
proto_item *ti;
@@ -6351,6 +6353,7 @@ dissect_openflow_table_status_v6(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_openflow_requestforward_v6(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, guint16 length _U_)
{
proto_item *ti;
@@ -6490,6 +6493,7 @@ dissect_openflow_bundle_control_v6(tvbuff_t *tvb, packet_info *pinfo _U_, proto_
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_openflow_bundle_add_v6(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, guint16 length _U_)
{
proto_item *ti;
@@ -6528,6 +6532,7 @@ dissect_openflow_bundle_add_v6(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_openflow_message_v6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
{
guint8 type;
diff --git a/epan/dissectors/packet-opensafety.c b/epan/dissectors/packet-opensafety.c
index d56d3fda..695fa41b 100644
--- a/epan/dissectors/packet-opensafety.c
+++ b/epan/dissectors/packet-opensafety.c
@@ -1813,7 +1813,7 @@ check_scmudid_validity(opensafety_packet_info *packet, tvbuff_t *message_tvb)
/* Now confirm, that the xor operation was successful. The ID fields of both frames have to be the same */
b_ID = tvb_get_guint8(message_tvb, packet->frame.subframe2 + 1) ^ (guint8)(scmUDID->data[OSS_FRAME_POS_ID]);;
- if ( ( OSS_FRAME_ID_T(message_tvb, packet->frame.subframe1) ^ b_ID ) != 0 )
+ if ( ( OSS_FRAME_ID_T(message_tvb, packet->frame.subframe1) ^ (b_ID & 0xFC)) != 0 )
packet->scm_udid_valid = FALSE;
/* The IDs do not match, but the SCM UDID could still be ok. This happens, if this packet
diff --git a/epan/dissectors/packet-openwire.c b/epan/dissectors/packet-openwire.c
index a057d7d9..1beb68ce 100644
--- a/epan/dissectors/packet-openwire.c
+++ b/epan/dissectors/packet-openwire.c
@@ -657,6 +657,7 @@ static int
dissect_openwire_command(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, int parentType);
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_openwire_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, int field, int type, int parentType, gboolean nullable)
{
gint startOffset = offset;
@@ -717,7 +718,11 @@ dissect_openwire_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int o
inner_item = proto_tree_add_item(tree, particularize(field, hf_openwire_none), tvb, startOffset, -1, ENC_NA);
proto_item_append_text(inner_item, ": %s", val_to_str_ext(iCommand, &openwire_opcode_vals_ext, "Unknown (0x%02x)"));
object_tree = proto_item_add_subtree(inner_item, ett_openwire_type);
- return (1 + dissect_openwire_command(tvb, pinfo, object_tree, offset, parentType));
+ increment_dissection_depth(pinfo);
+ int command_offset = 1 + dissect_openwire_command(tvb, pinfo, object_tree, offset, parentType);
+ decrement_dissection_depth(pinfo);
+ return command_offset;
+
}
if ((type == OPENWIRE_TYPE_NESTED || type == OPENWIRE_TYPE_CACHED) && tvb_reported_length_remaining(tvb, offset) >= 1)
{
@@ -1071,6 +1076,7 @@ dissect_openwire_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int o
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_openwire_command(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, int parentType)
{
gint startOffset = offset;
diff --git a/epan/dissectors/packet-opsi.c b/epan/dissectors/packet-opsi.c
index f2701437..c0aae3f0 100644
--- a/epan/dissectors/packet-opsi.c
+++ b/epan/dissectors/packet-opsi.c
@@ -484,17 +484,23 @@ get_opsi_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _
}
static int
-get_opsi_attribute_index(int min, int max, int attribute_type)
+// NOLINTNEXTLINE(misc-no-recursion)
+get_opsi_attribute_index(packet_info *pinfo, int min, int max, int attribute_type)
{
int middle, at;
middle = (min+max)/2;
at = opsi_attributes[middle].attribute_type;
if (at == attribute_type) return middle;
+ int attr_idx;
+ increment_dissection_depth(pinfo);
if (attribute_type > at) {
- return (middle == max) ? -1 : get_opsi_attribute_index(middle+1, max, attribute_type);
+ attr_idx = (middle == max) ? -1 : get_opsi_attribute_index(pinfo, middle+1, max, attribute_type);
+ } else {
+ attr_idx = (middle == min) ? -1 : get_opsi_attribute_index(pinfo, min, middle-1, attribute_type);
}
- return (middle == min) ? -1 : get_opsi_attribute_index(min, middle-1, attribute_type);
+ decrement_dissection_depth(pinfo);
+ return attr_idx;
}
@@ -512,7 +518,7 @@ dissect_attributes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *opsi_tree, int
attribute_length = tvb_get_ntohs(tvb, offset+2);
if (attribute_length > length) break;
/* We perform a standard log(n) lookup */
- i = get_opsi_attribute_index(0, OPSI_ATTRIBUTES_COUNT-1, attribute_type);
+ i = get_opsi_attribute_index(pinfo, 0, OPSI_ATTRIBUTES_COUNT-1, attribute_type);
if (i == -1) {
proto_tree_add_expert_format(opsi_tree, pinfo, &ei_opsi_unknown_attribute, tvb, offset, attribute_length,
"Unknown attribute (%d)", attribute_type);
@@ -845,8 +851,7 @@ proto_register_opsi(void)
expert_module_t* expert_opsi;
/* Register the protocol name and description */
- proto_opsi = proto_register_protocol("Open Policy Service Interface",
- "OPSI", "opsi");
+ proto_opsi = proto_register_protocol("Open Policy Service Interface", "OPSI", "opsi");
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array(proto_opsi, hf, array_length(hf));
diff --git a/epan/dissectors/packet-osc.c b/epan/dissectors/packet-osc.c
index 2abef37c..fe09053d 100644
--- a/epan/dissectors/packet-osc.c
+++ b/epan/dissectors/packet-osc.c
@@ -725,7 +725,8 @@ dissect_osc_message(tvbuff_t *tvb, proto_item *ti, proto_tree *osc_tree, gint of
/* Dissect OSC bundle */
static int
-dissect_osc_bundle(tvbuff_t *tvb, proto_item *ti, proto_tree *osc_tree, gint offset, gint len)
+// NOLINTNEXTLINE(misc-no-recursion)
+dissect_osc_bundle(tvbuff_t *tvb, packet_info *pinfo, proto_item *ti, proto_tree *osc_tree, gint offset, gint len)
{
proto_tree *bundle_tree;
gint end = offset + len;
@@ -768,10 +769,11 @@ dissect_osc_bundle(tvbuff_t *tvb, proto_item *ti, proto_tree *osc_tree, gint off
continue;
/* peek first bundle element char */
+ increment_dissection_depth(pinfo);
switch(tvb_get_guint8(tvb, offset))
{
case '#': /* this is a bundle */
- if(dissect_osc_bundle(tvb, ti, bundle_tree, offset, size))
+ if(dissect_osc_bundle(tvb, pinfo, ti, bundle_tree, offset, size))
return -1;
else
break;
@@ -783,6 +785,7 @@ dissect_osc_bundle(tvbuff_t *tvb, proto_item *ti, proto_tree *osc_tree, gint off
default:
return -1; /* neither message nor bundle */
}
+ decrement_dissection_depth(pinfo);
/* check for integer overflow */
if(size > G_MAXINT - offset)
@@ -817,7 +820,7 @@ dissect_osc_pdu_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
switch(tvb_get_guint8(tvb, offset))
{
case '#': /* this is a bundle */
- if(dissect_osc_bundle(tvb, ti, osc_tree, offset, len))
+ if(dissect_osc_bundle(tvb, pinfo, ti, osc_tree, offset, len))
return;
else
break;
diff --git a/epan/dissectors/packet-p22.c b/epan/dissectors/packet-p22.c
index ea2004ba..8486a0c7 100644
--- a/epan/dissectors/packet-p22.c
+++ b/epan/dissectors/packet-p22.c
@@ -839,7 +839,6 @@ static int dissect_p22_BodyPartTokens(bool implicit_tag _U_, tvbuff_t *tvb _U_,
static int dissect_p22_ForwardedContentToken(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.
static int
@@ -1802,11 +1801,9 @@ static const ber_sequence_t IPM_sequence[] = {
int
dissect_p22_IPM(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 7;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // IPM → Body → BodyPart → BodyPart/basic → MessageBodyPart → MessageData → IPM
+ actx->pinfo->dissection_depth += 6;
+ increment_dissection_depth(actx->pinfo);
col_append_str(actx->pinfo->cinfo, COL_INFO, " Message");
@@ -1816,7 +1813,8 @@ dissect_p22_IPM(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_c
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 6;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -3519,15 +3517,14 @@ static const ber_sequence_t IPMSynopsis_sequence_of[1] = {
static int
dissect_p22_IPMSynopsis(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 4;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // IPMSynopsis → BodyPartSynopsis → MessageBodyPartSynopsis → IPMSynopsis
+ actx->pinfo->dissection_depth += 3;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
IPMSynopsis_sequence_of, hf_index, ett_p22_IPMSynopsis);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 3;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -3985,15 +3982,14 @@ static const ber_sequence_t BodyPartTokens_set_of[1] = {
static int
dissect_p22_BodyPartTokens(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 4;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // BodyPartTokens → BodyPartTokens/_item → BodyPartTokens/_item/body-part-choice → BodyPartTokens
+ actx->pinfo->dissection_depth += 3;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
BodyPartTokens_set_of, hf_index, ett_p22_BodyPartTokens);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 3;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -4041,15 +4037,14 @@ static const ber_sequence_t ForwardedContentToken_set_of[1] = {
static int
dissect_p22_ForwardedContentToken(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 4;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // ForwardedContentToken → ForwardedContentToken/_item → ForwardedContentToken/_item/body-part-choice → ForwardedContentToken
+ actx->pinfo->dissection_depth += 3;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
ForwardedContentToken_set_of, hf_index, ett_p22_ForwardedContentToken);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 3;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-p7.c b/epan/dissectors/packet-p7.c
index 6748d979..c791133d 100644
--- a/epan/dissectors/packet-p7.c
+++ b/epan/dissectors/packet-p7.c
@@ -644,7 +644,6 @@ static const value_string p7_err_code_string_vals[] = {
static int dissect_p7_Filter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.
static int
@@ -1559,16 +1558,15 @@ static const ber_choice_t Filter_choice[] = {
static int
dissect_p7_Filter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 3;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // Filter → Filter/and → Filter
+ actx->pinfo->dissection_depth += 2;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
Filter_choice, hf_index, ett_p7_Filter,
NULL);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 2;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-pana.c b/epan/dissectors/packet-pana.c
index dc64b682..03edebc7 100644
--- a/epan/dissectors/packet-pana.c
+++ b/epan/dissectors/packet-pana.c
@@ -276,6 +276,7 @@ pana_avp_get_type(guint16 avp_code, guint32 vendor_id)
* Function for AVP dissector.
*/
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_avps(tvbuff_t *tvb, packet_info *pinfo, proto_tree *avp_tree)
{
@@ -367,6 +368,7 @@ dissect_avps(tvbuff_t *tvb, packet_info *pinfo, proto_tree *avp_tree)
group_tvb = tvb_new_subset_length_caplen(tvb, offset,
MIN(avp_data_length, tvb_reported_length(tvb)-offset),
avp_data_length);
+ // We recurse here, but we'll run out of packet before we run out of stack.
dissect_avps(group_tvb, pinfo, avp_group_tree);
break;
}
@@ -427,6 +429,7 @@ dissect_avps(tvbuff_t *tvb, packet_info *pinfo, proto_tree *avp_tree)
tvb, offset, avp_data_length,
ett_pana_avp, NULL, "AVP Value (PANA packet)");
encap_tvb = tvb_new_subset_length(tvb, offset, avp_data_length);
+ // We recurse here, but we'll run out of packet before we run out of stack.
dissect_pana_pdu(encap_tvb, pinfo, avp_encap_tree);
break;
}
@@ -445,6 +448,7 @@ dissect_avps(tvbuff_t *tvb, packet_info *pinfo, proto_tree *avp_tree)
* Function for the PANA PDU dissector.
*/
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_pana_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
@@ -859,8 +863,7 @@ proto_register_pana(void)
};
/* Register the protocol name and description */
- proto_pana = proto_register_protocol("Protocol for carrying Authentication for Network Access",
- "PANA", "pana");
+ proto_pana = proto_register_protocol("Protocol for carrying Authentication for Network Access", "PANA", "pana");
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array(proto_pana, hf, array_length(hf));
diff --git a/epan/dissectors/packet-parlay.c b/epan/dissectors/packet-parlay.c
index ecec46a3..7d07fdea 100644
--- a/epan/dissectors/packet-parlay.c
+++ b/epan/dissectors/packet-parlay.c
@@ -23,6 +23,7 @@
#include <string.h>
#include <epan/packet.h>
#include <epan/proto.h>
+#include <epan/proto_data.h>
#include "packet-giop.h"
#include <epan/expert.h>
@@ -2997,6 +2998,7 @@ static expert_field ei_parlay_unknown_giop_msg = EI_INIT;
static expert_field ei_parlay_unknown_exception = EI_INIT;
static expert_field ei_parlay_unknown_reply_status = EI_INIT;
+#define MAX_RECURSION_DEPTH 50 // Arbitrarily chosen.
static proto_tree *start_dissecting(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ptree, int *offset);
@@ -53623,6 +53625,7 @@ decode_org_csapi_cs_TpAppInformation_un(tvbuff_t *tvb _U_, packet_info *pinfo _U
}
/* Union = IDL:org/csapi/policy/TpPolicyType:1.0 */
+// NOLINTBEGIN(misc-no-recursion)
static void
decode_org_csapi_policy_TpPolicyType_un(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int *offset _U_, MessageHeader *header _U_, const gchar *operation _U_, gboolean stream_is_big_endian _U_)
{
@@ -53633,6 +53636,11 @@ decode_org_csapi_policy_TpPolicyType_un(tvbuff_t *tvb _U_, packet_info *pinfo _U
gint32 disc_s_TpPolicyType;
/* Operation specific Variable declarations End */
+ // Cycle: this -> decode_org_csapi_policy_TpPolicyType_TpPolicyListType_st -> this
+ unsigned recursion_depth = p_get_proto_depth(pinfo, proto_parlay);
+ DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
+ p_set_proto_depth(pinfo, proto_parlay, recursion_depth + 1);
+
/*
* IDL Union Start - IDL:org/csapi/policy/TpPolicyType:1.0
*/
@@ -53651,6 +53659,7 @@ decode_org_csapi_policy_TpPolicyType_un(tvbuff_t *tvb _U_, packet_info *pinfo _U
u_octet4 = get_CDR_enum(tvb,offset,stream_is_big_endian, boundary);
proto_tree_add_uint(tree, hf_org_csapi_policy_TpPolicyType_SimpleType, tvb, *offset-4, 4, u_octet4);
+ p_set_proto_depth(pinfo, proto_parlay, recursion_depth);
return; /* End Compare for this discriminant type */
}
@@ -53659,6 +53668,7 @@ decode_org_csapi_policy_TpPolicyType_un(tvbuff_t *tvb _U_, packet_info *pinfo _U
/* Begin struct "org_csapi_policy_TpPolicyType_TpPolicyRecordType" */
decode_org_csapi_policy_TpPolicyType_TpPolicyRecordType_st(tvb, pinfo, tree, item, offset, header, operation, stream_is_big_endian);
/* End struct "org_csapi_policy_TpPolicyType_TpPolicyRecordType" */
+ p_set_proto_depth(pinfo, proto_parlay, recursion_depth);
return; /* End Compare for this discriminant type */
}
@@ -53667,6 +53677,7 @@ decode_org_csapi_policy_TpPolicyType_un(tvbuff_t *tvb _U_, packet_info *pinfo _U
/* Begin struct "org_csapi_policy_TpPolicyType_TpPolicyListType" */
decode_org_csapi_policy_TpPolicyType_TpPolicyListType_st(tvb, pinfo, tree, item, offset, header, operation, stream_is_big_endian);
/* End struct "org_csapi_policy_TpPolicyType_TpPolicyListType" */
+ p_set_proto_depth(pinfo, proto_parlay, recursion_depth);
return; /* End Compare for this discriminant type */
}
@@ -53674,6 +53685,7 @@ decode_org_csapi_policy_TpPolicyType_un(tvbuff_t *tvb _U_, packet_info *pinfo _U
giop_add_CDR_string(tree, tvb, offset, stream_is_big_endian, boundary, hf_org_csapi_policy_TpPolicyType_StructuredType);
+ p_set_proto_depth(pinfo, proto_parlay, recursion_depth);
return; /* End Compare for this discriminant type */
}
@@ -53681,10 +53693,13 @@ decode_org_csapi_policy_TpPolicyType_un(tvbuff_t *tvb _U_, packet_info *pinfo _U
giop_add_CDR_string(tree, tvb, offset, stream_is_big_endian, boundary, hf_org_csapi_policy_TpPolicyType_XMLString);
+ p_set_proto_depth(pinfo, proto_parlay, recursion_depth);
return; /* End Compare for this discriminant type */
}
+ p_set_proto_depth(pinfo, proto_parlay, recursion_depth);
}
+// NOLINTEND(misc-no-recursion)
/* Union = IDL:org/csapi/pam/TpPAMContextData:1.0 */
static void
diff --git a/epan/dissectors/packet-pim.c b/epan/dissectors/packet-pim.c
index 1277cbbd..7c9ac399 100644
--- a/epan/dissectors/packet-pim.c
+++ b/epan/dissectors/packet-pim.c
@@ -759,6 +759,7 @@ dissect_pimv1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U
}
static gboolean
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_pim_addr(packet_info *pinfo, proto_tree* tree, tvbuff_t *tvb, int offset, enum pimv2_addrtype at,
const char* label, proto_item** ret_item, int hf_ip4, int hf_ip6, int *advance) {
guint8 af, et, flags, mask_len, ja_af;
@@ -1011,6 +1012,7 @@ dissect_pim_addr(packet_info *pinfo, proto_tree* tree, tvbuff_t *tvb, int offset
case PIM_JOIN_ATTRIBUTE_TYPE_RPF:
if ((ja_length == 6) || (ja_length == 18)) {
int advance_attr;
+ // We recurse here, but we'll run out of packet before we run out of stack.
if (!dissect_pim_addr(pinfo, ja_tree, tvb, ja_offset, pimv2_unicast, NULL, NULL,
hf_pim_unicast_addr_ipv4, hf_pim_unicast_addr_ipv6, &advance_attr))
break;
@@ -2292,8 +2294,7 @@ proto_register_pim(void)
expert_module_t* expert_pim;
module_t *pim_module;
- proto_pim = proto_register_protocol("Protocol Independent Multicast",
- "PIM", "pim");
+ proto_pim = proto_register_protocol("Protocol Independent Multicast", "PIM", "pim");
proto_register_field_array(proto_pim, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
expert_pim = expert_register_protocol(proto_pim);
diff --git a/epan/dissectors/packet-protobuf.c b/epan/dissectors/packet-protobuf.c
index ee7c5ab0..8597da4a 100644
--- a/epan/dissectors/packet-protobuf.c
+++ b/epan/dissectors/packet-protobuf.c
@@ -387,6 +387,7 @@ dissect_protobuf_message(tvbuff_t *tvb, guint offset, guint length, packet_info
* Return consumed bytes
*/
static guint
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_packed_repeated_field_values(tvbuff_t *tvb, guint start, guint length, packet_info *pinfo,
proto_item *ti_field, int field_type, const gchar* prepend_text, const PbwFieldDescriptor* field_desc,
json_dumper *dumper)
@@ -533,6 +534,7 @@ abs_time_to_rfc3339(wmem_allocator_t *scope, const nstime_t *nstime, bool use_ut
/* Dissect field value based on a specific type. */
static void
+// NOLINTNEXTLINE(misc-no-recursion)
protobuf_dissect_field_value(proto_tree *value_tree, tvbuff_t *tvb, guint offset, guint length, packet_info *pinfo,
proto_item *ti_field, int field_type, const guint64 value, const gchar* prepend_text, const PbwFieldDescriptor* field_desc,
gboolean is_top_level, json_dumper *dumper)
@@ -840,6 +842,7 @@ protobuf_dissect_field_value(proto_tree *value_tree, tvbuff_t *tvb, guint offset
/* add all possible values according to field types. */
static void
+// NOLINTNEXTLINE(misc-no-recursion)
protobuf_try_dissect_field_value_on_multi_types(proto_tree *value_tree, tvbuff_t *tvb, guint offset, guint length,
packet_info *pinfo, proto_item *ti_field, int* field_types, const guint64 value, const gchar* prepend_text,
json_dumper *dumper)
@@ -857,6 +860,7 @@ protobuf_try_dissect_field_value_on_multi_types(proto_tree *value_tree, tvbuff_t
}
static gboolean
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_one_protobuf_field(tvbuff_t *tvb, guint* offset, guint maxlen, packet_info *pinfo, proto_tree *protobuf_tree,
const PbwDescriptor* message_desc, gboolean is_top_level, const PbwFieldDescriptor** field_desc_ptr,
const PbwFieldDescriptor* prev_field_desc, json_dumper *dumper)
@@ -1002,6 +1006,7 @@ dissect_one_protobuf_field(tvbuff_t *tvb, guint* offset, guint maxlen, packet_in
/* add value subtree. we add uint value for numeric field or string for length-delimited at least. */
value_tree = proto_item_add_subtree(ti_value, ett_protobuf_value);
+ increment_dissection_depth(pinfo);
if (field_desc) {
if (dumper) {
if (prev_field_desc == NULL || pbw_FieldDescriptor_number(prev_field_desc) != (int) field_number) {
@@ -1043,6 +1048,7 @@ dissect_one_protobuf_field(tvbuff_t *tvb, guint* offset, guint maxlen, packet_in
ti_field, field_types, value_uint64, "", dumper);
}
}
+ decrement_dissection_depth(pinfo);
if (field_desc && !show_details) {
proto_item_set_hidden(ti_field_number);
@@ -1369,6 +1375,7 @@ add_missing_fields_with_default_values(tvbuff_t* tvb, guint offset, packet_info*
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_protobuf_message(tvbuff_t *tvb, guint offset, guint length, packet_info *pinfo, proto_tree *protobuf_tree,
const PbwDescriptor* message_desc, int hf_msg, gboolean is_top_level, json_dumper *dumper, wmem_allocator_t* scope, char** retval)
{
@@ -1452,6 +1459,7 @@ dissect_protobuf_message(tvbuff_t *tvb, guint offset, guint length, packet_info
}
/* each time we dissect one protobuf field. */
+ increment_dissection_depth(pinfo);
while (offset < max_offset)
{
field_desc = NULL;
@@ -1465,6 +1473,7 @@ dissect_protobuf_message(tvbuff_t *tvb, guint offset, guint length, packet_info
prev_field_desc = field_desc;
}
+ decrement_dissection_depth(pinfo);
if (dumper && prev_field_desc && pbw_FieldDescriptor_is_repeated(prev_field_desc)) {
/* The last field is repeated field, we close the JSON array */
@@ -1655,7 +1664,8 @@ dissect_protobuf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
}
static gboolean
-load_all_files_in_dir(PbwDescriptorPool* pool, const gchar* dir_path)
+// NOLINTNEXTLINE(misc-no-recursion)
+load_all_files_in_dir(PbwDescriptorPool* pool, const gchar* dir_path, unsigned depth)
{
WS_DIR *dir; /* scanned directory */
WS_DIRENT *file; /* current file */
@@ -1663,6 +1673,10 @@ load_all_files_in_dir(PbwDescriptorPool* pool, const gchar* dir_path)
const gchar *name; /* current file or dir name (without parent dir path) */
gchar *path; /* sub file or dir path of dir_path */
+ if (depth > prefs.gui_max_tree_depth) {
+ return FALSE;
+ }
+
if (g_file_test(dir_path, G_FILE_TEST_IS_DIR)) {
if ((dir = ws_dir_open(dir_path, 0, NULL)) != NULL) {
while ((file = ws_dir_read_name(dir)) != NULL) {
@@ -1678,7 +1692,7 @@ load_all_files_in_dir(PbwDescriptorPool* pool, const gchar* dir_path)
return FALSE;
}
} else {
- if (!load_all_files_in_dir(pool, path)) {
+ if (!load_all_files_in_dir(pool, path, depth + 1)) {
g_free(path);
ws_dir_close(dir);
return FALSE;
@@ -1994,7 +2008,7 @@ protobuf_reinit(int target)
/* load all .proto files in the marked search paths, we can invoke FindMethodByName etc later. */
for (i = 0; i < num_proto_paths; ++i) {
if ((i < 2) || protobuf_search_paths[i - 2].load_all) {
- if (!load_all_files_in_dir(pbw_pool, source_paths[i])) {
+ if (!load_all_files_in_dir(pbw_pool, source_paths[i], 0)) {
buffer_error("Protobuf: Loading .proto files action stopped!\n");
loading_completed = FALSE;
break; /* stop loading when error occurs */
diff --git a/epan/dissectors/packet-proxy.c b/epan/dissectors/packet-proxy.c
index b45eb872..2e41ff54 100644
--- a/epan/dissectors/packet-proxy.c
+++ b/epan/dissectors/packet-proxy.c
@@ -245,8 +245,10 @@ dissect_proxy_proxied(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree,
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_proxy_v2_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *proxy_tree, int offset, int next_offset)
{
+ increment_dissection_depth(pinfo);
while (offset < next_offset) {
guint32 type, length;
proto_item *ti_tlv;
@@ -298,6 +300,7 @@ dissect_proxy_v2_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *proxy_tree,
break;
}
}
+ decrement_dissection_depth(pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-q2931.c b/epan/dissectors/packet-q2931.c
index 2749db08..348707e9 100644
--- a/epan/dissectors/packet-q2931.c
+++ b/epan/dissectors/packet-q2931.c
@@ -1127,6 +1127,7 @@ static const value_string q2931_rejection_reason_vals[] = {
static const true_false_string tfs_abnormal_normal = { "Abnormal", "Normal" };
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_q2931_cause_ie(tvbuff_t *tvb, packet_info* pinfo, int offset, int len,
proto_tree *tree)
{
@@ -1201,6 +1202,7 @@ dissect_q2931_cause_ie(tvbuff_t *tvb, packet_info* pinfo, int offset, int len,
info_element = tvb_get_guint8(tvb, offset);
info_element_ext = tvb_get_guint8(tvb, offset + 1);
info_element_len = tvb_get_ntohs(tvb, offset + 2);
+ // We recurse here, but we'll run out of packet before we run out of stack.
dissect_q2931_ie(tvb, pinfo, offset, info_element_len, tree,
info_element, info_element_ext);
break;
@@ -1716,6 +1718,7 @@ dissect_q2931_endpoint_state_ie(tvbuff_t *tvb, int offset, int len,
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_q2931_ie_contents(tvbuff_t *tvb, packet_info* pinfo, int offset, int len,
proto_tree *tree, guint8 info_element)
{
@@ -1774,6 +1777,7 @@ dissect_q2931_ie_contents(tvbuff_t *tvb, packet_info* pinfo, int offset, int len
break;
case Q2931_IE_CAUSE:
+ // We recurse here, but we'll run out of packet before we run out of stack.
dissect_q2931_cause_ie(tvb, pinfo, offset, len, tree);
break;
@@ -1820,6 +1824,7 @@ dissect_q2931_ie_contents(tvbuff_t *tvb, packet_info* pinfo, int offset, int len
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_q2931_ie(tvbuff_t *tvb, packet_info* pinfo, int offset, int len, proto_tree *tree,
guint8 info_element, guint8 info_element_ext)
{
@@ -1842,6 +1847,7 @@ dissect_q2931_ie(tvbuff_t *tvb, packet_info* pinfo, int offset, int len, proto_t
if ((info_element_ext & Q2931_IE_COMPAT_CODING_STD)
== Q2931_ITU_STANDARDIZED_CODING) {
+ // We recurse here, but we'll run out of packet before we run out of stack.
dissect_q2931_ie_contents(tvb, pinfo, offset + 4,
len, ie_tree, info_element);
} else {
diff --git a/epan/dissectors/packet-qnet6.c b/epan/dissectors/packet-qnet6.c
index e081b9e0..ffa22d92 100644
--- a/epan/dissectors/packet-qnet6.c
+++ b/epan/dissectors/packet-qnet6.c
@@ -1956,6 +1956,11 @@ dissect_qnet6_kif_msgsend_msg_msginfo(tvbuff_t * tvb, packet_info * pinfo _U_, p
}
+// Most of the functions below recurse via dissect_qnet6_kif_msgsend_msg.
+// We're guaranteed to run out of packet before we run out of stack, so
+// just skip over them.
+// NOLINTBEGIN(misc-no-recursion)
+
/*
* in dissect_qnet6_kif_msgsend_msg already passed the first 2 bytes
* msg->type and when dissect_qnet6_kif_msgsend_msg_devctl is called, it
@@ -3254,6 +3259,8 @@ dissect_qnet6_kif_msgsend_msg(tvbuff_t * tvb, packet_info * pinfo, proto_tree *
return ret;
}
+// NOLINTEND(misc-no-recursion)
+
static void
qos_tcs_init_addtree(tvbuff_t * tvb, proto_tree * tree, gint * poffset, guint encoding, int hf_off, int hf_generated, gint rlen, gint name_start)
{
diff --git a/epan/dissectors/packet-rdp.c b/epan/dissectors/packet-rdp.c
index b9457a17..370cbee2 100644
--- a/epan/dissectors/packet-rdp.c
+++ b/epan/dissectors/packet-rdp.c
@@ -1328,6 +1328,7 @@ rdp_get_conversation_data(packet_info *pinfo)
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_rdp_fields(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, const rdp_field_info_t *fields, int totlen)
{
const rdp_field_info_t *c;
@@ -1336,6 +1337,8 @@ dissect_rdp_fields(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tr
guint32 info_flags = 0;
guint encoding;
+ increment_dissection_depth(pinfo);
+
for ( ; fields->pfield != NULL; fields++) {
c = fields;
if ((c->fixedLength == 0) && (c->variableLength)) {
@@ -1406,6 +1409,7 @@ dissect_rdp_fields(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tr
/* XXX: err if > totlen ?? */
}
+ decrement_dissection_depth(pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-resp.c b/epan/dissectors/packet-resp.c
index 19bf2e4a..b2216b27 100644
--- a/epan/dissectors/packet-resp.c
+++ b/epan/dissectors/packet-resp.c
@@ -188,6 +188,7 @@ static int dissect_resp_integer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
return bulk_string_string_length + CRLF_LENGTH;
}
+// NOLINTNEXTLINE(misc-no-recursion)
static int dissect_resp_array(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, gint string_length, gint array_depth) {
guint8 *array_length_as_string = tvb_get_string_enc(wmem_packet_scope(), tvb, offset + RESP_TOKEN_PREFIX_LENGTH,
string_length - RESP_TOKEN_PREFIX_LENGTH, ENC_ASCII);
@@ -254,6 +255,7 @@ static int dissect_resp_array(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
return dissected_offset - offset;
}
+// NOLINTNEXTLINE(misc-no-recursion)
static int dissect_resp_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, gint string_length, gint array_depth) {
switch (tvb_get_guint8(tvb, offset)) {
case '+':
@@ -282,6 +284,7 @@ static int dissect_resp_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
}
}
+// NOLINTNEXTLINE(misc-no-recursion)
static int dissect_resp_loop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, gint array_depth, gint64 expected_elements) {
gint error_or_offset;
gint crlf_string_line_length;
@@ -300,7 +303,9 @@ static int dissect_resp_loop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
pinfo->desegment_len = DESEGMENT_ONE_MORE_SEGMENT;
return -1;
}
+ increment_dissection_depth(pinfo);
error_or_offset = dissect_resp_message(tvb, pinfo, tree, offset, crlf_string_line_length, array_depth);
+ decrement_dissection_depth(pinfo);
if (error_or_offset == -1) {
return -1;
}
diff --git a/epan/dissectors/packet-rpl.c b/epan/dissectors/packet-rpl.c
index 9dcfb53b..c39e74a5 100644
--- a/epan/dissectors/packet-rpl.c
+++ b/epan/dissectors/packet-rpl.c
@@ -83,6 +83,7 @@ static const value_string rpl_type_vals[] = {
};
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_rpl_container(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
guint16 len, type, sublen, subtyp;
@@ -383,8 +384,7 @@ proto_register_rpl(void)
&ett_rpl_unkn
};
- proto_rpl = proto_register_protocol("Remote Program Load",
- "RPL", "rpl");
+ proto_rpl = proto_register_protocol("Remote Program Load", "RPL", "rpl");
proto_register_field_array(proto_rpl, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
rpl_handle = register_dissector("rpl", dissect_rpl, proto_rpl);
diff --git a/epan/dissectors/packet-rsl.c b/epan/dissectors/packet-rsl.c
index 08757864..4f3b8686 100644
--- a/epan/dissectors/packet-rsl.c
+++ b/epan/dissectors/packet-rsl.c
@@ -2576,6 +2576,7 @@ dissect_rsl_ie_ms_timing_offset(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre
* which was considered erroneous at reception.
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_rsl_ie_err_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, gboolean is_mandatory)
{
proto_item *ti;
@@ -3907,6 +3908,7 @@ dissct_rsl_ipaccess_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissct_rsl_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
{
guint8 msg_disc, msg_type, sys_info_type;
@@ -3922,6 +3924,7 @@ dissct_rsl_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
}
offset++;
+ increment_dissection_depth(pinfo);
switch (msg_type) {
/* Radio Link Layer Management messages */
/* 8.3.1 DATA REQUEST */
@@ -4573,6 +4576,7 @@ dissct_rsl_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
default:
break;
}
+ decrement_dissection_depth(pinfo);
return offset;
diff --git a/epan/dissectors/packet-rsvp.c b/epan/dissectors/packet-rsvp.c
index 34983c70..b271d422 100644
--- a/epan/dissectors/packet-rsvp.c
+++ b/epan/dissectors/packet-rsvp.c
@@ -2948,6 +2948,7 @@ dissect_rsvp_session(packet_info *pinfo, proto_item *ti, proto_tree *rsvp_object
* (TODO: TLV type 12, 13, 25)
*------------------------------------------------------------------------------*/
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_rsvp_ifid_tlv(proto_tree *ti, packet_info* pinfo, proto_tree *rsvp_object_tree,
tvbuff_t *tvb, int offset, int length,
int subtree_type)
@@ -3156,8 +3157,10 @@ dissect_rsvp_ifid_tlv(proto_tree *ti, packet_info* pinfo, proto_tree *rsvp_objec
proto_tree_add_uint_format_value(rsvp_ifid_subtree, hf_rsvp_type, tvb, offset+tlv_off, 2,
tlv_type, "%d (%s-Exclusions)", tlv_type, tlv_name);
proto_tree_add_item(rsvp_ifid_subtree, hf_rsvp_ifid_tlv_length, tvb, offset+tlv_off+2, 2, ENC_BIG_ENDIAN);
+ increment_dissection_depth(pinfo);
dissect_rsvp_ifid_tlv(ti2, pinfo, rsvp_ifid_subtree, tvb, offset+tlv_off+4,
tlv_len-4, TREE(TT_HOP_SUBOBJ));
+ decrement_dissection_depth(pinfo);
break;
case 516:
/* FF: ERROR_STRING TLV, RFC 4783 */
@@ -7585,6 +7588,7 @@ dissect_rsvp_unknown(proto_tree *ti _U_,
* Dissect a single RSVP message in a tree
*------------------------------------------------------------------------------*/
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_rsvp_msg_tree(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
int tree_mode, rsvp_conversation_info *rsvph, gboolean e2ei)
{
@@ -7671,7 +7675,9 @@ dissect_rsvp_msg_tree(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
tvbuff_t *tvb_sub;
sub_len = tvb_get_ntohs(tvb, len2+6);
tvb_sub = tvb_new_subset_length(tvb, len2, sub_len);
+ increment_dissection_depth(pinfo);
dissect_rsvp_msg_tree(tvb_sub, pinfo, rsvp_tree, TREE(TT_BUNDLE_COMPMSG), rsvph, e2ei);
+ decrement_dissection_depth(pinfo);
len2 += sub_len;
}
} else {
diff --git a/epan/dissectors/packet-rtls.c b/epan/dissectors/packet-rtls.c
index 95c56819..af4b9b4b 100644
--- a/epan/dissectors/packet-rtls.c
+++ b/epan/dissectors/packet-rtls.c
@@ -212,6 +212,7 @@ dissect_rtls_header(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *rtls_tree
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_rtls_message_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *rtls_tree, guint offset, guint type)
{
proto_item *ti_rssi;
@@ -361,6 +362,7 @@ hf_rtls_nack_flags, ett_rtls_nack_flags, rtls_nack_flags, ENC_BIG_ENDIAN, BMT_NO
offset = dissect_rtls_header(tvb, pinfo, sub_tree, offset, &data_length);
+ // We recurse here, but we'll run out of packet before we run out of stack.
offset = dissect_rtls_message_type(tvb, pinfo, sub_tree, offset, type);
proto_item_set_len(sub_tree, data_length + 16);
@@ -774,6 +776,7 @@ proto_register_rtls(void)
void
proto_reg_handoff_rtls(void)
{
+ // If this is ever streamed (transported over TCP) we need to add recursion checks
dissector_add_for_decode_as_with_preference("udp.port", rtls_handle);
}
diff --git a/epan/dissectors/packet-rtmpt.c b/epan/dissectors/packet-rtmpt.c
index 7760318b..0d88ba2f 100644
--- a/epan/dissectors/packet-rtmpt.c
+++ b/epan/dissectors/packet-rtmpt.c
@@ -569,7 +569,7 @@ rtmpt_get_amf_length(tvbuff_t *tvb, gint offset, proto_item* pi)
while (rv == 0 || depth > 0) {
- if (--iterations) {
+ if (--iterations == 0) {
expert_add_info(NULL, pi, &ei_amf_loop);
return 0;
}
@@ -873,7 +873,7 @@ dissect_rtmpt_body_scm(tvbuff_t *tvb, gint offset, proto_tree *rtmpt_tree, guint
}
static gint
-dissect_amf0_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, gboolean *amf3_encoding, proto_item *parent_ti);
+dissect_amf0_value_type(tvbuff_t *tvb, packet_info *pinfo, gint offset, proto_tree *tree, gboolean *amf3_encoding, proto_item *parent_ti);
/*
* A "property list" is a sequence of name/value pairs, terminated by
@@ -881,7 +881,8 @@ dissect_amf0_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, gboolean *
* are encoded as property lists.
*/
static gint
-dissect_amf0_property_list(tvbuff_t *tvb, gint offset, proto_tree *tree, guint *countp, gboolean *amf3_encoding)
+// NOLINTNEXTLINE(misc-no-recursion)
+dissect_amf0_property_list(tvbuff_t *tvb, packet_info *pinfo, gint offset, proto_tree *tree, guint *countp, gboolean *amf3_encoding)
{
proto_item *prop_ti;
proto_tree *prop_tree;
@@ -918,7 +919,7 @@ dissect_amf0_property_list(tvbuff_t *tvb, gint offset, proto_tree *tree, guint *
offset += iStringLength;
/* value-type: property value */
- offset = dissect_amf0_value_type(tvb, offset, prop_tree, amf3_encoding, prop_ti);
+ offset = dissect_amf0_value_type(tvb, pinfo, offset, prop_tree, amf3_encoding, prop_ti);
proto_item_set_end(prop_ti, tvb, offset);
}
proto_tree_add_item(tree, hf_amf_end_of_object_marker, tvb, offset, 3, ENC_NA);
@@ -930,7 +931,8 @@ dissect_amf0_property_list(tvbuff_t *tvb, gint offset, proto_tree *tree, guint *
}
static gint
-dissect_amf0_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, gboolean *amf3_encoding, proto_item *parent_ti)
+// NOLINTNEXTLINE(misc-no-recursion)
+dissect_amf0_value_type(tvbuff_t *tvb, packet_info *pinfo, gint offset, proto_tree *tree, gboolean *amf3_encoding, proto_item *parent_ti)
{
guint8 iObjType;
proto_item *ti;
@@ -993,6 +995,7 @@ dissect_amf0_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, gboolean *
proto_tree_add_uint(val_tree, hf_amf_amf0_type, tvb, iValueOffset, 1, iObjType);
iValueOffset++;
+ increment_dissection_depth(pinfo);
switch (iObjType) {
case AMF0_NUMBER:
iDoubleValue = tvb_get_ntohieee_double(tvb, iValueOffset);
@@ -1023,7 +1026,7 @@ dissect_amf0_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, gboolean *
proto_item_append_text(parent_ti, " '%s'", iStringValue);
break;
case AMF0_OBJECT:
- iValueOffset = dissect_amf0_property_list(tvb, iValueOffset, val_tree, &count, amf3_encoding);
+ iValueOffset = dissect_amf0_property_list(tvb, pinfo, iValueOffset, val_tree, &count, amf3_encoding);
proto_item_append_text(ti, " (%u items)", count);
break;
case AMF0_NULL:
@@ -1050,7 +1053,7 @@ dissect_amf0_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, gboolean *
iArrayLength = tvb_get_ntohl(tvb, iValueOffset);
proto_tree_add_uint(val_tree, hf_amf_arraylength, tvb, iValueOffset, 4, iArrayLength);
iValueOffset += 4;
- iValueOffset = dissect_amf0_property_list(tvb, iValueOffset, val_tree, &count, amf3_encoding);
+ iValueOffset = dissect_amf0_property_list(tvb, pinfo, iValueOffset, val_tree, &count, amf3_encoding);
proto_item_append_text(ti, " (%u items)", count);
break;
case AMF0_END_OF_OBJECT:
@@ -1068,7 +1071,7 @@ dissect_amf0_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, gboolean *
proto_tree_add_uint(val_tree, hf_amf_arraylength, tvb, iValueOffset, 4, iArrayLength);
iValueOffset += 4;
for (i = 0; i < iArrayLength; i++)
- iValueOffset = dissect_amf0_value_type(tvb, iValueOffset, val_tree, amf3_encoding, NULL);
+ iValueOffset = dissect_amf0_value_type(tvb, pinfo, iValueOffset, val_tree, amf3_encoding, NULL);
proto_item_append_text(ti, " (%u items)", iArrayLength);
break;
case AMF0_DATE:
@@ -1106,7 +1109,7 @@ dissect_amf0_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, gboolean *
iStringValue = tvb_get_string_enc(wmem_packet_scope(), tvb, iValueOffset, iStringLength, ENC_UTF_8|ENC_NA);
proto_tree_add_string(val_tree, hf_amf_string, tvb, iValueOffset, iStringLength, iStringValue);
iValueOffset += iStringLength;
- iValueOffset = dissect_amf0_property_list(tvb, iValueOffset, val_tree, &count, amf3_encoding);
+ iValueOffset = dissect_amf0_property_list(tvb, pinfo, iValueOffset, val_tree, &count, amf3_encoding);
break;
case AMF0_AMF3_MARKER:
*amf3_encoding = TRUE;
@@ -1127,6 +1130,7 @@ dissect_amf0_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, gboolean *
iValueOffset = tvb_reported_length(tvb);
break;
}
+ decrement_dissection_depth(pinfo);
proto_item_set_end(ti, tvb, iValueOffset);
return iValueOffset;
}
@@ -1173,7 +1177,8 @@ amf_get_u29(tvbuff_t *tvb, int offset, guint *lenp)
}
static gint
-dissect_amf3_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, proto_item *parent_ti)
+// NOLINTNEXTLINE(misc-no-recursion)
+dissect_amf3_value_type(tvbuff_t *tvb, packet_info *pinfo, gint offset, proto_tree *tree, proto_item *parent_ti)
{
guint8 iObjType;
proto_item *ti;
@@ -1233,6 +1238,7 @@ dissect_amf3_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, proto_item
proto_tree_add_uint(val_tree, hf_amf_amf3_type, tvb, iValueOffset, 1, iObjType);
iValueOffset++;
+ increment_dissection_depth(pinfo);
switch (iObjType) {
case AMF3_UNDEFINED:
case AMF3_NULL:
@@ -1365,14 +1371,14 @@ dissect_amf3_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, proto_item
proto_item_append_text(subval_ti, "%s",
val_to_str_const(iObjType, amf3_type_vals, "Unknown"));
- iValueOffset = dissect_amf3_value_type(tvb, iValueOffset, subval_tree, subval_ti);
+ iValueOffset = dissect_amf3_value_type(tvb, pinfo, iValueOffset, subval_tree, subval_ti);
}
/*
* Dissect the dense portion.
*/
for (i = 0; i < iArrayLength; i++)
- iValueOffset = dissect_amf3_value_type(tvb, iValueOffset, val_tree, NULL);
+ iValueOffset = dissect_amf3_value_type(tvb, pinfo, iValueOffset, val_tree, NULL);
proto_item_set_end(ti, tvb, iValueOffset);
} else {
@@ -1450,7 +1456,7 @@ dissect_amf3_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, proto_item
}
}
for (i = 0; i < iTraitCount; i++)
- iValueOffset = dissect_amf3_value_type(tvb, iValueOffset, traits_tree, NULL);
+ iValueOffset = dissect_amf3_value_type(tvb, pinfo, iValueOffset, traits_tree, NULL);
if (iTypeIsDynamic) {
for (;;) {
/* Fetch the name */
@@ -1485,7 +1491,7 @@ dissect_amf3_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, proto_item
}
/* Fetch the value */
- iValueOffset = dissect_amf3_value_type(tvb, iValueOffset, subval_tree, subval_ti);
+ iValueOffset = dissect_amf3_value_type(tvb, pinfo, iValueOffset, subval_tree, subval_ti);
proto_item_set_end(subval_ti, tvb, iValueOffset);
}
}
@@ -1563,12 +1569,13 @@ dissect_amf3_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, proto_item
iValueOffset = tvb_reported_length(tvb);
break;
}
+ decrement_dissection_depth(pinfo);
proto_item_set_end(ti, tvb, iValueOffset);
return iValueOffset;
}
static gint
-dissect_rtmpt_body_command(tvbuff_t *tvb, gint offset, proto_tree *rtmpt_tree, gboolean amf3)
+dissect_rtmpt_body_command(tvbuff_t *tvb, packet_info *pinfo, gint offset, proto_tree *rtmpt_tree, gboolean amf3)
{
gboolean amf3_encoding = FALSE;
@@ -1584,9 +1591,9 @@ dissect_rtmpt_body_command(tvbuff_t *tvb, gint offset, proto_tree *rtmpt_tree, g
while (tvb_reported_length_remaining(tvb, offset) > 0)
{
if (amf3_encoding)
- offset = dissect_amf3_value_type(tvb, offset, rtmpt_tree, NULL);
+ offset = dissect_amf3_value_type(tvb, pinfo, offset, rtmpt_tree, NULL);
else
- offset = dissect_amf0_value_type(tvb, offset, rtmpt_tree, &amf3_encoding, NULL);
+ offset = dissect_amf0_value_type(tvb, pinfo, offset, rtmpt_tree, &amf3_encoding, NULL);
}
return offset;
}
@@ -1634,7 +1641,7 @@ dissect_rtmpt_body_video(tvbuff_t *tvb, gint offset, proto_tree *rtmpt_tree)
}
static void
-dissect_rtmpt_body_aggregate(tvbuff_t *tvb, gint offset, proto_tree *rtmpt_tree)
+dissect_rtmpt_body_aggregate(tvbuff_t *tvb, packet_info *pinfo, gint offset, proto_tree *rtmpt_tree)
{
proto_tree *tag_tree;
@@ -1665,7 +1672,7 @@ dissect_rtmpt_body_aggregate(tvbuff_t *tvb, gint offset, proto_tree *rtmpt_tree)
dissect_rtmpt_body_video(tvb, offset + 11, data_tree);
break;
case 18:
- dissect_rtmpt_body_command(tvb, offset + 11, data_tree, FALSE);
+ dissect_rtmpt_body_command(tvb, pinfo, offset + 11, data_tree, FALSE);
break;
default:
break;
@@ -1842,11 +1849,11 @@ dissect_rtmpt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, rtmpt_conv_t
break;
case RTMPT_TYPE_COMMAND_AMF0:
case RTMPT_TYPE_DATA_AMF0:
- dissect_rtmpt_body_command(tvb, offset, rtmpt_tree, FALSE);
+ dissect_rtmpt_body_command(tvb, pinfo, offset, rtmpt_tree, FALSE);
break;
case RTMPT_TYPE_COMMAND_AMF3:
case RTMPT_TYPE_DATA_AMF3:
- dissect_rtmpt_body_command(tvb, offset, rtmpt_tree, TRUE);
+ dissect_rtmpt_body_command(tvb, pinfo, offset, rtmpt_tree, TRUE);
break;
case RTMPT_TYPE_AUDIO_DATA:
dissect_rtmpt_body_audio(tvb, offset, rtmpt_tree);
@@ -1855,7 +1862,7 @@ dissect_rtmpt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, rtmpt_conv_t
dissect_rtmpt_body_video(tvb, offset, rtmpt_tree);
break;
case RTMPT_TYPE_AGGREGATE:
- dissect_rtmpt_body_aggregate(tvb, offset, rtmpt_tree);
+ dissect_rtmpt_body_aggregate(tvb, pinfo, offset, rtmpt_tree);
break;
}
}
@@ -2500,7 +2507,7 @@ dissect_rtmpt_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
}
static int
-dissect_amf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+dissect_amf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_item *ti;
proto_tree *amf_tree, *headers_tree, *messages_tree;
@@ -2536,9 +2543,9 @@ dissect_amf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data
proto_tree_add_uint(headers_tree, hf_amf_header_length, tvb, offset, 4, header_length);
offset += 4;
if (amf3_encoding)
- offset = dissect_amf3_value_type(tvb, offset, headers_tree, NULL);
+ offset = dissect_amf3_value_type(tvb, pinfo, offset, headers_tree, NULL);
else
- offset = dissect_amf0_value_type(tvb, offset, headers_tree, &amf3_encoding, NULL);
+ offset = dissect_amf0_value_type(tvb, pinfo, offset, headers_tree, &amf3_encoding, NULL);
}
}
message_count = tvb_get_ntohs(tvb, offset);
@@ -2559,7 +2566,7 @@ dissect_amf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data
else
proto_tree_add_uint(messages_tree, hf_amf_message_length, tvb, offset, 4, message_length);
offset += 4;
- offset = dissect_rtmpt_body_command(tvb, offset, messages_tree, FALSE);
+ offset = dissect_rtmpt_body_command(tvb, pinfo, offset, messages_tree, FALSE);
}
}
return tvb_captured_length(tvb);
diff --git a/epan/dissectors/packet-rtp.c b/epan/dissectors/packet-rtp.c
index 9f7ecea1..9e34b914 100644
--- a/epan/dissectors/packet-rtp.c
+++ b/epan/dissectors/packet-rtp.c
@@ -1185,6 +1185,7 @@ srtp_add_address(packet_info *pinfo, const port_type ptype, address *addr, int p
conversation_t* p_conv, *sdp_conv;
struct _rtp_conversation_info *p_conv_data;
wmem_array_t *rtp_conv_info_list = NULL;
+ wmem_map_t *ssrc_number_space = NULL;
/*
* If this isn't the first time this packet has been processed,
@@ -1213,10 +1214,20 @@ srtp_add_address(packet_info *pinfo, const port_type ptype, address *addr, int p
if (p_conv) {
/*
* Check if the conversation has data associated with it.
+ * Sometimes there are multiple setup messages for the same
+ * conversation, and it's worth copying over some of our
+ * internal data to the new conversation. The extended sequence
+ * number and timestamp cycle information is per-SSRC, and it
+ * doesn't hurt (and can definitely help) to ensure that the
+ * new conversation uses the same extended cycles as the old one.
+ * XXX: It's not actually clear that we really need to create
+ * extra conversations for each setup frame, because we save the
+ * relevant information to per-packet data for the subsequent passes.
*/
p_conv_data = (struct _rtp_conversation_info *)conversation_get_proto_data(p_conv, proto_rtp);
if (p_conv_data) {
rtp_conv_info_list = p_conv_data->rtp_sdp_setup_info_list;
+ ssrc_number_space = p_conv_data->ssrc_number_space;
}
}
@@ -1266,7 +1277,7 @@ srtp_add_address(packet_info *pinfo, const port_type ptype, address *addr, int p
/* Create conversation data */
p_conv_data = wmem_new0(wmem_file_scope(), struct _rtp_conversation_info);
- p_conv_data->ssrc_number_space = wmem_map_new(wmem_file_scope(), g_direct_hash, g_direct_equal);
+ p_conv_data->ssrc_number_space = ssrc_number_space ? ssrc_number_space : wmem_map_new(wmem_file_scope(), g_direct_hash, g_direct_equal);
p_conv_data->rtp_conv_info = wmem_new(wmem_file_scope(), rtp_private_conv_info);
p_conv_data->rtp_conv_info->multisegment_pdus = wmem_tree_new(wmem_file_scope());
DINDENT();
diff --git a/epan/dissectors/packet-rtps.c b/epan/dissectors/packet-rtps.c
index f278368e..a6fb03d9 100644
--- a/epan/dissectors/packet-rtps.c
+++ b/epan/dissectors/packet-rtps.c
@@ -2859,7 +2859,7 @@ static gint dissect_crypto_algorithm_requirements(proto_tree *tree , tvbuff_t* t
return offset;
}
-static gint dissect_mutable_member(proto_tree *tree , tvbuff_t * tvb, gint offset, guint encoding, guint encoding_version,
+static gint dissect_mutable_member(proto_tree *tree , tvbuff_t * tvb, packet_info *pinfo, gint offset, guint encoding, guint encoding_version,
dissection_info * info, gboolean * is_end, gboolean show);
static gint get_native_type_cdr_length(guint64 member_kind) {
@@ -3008,7 +3008,8 @@ static dissection_info* lookup_dissection_info_in_custom_and_builtin_types(guint
}
/* this is a recursive function. _info may or may not be NULL depending on the use iteration */
-static gint dissect_user_defined(proto_tree *tree, tvbuff_t * tvb, gint offset, guint encoding, guint encoding_version,
+// NOLINTNEXTLINE(misc-no-recursion)
+static gint dissect_user_defined(proto_tree *tree, tvbuff_t * tvb, packet_info *pinfo, gint offset, guint encoding, guint encoding_version,
dissection_info * _info, guint64 type_id, gchar * name,
RTICdrTypeObjectExtensibility extensibility, gint offset_zero,
guint16 flags, guint32 element_member_id, gboolean show) {
@@ -3064,6 +3065,7 @@ static gint dissect_user_defined(proto_tree *tree, tvbuff_t * tvb, gint offset,
}
//proto_item_append_text(tree, "(Before Switch 0x%016" PRIx64 ")", type_id);
+ increment_dissection_depth(pinfo);
switch (member_kind) {
case RTI_CDR_TYPE_OBJECT_TYPE_KIND_BOOLEAN_TYPE: {
gint length = get_native_type_cdr_length(member_kind);
@@ -3237,7 +3239,7 @@ static gint dissect_user_defined(proto_tree *tree, tvbuff_t * tvb, gint offset,
break;
}
}
- offset = dissect_user_defined(aux_tree, tvb, offset, encoding, encoding_version, NULL,
+ offset = dissect_user_defined(aux_tree, tvb, pinfo, offset, encoding, encoding_version, NULL,
info->base_type_id, temp_buff, EXTENSIBILITY_INVALID, offset_zero, 0, 0, show_current_element);
}
@@ -3310,7 +3312,7 @@ static gint dissect_user_defined(proto_tree *tree, tvbuff_t * tvb, gint offset,
}
}
if (info != NULL && info->base_type_id > 0)
- offset = dissect_user_defined(aux_tree, tvb, offset, encoding, encoding_version, NULL,
+ offset = dissect_user_defined(aux_tree, tvb, pinfo, offset, encoding, encoding_version, NULL,
info->base_type_id, temp_buff, EXTENSIBILITY_INVALID, offset_zero, 0, 0, show_current_element);
}
/* If reached the limit and there are remaining elements we need to show the message and
@@ -3351,7 +3353,7 @@ static gint dissect_user_defined(proto_tree *tree, tvbuff_t * tvb, gint offset,
if (info != NULL) {
base_type_id = info->base_type_id;
}
- offset = dissect_user_defined(tree, tvb, offset, encoding, encoding_version, NULL,
+ offset = dissect_user_defined(tree, tvb, pinfo, offset, encoding, encoding_version, NULL,
base_type_id, name, EXTENSIBILITY_INVALID, offset_zero, 0, 0, show);
break;
}
@@ -3369,7 +3371,7 @@ static gint dissect_user_defined(proto_tree *tree, tvbuff_t * tvb, gint offset,
proto_item_append_text(tree, " (discriminator = %d, type_id = 0x%016" PRIx64 ")",
value, result->member_type_id);
}
- offset = dissect_user_defined(tree, tvb, offset, encoding, encoding_version, NULL,
+ offset = dissect_user_defined(tree, tvb, pinfo, offset, encoding, encoding_version, NULL,
result->member_type_id, result->member_name, EXTENSIBILITY_INVALID, offset, 0, 0, show);
} else {
/* the hashmap uses the type_id to index the objects. substracting -2 here to lookup the discriminator
@@ -3381,7 +3383,7 @@ static gint dissect_user_defined(proto_tree *tree, tvbuff_t * tvb, gint offset,
proto_item_append_text(tree, " (discriminator = %d, type_id = 0x%016" PRIx64 ")",
value, result->member_type_id);
}
- offset = dissect_user_defined(tree, tvb, offset, encoding, encoding_version, NULL,
+ offset = dissect_user_defined(tree, tvb, pinfo, offset, encoding, encoding_version, NULL,
result->member_type_id, result->member_name, EXTENSIBILITY_INVALID, offset, 0, 0, show);
}
}
@@ -3414,7 +3416,7 @@ static gint dissect_user_defined(proto_tree *tree, tvbuff_t * tvb, gint offset,
/* Updated only once */
first_skipped_element_offset = offset;
}
- offset = dissect_mutable_member(aux_tree, tvb, offset, encoding, encoding_version, info, &is_end, show_current_element);
+ offset = dissect_mutable_member(aux_tree, tvb, pinfo, offset, encoding, encoding_version, info, &is_end, show_current_element);
++num_elements;
if (show_current_element) {
++shown_elements;
@@ -3426,7 +3428,7 @@ static gint dissect_user_defined(proto_tree *tree, tvbuff_t * tvb, gint offset,
if (show) {
proto_item_append_text(tree, "(BaseId: 0x%016" PRIx64 ")", info->base_type_id);
}
- offset = dissect_user_defined(aux_tree, tvb, offset, encoding, encoding_version, NULL,
+ offset = dissect_user_defined(aux_tree, tvb, pinfo, offset, encoding, encoding_version, NULL,
info->base_type_id, info->member_name, EXTENSIBILITY_INVALID,
offset, 0, 0, show);
}
@@ -3445,7 +3447,7 @@ static gint dissect_user_defined(proto_tree *tree, tvbuff_t * tvb, gint offset,
first_skipped_element_offset = offset;
}
/* If a member is not shown all it children will inherit the "show_current_element" value */
- offset = dissect_user_defined(aux_tree, tvb, offset, encoding, encoding_version, NULL,
+ offset = dissect_user_defined(aux_tree, tvb, pinfo, offset, encoding, encoding_version, NULL,
info->elements[i].type_id, info->elements[i].member_name, info->extensibility,
offset_zero, info->elements[i].flags, info->elements[i].member_id, show_current_element);
}
@@ -3476,6 +3478,7 @@ static gint dissect_user_defined(proto_tree *tree, tvbuff_t * tvb, gint offset,
break;
}
}
+ decrement_dissection_depth(pinfo);
if (extensibility == EXTENSIBILITY_MUTABLE) {
offset_zero += member_length;
@@ -3485,7 +3488,8 @@ static gint dissect_user_defined(proto_tree *tree, tvbuff_t * tvb, gint offset,
}
}
-static gint dissect_mutable_member(proto_tree *tree , tvbuff_t * tvb, gint offset, guint encoding, guint encoding_version,
+// NOLINTNEXTLINE(misc-no-recursion)
+static gint dissect_mutable_member(proto_tree *tree , tvbuff_t * tvb, packet_info *pinfo, gint offset, guint encoding, guint encoding_version,
dissection_info * info, gboolean * is_end, gboolean show) {
proto_tree * member;
@@ -3514,7 +3518,7 @@ static gint dissect_mutable_member(proto_tree *tree , tvbuff_t * tvb, gint offse
mapping = (mutable_member_mapping *) wmem_map_lookup(mutable_member_mappings, &(key));
if (mapping) { /* the library knows how to dissect this */
proto_item_append_text(member, "(base found 0x%016" PRIx64 ")", key);
- dissect_user_defined(tree, tvb, offset, encoding, encoding_version, NULL, mapping->member_type_id,
+ dissect_user_defined(tree, tvb, pinfo, offset, encoding, encoding_version, NULL, mapping->member_type_id,
mapping->member_name, EXTENSIBILITY_INVALID, offset, 0, mapping->member_id, show);
proto_item_set_hidden(member);
return check_offset_addition(offset, member_length, tree, NULL, tvb);
@@ -3528,7 +3532,7 @@ static gint dissect_mutable_member(proto_tree *tree , tvbuff_t * tvb, gint offse
mapping = (mutable_member_mapping *) wmem_map_lookup(mutable_member_mappings, &(key));
if (mapping) { /* the library knows how to dissect this */
proto_item_append_text(member, "(found 0x%016" PRIx64 ")", key);
- dissect_user_defined(tree, tvb, offset, encoding, encoding_version, NULL, mapping->member_type_id,
+ dissect_user_defined(tree, tvb, pinfo, offset, encoding, encoding_version, NULL, mapping->member_type_id,
mapping->member_name, EXTENSIBILITY_INVALID, offset, 0, mapping->member_id, show);
} else
@@ -4920,7 +4924,8 @@ static const char *rtps_util_typecode_id_to_string(guint32 typecode_id) {
/* Insert in the protocol tree the next bytes interpreted as typecode info
* Returns the number of bytes parsed
*/
-static gint rtps_util_add_typecode(proto_tree *tree, tvbuff_t *tvb, gint offset, const guint encoding,
+// NOLINTNEXTLINE(misc-no-recursion)
+static gint rtps_util_add_typecode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint offset, const guint encoding,
int indent_level, int is_pointer, guint16 bitfield, int is_key, const gint offset_begin,
char *name,
int seq_max_len, /* -1 = not a sequence field */
@@ -5064,9 +5069,11 @@ static gint rtps_util_add_typecode(proto_tree *tree, tvbuff_t *tvb, gint offset,
offset = disc_offset_begin + disc_size;
#if 0
field_offset_begin = offset;
+ increment_dissection_depth(pinfo);
offset += rtps_util_add_typecode(
tree,
tvb,
+ pinfo,
offset,
encoding,
indent_level+1,
@@ -5078,6 +5085,7 @@ static gint rtps_util_add_typecode(proto_tree *tree, tvbuff_t *tvb, gint offset,
-1,
NULL,
ndds_40_hack);
+ decrement_dissection_depth(pinfo);
#endif
/* Add the entry of the union in the tree */
@@ -5143,9 +5151,11 @@ static gint rtps_util_add_typecode(proto_tree *tree, tvbuff_t *tvb, gint offset,
proto_item_set_len(case_item, retVal);
}
- offset += rtps_util_add_typecode(tree, tvb, offset, encoding,
+ increment_dissection_depth(pinfo);
+ offset += rtps_util_add_typecode(tree, tvb, pinfo, offset, encoding,
indent_level+2, member_is_pointer, 0, 0, field_offset_begin,
member_name, -1, NULL, ndds_40_hack);
+ decrement_dissection_depth(pinfo);
}
/* Finally prints the name of the struct (if provided) */
(void) g_strlcpy(type_name, "}", sizeof(type_name));
@@ -5313,9 +5323,11 @@ static gint rtps_util_add_typecode(proto_tree *tree, tvbuff_t *tvb, gint offset,
member_is_key = tvb_get_guint8(tvb, offset);
offset++;
- offset += rtps_util_add_typecode(tree, tvb, offset, encoding,
+ increment_dissection_depth(pinfo);
+ offset += rtps_util_add_typecode(tree, tvb, pinfo, offset, encoding,
indent_level+1, member_is_pointer, member_bitfield, member_is_key,
field_offset_begin, member_name, -1, NULL, ndds_40_hack);
+ decrement_dissection_depth(pinfo);
}
}
/* Finally prints the name of the struct (if provided) */
@@ -5354,7 +5366,7 @@ static gint rtps_util_add_typecode(proto_tree *tree, tvbuff_t *tvb, gint offset,
offset += 4;
/* Recursive decode seq typecode */
- /*offset += */rtps_util_add_typecode(tree, tvb, offset, encoding, indent_level,
+ /*offset += */rtps_util_add_typecode(tree, tvb, pinfo, offset, encoding, indent_level,
is_pointer, bitfield, is_key, offset_begin, name,
seq_max_len2, NULL, ndds_40_hack);
/* Differently from the other typecodes, the line has been already printed */
@@ -5389,9 +5401,11 @@ static gint rtps_util_add_typecode(proto_tree *tree, tvbuff_t *tvb, gint offset,
}
/* Recursive decode seq typecode */
- /*offset += */rtps_util_add_typecode(tree, tvb, offset, encoding,
+ increment_dissection_depth(pinfo);
+ /*offset += */rtps_util_add_typecode(tree, tvb, pinfo, offset, encoding,
indent_level, is_pointer, bitfield, is_key, offset_begin,
name, -1, size, ndds_40_hack);
+ decrement_dissection_depth(pinfo);
/* Differently from the other typecodes, the line has been already printed */
return retVal;
}
@@ -5981,6 +5995,7 @@ static void rtps_util_add_type_element_struct(proto_tree *tree,
static void rtps_util_add_type_library(proto_tree *tree, packet_info * pinfo,
tvbuff_t * tvb, gint offset, const guint encoding, guint32 size);
+// NOLINTNEXTLINE(misc-no-recursion)
static void rtps_util_add_type_element_module(proto_tree *tree, packet_info * pinfo,
tvbuff_t * tvb, gint offset, const guint encoding) {
guint32 long_number;
@@ -5992,6 +6007,7 @@ static void rtps_util_add_type_element_module(proto_tree *tree, packet_info * pi
rtps_util_add_type_library(tree, pinfo, tvb, offset, encoding, -1);
}
+// NOLINTNEXTLINE(misc-no-recursion)
static gint rtps_util_add_type_library_element(proto_tree *tree, packet_info * pinfo,
tvbuff_t * tvb, gint offset, const guint encoding) {
proto_tree * element_tree;
@@ -6065,6 +6081,7 @@ static gint rtps_util_add_type_library_element(proto_tree *tree, packet_info * p
return offset;
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void rtps_util_add_type_library(proto_tree *tree, packet_info * pinfo,
tvbuff_t * tvb, gint offset, const guint encoding, guint32 size) {
proto_tree * library_tree;
@@ -6073,10 +6090,12 @@ static void rtps_util_add_type_library(proto_tree *tree, packet_info * pinfo,
library_tree = proto_tree_add_subtree_format(tree, tvb, offset, size,
ett_rtps_type_library, NULL, "Type Library (%d elements)", long_number);
offset += 4;
+ increment_dissection_depth(pinfo);
for (i = 0; i < long_number; i++) {
offset = rtps_util_add_type_library_element(library_tree, pinfo, tvb,
offset, encoding);
}
+ decrement_dissection_depth(pinfo);
}
static void rtps_util_add_typeobject(proto_tree *tree, packet_info * pinfo,
@@ -6753,7 +6772,7 @@ static gboolean rtps_util_try_dissector(proto_tree *tree,
info = lookup_dissection_info_in_custom_and_builtin_types(type_mapping_object->type_id);
if (info != NULL) {
proto_item_append_text(tree, " (TypeId: 0x%016" PRIx64 ")", info->type_id);
- return dissect_user_defined(tree, tvb, offset, encoding, encoding_version, info,
+ return dissect_user_defined(tree, tvb, pinfo, offset, encoding, encoding_version, info,
info->type_id, info->member_name, EXTENSIBILITY_INVALID, offset,
0 /* flags */, 0 /* member_id */, TRUE);
}
@@ -7498,6 +7517,7 @@ static gboolean dissect_parameter_sequence_rti_dds(proto_tree *rtps_parameter_tr
case PID_TYPECODE_RTPS2: {
rtps_util_add_typecode(rtps_parameter_tree,
tvb,
+ pinfo,
offset,
encoding,
0, /* indent level */
@@ -7714,6 +7734,7 @@ static gboolean dissect_parameter_sequence_toc(proto_tree *rtps_parameter_tree,
case PID_TYPECODE_RTPS2: {
rtps_util_add_typecode(rtps_parameter_tree,
tvb,
+ pinfo,
offset,
encoding,
0, /* indent level */
@@ -8608,7 +8629,7 @@ static gboolean dissect_parameter_sequence_v1(proto_tree *rtps_parameter_tree, p
* +---------------+---------------+---------------+---------------+
*/
case PID_TYPECODE:
- rtps_util_add_typecode(rtps_parameter_tree, tvb, offset, encoding,
+ rtps_util_add_typecode(rtps_parameter_tree, tvb, pinfo, offset, encoding,
0, /* indent level */
0, /* isPointer */
-1, /* bitfield */
diff --git a/epan/dissectors/packet-s7comm.c b/epan/dissectors/packet-s7comm.c
index de55b83b..5eeac7f0 100644
--- a/epan/dissectors/packet-s7comm.c
+++ b/epan/dissectors/packet-s7comm.c
@@ -4252,6 +4252,7 @@ s7comm_decode_ud_tis_param(tvbuff_t *tvb,
*
*******************************************************************************************************/
static guint32
+// NOLINTNEXTLINE(misc-no-recursion)
s7comm_decode_ud_tis_jobs(tvbuff_t *tvb,
proto_tree *td_tree,
guint16 td_size,
@@ -4309,6 +4310,7 @@ s7comm_decode_ud_tis_jobs(tvbuff_t *tvb,
}
/* New job data tree */
if (job_td_size > 0) {
+ // We recurse here, but we'll run out of packet before we run out of stack.
offset = s7comm_decode_ud_tis_data(tvb, td_tree, S7COMM_UD_TYPE_REQ, job_subfunc, job_td_size, offset);
}
break;
@@ -5122,6 +5124,7 @@ s7comm_decode_ud_tis_breakpoint(tvbuff_t *tvb,
*
*******************************************************************************************************/
static guint32
+// NOLINTNEXTLINE(misc-no-recursion)
s7comm_decode_ud_tis_data(tvbuff_t *tvb,
proto_tree *tree,
guint8 type,
@@ -5164,6 +5167,7 @@ s7comm_decode_ud_tis_data(tvbuff_t *tvb,
case S7COMM_UD_SUBF_TIS_READJOBLIST:
case S7COMM_UD_SUBF_TIS_READJOB:
case S7COMM_UD_SUBF_TIS_REPLACEJOB:
+ // We recurse here, but we'll run out of packet before we run out of stack.
offset = s7comm_decode_ud_tis_jobs(tvb, td_tree, td_size, type, subfunc, offset);
break;
case S7COMM_UD_SUBF_TIS_MODVAR:
@@ -8567,11 +8571,7 @@ proto_register_s7comm (void)
&ett_s7comm_fragment,
};
- proto_s7comm = proto_register_protocol (
- "S7 Communication", /* name */
- "S7COMM", /* short name */
- "s7comm" /* abbrev */
- );
+ proto_s7comm = proto_register_protocol ("S7 Communication", "S7COMM", "s7comm");
proto_register_field_array(proto_s7comm, hf, array_length (hf));
diff --git a/epan/dissectors/packet-scsi.c b/epan/dissectors/packet-scsi.c
index 7bb08cb7..14f22952 100644
--- a/epan/dissectors/packet-scsi.c
+++ b/epan/dissectors/packet-scsi.c
@@ -960,7 +960,8 @@ scsistat_init(struct register_srt* srt, GArray* srt_array)
scsi_srt_table = init_srt_table(tap_data->prog, NULL, srt_array, SCSI_NUM_PROCEDURES, NULL, tap_data->hf_name, tap_data);
for (i = 0; i < SCSI_NUM_PROCEDURES; i++)
{
- init_srt_table_row(scsi_srt_table, i, val_to_str_ext(i, tap_data->cdbnames_ext, "Unknown-0x%02x"));
+ init_srt_table_row(scsi_srt_table, i,
+ val_to_str_ext_const(i, tap_data->cdbnames_ext, "Unknown"));
}
}
diff --git a/epan/dissectors/packet-sctp.c b/epan/dissectors/packet-sctp.c
index f9f72a13..76348743 100644
--- a/epan/dissectors/packet-sctp.c
+++ b/epan/dissectors/packet-sctp.c
@@ -1404,6 +1404,7 @@ dissect_state_cookie_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tr
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_unrecognized_parameters_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
/* FIXME: Does it contain one or more parameters? */
@@ -1717,6 +1718,7 @@ dissect_forward_tsn_supported_parameter(tvbuff_t *parameter_tvb _U_)
#define ADDRESS_PARAMETER_OFFSET (CORRELATION_ID_OFFSET + CORRELATION_ID_LENGTH)
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_add_ip_address_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree, proto_item *parameter_item)
{
guint16 address_length;
@@ -1734,6 +1736,7 @@ dissect_add_ip_address_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, pr
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_del_ip_address_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree, proto_item *parameter_item)
{
guint16 address_length;
@@ -1753,6 +1756,7 @@ dissect_del_ip_address_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, pr
#define ERROR_CAUSE_IND_CASUES_OFFSET (CORRELATION_ID_OFFSET + CORRELATION_ID_LENGTH)
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_error_cause_indication_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
guint16 causes_length;
@@ -1767,6 +1771,7 @@ dissect_error_cause_indication_parameter(tvbuff_t *parameter_tvb, packet_info *p
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_set_primary_address_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree, proto_item *parameter_item)
{
guint16 address_length;
@@ -1886,6 +1891,7 @@ static const true_false_string sctp_parameter_bit_2_value = {
};
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo,
proto_tree *chunk_tree, proto_item *additional_item,
gboolean dissecting_init_init_ack_chunk,
@@ -1928,6 +1934,7 @@ dissect_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo,
parameter_tree = NULL;
}
+ increment_dissection_depth(pinfo);
switch(type) {
case HEARTBEAT_INFO_PARAMETER_ID:
dissect_heartbeat_info_parameter(parameter_tvb, parameter_tree, parameter_item);
@@ -2014,6 +2021,7 @@ dissect_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo,
dissect_unknown_parameter(parameter_tvb, parameter_tree, parameter_item);
break;
}
+ decrement_dissection_depth(pinfo);
if (padding_length > 0) {
proto_tree_add_item(parameter_tree, hf_parameter_padding, parameter_tvb, PARAMETER_HEADER_OFFSET + length, padding_length, ENC_NA);
@@ -2021,6 +2029,7 @@ dissect_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo,
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_parameters(tvbuff_t *parameters_tvb, packet_info *pinfo, proto_tree *tree, proto_item *additional_item, gboolean dissecting_init_init_ack_chunk)
{
gint offset, length, total_length, remaining_length;
@@ -2122,6 +2131,7 @@ dissect_out_of_resource_cause(tvbuff_t *cause_tvb _U_)
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_unresolvable_address_cause(tvbuff_t *cause_tvb, packet_info *pinfo, proto_tree *cause_tree, proto_item *cause_item)
{
guint16 parameter_length;
@@ -2138,6 +2148,7 @@ static gboolean
dissect_sctp_chunk(tvbuff_t *chunk_tvb, packet_info *pinfo, proto_tree *tree, proto_tree *sctp_tree, sctp_half_assoc_t *assoc, gboolean useinfo);
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_unrecognized_chunk_type_cause(tvbuff_t *cause_tvb, packet_info *pinfo, proto_tree *cause_tree, proto_item *cause_item)
{
guint16 chunk_length;
@@ -2159,6 +2170,7 @@ dissect_invalid_mandatory_parameter_cause(tvbuff_t *cause_tvb _U_)
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_unrecognized_parameters_cause(tvbuff_t *cause_tvb, packet_info *pinfo, proto_tree *cause_tree)
{
guint16 cause_info_length;
@@ -2188,6 +2200,7 @@ dissect_cookie_received_while_shutting_down_cause(tvbuff_t *cause_tvb _U_)
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_restart_with_new_address_cause(tvbuff_t *cause_tvb, packet_info *pinfo, proto_tree *cause_tree, proto_item *cause_item)
{
guint16 cause_info_length;
@@ -2223,6 +2236,7 @@ dissect_protocol_violation_cause(tvbuff_t *cause_tvb, proto_tree *cause_tree)
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_delete_last_address_cause(tvbuff_t *cause_tvb, packet_info *pinfo, proto_tree *cause_tree, proto_item *cause_item)
{
guint16 cause_info_length;
@@ -2238,6 +2252,7 @@ dissect_delete_last_address_cause(tvbuff_t *cause_tvb, packet_info *pinfo, proto
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_resource_outage_cause(tvbuff_t *cause_tvb, packet_info *pinfo, proto_tree *cause_tree)
{
guint16 cause_info_length;
@@ -2251,6 +2266,7 @@ dissect_resource_outage_cause(tvbuff_t *cause_tvb, packet_info *pinfo, proto_tre
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_delete_source_address_cause(tvbuff_t *cause_tvb, packet_info *pinfo, proto_tree *cause_tree, proto_item *cause_item)
{
guint16 cause_info_length;
@@ -2266,6 +2282,7 @@ dissect_delete_source_address_cause(tvbuff_t *cause_tvb, packet_info *pinfo, pro
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_request_refused_cause(tvbuff_t *cause_tvb, packet_info *pinfo, proto_tree *cause_tree)
{
guint16 cause_info_length;
@@ -2339,6 +2356,7 @@ static const value_string cause_code_values[] = {
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_error_cause(tvbuff_t *cause_tvb, packet_info *pinfo, proto_tree *chunk_tree)
{
guint16 code, length, padding_length;
@@ -2356,6 +2374,7 @@ dissect_error_cause(tvbuff_t *cause_tvb, packet_info *pinfo, proto_tree *chunk_t
proto_tree_add_item(cause_tree, hf_cause_length, cause_tvb, CAUSE_LENGTH_OFFSET, CAUSE_LENGTH_LENGTH, ENC_BIG_ENDIAN);
/* XXX - add expert info if length is bogus? */
+ increment_dissection_depth(pinfo);
switch(code) {
case INVALID_STREAM_IDENTIFIER:
dissect_invalid_stream_identifier_cause(cause_tvb, cause_tree, cause_item);
@@ -2415,12 +2434,14 @@ dissect_error_cause(tvbuff_t *cause_tvb, packet_info *pinfo, proto_tree *chunk_t
dissect_unknown_cause(cause_tvb, cause_tree, cause_item);
break;
}
+ decrement_dissection_depth(pinfo);
if (padding_length > 0)
proto_tree_add_item(cause_tree, hf_cause_padding, cause_tvb, CAUSE_HEADER_OFFSET + length, padding_length, ENC_NA);
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_error_causes(tvbuff_t *causes_tvb, packet_info *pinfo, proto_tree *tree)
{
gint offset, length, total_length, remaining_length;
@@ -3587,6 +3608,7 @@ dissect_data_chunk(tvbuff_t *chunk_tvb,
INIT_CHUNK_INITIAL_TSN_LENGTH )
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_init_chunk(tvbuff_t *chunk_tvb, guint16 chunk_length, packet_info *pinfo, proto_tree *chunk_tree, proto_item *chunk_item)
{
tvbuff_t *parameters_tvb;
@@ -3621,6 +3643,7 @@ dissect_init_chunk(tvbuff_t *chunk_tvb, guint16 chunk_length, packet_info *pinfo
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_init_ack_chunk(tvbuff_t *chunk_tvb, guint16 chunk_length, packet_info *pinfo, proto_tree *chunk_tree, proto_item *chunk_item)
{
tvbuff_t *parameters_tvb;
@@ -3998,6 +4021,7 @@ dissect_nr_sack_chunk(packet_info *pinfo, tvbuff_t *chunk_tvb, proto_tree *chunk
#define HEARTBEAT_CHUNK_INFO_OFFSET CHUNK_VALUE_OFFSET
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_heartbeat_chunk(tvbuff_t *chunk_tvb, guint16 chunk_length, packet_info *pinfo, proto_tree *chunk_tree, proto_item *chunk_item)
{
tvbuff_t *parameter_tvb;
@@ -4015,6 +4039,7 @@ dissect_heartbeat_chunk(tvbuff_t *chunk_tvb, guint16 chunk_length, packet_info *
#define HEARTBEAT_ACK_CHUNK_INFO_OFFSET CHUNK_VALUE_OFFSET
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_heartbeat_ack_chunk(tvbuff_t *chunk_tvb, guint16 chunk_length, packet_info *pinfo, proto_tree *chunk_tree, proto_item *chunk_item)
{
tvbuff_t *parameter_tvb;
@@ -4033,6 +4058,7 @@ dissect_heartbeat_ack_chunk(tvbuff_t *chunk_tvb, guint16 chunk_length, packet_in
#define SCTP_ABORT_CHUNK_T_BIT 0x01
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_abort_chunk(tvbuff_t *chunk_tvb, guint16 chunk_length, packet_info *pinfo, proto_tree *chunk_tree, proto_item *flags_item)
{
tvbuff_t *causes_tvb;
@@ -4071,6 +4097,7 @@ dissect_shutdown_ack_chunk(tvbuff_t *chunk_tvb _U_)
#define ERROR_CAUSE_IND_CAUSES_OFFSET CHUNK_VALUE_OFFSET
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_error_chunk(tvbuff_t *chunk_tvb, guint16 chunk_length, packet_info *pinfo, proto_tree *chunk_tree)
{
tvbuff_t *causes_tvb;
@@ -4231,6 +4258,7 @@ dissect_i_forward_tsn_chunk(tvbuff_t *chunk_tvb, guint16 chunk_length, proto_tre
#define RE_CONFIG_PARAMETERS_OFFSET CHUNK_HEADER_LENGTH
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_re_config_chunk(tvbuff_t *chunk_tvb, guint16 chunk_length, packet_info *pinfo, proto_tree *chunk_tree, proto_item *chunk_item _U_)
{
tvbuff_t *parameters_tvb;
@@ -4264,6 +4292,7 @@ dissect_auth_chunk(tvbuff_t *chunk_tvb, guint16 chunk_length, proto_tree *chunk_
#define ASCONF_CHUNK_PARAMETERS_OFFSET (SEQUENCE_NUMBER_OFFSET + SCTP_SEQUENCE_NUMBER_LENGTH)
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_asconf_chunk(tvbuff_t *chunk_tvb, guint16 chunk_length, packet_info *pinfo, proto_tree *chunk_tree, proto_item *chunk_item)
{
tvbuff_t *parameters_tvb;
@@ -4287,6 +4316,7 @@ dissect_asconf_chunk(tvbuff_t *chunk_tvb, guint16 chunk_length, packet_info *pin
#define ASCONF_ACK_CHUNK_PARAMETERS_OFFSET (SEQUENCE_NUMBER_OFFSET + SCTP_SEQUENCE_NUMBER_LENGTH)
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_asconf_ack_chunk(tvbuff_t *chunk_tvb, guint16 chunk_length, packet_info *pinfo, proto_tree *chunk_tree, proto_item *chunk_item)
{
tvbuff_t *parameters_tvb;
@@ -4344,6 +4374,7 @@ static const true_false_string sctp_pktdropk_t_bit_value = {
};
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_pktdrop_chunk(tvbuff_t *chunk_tvb, guint16 chunk_length, packet_info *pinfo, proto_tree *chunk_tree, proto_item *chunk_item, proto_item *flags_item)
{
tvbuff_t *data_field_tvb;
@@ -4427,6 +4458,7 @@ static const true_false_string sctp_chunk_bit_2_value = {
static gboolean
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_sctp_chunk(tvbuff_t *chunk_tvb,
packet_info *pinfo,
proto_tree *tree,
@@ -4492,6 +4524,7 @@ dissect_sctp_chunk(tvbuff_t *chunk_tvb,
*/
/* now dissect the chunk value */
+ increment_dissection_depth(pinfo);
switch(type) {
case SCTP_DATA_CHUNK_ID:
result = dissect_data_chunk(chunk_tvb, length, pinfo, tree, chunk_tree, chunk_item, flags_item, ha, FALSE);
@@ -4574,6 +4607,7 @@ dissect_sctp_chunk(tvbuff_t *chunk_tvb,
dissect_unknown_chunk(chunk_tvb, length, type, chunk_tree, chunk_item);
break;
}
+ decrement_dissection_depth(pinfo);
if (padding_length > 0)
proto_tree_add_item(chunk_tree, hf_chunk_padding, chunk_tvb, CHUNK_HEADER_OFFSET + length, padding_length, ENC_NA);
@@ -4585,6 +4619,7 @@ dissect_sctp_chunk(tvbuff_t *chunk_tvb,
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_sctp_chunks(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *sctp_item, proto_tree *sctp_tree, sctp_half_assoc_t *ha, gboolean encapsulated)
{
tvbuff_t *chunk_tvb;
@@ -4679,6 +4714,7 @@ dissect_sctp_chunks(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_i
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_sctp_packet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean encapsulated)
{
guint32 checksum = 0, calculated_crc32c = 0, calculated_adler32 = 0;
diff --git a/epan/dissectors/packet-simulcrypt.c b/epan/dissectors/packet-simulcrypt.c
index 5fac3a13..10eee43c 100644
--- a/epan/dissectors/packet-simulcrypt.c
+++ b/epan/dissectors/packet-simulcrypt.c
@@ -941,6 +941,7 @@ dissect_emmg_parameter_value (proto_tree *tree, tvbuff_t *tvb, packet_info *pinf
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_eis_parameter_value (proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, guint32 offset,
guint16 plen, guint16 ptype, gchar *pvalue_char)
{
@@ -1082,7 +1083,7 @@ dissect_eis_parameter_value (proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo
}
static void
-dissect_psig_parameter_value (proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, guint32 offset,
+dissect_psig_parameter_value (proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, guint32 offset,
guint16 plen, guint16 ptype, gchar *pvalue_char)
{
proto_tree *simulcrypt_psig_table_period_pair_tree;
@@ -1090,6 +1091,7 @@ dissect_psig_parameter_value (proto_tree *tree, tvbuff_t *tvb, packet_info *pinf
proto_item *simulcrypt_item;
guint32 pvaluedec; /* parameter decimal value */
+ increment_dissection_depth(pinfo);
switch (ptype) {
case SIMULCRYPT_PSIG_PSIG_TYPE:
pvaluedec = tvb_get_guint8(tvb, offset);
@@ -1184,6 +1186,7 @@ dissect_psig_parameter_value (proto_tree *tree, tvbuff_t *tvb, packet_info *pinf
proto_tree_add_string(tree, hf_simulcrypt_parameter_value, tvb, offset, plen, pvalue_char);
break;
} /* end parameter type switch */
+ decrement_dissection_depth(pinfo);
}
/* This method dissects fully reassembled messages */
@@ -1264,6 +1267,7 @@ dissect_simulcrypt_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/* this method is used to dissect TLV parameters */
/* can be used both from the main tree (simulcrypt_message_tree) and the subtrees (created from TLV items) */
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_simulcrypt_data(proto_tree *simulcrypt_tree, proto_item *simulcrypt_item, packet_info *pinfo _U_,
tvbuff_t *tvb, proto_tree *tree, int offset,
int container_data_length, guint16 iftype, gboolean is_subtree)
diff --git a/epan/dissectors/packet-sll.h b/epan/dissectors/packet-sll.h
index c34c7bb8..88b00724 100644
--- a/epan/dissectors/packet-sll.h
+++ b/epan/dissectors/packet-sll.h
@@ -22,6 +22,7 @@
#define LINUX_SLL_P_PPPHDLC 0x0007 /* PPP HDLC frames */
#define LINUX_SLL_P_CAN 0x000C /* Controller Area Network */
#define LINUX_SLL_P_CANFD 0x000D /* Controller Area Network flexible data rate */
+#define LINUX_SLL_P_CANXL 0x000E /* Controller Area Network etended length */
#define LINUX_SLL_P_IRDA_LAP 0x0017 /* IrDA Link Access Protocol */
#define LINUX_SLL_P_ISI 0x00F5 /* Intelligent Service Interface */
#define LINUX_SLL_P_IEEE802154 0x00f6 /* 802.15.4 on monitor inteface */
diff --git a/epan/dissectors/packet-slsk.c b/epan/dissectors/packet-slsk.c
index 2ee9a925..ab648bcb 100644
--- a/epan/dissectors/packet-slsk.c
+++ b/epan/dissectors/packet-slsk.c
@@ -245,7 +245,8 @@ static const char* connection_type(char con_type[]) {
return "Unknown";
}
-static gboolean check_slsk_format(tvbuff_t *tvb, int offset, const char format[]){
+// NOLINTNEXTLINE(misc-no-recursion)
+static gboolean check_slsk_format(tvbuff_t *tvb, packet_info *pinfo, int offset, const char format[]){
/*
* Returns TRUE if tvbuff beginning at offset matches a certain format
@@ -282,11 +283,14 @@ static gboolean check_slsk_format(tvbuff_t *tvb, int offset, const char format[]
return FALSE;
return TRUE;
}
- return check_slsk_format(tvb, offset, &format[1]);
+ increment_dissection_depth(pinfo);
+ gboolean valid = check_slsk_format(tvb, pinfo, offset, &format[1]);
+ decrement_dissection_depth(pinfo);
+ return valid;
}
-static const char* get_message_type(tvbuff_t *tvb) {
+static const char* get_message_type(tvbuff_t *tvb, packet_info *pinfo) {
/*
* Checks if the Message Code is known.
* If unknown checks if the Message Code is stored in a byte.
@@ -295,11 +299,11 @@ static const char* get_message_type(tvbuff_t *tvb) {
int msg_code = tvb_get_letohl(tvb, 4);
const gchar *message_type = try_val_to_str(msg_code, slsk_tcp_msgs);
if (message_type == NULL) {
- if (check_slsk_format(tvb, 4, "bisis"))
+ if (check_slsk_format(tvb, pinfo, 4, "bisis"))
message_type = "Distributed Search";
- else if (check_slsk_format(tvb, 4, "bssi"))
+ else if (check_slsk_format(tvb, pinfo, 4, "bssi"))
message_type = "Peer Init";
- else if (check_slsk_format(tvb, 4, "bi"))
+ else if (check_slsk_format(tvb, pinfo, 4, "bi"))
message_type = "Pierce Fw";
else
message_type = "Unknown";
@@ -342,7 +346,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
col_set_str(pinfo->cinfo, COL_INFO, "SoulSeek Message");
- col_append_fstr(pinfo->cinfo, COL_INFO, ": %s", get_message_type(tvb));
+ col_append_fstr(pinfo->cinfo, COL_INFO, ": %s", get_message_type(tvb, pinfo));
/* create display subtree for the protocol */
ti = proto_tree_add_item(tree, proto_slsk, tvb, 0, -1, ENC_NA);
@@ -357,7 +361,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
switch (msg_code) {
case 1:
- if (check_slsk_format(tvb, offset, "issi")) {
+ if (check_slsk_format(tvb, pinfo, offset, "issi")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Login (Code: %02d)", msg_code);
@@ -369,7 +373,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(slsk_tree, hf_slsk_version, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "ibs") || check_slsk_format(tvb, offset, "ibsi")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "ibs") || check_slsk_format(tvb, pinfo, offset, "ibsi")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Login Reply (Code: %02d)", msg_code);
@@ -387,7 +391,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 2:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Set Wait Port (Code: %02d)", msg_code);
@@ -398,7 +402,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 3:
- if (check_slsk_format(tvb, offset, "isii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Peer Address Reply (Code: %02d)", msg_code);
@@ -410,7 +414,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(slsk_tree, hf_slsk_port, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "is")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Peer Address (Code: %02d)", msg_code);
@@ -421,7 +425,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 4:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Shared File List (Code: %02d)", msg_code);
@@ -430,7 +434,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 5:
- if (check_slsk_format(tvb, offset, "isb")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isb")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"User Exists Reply (Code: %02d)", msg_code);
@@ -440,7 +444,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(slsk_tree, hf_slsk_user_exists, tvb, offset, 1, ENC_NA);
offset += 1;
}
- else if (check_slsk_format(tvb, offset, "is")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"User Exists Request (Code: %02d)", msg_code);
@@ -448,7 +452,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_username, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "i*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "i*")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Shared File List (Code: %02d)", msg_code);
@@ -478,11 +482,11 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
add_new_data_source(pinfo, uncompr_tvb, "Uncompressed SoulSeek data");
uncompr_tvb_offset = 0;
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "i*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "i*")) {
proto_tree_add_item_ret_int(slsk_compr_packet_tree, hf_slsk_num_directories, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN, &j);
uncompr_tvb_offset += 4;
for (i = 0; i < j; i++) {
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "si*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "si*")) {
start_offset = uncompr_tvb_offset;
subtree = proto_tree_add_subtree_format(slsk_compr_packet_tree, uncompr_tvb, uncompr_tvb_offset, 1, ett_slsk_directory, &ti_subtree, "Directory #%d", i+1);
proto_tree_add_item_ret_length(subtree, hf_slsk_directory_name, uncompr_tvb, uncompr_tvb_offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
@@ -490,7 +494,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_int(subtree, hf_slsk_num_files, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN, &j2);
uncompr_tvb_offset += 4;
for (i2 = 0; i2 < j2; i2++) {
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "bsiisi*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "bsiisi*")) {
start_offset2 = uncompr_tvb_offset;
subtree2 = proto_tree_add_subtree_format(subtree, uncompr_tvb, uncompr_tvb_offset, 1, ett_slsk_file, &ti_subtree2, "File #%d", i2+1);
proto_tree_add_item(subtree2, hf_slsk_file_code, uncompr_tvb, uncompr_tvb_offset, 1, ENC_NA);
@@ -506,7 +510,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_int(subtree2, hf_slsk_file_num_attributes, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN, &j3);
uncompr_tvb_offset += 4;
for (i3 = 0; i3 < j3; i3++) {
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "ii*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "ii*")) {
subtree3 = proto_tree_add_subtree_format(subtree2, uncompr_tvb, uncompr_tvb_offset, 8, ett_slsk_file_attribute, NULL, "Attribute #%d", i3+1);
proto_tree_add_item(subtree3, hf_slsk_file_attribute_type, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN);
uncompr_tvb_offset += 4;
@@ -539,7 +543,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 7:
- if (check_slsk_format(tvb, offset, "isi")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isi")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get User Status Reply (Code: %02d)", msg_code);
@@ -549,7 +553,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(slsk_tree, hf_slsk_status_code, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "is")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get User Status (Code: %02d)", msg_code);
@@ -560,7 +564,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 9:
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"File Search Result (Code: %02d)", msg_code);
@@ -592,7 +596,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
add_new_data_source(pinfo, uncompr_tvb, "Uncompressed SoulSeek data");
uncompr_tvb_offset = 0;
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "sii*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "sii*")) {
proto_tree_add_item_ret_length(slsk_compr_packet_tree, hf_slsk_username, uncompr_tvb, uncompr_tvb_offset, 4, ENC_ASCII|ENC_NA, &str_len);
uncompr_tvb_offset += str_len;
proto_tree_add_item(slsk_compr_packet_tree, hf_slsk_token, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN);
@@ -600,7 +604,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_int(slsk_compr_packet_tree, hf_slsk_num_files, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN, &j);
uncompr_tvb_offset += 4;
for (i = 0; i < j; i++) {
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "bsiisi*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "bsiisi*")) {
start_offset2 = uncompr_tvb_offset;
subtree2 = proto_tree_add_subtree_format(slsk_compr_packet_tree, uncompr_tvb, uncompr_tvb_offset, 1, ett_slsk_file, &ti_subtree2, "File #%d", i+1);
proto_tree_add_item(subtree2, hf_slsk_file_code, uncompr_tvb, uncompr_tvb_offset, 1, ENC_NA);
@@ -616,7 +620,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_int(subtree2, hf_slsk_file_num_attributes, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN, &j2);
uncompr_tvb_offset += 4;
for (i2 = 0; i2 < j2; i2++) {
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "ii*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "ii*")) {
subtree3 = proto_tree_add_subtree_format(subtree2, uncompr_tvb, uncompr_tvb_offset, 8, ett_slsk_file_attribute, NULL, "Attribute #%d", i2+1);
proto_tree_add_item(subtree3, hf_slsk_file_attribute_type, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN);
uncompr_tvb_offset += 4;
@@ -650,7 +654,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 13:
- if (check_slsk_format(tvb, offset, "isss")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isss")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Say ChatRoom (Code: %02d)", msg_code);
@@ -662,7 +666,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_chat_message, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "iss")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "iss")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Say ChatRoom (Code: %02d)", msg_code);
@@ -675,7 +679,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 14:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Join/Add Room (Code: %02d)", msg_code);
@@ -683,7 +687,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_room, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "isi*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "isi*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Join Room User List (Code: %02d)", msg_code);
@@ -695,20 +699,20 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "s*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "s*")) {
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_user, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
} else {
break; /* invalid format */
}
}
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
proto_tree_add_item_ret_int(slsk_tree, hf_slsk_users_in_room, tvb, offset, 4, ENC_LITTLE_ENDIAN, &j);
offset += 4;
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
proto_tree_add_item(slsk_tree, hf_slsk_status_code, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
} else {
@@ -716,13 +720,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
}
}
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
proto_tree_add_item_ret_int(slsk_tree, hf_slsk_users_in_room, tvb, offset, 4, ENC_LITTLE_ENDIAN, &j);
offset += 4;
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "iiiii*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iiiii*")) {
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 20, ett_slsk_user, NULL, "User #%d", i+1);
proto_tree_add_item(subtree, hf_slsk_average_speed, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
@@ -739,13 +743,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
}
}
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
proto_tree_add_item_ret_int(slsk_tree, hf_slsk_num_slotsfull_records, tvb, offset, 4, ENC_LITTLE_ENDIAN, &j);
offset += 4;
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 4, ett_slsk_user, NULL, "User #%d", i+1);
proto_tree_add_item(subtree, hf_slsk_slotsfull, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
@@ -758,7 +762,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 15:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server & Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Leave Room (Code: %02d)", msg_code);
@@ -766,7 +770,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_room, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "i")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"User Info Request (Code: %02d)", msg_code);
@@ -775,7 +779,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 16:
- if (check_slsk_format(tvb, offset, "issiiiiiii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "issiiiiiii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"User Joined Room (Code: %02d)", msg_code);
@@ -799,7 +803,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(slsk_tree, hf_slsk_slotsfull, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "isbiib") || check_slsk_format(tvb, offset, "isbsiib")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "isbiib") || check_slsk_format(tvb, pinfo, offset, "isbsiib")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"User Info Reply (Code: %02d)", msg_code);
@@ -822,7 +826,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 17:
- if (check_slsk_format(tvb, offset, "iss")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iss")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"User Left Room (Code: %02d)", msg_code);
@@ -835,7 +839,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 18:
- if (check_slsk_format(tvb, offset, "iiss")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iiss")) {
/* Client-to-Server */
guint32 len;
@@ -853,7 +857,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
format_text(pinfo->pool, str, len));
offset += 4+len;
}
- else if (check_slsk_format(tvb, offset, "issiii")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "issiii")) {
/* Server-to-Client */
guint32 len;
@@ -878,7 +882,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 22:
- if (check_slsk_format(tvb, offset, "iss")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iss")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Message User Send (Code: %02d)", msg_code);
@@ -888,7 +892,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_chat_message, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "iiiss")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "iiiss")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Message User Receive (Code: %02d)", msg_code);
@@ -905,7 +909,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 23:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Message User Receive Ack (Code: %02d)", msg_code);
@@ -916,7 +920,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 26:
- if (check_slsk_format(tvb, offset, "iis")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iis")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"File Search (Code: %02d)", msg_code);
@@ -929,7 +933,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 28:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Set Status (Code: %02d)", msg_code);
@@ -940,7 +944,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 32:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Ping (Code: %02d)", msg_code);
@@ -949,7 +953,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 34:
- if (check_slsk_format(tvb, offset, "isi")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isi")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Update Upload Speed (Code: %02d)", msg_code);
@@ -962,7 +966,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 35:
- if (check_slsk_format(tvb, offset, "iii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iii")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Shared Files & Folders (Code: %02d)", msg_code);
@@ -975,7 +979,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 36:
- if (check_slsk_format(tvb, offset, "isiiiii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isiiiii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get User Stats Reply (Code: %02d)", msg_code);
@@ -993,7 +997,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(slsk_tree, hf_slsk_directories, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "is")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Client */
/* Client-to-Server: send after login successful */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
@@ -1002,7 +1006,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_username, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "iis")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "iis")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Folder Contents Request (Code: %02d)", msg_code);
@@ -1015,7 +1019,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 37:
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Folder Contents Response (Code: %02d)", msg_code);
@@ -1045,7 +1049,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
add_new_data_source(pinfo, uncompr_tvb, "Uncompressed SoulSeek data");
uncompr_tvb_offset = 0;
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "isi*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "isi*")) {
guint32 len;
proto_tree_add_item(slsk_compr_packet_tree, hf_slsk_token, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN);
@@ -1056,7 +1060,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_int(slsk_compr_packet_tree, hf_slsk_num_directories, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN, &j);
uncompr_tvb_offset += 4;
for (i = 0; i < j; i++) {
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "si*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "si*")) {
start_offset = uncompr_tvb_offset;
subtree = proto_tree_add_subtree_format(slsk_compr_packet_tree, uncompr_tvb, uncompr_tvb_offset, 1, ett_slsk_directory, &ti_subtree, "Directory #%d", i+1);
proto_tree_add_item_ret_length(subtree, hf_slsk_directory_name, uncompr_tvb, uncompr_tvb_offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
@@ -1064,7 +1068,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_int(subtree, hf_slsk_num_files, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN, &j2);
uncompr_tvb_offset += 4;
for (i2 = 0; i2 < j2; i2++) {
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "bsiisi*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "bsiisi*")) {
start_offset2 = uncompr_tvb_offset;
subtree2 = proto_tree_add_subtree_format(subtree, uncompr_tvb, uncompr_tvb_offset, 1, ett_slsk_file, &ti_subtree2, "File #%d", i2+1);
proto_tree_add_item(subtree2, hf_slsk_file_code, uncompr_tvb, uncompr_tvb_offset, 1, ENC_NA);
@@ -1080,7 +1084,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_int(subtree2, hf_slsk_file_num_attributes, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN, &j3);
uncompr_tvb_offset += 4;
for (i3 = 0; i3 < j3; i3++) {
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "ii*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "ii*")) {
subtree3 = proto_tree_add_subtree_format(subtree2, uncompr_tvb, uncompr_tvb_offset, 8, ett_slsk_file_attribute, NULL, "Attribute #%d", i3+1);
proto_tree_add_item(subtree3, hf_slsk_file_attribute_type, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN);
uncompr_tvb_offset += 4;
@@ -1113,7 +1117,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 40:
- if (check_slsk_format(tvb, offset, "isi")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isi")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Queued Downloads (Code: %02d)", msg_code);
@@ -1123,7 +1127,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(slsk_tree, hf_slsk_slotsfull, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "iiis") || check_slsk_format(tvb, offset, "iiisii")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "iiis") || check_slsk_format(tvb, pinfo, offset, "iiisii")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Transfer Request (Code: %02d)", msg_code);
@@ -1145,7 +1149,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 41:
- if (check_slsk_format(tvb, offset, "iibs") || check_slsk_format(tvb, offset, "iibii") || check_slsk_format(tvb, offset, "iib")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iibs") || check_slsk_format(tvb, pinfo, offset, "iibii") || check_slsk_format(tvb, pinfo, offset, "iib")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Transfer Response (Code: %02d)", msg_code);
@@ -1170,7 +1174,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 42:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Placehold Upload (Code: %02d)", msg_code);
@@ -1181,7 +1185,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 43:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Queue Upload (Code: %02d)", msg_code);
@@ -1192,7 +1196,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 44:
- if (check_slsk_format(tvb, offset, "isi")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isi")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Place In Queue (Code: %02d)", msg_code);
@@ -1205,7 +1209,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 46:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Upload Failed (Code: %02d)", msg_code);
@@ -1216,7 +1220,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 50:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Make Own Recommendation (Code: %02d)", msg_code);
@@ -1224,7 +1228,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_recommendation, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "isi")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "isi")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Remove Own Recommendation (Code: %02d)", msg_code);
@@ -1234,7 +1238,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(slsk_tree, hf_slsk_ranking, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "iss")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "iss")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Queue Failed (Code: %02d)", msg_code);
@@ -1247,7 +1251,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 51:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server: "Add Things I like" */
/* Client-to-Client: "Place In Queue Request" */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
@@ -1259,7 +1263,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 52:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Remove Things I like (Code: %02d)", msg_code);
@@ -1270,13 +1274,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 54:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Recommendations (Code: %02d)", msg_code);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "ii*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "ii*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Recommendations Reply (Code: %02d)", msg_code);
@@ -1286,7 +1290,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "si*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "si*")) {
start_offset = offset;
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 1, ett_slsk_recommendation, &ti_subtree, "Recommendation #%d", i+1);
proto_tree_add_item_ret_length(subtree, hf_slsk_recommendation, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
@@ -1302,7 +1306,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 55:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Type 55 (Code: %02d)", msg_code);
@@ -1311,13 +1315,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 56:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Global Rankings (Code: %02d)", msg_code);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "ii*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "ii*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Global Rankings Reply (Code: %02d)", msg_code);
@@ -1327,7 +1331,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "si*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "si*")) {
start_offset = offset;
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 1, ett_slsk_recommendation, &ti_subtree, "Recommendation #%d", i+1);
proto_tree_add_item_ret_length(subtree, hf_slsk_recommendation, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
@@ -1343,7 +1347,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 57:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get User Recommendations (Code: %02d)", msg_code);
@@ -1351,7 +1355,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_username, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "isi*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "isi*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get User Recommendations Reply (Code: %02d)", msg_code);
@@ -1363,7 +1367,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "s*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "s*")) {
start_offset = offset;
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 1, ett_slsk_recommendation, &ti_subtree, "Recommendation #%d", i+1);
proto_tree_add_item_ret_length(subtree, hf_slsk_recommendation, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
@@ -1377,7 +1381,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 58:
- if (check_slsk_format(tvb, offset, "isi*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isi*")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Admin Command (Code: %02d)", msg_code);
@@ -1389,7 +1393,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "s*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "s*")) {
start_offset = offset;
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 1, ett_slsk_string, &ti_subtree, "String #%d", i+1);
proto_tree_add_item_ret_length(subtree, hf_slsk_string, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
@@ -1403,7 +1407,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 60:
- if (check_slsk_format(tvb, offset, "isii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isii")) {
/* Client-to-Server & Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Place In Line Response (Code: %02d)", msg_code);
@@ -1418,7 +1422,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 62:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Room Added (Code: %02d)", msg_code);
@@ -1429,7 +1433,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 63:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Room Removed (Code: %02d)", msg_code);
@@ -1440,13 +1444,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 64:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Room List Request (Code: %02d)", msg_code);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "ii*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "ii*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Room List (Code: %02d)", msg_code);
@@ -1456,7 +1460,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "s*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "s*")) {
start_offset = offset;
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 1, ett_slsk_room, &ti_subtree, "Room #%d", i+1);
proto_tree_add_item_ret_length(subtree, hf_slsk_room, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
@@ -1466,11 +1470,11 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break; /* invalid format */
}
}
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
proto_tree_add_item_ret_int(slsk_tree, hf_slsk_users_in_room, tvb, offset, 4, ENC_LITTLE_ENDIAN, &j);
offset += 4;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 4, ett_slsk_room, &ti_subtree, "Room #%d", i+1);
proto_tree_add_item(subtree, hf_slsk_users_in_room, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
@@ -1483,7 +1487,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 65:
- if (check_slsk_format(tvb, offset, "isissiii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isissiii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Exact File Search (Code: %02d)", msg_code);
@@ -1499,7 +1503,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(slsk_tree, hf_slsk_bytes, tvb, offset, 16, ENC_NA);
offset += 12;
}
- else if (check_slsk_format(tvb, offset, "iissiiib")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "iissiiib")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Exact File Search (Code: %02d)", msg_code);
@@ -1516,7 +1520,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 66:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Admin Message (Code: %02d)", msg_code);
@@ -1527,13 +1531,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 67:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Global User List Request (Code: %02d)", msg_code);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "isi*")) { /* same as case 14 */
+ else if (check_slsk_format(tvb, pinfo, offset, "isi*")) { /* same as case 14 */
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Global User List (Code: %02d)", msg_code);
@@ -1545,18 +1549,18 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "s*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "s*")) {
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_user, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
} else {
break; /* invalid format */
}
}
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
proto_tree_add_item_ret_int(slsk_tree, hf_slsk_users_in_room, tvb, offset, 4, ENC_LITTLE_ENDIAN, &j);
offset += 4;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
proto_tree_add_item(slsk_tree, hf_slsk_status_code, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
} else {
@@ -1564,13 +1568,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
}
}
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
proto_tree_add_item_ret_int(slsk_tree, hf_slsk_users_in_room, tvb, offset, 4, ENC_LITTLE_ENDIAN, &j);
offset += 4;
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "iiiii*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iiiii*")) {
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 20, ett_slsk_user, NULL, "User #%d", i+1);
proto_tree_add_item(subtree, hf_slsk_average_speed, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
@@ -1587,13 +1591,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
}
}
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
proto_tree_add_item_ret_int(slsk_tree, hf_slsk_num_slotsfull_records, tvb, offset, 4, ENC_LITTLE_ENDIAN, &j);
offset += 4;
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 4, ett_slsk_user, NULL, "User #%d", i+1);
proto_tree_add_item(subtree, hf_slsk_slotsfull, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
@@ -1606,7 +1610,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 68:
- if (check_slsk_format(tvb, offset, "isiiiis")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isiiiis")) {
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Tunneled Message (Code: %02d)", msg_code);
offset += 4;
@@ -1626,13 +1630,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 69:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Privileged User List Request (Code: %02d)", msg_code);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "ii*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "ii*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Privileged User List (Code: %02d)", msg_code);
@@ -1642,7 +1646,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "s*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "s*")) {
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_user, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
} else {
@@ -1653,7 +1657,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 71:
- if (check_slsk_format(tvb, offset, "ib")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ib")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Parent List (Code: %02d)", msg_code);
@@ -1664,7 +1668,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 73:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Type 73 (Code: %02d)", msg_code);
@@ -1675,7 +1679,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 83:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Parent Min Speed (Code: %02d)", msg_code);
@@ -1686,7 +1690,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 84:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Parent Speed Connection Ratio (Code: %02d)", msg_code);
@@ -1697,7 +1701,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 86:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Parent Inactivity Before Disconnect (Code: %02d)", msg_code);
@@ -1708,7 +1712,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 87:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Server Inactivity Before Disconnect (Code: %02d)", msg_code);
@@ -1719,7 +1723,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 88:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Nodes In Cache Before Disconnect (Code: %02d)", msg_code);
@@ -1730,7 +1734,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 90:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Seconds Before Ping Children (Code: %02d)", msg_code);
@@ -1741,7 +1745,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 91:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Add To Privileged (Code: %02d)", msg_code);
@@ -1752,13 +1756,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 92:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Check Privileges (Code: %02d)", msg_code);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "ii")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Check Privileges Reply (Code: %02d)", msg_code);
@@ -1769,7 +1773,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 93:
- if (check_slsk_format(tvb, offset, "ibisis")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ibisis")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Embedded Message (Code: %02d)", msg_code);
@@ -1792,7 +1796,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 100:
- if (check_slsk_format(tvb, offset, "ib")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ib")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Become Parent (Code: %02d)", msg_code);
@@ -1803,7 +1807,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 102:
- if (check_slsk_format(tvb, offset, "ii*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Random Parent Addresses (Code: %02d)", msg_code);
@@ -1813,7 +1817,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "sii*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "sii*")) {
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_user, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
@@ -1829,7 +1833,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 103:
- if (check_slsk_format(tvb, offset, "iis")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iis")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Send Wishlist Entry (Code: %02d)", msg_code);
@@ -1842,7 +1846,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 104:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Type 104 (Code: %02d)", msg_code);
@@ -1853,13 +1857,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 110:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Similar Users (Code: %02d)", msg_code);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "ii*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "ii*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Similar Users Reply (Code: %02d)", msg_code);
@@ -1869,7 +1873,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "si*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "si*")) {
start_offset = offset;
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 4, ett_slsk_user, &ti_subtree, "User #%d", i+1);
proto_tree_add_item_ret_length(subtree, hf_slsk_user, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
@@ -1885,7 +1889,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 111:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Recommendations for Item (Code: %02d)", msg_code);
@@ -1893,7 +1897,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_recommendation, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "isi*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "isi*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Recommendations for Item Reply (Code: %02d)", msg_code);
@@ -1905,7 +1909,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "si*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "si*")) {
start_offset = offset;
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 1, ett_slsk_recommendation, &ti_subtree, "Recommendation #%d", i+1);
proto_tree_add_item_ret_length(subtree, hf_slsk_recommendation, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
@@ -1921,7 +1925,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 112:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Similar Users for Item (Code: %02d)", msg_code);
@@ -1929,7 +1933,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_recommendation, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "isi*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "isi*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Similar Users for Item Reply (Code: %02d)", msg_code);
@@ -1941,7 +1945,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "s*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "s*")) {
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_username, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
} else {
@@ -1952,7 +1956,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 1001:
- if (check_slsk_format(tvb, offset, "iis")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iis")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Can't Connect To Peer (Code: %02d)", msg_code);
@@ -1962,7 +1966,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_username, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "ii")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Can't Connect To Peer (Code: %02d)", msg_code);
@@ -1973,7 +1977,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
default:
- if (check_slsk_format(tvb, offset, "bisis")) {
+ if (check_slsk_format(tvb, pinfo, offset, "bisis")) {
if ( tvb_get_guint8(tvb, offset) == 3 ){
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 1, msg_code,
@@ -1989,7 +1993,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += str_len;
}
}
- else if (check_slsk_format(tvb, offset, "bssi")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "bssi")) {
if ( tvb_get_guint8(tvb, offset) == 1 ){
/* Client-to-Client */
guint32 len;
@@ -2009,7 +2013,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 4;
}
}
- else if (check_slsk_format(tvb, offset, "bi")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "bi")) {
if ( tvb_get_guint8(tvb, offset) == 0 ){
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 1, msg_code,
diff --git a/epan/dissectors/packet-smb2.c b/epan/dissectors/packet-smb2.c
index 6dbf0e41..55acb2a8 100644
--- a/epan/dissectors/packet-smb2.c
+++ b/epan/dissectors/packet-smb2.c
@@ -3843,6 +3843,7 @@ dissect_smb2_STATUS_STOPPED_ON_SYMLINK(tvbuff_t *tvb, packet_info *pinfo _U_, pr
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_smb2_error_context(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *parent_tree, int offset, smb2_info_t *si _U_)
{
proto_tree *tree;
@@ -3871,6 +3872,7 @@ dissect_smb2_error_context(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *pa
* Assumes it is being called with a sub-tvb (dissects at offsets 0)
*/
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_smb2_error_data(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *parent_tree,
int error_context_count, int error_id,
smb2_info_t *si _U_)
@@ -3901,8 +3903,11 @@ dissect_smb2_error_data(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *paren
break;
}
} else {
- for (i = 0; i < error_context_count; i++)
+ increment_dissection_depth(pinfo);
+ for (i = 0; i < error_context_count; i++) {
offset += dissect_smb2_error_context(tvb, pinfo, tree, offset, si);
+ }
+ decrement_dissection_depth(pinfo);
}
}
@@ -7212,6 +7217,7 @@ dissect_windows_sockaddr_storage(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
#define NETWORK_INTERFACE_CAP_RDMA 0x00000002
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_smb2_NETWORK_INTERFACE_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
{
guint32 next_offset;
@@ -7293,7 +7299,9 @@ dissect_smb2_NETWORK_INTERFACE_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tre
next_tvb = tvb_new_subset_remaining(tvb, next_offset);
/* next extra info */
+ increment_dissection_depth(pinfo);
dissect_smb2_NETWORK_INTERFACE_INFO(next_tvb, pinfo, parent_tree);
+ decrement_dissection_depth(pinfo);
}
}
@@ -9102,6 +9110,7 @@ get_create_context_data_tag_dissectors(const char *tag)
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_smb2_create_extra_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, smb2_info_t *si)
{
offset_length_buffer_t tag_olb;
@@ -9177,7 +9186,9 @@ dissect_smb2_create_extra_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *pa
chain_tvb = tvb_new_subset_remaining(tvb, chain_offset);
/* next extra info */
+ increment_dissection_depth(pinfo);
dissect_smb2_create_extra_info(chain_tvb, pinfo, parent_tree, si);
+ decrement_dissection_depth(pinfo);
}
}
@@ -10958,6 +10969,7 @@ dissect_smb2_signature(packet_info *pinfo, tvbuff_t *tvb, int offset, proto_tree
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_smb2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, gboolean first_in_chain)
{
int msg_type;
@@ -11001,6 +11013,8 @@ dissect_smb2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, gboolea
break;
}
+ increment_dissection_depth(pinfo);
+
/* find which conversation we are part of and get the data for that
* conversation
*/
@@ -11315,6 +11329,7 @@ dissect_smb2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, gboolea
offset = dissect_smb2(next_tvb, pinfo, parent_tree, FALSE);
}
+ decrement_dissection_depth(pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-sml.c b/epan/dissectors/packet-sml.c
index 8051f340..d1830ee4 100644
--- a/epan/dissectors/packet-sml.c
+++ b/epan/dissectors/packet-sml.c
@@ -1224,6 +1224,7 @@ static void TupleEntryTree(tvbuff_t *tvb, packet_info *pinfo, proto_tree *procPa
proto_item_set_end(TupleEntry, tvb, *offset);
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void child_tree(tvbuff_t *tvb, packet_info *pinfo, proto_tree *insert_tree, guint *offset, guint *data, guint *length){
proto_item *parameterName;
proto_item *procParValue;
@@ -1388,7 +1389,9 @@ static void child_tree(tvbuff_t *tvb, packet_info *pinfo, proto_tree *insert_tre
tree_Entry_list = proto_tree_add_subtree(child_list, tvb, *offset, -1, ett_sml_tree_Entry, &tree_Entry, "tree_Entry");
*offset+=1;
+ increment_dissection_depth(pinfo);
child_tree(tvb, pinfo,tree_Entry_list, offset, data, length);
+ decrement_dissection_depth(pinfo);
proto_item_set_end(tree_Entry, tvb, *offset);
proto_item_set_end(child, tvb, *offset);
@@ -1412,7 +1415,9 @@ static void child_tree(tvbuff_t *tvb, packet_info *pinfo, proto_tree *insert_tre
}
*offset+=1;
+ increment_dissection_depth(pinfo);
child_tree(tvb, pinfo, tree_Entry_list, offset, data, length);
+ decrement_dissection_depth(pinfo);
proto_item_set_end(tree_Entry, tvb, *offset);
}
proto_item_set_end(child, tvb, *offset);
diff --git a/epan/dissectors/packet-sna.c b/epan/dissectors/packet-sna.c
index cdf6bfdb..c8a9dab8 100644
--- a/epan/dissectors/packet-sna.c
+++ b/epan/dissectors/packet-sna.c
@@ -2220,6 +2220,7 @@ dissect_rh(tvbuff_t *tvb, int offset, proto_tree *tree)
*/
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_control_05hpr(tvbuff_t *tvb, proto_tree *tree, int hpr,
enum parse parse)
{
@@ -2246,6 +2247,7 @@ dissect_control_05hpr(tvbuff_t *tvb, proto_tree *tree, int hpr,
len = tvb_get_guint8(tvb, offset+1);
}
if (len) {
+ // We recurse here, but we'll run out of packet before we run out of stack.
dissect_sna_control(tvb, offset, len, tree, hpr, parse);
pad = (len+3) & 0xfffc;
if (pad > len) {
@@ -2285,6 +2287,7 @@ dissect_control_0e(tvbuff_t *tvb, proto_tree *tree)
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_sna_control(tvbuff_t *parent_tvb, int offset, int control_len,
proto_tree *tree, int hpr, enum parse parse)
{
@@ -2351,6 +2354,7 @@ dissect_sna_control(tvbuff_t *parent_tvb, int offset, int control_len,
switch(key) {
case 0x05:
if (hpr)
+ // We recurse here, but we'll run out of packet before we run out of stack.
dissect_control_05hpr(tvb, sub_tree, hpr,
parse);
else
@@ -3447,8 +3451,7 @@ proto_register_sna(void)
};
module_t *sna_module;
- proto_sna = proto_register_protocol("Systems Network Architecture",
- "SNA", "sna");
+ proto_sna = proto_register_protocol("Systems Network Architecture", "SNA", "sna");
proto_register_field_array(proto_sna, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
sna_handle = register_dissector("sna", dissect_sna, proto_sna);
diff --git a/epan/dissectors/packet-snmp.c b/epan/dissectors/packet-snmp.c
index eac17af6..fcfc78dd 100644
--- a/epan/dissectors/packet-snmp.c
+++ b/epan/dissectors/packet-snmp.c
@@ -498,12 +498,9 @@ snmp_match_request_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
{
proto_item *it;
- // if it is a request
- if (srrp->request_frame_id == pinfo->fd->num)
+ // if it is the response
+ if (srrp->response_frame_id == pinfo->fd->num)
{
- it=proto_tree_add_uint(tree, hf_snmp_response_in, tvb, 0, 0, srrp->response_frame_id);
- proto_item_set_generated(it);
- } else {
nstime_t ns;
it=proto_tree_add_uint(tree, hf_snmp_response_to, tvb, 0, 0, srrp->request_frame_id);
proto_item_set_generated(it);
@@ -512,6 +509,9 @@ snmp_match_request_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_item_set_generated(it);
return srrp;
+ } else {
+ it=proto_tree_add_uint(tree, hf_snmp_response_in, tvb, 0, 0, srrp->response_frame_id);
+ proto_item_set_generated(it);
}
}
diff --git a/epan/dissectors/packet-snort-config.c b/epan/dissectors/packet-snort-config.c
index 9bd345b2..bea33e24 100644
--- a/epan/dissectors/packet-snort-config.c
+++ b/epan/dissectors/packet-snort-config.c
@@ -503,6 +503,7 @@ static gboolean delete_string_entry(gpointer key,
}
/* See if this is an include line, if it is open the file and call parse_config_file() */
+// NOLINTNEXTLINE(misc-no-recursion)
static gboolean parse_include_file(SnortConfig_t *snort_config, char *line, const char *config_directory, int recursion_level)
{
int length;
@@ -841,6 +842,7 @@ static gboolean delete_rule(gpointer key _U_,
/* Parse this file, adding details to snort_config. */
/* N.B. using recursion_level to limit stack depth. */
#define MAX_CONFIG_FILE_RECURSE_DEPTH 8
+// NOLINTNEXTLINE(misc-no-recursion)
static void parse_config_file(SnortConfig_t *snort_config, FILE *config_file_fd,
const char *filename, const char *dirname, int recursion_level)
{
diff --git a/epan/dissectors/packet-socketcan.c b/epan/dissectors/packet-socketcan.c
index 90cf2bf7..fc450d67 100644
--- a/epan/dissectors/packet-socketcan.c
+++ b/epan/dissectors/packet-socketcan.c
@@ -74,6 +74,13 @@ static int hf_can_err_trx_canl = -1;
static int hf_can_err_ctrl_specific = -1;
+static int hf_canxl_priority = -1;
+static int hf_canxl_vcid = -1;
+static int hf_canxl_secflag = -1;
+static int hf_canxl_sdu_type = -1;
+static int hf_canxl_len = -1;
+static int hf_canxl_acceptance_field = -1;
+
static expert_field ei_can_err_dlc_mismatch = EI_INIT;
static int hf_canfd_brsflag = -1;
@@ -81,9 +88,11 @@ static int hf_canfd_esiflag = -1;
static gint ett_can = -1;
static gint ett_can_fd = -1;
+static gint ett_can_xl = -1;
static int proto_can = -1;
static int proto_canfd = -1;
+static int proto_canxl = -1;
static gboolean byte_swap = FALSE;
static gboolean heuristic_first = FALSE;
@@ -103,11 +112,16 @@ static heur_dtbl_entry_t *heur_dtbl_entry;
#define CANFD_BRS 0x01 /* bit rate switch (second bitrate for payload data) */
#define CANFD_ESI 0x02 /* error state indicator of the transmitting node */
+#define CANXL_LEN_OFFSET 6
+#define CANXL_DATA_OFFSET 12
+
static dissector_table_t can_id_dissector_table = NULL;
static dissector_table_t can_extended_id_dissector_table = NULL;
static dissector_table_t subdissector_table = NULL;
+static dissector_table_t canxl_sdu_type_dissector_table = NULL;
static dissector_handle_t socketcan_classic_handle;
static dissector_handle_t socketcan_fd_handle;
+static dissector_handle_t socketcan_xl_handle;
static dissector_handle_t socketcan_bigendian_handle;
@@ -154,6 +168,19 @@ static const value_string can_err_trx_canl_vals[] = {
{ 0, NULL }
};
+static const value_string canxl_sdu_type_vals[] = {
+ { 0x00, "Reserved" },
+ { CANXL_SDU_TYPE_CONTENT_BASED_ADDRESSING, "Content-based Addressing" },
+ { 0x02, "Reserved for future use" },
+ { CANXL_SDU_TYPE_CLASSICAL_CAN_AND_CAN_FD_MAPPED_TUNNELING, "Classical CAN/CAN FD mapped tunneling" },
+ { CANXL_SDU_TYPE_IEEE_802_3_MAC_FRAME_TUNNELLING, "IEEE 802.3 (MAC frame) tunneling" },
+ { CANXL_SDU_TYPE_IEEE_802_3_MAC_FRAME_MAPPED_TUNNELING, "IEEE 802.3 (MAC frame) mapped tunneling" },
+ { CANXL_SDU_TYPE_CLASSICAL_CAN_MAPPED_TUNNELING, "Classical CAN mapped tunneling" },
+ { CANXL_SDU_TYPE_CAN_FD_MAPPED_TUNNELING, "CAN FD mapped tunneling" },
+ { 0xFF, "Reserved" },
+ { 0, NULL }
+};
+
/********* UATs *********/
/* Interface Config UAT */
@@ -486,45 +513,50 @@ socketcan_call_subdissectors(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
* 2) a given SocketCAN frame is known to contain a CAN FD
* packet based on information outside the SocketCAN header;
*
- * 3) we don't know whether the given SocketCAN frame is a
- * classic CAN packet or a CAN FD packet, and will have
- * to check the CANFD_FDF bit in the "FD flags" field of
- * the SocketCAN header to determine that.
+ * 3) a given SocketCAN frame is known to contain a CAN XL
+ * packet based on information outside the SocketCAN header;
+ *
+ * 4) we don't know whether the given SocketCAN frame is a
+ * classic CAN packet, a CAN FD packet, or a CAN XL packet,
+ * and will have to check the CANXL_XLF bit in the "Frame Length"
+ * field and the CANFD_FDF bit in the "FD flags" field of the
+ * SocketCAN header to determine that.
*/
typedef enum {
PACKET_TYPE_CAN,
PACKET_TYPE_CAN_FD,
+ PACKET_TYPE_CAN_XL,
PACKET_TYPE_UNKNOWN
} can_packet_type_t;
static int
-dissect_socketcan_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint encoding, can_packet_type_t can_packet_type) {
+dissect_socketcan_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint encoding, guint xl_encoding, can_packet_type_t can_packet_type) {
proto_tree *can_tree;
proto_item *ti;
guint8 frame_type;
can_info_t can_info;
- int * const *can_flags;
+ int * const *can_flags_id;
- static int * const can_std_flags[] = {
+ static int * const can_std_flags_id[] = {
&hf_can_infoent_std,
&hf_can_extflag,
&hf_can_rtrflag,
&hf_can_errflag,
NULL,
};
- static int * const can_ext_flags[] = {
+ static int * const can_ext_flags_id[] = {
&hf_can_infoent_ext,
&hf_can_extflag,
&hf_can_rtrflag,
&hf_can_errflag,
NULL,
};
- static int * const can_std_flags_fd[] = {
+ static int * const canfd_std_flags_id[] = {
&hf_can_infoent_std,
&hf_can_extflag,
NULL,
};
- static int * const can_ext_flags_fd[] = {
+ static int * const canfd_ext_flags_id[] = {
&hf_can_infoent_ext,
&hf_can_extflag,
NULL,
@@ -548,9 +580,15 @@ dissect_socketcan_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
&hf_can_err_reserved,
NULL,
};
-
- can_info.id = tvb_get_guint32(tvb, 0, encoding);
- can_info.len = tvb_get_guint8(tvb, CAN_LEN_OFFSET);
+ static int * const canxl_prio_vcid_fields[] = {
+ &hf_canxl_priority,
+ &hf_canxl_vcid,
+ NULL,
+ };
+ static int * const canxl_flag_fields[] = {
+ &hf_canxl_secflag,
+ NULL,
+ };
/*
* If we weren't told the type of this frame, check
@@ -573,141 +611,236 @@ dissect_socketcan_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
* the code is older code that didn't support CAN FD.
*/
if (can_packet_type == PACKET_TYPE_UNKNOWN) {
+ guint8 frame_length;
guint8 fd_flags;
- fd_flags = tvb_get_guint8(tvb, CANFD_FLAG_OFFSET);
-
- if ((fd_flags & CANFD_FDF) && ((fd_flags & ~(CANFD_BRS | CANFD_ESI | CANFD_FDF)) == 0) &&
- tvb_get_guint8(tvb, CANFD_FLAG_OFFSET + 1) == 0 &&
- tvb_get_guint8(tvb, CANFD_FLAG_OFFSET + 2) == 0) {
- can_packet_type = PACKET_TYPE_CAN_FD;
+ /*
+ * Check whether the frame has the CANXL_XLF flag set in what
+ * is in the location of the frame length field of a CAN classic
+ * or CAN FD frame; if so, then it's a CAN XL frame (and that
+ * field is the flags field of that frame).
+ */
+ frame_length = tvb_get_guint8(tvb, CAN_LEN_OFFSET);
+ if (frame_length & CANXL_XLF) {
+ can_packet_type = PACKET_TYPE_CAN_XL;
} else {
- can_packet_type = PACKET_TYPE_CAN;
+ /*
+ * This is a CAN classic or CAN FD frame.
+ * Check whether the flags field has the CANFD_FDF
+ * flag set, has no unknown flag bits set, and has
+ * no bits set in the two reserved fields. If so,
+ * it's a CAN FD frame; otherwise, it's either a
+ * CAN classic frame, or a frame where the CANFD_FDF
+ * flag is set but where that might just be because
+ * that field contains uninitialized junk rather
+ * than because it's a CAN FD frame, so we treat it
+ * as a CAN classic frame.
+ */
+ fd_flags = tvb_get_guint8(tvb, CANFD_FLAG_OFFSET);
+
+ if ((fd_flags & CANFD_FDF) &&
+ ((fd_flags & ~(CANFD_BRS | CANFD_ESI | CANFD_FDF)) == 0) &&
+ tvb_get_guint8(tvb, CANFD_FLAG_OFFSET + 1) == 0 &&
+ tvb_get_guint8(tvb, CANFD_FLAG_OFFSET + 2) == 0) {
+ can_packet_type = PACKET_TYPE_CAN_FD;
+ } else {
+ if (tvb_reported_length(tvb) == 72)
+ can_packet_type = PACKET_TYPE_CAN_FD;
+ else
+ can_packet_type = PACKET_TYPE_CAN;
+ }
}
}
- can_info.fd = (can_packet_type == PACKET_TYPE_CAN_FD);
can_info.bus_id = get_bus_id(pinfo);
- /* Error Message Frames are only encapsulated in Classic CAN frames */
- if (can_packet_type == PACKET_TYPE_CAN && (can_info.id & CAN_ERR_FLAG)) {
- frame_type = LINUX_CAN_ERR;
- can_flags = can_err_flags;
- } else if (can_info.id & CAN_EFF_FLAG) {
- frame_type = LINUX_CAN_EXT;
- can_info.id &= (CAN_EFF_MASK | CAN_FLAG_MASK);
- can_flags = (can_packet_type == PACKET_TYPE_CAN_FD) ? can_ext_flags_fd : can_ext_flags;
- } else {
- frame_type = LINUX_CAN_STD;
- can_info.id &= (CAN_SFF_MASK | CAN_FLAG_MASK);
- can_flags = (can_packet_type == PACKET_TYPE_CAN_FD) ? can_std_flags_fd : can_std_flags;
- }
+ if (can_packet_type == PACKET_TYPE_CAN_XL) {
+ can_info.fd = CAN_TYPE_CAN_XL;
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "CANXL");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ can_info.id = 0; /* XXX - is there an "ID" for XL frames? */
+
+ ti = proto_tree_add_item(tree, proto_can, tvb, 0, -1, ENC_NA);
+ proto_item_set_hidden(ti);
+ ti = proto_tree_add_item(tree, proto_canxl, tvb, 0, -1, ENC_NA);
+ can_tree = proto_item_add_subtree(ti, ett_can_xl);
+
+ guint32 proto_vcid;
+
+ /*
+ * The priority/VCID field is big-endian in LINKTYPE_CAN_SOCKETCAN
+ * captures, for historical reasons. It's host-endian in
+ * Linux cooked captures. This means we use the non-XL encoding.
+ */
+ proto_tree_add_bitmask_list(can_tree, tvb, 0, 4, canxl_prio_vcid_fields, encoding);
+ proto_vcid = tvb_get_guint32(tvb, 0, encoding);
+ col_add_fstr(pinfo->cinfo, COL_INFO, "Priority: %u (0x%03x), VCID: %u (0x%02X)", proto_vcid & 0x7FF, proto_vcid & 0x7FF, (proto_vcid >> 16) & 0xFF, (proto_vcid >> 16) & 0xFF);
+ proto_item_append_text(can_tree, ", Priority: %u (0x%03x), VCID: %u (0x%02X)", proto_vcid & 0x7FF, proto_vcid & 0x7FF, (proto_vcid >> 16) & 0xFF, (proto_vcid >> 16) & 0xFF);
+ proto_tree_add_bitmask_list(can_tree, tvb, 4, 1, canxl_flag_fields, xl_encoding);
+
+ socketcan_set_source_and_destination_columns(pinfo, &can_info);
+
+ guint32 sdu_type;
+
+ /*
+ * These fields are, if multi-byte, little-endian in
+ * LINKTYPE_CAN_SOCKETCAN captures, so use xl_encoding.
+ */
+ proto_tree_add_item_ret_uint(can_tree, hf_canxl_sdu_type, tvb, 5, 1, ENC_NA, &sdu_type);
+ proto_tree_add_item_ret_uint(can_tree, hf_canxl_len, tvb, CANXL_LEN_OFFSET, 2, xl_encoding, &can_info.len);
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", Length: %u", can_info.len);
+ proto_item_append_text(can_tree, ", Length: %u", can_info.len);
+ proto_tree_add_item(can_tree, hf_canxl_acceptance_field, tvb, CANXL_LEN_OFFSET+2, 4, xl_encoding);
- col_set_str(pinfo->cinfo, COL_PROTOCOL, (can_packet_type == PACKET_TYPE_CAN_FD) ? "CANFD" : "CAN");
- col_clear(pinfo->cinfo, COL_INFO);
+ tvbuff_t *next_tvb;
- guint32 effective_can_id = (can_info.id & CAN_EFF_FLAG) ? can_info.id & CAN_EFF_MASK : can_info.id & CAN_SFF_MASK;
- char *id_name = (can_info.id & CAN_EFF_FLAG) ? "Ext. ID" : "ID";
- col_add_fstr(pinfo->cinfo, COL_INFO, "%s: %d (0x%" PRIx32 "), Length: %d", id_name, effective_can_id, effective_can_id, can_info.len);
+ next_tvb = tvb_new_subset_length(tvb, CANXL_DATA_OFFSET, can_info.len);
- socketcan_set_source_and_destination_columns(pinfo, &can_info);
+ if (!dissector_try_uint_new(canxl_sdu_type_dissector_table, sdu_type, next_tvb, pinfo, tree, TRUE, &can_info)) {
+ call_data_dissector(next_tvb, pinfo, tree);
+ }
- ti = proto_tree_add_item(tree, (can_packet_type == PACKET_TYPE_CAN_FD) ? proto_canfd : proto_can, tvb, 0, -1, ENC_NA);
- can_tree = proto_item_add_subtree(ti, (can_packet_type == PACKET_TYPE_CAN_FD) ? ett_can_fd : ett_can);
+ if (tvb_captured_length_remaining(tvb, CANXL_DATA_OFFSET+can_info.len) > 0) {
+ proto_tree_add_item(can_tree, hf_can_padding, tvb, CANXL_DATA_OFFSET+can_info.len, -1, ENC_NA);
+ }
+ } else {
+ if (can_packet_type == PACKET_TYPE_CAN_FD) {
+ can_info.fd = CAN_TYPE_CAN_FD;
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "CANFD");
+ } else {
+ can_info.fd = CAN_TYPE_CAN_CLASSIC;
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "CAN");
+ }
+ col_clear(pinfo->cinfo, COL_INFO);
- proto_item_append_text(can_tree, ", %s: %d (0x%" PRIx32 "), Length: %d", id_name, effective_can_id, effective_can_id, can_info.len);
+ ti = proto_tree_add_item(tree, proto_can, tvb, 0, -1, ENC_NA);
+ if (can_packet_type == PACKET_TYPE_CAN_FD) {
+ proto_item_set_hidden(ti);
+ ti = proto_tree_add_item(tree, proto_canfd, tvb, 0, -1, ENC_NA);
+ }
+ can_tree = proto_item_add_subtree(ti, (can_packet_type == PACKET_TYPE_CAN_FD) ? ett_can_fd : ett_can);
+
+ /* Get the ID and flags field */
+ can_info.id = tvb_get_guint32(tvb, 0, encoding);
+
+ /* Error Message Frames are only encapsulated in Classic CAN frames */
+ if (can_packet_type == PACKET_TYPE_CAN && (can_info.id & CAN_ERR_FLAG)) {
+ frame_type = LINUX_CAN_ERR;
+ can_flags_id = can_err_flags;
+ } else if (can_info.id & CAN_EFF_FLAG) {
+ frame_type = LINUX_CAN_EXT;
+ can_info.id &= (CAN_EFF_MASK | CAN_FLAG_MASK);
+ can_flags_id = (can_packet_type == PACKET_TYPE_CAN_FD) ? canfd_ext_flags_id : can_ext_flags_id;
+ } else {
+ frame_type = LINUX_CAN_STD;
+ can_info.id &= (CAN_SFF_MASK | CAN_FLAG_MASK);
+ can_flags_id = (can_packet_type == PACKET_TYPE_CAN_FD) ? canfd_std_flags_id : can_std_flags_id;
+ }
- proto_tree_add_bitmask_list(can_tree, tvb, 0, 4, can_flags, encoding);
- proto_tree_add_item(can_tree, hf_can_len, tvb, CAN_LEN_OFFSET, 1, ENC_NA);
+ socketcan_set_source_and_destination_columns(pinfo, &can_info);
- if (frame_type == LINUX_CAN_ERR && can_info.len != CAN_ERR_DLC) {
- proto_tree_add_expert(tree, pinfo, &ei_can_err_dlc_mismatch, tvb, CAN_LEN_OFFSET, 1);
- }
+ proto_tree_add_bitmask_list(can_tree, tvb, 0, 4, can_flags_id, encoding);
+ if (can_info.id & CAN_EFF_FLAG) {
+ col_add_fstr(pinfo->cinfo, COL_INFO, "Ext. ID: %u (0x%08x)", can_info.id & CAN_EFF_MASK, can_info.id & CAN_EFF_MASK);
+ proto_item_append_text(can_tree, ", Ext. ID: %u (0x%08x)", can_info.id & CAN_EFF_MASK, can_info.id & CAN_EFF_MASK);
+ } else {
+ col_add_fstr(pinfo->cinfo, COL_INFO, "ID: %u (0x%03x)", can_info.id & CAN_SFF_MASK, can_info.id & CAN_SFF_MASK);
+ proto_item_append_text(can_tree, ", ID: %u (0x%03x)", can_info.id & CAN_SFF_MASK, can_info.id & CAN_SFF_MASK);
+ }
+ proto_tree_add_item_ret_uint(can_tree, hf_can_len, tvb, CAN_LEN_OFFSET, 1, ENC_NA, &can_info.len);
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", Length: %u", can_info.len);
+ proto_item_append_text(can_tree, ", Length: %u", can_info.len);
- if (can_packet_type == PACKET_TYPE_CAN_FD) {
- proto_tree_add_bitmask_list(can_tree, tvb, CANFD_FLAG_OFFSET, 1, canfd_flag_fields, ENC_NA);
- proto_tree_add_item(can_tree, hf_can_reserved, tvb, CANFD_FLAG_OFFSET+1, 2, ENC_NA);
- } else {
- proto_tree_add_item(can_tree, hf_can_reserved, tvb, CANFD_FLAG_OFFSET, 3, ENC_NA);
- }
+ if (frame_type == LINUX_CAN_ERR && can_info.len != CAN_ERR_DLC) {
+ proto_tree_add_expert(tree, pinfo, &ei_can_err_dlc_mismatch, tvb, CAN_LEN_OFFSET, 1);
+ }
- if (frame_type == LINUX_CAN_ERR) {
- int * const *flag;
- const char *sepa = ": ";
+ if (can_packet_type == PACKET_TYPE_CAN_FD) {
+ proto_tree_add_bitmask_list(can_tree, tvb, CANFD_FLAG_OFFSET, 1, canfd_flag_fields, ENC_NA);
+ proto_tree_add_item(can_tree, hf_can_reserved, tvb, CANFD_FLAG_OFFSET+1, 2, ENC_NA);
+ } else {
+ proto_tree_add_item(can_tree, hf_can_reserved, tvb, CANFD_FLAG_OFFSET, 3, ENC_NA);
+ }
- col_set_str(pinfo->cinfo, COL_INFO, "ERR");
+ if (frame_type == LINUX_CAN_ERR) {
+ int * const *flag;
+ const char *sepa = ": ";
- for (flag = can_err_flags; *flag; flag++) {
- header_field_info *hfi;
+ col_set_str(pinfo->cinfo, COL_INFO, "ERR");
- hfi = proto_registrar_get_nth(**flag);
- if (!hfi)
- continue;
+ for (flag = can_err_flags; *flag; flag++) {
+ header_field_info *hfi;
- if ((can_info.id & hfi->bitmask & ~CAN_FLAG_MASK) == 0)
- continue;
+ hfi = proto_registrar_get_nth(**flag);
+ if (!hfi)
+ continue;
- col_append_sep_str(pinfo->cinfo, COL_INFO, sepa, hfi->name);
- sepa = ", ";
- }
+ if ((can_info.id & hfi->bitmask & ~CAN_FLAG_MASK) == 0)
+ continue;
- if (can_info.id & CAN_ERR_LOSTARB) {
- proto_tree_add_item(can_tree, hf_can_err_lostarb_bit_number, tvb, CAN_DATA_OFFSET + 0, 1, ENC_NA);
- }
+ col_append_sep_str(pinfo->cinfo, COL_INFO, sepa, hfi->name);
+ sepa = ", ";
+ }
- if (can_info.id & CAN_ERR_CTRL) {
- static int * const can_err_ctrl_flags[] = {
- &hf_can_err_ctrl_rx_overflow,
- &hf_can_err_ctrl_tx_overflow,
- &hf_can_err_ctrl_rx_warning,
- &hf_can_err_ctrl_tx_warning,
- &hf_can_err_ctrl_rx_passive,
- &hf_can_err_ctrl_tx_passive,
- &hf_can_err_ctrl_active,
- NULL,
- };
-
- proto_tree_add_bitmask_list(can_tree, tvb, CAN_DATA_OFFSET+1, 1, can_err_ctrl_flags, ENC_NA);
- }
+ if (can_info.id & CAN_ERR_LOSTARB) {
+ proto_tree_add_item(can_tree, hf_can_err_lostarb_bit_number, tvb, CAN_DATA_OFFSET + 0, 1, ENC_NA);
+ }
- if (can_info.id & CAN_ERR_PROT) {
- static int * const can_err_prot_error_type_flags[] = {
- &hf_can_err_prot_error_type_bit,
- &hf_can_err_prot_error_type_form,
- &hf_can_err_prot_error_type_stuff,
- &hf_can_err_prot_error_type_bit0,
- &hf_can_err_prot_error_type_bit1,
- &hf_can_err_prot_error_type_overload,
- &hf_can_err_prot_error_type_active,
- &hf_can_err_prot_error_type_tx,
- NULL
- };
- proto_tree_add_bitmask_list(can_tree, tvb, CAN_DATA_OFFSET+2, 1, can_err_prot_error_type_flags, ENC_NA);
- proto_tree_add_item(can_tree, hf_can_err_prot_error_location, tvb, CAN_DATA_OFFSET+3, 1, ENC_NA);
- }
+ if (can_info.id & CAN_ERR_CTRL) {
+ static int * const can_err_ctrl_flags[] = {
+ &hf_can_err_ctrl_rx_overflow,
+ &hf_can_err_ctrl_tx_overflow,
+ &hf_can_err_ctrl_rx_warning,
+ &hf_can_err_ctrl_tx_warning,
+ &hf_can_err_ctrl_rx_passive,
+ &hf_can_err_ctrl_tx_passive,
+ &hf_can_err_ctrl_active,
+ NULL,
+ };
+
+ proto_tree_add_bitmask_list(can_tree, tvb, CAN_DATA_OFFSET+1, 1, can_err_ctrl_flags, ENC_NA);
+ }
+
+ if (can_info.id & CAN_ERR_PROT) {
+ static int * const can_err_prot_error_type_flags[] = {
+ &hf_can_err_prot_error_type_bit,
+ &hf_can_err_prot_error_type_form,
+ &hf_can_err_prot_error_type_stuff,
+ &hf_can_err_prot_error_type_bit0,
+ &hf_can_err_prot_error_type_bit1,
+ &hf_can_err_prot_error_type_overload,
+ &hf_can_err_prot_error_type_active,
+ &hf_can_err_prot_error_type_tx,
+ NULL
+ };
+ proto_tree_add_bitmask_list(can_tree, tvb, CAN_DATA_OFFSET+2, 1, can_err_prot_error_type_flags, ENC_NA);
+ proto_tree_add_item(can_tree, hf_can_err_prot_error_location, tvb, CAN_DATA_OFFSET+3, 1, ENC_NA);
+ }
- if (can_info.id & CAN_ERR_TRX) {
- proto_tree_add_item(can_tree, hf_can_err_trx_canh, tvb, CAN_DATA_OFFSET+4, 1, ENC_NA);
- proto_tree_add_item(can_tree, hf_can_err_trx_canl, tvb, CAN_DATA_OFFSET+4, 1, ENC_NA);
- }
+ if (can_info.id & CAN_ERR_TRX) {
+ proto_tree_add_item(can_tree, hf_can_err_trx_canh, tvb, CAN_DATA_OFFSET+4, 1, ENC_NA);
+ proto_tree_add_item(can_tree, hf_can_err_trx_canl, tvb, CAN_DATA_OFFSET+4, 1, ENC_NA);
+ }
- proto_tree_add_item(can_tree, hf_can_err_ctrl_specific, tvb, CAN_DATA_OFFSET+5, 3, ENC_NA);
- } else {
- tvbuff_t *next_tvb;
+ proto_tree_add_item(can_tree, hf_can_err_ctrl_specific, tvb, CAN_DATA_OFFSET+5, 3, ENC_NA);
+ } else {
+ tvbuff_t *next_tvb;
- if (can_info.id & CAN_RTR_FLAG) {
- col_append_str(pinfo->cinfo, COL_INFO, "(Remote Transmission Request)");
- }
+ if (can_info.id & CAN_RTR_FLAG) {
+ col_append_str(pinfo->cinfo, COL_INFO, "(Remote Transmission Request)");
+ }
- next_tvb = tvb_new_subset_length(tvb, CAN_DATA_OFFSET, can_info.len);
+ next_tvb = tvb_new_subset_length(tvb, CAN_DATA_OFFSET, can_info.len);
- if (!socketcan_call_subdissectors(next_tvb, pinfo, tree, &can_info, heuristic_first)) {
- call_data_dissector(next_tvb, pinfo, tree);
+ if (!socketcan_call_subdissectors(next_tvb, pinfo, tree, &can_info, heuristic_first)) {
+ call_data_dissector(next_tvb, pinfo, tree);
+ }
}
- }
- if (tvb_captured_length_remaining(tvb, CAN_DATA_OFFSET+can_info.len) > 0) {
- proto_tree_add_item(can_tree, hf_can_padding, tvb, CAN_DATA_OFFSET+can_info.len, -1, ENC_NA);
+ if (tvb_captured_length_remaining(tvb, CAN_DATA_OFFSET+can_info.len) > 0) {
+ proto_tree_add_item(can_tree, hf_can_padding, tvb, CAN_DATA_OFFSET+can_info.len, -1, ENC_NA);
+ }
}
return tvb_captured_length(tvb);
@@ -716,19 +849,33 @@ dissect_socketcan_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
static int
dissect_socketcan_bigendian(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) {
return dissect_socketcan_common(tvb, pinfo, tree,
- byte_swap ? ENC_LITTLE_ENDIAN : ENC_BIG_ENDIAN, PACKET_TYPE_UNKNOWN);
+ byte_swap ? ENC_LITTLE_ENDIAN : ENC_BIG_ENDIAN,
+ ENC_LITTLE_ENDIAN,
+ PACKET_TYPE_UNKNOWN);
}
static int
dissect_socketcan_classic(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) {
return dissect_socketcan_common(tvb, pinfo, tree,
- byte_swap ? ENC_ANTI_HOST_ENDIAN : ENC_HOST_ENDIAN, PACKET_TYPE_CAN);
+ byte_swap ? ENC_ANTI_HOST_ENDIAN : ENC_HOST_ENDIAN,
+ ENC_HOST_ENDIAN, /* Not used, as this is CAN classic, not CAN XL */
+ PACKET_TYPE_CAN);
}
static int
dissect_socketcan_fd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) {
return dissect_socketcan_common(tvb, pinfo, tree,
- byte_swap ? ENC_ANTI_HOST_ENDIAN : ENC_HOST_ENDIAN, PACKET_TYPE_CAN_FD);
+ byte_swap ? ENC_ANTI_HOST_ENDIAN : ENC_HOST_ENDIAN,
+ ENC_HOST_ENDIAN, /* Not used, as this is CAN FD, not CAN XL */
+ PACKET_TYPE_CAN_FD);
+}
+
+static int
+dissect_socketcan_xl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) {
+ return dissect_socketcan_common(tvb, pinfo, tree,
+ byte_swap ? ENC_ANTI_HOST_ENDIAN : ENC_HOST_ENDIAN,
+ ENC_HOST_ENDIAN,
+ PACKET_TYPE_CAN_XL);
}
void
@@ -814,6 +961,18 @@ proto_register_socketcan(void) {
"Transceiver CANL status", "can.err.trx.canl", FT_UINT8, BASE_DEC, VALS(can_err_trx_canl_vals), 0xF0, NULL, HFILL } },
{ &hf_can_err_ctrl_specific, {
"Controller specific data", "can.err.ctrl_specific", FT_BYTES, SEP_SPACE, NULL, 0, NULL, HFILL } },
+ { &hf_canxl_priority, {
+ "Priority", "canxl.priority", FT_UINT32, BASE_DEC, NULL, 0x0000FFFF, NULL, HFILL } },
+ { &hf_canxl_vcid, {
+ "VCID", "canxl.vcid", FT_UINT32, BASE_DEC, NULL, 0x00FF0000, NULL, HFILL } },
+ { &hf_canxl_secflag, {
+ "Simple Extended Context", "canxl.flags.sec", FT_BOOLEAN, 8, NULL, CANXL_SEC, NULL, HFILL } },
+ { &hf_canxl_sdu_type, {
+ "SDU type", "canxl.sdu_type", FT_UINT8, BASE_HEX, VALS(canxl_sdu_type_vals), 0, NULL, HFILL } },
+ { &hf_canxl_len, {
+ "Frame-Length", "canxl.len", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
+ { &hf_canxl_acceptance_field, {
+ "Acceptance field", "canxl.acceptance_field", FT_UINT32, BASE_DEC_HEX, NULL, 0, NULL, HFILL } },
};
uat_t *can_interface_uat = NULL;
@@ -822,7 +981,8 @@ proto_register_socketcan(void) {
/* Setup protocol subtree array */
static gint *ett[] = {
&ett_can,
- &ett_can_fd
+ &ett_can_fd,
+ &ett_can_xl
};
static ei_register_info ei[] = {
@@ -841,6 +1001,11 @@ proto_register_socketcan(void) {
* or Busmaster capture that was saved as a pcap or pcapng file,
* as those use a linktype of LINKTYPE_WIRESHARK_UPPER_PDU with
* "can-hostendian" as the dissector name.
+ *
+ * "can-bigendian" is also a legacy name (fpr CAN XL frames, the
+ * fields in the header are in *little-endian* order); we keep it
+ * around for the same reason. It's used for the dissector for
+ * LINKTYPE_CAN_SOCKETCAN.
*/
socketcan_classic_handle = register_dissector("can-hostendian", dissect_socketcan_classic, proto_can);
socketcan_bigendian_handle = register_dissector("can-bigendian", dissect_socketcan_bigendian, proto_can);
@@ -848,6 +1013,9 @@ proto_register_socketcan(void) {
proto_canfd = proto_register_protocol("Controller Area Network FD", "CANFD", "canfd");
socketcan_fd_handle = register_dissector("canfd", dissect_socketcan_fd, proto_canfd);
+ proto_canxl = proto_register_protocol("Controller Area Network XL", "CANXL", "canxl");
+ socketcan_xl_handle = register_dissector("canxl", dissect_socketcan_xl, proto_canxl);
+
proto_register_field_array(proto_can, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
@@ -858,7 +1026,7 @@ proto_register_socketcan(void) {
prefs_register_obsolete_preference(can_module, "protocol");
prefs_register_bool_preference(can_module, "byte_swap", "Byte-swap the CAN ID/flags field",
- "Whether the CAN ID/flags field should be byte-swapped",
+ "Whether the CAN ID/flags field should be byte-swapped in CAN classic and CAN FD packets",
&byte_swap);
prefs_register_bool_preference(can_module, "try_heuristic_first", "Try heuristic sub-dissectors first",
@@ -871,6 +1039,8 @@ proto_register_socketcan(void) {
subdissector_table = register_decode_as_next_proto(proto_can, "can.subdissector", "CAN next level dissector", NULL);
+ canxl_sdu_type_dissector_table = register_dissector_table("canxl.sdu_type", "CAN XL SDU type", proto_canxl, FT_UINT8, BASE_HEX);
+
heur_subdissector_list = register_heur_dissector_list("can", proto_can);
static uat_field_t can_interface_mapping_uat_fields[] = {
@@ -933,6 +1103,7 @@ proto_reg_handoff_socketcan(void) {
dissector_add_uint("sll.ltype", LINUX_SLL_P_CAN, socketcan_classic_handle);
dissector_add_uint("sll.ltype", LINUX_SLL_P_CANFD, socketcan_fd_handle);
+ dissector_add_uint("sll.ltype", LINUX_SLL_P_CANXL, socketcan_xl_handle);
}
/*
diff --git a/epan/dissectors/packet-socketcan.h b/epan/dissectors/packet-socketcan.h
index 49a77224..f053dfa2 100644
--- a/epan/dissectors/packet-socketcan.h
+++ b/epan/dissectors/packet-socketcan.h
@@ -14,16 +14,48 @@
#include <epan/packet_info.h>
#include <epan/proto.h>
-/* Flags for CAN FD frames. */
+/*
+ * Flags for CAN FD frames.
+ * They are in the FD Flags field of a CAN FD frame.
+ *
+ * CANFD_FDF is in that field. and always set, as well as being present
+ * but *never* set in what's at the location corresponding to that field
+ * in a CAN classic frame, so we can distingish between CAN classic and
+ * CAN FD frames by testing that bit.
+ */
#define CANFD_BRS 0x01 /* Bit Rate Switch (second bitrate for payload data) */
#define CANFD_ESI 0x02 /* Error State Indicator of the transmitting node */
#define CANFD_FDF 0x04 /* FD flag - if set, this is an FD frame */
+/*
+ * Flags for CAN XL frames.
+ * They are in the Flags field of a CAN XL frame.
+ *
+ * CANXL_XLF is in that field, and always set. as well as being present
+ * but *never* set in what's the location corresponding to that field
+ * in a CAN classic or CAN FD frame, so we can distinguish between CAN
+ * XL and CAN classic/CAN FD frames by testing that bit.
+ */
+#define CANXL_XLF 0x80 /* XL flag - if set, this is an XL frame */
+#define CANXL_SEC 0x01 /* Simple Extended Content */
+
+/*
+ * CAN frame type.
+ *
+ * CAN_TYPE_CAN_CLASSIC is 0, and CAN_TYPE_CAN_FD is 1, so that the
+ * fd field behaves, for CAN classic and CAN FD frames, the same way
+ * that it did when it was a gboolean field that was FALSE for CAN classic
+ * frames and TRUE for CAN FD frames.
+ */
+#define CAN_TYPE_CAN_CLASSIC 0
+#define CAN_TYPE_CAN_FD 1
+#define CAN_TYPE_CAN_XL 2
+
/* Structure that gets passed between dissectors. */
typedef struct can_info {
guint32 id;
guint32 len;
- gboolean fd;
+ guint fd;
guint16 bus_id;
} can_info_t;
@@ -92,6 +124,16 @@ typedef struct can_info {
gboolean socketcan_call_subdissectors(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, struct can_info *can_info, const gboolean use_heuristics_first);
gboolean socketcan_set_source_and_destination_columns(packet_info* pinfo, can_info_t *caninfo);
+/*
+ * CAN XL SDU types.
+ */
+#define CANXL_SDU_TYPE_CONTENT_BASED_ADDRESSING 0x01
+#define CANXL_SDU_TYPE_CLASSICAL_CAN_AND_CAN_FD_MAPPED_TUNNELING 0x03
+#define CANXL_SDU_TYPE_IEEE_802_3_MAC_FRAME_TUNNELLING 0x04
+#define CANXL_SDU_TYPE_IEEE_802_3_MAC_FRAME_MAPPED_TUNNELING 0x05
+#define CANXL_SDU_TYPE_CLASSICAL_CAN_MAPPED_TUNNELING 0x06
+#define CANXL_SDU_TYPE_CAN_FD_MAPPED_TUNNELING 0x07
+
#endif /* __PACKET_SOCKETCAN_H__ */
/*
diff --git a/epan/dissectors/packet-socks.c b/epan/dissectors/packet-socks.c
index f84c3411..f96a1790 100644
--- a/epan/dissectors/packet-socks.c
+++ b/epan/dissectors/packet-socks.c
@@ -484,6 +484,7 @@ display_socks_v4(tvbuff_t *tvb, int offset, packet_info *pinfo,
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
client_display_socks_v5(tvbuff_t *tvb, int offset, packet_info *pinfo,
proto_tree *tree, socks_hash_entry_t *hash_info, sock_state_t* state_info) {
@@ -535,7 +536,9 @@ client_display_socks_v5(tvbuff_t *tvb, int offset, packet_info *pinfo,
(tvb_get_guint8(tvb, offset + 2) == 0) &&
(tvb_reported_length_remaining(tvb, offset + 2 + num_auth_methods) > 0)) {
new_state_info.client = clientV5Command;
+ increment_dissection_depth(pinfo);
client_display_socks_v5(tvb, offset, pinfo, tree, hash_info, &new_state_info);
+ decrement_dissection_depth(pinfo);
}
}
else if (state_info->client == clientV5Command) {
@@ -763,6 +766,7 @@ state_machine_v4( socks_hash_entry_t *hash_info, tvbuff_t *tvb,
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
client_state_machine_v5( socks_hash_entry_t *hash_info, tvbuff_t *tvb,
int offset, packet_info *pinfo, gboolean start_of_frame) {
@@ -788,7 +792,9 @@ client_state_machine_v5( socks_hash_entry_t *hash_info, tvbuff_t *tvb,
/* No authentication needed */
hash_info->clientState = clientV5Command;
if (tvb_reported_length_remaining(tvb, offset + 2 + num_auth_methods) > 0) {
+ increment_dissection_depth(pinfo);
client_state_machine_v5(hash_info, tvb, offset + 2 + num_auth_methods, pinfo, FALSE);
+ decrement_dissection_depth(pinfo);
}
} else {
hash_info->clientState = clientWaitForAuthReply;
diff --git a/epan/dissectors/packet-solaredge.c b/epan/dissectors/packet-solaredge.c
index 34e81c78..04b05e81 100644
--- a/epan/dissectors/packet-solaredge.c
+++ b/epan/dissectors/packet-solaredge.c
@@ -1029,6 +1029,7 @@ void solaredge_decrypt(const guint8 *in, gint length, guint8 *out, gcry_cipher_h
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_solaredge_devicedata(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, gint length)
{
gint current_offset;
@@ -1054,6 +1055,7 @@ dissect_solaredge_devicedata(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
current_offset = offset + SOLAREDGE_POST_HEADER_LENGTH;
col_append_str(pinfo->cinfo, COL_INFO, " ");
+ increment_dissection_depth(pinfo);
switch(device_header.type) {
case SOLAREDGE_DEVICETYPE_OPTIMIZER:
col_append_str(pinfo->cinfo, COL_INFO, "Optimizer");
@@ -1218,6 +1220,7 @@ dissect_solaredge_devicedata(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
current_offset += device_header.device_length;
break;
}
+ decrement_dissection_depth(pinfo);
if (current_offset < length) {
col_append_str(pinfo->cinfo, COL_INFO, ", ");
@@ -1227,6 +1230,7 @@ dissect_solaredge_devicedata(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_solaredge_recursive(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree _U_, void *data _U_, gint ett, conversation_t *conv)
{
proto_item *ti;
@@ -1276,6 +1280,7 @@ dissect_solaredge_recursive(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
current_offset += 2;
col_append_str(pinfo->cinfo, COL_INFO, val_to_str_const(header.command_type, solaredge_packet_commandtypes, "Unknown command"));
+ increment_dissection_depth(pinfo);
switch (header.command_type) {
case SOLAREDGE_COMMAND_MISC_ENCRYPTED:
proto_tree_add_item(solaredge_header_tree, hf_solaredge_payload_type, tvb, current_offset, header.length, ENC_NA);
@@ -1335,6 +1340,7 @@ dissect_solaredge_recursive(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
current_offset += header.length;
break;
}
+ decrement_dissection_depth(pinfo);
/* Validate CRC */
proto_tree_add_checksum(solaredge_header_tree, tvb, SOLAREDGE_HEADER_LENGTH + header.length, hf_solaredge_crc_type, hf_solaredge_crc_status_type, &ei_solaredge_invalid_crc, pinfo, calculate_crc(&header, tvb_get_ptr(tvb, SOLAREDGE_HEADER_LENGTH, header.length), header.length), ENC_LITTLE_ENDIAN, PROTO_CHECKSUM_VERIFY);
@@ -1653,11 +1659,7 @@ proto_register_solaredge(void)
&ett_solaredge_packet_post_device
};
- proto_solaredge = proto_register_protocol (
- "SolarEdge monitoring protocol",
- "SolarEdge",
- "solaredge"
- );
+ proto_solaredge = proto_register_protocol ("SolarEdge monitoring protocol", "SolarEdge", "solaredge");
solaredge_handle = register_dissector("solaredge", dissect_solaredge, proto_solaredge);
module_t * module_solaredge = prefs_register_protocol(proto_solaredge, NULL);
diff --git a/epan/dissectors/packet-someip.c b/epan/dissectors/packet-someip.c
index 97cc36cc..b6cc40eb 100644
--- a/epan/dissectors/packet-someip.c
+++ b/epan/dissectors/packet-someip.c
@@ -2962,6 +2962,7 @@ dissect_someip_payload_string(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_someip_payload_struct(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset_orig, guint32 id, gchar *name, gint wtlv_offset) {
someip_payload_parameter_struct_t *config = NULL;
@@ -3021,6 +3022,7 @@ dissect_someip_payload_struct(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_someip_payload_typedef(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, guint32 id, gchar *name _U_, int *hf_id, gint wtlv_offset) {
someip_payload_parameter_typedef_t *config = NULL;
@@ -3075,6 +3077,7 @@ dissect_someip_payload_array_dim_length(tvbuff_t *tvb, packet_info *pinfo, proto
/* returns bytes parsed, length needs to be gint to encode "non-existing" as -1 */
static gint
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_someip_payload_array_payload(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset_orig, gint length, gint lower_limit, gint upper_limit,
someip_parameter_array_t *config) {
tvbuff_t *subtvb = NULL;
@@ -3123,6 +3126,7 @@ dissect_someip_payload_array_payload(tvbuff_t *tvb, packet_info *pinfo, proto_tr
}
static gint
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_someip_payload_array_dim(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset_orig, gint length, gint lower_limit, gint upper_limit, someip_parameter_array_t *config, guint current_dim, gchar *name, guint32 length_of_length) {
proto_item *ti = NULL;
proto_tree *subtree = NULL;
@@ -3171,6 +3175,7 @@ dissect_someip_payload_array_dim(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_someip_payload_array(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset_orig, guint32 id, gchar *name, gint wtlv_offset) {
someip_parameter_array_t *config = NULL;
@@ -3222,6 +3227,7 @@ dissect_someip_payload_array(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_someip_payload_union(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset_orig, guint32 id, gchar *name, gint wtlv_offset) {
someip_parameter_union_t *config = NULL;
someip_parameter_union_item_t *item = NULL;
@@ -3301,9 +3307,11 @@ dissect_someip_payload_union(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_someip_payload_parameter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, guint8 data_type, guint32 idref, gchar *name, int *hf_id_ptr, gint wtlv_offset) {
gint bytes_parsed = 0;
+ increment_dissection_depth(pinfo);
switch (data_type) {
case SOMEIP_PAYLOAD_PARAMETER_DATA_TYPE_TYPEDEF:
bytes_parsed = dissect_someip_payload_typedef(tvb, pinfo, tree, offset, idref, name, hf_id_ptr, wtlv_offset);
@@ -3331,6 +3339,7 @@ dissect_someip_payload_parameter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
col_append_str(pinfo->cinfo, COL_INFO, " [SOME/IP: Payload Config Error]");
break;
}
+ decrement_dissection_depth(pinfo);
return bytes_parsed;
}
@@ -3412,6 +3421,7 @@ static int dissect_someip_payload_peek_length_of_length(proto_tree *tree, packet
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_someip_payload_parameters(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, someip_payload_parameter_item_t *items, guint32 num_of_items, gboolean wtlv) {
someip_payload_parameter_item_t *item;
@@ -3513,17 +3523,6 @@ dissect_someip_payload(tvbuff_t* tvb, packet_info* pinfo, proto_item *ti, guint1
proto_tree *tree = NULL;
- /* TAP */
- if (have_tap_listener(tap_someip_messages)) {
- someip_messages_tap_t *data = wmem_alloc(pinfo->pool, sizeof(someip_messages_tap_t));
- data->service_id = serviceid;
- data->method_id = methodid;
- data->interface_version = version;
- data->message_type = msgtype;
-
- tap_queue_packet(tap_someip_messages, pinfo, data);
- }
-
length = tvb_captured_length_remaining(tvb, 0);
tree = proto_item_add_subtree(ti, ett_someip_payload);
paramlist = get_parameter_config(serviceid, methodid, version, msgtype);
@@ -3738,7 +3737,18 @@ dissect_someip_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
subtvb = tvb_new_subset_length(tvb, SOMEIP_HDR_LEN, someip_payload_length);
}
- if (subtvb!=NULL) {
+ if (subtvb != NULL) {
+ /* TAP */
+ if (have_tap_listener(tap_someip_messages)) {
+ someip_messages_tap_t *stats_data = wmem_alloc(pinfo->pool, sizeof(someip_messages_tap_t));
+ stats_data->service_id = (guint16)someip_serviceid;
+ stats_data->method_id = (guint16)someip_methodid;
+ stats_data->interface_version = (guint8)version;
+ stats_data->message_type = (guint8)(~SOMEIP_MSGTYPE_TP_MASK) & msgtype;
+
+ tap_queue_packet(tap_someip_messages, pinfo, stats_data);
+ }
+
tvb_length = tvb_captured_length_remaining(subtvb, 0);
if (tvb_length > 0) {
tmp = dissector_try_uint_new(someip_dissector_table, someip_messageid, subtvb, pinfo, tree, FALSE, &someip_data);
diff --git a/epan/dissectors/packet-sua.c b/epan/dissectors/packet-sua.c
index 18768d94..56266e28 100644
--- a/epan/dissectors/packet-sua.c
+++ b/epan/dissectors/packet-sua.c
@@ -808,6 +808,7 @@ dissect_correlation_id_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_registration_result_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -817,6 +818,7 @@ dissect_registration_result_parameter(tvbuff_t *parameter_tvb, packet_info *pinf
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_deregistration_result_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -917,6 +919,7 @@ static const value_string routing_indicator_values[] = {
#define ADDRESS_SSN_BITMASK 0x0001
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_source_address_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree, guint8 *ssn)
{
proto_tree *address_indicator_tree;
@@ -938,6 +941,7 @@ dissect_source_address_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, pr
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_destination_address_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree, guint8 *ssn)
{
proto_tree *address_indicator_tree;
@@ -1179,6 +1183,7 @@ dissect_network_appearance_parameter(tvbuff_t *parameter_tvb, proto_tree *parame
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_routing_key_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -1221,6 +1226,7 @@ dissect_tid_label_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree)
#define ADDRESS_RANGE_ADDRESS_PARAMETERS_OFFSET PARAMETER_VALUE_OFFSET
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_address_range_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree)
{
tvbuff_t *parameters_tvb;
@@ -1610,6 +1616,7 @@ static const value_string v8_parameter_tag_values[] = {
{ 0, NULL } };
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_v8_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree, tvbuff_t **data_tvb, guint8 *source_ssn, guint8 *dest_ssn)
{
guint16 tag, length, padding_length;
@@ -1642,6 +1649,7 @@ dissect_v8_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tr
&& tag != V8_SUBSYSTEM_NUMBER_PARAMETER_TAG)
return;
+ increment_dissection_depth(pinfo);
switch(tag) {
case V8_DATA_PARAMETER_TAG:
dissect_data_parameter(parameter_tvb, parameter_tree, parameter_item, data_tvb);
@@ -1786,7 +1794,9 @@ dissect_v8_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tr
default:
dissect_unknown_parameter(parameter_tvb, parameter_tree, parameter_item);
break;
- };
+ }
+ decrement_dissection_depth(pinfo);
+
if (parameter_tree && (padding_length > 0))
proto_tree_add_item(parameter_tree, hf_sua_parameter_padding, parameter_tvb, PARAMETER_HEADER_OFFSET + length, padding_length, ENC_NA);
}
@@ -1888,6 +1898,7 @@ static const value_string parameter_tag_values[] = {
{ 0, NULL } };
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree, tvbuff_t **data_tvb, guint8 *source_ssn, guint8 *dest_ssn)
{
guint16 tag, length, padding_length;
@@ -1937,6 +1948,7 @@ dissect_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree
&& tag != SUBSYSTEM_NUMBER_PARAMETER_TAG)
return; /* Nothing to do here */
+ increment_dissection_depth(pinfo);
switch(tag) {
case DATA_PARAMETER_TAG:
dissect_data_parameter(parameter_tvb, parameter_tree, parameter_item, data_tvb);
@@ -2090,12 +2102,15 @@ dissect_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree
default:
dissect_unknown_parameter(parameter_tvb, parameter_tree, parameter_item);
break;
- };
+ }
+ decrement_dissection_depth(pinfo);
+
if (parameter_tree && (padding_length > 0))
proto_tree_add_item(parameter_tree, hf_sua_parameter_padding, parameter_tvb, PARAMETER_HEADER_OFFSET + length, padding_length, ENC_NA);
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_parameters(tvbuff_t *parameters_tvb, packet_info *pinfo, proto_tree *tree, tvbuff_t **data_tvb, guint8 *source_ssn, guint8 *dest_ssn)
{
gint offset, length, total_length, remaining_length;
diff --git a/epan/dissectors/packet-t38.c b/epan/dissectors/packet-t38.c
index 45127cde..00bd9c22 100644
--- a/epan/dissectors/packet-t38.c
+++ b/epan/dissectors/packet-t38.c
@@ -280,6 +280,7 @@ void t38_add_address(packet_info *pinfo,
p_conversation_data->setup_frame_number = setup_frame_number;
p_conversation_data->src_t38_info.reass_ID = 0;
p_conversation_data->src_t38_info.reass_start_seqnum = -1;
+ p_conversation_data->src_t38_info.reass_start_data_field = 0;
p_conversation_data->src_t38_info.reass_data_type = 0;
p_conversation_data->src_t38_info.last_seqnum = -1;
p_conversation_data->src_t38_info.packet_lost = 0;
@@ -291,6 +292,7 @@ void t38_add_address(packet_info *pinfo,
p_conversation_data->dst_t38_info.reass_ID = 0;
p_conversation_data->dst_t38_info.reass_start_seqnum = -1;
+ p_conversation_data->dst_t38_info.reass_start_data_field = 0;
p_conversation_data->dst_t38_info.reass_data_type = 0;
p_conversation_data->dst_t38_info.last_seqnum = -1;
p_conversation_data->dst_t38_info.packet_lost = 0;
@@ -353,8 +355,9 @@ force_reassemble_seq(reassembly_table *table, packet_info *pinfo, guint32 id)
last_fd=fd_i;
}
- data = (guint8 *) wmem_alloc(pinfo->pool, size);
+ data = (guint8 *) g_malloc(size);
fd_head->tvb_data = tvb_new_real_data(data, size, size);
+ tvb_set_free_cb(fd_head->tvb_data, g_free);
fd_head->len = size; /* record size for caller */
/* add all data fragments */
diff --git a/epan/dissectors/packet-tcap.c b/epan/dissectors/packet-tcap.c
index 2f6a4d3e..f134e298 100644
--- a/epan/dissectors/packet-tcap.c
+++ b/epan/dissectors/packet-tcap.c
@@ -3654,6 +3654,7 @@ static void cleanup_tcap(void)
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_tcap_param(asn1_ctx_t *actx, proto_tree *tree, tvbuff_t *tvb, int offset)
{
gint tag_offset, saved_offset, len_offset;
@@ -3696,7 +3697,9 @@ dissect_tcap_param(asn1_ctx_t *actx, proto_tree *tree, tvbuff_t *tvb, int offset
if (len-(2*ind_field)) /*should always be positive unless we get an empty contructor pointless? */
{
next_tvb = tvb_new_subset_length(tvb, offset, len-(2*ind_field));
+ increment_dissection_depth(actx->pinfo);
dissect_tcap_param(actx, subtree,next_tvb,0);
+ decrement_dissection_depth(actx->pinfo);
}
if (ind_field)
diff --git a/epan/dissectors/packet-tcp.c b/epan/dissectors/packet-tcp.c
index 4d10cf6f..aca6596e 100644
--- a/epan/dissectors/packet-tcp.c
+++ b/epan/dissectors/packet-tcp.c
@@ -5687,7 +5687,7 @@ static gboolean tcp_ignore_timestamps = FALSE;
static int
dissect_tcpopt_timestamp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
- proto_item *ti;
+ proto_item *ti, *tsval_ti;
proto_tree *ts_tree;
proto_item *length_item;
int offset = 0;
@@ -5706,7 +5706,7 @@ dissect_tcpopt_timestamp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo
if (!tcp_option_len_check(length_item, pinfo, len, TCPOLEN_TIMESTAMP))
return tvb_captured_length(tvb);
- ti = proto_tree_add_item_ret_uint(ts_tree, hf_tcp_option_timestamp_tsval, tvb, offset,
+ tsval_ti = proto_tree_add_item_ret_uint(ts_tree, hf_tcp_option_timestamp_tsval, tvb, offset,
4, ENC_BIG_ENDIAN, &ts_val);
proto_tree_add_item_ret_uint(ts_tree, hf_tcp_option_timestamp_tsecr, tvb, offset + 4,
@@ -5720,7 +5720,7 @@ dissect_tcpopt_timestamp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo
if (read_seq_as_syn_cookie) {
proto_item_append_text(ti, " (syn cookie)");
- proto_item* syncookie_ti = proto_item_add_subtree(ti, ett_tcp_syncookie_option);
+ proto_item* syncookie_ti = proto_item_add_subtree(tsval_ti, ett_tcp_syncookie_option);
guint32 timestamp = tvb_get_bits32(tvb, offset * 8, 26, ENC_NA) << 6;
proto_tree_add_uint_bits_format_value(syncookie_ti, hf_tcp_syncookie_option_timestamp, tvb, offset * 8,
26, timestamp, ENC_TIME_SECS, "%s", abs_time_secs_to_str(pinfo->pool, timestamp, ABSOLUTE_TIME_LOCAL, TRUE));
diff --git a/epan/dissectors/packet-teap.c b/epan/dissectors/packet-teap.c
index ac24f8cf..701e3389 100644
--- a/epan/dissectors/packet-teap.c
+++ b/epan/dissectors/packet-teap.c
@@ -256,6 +256,7 @@ static int
dissect_teap_tlv_pac(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 len);
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_pac_attr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
{
guint16 type;
@@ -330,17 +331,21 @@ dissect_pac_attr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_teap_tlv_pac(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 len)
{
int start_offset = offset;
+ increment_dissection_depth(pinfo);
while (offset - start_offset < len) {
offset += dissect_pac_attr(tvb, pinfo, tree, offset);
}
+ decrement_dissection_depth(pinfo);
return offset - start_offset;
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_teap_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, gboolean top)
{
int start_offset = offset;
@@ -393,7 +398,9 @@ dissect_teap_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset
if (len > 6) {
next_tvb = tvb_new_subset_length(tvb, offset, len - 6);
+ increment_dissection_depth(pinfo);
offset += dissect_teap(next_tvb, pinfo, tlv_tree, NULL);
+ decrement_dissection_depth(pinfo);
}
break;
@@ -518,6 +525,7 @@ dissect_teap_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_teap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
proto_tree *ti;
diff --git a/epan/dissectors/packet-tecmp.c b/epan/dissectors/packet-tecmp.c
index e7689e76..d46b293d 100644
--- a/epan/dissectors/packet-tecmp.c
+++ b/epan/dissectors/packet-tecmp.c
@@ -1817,7 +1817,7 @@ dissect_tecmp_log_or_replay_stream(tvbuff_t *tvb, packet_info *pinfo, proto_tree
payload_tvb = tvb_new_subset_length(sub_tvb, offset2, length2);
offset2 += length2;
- can_info.fd = (data_type == TECMP_DATA_TYPE_CAN_FD_DATA);
+ can_info.fd = (data_type == TECMP_DATA_TYPE_CAN_FD_DATA) ? CAN_TYPE_CAN_FD : CAN_TYPE_CAN_CLASSIC;
can_info.len = length2;
can_info.bus_id = ht_interface_config_to_bus_id(interface_id);
diff --git a/epan/dissectors/packet-tftp.c b/epan/dissectors/packet-tftp.c
index e543ea88..075e754e 100644
--- a/epan/dissectors/packet-tftp.c
+++ b/epan/dissectors/packet-tftp.c
@@ -588,11 +588,22 @@ static void dissect_tftp_message(tftp_conv_info_t *tftp_info,
tftp_info->is_simple_file /* This is a simple file */
&& filename != NULL /* There is a file name */
&& !tftp_info->blocks_missing /* No missing blocks */
- && tftp_info->last_package_available /* Last package known */
+ && (tftp_info->last_package_available || !PINFO_FD_VISITED(pinfo))
+ /* If this is the first pass (i.e., this is tshark one-pass
+ * mode and we're tapping), then we can't know if the last
+ * block is present in the file yet. */
) {
- if (blocknum == 1 && !tftp_info->payload_data) {
+ if (PINFO_FD_VISITED(pinfo)) {
+ if (blocknum == 1 && !tftp_info->payload_data) {
tftp_info->payload_data = (guint8 *)g_try_malloc((gsize)tftp_info->file_length);
+ }
+ } else {
+ /* We allocate this in file scope so that it doesn't leak if it
+ * turns out we don't have all the blocks so we never send this
+ * to the tap.
+ */
+ tftp_info->payload_data = (guint8 *)wmem_realloc(wmem_file_scope(), tftp_info->payload_data, (gsize)tftp_info->file_length);
}
if (tftp_info->payload_data == NULL ||
@@ -779,7 +790,7 @@ is_valid_request_body(tvbuff_t *tvb)
guint len = tvb_strsize(tvb, offset);
const gchar* mode = tvb_format_stringzpad(wmem_packet_scope(), tvb, offset, len);
- const gchar* modes[] = {"netscii", "octet", "mail"};
+ const gchar* modes[] = {"netascii", "octet", "mail"};
for(guint i = 0; i < array_length(modes); ++i) {
if (g_ascii_strcasecmp(mode, modes[i]) == 0) return TRUE;
}
diff --git a/epan/dissectors/packet-thread.c b/epan/dissectors/packet-thread.c
index dfed394d..7c11f97e 100644
--- a/epan/dissectors/packet-thread.c
+++ b/epan/dissectors/packet-thread.c
@@ -1859,6 +1859,7 @@ dissect_thread_mc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thread_nwd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
proto_item *proto_root;
@@ -1874,6 +1875,7 @@ dissect_thread_nwd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
thread_nwd_tree = proto_item_add_subtree(proto_root, ett_thread_nwd);
/* Thread Network Data TLVs */
+ increment_dissection_depth(pinfo);
while (tvb_offset_exists(tvb, offset)) {
/* Get the length ahead of time to pass to next function so we can highlight
@@ -2093,6 +2095,7 @@ dissect_thread_nwd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
offset += tlv_len;
}
}
+ decrement_dissection_depth(pinfo);
return tvb_captured_length(tvb);
}
diff --git a/epan/dissectors/packet-thrift.c b/epan/dissectors/packet-thrift.c
index 9f03f0dd..a266c446 100644
--- a/epan/dissectors/packet-thrift.c
+++ b/epan/dissectors/packet-thrift.c
@@ -605,6 +605,12 @@ dissect_thrift_field_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/* Create the field header sub-tree if requested only. */
if (tree != NULL) {
+ guint nested_count = p_get_proto_depth(pinfo, proto_thrift);
+ if (nested_count >= thrift_opt->nested_type_depth) {
+ expert_add_info(pinfo, proto_tree_get_parent(tree), &ei_thrift_too_many_subtypes);
+ return THRIFT_REQUEST_REASSEMBLY;
+ }
+
header->fh_tree = proto_tree_add_subtree_format(tree, tvb, header->type_offset, *offset - header->type_offset, ett_thrift_field, NULL,
"Field Header #%" PRId64, header->field_id);
if (thrift_opt->tprotocol & PROTO_THRIFT_COMPACT) {
@@ -1237,6 +1243,7 @@ dissect_thrift_t_string_enc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/* Simple dispatch function for lists, sets, maps, and structs internal elements to avoid code duplication. */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_t_member(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, thrift_option_data_t *thrift_opt, gboolean is_field, const thrift_member_t *elt)
{
switch (elt->type) {
@@ -1293,6 +1300,7 @@ dissect_thrift_t_member(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
* so it's easy to use the same code and handle the additional elements only when necessary.
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_b_linear(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, thrift_option_data_t *thrift_opt, gboolean is_field, int field_id, gint hf_id, gint ett_id, const thrift_member_t *key, const thrift_member_t *val, thrift_type_enum_t expected)
{
proto_item *container_pi = NULL;
@@ -1300,6 +1308,7 @@ dissect_thrift_b_linear(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
proto_tree *sub_tree;
gint32 key_type, val_type;
gint32 length;
+ guint nested_count = p_get_proto_depth(pinfo, proto_thrift);
/* Get the current state of dissection. */
DISSECTOR_ASSERT(thrift_opt);
@@ -1312,6 +1321,11 @@ dissect_thrift_b_linear(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
}
/* Create the sub-tree. */
+ if (nested_count >= thrift_opt->nested_type_depth) {
+ expert_add_info(pinfo, proto_tree_get_parent(tree), &ei_thrift_too_many_subtypes);
+ return THRIFT_REQUEST_REASSEMBLY;
+ }
+ p_set_proto_depth(pinfo, proto_thrift, nested_count + 1);
container_pi = proto_tree_add_item(tree, hf_id, tvb, offset, -1, ENC_BIG_ENDIAN);
sub_tree = proto_item_add_subtree(container_pi, ett_id);
ABORT_SUBDISSECTION_ON_ISSUE(offset);
@@ -1386,6 +1400,7 @@ dissect_thrift_b_linear(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
if (container_pi && offset > 0) {
proto_item_set_end(container_pi, tvb, offset);
}
+ p_set_proto_depth(pinfo, proto_thrift, nested_count);
return offset;
}
@@ -1394,6 +1409,7 @@ dissect_thrift_b_linear(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
* this prevents code duplication.
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_c_list_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, thrift_option_data_t *thrift_opt, gboolean is_field, int field_id, gint hf_id, gint ett_id, const thrift_member_t *elt, gboolean is_list)
{
proto_item *container_pi;
@@ -1408,6 +1424,7 @@ dissect_thrift_c_list_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, i
int hf_num_item = hf_thrift_num_set_item;
int hf_pos_item = hf_thrift_num_set_pos;
thrift_type_enum_t expected = DE_THRIFT_T_SET;
+ guint nested_count = p_get_proto_depth(pinfo, proto_thrift);
if (is_list) {
hf_num_item = hf_thrift_num_list_item;
@@ -1430,6 +1447,11 @@ dissect_thrift_c_list_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, i
}
/* Create the sub-tree. */
+ if (nested_count >= thrift_opt->nested_type_depth) {
+ expert_add_info(pinfo, proto_tree_get_parent(tree), &ei_thrift_too_many_subtypes);
+ return THRIFT_REQUEST_REASSEMBLY;
+ }
+ p_set_proto_depth(pinfo, proto_thrift, nested_count + 1);
container_pi = proto_tree_add_item(tree, hf_id, tvb, offset, -1, ENC_BIG_ENDIAN);
sub_tree = proto_item_add_subtree(container_pi, ett_id);
@@ -1490,10 +1512,12 @@ dissect_thrift_c_list_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, i
if (container_pi && offset > 0) {
proto_item_set_end(container_pi, tvb, offset);
}
+ p_set_proto_depth(pinfo, proto_thrift, nested_count);
return offset;
}
int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_t_list(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, thrift_option_data_t *thrift_opt, gboolean is_field, int field_id, gint hf_id, gint ett_id, const thrift_member_t *elt)
{
int result;
@@ -1510,6 +1534,7 @@ dissect_thrift_t_list(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int o
}
int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_t_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, thrift_option_data_t *thrift_opt, gboolean is_field, int field_id, gint hf_id, gint ett_id, const thrift_member_t *elt)
{
int result;
@@ -1526,6 +1551,7 @@ dissect_thrift_t_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int of
}
int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_t_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, thrift_option_data_t *thrift_opt, gboolean is_field, int field_id, gint hf_id, gint ett_id, const thrift_member_t *key, const thrift_member_t *value)
{
int result;
@@ -1544,6 +1570,7 @@ dissect_thrift_t_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int of
gint32 len_offset = offset;
thrift_compact_type_enum_t ktype, vtype;
guint64 varint;
+ guint nested_count = p_get_proto_depth(pinfo, proto_thrift);
/* Dissect field header if necessary. */
if (is_field) {
@@ -1576,12 +1603,18 @@ dissect_thrift_t_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int of
}
/* Create the sub-tree. */
+ if (nested_count >= thrift_opt->nested_type_depth) {
+ expert_add_info(pinfo, proto_tree_get_parent(tree), &ei_thrift_too_many_subtypes);
+ return THRIFT_REQUEST_REASSEMBLY;
+ }
+ p_set_proto_depth(pinfo, proto_thrift, nested_count + 1);
container_pi = proto_tree_add_item(tree, hf_id, tvb, len_offset, -1, ENC_BIG_ENDIAN);
sub_tree = proto_item_add_subtree(container_pi, ett_id);
if (container_len == 0) {
proto_item_set_end(container_pi, tvb, offset);
proto_item_append_text(container_pi, " (Empty)");
+ p_set_proto_depth(pinfo, proto_thrift, nested_count);
return offset;
}
@@ -1628,6 +1661,7 @@ dissect_thrift_t_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int of
proto_item_set_end(container_pi, tvb, offset);
}
result = offset;
+ p_set_proto_depth(pinfo, proto_thrift, nested_count);
}
if (is_field) {
@@ -1643,6 +1677,7 @@ dissect_thrift_t_struct(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_t_struct_expert(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, thrift_option_data_t *thrift_opt, gboolean is_field, int field_id, gint hf_id, gint ett_id, const thrift_member_t *seq, expert_field* ei)
{
thrift_field_header_t field_header;
@@ -1650,6 +1685,7 @@ dissect_thrift_t_struct_expert(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
proto_item *type_pi = NULL;
gboolean enable_subtree = (ett_id != DISABLE_SUBTREE) || (hf_id != DISABLE_SUBTREE);
+ guint nested_count = p_get_proto_depth(pinfo, proto_thrift);
/* Get the current state of dissection. */
DISSECTOR_ASSERT(thrift_opt);
@@ -1670,6 +1706,11 @@ dissect_thrift_t_struct_expert(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
/* Create the sub-tree, if not explicitly refused. */
if (enable_subtree) {
/* Add the struct to the tree. */
+ if (nested_count >= thrift_opt->nested_type_depth) {
+ expert_add_info(pinfo, proto_tree_get_parent(tree), &ei_thrift_too_many_subtypes);
+ return THRIFT_REQUEST_REASSEMBLY;
+ }
+ p_set_proto_depth(pinfo, proto_thrift, nested_count--);
type_pi = proto_tree_add_item(tree, hf_id, tvb, offset, -1, ENC_BIG_ENDIAN);
sub_tree = proto_item_add_subtree(type_pi, ett_id);
} else {
@@ -1763,6 +1804,7 @@ dissect_thrift_t_struct_expert(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
if (is_field) {
thrift_opt->previous_field_id = field_id;
}
+ p_set_proto_depth(pinfo, proto_thrift, nested_count);
return offset;
}
/*=====END SUB-DISSECTION=====*/
@@ -1841,6 +1883,7 @@ dissect_thrift_binary_binary(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_binary_linear(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int *offset, thrift_option_data_t *thrift_opt, thrift_type_enum_t expected)
{
/* Binary protocol list and set (5 bytes + elements):
@@ -1868,6 +1911,7 @@ dissect_thrift_binary_linear(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
int hf_num_item = -1;
int hf_vtype = hf_thrift_type;
int min_len = TBP_THRIFT_LINEAR_LEN;
+ guint nested_count = p_get_proto_depth(pinfo, proto_thrift);
/* Set the different hf_id & ett depending on effective type. */
switch (expected) {
@@ -1895,6 +1939,11 @@ dissect_thrift_binary_linear(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
ABORT_ON_INCOMPLETE_PDU(min_len);
/* Create the sub-tree. */
+ if (nested_count >= thrift_opt->nested_type_depth) {
+ expert_add_info(pinfo, proto_tree_get_parent(tree), &ei_thrift_too_many_subtypes);
+ return THRIFT_REQUEST_REASSEMBLY;
+ }
+ p_set_proto_depth(pinfo, proto_thrift, nested_count + 1);
container_pi = proto_tree_add_item(tree, hf_container, tvb, *offset, -1, ENC_NA);
sub_tree = proto_item_add_subtree(container_pi, ett);
@@ -1925,28 +1974,33 @@ dissect_thrift_binary_linear(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
}
proto_item_set_end(container_pi, tvb, *offset);
+ p_set_proto_depth(pinfo, proto_thrift, nested_count);
return *offset;
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_binary_list(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int *offset, thrift_option_data_t *thrift_opt)
{
return dissect_thrift_binary_linear(tvb, pinfo, tree, offset, thrift_opt, DE_THRIFT_T_LIST);
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_binary_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int *offset, thrift_option_data_t *thrift_opt)
{
return dissect_thrift_binary_linear(tvb, pinfo, tree, offset, thrift_opt, DE_THRIFT_T_SET);
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_binary_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int *offset, thrift_option_data_t *thrift_opt)
{
return dissect_thrift_binary_linear(tvb, pinfo, tree, offset, thrift_opt, DE_THRIFT_T_MAP);
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_binary_fields(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int *offset, thrift_option_data_t *thrift_opt)
{
/*
@@ -1992,6 +2046,7 @@ dissect_thrift_binary_fields(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_binary_struct(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int *offset, thrift_option_data_t *thrift_opt)
{
/* This function only creates the "Struct" sub-tree
@@ -1999,8 +2054,14 @@ dissect_thrift_binary_struct(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
*/
proto_tree *sub_tree;
proto_item *pi;
+ guint nested_count = p_get_proto_depth(pinfo, proto_thrift);
ABORT_ON_INCOMPLETE_PDU(TBP_THRIFT_STRUCT_LEN);
+ if (nested_count >= thrift_opt->nested_type_depth) {
+ expert_add_info(pinfo, proto_tree_get_parent(tree), &ei_thrift_too_many_subtypes);
+ return THRIFT_REQUEST_REASSEMBLY;
+ }
+ p_set_proto_depth(pinfo, proto_thrift, nested_count + 1);
pi = proto_tree_add_item(tree, hf_thrift_struct, tvb, *offset, -1, ENC_NA);
sub_tree = proto_item_add_subtree(pi, ett_thrift_struct);
@@ -2009,19 +2070,14 @@ dissect_thrift_binary_struct(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
} else {
proto_item_set_end(pi, tvb, *offset);
}
+ p_set_proto_depth(pinfo, proto_thrift, nested_count);
return *offset;
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_binary_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int *offset, thrift_option_data_t *thrift_opt, proto_tree *header_tree, int type, proto_item *type_pi)
{
- guint nested_count = p_get_proto_depth(pinfo, proto_thrift);
- if (++nested_count > thrift_opt->nested_type_depth) {
- expert_add_info(pinfo, proto_tree_get_parent(tree), &ei_thrift_too_many_subtypes);
- return THRIFT_REQUEST_REASSEMBLY;
- }
- p_set_proto_depth(pinfo, proto_thrift, nested_count);
-
switch (type) {
case DE_THRIFT_T_BOOL:
ABORT_ON_INCOMPLETE_PDU(TBP_THRIFT_BOOL_LEN);
@@ -2089,7 +2145,6 @@ dissect_thrift_binary_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
return THRIFT_REQUEST_REASSEMBLY;
}
- p_set_proto_depth(pinfo, proto_thrift, --nested_count);
return *offset;
}
/*=====END BINARY GENERIC DISSECTION=====*/
@@ -2156,6 +2211,7 @@ dissect_thrift_compact_binary(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_compact_list_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int *offset, thrift_option_data_t *thrift_opt, gboolean is_list)
{
/* Compact protocol list/set (short form, 1 byte):
@@ -2183,6 +2239,7 @@ dissect_thrift_compact_list_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
int hf_container = hf_thrift_set;
int hf_num_item = hf_thrift_num_set_item;
int hf_pos_item = hf_thrift_num_set_pos;
+ guint nested_count = p_get_proto_depth(pinfo, proto_thrift);
ABORT_ON_INCOMPLETE_PDU(TBP_THRIFT_TYPE_LEN);
/* Set the different hf_id & ett depending on effective type. */
@@ -2194,6 +2251,11 @@ dissect_thrift_compact_list_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
}
/* Create the sub-tree. */
+ if (nested_count >= thrift_opt->nested_type_depth) {
+ expert_add_info(pinfo, proto_tree_get_parent(tree), &ei_thrift_too_many_subtypes);
+ return THRIFT_REQUEST_REASSEMBLY;
+ }
+ p_set_proto_depth(pinfo, proto_thrift, nested_count + 1);
container_pi = proto_tree_add_item(tree, hf_container, tvb, *offset, -1, ENC_NA);
sub_tree = proto_item_add_subtree(container_pi, ett);
@@ -2244,22 +2306,26 @@ dissect_thrift_compact_list_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
}
proto_item_set_end(container_pi, tvb, *offset);
+ p_set_proto_depth(pinfo, proto_thrift, nested_count);
return *offset;
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_compact_list(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int *offset, thrift_option_data_t *thrift_opt)
{
return dissect_thrift_compact_list_set(tvb, pinfo, tree, offset, thrift_opt, TRUE);
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_compact_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int *offset, thrift_option_data_t *thrift_opt)
{
return dissect_thrift_compact_list_set(tvb, pinfo, tree, offset, thrift_opt, FALSE);
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_compact_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int *offset, thrift_option_data_t *thrift_opt)
{
/* Compact protocol map header (1 byte, empty map):
@@ -2284,9 +2350,15 @@ dissect_thrift_compact_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
guint32 types, ktype, vtype;
gint32 container_len, len_len, i;
guint64 varint;
+ guint nested_count = p_get_proto_depth(pinfo, proto_thrift);
ABORT_ON_INCOMPLETE_PDU(TCP_THRIFT_MIN_VARINT_LEN);
/* Create the sub-tree. */
+ if (nested_count >= thrift_opt->nested_type_depth) {
+ expert_add_info(pinfo, proto_tree_get_parent(tree), &ei_thrift_too_many_subtypes);
+ return THRIFT_REQUEST_REASSEMBLY;
+ }
+ p_set_proto_depth(pinfo, proto_thrift, nested_count + 1);
container_pi = proto_tree_add_item(tree, hf_thrift_map, tvb, *offset, -1, ENC_NA);
sub_tree = proto_item_add_subtree(container_pi, ett_thrift_map);
@@ -2338,10 +2410,12 @@ dissect_thrift_compact_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
proto_item_set_end(container_pi, tvb, *offset);
+ p_set_proto_depth(pinfo, proto_thrift, nested_count);
return *offset;
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_compact_fields(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int *offset, thrift_option_data_t *thrift_opt)
{
/*
@@ -2395,6 +2469,7 @@ dissect_thrift_compact_fields(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_compact_struct(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int *offset, thrift_option_data_t *thrift_opt)
{
/* This function only creates the "Struct" sub-tree
@@ -2402,8 +2477,14 @@ dissect_thrift_compact_struct(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
*/
proto_tree *sub_tree;
proto_item *pi;
+ guint nested_count = p_get_proto_depth(pinfo, proto_thrift);
ABORT_ON_INCOMPLETE_PDU(TCP_THRIFT_STRUCT_LEN);
+ if (nested_count >= thrift_opt->nested_type_depth) {
+ expert_add_info(pinfo, proto_tree_get_parent(tree), &ei_thrift_too_many_subtypes);
+ return THRIFT_REQUEST_REASSEMBLY;
+ }
+ p_set_proto_depth(pinfo, proto_thrift, nested_count + 1);
pi = proto_tree_add_item(tree, hf_thrift_struct, tvb, *offset, -1, ENC_NA);
sub_tree = proto_item_add_subtree(pi, ett_thrift_struct);
@@ -2412,6 +2493,7 @@ dissect_thrift_compact_struct(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
} else {
proto_item_set_end(pi, tvb, *offset);
}
+ p_set_proto_depth(pinfo, proto_thrift, nested_count);
return *offset;
}
@@ -2422,15 +2504,9 @@ dissect_thrift_compact_struct(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
* the bool type which is encoded in the same way as BOOL_FALSE (2).
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_thrift_compact_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int *offset, thrift_option_data_t *thrift_opt, proto_tree *header_tree, int type, proto_item *type_pi)
{
- guint nested_count = p_get_proto_depth(pinfo, proto_thrift);
- if (++nested_count > thrift_opt->nested_type_depth) {
- expert_add_info(pinfo, proto_tree_get_parent(tree), &ei_thrift_too_many_subtypes);
- return THRIFT_REQUEST_REASSEMBLY;
- }
- p_set_proto_depth(pinfo, proto_thrift, nested_count);
-
switch (type) {
case DE_THRIFT_C_BOOL_FALSE:
ABORT_ON_INCOMPLETE_PDU(TBP_THRIFT_BOOL_LEN);
@@ -2504,7 +2580,6 @@ dissect_thrift_compact_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
return THRIFT_REQUEST_REASSEMBLY;
}
- p_set_proto_depth(pinfo, proto_thrift, --nested_count);
return *offset;
}
/*=====END COMPACT GENERIC DISSECTION=====*/
diff --git a/epan/dissectors/packet-tls-utils.c b/epan/dissectors/packet-tls-utils.c
index c30d57f2..a2572b7b 100644
--- a/epan/dissectors/packet-tls-utils.c
+++ b/epan/dissectors/packet-tls-utils.c
@@ -1508,7 +1508,7 @@ const value_string tls_cert_status_type[] = {
};
/* Generated by tools/make-tls-ct-logids.py
- * Last-Modified Sun, 19 Nov 2023 13:18:00 GMT, 137 entries. */
+ * Last-Modified Sat, 27 Jan 2024 13:28:00 GMT, 138 entries. */
static const bytes_string ct_logids[] = {
{ (const uint8_t[]){
0xb2, 0x1e, 0x05, 0xcc, 0x8b, 0xa2, 0xcd, 0x8a, 0x20, 0x4e, 0x87,
@@ -2027,6 +2027,12 @@ static const bytes_string ct_logids[] = {
},
32, "Sectigo 'Mammoth2024h1'" },
{ (const uint8_t[]){
+ 0x50, 0x85, 0x01, 0x58, 0xdc, 0xb6, 0x05, 0x95, 0xc0, 0x0e, 0x92,
+ 0xa8, 0x11, 0x02, 0xec, 0xcd, 0xfe, 0x3f, 0x6b, 0x78, 0x58, 0x42,
+ 0x9f, 0x57, 0x98, 0x35, 0x38, 0xc9, 0xda, 0x52, 0x50, 0x63,
+ },
+ 32, "Sectigo 'Mammoth2024h1b'" },
+ { (const uint8_t[]){
0xdf, 0xe1, 0x56, 0xeb, 0xaa, 0x05, 0xaf, 0xb5, 0x9c, 0x0f, 0x86,
0x71, 0x8d, 0xa8, 0xc0, 0x32, 0x4e, 0xae, 0x56, 0xd9, 0x6e, 0xa7,
0xf5, 0xa5, 0x6a, 0x01, 0xd1, 0xc1, 0x3b, 0xbe, 0x52, 0x5c,
diff --git a/epan/dissectors/packet-tn5250.c b/epan/dissectors/packet-tn5250.c
index 52e58d3c..c799dade 100644
--- a/epan/dissectors/packet-tn5250.c
+++ b/epan/dissectors/packet-tn5250.c
@@ -4917,6 +4917,7 @@ dissect_tn5250_data_until_next_command(proto_tree *tn5250_tree, tvbuff_t *tvb, g
#endif
static guint32
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_outbound_stream(proto_tree *tn5250_tree, packet_info *pinfo, tvbuff_t *tvb, gint offset)
{
gint command_code;
@@ -4964,7 +4965,9 @@ dissect_outbound_stream(proto_tree *tn5250_tree, packet_info *pinfo, tvbuff_t *t
break;
case RESTORE_SCREEN:
while (tvb_reported_length_remaining(tvb, offset) > 0) {
+ increment_dissection_depth(pinfo);
offset += dissect_outbound_stream(cc_tree, pinfo, tvb, offset);
+ decrement_dissection_depth(pinfo);
}
break;
case WRITE_ERROR_CODE_TO_WINDOW:
diff --git a/epan/dissectors/packet-usb-hid.c b/epan/dissectors/packet-usb-hid.c
index afd4bfd8..9a402ee8 100644
--- a/epan/dissectors/packet-usb-hid.c
+++ b/epan/dissectors/packet-usb-hid.c
@@ -4330,6 +4330,7 @@ dissect_usb_hid_report_localitem_data(packet_info *pinfo, proto_tree *tree, tvbu
/* Dissector for individual HID report items. Recursive. */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_usb_hid_report_item(packet_info *pinfo _U_, proto_tree *parent_tree, tvbuff_t *tvb, int offset, usb_conv_info_t *usb_conv_info _U_, const struct usb_hid_global_state *global)
{
proto_item *subitem;
@@ -4409,7 +4410,9 @@ dissect_usb_hid_report_item(packet_info *pinfo _U_, proto_tree *parent_tree, tvb
if (bType == USBHID_ITEMTYPE_MAIN) {
if (bTag == USBHID_MAINITEM_TAG_COLLECTION) {
/* Begin collection, nest following elements under us */
+ increment_dissection_depth(pinfo);
offset = dissect_usb_hid_report_item(pinfo, subtree, tvb, offset, usb_conv_info, &cur_global);
+ decrement_dissection_depth(pinfo);
proto_item_set_len(subitem, offset-old_offset);
} else if (bTag == USBHID_MAINITEM_TAG_ENDCOLLECTION) {
/* End collection, break out to parent tree item */
diff --git a/epan/dissectors/packet-usb-video.c b/epan/dissectors/packet-usb-video.c
index 5e9d632c..42aaf0b6 100644
--- a/epan/dissectors/packet-usb-video.c
+++ b/epan/dissectors/packet-usb-video.c
@@ -1582,8 +1582,9 @@ get_control_selector_values(guint8 entity_id, usb_conv_info_t *usb_conv_info)
video_entity_t *entity = NULL;
value_string_ext *selectors = NULL;
- if (usb_conv_info == NULL)
+ if (usb_conv_info == NULL || usb_conv_info->class_data_type != USB_CONV_VIDEO) {
return NULL;
+ }
video_conv_info = (video_conv_info_t *)usb_conv_info->class_data;
if (video_conv_info)
diff --git a/epan/dissectors/packet-vp9.c b/epan/dissectors/packet-vp9.c
index cab0ad31..7f34fafd 100644
--- a/epan/dissectors/packet-vp9.c
+++ b/epan/dissectors/packet-vp9.c
@@ -235,7 +235,7 @@ dissect_vp9(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree _U_, void *data
V: | N_S |Y|G|-|-|-|
+-+-+-+-+-+-+-+-+
*/
- guint8 n_s = tvb_get_guint8(tvb, offset) & (VP9_3_BITS_MASK);
+ guint8 n_s = (tvb_get_guint8(tvb, offset) & (VP9_3_BITS_MASK)) >> 5;
guint8 y = tvb_get_guint8(tvb, offset) & (VP9_1_BIT_MASK >> 3);
guint8 g = tvb_get_guint8(tvb, offset) & (VP9_1_BIT_MASK >> 4);
proto_tree_add_item(vp9_descriptor_tree, hf_vp9_pld_n_s_bits, tvb, offset, 1, ENC_BIG_ENDIAN);
diff --git a/epan/dissectors/packet-wassp.c b/epan/dissectors/packet-wassp.c
index 7b78b353..595bf021 100644
--- a/epan/dissectors/packet-wassp.c
+++ b/epan/dissectors/packet-wassp.c
@@ -4736,6 +4736,7 @@ static int decode_lbs_tag_header(proto_tree *tree, tvbuff_t *tvb, int offset)
+// NOLINTNEXTLINE(misc-no-recursion)
int dissect_wassp_sub_tlv(proto_tree *wassp_tree, tvbuff_t *tvb, packet_info *pinfo, int offset, int in_len, int which_tab, int ru_msg_type)
{
proto_item *tlvi;
@@ -4921,9 +4922,11 @@ int dissect_wassp_sub_tlv(proto_tree *wassp_tree, tvbuff_t *tvb, packet_info *pi
tableNo = WASSP_SUBTLV_GET_ENTRY_IDX_TABIDX(tmp_decr, tlv_type);
if ((tableNo == RADIO_CONFIG_BLOCK) && (ru_msg_type == WASSP_RU_Ack))
{
+ // We recurse here, but we'll run out of packet before we run out of stack.
offset = dissect_wassp_sub_tlv(tmp_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_RU_ACK_RADIO_CONFIG, ru_msg_type);
}
else
+ // We recurse here, but we'll run out of packet before we run out of stack.
offset = dissect_wassp_sub_tlv(tmp_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, tableNo, ru_msg_type);
}
diff --git a/epan/dissectors/packet-windows-common.c b/epan/dissectors/packet-windows-common.c
index 1ccba706..b591d8d8 100644
--- a/epan/dissectors/packet-windows-common.c
+++ b/epan/dissectors/packet-windows-common.c
@@ -1980,7 +1980,8 @@ dissect_nt_ace_system_resource_attribute(tvbuff_t *tvb, int offset, guint16 size
/* Dissect Condition ACE token, see [MS-DTYP] v20180912 section 2.4.4.17.4 */
static int
-dissect_nt_conditional_ace_token(tvbuff_t *tvb, int offset, guint16 size, proto_tree *parent_tree)
+// NOLINTNEXTLINE(misc-no-recursion)
+dissect_nt_conditional_ace_token(tvbuff_t *tvb, packet_info *pinfo, int offset, guint16 size, proto_tree *parent_tree)
{
int start_offset = offset;
proto_tree *tree = parent_tree;
@@ -2092,8 +2093,11 @@ dissect_nt_conditional_ace_token(tvbuff_t *tvb, int offset, guint16 size, proto_
int remaining = size - (offset - start_offset);
if (remaining >= (int)len) {
int end_offset = offset + len;
- while (offset < end_offset)
- offset = dissect_nt_conditional_ace_token(tvb, offset, remaining, tree);
+ increment_dissection_depth(pinfo);
+ while (offset < end_offset) {
+ offset = dissect_nt_conditional_ace_token(tvb, pinfo, offset, remaining, tree);
+ }
+ decrement_dissection_depth(pinfo);
} else {
/* malformed: composite len is longer
* than the remaining data in the ace
@@ -2161,7 +2165,7 @@ dissect_nt_conditional_ace_token(tvbuff_t *tvb, int offset, guint16 size, proto_
/* Dissect Conditional ACE (if present), see [MS-DTYP] v20180912 section 2.4.4.17.4 */
static int
-dissect_nt_conditional_ace(tvbuff_t *tvb, int offset, guint16 size, proto_tree *parent_tree)
+dissect_nt_conditional_ace(tvbuff_t *tvb, packet_info *pinfo, int offset, guint16 size, proto_tree *parent_tree)
{
int start_offset = offset;
@@ -2183,7 +2187,7 @@ dissect_nt_conditional_ace(tvbuff_t *tvb, int offset, guint16 size, proto_tree *
remaining = size - (offset - start_offset);
if (remaining <= 0)
break;
- offset = dissect_nt_conditional_ace_token(tvb, offset, remaining, parent_tree);
+ offset = dissect_nt_conditional_ace_token(tvb, pinfo, offset, remaining, parent_tree);
}
}
}
@@ -2746,7 +2750,7 @@ dissect_nt_v2_ace(tvbuff_t *tvb, int offset, packet_info *pinfo,
case ACE_TYPE_ACCESS_DENIED_CALLBACK_OBJECT:
case ACE_TYPE_SYSTEM_AUDIT_CALLBACK:
case ACE_TYPE_SYSTEM_AUDIT_CALLBACK_OBJECT:
- dissect_nt_conditional_ace(tvb, offset, data_size, tree);
+ dissect_nt_conditional_ace(tvb, pinfo, offset, data_size, tree);
break;
case ACE_TYPE_SYSTEM_RESOURCE_ATTRIBUTE:
diff --git a/epan/dissectors/packet-wlccp.c b/epan/dissectors/packet-wlccp.c
index 9fe1a946..6b20011c 100644
--- a/epan/dissectors/packet-wlccp.c
+++ b/epan/dissectors/packet-wlccp.c
@@ -1795,6 +1795,7 @@ static guint dissect_wlccp_mip_msg(proto_tree *_tree _U_, tvbuff_t *_tvb _U_, gu
/***************************************************************************************************/
+// NOLINTNEXTLINE(misc-no-recursion)
static guint dissect_wlccp_tlvs( proto_tree *_tree, tvbuff_t *_tvb, guint _offset, guint _depth)
{
@@ -1993,6 +1994,7 @@ static guint dissect_wlccp_tlvs( proto_tree *_tree, tvbuff_t *_tvb, guint _offse
while (_offset < _tlv_end)
{
_old_offset = _offset;
+ // We recurse here, but we'll run out of packet before we run out of stack.
_offset = dissect_wlccp_tlvs(_tlv_tree, _tvb, _offset, _depth++);
DISSECTOR_ASSERT(_offset > _old_offset);
} /* while bytes_left >= 4*/
diff --git a/epan/dissectors/packet-wow.c b/epan/dissectors/packet-wow.c
index c6725341..80aa430d 100644
--- a/epan/dissectors/packet-wow.c
+++ b/epan/dissectors/packet-wow.c
@@ -460,7 +460,6 @@ parse_logon_reconnect_challenge_server_to_client(tvbuff_t *tvb, proto_tree *wow_
static void
parse_logon_challenge_client_to_server(packet_info *pinfo, tvbuff_t *tvb, proto_tree *wow_tree, guint32 offset) {
guint8 srp_i_len;
- char buffer[5];
gchar *string;
proto_tree_add_item(wow_tree, hf_wow_protocol_version, tvb,
@@ -471,10 +470,16 @@ parse_logon_challenge_client_to_server(packet_info *pinfo, tvbuff_t *tvb, proto_
tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
- tvb_get_raw_bytes_as_string(tvb, offset, buffer, 5);
- string = get_ascii_string(pinfo->pool, g_strreverse(buffer), 4);
+ string = tvb_get_string_enc(pinfo->pool, tvb, offset, 4, ENC_ASCII);
+ /* g_utf8_strreverse handles the REPLACMENT CHARACTERs.
+ * It would handle embedded NULs correctly if we passed in the
+ * byte length after conversion, but we need to change the API
+ * to use counted strings in more places.
+ */
+ string = g_utf8_strreverse(string, -1);
proto_tree_add_string(wow_tree, hf_wow_gamename,
tvb, offset, 4, string);
+ g_free(string);
offset += 4;
@@ -498,22 +503,25 @@ parse_logon_challenge_client_to_server(packet_info *pinfo, tvbuff_t *tvb, proto_
offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
- tvb_get_raw_bytes_as_string(tvb, offset, buffer, 5);
- string = get_ascii_string(pinfo->pool, g_strreverse(buffer), 4);
+ string = tvb_get_string_enc(pinfo->pool, tvb, offset, 4, ENC_ASCII);
+ string = g_utf8_strreverse(string, -1);
proto_tree_add_string(wow_tree, hf_wow_platform,
tvb, offset, 4, string);
+ g_free(string);
offset += 4;
- tvb_get_raw_bytes_as_string(tvb, offset, buffer, 5);
- string = get_ascii_string(pinfo->pool, g_strreverse(buffer), 4);
+ string = tvb_get_string_enc(pinfo->pool, tvb, offset, 4, ENC_ASCII);
+ string = g_utf8_strreverse(string, -1);
proto_tree_add_string(wow_tree, hf_wow_os, tvb,
offset, 4, string);
+ g_free(string);
offset += 4;
- tvb_get_raw_bytes_as_string(tvb, offset, buffer, 5);
- string = get_ascii_string(pinfo->pool, g_strreverse(buffer), 4);
+ string = tvb_get_string_enc(pinfo->pool, tvb, offset, 4, ENC_ASCII);
+ string = g_utf8_strreverse(string, -1);
proto_tree_add_string(wow_tree, hf_wow_country,
tvb, offset, 4, string);
+ g_free(string);
offset += 4;
proto_tree_add_item(wow_tree,
diff --git a/epan/dissectors/packet-wtp.c b/epan/dissectors/packet-wtp.c
index 5a46af12..bda20ab7 100644
--- a/epan/dissectors/packet-wtp.c
+++ b/epan/dissectors/packet-wtp.c
@@ -287,6 +287,7 @@ wtp_handle_tpi(proto_tree *tree, tvbuff_t *tvb)
/* Code to actually dissect the packets */
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_wtp_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
char *szInfo;
@@ -359,6 +360,7 @@ dissect_wtp_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
/* Skip the length field for the WTP sub-tvb */
wtp_tvb = tvb_new_subset_length(tvb, offCur + c_fieldlen, c_pdulen);
+ // We recurse here, but we'll run out of packet before we run out of stack.
dissect_wtp_common(wtp_tvb, pinfo, wtp_tree);
offCur += c_fieldlen + c_pdulen;
i++;
diff --git a/epan/dissectors/packet-x11.c b/epan/dissectors/packet-x11.c
index c4dcf9b4..1c520cde 100644
--- a/epan/dissectors/packet-x11.c
+++ b/epan/dissectors/packet-x11.c
@@ -3689,32 +3689,24 @@ static void dissect_x11_request(tvbuff_t *tvb, packet_info *pinfo,
case X_ConfigureWindow:
{
guint16 bitmask16;
- static int * const window_attributes_flags[] = {
- &hf_x11_window_value_mask_background_pixmap,
- &hf_x11_window_value_mask_background_pixel,
- &hf_x11_window_value_mask_border_pixmap,
- &hf_x11_window_value_mask_border_pixel,
- &hf_x11_window_value_mask_bit_gravity,
- &hf_x11_window_value_mask_win_gravity,
- &hf_x11_window_value_mask_backing_store,
- &hf_x11_window_value_mask_backing_planes,
- &hf_x11_window_value_mask_backing_pixel,
- &hf_x11_window_value_mask_override_redirect,
- &hf_x11_window_value_mask_save_under,
- &hf_x11_window_value_mask_event_mask,
- &hf_x11_window_value_mask_do_not_propagate_mask,
- &hf_x11_window_value_mask_colormap,
- &hf_x11_window_value_mask_cursor,
+ static int * const configure_window_mask_flags[] = {
+ &hf_x11_configure_window_mask_x,
+ &hf_x11_configure_window_mask_y,
+ &hf_x11_configure_window_mask_width,
+ &hf_x11_configure_window_mask_height,
+ &hf_x11_configure_window_mask_border_width,
+ &hf_x11_configure_window_mask_sibling,
+ &hf_x11_configure_window_mask_stack_mode,
NULL
};
proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
*offsetp += 1;
requestLength(tvb, offsetp, t, byte_order);
- proto_tree_add_item(t, hf_x11_window, tvb, *offsetp, 1, byte_order);
+ proto_tree_add_item(t, hf_x11_window, tvb, *offsetp, 4, byte_order);
*offsetp += 4;
bitmask16 = tvb_get_guint16(tvb, *offsetp, byte_order);
- proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_configure_window_mask, ett_x11_configure_window_mask, window_attributes_flags, byte_order);
+ proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_configure_window_mask, ett_x11_configure_window_mask, configure_window_mask_flags, byte_order);
*offsetp += 2;
proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
*offsetp += 2;
diff --git a/epan/dissectors/packet-x509if.c b/epan/dissectors/packet-x509if.c
index 31cf56d7..25bed90c 100644
--- a/epan/dissectors/packet-x509if.c
+++ b/epan/dissectors/packet-x509if.c
@@ -316,7 +316,6 @@ x509if_frame_end(void)
/*int dissect_x509if_AttributeCombination(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);*/
-#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.
static int
@@ -1048,16 +1047,15 @@ static const ber_choice_t Refinement_choice[] = {
int
dissect_x509if_Refinement(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 3;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // Refinement → Refinement/and → Refinement
+ actx->pinfo->dissection_depth += 2;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
Refinement_choice, hf_index, ett_x509if_Refinement,
NULL);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 2;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -1493,16 +1491,15 @@ static const ber_choice_t ContextCombination_choice[] = {
int
dissect_x509if_ContextCombination(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 3;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // ContextCombination → ContextCombination/and → ContextCombination
+ actx->pinfo->dissection_depth += 2;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
ContextCombination_choice, hf_index, ett_x509if_ContextCombination,
NULL);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 2;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -1618,16 +1615,15 @@ static const ber_choice_t AttributeCombination_choice[] = {
int
dissect_x509if_AttributeCombination(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 3;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // AttributeCombination → AttributeCombination/and → AttributeCombination
+ actx->pinfo->dissection_depth += 2;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
AttributeCombination_choice, hf_index, ett_x509if_AttributeCombination,
NULL);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 2;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-x509sat.c b/epan/dissectors/packet-x509sat.c
index 6704d950..260e1d5f 100644
--- a/epan/dissectors/packet-x509sat.c
+++ b/epan/dissectors/packet-x509sat.c
@@ -258,7 +258,6 @@ static gint ett_x509sat_LocaleContextSyntax = -1;
/*int dissect_x509sat_Criteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);*/
-#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.
static int
@@ -433,16 +432,15 @@ static const ber_choice_t Criteria_choice[] = {
int
dissect_x509sat_Criteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 3;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // Criteria → Criteria/and → Criteria
+ actx->pinfo->dissection_depth += 2;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
Criteria_choice, hf_index, ett_x509sat_Criteria,
NULL);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 2;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-x75.c b/epan/dissectors/packet-x75.c
index 82386795..df491b5c 100644
--- a/epan/dissectors/packet-x75.c
+++ b/epan/dissectors/packet-x75.c
@@ -232,8 +232,6 @@ void
proto_reg_handoff_x75(void)
{
data_handle = find_dissector("data");
-
- dissector_add_uint("wtap_encap", WTAP_ENCAP_LAPB, x75_handle);
}
/*
diff --git a/epan/dissectors/packet-xml.c b/epan/dissectors/packet-xml.c
index a2edca83..e7a7a960 100644
--- a/epan/dissectors/packet-xml.c
+++ b/epan/dissectors/packet-xml.c
@@ -1119,6 +1119,7 @@ static gchar *fully_qualified_name(GPtrArray *hier, gchar *name, gchar *proto_na
}
+// NOLINTNEXTLINE(misc-no-recursion)
static xml_ns_t *make_xml_hier(gchar *elem_name,
xml_ns_t *root,
wmem_map_t *elements,
@@ -1145,6 +1146,11 @@ static xml_ns_t *make_xml_hier(gchar *elem_name,
return NULL;
}
+ if (hier->len >= prefs.gui_max_tree_depth) {
+ g_string_append_printf(error, "hierarchy too deep: %u\n", hier->len);
+ return NULL;
+ }
+
for (i = 0; i < hier->len; i++) {
if( (elem_name) && (strcmp(elem_name, (gchar *) g_ptr_array_index(hier, i) ) == 0 )) {
recurred = TRUE;
diff --git a/epan/dissectors/packet-xmpp-utils.c b/epan/dissectors/packet-xmpp-utils.c
index 1f095a76..d8c6cf2c 100644
--- a/epan/dissectors/packet-xmpp-utils.c
+++ b/epan/dissectors/packet-xmpp-utils.c
@@ -189,6 +189,7 @@ xmpp_ibb_session_track(packet_info *pinfo, xmpp_element_t *packet, xmpp_conv_inf
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
xmpp_unknown_items(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, xmpp_element_t *element, guint level)
{
GList *childs = element->elements;
@@ -522,10 +523,11 @@ xmpp_element_t_cleanup(void* userdata)
Function converts xml_frame_t structure to xmpp_element_t (simpler representation)
*/
xmpp_element_t*
-xmpp_xml_frame_to_element_t(wmem_allocator_t *pool, xml_frame_t *xml_frame, xmpp_element_t *parent, tvbuff_t *tvb)
+// NOLINTNEXTLINE(misc-no-recursion)
+xmpp_xml_frame_to_element_t(packet_info *pinfo, xml_frame_t *xml_frame, xmpp_element_t *parent, tvbuff_t *tvb)
{
xml_frame_t *child;
- xmpp_element_t *node = wmem_new0(pool, xmpp_element_t);
+ xmpp_element_t *node = wmem_new0(pinfo->pool, xmpp_element_t);
tvbparse_t* tt;
tvbparse_elem_t* elem;
@@ -536,7 +538,7 @@ xmpp_xml_frame_to_element_t(wmem_allocator_t *pool, xml_frame_t *xml_frame, xmpp
node->was_read = FALSE;
node->default_ns_abbrev = NULL;
- node->name = wmem_strdup(pool, xml_frame->name_orig_case);
+ node->name = wmem_strdup(pinfo->pool, xml_frame->name_orig_case);
node->offset = 0;
node->length = 0;
@@ -558,11 +560,11 @@ xmpp_xml_frame_to_element_t(wmem_allocator_t *pool, xml_frame_t *xml_frame, xmpp
*/
CLEANUP_PUSH(xmpp_element_t_cleanup, node);
- tt = tvbparse_init(pool, tvb,node->offset,-1,NULL,want_ignore);
+ tt = tvbparse_init(pinfo->pool, tvb,node->offset,-1,NULL,want_ignore);
if((elem = tvbparse_get(tt,want_stream_end_with_ns))!=NULL)
{
- node->default_ns_abbrev = tvb_get_string_enc(pool, elem->sub->tvb, elem->sub->offset, elem->sub->len, ENC_ASCII);
+ node->default_ns_abbrev = tvb_get_string_enc(pinfo->pool, elem->sub->tvb, elem->sub->offset, elem->sub->len, ENC_ASCII);
}
child = xml_frame->first_child;
@@ -577,21 +579,21 @@ xmpp_xml_frame_to_element_t(wmem_allocator_t *pool, xml_frame_t *xml_frame, xmpp
gchar *value = NULL;
const gchar *xmlns_needle = NULL;
- xmpp_attr_t *attr = wmem_new(pool, xmpp_attr_t);
+ xmpp_attr_t *attr = wmem_new(pinfo->pool, xmpp_attr_t);
attr->length = 0;
attr->offset = 0;
attr->was_read = FALSE;
if (child->value != NULL) {
l = tvb_reported_length(child->value);
- value = (gchar *)wmem_alloc0(pool, l + 1);
+ value = (gchar *)wmem_alloc0(pinfo->pool, l + 1);
tvb_memcpy(child->value, value, 0, l);
}
attr->offset = child->start_offset;
attr->length = child->length;
attr->value = value;
- attr->name = wmem_strdup(pool, child->name_orig_case);
+ attr->name = wmem_strdup(pinfo->pool, child->name_orig_case);
g_hash_table_insert(node->attrs,(gpointer)attr->name,(gpointer)attr);
@@ -602,10 +604,10 @@ xmpp_xml_frame_to_element_t(wmem_allocator_t *pool, xml_frame_t *xml_frame, xmpp
{
if(attr->name[5] == ':' && strlen(attr->name) > 6)
{
- g_hash_table_insert(node->namespaces, (gpointer)wmem_strdup(pool, &attr->name[6]), (gpointer)wmem_strdup(pool, attr->value));
+ g_hash_table_insert(node->namespaces, (gpointer)wmem_strdup(pinfo->pool, &attr->name[6]), (gpointer)wmem_strdup(pinfo->pool, attr->value));
} else if(attr->name[5] == '\0')
{
- g_hash_table_insert(node->namespaces, (gpointer)"", (gpointer)wmem_strdup(pool, attr->value));
+ g_hash_table_insert(node->namespaces, (gpointer)"", (gpointer)wmem_strdup(pinfo->pool, attr->value));
}
}
@@ -617,13 +619,13 @@ xmpp_xml_frame_to_element_t(wmem_allocator_t *pool, xml_frame_t *xml_frame, xmpp
gint l;
gchar* value = NULL;
- data = wmem_new(pool, xmpp_data_t);
+ data = wmem_new(pinfo->pool, xmpp_data_t);
data->length = 0;
data->offset = 0;
if (child->value != NULL) {
l = tvb_reported_length(child->value);
- value = (gchar *)wmem_alloc0(pool, l + 1);
+ value = (gchar *)wmem_alloc0(pinfo->pool, l + 1);
tvb_memcpy(child->value, value, 0, l);
}
@@ -635,7 +637,9 @@ xmpp_xml_frame_to_element_t(wmem_allocator_t *pool, xml_frame_t *xml_frame, xmpp
}
} else
{
- node->elements = g_list_append(node->elements,(gpointer)xmpp_xml_frame_to_element_t(pool, child, node,tvb));
+ increment_dissection_depth(pinfo);
+ node->elements = g_list_append(node->elements,(gpointer)xmpp_xml_frame_to_element_t(pinfo, child, node,tvb));
+ decrement_dissection_depth(pinfo);
}
child = child->next_sibling;
@@ -647,6 +651,7 @@ xmpp_xml_frame_to_element_t(wmem_allocator_t *pool, xml_frame_t *xml_frame, xmpp
}
void
+// NOLINTNEXTLINE(misc-no-recursion)
xmpp_element_t_tree_free(xmpp_element_t *root)
{
GList *childs = root->elements;
@@ -658,6 +663,7 @@ xmpp_element_t_tree_free(xmpp_element_t *root)
{
xmpp_element_t *child = (xmpp_element_t *)childs->data;
+ // Our depth should be limited by the check in xmpp_xml_frame_to_element_t
xmpp_element_t_tree_free(child);
childs = childs->next;
}
diff --git a/epan/dissectors/packet-xmpp-utils.h b/epan/dissectors/packet-xmpp-utils.h
index 34214086..cf54f9f5 100644
--- a/epan/dissectors/packet-xmpp-utils.h
+++ b/epan/dissectors/packet-xmpp-utils.h
@@ -158,7 +158,7 @@ extern void xmpp_simple_cdata_elem(proto_tree *tree, tvbuff_t *tvb, packet_info
/** Converts xml_frame_t struct to xmpp_element_t. Should be call with parent==NULL.
*/
-extern xmpp_element_t* xmpp_xml_frame_to_element_t(wmem_allocator_t *pool, xml_frame_t *xml_frame, xmpp_element_t *parent, tvbuff_t *tvb);
+extern xmpp_element_t* xmpp_xml_frame_to_element_t(packet_info *pinfo, xml_frame_t *xml_frame, xmpp_element_t *parent, tvbuff_t *tvb);
/** Frees all GLib structs in xmpp_element_t struct. Should be call only for root element.
* It works recursively.
diff --git a/epan/dissectors/packet-xmpp.c b/epan/dissectors/packet-xmpp.c
index 08cd1748..7bc9bd47 100644
--- a/epan/dissectors/packet-xmpp.c
+++ b/epan/dissectors/packet-xmpp.c
@@ -479,7 +479,7 @@ dissect_xmpp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
while(xml_frame)
{
- packet = xmpp_xml_frame_to_element_t(pinfo->pool, xml_frame, NULL, tvb);
+ packet = xmpp_xml_frame_to_element_t(pinfo, xml_frame, NULL, tvb);
DISSECTOR_ASSERT(packet);
CLEANUP_PUSH(cleanup_xmpp, packet);
diff --git a/epan/dissectors/packet-yami.c b/epan/dissectors/packet-yami.c
index eaa2e757..539350df 100644
--- a/epan/dissectors/packet-yami.c
+++ b/epan/dissectors/packet-yami.c
@@ -83,6 +83,7 @@ static int ett_yami_msg_data = -1;
static int ett_yami_param = -1;
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_yami_parameter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, proto_item *par_ti)
{
const int orig_offset = offset;
@@ -364,7 +365,9 @@ dissect_yami_parameter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
proto_item_append_text(ti, ", Type: nested, %u parameters: ", count);
for (i = 0; i < count; i++) {
+ increment_dissection_depth(pinfo);
offset = dissect_yami_parameter(tvb, pinfo, yami_param, offset, ti);
+ decrement_dissection_depth(pinfo);
/* smth went wrong */
if (offset == -1)
return -1;
diff --git a/epan/dissectors/packet-z3950.c b/epan/dissectors/packet-z3950.c
index dda2a489..417481f1 100644
--- a/epan/dissectors/packet-z3950.c
+++ b/epan/dissectors/packet-z3950.c
@@ -2070,7 +2070,6 @@ static int dissect_z3950_ElementInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, i
static int dissect_z3950_TaggedElement(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.
static int
@@ -3032,16 +3031,15 @@ static const ber_choice_t RPNStructure_choice[] = {
static int
dissect_z3950_RPNStructure(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 3;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // RPNStructure → RPNStructure/rpnRpnOp → RPNStructure
+ actx->pinfo->dissection_depth += 2;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
RPNStructure_choice, hf_index, ett_z3950_RPNStructure,
NULL);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 2;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -6543,15 +6541,14 @@ static const ber_sequence_t ElementInfo_sequence[] = {
static int
dissect_z3950_ElementInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 4;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // ElementInfo → ElementDataType → ElementDataType/structured → ElementInfo
+ actx->pinfo->dissection_depth += 3;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
ElementInfo_sequence, hf_index, ett_z3950_ElementInfo);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 3;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
@@ -8024,15 +8021,14 @@ static const ber_sequence_t TaggedElement_sequence[] = {
static int
dissect_z3950_TaggedElement(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = 4;
- unsigned recursion_depth = p_get_proto_depth(actx->pinfo, proto_id);
- DISSECTOR_ASSERT(recursion_depth <= MAX_RECURSION_DEPTH);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth + cycle_size);
+ // TaggedElement → ElementData → ElementData/subtree → TaggedElement
+ actx->pinfo->dissection_depth += 3;
+ increment_dissection_depth(actx->pinfo);
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
TaggedElement_sequence, hf_index, ett_z3950_TaggedElement);
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ actx->pinfo->dissection_depth -= 3;
+ decrement_dissection_depth(actx->pinfo);
return offset;
}
diff --git a/epan/dissectors/packet-zbee-nwk-gp.c b/epan/dissectors/packet-zbee-nwk-gp.c
index 5d6e8276..25dc8e03 100644
--- a/epan/dissectors/packet-zbee-nwk-gp.c
+++ b/epan/dissectors/packet-zbee-nwk-gp.c
@@ -1502,8 +1502,11 @@ static guint
dissect_zbee_nwk_gp_cmd_move_up_down(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
zbee_nwk_green_power_packet *packet _U_, guint offset)
{
- proto_tree_add_item(tree, hf_zbee_nwk_gp_cmd_move_up_down_rate, tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
+ /* Optional rate field. */
+ if (tvb_reported_length(tvb) - offset >= 1) {
+ proto_tree_add_item(tree, hf_zbee_nwk_gp_cmd_move_up_down_rate, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ offset += 1;
+ }
return offset;
} /* dissect_zbee_nwk_gp_cmd_move_up_down */
@@ -1549,8 +1552,11 @@ dissect_zbee_nwk_gp_cmd_step_up_down(tvbuff_t *tvb, packet_info *pinfo _U_, prot
{
proto_tree_add_item(tree, hf_zbee_nwk_gp_cmd_step_up_down_step_size, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset += 1;
- proto_tree_add_item(tree, hf_zbee_nwk_gp_cmd_step_up_down_transition_time, tvb, offset, 2, ENC_LITTLE_ENDIAN);
- offset += 2;
+ /* Optional time field. */
+ if (tvb_reported_length(tvb) - offset >= 2) {
+ proto_tree_add_item(tree, hf_zbee_nwk_gp_cmd_step_up_down_transition_time, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset += 2;
+ }
return offset;
} /* dissect_zbee_nwk_gp_cmd_step_up_down */
diff --git a/epan/dissectors/packet-zbee-zcl.c b/epan/dissectors/packet-zbee-zcl.c
index f9bd5f64..a4a11e4f 100644
--- a/epan/dissectors/packet-zbee-zcl.c
+++ b/epan/dissectors/packet-zbee-zcl.c
@@ -1991,6 +1991,7 @@ static void dissect_zcl_attr_data_general(tvbuff_t *tvb, proto_tree *tree, guint
*@param offset into the tvb to begin dissection.
*@param client_attr ZCL client
*/
+// NOLINTNEXTLINE(misc-no-recursion)
void dissect_zcl_attr_data(tvbuff_t *tvb, proto_tree *tree, guint *offset, guint data_type, gboolean client_attr)
{
guint attr_uint;
@@ -2004,6 +2005,7 @@ void dissect_zcl_attr_data(tvbuff_t *tvb, proto_tree *tree, guint *offset, guint
nstime_t attr_time;
/* Dissect attribute data type and data */
+ // We can recurse here, but we should run out of packet before we run out of stack.
switch ( data_type ) {
case ZBEE_ZCL_NO_DATA:
break;
@@ -2416,6 +2418,7 @@ guint dissect_zcl_attr_uint8(tvbuff_t *tvb, proto_tree *tree, guint *offset, int
*@param client_attr ZCL client
*/
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_zcl_array_type(tvbuff_t *tvb, proto_tree *tree, guint *offset, guint8 elements_type, guint16 elements_num, gboolean client_attr)
{
proto_tree *sub_tree;
@@ -2457,6 +2460,7 @@ dissect_zcl_array_type(tvbuff_t *tvb, proto_tree *tree, guint *offset, guint8 el
*@param client_attr ZCL client
*/
static void
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_zcl_set_type(tvbuff_t *tvb, proto_tree *tree, guint *offset, guint8 elements_type, guint16 elements_num, gboolean client_attr)
{
proto_tree *sub_tree;
diff --git a/epan/dissectors/usb.c b/epan/dissectors/usb.c
index 0c2283f4..1f830e38 100644
--- a/epan/dissectors/usb.c
+++ b/epan/dissectors/usb.c
@@ -37,6 +37,7 @@ static const value_string usb_vendors_vals[] = {
{ 0x0003, "Club Mac" },
{ 0x0004, "Nebraska Furniture Mart" },
{ 0x0011, "Unknown" },
+ { 0x001f, "Walmart" },
{ 0x0040, "Anyware Corporation" },
{ 0x0042, "DMT" },
{ 0x0053, "Planex" },
@@ -1226,6 +1227,7 @@ static const value_string usb_vendors_vals[] = {
{ 0x0a2c, "AK-Modul-Bus Computer GmbH" },
{ 0x0a34, "TG3 Electronics, Inc." },
{ 0x0a35, "Radikal Technologies" },
+ { 0x0a38, "IRIS sa" },
{ 0x0a39, "Gilat Satellite Networks, Ltd" },
{ 0x0a3a, "PentaMedia Co., Ltd" },
{ 0x0a3c, "NTT DoCoMo, Inc." },
@@ -3463,6 +3465,7 @@ static const value_string usb_products_vals[] = {
{ 0x00020002, "passport00" },
{ 0x00027007, "HPRT XT300" },
{ 0x00117788, "counterfeit flash drive" },
+ { 0x001f0b21, "AB13X Headset Adapter" },
{ 0x0040073d, "Mini Multimedia 2.4GHz Wireless Keyboard with Touch Pad" },
{ 0x00535301, "GW-US54ZGL 802.11bg" },
{ 0x00780006, "Joystick" },
@@ -3608,6 +3611,7 @@ static const value_string usb_products_vals[] = {
{ 0x03f00012, "DeskJet 1125C Printer Port" },
{ 0x03f00024, "KU-0316 Keyboard" },
{ 0x03f0002a, "LaserJet P1102" },
+ { 0x03f00036, "CCID Smartcard Keyboard KUS0133" },
{ 0x03f00053, "DeskJet 2620 All-in-One Printer" },
{ 0x03f00101, "ScanJet 4100c" },
{ 0x03f00102, "PhotoSmart S20" },
@@ -4175,9 +4179,9 @@ static const value_string usb_products_vals[] = {
{ 0x03f3008c, "AVC-2310 Device" },
{ 0x03f30094, "eHome Infrared Receiver" },
{ 0x03f3009b, "AVC-1410 GameBridge TV NTSC" },
- { 0x03f32000, "USBXchange" },
+ { 0x03f32000, "USBXchange Firmware Loader" },
{ 0x03f32001, "USBXchange Adapter" },
- { 0x03f32002, "USB2-Xchange" },
+ { 0x03f32002, "USB2-Xchange Firmware Loader" },
{ 0x03f32003, "USB2-Xchange Adapter" },
{ 0x03f34000, "4-port hub" },
{ 0x03f3adcc, "Composite Device Support" },
@@ -4233,6 +4237,9 @@ static const value_string usb_products_vals[] = {
{ 0x0403601f, "FT601 32-bit FIFO IC" },
{ 0x04036ee0, "EZO Carrier Board" },
{ 0x04036f70, "HB-RF-USB" },
+ { 0x04037150, "FT2232x wired for MPSSE+UART" },
+ { 0x04037151, "FT2232x wired for MPSSE+UART" },
+ { 0x04037152, "FreeCalypso dual UART with boot control" },
{ 0x04037be8, "FT232R" },
{ 0x04038028, "Dev board JTAG (FT232H based)" },
{ 0x04038040, "4 Port Hub" },
@@ -5176,6 +5183,7 @@ static const value_string usb_products_vals[] = {
{ 0x04243fcc, "RME MADIface" },
{ 0x04244041, "Hub and media card controller" },
{ 0x04244060, "Ultra Fast Media Reader" },
+ { 0x04244063, "xD/SD/MS/MMC Reader" },
{ 0x04244064, "Ultra Fast Media Reader" },
{ 0x04244712, "USB4712 high-speed hub" },
{ 0x04244713, "USB4715 high-speed hub (2 ports disabled)" },
@@ -5411,6 +5419,8 @@ static const value_string usb_products_vals[] = {
{ 0x043e9800, "Remote Control Receiver_iMON" },
{ 0x043e9803, "eHome Infrared Receiver" },
{ 0x043e9804, "DMB Receiver Control" },
+ { 0x043e9a10, "34UC88-B" },
+ { 0x043e9a11, "34UC88-B" },
{ 0x043e9a39, "27UP850 - WK.AEUDCSN - External Monitor 4K" },
{ 0x043e9c01, "LGE Sync" },
{ 0x04411456, "Hub" },
@@ -5803,6 +5813,8 @@ static const value_string usb_products_vals[] = {
{ 0x045e02e6, "Xbox Wireless Adapter for Windows" },
{ 0x045e02ea, "Xbox One Controller" },
{ 0x045e02fd, "Xbox One S Controller [Bluetooth]" },
+ { 0x045e02fe, "Xbox Wireless Adapter for Windows" },
+ { 0x045e0306, "Surface Pro 7 SD Card Reader" },
{ 0x045e0400, "Windows Powered Pocket PC 2002" },
{ 0x045e0401, "Windows Powered Pocket PC 2002" },
{ 0x045e0402, "Windows Powered Pocket PC 2002" },
@@ -5980,6 +5992,7 @@ static const value_string usb_products_vals[] = {
{ 0x045e0800, "Wireless keyboard (All-in-One-Media)" },
{ 0x045e0810, "LifeCam HD-3000" },
{ 0x045e0823, "Classic IntelliMouse" },
+ { 0x045e082a, "Pro Intellimouse" },
{ 0x045e0900, "Surface Dock Hub" },
{ 0x045e0901, "Surface Dock Hub" },
{ 0x045e0902, "Surface Dock Hub" },
@@ -6535,10 +6548,10 @@ static const value_string usb_products_vals[] = {
{ 0x046dc52b, "Unifying Receiver" },
{ 0x046dc52d, "R700 Remote Presenter receiver" },
{ 0x046dc52e, "MK260 Wireless Combo Receiver" },
- { 0x046dc52f, "Unifying Receiver" },
+ { 0x046dc52f, "Nano Receiver" },
{ 0x046dc531, "C-U0007 [Unifying Receiver]" },
{ 0x046dc532, "Unifying Receiver" },
- { 0x046dc534, "Unifying Receiver" },
+ { 0x046dc534, "Nano Receiver" },
{ 0x046dc537, "Cordless Mouse Receiver" },
{ 0x046dc539, "Lightspeed Receiver" },
{ 0x046dc53a, "PowerPlay Wireless Charging System" },
@@ -6942,6 +6955,7 @@ static const value_string usb_products_vals[] = {
{ 0x04835720, "Mass Storage Device" },
{ 0x04835721, "Interrupt Demo" },
{ 0x04835722, "Bulk Demo" },
+ { 0x0483572a, "STM32F401 microcontroller [ARM Cortex M4] [CDC/ACM serial port]" },
{ 0x04835730, "Audio Speaker" },
{ 0x04835731, "Microphone" },
{ 0x04835740, "Virtual COM Port" },
@@ -6980,7 +6994,7 @@ static const value_string usb_products_vals[] = {
{ 0x0489e07a, "Broadcom BCM20702A1 Bluetooth" },
{ 0x0489e0c8, "MediaTek MT7921 Bluetooth" },
{ 0x0489e0cd, "MediaTek Bluetooth Adapter" },
- { 0x0489e0d8, "Bluetooth Adapter" },
+ { 0x0489e0d8, "Bluetooth 5.2 Adapter [MediaTek MT7922]" },
{ 0x0489e111, "Foxconn (for Lenovo) IdeaTab A2109/A2110/Medion LIFETAB S9714" },
{ 0x048d1165, "IT1165 Flash Controller" },
{ 0x048d1172, "Flash Drive" },
@@ -8538,6 +8552,11 @@ static const value_string usb_products_vals[] = {
{ 0x04bf0320, "Bluetooth Adapter" },
{ 0x04bf0321, "Bluetooth Device" },
{ 0x04bf0a28, "INDI AV-IN Device" },
+ { 0x04bf1301, "Network Controller" },
+ { 0x04bf1302, "i3 Gateway" },
+ { 0x04bf1303, "3 Micro Module" },
+ { 0x04bf1304, "i3 Module" },
+ { 0x04bf1305, "i3 Multi Sensing Module" },
{ 0x04c10020, "56K Voice Pro" },
{ 0x04c10022, "56K Voice Pro" },
{ 0x04c1007e, "ISDN TA" },
@@ -8590,6 +8609,7 @@ static const value_string usb_products_vals[] = {
{ 0x04c8072c, "Revio KD20M" },
{ 0x04c8072d, "Revio KD410Z" },
{ 0x04ca0020, "USB Keyboard" },
+ { 0x04ca003a, "Multimedia Keyboard" },
{ 0x04ca004b, "Keyboard" },
{ 0x04ca004f, "SK-9020 keyboard" },
{ 0x04ca008a, "Acer Wired Mouse Model SM-9023" },
@@ -8763,6 +8783,7 @@ static const value_string usb_products_vals[] = {
{ 0x04cb02f0, "Fuji Fujifilm X-H2S" },
{ 0x04cb02f2, "Fuji Fujifilm X-H2" },
{ 0x04cb02fc, "Fuji Fujifilm X-T5" },
+ { 0x04cb0305, "Fuji Fujifilm X100VI" },
{ 0x04cb5006, "ASK-300" },
{ 0x04cb5007, "DX100" },
{ 0x04cc1122, "Hub" },
@@ -8857,6 +8878,7 @@ static const value_string usb_products_vals[] = {
{ 0x04d91400, "PS/2 keyboard + mouse controller" },
{ 0x04d91503, "Keyboard" },
{ 0x04d91603, "Keyboard" },
+ { 0x04d91605, "Keyboard" },
{ 0x04d91702, "Keyboard LKS02" },
{ 0x04d91818, "Keyboard [Diatec Filco Majestouch 2]" },
{ 0x04d92011, "Keyboard [Diatec Filco Majestouch 1]" },
@@ -9470,6 +9492,7 @@ static const value_string usb_products_vals[] = {
{ 0x04f2b681, "ThinkPad T490 Webcam" },
{ 0x04f2b71a, "Integrated IR Camera" },
{ 0x04f2b76b, "SunplusIT Inc [HP HD Camera]" },
+ { 0x04f2b7b4, "Integrated Camera (1920x1080)" },
{ 0x04f3000a, "Touchscreen" },
{ 0x04f30103, "ActiveJet K-2024 Multimedia Keyboard" },
{ 0x04f3016f, "Touchscreen" },
@@ -10081,6 +10104,8 @@ static const value_string usb_products_vals[] = {
{ 0x04fcffff, "PureDigital Ritz Disposable" },
{ 0x04fd0003, "Smart Card Reader II" },
{ 0x04fe0006, "Happy Hacking Keyboard Lite2" },
+ { 0x04fe0020, "HHKB-Classic" },
+ { 0x04fe0021, "Happy Hacking Keyboard Professional HYBRID Type-S" },
{ 0x05000001, "DART Keyboard Mouse" },
{ 0x05000002, "DART-2 Keyboard" },
{ 0x05020001, "Handheld" },
@@ -10175,6 +10200,7 @@ static const value_string usb_products_vals[] = {
{ 0x050d0081, "F8T001v2 Bluetooth" },
{ 0x050d0083, "Bluetooth Device" },
{ 0x050d0084, "F8T003v2 Bluetooth" },
+ { 0x050d008a, "6-in-1 Multiport Adapter" },
{ 0x050d0102, "Flip KVM" },
{ 0x050d0103, "F5U103 Serial Adapter [etek]" },
{ 0x050d0106, "VideoBus II Adapter, Video" },
@@ -10620,6 +10646,7 @@ static const value_string usb_products_vals[] = {
{ 0x054c0568, "DSC-H100 in Mass Storage mode" },
{ 0x054c0574, "Sony SLT-A65V" },
{ 0x054c0577, "Sony SLT-A77V" },
+ { 0x054c0579, "Sony NEX-5N" },
{ 0x054c057d, "Sony NEX-7" },
{ 0x054c059a, "Sony NWZ-B163F" },
{ 0x054c05a6, "Sony NWZ-E464" },
@@ -10637,6 +10664,7 @@ static const value_string usb_products_vals[] = {
{ 0x054c0675, "Sony SLT-A99v" },
{ 0x054c0678, "Sony NEX-6" },
{ 0x054c0689, "Sony NWZ-B173F" },
+ { 0x054c068c, "UP-D711" },
{ 0x054c06a9, "Sony NWZ-E474" },
{ 0x054c06ac, "Sony Xperia Tablet S - SGPT12" },
{ 0x054c06bb, "WALKMAN NWZ-F805" },
@@ -11075,10 +11103,17 @@ static const value_string usb_products_vals[] = {
{ 0x056a03ac, "DTH-W1620 [MobileStudio Pro 16] touchscreen" },
{ 0x056a03b2, "DTH167 [Cintiq Pro 16] tablet" },
{ 0x056a03b3, "DTH167 [Cintiq Pro 16] touchscreen" },
+ { 0x056a03c0, "DTH271 [Cintiq Pro 27] touchscreen" },
+ { 0x056a03c4, "DTH172 [Cintiq Pro 17]" },
{ 0x056a03c5, "CTL-4100WL [Intuos BT (S)]" },
{ 0x056a03c7, "CTL-6100WL [Intuos BT (M)]" },
+ { 0x056a03cb, "DTH134 [Wacom One 13] touchscreen" },
+ { 0x056a03ce, "DTC121 [Wacom One 12] touchscreen" },
+ { 0x056a03d0, "DTH227 [Cintiq Pro 22]" },
{ 0x056a03dc, "PTH-460 [Intuos Pro (S)] tablet" },
{ 0x056a03dd, "PTH-460 [Intuos Pro BT (S)] tablet" },
+ { 0x056a03ec, "DTH134 [DTH134] touchscreen" },
+ { 0x056a03ed, "DTC121 [DTC121] touchscreen" },
{ 0x056a0400, "PenPartner 4x5" },
{ 0x056a4001, "TPC4001" },
{ 0x056a4004, "TPC4004" },
@@ -11095,19 +11130,22 @@ static const value_string usb_products_vals[] = {
{ 0x056d0002, "HID Monitor Controls" },
{ 0x056d0003, "Device Bay Controller" },
{ 0x056d4000, "FlexScan EV3237" },
- { 0x056d4001, "Monitor" },
- { 0x056d4002, "USB HID Monitor" },
+ { 0x056d4001, "FlexScan EV2450" },
+ { 0x056d4002, "FlexScan EV2455" },
{ 0x056d4014, "FlexScan EV2750" },
{ 0x056d4026, "FlexScan EV2451" },
{ 0x056d4027, "FlexScan EV2456" },
+ { 0x056d402b, "FlexScan EV2780" },
{ 0x056d4036, "FlexScan EV2785" },
{ 0x056d4037, "FlexScan EV3285" },
{ 0x056d4044, "FlexScan EV2457" },
{ 0x056d4059, "FlexScan EV2760" },
{ 0x056d405a, "FlexScan EV2360" },
{ 0x056d405b, "FlexScan EV2460" },
+ { 0x056d405e, "FlexScan EV2495" },
{ 0x056d405f, "FlexScan EV2795" },
{ 0x056d4065, "FlexScan EV3895" },
+ { 0x056d406a, "FlexScan EV2480" },
{ 0x056e0002, "29UO Mouse" },
{ 0x056e0057, "Micro Grast Pop M-PGDL" },
{ 0x056e005c, "Micro Grast Pop M-PG2DL" },
@@ -11831,6 +11869,7 @@ static const value_string usb_products_vals[] = {
{ 0x059f1093, "Rugged" },
{ 0x059f1094, "Rugged THB" },
{ 0x059f1095, "Rugged" },
+ { 0x059f1105, "Mobile Drive (RLSD: 2022)" },
{ 0x059fa601, "HardDrive" },
{ 0x059fa602, "CD R/W" },
{ 0x05a38388, "Marvell 88W8388 802.11a/b/g WLAN" },
@@ -12595,6 +12634,7 @@ static const value_string usb_products_vals[] = {
{ 0x05e3f12a, "Digital Microscope" },
{ 0x05e3fd21, "3M TL20 Temperature Logger" },
{ 0x05e3fe00, "Razer Mouse" },
+ { 0x05e63390, "3390 Arbitrary Waveform Generator" },
{ 0x05e90008, "KL5KUSB101B Ethernet [klsi]" },
{ 0x05e90009, "Sony 10Mbps Ethernet [pegasus]" },
{ 0x05e9000c, "USB-to-RS-232" },
@@ -12744,6 +12784,8 @@ static const value_string usb_products_vals[] = {
{ 0x06380a41, "Avision AM3000/MF3000 Series" },
{ 0x06380f01, "fi-4010CU" },
{ 0x06384004, "Minolta Dimage Scan Elite II AF-2920 (2888)" },
+ { 0x06397213, "CH7213" },
+ { 0x06397231, "CH7213" },
{ 0x06400026, "LPC-Stick" },
{ 0x06440000, "Floppy" },
{ 0x06440200, "All-In-One Multi-Card Reader CA200/B/S" },
@@ -13382,6 +13424,7 @@ static const value_string usb_products_vals[] = {
{ 0x06cb00bd, "Prometheus MIS Touch Fingerprint Reader" },
{ 0x06cb00c7, "TouchPad" },
{ 0x06cb00cb, "Fingerprint scanner" },
+ { 0x06cb00fc, "Prometheus Fingerprint Reader" },
{ 0x06cb0ac3, "Large Touch Screen" },
{ 0x06cb2970, "touchpad" },
{ 0x06cc0101, "Cable Modem" },
@@ -13436,7 +13479,9 @@ static const value_string usb_products_vals[] = {
{ 0x06d3038c, "CP900DW(ID) Port" },
{ 0x06d30393, "CP9500D/DW Port" },
{ 0x06d30394, "CP9000D/DW Port" },
+ { 0x06d30395, "CP9000DW" },
{ 0x06d30398, "P93D" },
+ { 0x06d3039e, "CP9500DW-S" },
{ 0x06d303a1, "CP9550D/DW Port" },
{ 0x06d303a5, "CP9550DW-S" },
{ 0x06d303a9, "CP-9600DW" },
@@ -13447,7 +13492,9 @@ static const value_string usb_products_vals[] = {
{ 0x06d30f10, "Hori/Namco FlightStick 2" },
{ 0x06d321ba, "FOMA D905i" },
{ 0x06d33b10, "P95D" },
+ { 0x06d33b20, "CP9820DW Series" },
{ 0x06d33b21, "CP-9810D/DW" },
+ { 0x06d33b2f, "LS9820A" },
{ 0x06d33b30, "CP-D70DW / CP-D707DW" },
{ 0x06d33b31, "CP-K60DW-S" },
{ 0x06d33b36, "CP-D80DW" },
@@ -14440,6 +14487,7 @@ static const value_string usb_products_vals[] = {
{ 0x07cec007, "DPB-4000" },
{ 0x07cec009, "DPB-6000" },
{ 0x07cec010, "CPB-7000" },
+ { 0x07cec011, "ASK-2500" },
{ 0x07cf1001, "QV-8000SX/5700/3000EX Digicam; Exilim EX-M20" },
{ 0x07cf1003, "Exilim EX-S500" },
{ 0x07cf1004, "Exilim EX-Z120" },
@@ -14549,8 +14597,11 @@ static const value_string usb_products_vals[] = {
{ 0x07fd0000, "FastLane MIDI Interface" },
{ 0x07fd0001, "MIDI Interface" },
{ 0x07fd0002, "MOTU Audio for 64 bit" },
- { 0x07fd0004, "MicroBook" },
+ { 0x07fd0004, "Microbook I/II/IIc" },
{ 0x07fd0008, "M Series" },
+ { 0x07fd0009, "M Series (firmware update mode)" },
+ { 0x07fd000b, "M Series" },
+ { 0x07fd000d, "M Series (firmware update mode)" },
{ 0x07ff00ff, "Portable Hard Drive" },
{ 0x07ffffff, "Mad Catz Gamepad" },
{ 0x08010001, "Mini Swipe Reader (Keyboard Emulation)" },
@@ -14589,6 +14640,7 @@ static const value_string usb_products_vals[] = {
{ 0x081edf00, "Handheld" },
{ 0x081fe401, "gamepad" },
{ 0x08222001, "IRXpress Infrared Device" },
+ { 0x0828a003, "WS408 Label Printer" },
{ 0x082d0100, "Visor" },
{ 0x082d0200, "Treo" },
{ 0x082d0300, "Treo 600" },
@@ -15111,6 +15163,12 @@ static const value_string usb_products_vals[] = {
{ 0x090804b2, "NC interface" },
{ 0x090804b3, "keyboard front panel Cockpit" },
{ 0x090804b4, "SCR_CCID" },
+ { 0x090804b5, "Camera" },
+ { 0x090804b6, "Cockpit Touchkeypad" },
+ { 0x090804b7, "Cockpit Touchkeypad Bootloader" },
+ { 0x090804b8, "MediSET USB4-W" },
+ { 0x090804b9, "MediSET USB4-R" },
+ { 0x090804ba, "MediSET USB4-G" },
{ 0x09082701, "ShenZhen SANZHAI Technology Co.,Ltd Spy Pen VGA" },
{ 0x0909001b, "ATR2100-USB" },
{ 0x0909001c, "AT2020USB+" },
@@ -15125,6 +15183,7 @@ static const value_string usb_products_vals[] = {
{ 0x090c037c, "300k Pixel Camera" },
{ 0x090c1000, "Flash Drive" },
{ 0x090c1132, "5-in-1 Card Reader" },
+ { 0x090c2000, "Disk" },
{ 0x090c337b, "Silicon Motion Camera" },
{ 0x090c3710, "Silicon Motion Camera" },
{ 0x090c3720, "Silicon Motion Camera" },
@@ -15239,6 +15298,7 @@ static const value_string usb_products_vals[] = {
{ 0x091e50a1, "Garmin Forerunner 265" },
{ 0x091e50db, "Garmin Forerunner 965" },
{ 0x091e5116, "Garmin Fenix 7s pro sapphire solar" },
+ { 0x09205550, "U60 FT Network Interface" },
{ 0x09207500, "Network Interface" },
{ 0x09211001, "GoCOM232 Serial" },
{ 0x09220007, "LabelWriter 330" },
@@ -15439,6 +15499,7 @@ static const value_string usb_products_vals[] = {
{ 0x0944010f, "nanoKONTROL studio controller" },
{ 0x09440117, "nanoKONTROL2 MIDI Controller" },
{ 0x0944012f, "SQ-1" },
+ { 0x09440203, "KRONOS" },
{ 0x09440f03, "K-Series K61P MIDI studio controller" },
{ 0x09480301, "USB Pro (24/48)" },
{ 0x09480302, "USB Pro (24/96 playback)" },
@@ -15504,6 +15565,8 @@ static const value_string usb_products_vals[] = {
{ 0x09557140, "T124 [Tegra K1/Logan 32-bit]" },
{ 0x09557210, "SHIELD Controller" },
{ 0x09557321, "Switch [Tegra Erista] recovery mode" },
+ { 0x09557323, "T234 [Orin NX 16GB] recovery mode" },
+ { 0x09557423, "T234 [Orin NX 8GB] recovery mode" },
{ 0x09557721, "nVidia Jetson TX1" },
{ 0x09557820, "T20 [Tegra 2] recovery mode" },
{ 0x09557c18, "T186 [TX2 Tegra Parker] recovery mode" },
@@ -15516,13 +15579,18 @@ static const value_string usb_products_vals[] = {
{ 0x0955cf07, "nVidia Shield Tablet (MTP)" },
{ 0x0955cf08, "SHIELD Tablet" },
{ 0x0955cf09, "SHIELD Tablet" },
+ { 0x09570007, "82357A GPIB Interface Firmware loader" },
+ { 0x09570107, "82357A GPIB Interface" },
{ 0x09570200, "E-Video DC-350 Camera" },
{ 0x09570202, "E-Video DC-350 Camera" },
{ 0x09570407, "33220A Waveform Generator" },
- { 0x09570518, "82357B GPIB Interface" },
+ { 0x09570518, "82357B GPIB Interface Firmware loader" },
+ { 0x09570607, "34410A Multimeter" },
+ { 0x09570718, "82357B GPIB Interface" },
{ 0x09570a07, "34411A Multimeter" },
{ 0x09571507, "33210A Waveform Generator" },
{ 0x09571745, "Test and Measurement Device (IVI)" },
+ { 0x09571907, "53230A Frequency Counter" },
{ 0x09571f01, "N5181A MXG Analog Signal Generator" },
{ 0x09572918, "U2702A oscilloscope" },
{ 0x0957fb18, "LC Device" },
@@ -15571,6 +15639,7 @@ static const value_string usb_products_vals[] = {
{ 0x099a6330, "SANWA Supply Inc. Slim Keyboard" },
{ 0x099a713a, "WK-713 Multimedia Keyboard" },
{ 0x099a7160, "Hyper Slim Keyboard" },
+ { 0x099a7202, "Enermax Aurora Micro Wireless Receiver" },
{ 0x09a68001, "Mass Storage Device" },
{ 0x09aa1000, "Prism GT 802.11b/g Adapter" },
{ 0x09aa3642, "Prism 2.x 802.11b Adapter" },
@@ -15628,12 +15697,15 @@ static const value_string usb_products_vals[] = {
{ 0x09d70100, "GPS/GNSS/SPAN sensor" },
{ 0x09d80320, "TWN3 Multi125" },
{ 0x09d80406, "TWN4 MIFARE NFC" },
+ { 0x09d80410, "TWN4 HID" },
+ { 0x09d80420, "TWN4 CDC" },
{ 0x09da0006, "Optical Mouse WOP-35 / Trust 450L Optical Mouse" },
{ 0x09da000a, "Optical Mouse Opto 510D / OP-620D" },
{ 0x09da000e, "X-F710F Optical Mouse 3xFire Gaming Mouse" },
{ 0x09da0018, "Trust Human Interface Device" },
{ 0x09da001a, "Wireless Mouse & RXM-15 Receiver" },
{ 0x09da002a, "Wireless Optical Mouse NB-30" },
+ { 0x09da0103, "Oscar X-710BK Gaming Mouse" },
{ 0x09da022b, "Wireless Mouse (Battery Free)" },
{ 0x09da024f, "RF Receiver and G6-20D Wireless Optical Mouse" },
{ 0x09da0260, "KV-300H Isolation Keyboard" },
@@ -15641,12 +15713,16 @@ static const value_string usb_products_vals[] = {
{ 0x09da09da, "Bloody V8 Mouse" },
{ 0x09da1068, "Bloody A90 Mouse" },
{ 0x09da112c, "Bloody V5 Mouse" },
+ { 0x09da2268, "Keyboard (FK11)" },
+ { 0x09da2690, "PK-635G" },
{ 0x09da3a60, "Bloody V8M Core 2 Mouse" },
{ 0x09da8090, "X-718BK Oscar Optical Gaming Mouse" },
{ 0x09da9033, "X-718BK Optical Mouse" },
{ 0x09da9066, "F3 V-Track Gaming Mouse" },
- { 0x09da9090, "XL-730K / XL-750BK / XL-755BK Mice" },
+ { 0x09da9090, "XL-730K / XL-747H / XL-750BK / XL-755BK Mice" },
{ 0x09daf613, "Bloody V7M Mouse" },
+ { 0x09daf6cc, "B314 Light Strike Gaming Keyboard" },
+ { 0x09dafa44, "B930 Light Strike RGB Mechanical Gaming Keyboard" },
{ 0x09db0075, "MiniLab 1008" },
{ 0x09db0076, "PMD-1024" },
{ 0x09db007a, "PMD-1208LS" },
@@ -15654,11 +15730,13 @@ static const value_string usb_products_vals[] = {
{ 0x09db0082, "USB-1208FS" },
{ 0x09db0088, "USB-1616FS internal hub" },
{ 0x09e15121, "MicroLink dLAN" },
+ { 0x09e80029, "APC40 mkII" },
{ 0x09e80045, "MPK Mini Mk II MIDI Controller" },
{ 0x09e80062, "MPD16 MIDI Pad Controller Unit" },
{ 0x09e8006d, "EWI electronic wind instrument" },
{ 0x09e80071, "MPK25 MIDI Keyboard" },
{ 0x09e80076, "LPK25 MIDI Keyboard" },
+ { 0x09e8007c, "MPK Mini MIDI Controller" },
{ 0x09eb4331, "iRhythm Tuner Remote" },
{ 0x09ef0101, "MD-Port DG2 MiniDisc Interface" },
{ 0x09f30018, "GF-46 Multi-Mode Display Module" },
@@ -15702,6 +15780,9 @@ static const value_string usb_products_vals[] = {
{ 0x0a121010, "Bluetooth Device" },
{ 0x0a121011, "Bluetooth Device" },
{ 0x0a121012, "Bluetooth Device" },
+ { 0x0a121243, "CSRA64210 [TaoTronics Headset BH-22 in charging mode]" },
+ { 0x0a124007, "Mpow HC5 Headset in charging mode - HID / Mass Storage" },
+ { 0x0a124010, "Mpow HC5 Headset in charging mode - USB Hub" },
{ 0x0a12ffff, "USB Bluetooth Device in DFU State" },
{ 0x0a161111, "ThumbDrive" },
{ 0x0a168888, "IBM USB Memory Key" },
@@ -15835,6 +15916,7 @@ static const value_string usb_products_vals[] = {
{ 0x0a5c217f, "BCM2045B (BDC-2.1)" },
{ 0x0a5c2198, "Bluetooth 3.0 Device" },
{ 0x0a5c219b, "Bluetooth 2.1 Device" },
+ { 0x0a5c219c, "BCM2070 Bluetooth" },
{ 0x0a5c21b1, "HP Bluetooth Module" },
{ 0x0a5c21b4, "BCM2070 Bluetooth 2.1 + EDR" },
{ 0x0a5c21b9, "BCM2070 Bluetooth 2.1 + EDR" },
@@ -15858,6 +15940,7 @@ static const value_string usb_products_vals[] = {
{ 0x0a5c5802, "BCM5880 Secure Applications Processor with fingerprint touch sensor" },
{ 0x0a5c5803, "BCM5880 Secure Applications Processor with secure keyboard" },
{ 0x0a5c5804, "BCM5880 Secure Applications Processor with fingerprint swipe sensor" },
+ { 0x0a5c5832, "BCM5880 Secure Applications Processor Smartcard reader" },
{ 0x0a5c6300, "Pirelli Remote NDIS Device" },
{ 0x0a5c6410, "BCM20703A1 Bluetooth 4.1 + LE" },
{ 0x0a5cbd11, "BCM4320 802.11bg Wireless Adapter" },
@@ -23311,6 +23394,8 @@ static const value_string usb_products_vals[] = {
{ 0x20870b03, "Multi Touch Panel" },
{ 0x20a00006, "flirc" },
{ 0x20a04107, "GPF Crypto Stick V1.2" },
+ { 0x20a04108, "Nitrokey Pro" },
+ { 0x20a04109, "Nitrokey Storage" },
{ 0x20a04123, "IKALOGIC SCANALOGIC 2" },
{ 0x20a0414a, "MDE SPI Interface" },
{ 0x20a0415a, "OpenPilot" },
@@ -23319,7 +23404,16 @@ static const value_string usb_products_vals[] = {
{ 0x20a041e5, "BlinkStick" },
{ 0x20a04211, "Nitrokey Start" },
{ 0x20a04223, "ATSAMD21 [castAR]" },
+ { 0x20a04230, "Nitrokey HSM" },
+ { 0x20a04287, "Nitrokey FIDO U2F" },
{ 0x20a0428d, "Electrosense wideband converter" },
+ { 0x20a042b1, "Nitrokey FIDO2" },
+ { 0x20a042b2, "Nitrokey 3A Mini/3A NFC/3C NFC" },
+ { 0x20a042b4, "Nitrokey Pro Bootloader" },
+ { 0x20a042da, "MuteMe" },
+ { 0x20a042dd, "Nitrokey 3A NFC Bootloader/3C NFC Bootloader" },
+ { 0x20a042e8, "Nitrokey 3A Mini Bootloader" },
+ { 0x20a042ec, "RP2040 [PicoWifi]" },
{ 0x20b110ad, "XUSB Loader" },
{ 0x20b1f7d1, "XTAG2 - JTAG Adapter" },
{ 0x20b30a18, "10.1 Touch screen overlay" },
@@ -23950,7 +24044,7 @@ static const value_string usb_products_vals[] = {
{ 0x25784168, "2.4GHZ Wireless Arc Folding Mouse" },
{ 0x25811807, "Generic HID Smartcard" },
{ 0x25811808, "WinUSB Smartcard" },
- { 0x2581f1d0, "FIDO U2F Security Key" },
+ { 0x2581f1d0, "Nitrokey U2F" },
{ 0x25a72410, "Laser mouse" },
{ 0x25a7fa23, "2.4G Receiver" },
{ 0x25a7fa61, "Elecom Co., Ltd MR-K013 Multicard Reader" },
@@ -24665,6 +24759,7 @@ static const value_string usb_products_vals[] = {
{ 0x33840000, "Thelio Io (thelio-io)" },
{ 0x33840001, "Launch Configurable Keyboard (launch_1)" },
{ 0x339b107d, "Honor X8/X9 5G" },
+ { 0x33a20136, "Olympus OM-1MarkII" },
{ 0x348f2322, "Wireless Presenter" },
{ 0x3504f110, "Security Key" },
{ 0x35380001, "Travel Flash" },
diff --git a/epan/enterprises.c b/epan/enterprises.c
index b6ef8f77..ec8cd0a0 100644
--- a/epan/enterprises.c
+++ b/epan/enterprises.c
@@ -8,7 +8,7 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*/
-/* (last updated 2023-12-26) */
+/* (last updated 2024-03-22) */
#include "config.h"
@@ -19,12 +19,12 @@
typedef struct
{
uint32_t max_idx;
- const char* values[61328];
+ const char* values[61692];
} global_enterprises_table_t;
static global_enterprises_table_t table =
{
- 61327,
+ 61691,
{
"Reserved", // 0
"NxNetworks", // 1
@@ -3024,7 +3024,7 @@ static global_enterprises_table_t table =
"AcuComm, Inc.", // 2995
"SpectraWorks Inc.", // 2996
"RedTitan", // 2997
- "Anderson Consulting", // 2998
+ "Wire-Tap, Inc.", // 2998
"American Family Insurance", // 2999
"IDB Systems, a Division of WorldCom Inc.", // 3000
"BAILO", // 3001
@@ -3371,7 +3371,7 @@ static global_enterprises_table_t table =
"MachOne Communications Inc.", // 3342
"Philips Digital Video Systems Harry", // 3343
"Helsinki Televisio Oy", // 3344
- "Nemetschek AG", // 3345
+ "Nemetschek SE", // 3345
"Vocom", // 3346
"Hitachi Kokusai Electric Inc.", // 3347
"Reliable Network Solutions", // 3348
@@ -3422,7 +3422,7 @@ static global_enterprises_table_t table =
"SandS International", // 3393
"NeTrue Communications", // 3394
"Certicom Corp.", // 3395
- "DICOS GmbH Kommunikationssysteme Stephan", // 3396
+ "DICOS GmbH Kommunikationssysteme", // 3396
"Border Blues Productions", // 3397
"Fieldbus Foundation", // 3398
"Olencom Electronics Ltd.", // 3399
@@ -11176,7 +11176,7 @@ static global_enterprises_table_t table =
"SVTO Hewlett-Packard", // 11147
"Swan Systems", // 11148
"TI, d.o.o.", // 11149
- "Roamware Inc.", // 11150
+ "Mobileum Inc.", // 11150
"Urschel Laboratories Incorporated", // 11151
"Vocalcom", // 11152
"WebWear", // 11153
@@ -13747,7 +13747,7 @@ static global_enterprises_table_t table =
"CCITRIAD", // 13718
"CEGETEL SI", // 13719
"CoreMedia AG", // 13720
- "Corning Cable Systems", // 13721
+ "Corning Optical Communications", // 13721
"deot.net", // 13722
"Division of BITL", // 13723
"Erasmus University Rotterdam", // 13724
@@ -14158,7 +14158,7 @@ static global_enterprises_table_t table =
"Sevan Networks, Inc.", // 14129
"Bifco", // 14130
"Ifoundry Systems", // 14131
- "CS Systemes d'Information", // 14132
+ "CS GROUP", // 14132
"Buergernetz Weihenstephan e.V.", // 14133
"University of Szeged", // 14134
"SysDM", // 14135
@@ -22248,7 +22248,7 @@ static global_enterprises_table_t table =
"BoreNet AB", // 22219
"LACNIC", // 22220
"Wescom GmbH", // 22221
- "ProaXial", // 22222
+ "Gericos", // 22222
"IntelliCal LLC", // 22223
"Queensland Treasury", // 22224
"Huazhong University of Science and Technology", // 22225
@@ -22413,7 +22413,7 @@ static global_enterprises_table_t table =
"Benedikt Heinen", // 22384
"Houston Academy of Medicine-Texas Medical Center Library", // 22385
"ionflux.org", // 22386
- "InSync Technology Ltd", // 22387
+ "InSync Technology Limited", // 22387
"SENTELCO", // 22388
"IRIS Corporation Berhad", // 22389
"Parsek Corporation Ltd.", // 22390
@@ -23809,7 +23809,7 @@ static global_enterprises_table_t table =
"Prose Consulting Ltd.", // 23780
"Albertslund Ungdomsboliger", // 23781
"ASN", // 23782
- "iTellus Holdings, Inc.", // 23783
+ "Planet Networks, Inc.", // 23783
"StrataLight Communications", // 23784
"CIC/CAFMICRO", // 23785
"DS DATA SYSTEMS GmbH", // 23786
@@ -25149,7 +25149,7 @@ static global_enterprises_table_t table =
"SAGUAPAC", // 25120
"Temex Sync", // 25121
"Hauk & Sasko GmbH", // 25122
- "Barco Orthogon GmbH", // 25123
+ "Frequentis Orthogon GmbH", // 25123
"Trade-On-Technology Holdings", // 25124
"ALWIL Software", // 25125
"Jackson State University", // 25126
@@ -28000,7 +28000,7 @@ static global_enterprises_table_t table =
"China Infosec Technologies Co.,Ltd.", // 27971
"Mac Papers, Inc.", // 27972
"Open Finance, LLC", // 27973
- "MCS GROUPE", // 27974
+ "PONTILLO.EU", // 27974
"Centec Networks Inc.", // 27975
"GEO CONCEPT SA", // 27976
"Genex", // 27977
@@ -30522,7 +30522,7 @@ static global_enterprises_table_t table =
"Digitek spa", // 30493
"Microlink Telecom", // 30494
"RoundTrip Systems", // 30495
- "E-Smart Systems d.o.o.", // 30496
+ "E-Smart Systems d.o.o. Beograd", // 30496
"Beijing EaseSea Interman Technology Co.,", // 30497
"AeroScout", // 30498
"Design 2000 Pvt Ltd", // 30499
@@ -33158,7 +33158,7 @@ static global_enterprises_table_t table =
"ENTEREST GmbH", // 33129
"Virtual Instruments Corporation", // 33130
"Drexel University", // 33131
- "Lichti² GbR", // 33132
+ "Kaiserpfalz EDV-Service", // 33132
"Daedalus Software, Inc.", // 33133
"LS ELECTRIC Co.,Ltd.", // 33134
"PeakSystems", // 33135
@@ -43776,7 +43776,7 @@ static global_enterprises_table_t table =
"MaterialApps", // 43747
"ARES Conocimiento de Negocio, SL", // 43748
"Country Bright Company Ltd.", // 43749
- "Jabil Circuit, Inc", // 43750
+ "Jabil Inc", // 43750
"Shenzhen TG-NET Botone Technology CO. Ltd.", // 43751
"China Film Equipment Co. Ltd.", // 43752
"Kyriasis", // 43753
@@ -44072,7 +44072,7 @@ static global_enterprises_table_t table =
"BSG-IT Kft.", // 44043
"SETCCE", // 44044
"Dos al Cubo", // 44045
- "POK Power of Knowledge", // 44046
+ "POK AG Schweiz", // 44046
"Schreiber Foods Inc", // 44047
"Instytut Hodowli i Aklimatyzacji Roslin - Panstwowy Instytut Badawczy", // 44048
"Cloud2Ground Technologies Div. Digital Multimedia, LLC", // 44049
@@ -45763,7 +45763,7 @@ static global_enterprises_table_t table =
"STARNET s.r.o.", // 45734
"easyset", // 45735
"Utilisoft Ltd", // 45736
- "shah-network.com", // 45737
+ "brokentech.ca", // 45737
"Aspirational Cognition LLC", // 45738
"winfonet.eu", // 45739
"Cirrus Identity, Inc", // 45740
@@ -48528,7 +48528,7 @@ static global_enterprises_table_t table =
"inovex GmbH", // 48499
"Ventilatorenfabrik Oelde GmbH", // 48500
"Wilmers Messtechnik GmbH", // 48501
- "Startups, Inc.", // 48502
+ "Startups Venture", // 48502
"Magrathea Laboratories e.V.", // 48503
"Pulselight Inc", // 48504
"AI2Co", // 48505
@@ -48587,7 +48587,7 @@ static global_enterprises_table_t table =
"Trinity Grammar School", // 48558
"Rosenberger Technologies Co., Ltd.", // 48559
"Almnäs Bruk AB", // 48560
- "Ahlstrom-Munksjö AB", // 48561
+ "Ahlstrom Group", // 48561
"KENDRIS AG", // 48562
"ANEXIA Internetdienstleistungs GmbH", // 48563
"Autoland Deutschland Inh. Wilfried Wilhelm Anclam, e. K.", // 48564
@@ -49040,7 +49040,7 @@ static global_enterprises_table_t table =
"Tanium Inc.", // 49011
"Indasys", // 49012
"Choice Cancer Care", // 49013
- "Sörmlands Printing Solutions AB", // 49014
+ "Stibo Complete AB", // 49014
"HEXBITS TECNOLOGIA LTDA", // 49015
"Build Informed GmbH", // 49016
"Yukoo Limited", // 49017
@@ -49821,7 +49821,7 @@ static global_enterprises_table_t table =
"HDS a.s.", // 49792
"Persson Invest skog AB", // 49793
"M2MSOFT", // 49794
- "Navitel", // 49795
+ "Navitel sp. z o.o.", // 49795
"ARH Inc.", // 49796
"RideOnTrack", // 49797
"BVZ Holding AG", // 49798
@@ -50650,7 +50650,7 @@ static global_enterprises_table_t table =
"Golage Inc", // 50621
"EQS Group AG", // 50622
"South Jersey Industries", // 50623
- "Hill-Rom, Inc.", // 50624
+ "Baxter Healthcare Products", // 50624
"Agari Data, Inc.", // 50625
"Concentric Media Sdn Bhd", // 50626
"Rosenberger Hochfrequenztechnik GmbH & Co KG", // 50627
@@ -50756,7 +50756,7 @@ static global_enterprises_table_t table =
"Civil Aviation University of China", // 50727
"Nemon", // 50728
"Stichting Groningen Groningen Declaration Network", // 50729
- "TELCAT MULTICOM GmbH", // 50730
+ "Salzgitter Digital Solutions GmbH", // 50730
"NAES Corporation", // 50731
"HIAG Data", // 50732
"bluebyteIT Sven Treiber", // 50733
@@ -53619,7 +53619,7 @@ static global_enterprises_table_t table =
"Eastone Century Technology Co,.Ltd.", // 53590
"TERAPRO", // 53591
"K M B systems, s.r.o.", // 53592
- "Highways England", // 53593
+ "National Highways", // 53593
"Protocol Labs", // 53594
"Lookback Inc", // 53595
"Cumulus Cloud Software and Consulting", // 53596
@@ -54533,7 +54533,7 @@ static global_enterprises_table_t table =
"Warsaw University of Technology", // 54504
"Transcelestial Technologies PTE LTD", // 54505
"Intereuropa d.d.", // 54506
- "IdeaData", // 54507
+ "CySight", // 54507
"Deutsche Telekom - Access 4.0", // 54508
"iCE - Intelligent Controlled Environments", // 54509
"Noscendo GmbH", // 54510
@@ -56062,7 +56062,7 @@ static global_enterprises_table_t table =
"Die Autobahn GmbH des Bundes", // 56033
"ALS Laboratory Group", // 56034
"GALDERMA S.A.", // 56035
- "Gentlent, Inc.", // 56036
+ "Gentlent UG (haftungsbeschränkt)", // 56036
"Argo AI", // 56037
"Nroad", // 56038
"Bold City Tech", // 56039
@@ -56329,7 +56329,7 @@ static global_enterprises_table_t table =
"STAUFEN.AG", // 56300
"IOIT", // 56301
"Narodni agentura pro komunikacni a informacni technologie, s. p.", // 56302
- "marcusfolkesson", // 56303
+ "MFOConsulting AB", // 56303
"Infrastructures Technologiques Quebec", // 56304
"ParaFlare Pty Ltd", // 56305
"Centro Oncológico Figueroa-Cabrera", // 56306
@@ -57786,7 +57786,7 @@ static global_enterprises_table_t table =
"MOST", // 57757
"Stadtverwaltung Burgdorf", // 57758
"Sam Brittingham", // 57759
- "Big Boy Entertainment", // 57760
+ "Awesomentertainment", // 57760
"VSENS", // 57761
"Kowloonbia International Limited", // 57762
"Vollmergruppe", // 57763
@@ -58360,7 +58360,7 @@ static global_enterprises_table_t table =
"Three Z Printing", // 58331
"Eagle's Flight", // 58332
"T Pieters", // 58333
- "GEWIS", // 58334
+ "Gemeenschap van Wiskunde en Informatica Studenten (GEWIS)", // 58334
"Capitol Broadcasting Company", // 58335
"Tekkgear", // 58336
"runZero, Inc", // 58337
@@ -58749,7 +58749,7 @@ static global_enterprises_table_t table =
"Orthopedic and Sports Medicine Specialist of Green Bay, SC", // 58720
"it-economics GmbH", // 58721
"Maximilian Kapra", // 58722
- "Shanghai AssembleAuth Coroutine Technology Co., Ltd", // 58723
+ "TrusAuth Inc", // 58723
"Monban Project", // 58724
NULL, // 58725
"CIS", // 58726
@@ -59202,7 +59202,7 @@ static global_enterprises_table_t table =
"CSL Dualcom Ltd", // 59173
"Primoris Services Corporation", // 59174
"Azdio", // 59175
- "PowerLerder Computer Systems Co., LTD", // 59176
+ "PowerLeader Computer Systems Co., LTD", // 59176
"Asio", // 59177
"Indiana Foot & Ankle Specialists LLC", // 59178
"USSOCOM", // 59179
@@ -60374,7 +60374,7 @@ static global_enterprises_table_t table =
"Open industrial PKI", // 60345
"Voelkl Sports GmbH", // 60346
"Lutech SpA", // 60347
- "Aretiico PLC", // 60348
+ "Aretiico Group PLC", // 60348
"Barbaros Catkan", // 60349
"Settels Savenije Group of Companies", // 60350
"ITSEC RND MICHAŁ LESZCZYŃSKI", // 60351
@@ -60759,7 +60759,7 @@ static global_enterprises_table_t table =
"Georg Roth Stiftung & Co. Lebensmittelfilialbetrieb KG", // 60730
"RationalCore LLC", // 60731
"Sigenergy", // 60732
- "Hanwha solutions, SW development center", // 60733
+ "Hanwha Solutions Corporation, SW development center", // 60733
"Callisto Inc.", // 60734
"Procono, S.A.", // 60735
"Curtis Vaughn Thompson © The Edinburgh Originale -O.E. ™", // 60736
@@ -61108,7 +61108,7 @@ static global_enterprises_table_t table =
"RUAG AG", // 61079
"Lemon Network Technology Co.,Ltd", // 61080
"DsNetwork", // 61081
- "Klavis Kripta Inovasi", // 61082
+ "Klavis Kripta", // 61082
"Marcel Metzen", // 61083
"Cleverbase", // 61084
"Terra Sound", // 61085
@@ -61353,7 +61353,371 @@ static global_enterprises_table_t table =
"feibra GmbH", // 61324
"Vid vitenskapelige høgskole", // 61325
"Mikroszerviz SP Ltd", // 61326
- "CSConsult" // 61327
+ "CSConsult", // 61327
+ "Robinson Lighting Ltd", // 61328
+ "People's Technology Co., Ltd.", // 61329
+ "Janelle Lynette Guidry", // 61330
+ "Forgital Italy S.p.A.", // 61331
+ "Research Institute for Road Safety of MPS", // 61332
+ "Shenzhen Goodtime Technology Co. ,Ltd", // 61333
+ "Cryptob3auty", // 61334
+ "Michael C Pergolese", // 61335
+ "RASEKO", // 61336
+ "BrainGu", // 61337
+ "EFit partners", // 61338
+ "VTech Telecommunications Limited", // 61339
+ "VB-Tech", // 61340
+ "Ideal Credit Union", // 61341
+ "Mote Enterprises Inc.", // 61342
+ "iTran", // 61343
+ "Juel Group", // 61344
+ "Marshall Health Network", // 61345
+ "LLC «P C Most»", // 61346
+ "Kirill Sluzhaev", // 61347
+ "Limited Liability Company ""Thunder Soft""", // 61348
+ "北京中科恒伦科技有限公司 (Beijing Zhongke Henglun Technology Co., Ltd.)", // 61349
+ "SMARTGEN(ZHENGZHOU) TECHNOLOGY CO.,LTD", // 61350
+ "Telekomi Kosoves", // 61351
+ "Parta Networks", // 61352
+ "Polar Wind Medical Center, Inc.", // 61353
+ "Blackbaud Global", // 61354
+ "SHANDONG LURUAN DIGITAL TECHNOLOGY CO., LTD. SMART ENERGY BRANCH", // 61355
+ "NOSSAMAN LLP", // 61356
+ "Cobram Anglican Grammar School", // 61357
+ "Hochschule für Grafik und Buchkunst Leipzig", // 61358
+ "Private Tech, Inc", // 61359
+ "Ediciones Kimün SpA", // 61360
+ "Mental Health Innovation SpA", // 61361
+ "Partner-ed Colaborativa SpA", // 61362
+ "Health-ed SpA", // 61363
+ "Corporación de Derecho Privado I`+DEA", // 61364
+ "HONGTAO", // 61365
+ "Tung You Yu", // 61366
+ "Big Ticket Solutions LLC", // 61367
+ "Subledger", // 61368
+ "CV Bilişim Teknoloji Ticaret Ltd.", // 61369
+ "Big Geek Computer Sales and Service", // 61370
+ "BAW SAS", // 61371
+ "Fritz Kübler GmbH", // 61372
+ "JetStream Software Inc.", // 61373
+ "spaixx AG", // 61374
+ "learnitlessons.com", // 61375
+ "IT-Consulting Kinner", // 61376
+ "Ningbo Deye Inverter Technology Co., Ltd.", // 61377
+ "Chinese Army Factory No. 6909", // 61378
+ "Appleby Westward Group Limited", // 61379
+ "Vitamin IT Limited", // 61380
+ "Clipsal Cortex", // 61381
+ "Squirrel Energy Pty Ltd", // 61382
+ "Jeremy D. Pavleck", // 61383
+ "SWARCO FUTURIT Verkehrssignalsysteme Ges.m.b.H", // 61384
+ "Dongdong Wen", // 61385
+ "ELIM Co., Ltd", // 61386
+ "Verbandsgemeindeverwaltung Vallendar", // 61387
+ "Sinai Health System", // 61388
+ "Wesley College", // 61389
+ "ANSART B.V.", // 61390
+ "NEXT TELEKOM", // 61391
+ "Estado Maior das Forças Armadas", // 61392
+ "Goosnet", // 61393
+ "iDCmini", // 61394
+ "UNIVERSAL INFORMATION SYSTEM TECHNOLOGIES LAB", // 61395
+ "Avernis Communications GmbH", // 61396
+ "Brett Eisenberg", // 61397
+ "Wohler Technologies Inc.", // 61398
+ "SIGENERGY AUSTRALIA PTY LTD", // 61399
+ "CPI International, Inc.", // 61400
+ "Family Walk In Clinic of Mountain Grove Inc", // 61401
+ "Raw TV Ltd", // 61402
+ "Nursyafiqah Mohdfaudzi", // 61403
+ "ABB Robotics", // 61404
+ "Universitätsklinikum Erlangen Gebäudeleittechnik", // 61405
+ "TOOSIGN", // 61406
+ "MULTITECH ENGINEERING LLC", // 61407
+ "Kompas", // 61408
+ "Bavarian Centre for Families and Social Affairs (ZBFS)", // 61409
+ "Name Start", // 61410
+ "GVTel Co. Ltd.", // 61411
+ "John Dowling", // 61412
+ "EPRI", // 61413
+ "Innspark Solutions Private Limited", // 61414
+ "ZASP", // 61415
+ "SINET", // 61416
+ "Emerald", // 61417
+ "Emerald.local", // 61418
+ "The Based Department", // 61419
+ "Capricorn Identity Services Private Limited.", // 61420
+ "Plantynet", // 61421
+ "OPSWAT INC.", // 61422
+ "BioComputing UP", // 61423
+ "D&D Nilsson AB", // 61424
+ "Xtend Technologies Pvt. Ltd.", // 61425
+ "Salzburger Sand- und Kieswerk GmbH", // 61426
+ "Synthesis Health Intelligence Inc.", // 61427
+ "AGILTECH", // 61428
+ "Xi'an THRN Technology Co., Ltd", // 61429
+ "Powerex Corp.", // 61430
+ "Woolworths Group", // 61431
+ "Selectronic Australia Pty Ltd", // 61432
+ "HydroExceed GmbH", // 61433
+ "Product Marketing Service LLC", // 61434
+ "BY Kalim", // 61435
+ "Tessenderlo Kerley Inc.", // 61436
+ "State of Nevada", // 61437
+ "Sierra Vista Hospital", // 61438
+ "Meade's PC Repair Shop, Inc.", // 61439
+ "Basalt AB", // 61440
+ "TELETECNICA s.r.l.", // 61441
+ "Netgroot Infotech Private Limited", // 61442
+ "CommuniGate Software Development & Licensing SA", // 61443
+ "IMESO-IT GmbH", // 61444
+ "Siemens SI GSW IT GC RAIL", // 61445
+ "PT Bank Jago Tbk", // 61446
+ "Shenzhen Beilai Technology Co.,Ltd.", // 61447
+ "Ooredoo Oman", // 61448
+ "Zesp", // 61449
+ "AGENCE FRANCAISE DE DEVELOPPEMENT (AFD)", // 61450
+ "Schloss Tempelhof eG", // 61451
+ "Paul Hagedorn", // 61452
+ "Cybernop, LLC", // 61453
+ "Shawna Odom-Burgower", // 61454
+ "Leonardo (Digital Platform)", // 61455
+ "Inferno Communications", // 61456
+ "Marcelo Augusto Garbuli", // 61457
+ "Northern Schools Trust", // 61458
+ "天磊卫士(深圳)科技有限公司 (Tianlei Guardian (Shenzhen) Technology Co., Ltd.)", // 61459
+ "PT Sentra Vidya Utama", // 61460
+ "Excellent Entertainment AG", // 61461
+ "4Links", // 61462
+ "Zühlke Engineering AG", // 61463
+ "De Vaere Solutions", // 61464
+ "Armstrong Equipment, Inc", // 61465
+ "Connecticut Criminal Justice Information System Governing Board", // 61466
+ "Roland Rechtsschutz Versicherungs AG", // 61467
+ "Mobius Networks Limited", // 61468
+ "Lagardere Travel Retail sp. z o.o.", // 61469
+ "LXDEV Technologies", // 61470
+ "Conexys S.R.L.", // 61471
+ "Swistec GmbH", // 61472
+ "Alliance Transport Bois", // 61473
+ "Mthokozisi", // 61474
+ "Shenzhen Eybond Co., Ltd", // 61475
+ "Götalands Logistik & Transport AB", // 61476
+ "Marcelo Estriga", // 61477
+ "Blep.cz, z. s.", // 61478
+ "Euro-Alkohol GmbH", // 61479
+ "BRUNATA Wärmemesser Hagen GmbH & Co. KG", // 61480
+ "idesis GmbH", // 61481
+ "Amica Senior Lifestyles", // 61482
+ "Pirelli Tyre Russia", // 61483
+ "Daniel Fisher", // 61484
+ "Enet Dev", // 61485
+ "Evgeny Leontyev", // 61486
+ "宁波市商沃通信科技有限公司 (Ningbo Shangwo Communication Technology Co., Ltd.)", // 61487
+ "NotalVision, Inc.", // 61488
+ "SGNT - Sibneftetransproekt", // 61489
+ "Integrated Technical Vision Ltd.", // 61490
+ "Akleza", // 61491
+ "Energy Development Corporation Limited", // 61492
+ "Aviler SARL", // 61493
+ "MWZCONNECT LLC", // 61494
+ "Festival de Cannes", // 61495
+ "Aleksandr Loktev", // 61496
+ "Conor DeCamp", // 61497
+ "RWB PrivateCapital Emissionshaus AG", // 61498
+ "steute Technologies GmbH & Co. KG", // 61499
+ "APL Red Team", // 61500
+ "Malayan Banking Berhad", // 61501
+ "Stadt Nuernberg", // 61502
+ "Delta, LLC", // 61503
+ "PT. Satata Neka Tama", // 61504
+ "Glier's Meats, Inc.", // 61505
+ "Popli Design Group", // 61506
+ "Armstrong Group International, Inc", // 61507
+ "IdentiTek sh.a", // 61508
+ "no42.org", // 61509
+ "Oficiul National al Registrului Comertului", // 61510
+ "J.H. Bennett & Company, Inc.", // 61511
+ "Crump Homelab", // 61512
+ "SondeHub", // 61513
+ "Valley Metro", // 61514
+ "Xian Stannard", // 61515
+ "CooperVision Specialty Eyecare", // 61516
+ "Digit'Eaux", // 61517
+ "Tout Pareil Corp.", // 61518
+ "TDK Sensors AG & Co. KG", // 61519
+ "Abbott LLC", // 61520
+ "llang.at - IT-Dienstleistungen", // 61521
+ "Perryton Equity Exchange", // 61522
+ "EQUIRON", // 61523
+ "Research and Production Association named after A.S. Popov", // 61524
+ "Darletto", // 61525
+ "Dmitry Vorobiev", // 61526
+ "Alexander R Craven", // 61527
+ "MOORNET SOLUTIONS LLC", // 61528
+ "REC SYSTEM co.,ltd", // 61529
+ "G & X Services", // 61530
+ "Layer9.space", // 61531
+ "ServerStep Technology", // 61532
+ "ComroeStudios LLC", // 61533
+ "Envirovision Solutions Systems", // 61534
+ "Groupe Hospitalier Nord-Essonne", // 61535
+ "Polyphony", // 61536
+ "BAE Systems Air Sector (TEST)", // 61537
+ "Brookhaven Surgical Services, PC D/B/A MY Health Long Island Frank Sconzo MD", // 61538
+ "Bidwells LLP", // 61539
+ "Flowbix", // 61540
+ "Anton Luka Šijanec", // 61541
+ "Danilo Klug", // 61542
+ "Isfahan University", // 61543
+ "Flick Gocke Schaumburg Partnerschaft mbB", // 61544
+ "Shanghai Yunsilicon Technology Co.,Ltd.", // 61545
+ "MATTR LIMITED", // 61546
+ "INNIO Jenbacher GmbH & Co OG", // 61547
+ "Schwarz Produktion Stiftung & Co. KG - SPW Papier", // 61548
+ "Sierra Management Services", // 61549
+ "Kyle Ellis", // 61550
+ "Equinox Power Innovations Inc", // 61551
+ "ABSULT-Group", // 61552
+ "Lindinger IT-Services KG", // 61553
+ "Kosmos Infrastructure Foundation", // 61554
+ "HYCU Support Lab (support.hycu.work)", // 61555
+ "Rail Safety Systems Pty Ltd", // 61556
+ "Futurex Inc.", // 61557
+ "Viana & Dias", // 61558
+ "Sweetondale LLC", // 61559
+ "Muon Space, Inc.", // 61560
+ "Thomas Ford Roofing Inc", // 61561
+ "Cisco Flex Platform", // 61562
+ "EnerSys Sp. z o.o.", // 61563
+ "nexo-standards", // 61564
+ "flucon fluid control GmbH", // 61565
+ "VAV Versicherungs AG", // 61566
+ "Sydostskog AB", // 61567
+ "Shanghai Pingbo Info & Tech Ltd.", // 61568
+ "Matthew Gardner", // 61569
+ "Bence Skorka", // 61570
+ "Asseco SEE d.o.o Beograd", // 61571
+ "BNGSOFT ltd.", // 61572
+ "Code Fox", // 61573
+ "Stadt Troisdorf", // 61574
+ "Hylte Paper AB", // 61575
+ "Exportkreditnämnden", // 61576
+ "Coastal Enterprises, Inc.", // 61577
+ "Linknat.com", // 61578
+ "TBC Kredit", // 61579
+ "GIRASOL PE S.R.L", // 61580
+ "Hangzhou Huite Technology CO.,Ltd", // 61581
+ "RedEarth Energy Storage Pty Ltd", // 61582
+ "Telenor Pakistan", // 61583
+ "MAPAL Dr. Kress KG", // 61584
+ "Apollo Infoways PVT LTD", // 61585
+ "Kumi Systems e.U.", // 61586
+ "David Emett", // 61587
+ "EKSELANS by ITS · ITS PARTNER O.B.S. S.L.", // 61588
+ "Tii Technologies Inc.", // 61589
+ "TrusAuth Inc", // 61590
+ "JKiene", // 61591
+ "GSW Frankfurt GmbH", // 61592
+ "Apollo Care", // 61593
+ "Hartono Consulting", // 61594
+ "AISWEI PTY LTD", // 61595
+ "Exail Aerospace", // 61596
+ "Overseas Family School", // 61597
+ "Wavetel Technology Limited", // 61598
+ "Benjamin Parzella", // 61599
+ "Lion Energy", // 61600
+ "Aurora Innovation, Inc.", // 61601
+ "EHOOME IOT PRIVATE LIMITED", // 61602
+ "Bundesanzeiger Verlag GmbH", // 61603
+ "Raytheon UK", // 61604
+ "Amdocs IOT", // 61605
+ "Tosee Enteghal Dade Aryan (TED Aryan)", // 61606
+ "Rolls-Royce Solutions GmbH", // 61607
+ "Stichting Esdégé-Reigersdaal", // 61608
+ "System Admins ApS", // 61609
+ "Firda", // 61610
+ "KYLink", // 61611
+ "Beijing 3CAVI Tech Co.,Ltd", // 61612
+ "Trophy Fish Outdoors", // 61613
+ "La MicroMega Srl", // 61614
+ "Thomas Blome", // 61615
+ "EUROCOLOR Sp. z o.o.", // 61616
+ "Zipit Wireless, Inc.", // 61617
+ "PPDAC LTD", // 61618
+ "AGGRECOST OF NORTH AMERICA BENEFIT CORP", // 61619
+ "BYLT OF NORTH AMERICA BENEFIT CORP", // 61620
+ "xD OF NORTH AMERICA BENEFIT CORP", // 61621
+ "Beep Telecommunications & Computing Ltd.", // 61622
+ "Grundio cPlc.", // 61623
+ "Two Degrees Mobile", // 61624
+ "Phrygian Solutions", // 61625
+ "Asmo Advanced Logistics Services Co.", // 61626
+ "Studierendenwerk Bremen AöR", // 61627
+ "Staatliche Hochschule für Musik und Darstellende Kunst Mannheim", // 61628
+ "上海鑫融网络科技股份有限公司 (Shanghai Xinrong Network Technology Co., Ltd.)", // 61629
+ "Everfox Holdings LLC", // 61630
+ "Ibermutua, Mutua Colaboradora con la Seguridad Social nº 274", // 61631
+ "Westnetz GmbH", // 61632
+ "Alysse Gapsis", // 61633
+ "Cooley LLP", // 61634
+ "Tårnby Kommune", // 61635
+ "U.T.E. Electronic GmbH & Co. KG", // 61636
+ "eSystems MTG GmbH", // 61637
+ "Mecc Alte SPA", // 61638
+ "Metal Service Center Sp. z o. o.", // 61639
+ "SIPEARL SAS", // 61640
+ "Resource Management Associates, Inc.", // 61641
+ "Honeybadger Industries", // 61642
+ "Provide Datenverarbeitung GmbH", // 61643
+ "Lunner.Kommune.no", // 61644
+ "Dyagsys Karya Informatika", // 61645
+ "Région Réunion", // 61646
+ "Fractal Energy Pty Ltd", // 61647
+ "Norcal Ambulance", // 61648
+ "Citykinect Inc", // 61649
+ "Semco Maritime A/S", // 61650
+ "PA Technology Solutions Limited", // 61651
+ "America's First Responders Network", // 61652
+ "DDL-Engineering", // 61653
+ "Digitaltomass", // 61654
+ "CV TRENINDO CIPTA MANDIRI", // 61655
+ "Information Softworks., Inc", // 61656
+ "ArtiVisi Intermedia", // 61657
+ "Equalx Technologies Private Limited", // 61658
+ "xk-image", // 61659
+ "PrecisionX Technology LLC", // 61660
+ "AISWEI Technology Co., Ltd.", // 61661
+ "Community Health & Emergency Services Inc.", // 61662
+ "Monolit IT Sp. z o.o.", // 61663
+ "Etihad Etisalat Company (Mobily)", // 61664
+ "Aleko Embedded", // 61665
+ "Tunstall Systems", // 61666
+ "Anastasios Mavrommatis - IT Lösungen", // 61667
+ "PT Sinar Baru Rajawali", // 61668
+ "Noark Australia Pty Ltd", // 61669
+ "OneTv S.r.l.", // 61670
+ "Gemeinnützige Industrie- Wohnungsaktiengesellschaft", // 61671
+ "Creative Liquid Coatings", // 61672
+ "Concrete Genius Manufacturing Inc.", // 61673
+ "Coridyan", // 61674
+ "Hangzhou Bingte Technology Co., Ltd", // 61675
+ "Wha Yu Industrial Co., Ltd.", // 61676
+ "BxC GmbH & Co. KG", // 61677
+ "FIMER S.p.A", // 61678
+ "Hellenic National Defense General Staff (HNDGS)", // 61679
+ "Troglodyte.io", // 61680
+ "Joe Sniderman & Associates, LLC", // 61681
+ "Kontrolnext Technology", // 61682
+ "Hoffmann Group Engineering GmbH", // 61683
+ "Beutlhauser Holding GmbH", // 61684
+ "Orxcel Co.,Limited", // 61685
+ "Athens-Limestone Hospital", // 61686
+ "Mani Raju (LcDigital)", // 61687
+ "oruga.de", // 61688
+ "Ricon İletişim AŞ", // 61689
+ "ThinkCloud", // 61690
+ "Public Joint Stock Company Mobile TeleSystems (PJSC MTS)" // 61691
}
};
diff --git a/epan/epan.c b/epan/epan.c
index f6659832..43d1f080 100644
--- a/epan/epan.c
+++ b/epan/epan.c
@@ -444,17 +444,17 @@ epan_cleanup(void)
except_deinit();
addr_resolv_cleanup();
-#ifdef HAVE_PLUGINS
- plugins_cleanup(libwireshark_plugins);
- libwireshark_plugins = NULL;
-#endif
-
if (pinfo_pool_cache != NULL) {
wmem_destroy_allocator(pinfo_pool_cache);
pinfo_pool_cache = NULL;
}
wmem_cleanup_scopes();
+
+#ifdef HAVE_PLUGINS
+ plugins_cleanup(libwireshark_plugins);
+ libwireshark_plugins = NULL;
+#endif
}
struct epan_session {
diff --git a/epan/manuf-data.c b/epan/manuf-data.c
index cce93ed8..ed5992ff 100644
--- a/epan/manuf-data.c
+++ b/epan/manuf-data.c
@@ -26,6 +26,7 @@ static const manuf_registry_t ieee_registry_table[] = {
{ { 0x04, 0xD1, 0x6E }, MA_M },
{ { 0x04, 0xEE, 0xE8 }, MA_M },
{ { 0x08, 0x26, 0xAE }, MA_M },
+ { { 0x08, 0x63, 0x32 }, MA_M },
{ { 0x08, 0xED, 0x02 }, MA_M },
{ { 0x08, 0xF8, 0x0D }, MA_M },
{ { 0x0C, 0x5C, 0xB5 }, MA_M },
@@ -92,6 +93,7 @@ static const manuf_registry_t ieee_registry_table[] = {
{ { 0x34, 0x00, 0x8A }, MA_M },
{ { 0x34, 0x04, 0x9E }, MA_M },
{ { 0x34, 0x29, 0x8F }, MA_M },
+ { { 0x34, 0xC8, 0xD6 }, MA_M },
{ { 0x34, 0xD0, 0xB8 }, MA_M },
{ { 0x34, 0xE1, 0xD1 }, MA_M },
{ { 0x38, 0x1F, 0x26 }, MA_M },
@@ -121,6 +123,7 @@ static const manuf_registry_t ieee_registry_table[] = {
{ { 0x48, 0x0B, 0xB2 }, MA_M },
{ { 0x48, 0x65, 0xEE }, MA_M },
{ { 0x48, 0xDA, 0x35 }, MA_M },
+ { { 0x48, 0xE6, 0x63 }, MA_M },
{ { 0x4C, 0x4B, 0xF9 }, MA_M },
{ { 0x4C, 0x65, 0xA8 }, MA_M },
{ { 0x4C, 0x74, 0xA7 }, MA_M },
@@ -153,6 +156,7 @@ static const manuf_registry_t ieee_registry_table[] = {
{ { 0x5C, 0xF8, 0x38 }, MA_M },
{ { 0x60, 0x15, 0x92 }, MA_M },
{ { 0x60, 0x95, 0xCE }, MA_M },
+ { { 0x60, 0xA4, 0x34 }, MA_M },
{ { 0x60, 0xD7, 0xE3 }, MA_M },
{ { 0x64, 0x31, 0x39 }, MA_M },
{ { 0x64, 0x33, 0xB5 }, MA_M },
@@ -197,6 +201,7 @@ static const manuf_registry_t ieee_registry_table[] = {
{ { 0x80, 0x02, 0xF4 }, MA_M },
{ { 0x80, 0x0A, 0x80 }, MA_M },
{ { 0x80, 0x7B, 0x85 }, MA_M },
+ { { 0x80, 0xA5, 0x79 }, MA_M },
{ { 0x80, 0xE4, 0xDA }, MA_M },
{ { 0x84, 0x11, 0xC2 }, MA_M },
{ { 0x84, 0x39, 0xBE }, MA_M },
@@ -222,6 +227,7 @@ static const manuf_registry_t ieee_registry_table[] = {
{ { 0x8C, 0xA6, 0x82 }, MA_M },
{ { 0x8C, 0xAE, 0x49 }, MA_M },
{ { 0x8C, 0xC8, 0xF4 }, MA_M },
+ { { 0x90, 0x15, 0x64 }, MA_M },
{ { 0x90, 0x4E, 0x91 }, MA_M },
{ { 0x90, 0xA9, 0xF7 }, MA_M },
{ { 0x90, 0xC6, 0x82 }, MA_M },
@@ -290,6 +296,7 @@ static const manuf_registry_t ieee_registry_table[] = {
{ { 0xC4, 0x98, 0x94 }, MA_M },
{ { 0xC4, 0xA1, 0x0E }, MA_M },
{ { 0xC4, 0xA5, 0x59 }, MA_M },
+ { { 0xC4, 0xCC, 0x37 }, MA_M },
{ { 0xC4, 0xFF, 0xBC }, MA_M },
{ { 0xC8, 0x2C, 0x2B }, MA_M },
{ { 0xC8, 0x5C, 0xE2 }, MA_M },
@@ -298,6 +305,7 @@ static const manuf_registry_t ieee_registry_table[] = {
{ { 0xC8, 0x8E, 0xD1 }, MA_M },
{ { 0xC8, 0x98, 0xDB }, MA_M },
{ { 0xC8, 0xF5, 0xD6 }, MA_M },
+ { { 0xC8, 0xFF, 0xBF }, MA_M },
{ { 0xCC, 0x1B, 0xE0 }, MA_M },
{ { 0xCC, 0x22, 0x37 }, MA_M },
{ { 0xCC, 0x4F, 0x5C }, MA_M },
@@ -1766,7 +1774,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x05, 0x7B }, "ChungNamElec", "Chung Nam Electronic Co., Ltd." },
{ { 0x00, 0x05, 0x7C }, "RCOSecurity", "RCO Security AB" },
{ { 0x00, 0x05, 0x7D }, "SunCommunica", "Sun Communications, Inc." },
- { { 0x00, 0x05, 0x7E }, "EckelmannSte", "Eckelmann Steuerungstechnik GmbH" },
+ { { 0x00, 0x05, 0x7E }, "Eckelmann", "Eckelmann AG" },
{ { 0x00, 0x05, 0x7F }, "AcqisTechnol", "Acqis Technology" },
{ { 0x00, 0x05, 0x80 }, "FibroLAN", "FibroLAN Ltd." },
{ { 0x00, 0x05, 0x81 }, "Snell", "Snell" },
@@ -4573,7 +4581,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x10, 0x99 }, "InnoMedia", "InnoMedia, Inc." },
{ { 0x00, 0x10, 0x9A }, "Netline", "Netline" },
{ { 0x00, 0x10, 0x9B }, "Emulex", "Emulex Corporation" },
- { { 0x00, 0x10, 0x9C }, "MSystem", "M-System Co., Ltd." },
+ { { 0x00, 0x10, 0x9C }, "MG", "MG Co., Ltd." },
{ { 0x00, 0x10, 0x9D }, "Clarinet", "Clarinet Systems, Inc." },
{ { 0x00, 0x10, 0x9E }, "Aware", "Aware, Inc." },
{ { 0x00, 0x10, 0x9F }, "Pavo", "Pavo, Inc." },
@@ -5497,7 +5505,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x14, 0x35 }, "CityCom", "CityCom Corp." },
{ { 0x00, 0x14, 0x36 }, "QwertyElektr", "Qwerty Elektronik AB" },
{ { 0x00, 0x14, 0x37 }, "GSTeletech", "GSTeletech Co.,Ltd." },
- { { 0x00, 0x14, 0x38 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x00, 0x14, 0x38 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x00, 0x14, 0x39 }, "BlonderTongu", "Blonder Tongue Laboratories, Inc" },
{ { 0x00, 0x14, 0x3A }, "RaytalkInter", "Raytalk International Srl" },
{ { 0x00, 0x14, 0x3B }, "Sensovation", "Sensovation AG" },
@@ -7646,7 +7654,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x1C, 0x9E }, "DualtechIT", "Dualtech IT AB" },
{ { 0x00, 0x1C, 0x9F }, "Razorstream", "Razorstream, LLC" },
{ { 0x00, 0x1C, 0xA0 }, "ProductionRe", "Production Resource Group, LLC" },
- { { 0x00, 0x1C, 0xA1 }, "AkamaiTechno", "Akamai Technologies, Inc." },
+ { { 0x00, 0x1C, 0xA1 }, "AkamaiTechno", "Akamai Technologies Inc." },
{ { 0x00, 0x1C, 0xA2 }, "ADBBroadband", "ADB Broadband Italia" },
{ { 0x00, 0x1C, 0xA3 }, "Terra", "Terra" },
{ { 0x00, 0x1C, 0xA4 }, "Sony", "Sony Corporation" },
@@ -9044,7 +9052,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x22, 0x15 }, "ASUSTekCOMPU", "ASUSTek COMPUTER INC." },
{ { 0x00, 0x22, 0x16 }, "ShibauraVend", "Shibaura Vending Machine Corporation" },
{ { 0x00, 0x22, 0x17 }, "NeatElectron", "Neat Electronics" },
- { { 0x00, 0x22, 0x18 }, "AkamaiTechno", "Akamai Technologies Inc" },
+ { { 0x00, 0x22, 0x18 }, "AkamaiTechno", "Akamai Technologies Inc." },
{ { 0x00, 0x22, 0x19 }, "Dell", "Dell Inc." },
{ { 0x00, 0x22, 0x1A }, "AudioPrecisi", "Audio Precision" },
{ { 0x00, 0x22, 0x1B }, "Morega", "Morega Systems" },
@@ -10329,6 +10337,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x2A, 0x6A }, "Cisco", "Cisco Systems, Inc" },
{ { 0x00, 0x2A, 0xAF }, "LARsysAutoma", "LARsys-Automation GmbH" },
{ { 0x00, 0x2B, 0x67 }, "LCFCElectron", "LCFC(HeFei) Electronics Technology co., ltd" },
+ { { 0x00, 0x2B, 0x70 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x00, 0x2B, 0xF5 }, "Buffalo", "Buffalo.Inc" },
{ { 0x00, 0x2C, 0xC8 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x00, 0x2D, 0x76 }, "TITECH", "TITECH GmbH" },
@@ -10907,7 +10916,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x4C, 0xE5 }, "SichuanTiany", "Sichuan Tianyi Comheart Telecom Co.,LTD" },
{ { 0x00, 0x4D, 0x32 }, "AndonHealth", "Andon Health Co.,Ltd." },
{ { 0x00, 0x4E, 0x01 }, "Dell", "Dell Inc." },
- { { 0x00, 0x4E, 0x35 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x00, 0x4E, 0x35 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x00, 0x4F, 0x1A }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x00, 0x50, 0x00 }, "NexoCommunic", "Nexo Communications, Inc." },
{ { 0x00, 0x50, 0x01 }, "Yamashita", "Yamashita Systems Corp." },
@@ -11746,6 +11755,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x80, 0xFD }, "ExsceedCorpr", "Exsceed Corpration" },
{ { 0x00, 0x80, 0xFE }, "AzureTechnol", "Azure Technologies, Inc." },
{ { 0x00, 0x80, 0xFF }, "SocDeTeleinf", "Soc. De Teleinformatique Rtc" },
+ { { 0x00, 0x81, 0x2A }, "Apple", "Apple, Inc." },
{ { 0x00, 0x81, 0xC4 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x00, 0x81, 0xF9 }, "TexasInstrum", "Texas Instruments" },
{ { 0x00, 0x84, 0x1E }, "CiscoMeraki", "Cisco Meraki" },
@@ -12324,6 +12334,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0xAA, 0x3C }, "OlivettiTele", "Olivetti Telecom Spa (Olteco)" },
{ { 0x00, 0xAA, 0x6E }, "Cisco", "Cisco Systems, Inc" },
{ { 0x00, 0xAA, 0x70 }, "LGElectronic", "LG Electronics (Mobile Communications)" },
+ { { 0x00, 0xAA, 0xFD }, "TexasInstrum", "Texas Instruments" },
{ { 0x00, 0xAB, 0x48 }, "eero", "eero inc." },
{ { 0x00, 0xAC, 0xE0 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x00, 0xAD, 0x24 }, "DLinkInterna", "D-Link International" },
@@ -12960,6 +12971,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0xD4, 0x9E }, "Intel", "Intel Corporate" },
{ { 0x00, 0xD5, 0x98 }, "BopelMobileT", "Bopel Mobile Technology Co.,Limited" },
{ { 0x00, 0xD6, 0x32 }, "GEEnergy", "GE Energy" },
+ { { 0x00, 0xD6, 0xCB }, "QuectelWirel", "Quectel Wireless Solutions Co.,Ltd." },
{ { 0x00, 0xD6, 0xFE }, "Cisco", "Cisco Systems, Inc" },
{ { 0x00, 0xD7, 0x6D }, "Intel", "Intel Corporate" },
{ { 0x00, 0xD7, 0x8F }, "Cisco", "Cisco Systems, Inc" },
@@ -13304,7 +13316,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0xFC, 0x8D }, "HitronTechno", "Hitron Technologies. Inc" },
{ { 0x00, 0xFC, 0xBA }, "Cisco", "Cisco Systems, Inc" },
{ { 0x00, 0xFD, 0x22 }, "Cisco", "Cisco Systems, Inc" },
- { { 0x00, 0xFD, 0x45 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x00, 0xFD, 0x45 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x00, 0xFD, 0x4C }, "Nevatec", "Nevatec" },
{ { 0x00, 0xFE, 0xC8 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x02, 0x07, 0x01 }, "RacalDatacom", "Racal-Datacom" },
@@ -13330,7 +13342,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x04, 0x04, 0xEA }, "ValensSemico", "Valens Semiconductor Ltd." },
{ { 0x04, 0x05, 0xDD }, "CultraviewDi", "Shenzhen Cultraview Digital Technology Co., Ltd" },
{ { 0x04, 0x07, 0x2E }, "VTechElectro", "VTech Electronics Ltd." },
- { { 0x04, 0x09, 0x73 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x04, 0x09, 0x73 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x04, 0x09, 0x86 }, "Arcadyan", "Arcadyan Corporation" },
{ { 0x04, 0x09, 0xA5 }, "HFR", "HFR, Inc." },
{ { 0x04, 0x0A, 0x83 }, "AlcatelLucen", "Alcatel-Lucent" },
@@ -13362,6 +13374,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x04, 0x21, 0x44 }, "SunitecEnter", "Sunitec Enterprise Co.,Ltd" },
{ { 0x04, 0x21, 0x4C }, "InsightEnerg", "Insight Energy Ventures LLC" },
{ { 0x04, 0x22, 0x34 }, "WirelessStan", "Wireless Standard Extensions" },
+ { { 0x04, 0x23, 0x22 }, "TexasInstrum", "Texas Instruments" },
{ { 0x04, 0x25, 0xC5 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x04, 0x25, 0xE0 }, "TaicangT&WEl", "Taicang T&W Electronics" },
{ { 0x04, 0x25, 0xE8 }, "TexasInstrum", "Texas Instruments" },
@@ -13396,6 +13409,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x04, 0x3F, 0x72 }, "MellanoxTech", "Mellanox Technologies, Inc." },
{ { 0x04, 0x40, 0xA9 }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x04, 0x41, 0x69 }, "GoPro", "GoPro" },
+ { { 0x04, 0x41, 0xA5 }, "Apple", "Apple, Inc." },
{ { 0x04, 0x42, 0x1A }, "ASUSTekCOMPU", "ASUSTek COMPUTER INC." },
{ { 0x04, 0x43, 0xFD }, "SichuanTiany", "Sichuan Tianyi Comheart Telecom Co.,LTD" },
{ { 0x04, 0x44, 0xA1 }, "TeleconGalic", "Telecon Galicia,S.A." },
@@ -13911,6 +13925,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x08, 0x40, 0xF3 }, "TendaTechnol", "Tenda Technology Co.,Ltd.Dongguan branch" },
{ { 0x08, 0x42, 0x18 }, "Asyril", "Asyril SA" },
{ { 0x08, 0x42, 0x96 }, "MobileTechno", "Mobile Technology Solutions LLC" },
+ { { 0x08, 0x44, 0x73 }, "zte", "zte corporation" },
{ { 0x08, 0x45, 0xD1 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x08, 0x46, 0x56 }, "VeoLabs", "Veo-Labs" },
{ { 0x08, 0x46, 0xC7 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
@@ -13927,6 +13942,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x08, 0x51, 0x14 }, "QingdaoTopsc", "Qingdao Topscomm Communication Co., Ltd" },
{ { 0x08, 0x51, 0x2E }, "OrionDiagnos", "Orion Diagnostica Oy" },
{ { 0x08, 0x52, 0x40 }, "EbVElektroni", "EbV Elektronikbau- und Vertriebs GmbH" },
+ { { 0x08, 0x52, 0x4E }, "FangchengBai", "Shenzhen Fangcheng Baiyi Technology Co., Ltd." },
{ { 0x08, 0x54, 0x11 }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
{ { 0x08, 0x54, 0xBB }, "ChuangweiRgb", "Shenzhen Chuangwei-Rgb Electronics Co.,Ltd" },
{ { 0x08, 0x55, 0x31 }, "Routerboardc", "Routerboard.com" },
@@ -14013,7 +14029,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x08, 0x95, 0x42 }, "Apple", "Apple, Inc." },
{ { 0x08, 0x96, 0xAD }, "Cisco", "Cisco Systems, Inc" },
{ { 0x08, 0x96, 0xD7 }, "AVM", "AVM GmbH" },
- { { 0x08, 0x97, 0x34 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x08, 0x97, 0x34 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x08, 0x97, 0x58 }, "StrongRising", "Shenzhen Strong Rising Electronics Co.,Ltd DongGuan Subsidiary" },
{ { 0x08, 0x97, 0x98 }, "CompalInform", "Compal Information (Kunshan) Co., Ltd." },
{ { 0x08, 0x99, 0xE8 }, "KEMAS", "KEMAS GmbH" },
@@ -14032,6 +14048,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x08, 0xA5, 0xC8 }, "SunnovoInter", "Sunnovo International Limited" },
{ { 0x08, 0xA5, 0xDF }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x08, 0xA6, 0xBC }, "AmazonTechno", "Amazon Technologies Inc." },
+ { { 0x08, 0xA6, 0xF7 }, "Espressif", "Espressif Inc." },
{ { 0x08, 0xA7, 0xC0 }, "VantivaUSA", "Vantiva USA LLC" },
{ { 0x08, 0xA8, 0x42 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x08, 0xA8, 0xA1 }, "Cyclotronics", "Cyclotronics Power Concepts, Inc" },
@@ -14055,6 +14072,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x08, 0xB7, 0xEC }, "WirelessSeis", "Wireless Seismic" },
{ { 0x08, 0xBA, 0x22 }, "Swaive", "Swaive Corporation" },
{ { 0x08, 0xBA, 0x5F }, "QingdaoHisen", "Qingdao Hisense Electronics Co.,Ltd." },
+ { { 0x08, 0xBA, 0xB7 }, "CeragonNetwo", "Ceragon Networks Ltd." },
{ { 0x08, 0xBB, 0x3C }, "FlextronicsT", "Flextronics Tech.(Ind) Pvt Ltd" },
{ { 0x08, 0xBB, 0xCC }, "AKNORDEDVVER", "AK-NORD EDV VERTRIEBSGES. mbH" },
{ { 0x08, 0xBC, 0x20 }, "RoyalCloudTe", "Hangzhou Royal Cloud Technology Co., Ltd" },
@@ -14093,6 +14111,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x08, 0xD5, 0x9D }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x08, 0xD5, 0xC0 }, "SeersTechnol", "Seers Technology Co., Ltd" },
{ { 0x08, 0xD8, 0x33 }, "RFTechnology", "Shenzhen RF Technology Co., Ltd" },
+ { { 0x08, 0xDD, 0xEB }, "SiliconLabor", "Silicon Laboratories" },
{ { 0x08, 0xDF, 0x1F }, "Bose", "Bose Corporation" },
{ { 0x08, 0xDF, 0xCB }, "SystromeNetw", "Systrome Networks" },
{ { 0x08, 0xE0, 0x21 }, "HonorDevice", "Honor Device Co., Ltd." },
@@ -14121,9 +14140,10 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x08, 0xEF, 0x3B }, "MCSLogic", "MCS Logic Inc." },
{ { 0x08, 0xEF, 0xAB }, "SaymeWireles", "Sayme Wireless Sensor Network" },
{ { 0x08, 0xF0, 0x1E }, "eero", "eero inc." },
+ { { 0x08, 0xF0, 0xB6 }, "EdifierInter", "Edifier International" },
{ { 0x08, 0xF1, 0xB3 }, "CiscoMeraki", "Cisco Meraki" },
{ { 0x08, 0xF1, 0xB7 }, "TowerstreamC", "Towerstream Corpration" },
- { { 0x08, 0xF1, 0xEA }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x08, 0xF1, 0xEA }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x08, 0xF2, 0xF4 }, "NetOnePartne", "Net One Partners Co.,Ltd." },
{ { 0x08, 0xF3, 0xFB }, "Cisco", "Cisco Systems, Inc" },
{ { 0x08, 0xF4, 0x58 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -14145,10 +14165,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x08, 0xFF, 0x24 }, "SkyworthDigi", "Shenzhen Skyworth Digital Technology CO., Ltd" },
{ { 0x08, 0xFF, 0x44 }, "Apple", "Apple, Inc." },
{ { 0x0A, 0x2A, 0x33 }, "Digistor", "Digistor" },
+ { { 0x0A, 0x35, 0xF2 }, "IntegratedTe", "Integrated Technical Vision Ltd" },
{ { 0x0A, 0x36, 0x1C }, "Smardii", "Smardii" },
{ { 0x0A, 0x87, 0x36 }, "IEEE1901Work", "IEEE 1901 Working Group" },
{ { 0x0A, 0x8E, 0x62 }, "DeltaSolutio", "Delta Solutions LLC" },
{ { 0x0A, 0xA2, 0x3B }, "Vitex", "Vitex LLC" },
+ { { 0x0A, 0xAB, 0x8C }, "MidwestMicro", "Midwest Microwave Solutions Inc." },
{ { 0x0A, 0xCD, 0x8F }, "CiscoNorway", "Cisco Systems Norway" },
{ { 0x0A, 0xD9, 0xC4 }, "CraftDesigns", "Craft Designs, Inc" },
{ { 0x0A, 0xE4, 0x71 }, "Caterpillar", "Caterpillar Inc." },
@@ -14161,6 +14183,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0x04, 0x00 }, "Jantardoo", "Jantar d.o.o." },
{ { 0x0C, 0x05, 0x35 }, "Juniper", "Juniper Systems" },
{ { 0x0C, 0x08, 0xB4 }, "HUMAX", "HUMAX Co., Ltd." },
+ { { 0x0C, 0x0A, 0xDF }, "TexasInstrum", "Texas Instruments" },
{ { 0x0C, 0x0E, 0x76 }, "DLinkInterna", "D-Link International" },
{ { 0x0C, 0x11, 0x05 }, "AkuvoxNetwor", "Akuvox (Xiamen) Networks Co., Ltd" },
{ { 0x0C, 0x11, 0x67 }, "Cisco", "Cisco Systems, Inc" },
@@ -14187,6 +14210,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0x20, 0xD3 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x0C, 0x21, 0x38 }, "Hengstler", "Hengstler GmbH" },
{ { 0x0C, 0x23, 0x69 }, "HoneywellSPS", "Honeywell SPS" },
+ { { 0x0C, 0x23, 0x8D }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x0C, 0x25, 0x76 }, "LongcheerTel", "Longcheer Telecommunication Limited" },
{ { 0x0C, 0x27, 0x24 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x0C, 0x27, 0x55 }, "ValuableTech", "Valuable Techologies Limited" },
@@ -14229,6 +14253,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0x49, 0x33 }, "SichuanJiuzh", "Sichuan Jiuzhou Electronic Technology Co., Ltd." },
{ { 0x0C, 0x4B, 0x48 }, "Nokia", "Nokia" },
{ { 0x0C, 0x4B, 0x54 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
+ { { 0x0C, 0x4B, 0xEE }, "TexasInstrum", "Texas Instruments" },
{ { 0x0C, 0x4C, 0x39 }, "MitraStarTec", "MitraStar Technology Corp." },
{ { 0x0C, 0x4D, 0xE9 }, "Apple", "Apple, Inc." },
{ { 0x0C, 0x4E, 0xC0 }, "Maxlinear", "Maxlinear Inc" },
@@ -14264,6 +14289,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0x67, 0x14 }, "SernetTechno", "Sernet (Suzhou) Technologies Corporation" },
{ { 0x0C, 0x67, 0x43 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x0C, 0x68, 0x03 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x0C, 0x68, 0x25 }, "SuzhouHYCtec", "Suzhou HYC technology Co., Ltd." },
{ { 0x0C, 0x6A, 0xBC }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x0C, 0x6A, 0xC4 }, "Apple", "Apple, Inc." },
{ { 0x0C, 0x6A, 0xE6 }, "StanleySecur", "Stanley Security Solutions" },
@@ -14449,6 +14475,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0xEC, 0x80 }, "TexasInstrum", "Texas Instruments" },
{ { 0x0C, 0xEC, 0x84 }, "TINNOMobileT", "Shenzhen TINNO Mobile Technology Corp." },
{ { 0x0C, 0xEC, 0x8D }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
+ { { 0x0C, 0xED, 0xC8 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x0C, 0xEE, 0x99 }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0x0C, 0xEE, 0xE6 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x0C, 0xEF, 0x7C }, "AnaCom", "AnaCom Inc" },
@@ -14543,7 +14570,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x10, 0x2E, 0x00 }, "Intel", "Intel Corporate" },
{ { 0x10, 0x2E, 0xAF }, "TexasInstrum", "Texas Instruments" },
{ { 0x10, 0x2F, 0x6B }, "Microsoft", "Microsoft Corporation" },
+ { { 0x10, 0x2F, 0x6E }, "SundrayTechn", "Shenzhen Sundray Technologies Company Limited" },
{ { 0x10, 0x2F, 0xA3 }, "UvisiontechT", "Shenzhen Uvision-tech Technology Co.Ltd" },
+ { { 0x10, 0x2F, 0xF8 }, "Vicoretek", "Vicoretek (Nanjing) Co.,Ltd." },
{ { 0x10, 0x30, 0x25 }, "Apple", "Apple, Inc." },
{ { 0x10, 0x30, 0x34 }, "Cara", "Cara Systems" },
{ { 0x10, 0x30, 0x47 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -14608,6 +14637,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x10, 0x5D, 0xDC }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x10, 0x5F, 0x06 }, "ActiontecEle", "Actiontec Electronics, Inc" },
{ { 0x10, 0x5F, 0x49 }, "CiscoSPVTG", "Cisco SPVTG" },
+ { { 0x10, 0x5F, 0xAD }, "Intel", "Intel Corporate" },
{ { 0x10, 0x5F, 0xD4 }, "Tendyron", "Tendyron Corporation" },
{ { 0x10, 0x60, 0x4B }, "HewlettPacka", "Hewlett Packard" },
{ { 0x10, 0x62, 0xC9 }, "Adatis", "Adatis GmbH & Co. KG" },
@@ -14657,6 +14687,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x10, 0x82, 0x3D }, "RuijieNetwor", "Ruijie Networks Co.,LTD" },
{ { 0x10, 0x82, 0x86 }, "LuxsharePrec", "Luxshare Precision Industry Co.,Ltd" },
{ { 0x10, 0x82, 0xD7 }, "RealmeChongq", "Realme Chongqing Mobile Telecommunications Corp.,Ltd." },
+ { { 0x10, 0x83, 0xB4 }, "Sidora", "Sidora Srl" },
{ { 0x10, 0x83, 0xD2 }, "Microseven", "Microseven Systems, LLC" },
{ { 0x10, 0x86, 0x8C }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x10, 0x88, 0x0F }, "DarumaTeleco", "Daruma Telecomunicações e Informática S.A." },
@@ -14681,6 +14712,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x10, 0x96, 0x1A }, "ChipseaTechn", "Chipsea Technologies (Shenzhen) Corp." },
{ { 0x10, 0x96, 0x93 }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0x10, 0x97, 0xBD }, "Espressif", "Espressif Inc." },
+ { { 0x10, 0x98, 0x19 }, "Dell", "Dell Inc." },
{ { 0x10, 0x98, 0x26 }, "Nokia", "Nokia" },
{ { 0x10, 0x98, 0x36 }, "Dell", "Dell Inc." },
{ { 0x10, 0x98, 0xC3 }, "MurataManufa", "Murata Manufacturing Co., Ltd." },
@@ -14695,6 +14727,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x10, 0x9F, 0x4F }, "NewH3CIntell", "New H3C Intelligence Terminal Co., Ltd." },
{ { 0x10, 0x9F, 0xA9 }, "ActiontecEle", "Actiontec Electronics, Inc" },
{ { 0x10, 0xA1, 0x3B }, "FujikuraRubb", "Fujikura Rubber Ltd." },
+ { { 0x10, 0xA1, 0x45 }, "nexzoindia", "nexzo india pvt ltd" },
{ { 0x10, 0xA2, 0x4E }, "Gold3LinkEle", "Gold3Link Electronics Co., Ltd" },
{ { 0x10, 0xA2, 0xD3 }, "Apple", "Apple, Inc." },
{ { 0x10, 0xA3, 0xB8 }, "Iskrateldoo", "Iskratel d.o.o." },
@@ -14785,6 +14818,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x10, 0xE1, 0x77 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x10, 0xE2, 0xC9 }, "Apple", "Apple, Inc." },
{ { 0x10, 0xE2, 0xD5 }, "QiHardware", "Qi Hardware Inc." },
+ { { 0x10, 0xE3, 0x76 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x10, 0xE3, 0xC7 }, "SeohwaTeleco", "Seohwa Telecom" },
{ { 0x10, 0xE4, 0xAF }, "Apr", "Apr, Llc" },
{ { 0x10, 0xE4, 0xC2 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -14828,7 +14862,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x14, 0x00, 0xE9 }, "MitelNetwork", "Mitel Networks Corporation" },
{ { 0x14, 0x01, 0x52 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x14, 0x01, 0x9C }, "Ubyon", "Ubyon Inc." },
- { { 0x14, 0x02, 0xEC }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x14, 0x02, 0xEC }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x14, 0x04, 0x67 }, "SNKTechnolog", "SNK Technologies Co.,Ltd." },
{ { 0x14, 0x06, 0x4C }, "VoglElectron", "Vogl Electronic GmbH" },
{ { 0x14, 0x07, 0x08 }, "CpPlus", "Cp Plus Gmbh & Co. Kg" },
@@ -14867,6 +14901,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x14, 0x1A, 0xA3 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0x14, 0x1A, 0xAA }, "MetalWork", "Metal Work SpA" },
{ { 0x14, 0x1B, 0x30 }, "YipingfangNe", "Shenzhen Yipingfang Network Technology Co., Ltd." },
+ { { 0x14, 0x1B, 0xA0 }, "Apple", "Apple, Inc." },
{ { 0x14, 0x1B, 0xBD }, "Volex", "Volex Inc." },
{ { 0x14, 0x1B, 0xF0 }, "Intellimedia", "Intellimedia Systems Ltd" },
{ { 0x14, 0x1F, 0x78 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -14879,6 +14914,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x14, 0x23, 0xD7 }, "Eutronix", "Eutronix Co., Ltd." },
{ { 0x14, 0x23, 0xF2 }, "Broadcom", "Broadcom Limited" },
{ { 0x14, 0x24, 0x75 }, "4DReplay", "4DReplay, Inc" },
+ { { 0x14, 0x28, 0x76 }, "Apple", "Apple, Inc." },
{ { 0x14, 0x28, 0x82 }, "MidicomElect", "Midicom Electronics Co.Ltd" },
{ { 0x14, 0x29, 0x71 }, "NemoaElectro", "Nemoa Electronics (Hk) Co. Ltd" },
{ { 0x14, 0x2A, 0x14 }, "SelenviewDig", "ShenZhen Selenview Digital Technology Co.,Ltd" },
@@ -14903,6 +14939,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x14, 0x34, 0xF6 }, "LvSolutionSd", "Lv Solution Sdn. Bhd." },
{ { 0x14, 0x35, 0x8B }, "MediabridgeP", "Mediabridge Products, LLC." },
{ { 0x14, 0x35, 0xB3 }, "FutureDesign", "Future Designs, Inc." },
+ { { 0x14, 0x35, 0xB7 }, "Apple", "Apple, Inc." },
{ { 0x14, 0x36, 0x05 }, "Nokia", "Nokia Corporation" },
{ { 0x14, 0x36, 0xC6 }, "LenovoMobile", "Lenovo Mobile Communication Technology Ltd." },
{ { 0x14, 0x37, 0x19 }, "PTPrakarsaVi", "PT Prakarsa Visi Valutama" },
@@ -14991,6 +15028,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x14, 0x7E, 0xA1 }, "BritaniaElet", "Britania Eletrônicos S.A." },
{ { 0x14, 0x7F, 0x0F }, "TexasInstrum", "Texas Instruments" },
{ { 0x14, 0x7F, 0x67 }, "LGInnotek", "LG Innotek" },
+ { { 0x14, 0x7F, 0xCE }, "Apple", "Apple, Inc." },
{ { 0x14, 0x82, 0x5B }, "HefeiRadioCo", "Hefei Radio Communication Technology Co., Ltd" },
{ { 0x14, 0x84, 0x30 }, "MitacComputi", "Mitac Computing Technology Corporation" },
{ { 0x14, 0x84, 0x73 }, "Cisco", "Cisco Systems, Inc" },
@@ -15119,6 +15157,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x14, 0xDD, 0xA9 }, "ASUSTekCOMPU", "ASUSTek COMPUTER INC." },
{ { 0x14, 0xDD, 0xE5 }, "Mpmkvvcl", "Mpmkvvcl" },
{ { 0x14, 0xDE, 0x39 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
+ { { 0x14, 0xE0, 0x1D }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x14, 0xE4, 0xEC }, "mLogic", "mLogic LLC" },
{ { 0x14, 0xE6, 0xE4 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x14, 0xE7, 0xC8 }, "IntegratedDe", "Integrated Device Technology (Malaysia) Sdn. Bhd." },
@@ -15152,6 +15191,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x18, 0x02, 0xAE }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x18, 0x03, 0x73 }, "Dell", "Dell Inc." },
{ { 0x18, 0x03, 0xFA }, "IBTInterface", "IBT Interfaces" },
+ { { 0x18, 0x04, 0x03 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x18, 0x04, 0xED }, "TexasInstrum", "Texas Instruments" },
{ { 0x18, 0x06, 0x75 }, "DilaxIntelco", "Dilax Intelcom GmbH" },
{ { 0x18, 0x06, 0xF5 }, "RADDataCommu", "RAD Data Communications, Ltd." },
@@ -15160,6 +15200,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x18, 0x0B, 0x52 }, "NanotronTech", "Nanotron Technologies GmbH" },
{ { 0x18, 0x0C, 0x14 }, "iSonea", "iSonea Limited" },
{ { 0x18, 0x0C, 0x77 }, "Westinghouse", "Westinghouse Electric Company, LLC" },
+ { { 0x18, 0x0C, 0x7A }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x18, 0x0C, 0xAC }, "Canon", "Canon Inc." },
{ { 0x18, 0x0D, 0x2C }, "Intelbras", "Intelbras" },
{ { 0x18, 0x0E, 0xAC }, "FastTechnolo", "Shenzhen Fast Technologies Co.,Ltd" },
@@ -15176,7 +15217,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x18, 0x16, 0xE8 }, "SiliconwareP", "Siliconware Precision Industries Co., Ltd." },
{ { 0x18, 0x17, 0x14 }, "Daewoois", "Daewoois" },
{ { 0x18, 0x17, 0x25 }, "CameoCommuni", "Cameo Communications, Inc." },
- { { 0x18, 0x18, 0x8B }, "FcntLmited", "Fcnt Lmited" },
+ { { 0x18, 0x18, 0x8B }, "Fcnt", "Fcnt Llc" },
{ { 0x18, 0x19, 0x3F }, "Tamtron", "Tamtron Oy" },
{ { 0x18, 0x19, 0xD6 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x18, 0x1B, 0xEB }, "ActiontecEle", "Actiontec Electronics, Inc" },
@@ -15335,6 +15376,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x18, 0x80, 0xCE }, "BarberrySolu", "Barberry Solutions Ltd" },
{ { 0x18, 0x80, 0xF5 }, "AlcatelLucen", "Alcatel-Lucent Shanghai Bell Co., Ltd" },
{ { 0x18, 0x81, 0x0E }, "Apple", "Apple, Inc." },
+ { { 0x18, 0x81, 0xED }, "TeracomTelem", "Teracom Telematica S.A" },
{ { 0x18, 0x82, 0x19 }, "AlibabaCloud", "Alibaba Cloud Computing Ltd." },
{ { 0x18, 0x82, 0x8C }, "Arcadyan", "Arcadyan Corporation" },
{ { 0x18, 0x83, 0x31 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -15373,6 +15415,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x18, 0x9C, 0x27 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x18, 0x9C, 0x5D }, "Cisco", "Cisco Systems, Inc" },
{ { 0x18, 0x9E, 0x2C }, "HuaweiDevice", "Huawei Device Co., Ltd." },
+ { { 0x18, 0x9E, 0x2D }, "AllwinnerTec", "Allwinner Technology Co., Ltd" },
{ { 0x18, 0x9E, 0xAD }, "ChengqianInf", "Shenzhen Chengqian Information Technology Co., Ltd" },
{ { 0x18, 0x9E, 0xFC }, "Apple", "Apple, Inc." },
{ { 0x18, 0xA2, 0x8A }, "EsselT", "Essel-T Co., Ltd" },
@@ -15482,6 +15525,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x18, 0xEE, 0x86 }, "NovatelWirel", "Novatel Wireless Solutions, Inc." },
{ { 0x18, 0xEF, 0x3A }, "SichuanAILin", "Sichuan AI-Link Technology Co., Ltd." },
{ { 0x18, 0xEF, 0x63 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x18, 0xEF, 0xC0 }, "SercommJapan", "Sercomm Japan Corporation" },
{ { 0x18, 0xF0, 0xE4 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x18, 0xF1, 0x45 }, "NetCommWirel", "NetComm Wireless Limited" },
{ { 0x18, 0xF1, 0x8E }, "ChipERTechno", "ChipER Technology co. ltd" },
@@ -15518,6 +15562,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x1C, 0x08, 0xC1 }, "LGInnotek", "LG Innotek" },
{ { 0x1C, 0x0B, 0x52 }, "Epicom", "Epicom S.A" },
{ { 0x1C, 0x0D, 0x7D }, "Apple", "Apple, Inc." },
+ { { 0x1C, 0x0E, 0xC2 }, "Apple", "Apple, Inc." },
{ { 0x1C, 0x0E, 0xD3 }, "SichuanTiany", "Sichuan Tianyi Comheart Telecom Co.,LTD" },
{ { 0x1C, 0x0F, 0xAF }, "LucidVisionL", "Lucid Vision Labs" },
{ { 0x1C, 0x0F, 0xCF }, "SyproOptics", "Sypro Optics GmbH" },
@@ -15527,6 +15572,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x1C, 0x12, 0xB0 }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0x1C, 0x13, 0x38 }, "KimballElect", "Kimball Electronics Group, LLC" },
{ { 0x1C, 0x13, 0x86 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
+ { { 0x1C, 0x13, 0xFA }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x1C, 0x14, 0x48 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x1C, 0x14, 0xB3 }, "AirwireTechn", "Airwire Technologies" },
{ { 0x1C, 0x15, 0x1F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -15583,6 +15629,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x1C, 0x3B, 0x62 }, "HMDGlobal", "HMD Global Oy" },
{ { 0x1C, 0x3B, 0x8F }, "Selve", "Selve GmbH & Co. KG" },
{ { 0x1C, 0x3B, 0xF3 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
+ { { 0x1C, 0x3C, 0x78 }, "Apple", "Apple, Inc." },
{ { 0x1C, 0x3C, 0xD4 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x1C, 0x3D, 0x2F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x1C, 0x3D, 0xE7 }, "SigmaKoki", "Sigma Koki Co.,Ltd." },
@@ -15648,6 +15695,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x1C, 0x63, 0xB7 }, "OpenProducts", "OpenProducts 237 AB" },
{ { 0x1C, 0x63, 0xBF }, "BroadtelTele", "Shenzhen Broadtel Telecom Co.,Ltd" },
{ { 0x1C, 0x64, 0x99 }, "Comtrend", "Comtrend Corporation" },
+ { { 0x1C, 0x64, 0xF0 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0x1C, 0x65, 0x9D }, "LiteonTechno", "Liteon Technology Corporation" },
{ { 0x1C, 0x66, 0x6D }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x1C, 0x66, 0xAA }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -15655,6 +15703,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x1C, 0x67, 0x58 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x1C, 0x67, 0x60 }, "Phonesuite", "Phonesuite" },
{ { 0x1C, 0x68, 0x7E }, "QihuIntellig", "Shenzhen Qihu Intelligent Technology Company Limited" },
+ { { 0x1C, 0x69, 0x20 }, "Espressif", "Espressif Inc." },
{ { 0x1C, 0x69, 0x7A }, "EliteGroupCo", "EliteGroup Computer Systems Co., LTD" },
{ { 0x1C, 0x69, 0xA5 }, "BlackBerryRT", "BlackBerry RTS" },
{ { 0x1C, 0x6A, 0x76 }, "Apple", "Apple, Inc." },
@@ -15679,6 +15728,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x1C, 0x77, 0xF6 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0x1C, 0x78, 0x39 }, "TencentCompu", "Shenzhen Tencent Computer System Co., Ltd." },
{ { 0x1C, 0x78, 0x4E }, "ChinaMobileI", "China Mobile Iot Limited company" },
+ { { 0x1C, 0x7A, 0x43 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x1C, 0x7A, 0xCF }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x1C, 0x7B, 0x21 }, "Sony", "Sony Corporation" },
{ { 0x1C, 0x7B, 0x23 }, "QingdaoHisen", "Qingdao Hisense Communications Co.,Ltd." },
@@ -15721,7 +15771,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x1C, 0x97, 0xC5 }, "Ynomia", "Ynomia Pty Ltd" },
{ { 0x1C, 0x97, 0xFB }, "CoolBitX", "CoolBitX Ltd." },
{ { 0x1C, 0x98, 0xC1 }, "CloudNetwork", "Cloud Network Technology Singapore Pte. Ltd." },
- { { 0x1C, 0x98, 0xEC }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x1C, 0x98, 0xEC }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x1C, 0x99, 0x4C }, "MurataManufa", "Murata Manufacturing Co., Ltd." },
{ { 0x1C, 0x99, 0x57 }, "Intel", "Intel Corporate" },
{ { 0x1C, 0x9C, 0x26 }, "ZoovelTechno", "Zoovel Technologies" },
@@ -15800,6 +15850,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x1C, 0xDF, 0x52 }, "TexasInstrum", "Texas Instruments" },
{ { 0x1C, 0xE1, 0x65 }, "Marshal", "Marshal Corporation" },
{ { 0x1C, 0xE1, 0x92 }, "Qisda", "Qisda Corporation" },
+ { { 0x1C, 0xE2, 0x09 }, "Apple", "Apple, Inc." },
{ { 0x1C, 0xE2, 0xCC }, "TexasInstrum", "Texas Instruments" },
{ { 0x1C, 0xE5, 0x04 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x1C, 0xE5, 0x7F }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -15809,6 +15860,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x1C, 0xE6, 0xAD }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x1C, 0xE6, 0xC7 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x1C, 0xE8, 0x5D }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x1C, 0xE8, 0x9E }, "Sjit", "Sjit" },
{ { 0x1C, 0xEA, 0x0B }, "EdgecoreNetw", "Edgecore Networks Corporation" },
{ { 0x1C, 0xEA, 0x1B }, "Nokia", "Nokia" },
{ { 0x1C, 0xEC, 0x72 }, "Allradio", "Allradio Co., Ltd" },
@@ -15830,6 +15882,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x1C, 0xFE, 0xA7 }, "IDentytechSo", "IDentytech Solutins Ltd." },
{ { 0x1C, 0xFF, 0x59 }, "SichuanTiany", "Sichuan Tianyi Comheart Telecom Co.,LTD" },
{ { 0x20, 0x01, 0x4F }, "LineaResearc", "Linea Research Ltd" },
+ { { 0x20, 0x01, 0x9C }, "BigleafNetwo", "Bigleaf Networks Inc." },
{ { 0x20, 0x02, 0xAF }, "MurataManufa", "Murata Manufacturing Co., Ltd." },
{ { 0x20, 0x02, 0xFE }, "DangbeiNetwo", "Hangzhou Dangbei Network Technology Co., Ltd" },
{ { 0x20, 0x04, 0x0F }, "Dell", "Dell Inc." },
@@ -15866,6 +15919,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0x17, 0x42 }, "LGElectronic", "LG Electronics" },
{ { 0x20, 0x17, 0x46 }, "Paradromics", "Paradromics, Inc." },
{ { 0x20, 0x18, 0x0E }, "SunchipTechn", "Shenzhen Sunchip Technology Co., Ltd" },
+ { { 0x20, 0x18, 0x5B }, "JingxunTechn", "Shenzhen Jingxun Technology Co., Ltd." },
{ { 0x20, 0x1A, 0x06 }, "CompalInform", "Compal Information (Kunshan) Co., Ltd." },
{ { 0x20, 0x1A, 0x94 }, "Apple", "Apple, Inc." },
{ { 0x20, 0x1B, 0x88 }, "DongguanLies", "Dongguan Liesheng Electronic Co., Ltd." },
@@ -15940,6 +15994,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0x4E, 0x71 }, "JuniperNetwo", "Juniper Networks" },
{ { 0x20, 0x4E, 0x7F }, "Netgear", "Netgear" },
{ { 0x20, 0x4E, 0xF6 }, "AzureWaveTec", "AzureWave Technology Inc." },
+ { { 0x20, 0x50, 0x0F }, "FiberGroep", "Fiber Groep B.V." },
{ { 0x20, 0x50, 0xE7 }, "AMPAKTechnol", "AMPAK Technology,Inc." },
{ { 0x20, 0x53, 0x83 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x20, 0x53, 0xCA }, "RiskTechnolo", "Risk Technology Ltd" },
@@ -15956,6 +16011,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0x5A, 0x1D }, "zte", "zte corporation" },
{ { 0x20, 0x5B, 0x5E }, "WonheTechnol", "Shenzhen Wonhe Technology Co., Ltd" },
{ { 0x20, 0x5C, 0xFA }, "YangzhouChan", "Yangzhou ChangLian Network Technology Co,ltd." },
+ { { 0x20, 0x5D, 0x0D }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x20, 0x5D, 0x47 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x20, 0x5E, 0x64 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x20, 0x5E, 0x97 }, "Nokia", "Nokia" },
@@ -15970,7 +16026,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0x65, 0x8E }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x20, 0x66, 0xCF }, "FreeboxSas", "Freebox Sas" },
{ { 0x20, 0x66, 0xFD }, "Constell8", "Constell8 Nv" },
- { { 0x20, 0x67, 0x7C }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x20, 0x67, 0x7C }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x20, 0x67, 0xB1 }, "Pluto", "Pluto inc." },
{ { 0x20, 0x67, 0xE0 }, "iCommSemicon", "Shenzhen iComm Semiconductor CO.,LTD" },
{ { 0x20, 0x68, 0x9D }, "LiteonTechno", "Liteon Technology Corporation" },
@@ -15978,6 +16034,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0x6A, 0x8A }, "WistronInfoc", "Wistron Infocomm (Zhongshan) Corporation" },
{ { 0x20, 0x6A, 0x94 }, "HitronTechno", "Hitron Technologies. Inc" },
{ { 0x20, 0x6A, 0xFF }, "AtlasElektro", "Atlas Elektronik UK Limited" },
+ { { 0x20, 0x6B, 0xD5 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x20, 0x6B, 0xE7 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x20, 0x6B, 0xF4 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x20, 0x6C, 0x8A }, "ExtremeNetwo", "Extreme Networks Headquarters" },
@@ -16031,6 +16088,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0x96, 0x8A }, "ChinaMobileI", "China Mobile (Hangzhou) Information Technology Co., Ltd." },
{ { 0x20, 0x97, 0x27 }, "TeltonikaNet", "Teltonika Networks Uab" },
{ { 0x20, 0x98, 0xD8 }, "YingdakangTe", "Shenzhen Yingdakang Technology CO., LTD" },
+ { { 0x20, 0x98, 0xED }, "AltoBeam", "AltoBeam Inc." },
{ { 0x20, 0x9A, 0x7D }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x20, 0x9A, 0xE9 }, "Volacomm", "Volacomm Co., Ltd" },
{ { 0x20, 0x9B, 0xA5 }, "JIAXINGGLEAD", "JIAXING GLEAD Electronics Co.,Ltd" },
@@ -16045,7 +16103,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0xA5, 0xCB }, "Apple", "Apple, Inc." },
{ { 0x20, 0xA6, 0x0C }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x20, 0xA6, 0x80 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
- { { 0x20, 0xA6, 0xCD }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x20, 0xA6, 0xCD }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x20, 0xA7, 0x66 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x20, 0xA7, 0x83 }, "miControl", "miControl GmbH" },
{ { 0x20, 0xA7, 0x87 }, "BointecTaiwa", "Bointec Taiwan Corporation Limited" },
@@ -16133,6 +16191,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0xEE, 0xC6 }, "ElefirstScie", "Elefirst Science & Tech Co., ltd" },
{ { 0x20, 0xEF, 0xBD }, "Roku", "Roku, Inc" },
{ { 0x20, 0xF0, 0x02 }, "MTDataDevelo", "MTData Developments Pty. Ltd." },
+ { { 0x20, 0xF0, 0x94 }, "Google", "Google, Inc." },
{ { 0x20, 0xF1, 0x7C }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x20, 0xF1, 0x9E }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x20, 0xF3, 0x75 }, "ARRISGroup", "ARRIS Group, Inc." },
@@ -16147,6 +16206,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0xF7, 0x7C }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x20, 0xF8, 0x3B }, "NabuCasa", "Nabu Casa, Inc." },
{ { 0x20, 0xF8, 0x5E }, "DeltaElectro", "Delta Electronics" },
+ { { 0x20, 0xFA, 0x85 }, "Apple", "Apple, Inc." },
{ { 0x20, 0xFA, 0xBB }, "CambridgeExe", "Cambridge Executive Limited" },
{ { 0x20, 0xFA, 0xDB }, "HuahaoKunpen", "Huahao Kunpeng Technology (chengDu) Co.,Ltd." },
{ { 0x20, 0xFD, 0xF1 }, "3ComEurope", "3Com Europe Ltd" },
@@ -16213,6 +16273,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x24, 0x21, 0xAB }, "Sony", "Sony Corporation" },
{ { 0x24, 0x23, 0x61 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x24, 0x24, 0x0E }, "Apple", "Apple, Inc." },
+ { { 0x24, 0x24, 0xB7 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x24, 0x26, 0x42 }, "SHARP", "SHARP Corporation." },
{ { 0x24, 0x26, 0xBA }, "ToptelTechno", "Shenzhen Toptel Technology Co., Ltd." },
{ { 0x24, 0x26, 0xD6 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -16268,6 +16329,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x24, 0x59, 0x0B }, "WhiteSky", "White Sky Inc. Limited" },
{ { 0x24, 0x59, 0xE5 }, "GDMideaAirCo", "GD Midea Air-Conditioning Equipment Co.,Ltd." },
{ { 0x24, 0x5A, 0x4C }, "Ubiquiti", "Ubiquiti Inc" },
+ { { 0x24, 0x5A, 0x5F }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x24, 0x5A, 0xB5 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x24, 0x5B, 0x83 }, "RenesasElect", "Renesas Electronics (Penang) Sdn. Bhd." },
{ { 0x24, 0x5B, 0xA7 }, "Apple", "Apple, Inc." },
@@ -16376,6 +16438,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x24, 0xB1, 0x05 }, "PramaHikvisi", "Prama Hikvision India Private Limited" },
{ { 0x24, 0xB2, 0x09 }, "Avaya", "Avaya Inc" },
{ { 0x24, 0xB2, 0xDE }, "Espressif", "Espressif Inc." },
+ { { 0x24, 0xB3, 0x39 }, "Apple", "Apple, Inc." },
{ { 0x24, 0xB6, 0x57 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x24, 0xB6, 0xB8 }, "Friem", "Friem Spa" },
{ { 0x24, 0xB6, 0xFD }, "Dell", "Dell Inc." },
@@ -16457,18 +16520,20 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x24, 0xEA, 0x40 }, "Helmholz", "Helmholz GmbH & Co. KG" },
{ { 0x24, 0xEB, 0x65 }, "SAETIS", "SAET I.S. S.r.l." },
{ { 0x24, 0xEB, 0xED }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x24, 0xEC, 0x4A }, "Espressif", "Espressif Inc." },
{ { 0x24, 0xEC, 0x51 }, "ADFTechnolog", "ADF Technologies Sdn Bhd" },
{ { 0x24, 0xEC, 0x99 }, "AskeyCompute", "Askey Computer Corp" },
{ { 0x24, 0xEC, 0xD6 }, "CSGScienceTe", "CSG Science & Technology Co.,Ltd.Hefei" },
{ { 0x24, 0xED, 0xFD }, "SiemensCanad", "Siemens Canada Limited" },
{ { 0x24, 0xEE, 0x3A }, "YingjiElectr", "Chengdu Yingji Electronic Hi-tech Co Ltd" },
{ { 0x24, 0xEE, 0x9A }, "Intel", "Intel Corporate" },
+ { { 0x24, 0xEF, 0xB4 }, "NeardiTechno", "Shanghai Neardi Technologies Co. Ltd." },
{ { 0x24, 0xF0, 0x94 }, "Apple", "Apple, Inc." },
{ { 0x24, 0xF0, 0xD3 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x24, 0xF0, 0xFF }, "GHT", "GHT Co., Ltd." },
{ { 0x24, 0xF1, 0x28 }, "Telstra", "Telstra" },
{ { 0x24, 0xF1, 0x50 }, "GuangzhouQia", "Guangzhou Qi'an Technology Co., Ltd." },
- { { 0x24, 0xF2, 0x7F }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x24, 0xF2, 0x7F }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x24, 0xF2, 0xDD }, "RadiantZemax", "Radiant Zemax LLC" },
{ { 0x24, 0xF5, 0x7E }, "Hwh", "Hwh Co., Ltd." },
{ { 0x24, 0xF5, 0xA2 }, "BelkinIntern", "Belkin International Inc." },
@@ -16516,11 +16581,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x28, 0x16, 0xA8 }, "Microsoft", "Microsoft Corporation" },
{ { 0x28, 0x16, 0xAD }, "Intel", "Intel Corporate" },
{ { 0x28, 0x17, 0x09 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x28, 0x17, 0xCB }, "SoftwareFree", "Software Freedom Conservancy" },
{ { 0x28, 0x17, 0xCE }, "Omnisense", "Omnisense Ltd" },
{ { 0x28, 0x18, 0x78 }, "Microsoft", "Microsoft Corporation" },
{ { 0x28, 0x18, 0xFD }, "AdityaInfote", "Aditya Infotech Ltd." },
{ { 0x28, 0x1B, 0x04 }, "Zalliant", "Zalliant LLC" },
{ { 0x28, 0x1D, 0x21 }, "InOneSmartTe", "In One Smart Technology(H,K,)Limited" },
+ { { 0x28, 0x1D, 0xFB }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x28, 0x22, 0x1E }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x28, 0x22, 0x46 }, "SinoixCommun", "Beijing Sinoix Communication Co., LTD" },
{ { 0x28, 0x23, 0x73 }, "Digita", "Digita" },
{ { 0x28, 0x23, 0xF5 }, "ChinaMobileI", "China Mobile (Hangzhou) Information Technology Co., Ltd." },
@@ -16551,12 +16619,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x28, 0x34, 0xA2 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x28, 0x34, 0xFF }, "Apple", "Apple, Inc." },
{ { 0x28, 0x35, 0x45 }, "ChuangweiRgb", "Shenzhen Chuangwei-Rgb Electronics Co.,Ltd" },
+ { { 0x28, 0x36, 0xF0 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x28, 0x37, 0x13 }, "3NodDigitalT", "Shenzhen 3Nod Digital Technology Co., Ltd." },
{ { 0x28, 0x37, 0x37 }, "Apple", "Apple, Inc." },
{ { 0x28, 0x38, 0x5C }, "Flextronics", "Flextronics" },
{ { 0x28, 0x38, 0xCF }, "Gen2wave", "Gen2wave" },
{ { 0x28, 0x39, 0x26 }, "CyberTANTech", "CyberTAN Technology Inc." },
{ { 0x28, 0x39, 0x5E }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0x28, 0x39, 0x84 }, "QidiTechnolo", "Qidi Technology (shanghai) Co.,Ltd." },
{ { 0x28, 0x39, 0xE7 }, "PrecenoTechn", "Preceno Technology Pte.Ltd." },
{ { 0x28, 0x3A, 0x4D }, "CloudNetwork", "Cloud Network Technology (Samoa) Limited" },
{ { 0x28, 0x3B, 0x82 }, "DLinkInterna", "D-Link International" },
@@ -16564,6 +16634,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x28, 0x3C, 0x90 }, "TexasInstrum", "Texas Instruments" },
{ { 0x28, 0x3C, 0xE4 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x28, 0x3D, 0xC2 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0x28, 0x3D, 0xE8 }, "GuangzhouShi", "Guangzhou Shiyuan Electronic Technology Company Limited" },
{ { 0x28, 0x3E, 0x0C }, "PreferredRob", "Preferred Robotics, Inc." },
{ { 0x28, 0x3E, 0x76 }, "CommonNetwor", "Common Networks" },
{ { 0x28, 0x3F, 0x69 }, "Sony", "Sony Corporation" },
@@ -16605,6 +16676,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x28, 0x64, 0xEF }, "FsanIntellig", "Shenzhen Fsan Intelligent Technology Co.,Ltd" },
{ { 0x28, 0x65, 0x6B }, "KeystoneMicr", "Keystone Microtech Corporation" },
{ { 0x28, 0x66, 0xE3 }, "AzureWaveTec", "AzureWave Technology Inc." },
+ { { 0x28, 0x68, 0x47 }, "SiliconLabor", "Silicon Laboratories" },
{ { 0x28, 0x68, 0xD2 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x28, 0x6A, 0xB8 }, "Apple", "Apple, Inc." },
{ { 0x28, 0x6A, 0xBA }, "Apple", "Apple, Inc." },
@@ -16653,6 +16725,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x28, 0x8E, 0xB9 }, "Wacom", "Wacom Co.,Ltd." },
{ { 0x28, 0x8E, 0xEC }, "Apple", "Apple, Inc." },
{ { 0x28, 0x8F, 0xF6 }, "Apple", "Apple, Inc." },
+ { { 0x28, 0x91, 0x76 }, "IndymeSoluti", "Indyme Solutions, LLC" },
{ { 0x28, 0x91, 0xD0 }, "StageTecEntw", "Stage Tec Entwicklungsgesellschaft für professionelle Audiotechnik mbH" },
{ { 0x28, 0x92, 0x4A }, "HewlettPacka", "Hewlett Packard" },
{ { 0x28, 0x93, 0x7D }, "SichuanTiany", "Sichuan Tianyi Comheart Telecom Co.,LTD" },
@@ -16672,6 +16745,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x28, 0x9E, 0xDF }, "DanfossTurbo", "Danfoss Turbocor Compressors, Inc" },
{ { 0x28, 0x9E, 0xFC }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x28, 0xA0, 0x2B }, "Apple", "Apple, Inc." },
+ { { 0x28, 0xA0, 0x6B }, "Intel", "Intel Corporate" },
{ { 0x28, 0xA1, 0x83 }, "Alpsalpine", "Alpsalpine Co,.Ltd" },
{ { 0x28, 0xA1, 0x86 }, "enblink", "enblink" },
{ { 0x28, 0xA1, 0x92 }, "GERPSolution", "GERP Solution" },
@@ -16746,6 +16820,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x28, 0xCF, 0x51 }, "Nintendo", "Nintendo Co.,Ltd" },
{ { 0x28, 0xCF, 0xDA }, "Apple", "Apple, Inc." },
{ { 0x28, 0xCF, 0xE9 }, "Apple", "Apple, Inc." },
+ { { 0x28, 0xD0, 0x43 }, "AzureWaveTec", "AzureWave Technology Inc." },
{ { 0x28, 0xD0, 0x44 }, "Xinyintechno", "Shenzhen Xinyin technology company" },
{ { 0x28, 0xD0, 0xCB }, "Adtran", "Adtran Inc" },
{ { 0x28, 0xD0, 0xEA }, "Intel", "Intel Corporate" },
@@ -16763,6 +16838,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x28, 0xD9, 0x97 }, "YuduanMobile", "Yuduan Mobile Co., Ltd." },
{ { 0x28, 0xDB, 0x81 }, "GuaoElectron", "Shanghai Guao Electronic Technology Co., Ltd" },
{ { 0x28, 0xDB, 0xA7 }, "SiliconLabor", "Silicon Laboratories" },
+ { { 0x28, 0xDE, 0x59 }, "DomusNTW", "Domus NTW CORP." },
{ { 0x28, 0xDE, 0x65 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
{ { 0x28, 0xDE, 0xA8 }, "zte", "zte corporation" },
{ { 0x28, 0xDE, 0xE5 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -16848,6 +16924,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x2C, 0x08, 0xB4 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x2C, 0x09, 0x4D }, "RaptorEngine", "Raptor Engineering, LLC" },
{ { 0x2C, 0x09, 0xCB }, "Cobs", "Cobs Ab" },
+ { { 0x2C, 0x0B, 0x97 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x2C, 0x0B, 0xAB }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x2C, 0x0B, 0xE9 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x2C, 0x0D, 0xA7 }, "Intel", "Intel Corporate" },
@@ -16901,6 +16978,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x2C, 0x34, 0x27 }, "ErcoGener", "Erco & Gener" },
{ { 0x2C, 0x35, 0x57 }, "ELIIYPower", "ELIIY Power CO., Ltd." },
{ { 0x2C, 0x36, 0xA0 }, "Capisco", "Capisco Limited" },
+ { { 0x2C, 0x36, 0xF2 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x2C, 0x36, 0xF8 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x2C, 0x37, 0x31 }, "YifangDigita", "Shenzhen Yifang Digital Technology Co.,Ltd." },
{ { 0x2C, 0x37, 0x96 }, "Cybo", "Cybo Co.,Ltd." },
@@ -17084,6 +17162,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x2C, 0xB2, 0x1A }, "Phicomm", "Phicomm (Shanghai) Co., Ltd." },
{ { 0x2C, 0xB3, 0x01 }, "HonorDevice", "Honor Device Co., Ltd." },
{ { 0x2C, 0xB4, 0x3A }, "Apple", "Apple, Inc." },
+ { { 0x2C, 0xB6, 0x8F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x2C, 0xB6, 0x93 }, "Radware", "Radware" },
{ { 0x2C, 0xB6, 0x9D }, "REDDigitalCi", "RED Digital Cinema" },
{ { 0x2C, 0xB6, 0xC8 }, "RaisecomTech", "Raisecom Technology CO., LTD" },
@@ -17091,6 +17170,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x2C, 0xBA, 0xBA }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x2C, 0xBA, 0xCA }, "CosonicElect", "Cosonic Electroacoustic Technology Co., Ltd." },
{ { 0x2C, 0xBC, 0x87 }, "Apple", "Apple, Inc." },
+ { { 0x2C, 0xBC, 0xBB }, "Espressif", "Espressif Inc." },
{ { 0x2C, 0xBE, 0x08 }, "Apple", "Apple, Inc." },
{ { 0x2C, 0xBE, 0x97 }, "Ingenieurbue", "Ingenieurbuero Bickele und Buehler GmbH" },
{ { 0x2C, 0xBE, 0xEB }, "NothingTechn", "Nothing Technology Limited" },
@@ -17114,6 +17194,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x2C, 0xCD, 0x69 }, "Aqavicom", "Aqavi.com" },
{ { 0x2C, 0xCE, 0x1E }, "Cloudtronics", "Cloudtronics Pty Ltd" },
{ { 0x2C, 0xCF, 0x58 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x2C, 0xCF, 0x67 }, "RaspberryPi", "Raspberry Pi (Trading) Ltd" },
{ { 0x2C, 0xD0, 0x2D }, "Cisco", "Cisco Systems, Inc" },
{ { 0x2C, 0xD0, 0x5A }, "LiteonTechno", "Liteon Technology Corporation" },
{ { 0x2C, 0xD0, 0x66 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
@@ -17188,6 +17269,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x30, 0x10, 0xB3 }, "LiteonTechno", "Liteon Technology Corporation" },
{ { 0x30, 0x10, 0xE4 }, "Apple", "Apple, Inc." },
{ { 0x30, 0x13, 0x89 }, "SiemensAutom", "Siemens AG, Automations & Drives," },
+ { { 0x30, 0x13, 0x8B }, "HP", "HP Inc." },
{ { 0x30, 0x14, 0x2D }, "Piciorgros", "Piciorgros GmbH" },
{ { 0x30, 0x14, 0x4A }, "WistronNeweb", "Wistron Neweb Corporation" },
{ { 0x30, 0x15, 0x18 }, "UbiquitousCo", "Ubiquitous Communication Co. ltd." },
@@ -17234,14 +17316,16 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x30, 0x39, 0x55 }, "JinhengjiaEl", "Shenzhen Jinhengjia Electronic Co., Ltd." },
{ { 0x30, 0x39, 0xA9 }, "HongshanInfo", "Hongshan Information Science and Technology (HangZhou) Co.,Ltd." },
{ { 0x30, 0x39, 0xF2 }, "ADBBroadband", "ADB Broadband Italia" },
+ { { 0x30, 0x3A, 0x4A }, "eero", "eero inc." },
{ { 0x30, 0x3A, 0x64 }, "Intel", "Intel Corporate" },
{ { 0x30, 0x3A, 0xBA }, "GuangzhouBao", "Guangzhou BaoLun Electronics Co., Ltd" },
+ { { 0x30, 0x3B, 0x7C }, "Apple", "Apple, Inc." },
{ { 0x30, 0x3D, 0x08 }, "GlinttTes", "Glintt Tes S.A." },
{ { 0x30, 0x3E, 0xA7 }, "Intel", "Intel Corporate" },
{ { 0x30, 0x3E, 0xAD }, "SonavoxCanad", "Sonavox Canada Inc" },
{ { 0x30, 0x3F, 0x5D }, "PtHanSungEle", "Pt Han Sung Electoronics Indonesia" },
{ { 0x30, 0x3F, 0x7B }, "YOUHUATechno", "Shenzhen YOUHUA Technology Co., Ltd" },
- { { 0x30, 0x3F, 0xBB }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x30, 0x3F, 0xBB }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x30, 0x40, 0x74 }, "zte", "zte corporation" },
{ { 0x30, 0x41, 0x74 }, "AltecLansing", "Altec Lansing Llc" },
{ { 0x30, 0x42, 0x25 }, "BurgWächter", "Burg-Wächter Kg" },
@@ -17267,6 +17351,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x30, 0x50, 0xF1 }, "Ennoconn", "Ennoconn Corporation." },
{ { 0x30, 0x50, 0xFD }, "SkyworthDigi", "Skyworth Digital Technology(Shenzhen) Co.,Ltd" },
{ { 0x30, 0x51, 0xF8 }, "BYKGardner", "BYK-Gardner GmbH" },
+ { { 0x30, 0x52, 0x23 }, "GDMideaAirCo", "GD Midea Air-Conditioning Equipment Co.,Ltd." },
{ { 0x30, 0x52, 0x5A }, "NST", "NST Co., LTD" },
{ { 0x30, 0x52, 0xCB }, "LiteonTechno", "Liteon Technology Corporation" },
{ { 0x30, 0x53, 0xC1 }, "Cresyn", "Cresyn" },
@@ -17335,6 +17420,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x30, 0x89, 0x4A }, "Intel", "Intel Corporate" },
{ { 0x30, 0x89, 0x76 }, "DalianLambaT", "Dalian Lamba Technology Co.,Ltd" },
{ { 0x30, 0x89, 0x99 }, "EastPower", "Guangdong East Power Co.," },
+ { { 0x30, 0x89, 0xA6 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x30, 0x89, 0xD3 }, "HongkongUclo", "Hongkong Ucloudlink Network Technology Limited" },
{ { 0x30, 0x8A, 0xF7 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x30, 0x8B, 0xB2 }, "Cisco", "Cisco Systems, Inc" },
@@ -17367,6 +17453,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x30, 0xA2, 0x43 }, "PrifoxInnova", "Shenzhen Prifox Innovation Technology Co., Ltd." },
{ { 0x30, 0xA2, 0xC2 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x30, 0xA3, 0x0F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x30, 0xA3, 0xB5 }, "JiangsuBestT", "Jiangsu Best Tone Information Service Co., Ltd" },
{ { 0x30, 0xA4, 0x52 }, "ArrivalEleme", "Arrival Elements BV" },
{ { 0x30, 0xA6, 0x12 }, "HugsunTechno", "ShenZhen Hugsun Technology Co.,Ltd." },
{ { 0x30, 0xA8, 0x89 }, "DecimatorDes", "Decimator Design" },
@@ -17406,6 +17493,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x30, 0xC3, 0xD9 }, "Alpsalpine", "Alpsalpine Co,.Ltd" },
{ { 0x30, 0xC5, 0x07 }, "ECITelecom", "ECI Telecom Ltd." },
{ { 0x30, 0xC5, 0x0F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x30, 0xC6, 0xAB }, "zte", "zte corporation" },
{ { 0x30, 0xC6, 0xD7 }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x30, 0xC6, 0xF7 }, "Espressif", "Espressif Inc." },
{ { 0x30, 0xC7, 0x50 }, "MICTechnolog", "MIC Technology Group" },
@@ -17425,6 +17513,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x30, 0xD3, 0x57 }, "Logosol", "Logosol, Inc." },
{ { 0x30, 0xD3, 0x86 }, "zte", "zte corporation" },
{ { 0x30, 0xD4, 0x6A }, "Autosales", "Autosales Incorporated" },
+ { { 0x30, 0xD4, 0xE2 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x30, 0xD5, 0x3E }, "Apple", "Apple, Inc." },
{ { 0x30, 0xD5, 0x87 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x30, 0xD6, 0x59 }, "MergingTechn", "Merging Technologies SA" },
@@ -17463,6 +17552,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x30, 0xF3, 0x35 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x30, 0xF3, 0x3A }, "plugg", "+plugg srl" },
{ { 0x30, 0xF4, 0x2F }, "Esp", "Esp" },
+ { { 0x30, 0xF6, 0x00 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x30, 0xF6, 0xB9 }, "EcocentricEn", "Ecocentric Energy" },
{ { 0x30, 0xF6, 0xEF }, "Intel", "Intel Corporate" },
{ { 0x30, 0xF7, 0x0D }, "Cisco", "Cisco Systems, Inc" },
@@ -17509,12 +17599,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0x13, 0x43 }, "GELighting", "GE Lighting" },
{ { 0x34, 0x13, 0xA8 }, "Mediplan", "Mediplan Limited" },
{ { 0x34, 0x13, 0xE8 }, "Intel", "Intel Corporate" },
+ { { 0x34, 0x14, 0x53 }, "GantnerElect", "Gantner Electronic GmbH" },
{ { 0x34, 0x14, 0x5F }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x34, 0x14, 0xB5 }, "TexasInstrum", "Texas Instruments" },
{ { 0x34, 0x15, 0x13 }, "TexasInstrum", "Texas Instruments" },
{ { 0x34, 0x15, 0x93 }, "RuckusWirele", "Ruckus Wireless" },
{ { 0x34, 0x15, 0x9E }, "Apple", "Apple, Inc." },
{ { 0x34, 0x17, 0xEB }, "Dell", "Dell Inc." },
+ { { 0x34, 0x19, 0x4D }, "Arcadyan", "Arcadyan Corporation" },
{ { 0x34, 0x1A, 0x35 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x34, 0x1A, 0x4C }, "WeibuElectro", "Shenzhen Weibu Electronics Co.,Ltd." },
{ { 0x34, 0x1B, 0x22 }, "GrandbeingTe", "Grandbeing Technology Co., Ltd" },
@@ -17596,6 +17688,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0x58, 0x40 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x34, 0x58, 0x7C }, "MiraeInforma", "Mirae Information Technology Co., Ltd." },
{ { 0x34, 0x5A, 0x06 }, "SHARP", "SHARP Corporation" },
+ { { 0x34, 0x5A, 0x18 }, "AlignmentEng", "Alignment Engine Inc." },
{ { 0x34, 0x5A, 0xBA }, "tcloudintell", "tcloud intelligence" },
{ { 0x34, 0x5B, 0x11 }, "EviHeat", "Evi Heat Ab" },
{ { 0x34, 0x5B, 0x98 }, "EMMicroelect", "EM Microelectronic" },
@@ -17606,6 +17699,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0x5D, 0xA8 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x34, 0x5E, 0x08 }, "Roku", "Roku, Inc" },
{ { 0x34, 0x5E, 0xE7 }, "ChengFengErL", "Hangzhou ChengFengErLai Digial Technology Co.,Ltd." },
+ { { 0x34, 0x5F, 0x45 }, "Espressif", "Espressif Inc." },
{ { 0x34, 0x60, 0xF9 }, "TPLink", "TP-Link Corporation Limited" },
{ { 0x34, 0x61, 0x78 }, "Boeing", "The Boeing Company" },
{ { 0x34, 0x62, 0x88 }, "Cisco", "Cisco Systems, Inc" },
@@ -17659,6 +17753,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0x82, 0xC5 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x34, 0x82, 0xDE }, "Kiio", "Kiio Inc" },
{ { 0x34, 0x83, 0x02 }, "iFORCOM", "iFORCOM Co., Ltd" },
+ { { 0x34, 0x83, 0xD5 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x34, 0x84, 0x46 }, "Ericsson", "Ericsson AB" },
{ { 0x34, 0x84, 0xE4 }, "TexasInstrum", "Texas Instruments" },
{ { 0x34, 0x85, 0x11 }, "SkyworthDigi", "Shenzhen Skyworth Digital Technology CO., Ltd" },
@@ -17704,6 +17799,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0xA5, 0xB4 }, "NavtechPte", "Navtech Pte Ltd" },
{ { 0x34, 0xA5, 0xE1 }, "SensoristApS", "Sensorist ApS" },
{ { 0x34, 0xA6, 0x8C }, "ShineProfitD", "Shine Profit Development Limited" },
+ { { 0x34, 0xA6, 0xEF }, "PhatenTech", "Shenzhen Phaten Tech. LTD" },
{ { 0x34, 0xA7, 0x09 }, "Trevil", "Trevil srl" },
{ { 0x34, 0xA7, 0xBA }, "FischerInter", "Fischer International Systems Corporation" },
{ { 0x34, 0xA8, 0x43 }, "KYOCERADispl", "KYOCERA Display Corporation" },
@@ -17753,6 +17849,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0xC5, 0x15 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
{ { 0x34, 0xC5, 0xD0 }, "HagleitnerHy", "Hagleitner Hygiene International GmbH" },
{ { 0x34, 0xC6, 0x9A }, "Enecsys", "Enecsys Ltd" },
+ { { 0x34, 0xC6, 0xDD }, "EzvizSoftwar", "Hangzhou Ezviz Software Co.,Ltd." },
{ { 0x34, 0xC7, 0x31 }, "Alpsalpine", "Alpsalpine Co,.Ltd" },
{ { 0x34, 0xC7, 0xE9 }, "Google", "Google, Inc." },
{ { 0x34, 0xC8, 0x03 }, "Nokia", "Nokia Corporation" },
@@ -17768,6 +17865,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0xCE, 0x69 }, "NokiaSolutio", "Nokia Solutions and Networks GmbH & Co. KG" },
{ { 0x34, 0xCE, 0x94 }, "Parsec", "Parsec (Pty) Ltd" },
{ { 0x34, 0xCF, 0x6C }, "Tailiwireles", "Hangzhou Taili wireless communication equipment Co.,Ltd" },
+ { { 0x34, 0xCF, 0xB5 }, "Roboticdoo", "Robotic d.o.o." },
{ { 0x34, 0xCF, 0xF6 }, "Intel", "Intel Corporate" },
{ { 0x34, 0xD0, 0x9B }, "MobilMAXTech", "MobilMAX Technology Inc." },
{ { 0x34, 0xD2, 0x62 }, "SzDjiTechnol", "Sz Dji Technology Co.,Ltd" },
@@ -17798,6 +17896,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0xE2, 0xFD }, "Apple", "Apple, Inc." },
{ { 0x34, 0xE3, 0x80 }, "Genexis", "Genexis B.V." },
{ { 0x34, 0xE3, 0xDA }, "HovalAktieng", "Hoval Aktiengesellschaft" },
+ { { 0x34, 0xE3, 0xFB }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x34, 0xE4, 0x2A }, "AutomaticBar", "Automatic Bar Controls Inc." },
{ { 0x34, 0xE5, 0xEC }, "PaloAltoNetw", "Palo Alto Networks" },
{ { 0x34, 0xE6, 0xAD }, "Intel", "Intel Corporate" },
@@ -17835,7 +17934,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0xFA, 0x9F }, "RuckusWirele", "Ruckus Wireless" },
{ { 0x34, 0xFC, 0x6F }, "Alcea", "Alcea" },
{ { 0x34, 0xFC, 0xA1 }, "Micronetunio", "Micronet union Technology(Chengdu)Co., Ltd." },
- { { 0x34, 0xFC, 0xB9 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x34, 0xFC, 0xB9 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x34, 0xFC, 0xEF }, "LGElectronic", "LG Electronics (Mobile Communications)" },
{ { 0x34, 0xFD, 0x6A }, "Apple", "Apple, Inc." },
{ { 0x34, 0xFE, 0x1C }, "ChoungHwaTec", "Choung Hwa Tech Co.,Ltd" },
@@ -17879,7 +17978,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0x16, 0xD1 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x38, 0x17, 0x30 }, "UlrichLipper", "Ulrich Lippert GmbH & Co KG" },
{ { 0x38, 0x17, 0x66 }, "Promzakaz", "Promzakaz Ltd." },
- { { 0x38, 0x17, 0xC3 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x38, 0x17, 0xC3 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x38, 0x17, 0xE1 }, "VantivaUSA", "Vantiva USA LLC" },
{ { 0x38, 0x18, 0x4C }, "SonyHomeEnte", "Sony Home Entertainment&Sound Products Inc" },
{ { 0x38, 0x19, 0x2F }, "Nokia", "Nokia Corporation" },
@@ -17995,9 +18094,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0x76, 0x05 }, "Inogeni", "Inogeni" },
{ { 0x38, 0x76, 0xCA }, "SmartIntelli", "Shenzhen Smart Intelligent Technology Co.Ltd" },
{ { 0x38, 0x76, 0xD1 }, "Euronda", "Euronda SpA" },
+ { { 0x38, 0x77, 0xCD }, "KokusaiElect", "Kokusai Electric Corporation" },
{ { 0x38, 0x78, 0x62 }, "Sony", "Sony Corporation" },
{ { 0x38, 0x7A, 0x0E }, "Intel", "Intel Corporate" },
{ { 0x38, 0x7A, 0x3C }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
+ { { 0x38, 0x7B, 0x01 }, "MiaoMingInte", "Shenzhen MiaoMing Intelligent Technology Co.,Ltd" },
{ { 0x38, 0x7B, 0x47 }, "AKELA", "AKELA, Inc." },
{ { 0x38, 0x7C, 0x76 }, "UniversalGlo", "Universal Global Scientific Industrial Co., Ltd." },
{ { 0x38, 0x80, 0xDF }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
@@ -18063,6 +18164,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0xAB, 0x16 }, "NpoRtt", "Npo Rtt Llc" },
{ { 0x38, 0xAB, 0x41 }, "TexasInstrum", "Texas Instruments" },
{ { 0x38, 0xAC, 0x3D }, "Nephos", "Nephos Inc" },
+ { { 0x38, 0xAC, 0xDD }, "Valenco", "Valenco GmbH" },
{ { 0x38, 0xAD, 0x2B }, "HitronTechno", "Hitron Technologies. Inc" },
{ { 0x38, 0xAD, 0x8E }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x38, 0xAD, 0xBE }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
@@ -18121,6 +18223,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0xDE, 0x60 }, "Mohlenhoff", "Mohlenhoff GmbH" },
{ { 0x38, 0xDE, 0xAD }, "Intel", "Intel Corporate" },
{ { 0x38, 0xE0, 0x8E }, "MitsubishiEl", "Mitsubishi Electric Corporation" },
+ { { 0x38, 0xE1, 0x3D }, "Apple", "Apple, Inc." },
{ { 0x38, 0xE1, 0xAA }, "zte", "zte corporation" },
{ { 0x38, 0xE1, 0xF4 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x38, 0xE2, 0x6E }, "SweetRainEle", "ShenZhen Sweet Rain Electronics Co.,Ltd." },
@@ -18146,6 +18249,8 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0xF0, 0x98 }, "VaporStoneRa", "Vapor Stone Rail Systems" },
{ { 0x38, 0xF0, 0xC8 }, "Logitech", "Logitech" },
{ { 0x38, 0xF1, 0x35 }, "SensorTecCan", "SensorTec-Canada" },
+ { { 0x38, 0xF1, 0x8F }, "TechnicolorT", "Technicolor (China) Technology Co., Ltd." },
+ { { 0x38, 0xF1, 0x95 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x38, 0xF2, 0x3E }, "MicrosoftMob", "Microsoft Mobile Oy" },
{ { 0x38, 0xF3, 0x2E }, "Skullcandy", "Skullcandy" },
{ { 0x38, 0xF3, 0x3F }, "Tatsuno", "Tatsuno Corporation" },
@@ -18205,9 +18310,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x3C, 0x07, 0x54 }, "Apple", "Apple, Inc." },
{ { 0x3C, 0x07, 0x71 }, "Sony", "Sony Corporation" },
{ { 0x3C, 0x08, 0x1E }, "YupontElectr", "Beijing Yupont Electric Power Technology Co.,Ltd" },
+ { { 0x3C, 0x08, 0x68 }, "PowerPlusCom", "Power Plus Communications AG" },
{ { 0x3C, 0x08, 0xCD }, "JuniperNetwo", "Juniper Networks" },
{ { 0x3C, 0x08, 0xF6 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x3C, 0x09, 0x6D }, "PowerhouseDy", "Powerhouse Dynamics" },
+ { { 0x3C, 0x0A, 0x7A }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x3C, 0x0A, 0xF3 }, "CloudNetwork", "Cloud Network Technology Singapore Pte. Ltd." },
{ { 0x3C, 0x0B, 0x4F }, "IntertechSer", "Intertech Services AG" },
{ { 0x3C, 0x0C, 0x48 }, "Servergy", "Servergy, Inc." },
@@ -18273,6 +18380,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x3C, 0x33, 0x00 }, "Bilianelectr", "Shenzhen Bilian electronic CO.,LTD" },
{ { 0x3C, 0x33, 0x32 }, "DLink", "D-Link Corporation" },
{ { 0x3C, 0x35, 0x56 }, "Cognitec", "Cognitec Systems GmbH" },
+ { { 0x3C, 0x35, 0x76 }, "ItelMobile", "Itel Mobile Limited" },
{ { 0x3C, 0x36, 0x3D }, "Nokia", "Nokia Corporation" },
{ { 0x3C, 0x36, 0x6A }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x3C, 0x36, 0xE4 }, "ARRISGroup", "ARRIS Group, Inc." },
@@ -18403,6 +18511,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x3C, 0x97, 0x7E }, "IPSTechnolog", "IPS Technology Limited" },
{ { 0x3C, 0x98, 0x72 }, "Sercomm", "Sercomm Corporation." },
{ { 0x3C, 0x98, 0xBF }, "QuestControl", "Quest Controls, Inc." },
+ { { 0x3C, 0x99, 0x6D }, "MarelliEurop", "Marelli Europe s.p.a." },
{ { 0x3C, 0x99, 0x8C }, "HouwaSystemD", "Houwa System Design Corp." },
{ { 0x3C, 0x99, 0xF7 }, "Lansentechno", "Lansentechnology AB" },
{ { 0x3C, 0x9A, 0x77 }, "VantivaUSA", "Vantiva USA LLC" },
@@ -18413,6 +18522,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x3C, 0x9E, 0xC7 }, "SkyUk", "Sky Uk Limited" },
{ { 0x3C, 0x9F, 0x81 }, "CATICBitComm", "Shenzhen CATIC Bit Communications Technology Co.,Ltd" },
{ { 0x3C, 0x9F, 0xC3 }, "SineadTechno", "Beijing Sinead Technology Co., Ltd." },
+ { { 0x3C, 0x9F, 0xCD }, "NeowayTechno", "Shenzhen Neoway Technology Co.,Ltd." },
{ { 0x3C, 0xA0, 0x67 }, "LiteonTechno", "Liteon Technology Corporation" },
{ { 0x3C, 0xA1, 0x0D }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x3C, 0xA1, 0x61 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -18435,6 +18545,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x3C, 0xAA, 0x3F }, "iKey", "iKey, Ltd." },
{ { 0x3C, 0xAB, 0x8E }, "Apple", "Apple, Inc." },
{ { 0x3C, 0xAE, 0x69 }, "ESAElektrosc", "ESA Elektroschaltanlagen Grimma GmbH" },
+ { { 0x3C, 0xAF, 0xB7 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x3C, 0xB0, 0x7E }, "AroundsIntel", "Arounds Intelligent Equipment Co., Ltd." },
{ { 0x3C, 0xB0, 0xED }, "NothingTechn", "Nothing Technology Limited" },
{ { 0x3C, 0xB1, 0x5B }, "Avaya", "Avaya Inc" },
@@ -18465,6 +18576,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x3C, 0xC2, 0xE1 }, "XinhuaContro", "Xinhua Control Engineering Co.,Ltd" },
{ { 0x3C, 0xC7, 0x86 }, "DongguanHuar", "Dongguan Huarong Communication Technologies Co.,Ltd." },
{ { 0x3C, 0xC9, 0x9E }, "HuiyangTechn", "Huiyang Technology Co., Ltd" },
+ { { 0x3C, 0xCA, 0x61 }, "TecnoMobile", "Tecno Mobile Limited" },
{ { 0x3C, 0xCA, 0x87 }, "Iders", "Iders Incorporated" },
{ { 0x3C, 0xCB, 0x4D }, "Avikus", "Avikus Co., Ltd" },
{ { 0x3C, 0xCB, 0x7C }, "TCTmobile", "TCT mobile ltd" },
@@ -18591,6 +18703,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x40, 0x2E, 0x71 }, "TexasInstrum", "Texas Instruments" },
{ { 0x40, 0x2F, 0x86 }, "LGInnotek", "LG Innotek" },
{ { 0x40, 0x30, 0x04 }, "Apple", "Apple, Inc." },
+ { { 0x40, 0x30, 0x59 }, "SiliconLabor", "Silicon Laboratories" },
{ { 0x40, 0x30, 0x67 }, "Conlog", "Conlog (Pty) Ltd" },
{ { 0x40, 0x31, 0x3C }, "XIAOMIElectr", "XIAOMI Electronics,CO.,LTD" },
{ { 0x40, 0x32, 0x9D }, "UnionImage", "Union Image Co.,Ltd" },
@@ -18709,6 +18822,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x40, 0x8E, 0x2C }, "Microsoft", "Microsoft Corporation" },
{ { 0x40, 0x8E, 0xDF }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x40, 0x8E, 0xF6 }, "Infinixmobil", "Infinix mobility limited" },
+ { { 0x40, 0x8F, 0x9A }, "KanELSweden", "KanEL Sweden AB" },
{ { 0x40, 0x8F, 0x9D }, "JuniperNetwo", "Juniper Networks" },
{ { 0x40, 0x91, 0x51 }, "Espressif", "Espressif Inc." },
{ { 0x40, 0x92, 0x1A }, "Apple", "Apple, Inc." },
@@ -18722,6 +18836,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x40, 0x98, 0xAD }, "Apple", "Apple, Inc." },
{ { 0x40, 0x99, 0x22 }, "AzureWaveTec", "AzureWave Technology Inc." },
{ { 0x40, 0x99, 0xE3 }, "GuangzhouMud", "Guangzhou Mudi Information Technology Co., Ltd" },
+ { { 0x40, 0x99, 0xF6 }, "TelinkSemico", "Telink Semiconductor(Shanghai) Co.,Ltd" },
{ { 0x40, 0x9A, 0x30 }, "TecnoMobile", "Tecno Mobile Limited" },
{ { 0x40, 0x9B, 0x0D }, "YourfKwanInd", "Shenzhen Yourf Kwan Industrial Co., Ltd" },
{ { 0x40, 0x9B, 0x21 }, "Nokia", "Nokia" },
@@ -18777,8 +18892,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x40, 0xB8, 0x37 }, "Sony", "Sony Corporation" },
{ { 0x40, 0xB8, 0x9A }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x40, 0xB8, 0xC2 }, "Osmozis", "Osmozis" },
- { { 0x40, 0xB9, 0x3C }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x40, 0xB9, 0x3C }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x40, 0xBA, 0x61 }, "ARIMACommuni", "ARIMA Communications Corp." },
+ { { 0x40, 0xBB, 0x56 }, "TeraNXTGloba", "TeraNXT Global India Pvt Ltd." },
{ { 0x40, 0xBC, 0x60 }, "Apple", "Apple, Inc." },
{ { 0x40, 0xBC, 0x68 }, "FunshionOnli", "Wuhan Funshion Online Technologies Co.,Ltd" },
{ { 0x40, 0xBC, 0x73 }, "CronoplastSL", "Cronoplast S.L." },
@@ -18807,6 +18923,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x40, 0xCD, 0x3A }, "Z3Technology", "Z3 Technology" },
{ { 0x40, 0xCD, 0x7A }, "QingdaoHisen", "Qingdao Hisense Communications Co.,Ltd." },
{ { 0x40, 0xCE, 0x24 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x40, 0xD1, 0x60 }, "Apple", "Apple, Inc." },
{ { 0x40, 0xD2, 0x5F }, "ItelMobile", "Itel Mobile Limited" },
{ { 0x40, 0xD2, 0x8A }, "Nintendo", "Nintendo Co., Ltd." },
{ { 0x40, 0xD3, 0x2D }, "Apple", "Apple, Inc." },
@@ -18819,10 +18936,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x40, 0xD5, 0x63 }, "HANAElectron", "HANA Electronics" },
{ { 0x40, 0xD6, 0x3C }, "EquitechIndu", "Equitech Industrial(DongGuan)Co.,Ltd" },
{ { 0x40, 0xD9, 0x5A }, "AMPAKTechnol", "AMPAK Technology,Inc." },
+ { { 0x40, 0xDA, 0x5C }, "Apple", "Apple, Inc." },
{ { 0x40, 0xDC, 0x9D }, "Hajen", "Hajen" },
{ { 0x40, 0xDC, 0xA5 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x40, 0xDD, 0xD1 }, "BeautifulCar", "Beautiful Card Corporation" },
{ { 0x40, 0xDE, 0x17 }, "LanfengTimes", "Shenzhen Lanfeng Times Industrial Co.,Ltd." },
+ { { 0x40, 0xDE, 0x24 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x40, 0xDE, 0xAD }, "JuniperNetwo", "Juniper Networks" },
{ { 0x40, 0xDF, 0x02 }, "LINEBIZPlus", "LINE BIZ Plus" },
{ { 0x40, 0xE1, 0x1C }, "CloudHighCom", "shenzhen Cloud High Communication Technology Co.,Ltd" },
@@ -18841,6 +18960,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x40, 0xED, 0x00 }, "TPLink", "TP-Link Corporation Limited" },
{ { 0x40, 0xED, 0xCF }, "Apple", "Apple, Inc." },
{ { 0x40, 0xEE, 0x15 }, "ZioncomElect", "Zioncom Electronics (Shenzhen) Ltd." },
+ { { 0x40, 0xEE, 0xBE }, "NXPSemicondu", "NXP Semiconductor (Tianjin) LTD." },
{ { 0x40, 0xEE, 0xDD }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x40, 0xEF, 0x4C }, "Fihonestcomm", "Fihonest communication co.,Ltd" },
{ { 0x40, 0xF0, 0x2F }, "LiteonTechno", "Liteon Technology Corporation" },
@@ -18960,8 +19080,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0x47, 0xCC }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
{ { 0x44, 0x48, 0x91 }, "HDMILicensin", "HDMI Licensing, LLC" },
{ { 0x44, 0x48, 0xB9 }, "MitraStarTec", "MitraStar Technology Corp." },
- { { 0x44, 0x48, 0xC1 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x44, 0x48, 0xC1 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x44, 0x48, 0xFF }, "QingdaoHaier", "Qingdao Haier Technology Co.,Ltd" },
+ { { 0x44, 0x49, 0x63 }, "WovenByToyot", "Woven By Toyota U.S., Inc." },
{ { 0x44, 0x49, 0x88 }, "Intel", "Intel Corporate" },
{ { 0x44, 0x4A, 0x65 }, "Silverflare", "Silverflare Ltd." },
{ { 0x44, 0x4A, 0xB0 }, "ZhejiangMoor", "Zhejiang Moorgen Intelligence Technology Co., Ltd" },
@@ -19023,6 +19144,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0x70, 0x0B }, "Iffu", "Iffu" },
{ { 0x44, 0x70, 0x98 }, "MingHongTech", "Ming Hong Technology (Shen Zhen) Limited" },
{ { 0x44, 0x71, 0x47 }, "XiaomiElectr", "Beijing Xiaomi Electronics Co.,Ltd" },
+ { { 0x44, 0x71, 0xB3 }, "LogitechFarE", "Logitech Far East" },
{ { 0x44, 0x73, 0xD6 }, "Logitech", "Logitech" },
{ { 0x44, 0x74, 0x6C }, "Sony", "Sony Corporation" },
{ { 0x44, 0x76, 0x54 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -19118,6 +19240,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0xC3, 0x9B }, "OooRubezhNpo", "Ooo Rubezh Npo" },
{ { 0x44, 0xC3, 0xB6 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x44, 0xC4, 0xA9 }, "OpticomCommu", "Opticom Communication, LLC" },
+ { { 0x44, 0xC5, 0x32 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x44, 0xC5, 0x6F }, "NGNEasySatfi", "NGN Easy Satfinder (Tianjin) Electronic Co., Ltd" },
{ { 0x44, 0xC6, 0x5D }, "Apple", "Apple, Inc." },
{ { 0x44, 0xC6, 0x9B }, "FengTianInfo", "Wuhan Feng Tian Information Network CO.,LTD" },
@@ -19195,6 +19318,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0xF4, 0x59 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x44, 0xF4, 0x77 }, "JuniperNetwo", "Juniper Networks" },
{ { 0x44, 0xF4, 0xE7 }, "Cohesity", "Cohesity Inc" },
+ { { 0x44, 0xF7, 0x70 }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0x44, 0xF8, 0x49 }, "UnionPacific", "Union Pacific Railroad" },
{ { 0x44, 0xF9, 0x71 }, "MercuryCommu", "Shenzhen Mercury Communication Technologies Co.,Ltd." },
{ { 0x44, 0xFA, 0x66 }, "CloudNetwork", "Cloud Network Technology Singapore Pte. Ltd." },
@@ -19207,6 +19331,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x48, 0x00, 0x31 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x48, 0x00, 0x33 }, "VantivaUSA", "Vantiva USA LLC" },
{ { 0x48, 0x00, 0x7D }, "DtsElektroni", "Dts Elektronik San. Tic. Ltd. Sti." },
+ { { 0x48, 0x00, 0xB3 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x48, 0x01, 0xC5 }, "OnePlusTechn", "OnePlus Technology (Shenzhen) Co., Ltd" },
{ { 0x48, 0x02, 0x2A }, "BLinkElectro", "B-Link Electronic Limited" },
{ { 0x48, 0x02, 0x86 }, "RealmeChongq", "Realme Chongqing Mobile Telecommunications Corp.,Ltd." },
@@ -19271,6 +19396,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x48, 0x35, 0x2B }, "Apple", "Apple, Inc." },
{ { 0x48, 0x35, 0x2E }, "WolckNetwork", "Shenzhen Wolck Network Product Co.,LTD" },
{ { 0x48, 0x35, 0x43 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
+ { { 0x48, 0x35, 0x84 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x48, 0x36, 0x5F }, "Wintecronics", "Wintecronics Ltd." },
{ { 0x48, 0x38, 0x71 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x48, 0x38, 0xB6 }, "AuhuiTaoyunT", "Auhui Taoyun Technology Co., Ltd" },
@@ -19294,9 +19420,10 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x48, 0x46, 0xF1 }, "Uros", "Uros Oy" },
{ { 0x48, 0x46, 0xFB }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x48, 0x47, 0x4B }, "HuaweiDevice", "Huawei Device Co., Ltd." },
+ { { 0x48, 0x49, 0x82 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x48, 0x49, 0xC7 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x48, 0x4A, 0x30 }, "GeorgeRoboti", "George Robotics Limited" },
- { { 0x48, 0x4A, 0xE9 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x48, 0x4A, 0xE9 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x48, 0x4B, 0xAA }, "Apple", "Apple, Inc." },
{ { 0x48, 0x4B, 0xD4 }, "VantivaUSA", "Vantiva USA LLC" },
{ { 0x48, 0x4C, 0x29 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -19357,6 +19484,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x48, 0x73, 0x10 }, "JuniperNetwo", "Juniper Networks" },
{ { 0x48, 0x73, 0x97 }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x48, 0x73, 0xCB }, "Tiinlab", "Tiinlab Corporation" },
+ { { 0x48, 0x74, 0x10 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x48, 0x74, 0x12 }, "OnePlusTechn", "OnePlus Technology (Shenzhen) Co., Ltd" },
{ { 0x48, 0x74, 0x6E }, "Apple", "Apple, Inc." },
{ { 0x48, 0x75, 0x83 }, "Intellion", "Intellion AG" },
@@ -19419,7 +19547,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x48, 0x9D, 0xD1 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x48, 0x9E, 0x9D }, "HuiZhouGaosh", "Hui Zhou Gaoshengda Technology Co.,LTD" },
{ { 0x48, 0x9E, 0xBD }, "HP", "HP Inc." },
- { { 0x48, 0x9E, 0xCB }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x48, 0x9E, 0xCB }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x48, 0xA0, 0xF8 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x48, 0xA1, 0x95 }, "Apple", "Apple, Inc." },
{ { 0x48, 0xA2, 0x2D }, "HuaxuchangTe", "Shenzhen Huaxuchang Telecom Technology Co.,Ltd" },
@@ -19427,6 +19555,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x48, 0xA2, 0xB8 }, "VisionZenith", "Chengdu Vision-Zenith Tech.Co,.Ltd" },
{ { 0x48, 0xA2, 0xE6 }, "Resideo", "Resideo" },
{ { 0x48, 0xA3, 0x80 }, "GioneeCommun", "Gionee Communication Equipment Co.,Ltd." },
+ { { 0x48, 0xA3, 0xBD }, "TexasInstrum", "Texas Instruments" },
{ { 0x48, 0xA4, 0x72 }, "Intel", "Intel Corporate" },
{ { 0x48, 0xA4, 0x93 }, "TaiyoYuden", "Taiyo Yuden Co.,Ltd" },
{ { 0x48, 0xA5, 0x16 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -19504,7 +19633,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x48, 0xDD, 0x0C }, "eero", "eero inc." },
{ { 0x48, 0xDD, 0x9D }, "ItelMobile", "Itel Mobile Limited" },
{ { 0x48, 0xDF, 0x1C }, "NECFibreOpti", "Wuhan NEC Fibre Optic Communications industry Co. Ltd" },
- { { 0x48, 0xDF, 0x37 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x48, 0xDF, 0x37 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x48, 0xE1, 0x5C }, "Apple", "Apple, Inc." },
{ { 0x48, 0xE1, 0xAF }, "Vity", "Vity" },
{ { 0x48, 0xE1, 0xE9 }, "MerossTechno", "Chengdu Meross Technology Co., Ltd." },
@@ -19515,6 +19644,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x48, 0xE6, 0xC0 }, "SIMComWirele", "SIMCom Wireless Solutions Co.,Ltd." },
{ { 0x48, 0xE7, 0x29 }, "Espressif", "Espressif Inc." },
{ { 0x48, 0xE7, 0xDA }, "AzureWaveTec", "AzureWave Technology Inc." },
+ { { 0x48, 0xE9, 0xCA }, "creoline", "creoline GmbH" },
{ { 0x48, 0xE9, 0xF1 }, "Apple", "Apple, Inc." },
{ { 0x48, 0xEA, 0x63 }, "ZhejiangUniv", "Zhejiang Uniview Technologies Co., Ltd." },
{ { 0x48, 0xEB, 0x30 }, "EternaTechno", "Eterna Technology, Inc." },
@@ -19581,6 +19711,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x4C, 0x0D, 0xEE }, "JabilCircuit", "Jabil Circuit (Shanghai) Ltd." },
{ { 0x4C, 0x0F, 0x6E }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x4C, 0x0F, 0xC7 }, "EardaTechnol", "Earda Technologies co Ltd" },
+ { { 0x4C, 0x10, 0xD5 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x4C, 0x11, 0x54 }, "MobiwireMobi", "Mobiwire Mobiles (NingBo) Co., LTD" },
{ { 0x4C, 0x11, 0x59 }, "VisionInform", "Vision Information & Communications" },
{ { 0x4C, 0x11, 0xAE }, "Espressif", "Espressif Inc." },
@@ -19732,6 +19863,8 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x4C, 0x80, 0x93 }, "Intel", "Intel Corporate" },
{ { 0x4C, 0x80, 0xBA }, "TianyuInform", "Wuhan Tianyu Information Industry Co., Ltd." },
{ { 0x4C, 0x81, 0x20 }, "TaicangT&WEl", "Taicang T&W Electronics" },
+ { { 0x4C, 0x81, 0x25 }, "ZOWEETECHNOL", "ZOWEE TECHNOLOGY(HEYUAN)Co.,Ltd" },
+ { { 0x4C, 0x82, 0x37 }, "TelinkMicro", "Telink Micro LLC" },
{ { 0x4C, 0x82, 0xA9 }, "CloudNetwork", "Cloud Network Technology Singapore Pte. Ltd." },
{ { 0x4C, 0x82, 0xCF }, "DishTechnolo", "Dish Technologies Corp" },
{ { 0x4C, 0x83, 0xDE }, "CiscoSPVTG", "Cisco SPVTG" },
@@ -19779,9 +19912,10 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x4C, 0xAE, 0x13 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x4C, 0xAE, 0x1C }, "SaiNXTTechno", "SaiNXT Technologies LLP" },
{ { 0x4C, 0xAE, 0x31 }, "ShengHaiElec", "ShengHai Electronics (Shenzhen) Ltd" },
- { { 0x4C, 0xAE, 0xA3 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x4C, 0xAE, 0xA3 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x4C, 0xAE, 0xEC }, "Guangzhoulim", "Guangzhou limee technology co.,LTD" },
{ { 0x4C, 0xB0, 0x08 }, "GwelltimesTe", "Shenzhen Gwelltimes Technology Co.,Ltd" },
+ { { 0x4C, 0xB0, 0x4A }, "Intel", "Intel Corporate" },
{ { 0x4C, 0xB0, 0x87 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x4C, 0xB0, 0xE8 }, "RongZhixingh", "Beijing RongZhi xinghua technology co., LTD" },
{ { 0x4C, 0xB1, 0x6C }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -20031,6 +20165,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x50, 0x5A, 0xC6 }, "SuperTelecom", "Guangdong Super Telecom Co.,Ltd." },
{ { 0x50, 0x5B, 0x1D }, "CDataTechnol", "Shenzhen C-Data Technology Co., Ltd." },
{ { 0x50, 0x5B, 0xC2 }, "LiteonTechno", "Liteon Technology Corporation" },
+ { { 0x50, 0x5C, 0x88 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x50, 0x5D, 0x7A }, "zte", "zte corporation" },
{ { 0x50, 0x5D, 0xAC }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x50, 0x5E, 0x24 }, "zte", "zte corporation" },
@@ -20075,6 +20210,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x50, 0x78, 0xB0 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x50, 0x78, 0xB3 }, "zte", "zte corporation" },
{ { 0x50, 0x79, 0x5B }, "InterexportT", "Interexport Telecomunicaciones S.A." },
+ { { 0x50, 0x79, 0x73 }, "InagileElect", "Inagile Electronic Technology Co.,LTD." },
{ { 0x50, 0x7A, 0x55 }, "Apple", "Apple, Inc." },
{ { 0x50, 0x7A, 0xC5 }, "Apple", "Apple, Inc." },
{ { 0x50, 0x7B, 0x91 }, "SigmastarTec", "Sigmastar Technology Ltd." },
@@ -20096,6 +20232,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x50, 0x8A, 0x06 }, "TuyaSmart", "Tuya Smart Inc." },
{ { 0x50, 0x8A, 0x0F }, "FiseTechnolo", "Shenzhen Fise Technology Holding Co.,Ltd." },
{ { 0x50, 0x8A, 0x42 }, "UptmateTechn", "Uptmate Technology Co., LTD" },
+ { { 0x50, 0x8A, 0x7F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x50, 0x8A, 0xCB }, "MaxmadeTechn", "Shenzhen Maxmade Technology Co., Ltd." },
{ { 0x50, 0x8B, 0xB9 }, "TuyaSmart", "Tuya Smart Inc." },
{ { 0x50, 0x8C, 0x77 }, "DIRMEIERScha", "DIRMEIER Schanktechnik GmbH &Co KG" },
@@ -20178,6 +20315,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x50, 0xCD, 0x32 }, "NanJingChaor", "NanJing Chaoran Science & Technology Co.,Ltd." },
{ { 0x50, 0xCE, 0x75 }, "MeasyElectro", "Measy Electronics Co., Ltd." },
{ { 0x50, 0xCE, 0xE3 }, "Gigafirm", "Gigafirm.co.LTD" },
+ { { 0x50, 0xCF, 0x56 }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
{ { 0x50, 0xD0, 0x65 }, "ESYLUX", "ESYLUX GmbH" },
{ { 0x50, 0xD2, 0x13 }, "CviLux", "CviLux Corporation" },
{ { 0x50, 0xD2, 0x74 }, "Steffes", "Steffes Corporation" },
@@ -20250,6 +20388,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x54, 0x02, 0x95 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x54, 0x03, 0x84 }, "HongkongNano", "Hongkong Nano IC Technologies Co., Ltd" },
{ { 0x54, 0x03, 0xF5 }, "EBNTechnolog", "EBN Technology Corp." },
+ { { 0x54, 0x04, 0x63 }, "CigShanghai", "Cig Shanghai Co Ltd" },
{ { 0x54, 0x04, 0x96 }, "Gigawave", "Gigawave LTD" },
{ { 0x54, 0x04, 0xA6 }, "ASUSTekCOMPU", "ASUSTek COMPUTER INC." },
{ { 0x54, 0x05, 0x36 }, "Vivago", "Vivago Oy" },
@@ -20259,6 +20398,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x54, 0x06, 0x8B }, "NingboDeliKe", "Ningbo Deli Kebei Technology Co.LTD" },
{ { 0x54, 0x07, 0x64 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x54, 0x07, 0x7D }, "Netgear", "Netgear" },
+ { { 0x54, 0x08, 0x53 }, "QingdaoHaier", "Qingdao Haier Technology Co.,Ltd" },
{ { 0x54, 0x09, 0x10 }, "Apple", "Apple, Inc." },
{ { 0x54, 0x09, 0x29 }, "InventusPowe", "Inventus Power Eletronica do Brasil LTDA" },
{ { 0x54, 0x09, 0x55 }, "zte", "zte corporation" },
@@ -20314,6 +20454,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x54, 0x2B, 0xDE }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x54, 0x2C, 0xEA }, "Protectron", "Protectron" },
{ { 0x54, 0x2F, 0x04 }, "LongcheerTec", "Shanghai Longcheer Technology Co., Ltd." },
+ { { 0x54, 0x2F, 0x2B }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x54, 0x2F, 0x89 }, "EuclidLabora", "Euclid Laboratories, Inc." },
{ { 0x54, 0x2F, 0x8A }, "TellescomInd", "Tellescom Industria E Comercio Em Telecomunicacao" },
{ { 0x54, 0x31, 0x31 }, "RasterVision", "Raster Vision Ltd" },
@@ -20325,6 +20466,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x54, 0x34, 0xEF }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x54, 0x35, 0x30 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x54, 0x35, 0xDF }, "Symeo", "Symeo GmbH" },
+ { { 0x54, 0x35, 0xE9 }, "FeitianTechn", "Feitian Technologies Co., Ltd" },
{ { 0x54, 0x36, 0x9B }, "1VergeIntern", "1Verge Internet Technology (Beijing) Co., Ltd." },
{ { 0x54, 0x37, 0xBB }, "TaicangT&WEl", "Taicang T&W Electronics" },
{ { 0x54, 0x39, 0x68 }, "EdgewaterNet", "Edgewater Networks Inc" },
@@ -20397,13 +20539,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x54, 0x71, 0xDD }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x54, 0x72, 0x4F }, "Apple", "Apple, Inc." },
{ { 0x54, 0x72, 0x5E }, "UnionManTech", "Union Man Technology Co.,Ltd" },
+ { { 0x54, 0x72, 0x6E }, "DaimlerTruck", "Daimler Truck AG" },
{ { 0x54, 0x73, 0x98 }, "ToyoElectron", "Toyo Electronics Corporation" },
{ { 0x54, 0x74, 0xE6 }, "WebtechWirel", "Webtech Wireless" },
{ { 0x54, 0x75, 0x95 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x54, 0x75, 0xD0 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x54, 0x76, 0xB2 }, "RaisecomTech", "Raisecom Technology CO., LTD" },
{ { 0x54, 0x77, 0x87 }, "EardaTechnol", "Earda Technologies co Ltd" },
- { { 0x54, 0x77, 0x8A }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x54, 0x77, 0x8A }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x54, 0x78, 0x1A }, "Cisco", "Cisco Systems, Inc" },
{ { 0x54, 0x78, 0x85 }, "GiecDigital", "Shenzhen Giec Digital Co.,Ltd" },
{ { 0x54, 0x78, 0xC9 }, "AMPAKTechnol", "AMPAK Technology,Inc." },
@@ -20416,7 +20559,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x54, 0x7F, 0xA8 }, "TELCOsro", "TELCO systems, s.r.o." },
{ { 0x54, 0x7F, 0xBC }, "iodyne", "iodyne" },
{ { 0x54, 0x7F, 0xEE }, "Cisco", "Cisco Systems, Inc" },
- { { 0x54, 0x80, 0x28 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x54, 0x80, 0x28 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x54, 0x81, 0x2D }, "PAXComputerT", "PAX Computer Technology(Shenzhen) Ltd." },
{ { 0x54, 0x81, 0xAD }, "EagleResearc", "Eagle Research Corporation" },
{ { 0x54, 0x83, 0x3A }, "ZyxelCommuni", "Zyxel Communications Corporation" },
@@ -20715,6 +20858,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x58, 0x85, 0x6E }, "Qsc", "Qsc Ag" },
{ { 0x58, 0x85, 0xA2 }, "RealmeChongq", "Realme Chongqing MobileTelecommunications Corp Ltd" },
{ { 0x58, 0x85, 0xE9 }, "RealmeChongq", "Realme Chongqing MobileTelecommunications Corp Ltd" },
+ { { 0x58, 0x86, 0x70 }, "JuniperNetwo", "Juniper Networks" },
{ { 0x58, 0x86, 0x94 }, "EFMNetworks", "EFM Networks" },
{ { 0x58, 0x87, 0x4C }, "LiteOnCleanE", "Lite-On Clean Energy Technology Corp." },
{ { 0x58, 0x87, 0x9F }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -20734,6 +20878,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x58, 0x93, 0x51 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x58, 0x93, 0x96 }, "RuckusWirele", "Ruckus Wireless" },
{ { 0x58, 0x93, 0xD8 }, "TexasInstrum", "Texas Instruments" },
+ { { 0x58, 0x93, 0xE8 }, "Apple", "Apple, Inc." },
{ { 0x58, 0x94, 0x6B }, "Intel", "Intel Corporate" },
{ { 0x58, 0x94, 0xA2 }, "KETEK", "KETEK GmbH" },
{ { 0x58, 0x94, 0xAE }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -20763,6 +20908,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x58, 0xA7, 0x6F }, "iD", "iD corporation" },
{ { 0x58, 0xA8, 0x39 }, "Intel", "Intel Corporate" },
{ { 0x58, 0xA8, 0x7B }, "Fitbit", "Fitbit, Inc." },
+ { { 0x58, 0xA8, 0xE8 }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0x58, 0xAC, 0x78 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x58, 0xAD, 0x12 }, "Apple", "Apple, Inc." },
{ { 0x58, 0xAE, 0x2B }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -20867,12 +21013,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x58, 0xFD, 0x5D }, "Xinyuntechno", "Hangzhou Xinyun technology Co., Ltd." },
{ { 0x58, 0xFD, 0xB1 }, "LGElectronic", "LG Electronics" },
{ { 0x58, 0xFD, 0xBE }, "TaikaidaTech", "Shenzhen Taikaida Technology Co., Ltd" },
+ { { 0x58, 0xFE, 0x7E }, "zte", "zte corporation" },
{ { 0x58, 0xFF, 0xA1 }, "zte", "zte corporation" },
{ { 0x5A, 0x03, 0xBA }, "WirelessBroa", "Wireless Broadband Alliance Ltd" },
{ { 0x5A, 0x18, 0xFF }, "FiRaConsorti", "FiRa Consortium" },
{ { 0x5A, 0x73, 0xCF }, "GogoBusiness", "Gogo Business Aviation" },
{ { 0x5A, 0xCB, 0xD3 }, "Simaudio", "Simaudio Ltd" },
{ { 0x5A, 0xE6, 0x60 }, "nyantec", "nyantec GmbH" },
+ { { 0x5A, 0xED, 0x67 }, "GoldiLinkTec", "GoldiLink Technology Corp." },
{ { 0x5C, 0x00, 0x38 }, "ViasatGroup", "Viasat Group S.p.A." },
{ { 0x5C, 0x02, 0x14 }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0x5C, 0x02, 0x6A }, "AppliedVisio", "Applied Vision Corporation" },
@@ -20903,6 +21051,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x5C, 0x16, 0xC7 }, "AristaNetwor", "Arista Networks" },
{ { 0x5C, 0x17, 0x20 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x5C, 0x17, 0x37 }, "IViewNow", "I-View Now, LLC." },
+ { { 0x5C, 0x17, 0x83 }, "EdgecoreAmer", "Edgecore Americas Networking Corporation" },
{ { 0x5C, 0x17, 0xCF }, "OnePlusTechn", "OnePlus Technology (Shenzhen) Co., Ltd" },
{ { 0x5C, 0x17, 0xD3 }, "Lge", "Lge" },
{ { 0x5C, 0x18, 0xB5 }, "TalonCommuni", "Talon Communications" },
@@ -20940,7 +21089,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x5C, 0x34, 0x00 }, "HisenseElect", "Hisense Electric Co.,Ltd" },
{ { 0x5C, 0x34, 0x5B }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
{ { 0x5C, 0x35, 0x3B }, "CompalBroadb", "Compal Broadband Networks, Inc." },
+ { { 0x5C, 0x35, 0x48 }, "AdityaInfote", "Aditya Infotech Ltd." },
{ { 0x5C, 0x35, 0xDA }, "There", "There Corporation Oy" },
+ { { 0x5C, 0x35, 0xFC }, "ActiontecEle", "Actiontec Electronics Inc." },
{ { 0x5C, 0x36, 0xB8 }, "TCLKingElect", "TCL King Electrical Appliances (Huizhou) Co., Ltd" },
{ { 0x5C, 0x38, 0xE0 }, "SuperElectro", "Shanghai Super Electronics Technology Co.,LTD" },
{ { 0x5C, 0x3A, 0x3D }, "zte", "zte corporation" },
@@ -20957,6 +21108,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x5C, 0x45, 0x27 }, "JuniperNetwo", "Juniper Networks" },
{ { 0x5C, 0x46, 0xB0 }, "SIMComWirele", "SIMCom Wireless Solutions Limited" },
{ { 0x5C, 0x47, 0x5E }, "Ring", "Ring LLC" },
+ { { 0x5C, 0x48, 0x42 }, "AnysoftInfor", "Hangzhou Anysoft Information Technology Co. , Ltd" },
{ { 0x5C, 0x49, 0x79 }, "AVMAudiovisu", "AVM Audiovisuelles Marketing und Computersysteme GmbH" },
{ { 0x5C, 0x49, 0x7D }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x5C, 0x49, 0xFA }, "GuoweiShidai", "Shenzhen Guowei Shidai Communication Equipement Co., Ltd" },
@@ -21059,6 +21211,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x5C, 0x8F, 0xE0 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x5C, 0x90, 0x12 }, "OwlCyberDefe", "Owl Cyber Defense Solutions, LLC" },
{ { 0x5C, 0x91, 0x57 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x5C, 0x91, 0x75 }, "Apple", "Apple, Inc." },
{ { 0x5C, 0x91, 0xFD }, "Jaewoncnc", "Jaewoncnc" },
{ { 0x5C, 0x92, 0x5E }, "ZioncomElect", "Zioncom Electronics (Shenzhen) Ltd." },
{ { 0x5C, 0x93, 0xA2 }, "LiteonTechno", "Liteon Technology Corporation" },
@@ -21077,7 +21230,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x5C, 0xA1, 0x78 }, "TableTopMedi", "TableTop Media (dba Ziosk)" },
{ { 0x5C, 0xA1, 0xE0 }, "EmbedWayTech", "EmbedWay Technologies" },
{ { 0x5C, 0xA3, 0x9D }, "SamsungElect", "Samsung Electro Mechanics Co., Ltd." },
- { { 0x5C, 0xA3, 0xEB }, "Lokelsro", "Lokel s.r.o." },
+ { { 0x5C, 0xA3, 0xEB }, "SKODADIGITAL", "SKODA DIGITAL s.r.o." },
{ { 0x5C, 0xA4, 0x7D }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
{ { 0x5C, 0xA4, 0x8A }, "Cisco", "Cisco Systems, Inc" },
{ { 0x5C, 0xA4, 0xA4 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
@@ -21111,12 +21264,13 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x5C, 0xB6, 0xCC }, "NovaCommTech", "NovaComm Technologies Inc." },
{ { 0x5C, 0xB8, 0xCB }, "AllisCommuni", "Allis Communications" },
{ { 0x5C, 0xB9, 0x01 }, "HewlettPacka", "Hewlett Packard" },
- { { 0x5C, 0xBA, 0x2C }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x5C, 0xBA, 0x2C }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x5C, 0xBA, 0x37 }, "Microsoft", "Microsoft Corporation" },
{ { 0x5C, 0xBA, 0xEF }, "ChongqingFug", "Chongqing Fugui Electronics Co.,Ltd." },
{ { 0x5C, 0xBB, 0xEE }, "zte", "zte corporation" },
{ { 0x5C, 0xBD, 0x9A }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x5C, 0xBD, 0x9E }, "HongkongMira", "Hongkong Miracle Eagle Technology(Group) Limited" },
+ { { 0x5C, 0xBE, 0x05 }, "Ispec", "Ispec" },
{ { 0x5C, 0xC0, 0xA0 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x5C, 0xC1, 0xD7 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x5C, 0xC2, 0x13 }, "FrSauter", "Fr. Sauter AG" },
@@ -21185,7 +21339,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x5C, 0xEA, 0x1D }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x5C, 0xEB, 0x4E }, "RSTAHLHMI", "R. STAHL HMI Systems GmbH" },
{ { 0x5C, 0xEB, 0x68 }, "CheerstarTec", "Cheerstar Technology Co., Ltd" },
- { { 0x5C, 0xED, 0x8C }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x5C, 0xED, 0x8C }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x5C, 0xED, 0xF4 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x5C, 0xEE, 0x79 }, "GlobalDigite", "Global Digitech Co LTD" },
{ { 0x5C, 0xF2, 0x07 }, "SpecoTechnol", "Speco Technologies" },
@@ -21206,6 +21360,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x5C, 0xF9, 0xF0 }, "AtomosEngine", "Atomos Engineering P/L" },
{ { 0x5C, 0xF9, 0xFD }, "TaicangT&WEl", "Taicang T&W Electronics" },
{ { 0x5C, 0xFA, 0x25 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
+ { { 0x5C, 0xFA, 0x5A }, "SinepowerLda", "Sinepower Lda" },
{ { 0x5C, 0xFA, 0xFB }, "Acubit", "Acubit" },
{ { 0x5C, 0xFB, 0x3A }, "ChongqingFug", "Chongqing Fugui Electronics Co.,Ltd." },
{ { 0x5C, 0xFB, 0x7C }, "JingxunSoftw", "Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd" },
@@ -21258,6 +21413,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x60, 0x1A, 0xC7 }, "Nintendo", "Nintendo Co.,Ltd" },
{ { 0x60, 0x1B, 0x52 }, "VodafoneItal", "Vodafone Italia S.p.A." },
{ { 0x60, 0x1D, 0x0F }, "MidniteSolar", "Midnite Solar" },
+ { { 0x60, 0x1D, 0x16 }, "MedEngHoldin", "Med-Eng Holdings ULC" },
{ { 0x60, 0x1D, 0x56 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
{ { 0x60, 0x1D, 0x91 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0x60, 0x1D, 0x9D }, "SichuanAILin", "Sichuan AI-Link Technology Co., Ltd." },
@@ -21286,6 +21442,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x60, 0x32, 0xB1 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x60, 0x32, 0xF0 }, "Mplustechnol", "Mplus technology" },
{ { 0x60, 0x33, 0x4B }, "Apple", "Apple, Inc." },
+ { { 0x60, 0x34, 0x57 }, "HPTuners", "HP Tuners LLC" },
{ { 0x60, 0x35, 0x53 }, "BuwonTechnol", "Buwon Technology" },
{ { 0x60, 0x35, 0x73 }, "EardaTechnol", "Earda Technologies co Ltd" },
{ { 0x60, 0x35, 0xC0 }, "Sfr", "Sfr" },
@@ -21352,6 +21509,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x60, 0x65, 0x25 }, "Apple", "Apple, Inc." },
{ { 0x60, 0x66, 0x82 }, "AtekoPhotoel", "Shenzhen Ateko Photoelectricity Co.,Ltd" },
{ { 0x60, 0x67, 0x20 }, "Intel", "Intel Corporate" },
+ { { 0x60, 0x68, 0x32 }, "SeneasyIntel", "Guangdong Seneasy Intelligent Technology Co., Ltd." },
{ { 0x60, 0x68, 0x4E }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x60, 0x69, 0x44 }, "Apple", "Apple, Inc." },
{ { 0x60, 0x69, 0x9B }, "isepos", "isepos GmbH" },
@@ -21374,6 +21532,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x60, 0x73, 0x5C }, "Cisco", "Cisco Systems, Inc" },
{ { 0x60, 0x73, 0xBC }, "zte", "zte corporation" },
{ { 0x60, 0x74, 0x8D }, "AtmacaElektr", "Atmaca Elektronik" },
+ { { 0x60, 0x74, 0xB1 }, "HomeControlS", "Home Control Singapore Pte Ltd" },
{ { 0x60, 0x76, 0x23 }, "ESuperlinkTe", "Shenzhen E-Superlink Technology Co., Ltd" },
{ { 0x60, 0x76, 0x88 }, "Velodyne", "Velodyne" },
{ { 0x60, 0x77, 0x71 }, "TexasInstrum", "Texas Instruments" },
@@ -21390,6 +21549,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x60, 0x83, 0x34 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x60, 0x83, 0x73 }, "Apple", "Apple, Inc." },
{ { 0x60, 0x83, 0xB2 }, "GkWareeK", "GkWare e.K." },
+ { { 0x60, 0x83, 0xE7 }, "TpLinkPte", "Tp-Link Corporation Pte. Ltd." },
{ { 0x60, 0x84, 0x3B }, "Soladigm", "Soladigm, Inc." },
{ { 0x60, 0x84, 0xBD }, "Buffalo", "Buffalo.Inc" },
{ { 0x60, 0x86, 0x45 }, "AveryWeighTr", "Avery Weigh-Tronix, LLC" },
@@ -21470,6 +21630,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x60, 0xC0, 0x1E }, "V&GInformati", "V&G Information System Co.,Ltd" },
{ { 0x60, 0xC0, 0xBF }, "ONSemiconduc", "ON Semiconductor" },
{ { 0x60, 0xC1, 0xCB }, "FujianGreatP", "Fujian Great Power PLC Equipment Co.,Ltd" },
+ { { 0x60, 0xC2, 0x2A }, "AllwinnerTec", "Allwinner Technology Co., Ltd" },
{ { 0x60, 0xC3, 0x97 }, "2Wire", "2Wire Inc" },
{ { 0x60, 0xC5, 0x47 }, "Apple", "Apple, Inc." },
{ { 0x60, 0xC5, 0xA8 }, "LTHonwayTech", "Beijing LT Honway Technology Co.,Ltd" },
@@ -21500,6 +21661,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x60, 0xD2, 0xDD }, "BaitongPutia", "Shenzhen Baitong Putian Technology Co.,Ltd." },
{ { 0x60, 0xD3, 0x0A }, "Quatius", "Quatius Limited" },
{ { 0x60, 0xD4, 0xE9 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
+ { { 0x60, 0xD5, 0x1B }, "Fujitsu", "Fujitsu Limited" },
{ { 0x60, 0xD7, 0x55 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x60, 0xD8, 0x19 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x60, 0xD8, 0x9C }, "HMDGlobal", "HMD Global Oy" },
@@ -21522,6 +21684,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x60, 0xE3, 0x27 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x60, 0xE3, 0x2B }, "Intel", "Intel Corporate" },
{ { 0x60, 0xE3, 0xAC }, "LGElectronic", "LG Electronics (Mobile Communications)" },
+ { { 0x60, 0xE5, 0xD8 }, "zte", "zte corporation" },
{ { 0x60, 0xE6, 0xBC }, "SinoTelecomT", "Sino-Telecom Technology Co.,Ltd." },
{ { 0x60, 0xE6, 0xF0 }, "WistronNeweb", "Wistron Neweb Corporation" },
{ { 0x60, 0xE7, 0x01 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -21579,6 +21742,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x64, 0x09, 0xAC }, "TCTmobile", "TCT mobile ltd" },
{ { 0x64, 0x0B, 0x4A }, "DigitalTelec", "Digital Telecom Technology Limited" },
{ { 0x64, 0x0B, 0xD7 }, "Apple", "Apple, Inc." },
+ { { 0x64, 0x0C, 0x91 }, "Apple", "Apple, Inc." },
{ { 0x64, 0x0D, 0x22 }, "LGElectronic", "LG Electronics (Mobile Communications)" },
{ { 0x64, 0x0D, 0xCE }, "MercuryCommu", "Shenzhen Mercury Communication Technologies Co.,Ltd." },
{ { 0x64, 0x0D, 0xE6 }, "Petra", "Petra Systems" },
@@ -21625,6 +21789,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x64, 0x27, 0x53 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x64, 0x29, 0x43 }, "DLink", "D-Link Corporation" },
{ { 0x64, 0x29, 0xED }, "AOPKKMilandr", "AO \"PKK Milandr\"" },
+ { { 0x64, 0x29, 0xFF }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x64, 0x2B, 0x8A }, "ALLBESTIndus", "ALL BEST Industrial Co., Ltd." },
{ { 0x64, 0x2C, 0x0F }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x64, 0x2C, 0xAC }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -21650,6 +21815,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x64, 0x43, 0x46 }, "QuickNetwork", "GuangDong Quick Network Computer CO.,LTD" },
{ { 0x64, 0x44, 0xD5 }, "TDTech", "TD Tech" },
{ { 0x64, 0x47, 0xE0 }, "FeitianTechn", "Feitian Technologies Co., Ltd" },
+ { { 0x64, 0x48, 0x42 }, "Apple", "Apple, Inc." },
{ { 0x64, 0x49, 0x7D }, "Intel", "Intel Corporate" },
{ { 0x64, 0x4B, 0xC3 }, "WOASiSTeleco", "Shanghai WOASiS Telecommunications Ltd., Co." },
{ { 0x64, 0x4B, 0xF0 }, "CalDigit", "CalDigit, Inc" },
@@ -21723,6 +21889,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x64, 0x6E, 0xEA }, "Iskrateldoo", "Iskratel d.o.o." },
{ { 0x64, 0x70, 0x02 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x64, 0x70, 0x33 }, "Apple", "Apple, Inc." },
+ { { 0x64, 0x70, 0x60 }, "TexasInstrum", "Texas Instruments" },
{ { 0x64, 0x72, 0xD8 }, "GooWiTechnol", "GooWi Technology Co.,Limited" },
{ { 0x64, 0x73, 0x66 }, "SieraTechnol", "Shenzhen Siera Technology Ltd" },
{ { 0x64, 0x73, 0xE2 }, "Arbiter", "Arbiter Systems, Inc." },
@@ -21753,6 +21920,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x64, 0x8C, 0xBB }, "TexasInstrum", "Texas Instruments" },
{ { 0x64, 0x8D, 0x9E }, "IVTElectroni", "IVT Electronic Co.,Ltd" },
{ { 0x64, 0x8F, 0x3E }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x64, 0x8F, 0xDB }, "HuaqinTechno", "Huaqin Technology Co.LTD" },
{ { 0x64, 0x90, 0xC1 }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0x64, 0x95, 0x6C }, "LGElectronic", "LG Electronics" },
{ { 0x64, 0x97, 0x14 }, "eero", "eero inc." },
@@ -21807,6 +21975,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x64, 0xB8, 0x53 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x64, 0xB9, 0x4E }, "DellTechnolo", "Dell Technologies" },
{ { 0x64, 0xB9, 0xE8 }, "Apple", "Apple, Inc." },
+ { { 0x64, 0xBA, 0xA4 }, "zte", "zte corporation" },
{ { 0x64, 0xBA, 0xBD }, "SDJTechnolog", "SDJ Technologies, Inc." },
{ { 0x64, 0xBB, 0x1E }, "EardaTechnol", "Earda Technologies co Ltd" },
{ { 0x64, 0xBC, 0x0C }, "LGElectronic", "LG Electronics (Mobile Communications)" },
@@ -21914,6 +22083,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x64, 0xFC, 0x8C }, "Zonar", "Zonar Systems" },
{ { 0x64, 0xFD, 0x29 }, "ZhejiangDahu", "Zhejiang Dahua Technology Co., Ltd." },
{ { 0x64, 0xFD, 0x96 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
+ { { 0x64, 0xFE, 0x15 }, "FlaircommMic", "Flaircomm Microelectronics,Inc." },
{ { 0x64, 0xFF, 0x0A }, "WistronNeweb", "Wistron Neweb Corporation" },
{ { 0x68, 0x02, 0x35 }, "KontenNetwor", "Konten Networks Inc." },
{ { 0x68, 0x02, 0xB8 }, "CompalBroadb", "Compal Broadband Networks, Inc." },
@@ -21970,6 +22140,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x68, 0x31, 0xFE }, "Teladin", "Teladin Co.,Ltd." },
{ { 0x68, 0x33, 0x2C }, "KenstelNetwo", "Kenstel Networks Limited" },
{ { 0x68, 0x33, 0xEE }, "ARRISGroup", "ARRIS Group, Inc." },
+ { { 0x68, 0x34, 0x21 }, "Intel", "Intel Corporate" },
{ { 0x68, 0x34, 0x89 }, "LEAProfessio", "LEA Professional" },
{ { 0x68, 0x35, 0x63 }, "LiownElectro", "Shenzhen Liown Electronics Co.,Ltd." },
{ { 0x68, 0x36, 0xB5 }, "DriveScale", "DriveScale, Inc." },
@@ -21989,6 +22160,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x68, 0x3F, 0x7D }, "IngramMicroS", "Ingram Micro Services" },
{ { 0x68, 0x40, 0x3C }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x68, 0x41, 0x8F }, "Telechips", "Telechips, Inc." },
+ { { 0x68, 0x42, 0x16 }, "SteplockAcce", "Steplock Access AB" },
{ { 0x68, 0x43, 0x52 }, "Bhuu", "Bhuu Limited" },
{ { 0x68, 0x43, 0xD7 }, "AgilecomPhot", "Agilecom Photonics Solutions Guangdong Limited" },
{ { 0x68, 0x45, 0x71 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -22005,6 +22177,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x68, 0x4A, 0xE9 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x68, 0x4B, 0x88 }, "GaltronicsTe", "Galtronics Telemetry Inc." },
{ { 0x68, 0x4C, 0xA8 }, "HerotelTech", "Shenzhen Herotel Tech. Co., Ltd." },
+ { { 0x68, 0x4D, 0xB6 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x68, 0x4E, 0x05 }, "HunanFnLinkT", "Hunan Fn-Link Technology Limited" },
{ { 0x68, 0x4F, 0x64 }, "Dell", "Dell Inc." },
{ { 0x68, 0x50, 0x5D }, "HaloTechnolo", "Halo Technologies" },
@@ -22118,6 +22291,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x68, 0xA0, 0x3E }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x68, 0xA0, 0xF6 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x68, 0xA1, 0xB7 }, "HonghaoMingc", "Honghao Mingchuan Technology (Beijing) CO.,Ltd." },
+ { { 0x68, 0xA2, 0xAA }, "AcresManufac", "Acres Manufacturing" },
{ { 0x68, 0xA3, 0x78 }, "FreeboxSas", "Freebox Sas" },
{ { 0x68, 0xA3, 0xC4 }, "LiteonTechno", "Liteon Technology Corporation" },
{ { 0x68, 0xA4, 0x0E }, "BSHHausgerät", "BSH Hausgeräte GmbH" },
@@ -22141,6 +22315,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x68, 0xAF, 0xFF }, "CambriconInf", "Shanghai Cambricon Information Technology Co., Ltd." },
{ { 0x68, 0xB0, 0x94 }, "InesaElectro", "Inesa Electron Co.,Ltd" },
{ { 0x68, 0xB3, 0x5E }, "NeostraTechn", "Shenzhen Neostra Technology Co.Ltd" },
+ { { 0x68, 0xB4, 0x1E }, "ZeasnTechnol", "Zeasn Technology Private Limited" },
{ { 0x68, 0xB4, 0x3A }, "WaterFurnace", "WaterFurnace International, Inc." },
{ { 0x68, 0xB5, 0x99 }, "HewlettPacka", "Hewlett Packard" },
{ { 0x68, 0xB6, 0x91 }, "AmazonTechno", "Amazon Technologies Inc." },
@@ -22198,6 +22373,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x68, 0xE7, 0x4A }, "TexasInstrum", "Texas Instruments" },
{ { 0x68, 0xE7, 0xC2 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x68, 0xE8, 0xEB }, "LinktelTechn", "Linktel Technologies Co.,Ltd" },
+ { { 0x68, 0xE9, 0x05 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x68, 0xEB, 0xAE }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x68, 0xEB, 0xC5 }, "AngstremTele", "Angstrem Telecom" },
{ { 0x68, 0xEC, 0x62 }, "YODOTechnolo", "YODO Technology Corp. Ltd." },
@@ -22343,6 +22519,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x6C, 0x45, 0x98 }, "AntexElectro", "Antex Electronic Corp." },
{ { 0x6C, 0x45, 0xC4 }, "Cloudflare", "Cloudflare, Inc." },
{ { 0x6C, 0x47, 0x60 }, "SunitecEnter", "Sunitec Enterprise Co.,Ltd" },
+ { { 0x6C, 0x48, 0x3F }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x6C, 0x48, 0xA6 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x6C, 0x49, 0xC1 }, "o2ones", "o2ones Co., Ltd." },
{ { 0x6C, 0x4A, 0x39 }, "Bita", "Bita" },
@@ -22379,6 +22556,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x6C, 0x5E, 0x3B }, "Cisco", "Cisco Systems, Inc" },
{ { 0x6C, 0x5E, 0x7A }, "UbiquitousIn", "Ubiquitous Internet Telecom Co., Ltd" },
{ { 0x6C, 0x5F, 0x1C }, "LenovoMobile", "Lenovo Mobile Communication Technology Ltd." },
+ { { 0x6C, 0x60, 0x16 }, "OnePlusTechn", "OnePlus Technology (Shenzhen) Co., Ltd" },
{ { 0x6C, 0x60, 0xD0 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x6C, 0x60, 0xEB }, "ZhiYuanElect", "Zhi Yuan Electronics Co., Limited" },
{ { 0x6C, 0x61, 0x26 }, "RinicomHoldi", "Rinicom Holdings" },
@@ -22415,6 +22593,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x6C, 0x79, 0xB8 }, "TexasInstrum", "Texas Instruments" },
{ { 0x6C, 0x7E, 0x67 }, "Apple", "Apple, Inc." },
{ { 0x6C, 0x7F, 0x0C }, "CiscoMeraki", "Cisco Meraki" },
+ { { 0x6C, 0x80, 0xAB }, "ifanr", "ifanr Inc" },
{ { 0x6C, 0x81, 0xFE }, "Mitsuba", "Mitsuba Corporation" },
{ { 0x6C, 0x83, 0x36 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x6C, 0x83, 0x38 }, "Ubihere", "Ubihere" },
@@ -22511,6 +22690,8 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x6C, 0xC2, 0x42 }, "SkyworthDigi", "Shenzhen Skyworth Digital Technology CO., Ltd" },
{ { 0x6C, 0xC2, 0x6B }, "Apple", "Apple, Inc." },
{ { 0x6C, 0xC3, 0x74 }, "TexasInstrum", "Texas Instruments" },
+ { { 0x6C, 0xC3, 0xB2 }, "CiscoMeraki", "Cisco Meraki" },
+ { { 0x6C, 0xC4, 0x1E }, "NEXSEC", "NEXSEC Incorporated" },
{ { 0x6C, 0xC4, 0x9F }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
{ { 0x6C, 0xC4, 0xD5 }, "HMDGlobal", "HMD Global Oy" },
{ { 0x6C, 0xC6, 0x3B }, "TaicangT&WEl", "Taicang T&W Electronics" },
@@ -22561,9 +22742,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x6C, 0xEC, 0xEB }, "TexasInstrum", "Texas Instruments" },
{ { 0x6C, 0xED, 0x51 }, "NEXCONTROL", "NEXCONTROL Co.,Ltd" },
{ { 0x6C, 0xEE, 0xF7 }, "scodenotechn", "shenzhen scodeno technology co., Ltd." },
+ { { 0x6C, 0xEF, 0xBD }, "CiscoMeraki", "Cisco Meraki" },
{ { 0x6C, 0xEF, 0xC6 }, "TwowingTechn", "Shenzhen Twowing Technologies Co.,Ltd." },
{ { 0x6C, 0xF0, 0x49 }, "GigaByteTech", "Giga-Byte Technology Co.,Ltd." },
{ { 0x6C, 0xF1, 0x7E }, "ZhejiangUniv", "Zhejiang Uniview Technologies Co.,Ltd." },
+ { { 0x6C, 0xF2, 0xD8 }, "Canon", "Canon Inc." },
{ { 0x6C, 0xF3, 0x73 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x6C, 0xF3, 0x7F }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
{ { 0x6C, 0xF5, 0xE8 }, "Mooredoll", "Mooredoll Inc." },
@@ -22591,6 +22774,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x70, 0x05, 0x14 }, "LGElectronic", "LG Electronics (Mobile Communications)" },
{ { 0x70, 0x06, 0xAC }, "Eastcompeace", "Eastcompeace Technology Co., Ltd" },
{ { 0x70, 0x07, 0x77 }, "OnTargetTech", "OnTarget Technologies, Inc" },
+ { { 0x70, 0x08, 0x94 }, "LiteonTechno", "Liteon Technology Corporation" },
{ { 0x70, 0x09, 0x71 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x70, 0x0B, 0x01 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x70, 0x0B, 0x4F }, "Cisco", "Cisco Systems, Inc" },
@@ -22599,7 +22783,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x70, 0x0F, 0xC7 }, "IkinloopTech", "Shenzhen Ikinloop Technology Co.,Ltd." },
{ { 0x70, 0x0F, 0xEC }, "Poindus", "Poindus Systems Corp." },
{ { 0x70, 0x10, 0x5C }, "Cisco", "Cisco Systems, Inc" },
- { { 0x70, 0x10, 0x6F }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x70, 0x10, 0x6F }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x70, 0x11, 0x0E }, "zte", "zte corporation" },
{ { 0x70, 0x11, 0x24 }, "Apple", "Apple, Inc." },
{ { 0x70, 0x11, 0x35 }, "Livesecu", "Livesecu co., Ltd" },
@@ -22636,6 +22820,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x70, 0x29, 0x00 }, "ChipTripTech", "Shenzhen ChipTrip Technology Co,Ltd" },
{ { 0x70, 0x2A, 0x7D }, "EpSpot", "EpSpot AB" },
{ { 0x70, 0x2A, 0xD5 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0x70, 0x2A, 0xD7 }, "NewH3CIntell", "New H3C Intelligence Terminal Co., Ltd." },
{ { 0x70, 0x2B, 0x1D }, "EDomusIntern", "E-Domus International Limited" },
{ { 0x70, 0x2C, 0x09 }, "Nintendo", "Nintendo Co.,Ltd" },
{ { 0x70, 0x2C, 0x1F }, "Wisol", "Wisol" },
@@ -22684,6 +22869,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x70, 0x48, 0x0F }, "Apple", "Apple, Inc." },
{ { 0x70, 0x48, 0xB5 }, "CTSSystem", "CTS System Co., LTD." },
{ { 0x70, 0x48, 0xF7 }, "Nintendo", "Nintendo Co.,Ltd" },
+ { { 0x70, 0x49, 0xA2 }, "ZyxelCommuni", "Zyxel Communications Corporation" },
{ { 0x70, 0x4A, 0x0E }, "AMPAKTechnol", "AMPAK Technology,Inc." },
{ { 0x70, 0x4A, 0xAE }, "XstreamFlow", "Xstream Flow (Pty) Ltd" },
{ { 0x70, 0x4A, 0xE4 }, "Rinstrum", "Rinstrum Pty Ltd" },
@@ -22747,6 +22933,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x70, 0x6D, 0xEC }, "Wifisoft", "Wifi-soft LLC" },
{ { 0x70, 0x6E, 0x6D }, "Cisco", "Cisco Systems, Inc" },
{ { 0x70, 0x70, 0x0D }, "Apple", "Apple, Inc." },
+ { { 0x70, 0x70, 0x13 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x70, 0x70, 0x4C }, "PurpleCommun", "Purple Communications, Inc" },
{ { 0x70, 0x70, 0x8B }, "Cisco", "Cisco Systems, Inc" },
{ { 0x70, 0x70, 0xAA }, "AmazonTechno", "Amazon Technologies Inc." },
@@ -22799,6 +22986,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x70, 0x8B, 0xCD }, "ASUSTekCOMPU", "ASUSTek COMPUTER INC." },
{ { 0x70, 0x8C, 0xB6 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x70, 0x8C, 0xBB }, "Mimodisplayk", "Mimodisplaykorea" },
+ { { 0x70, 0x8C, 0xF2 }, "Apple", "Apple, Inc." },
{ { 0x70, 0x8D, 0x09 }, "Nokia", "Nokia Corporation" },
{ { 0x70, 0x8F, 0x47 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x70, 0x90, 0x41 }, "Mist", "Mist Systems, Inc." },
@@ -22921,6 +23109,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x70, 0xE8, 0x43 }, "C&WOpticalCo", "Beijing C&W Optical Communication Technology Co.,Ltd." },
{ { 0x70, 0xEA, 0x1A }, "Cisco", "Cisco Systems, Inc" },
{ { 0x70, 0xEA, 0x5A }, "Apple", "Apple, Inc." },
+ { { 0x70, 0xEB, 0x74 }, "NingboGoneoE", "Ningbo Goneo Electric Appliance Co., Ltd." },
{ { 0x70, 0xEC, 0xE4 }, "Apple", "Apple, Inc." },
{ { 0x70, 0xEE, 0x50 }, "Netatmo", "Netatmo" },
{ { 0x70, 0xEE, 0xA3 }, "EoptolinkTec", "Eoptolink Technology Inc. Ltd," },
@@ -22983,6 +23172,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x74, 0x20, 0x5F }, "ZhongruixinI", "Shenzhen Zhongruixin Intelligent Technology Co., Ltd." },
{ { 0x74, 0x22, 0xBB }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x74, 0x23, 0x44 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
+ { { 0x74, 0x23, 0x8D }, "zte", "zte corporation" },
{ { 0x74, 0x24, 0x9F }, "TIBRO", "TIBRO Corp." },
{ { 0x74, 0x25, 0x8A }, "H3CTechnolog", "Hangzhou H3C Technologies Co., Limited" },
{ { 0x74, 0x26, 0xAC }, "Cisco", "Cisco Systems, Inc" },
@@ -23019,6 +23209,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x74, 0x38, 0x22 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x74, 0x38, 0x89 }, "ANNAXAnzeige", "ANNAX Anzeigesysteme GmbH" },
{ { 0x74, 0x38, 0xB7 }, "Canon", "Canon Inc." },
+ { { 0x74, 0x39, 0x89 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x74, 0x3A, 0x20 }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x74, 0x3A, 0x65 }, "NEC", "NEC Corporation" },
{ { 0x74, 0x3A, 0xEF }, "KaonGroup", "Kaon Group Co., Ltd." },
@@ -23088,6 +23279,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x74, 0x6A, 0x8F }, "VSVision", "VS Vision Systems GmbH" },
{ { 0x74, 0x6B, 0x82 }, "Movek", "Movek" },
{ { 0x74, 0x6B, 0xAB }, "EnokCommunic", "Guangdong Enok Communication Co., Ltd" },
+ { { 0x74, 0x6D, 0xFA }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x74, 0x6E, 0xE4 }, "AsiaVitalCom", "Asia Vital Components Co.,Ltd." },
{ { 0x74, 0x6F, 0x19 }, "IcarvisionsT", "Icarvisions (Shenzhen) Technology Co., Ltd." },
{ { 0x74, 0x6F, 0x3D }, "Contec", "Contec GmbH" },
@@ -23210,11 +23402,13 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x74, 0xBA, 0xDB }, "LongconnElec", "Longconn Electornics(shenzhen)Co.,Ltd" },
{ { 0x74, 0xBB, 0xD3 }, "xemeCommunic", "Shenzhen xeme Communication Co., Ltd." },
{ { 0x74, 0xBE, 0x08 }, "ATEKProducts", "ATEK Products, LLC" },
+ { { 0x74, 0xBE, 0xF3 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0x74, 0xBF, 0xA1 }, "Hyunteck", "Hyunteck" },
{ { 0x74, 0xBF, 0xB7 }, "Nusoft", "Nusoft Corporation" },
{ { 0x74, 0xBF, 0xC0 }, "Canon", "Canon Inc." },
{ { 0x74, 0xC1, 0x4F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x74, 0xC1, 0x7D }, "Infinixmobil", "Infinix mobility limited" },
+ { { 0x74, 0xC1, 0x7E }, "LGElectronic", "LG Electronics" },
{ { 0x74, 0xC2, 0x46 }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0x74, 0xC3, 0x30 }, "FastTechnolo", "Shenzhen Fast Technologies Co.,Ltd" },
{ { 0x74, 0xC5, 0x30 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
@@ -23468,6 +23662,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x78, 0x65, 0x59 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x78, 0x66, 0x9D }, "HuiZhouGaosh", "Hui Zhou Gaoshengda Technology Co.,LTD" },
{ { 0x78, 0x66, 0xAE }, "ZTECInstrume", "ZTEC Instruments, Inc." },
+ { { 0x78, 0x66, 0xF3 }, "worldeliteel", "shenzhen worldelite electronics co., LTD" },
{ { 0x78, 0x67, 0x0E }, "WistronNeweb", "Wistron Neweb Corporation" },
{ { 0x78, 0x67, 0xD7 }, "Apple", "Apple, Inc." },
{ { 0x78, 0x68, 0x29 }, "eero", "eero inc." },
@@ -23490,6 +23685,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x78, 0x7D, 0x48 }, "ItelMobile", "Itel Mobile Limited" },
{ { 0x78, 0x7D, 0x53 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
{ { 0x78, 0x7D, 0xF3 }, "SterliteTech", "Sterlite Technologies Limited" },
+ { { 0x78, 0x7E, 0x42 }, "zte", "zte corporation" },
{ { 0x78, 0x7E, 0x61 }, "Apple", "Apple, Inc." },
{ { 0x78, 0x7F, 0x62 }, "GiKmbH", "GiK mbH" },
{ { 0x78, 0x80, 0x38 }, "FunaiElectri", "Funai Electric Co., Ltd." },
@@ -23695,6 +23891,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7A, 0x4B, 0xF3 }, "DilonTechnol", "Dilon Technologies" },
{ { 0x7A, 0x4D, 0x2F }, "OpenComputeP", "Open Compute Project" },
{ { 0x7A, 0x84, 0xF0 }, "McDowellSign", "McDowell Signal Processing, LLC (dba McDSP)" },
+ { { 0x7A, 0x8D, 0xD1 }, "TePSEG", "TePS'EG" },
{ { 0x7A, 0xAB, 0x77 }, "Orange", "Orange" },
{ { 0x7A, 0xF9, 0x55 }, "Relay", "Relay, Inc." },
{ { 0x7A, 0xFD, 0x44 }, "RosenbergerH", "Rosenberger Hochfrequenztechnik GmbH & Co. KG" },
@@ -23719,6 +23916,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0x0B, 0xC6 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x7C, 0x0C, 0x92 }, "SuzhouMobyda", "Suzhou Mobydata Smart System Co.,Ltd." },
{ { 0x7C, 0x0C, 0xF6 }, "HuiweiHighte", "Guangdong Huiwei High-tech Co., Ltd." },
+ { { 0x7C, 0x0C, 0xFA }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x7C, 0x0E, 0xCE }, "Cisco", "Cisco Systems, Inc" },
{ { 0x7C, 0x10, 0x15 }, "BrilliantHom", "Brilliant Home Technology, Inc." },
{ { 0x7C, 0x10, 0xC9 }, "ASUSTekCOMPU", "ASUSTek COMPUTER INC." },
@@ -23818,6 +24016,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0x5A, 0x1C }, "Sophos", "Sophos Ltd" },
{ { 0x7C, 0x5A, 0x67 }, "JNC", "JNC Systems, Inc." },
{ { 0x7C, 0x5C, 0xF8 }, "Intel", "Intel Corporate" },
+ { { 0x7C, 0x5E, 0x98 }, "eero", "eero inc." },
{ { 0x7C, 0x60, 0x4A }, "Avelon", "Avelon" },
{ { 0x7C, 0x60, 0x97 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x7C, 0x61, 0x30 }, "Apple", "Apple, Inc." },
@@ -23875,6 +24074,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0x7B, 0xE4 }, "ZSedaiKenkyu", "Z'Sedai Kenkyusho Corporation" },
{ { 0x7C, 0x7D, 0x3D }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x7C, 0x7D, 0x41 }, "JinmuyuElect", "Jinmuyu Electronics Co., Ltd." },
+ { { 0x7C, 0x7E, 0xF9 }, "eero", "eero inc." },
{ { 0x7C, 0x82, 0x2D }, "Nortec", "Nortec" },
{ { 0x7C, 0x82, 0x74 }, "HikeenTechno", "Shenzhen Hikeen Technology CO.,LTD" },
{ { 0x7C, 0x83, 0x06 }, "GlenDimplexN", "Glen Dimplex Nordic as" },
@@ -23885,9 +24085,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0x89, 0x31 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x7C, 0x89, 0x56 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x7C, 0x89, 0xC1 }, "PaloAltoNetw", "Palo Alto Networks" },
- { { 0x7C, 0x8A, 0xC0 }, "EVBox", "EVBox BV" },
{ { 0x7C, 0x8A, 0xE1 }, "CompalInform", "Compal Information (Kunshan) Co., Ltd." },
{ { 0x7C, 0x8B, 0xB5 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0x7C, 0x8B, 0xC1 }, "Infinixmobil", "Infinix mobility limited" },
{ { 0x7C, 0x8B, 0xCA }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x7C, 0x8D, 0x91 }, "HongzhuoInfo", "Shanghai Hongzhuo Information Technology co.,LTD" },
{ { 0x7C, 0x8E, 0xE4 }, "TexasInstrum", "Texas Instruments" },
@@ -23901,6 +24101,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0x96, 0xD2 }, "Fihonestcomm", "Fihonest communication co.,Ltd" },
{ { 0x7C, 0x97, 0x63 }, "Openmaticssr", "Openmatics s.r.o." },
{ { 0x7C, 0x97, 0xE1 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
+ { { 0x7C, 0x99, 0x2E }, "Notionlnform", "Shanghai Notion lnformatio Technology Co.,Ltd." },
{ { 0x7C, 0x9A, 0x1D }, "Apple", "Apple, Inc." },
{ { 0x7C, 0x9A, 0x54 }, "VantivaUSA", "Vantiva USA LLC" },
{ { 0x7C, 0x9A, 0x9B }, "VSEvalencias", "VSE valencia smart energy" },
@@ -23914,7 +24115,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0xA2, 0x9B }, "DSignT", "D.SignT GmbH & Co. KG" },
{ { 0x7C, 0xA4, 0x49 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x7C, 0xA6, 0x1D }, "Mhl", "Mhl, Llc" },
- { { 0x7C, 0xA6, 0x2A }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x7C, 0xA6, 0x2A }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x7C, 0xA7, 0xB0 }, "BilianElectr", "Shenzhen Bilian Electronic Co.,Ltd" },
{ { 0x7C, 0xA9, 0x6B }, "SyrotechNetw", "Syrotech Networks. Ltd." },
{ { 0x7C, 0xA9, 0x7D }, "Objenious", "Objenious" },
@@ -23937,10 +24138,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0xB5, 0x42 }, "ACESTechnolo", "ACES Technology" },
{ { 0x7C, 0xB5, 0x66 }, "Intel", "Intel Corporate" },
{ { 0x7C, 0xB5, 0x9B }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
+ { { 0x7C, 0xB5, 0x9F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x7C, 0xB7, 0x33 }, "AskeyCompute", "Askey Computer Corp" },
{ { 0x7C, 0xB7, 0x7B }, "ParadigmElec", "Paradigm Electronics Inc" },
{ { 0x7C, 0xB9, 0x4C }, "BouffaloLab", "Bouffalo Lab (Nanjing) Co., Ltd." },
{ { 0x7C, 0xB9, 0x60 }, "XChengteleco", "Shanghai X-Cheng telecom LTD" },
+ { { 0x7C, 0xBA, 0xC0 }, "EVBox", "EVBox BV" },
{ { 0x7C, 0xBB, 0x6F }, "CoscoElectro", "Cosco Electronics Co., Ltd." },
{ { 0x7C, 0xBB, 0x8A }, "Nintendo", "Nintendo Co., Ltd." },
{ { 0x7C, 0xBD, 0x06 }, "AEREFUsol", "AE REFUsol" },
@@ -23948,6 +24151,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0xBF, 0x88 }, "Mobilicom", "Mobilicom LTD" },
{ { 0x7C, 0xBF, 0xAE }, "RenesasElect", "Renesas Electronics (Penang) Sdn. Bhd." },
{ { 0x7C, 0xBF, 0xB1 }, "ARRISGroup", "ARRIS Group, Inc." },
+ { { 0x7C, 0xC0, 0x25 }, "PaloAltoNetw", "Palo Alto Networks" },
{ { 0x7C, 0xC0, 0x6F }, "Apple", "Apple, Inc." },
{ { 0x7C, 0xC0, 0xAA }, "Microsoft", "Microsoft Corporation" },
{ { 0x7C, 0xC1, 0x77 }, "IngramMicroS", "Ingram Micro Services" },
@@ -24098,6 +24302,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x80, 0x25, 0x11 }, "ItelMobile", "Itel Mobile Limited" },
{ { 0x80, 0x26, 0x89 }, "DLinkInterna", "D-Link International" },
{ { 0x80, 0x27, 0x6C }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x80, 0x28, 0x3C }, "Sonova", "Sonova AG" },
{ { 0x80, 0x29, 0x94 }, "VantivaUSA", "Vantiva USA LLC" },
{ { 0x80, 0x2A, 0xA8 }, "Ubiquiti", "Ubiquiti Inc" },
{ { 0x80, 0x2A, 0xFA }, "Germaneers", "Germaneers GmbH" },
@@ -24110,7 +24315,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x80, 0x2F, 0xDE }, "ZurichInstru", "Zurich Instruments AG" },
{ { 0x80, 0x30, 0x49 }, "LiteonTechno", "Liteon Technology Corporation" },
{ { 0x80, 0x30, 0xDC }, "TexasInstrum", "Texas Instruments" },
- { { 0x80, 0x30, 0xE0 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x80, 0x30, 0xE0 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x80, 0x31, 0xF0 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x80, 0x32, 0x53 }, "Intel", "Intel Corporate" },
{ { 0x80, 0x34, 0x28 }, "MicrochipTec", "Microchip Technology Inc." },
@@ -24149,6 +24354,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x80, 0x4A, 0xF2 }, "Sonos", "Sonos, Inc." },
{ { 0x80, 0x4B, 0x20 }, "VentilationC", "Ventilation Control" },
{ { 0x80, 0x4B, 0x50 }, "SiliconLabor", "Silicon Laboratories" },
+ { { 0x80, 0x4C, 0x5D }, "NXPSemicondu", "NXP Semiconductor (Tianjin) LTD." },
{ { 0x80, 0x4E, 0x70 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x80, 0x4E, 0x81 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x80, 0x4F, 0x58 }, "ThinkEco", "ThinkEco, Inc." },
@@ -24242,7 +24448,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x80, 0x8A, 0xF7 }, "Nanoleaf", "Nanoleaf" },
{ { 0x80, 0x8B, 0x5C }, "RunhuichengT", "Shenzhen Runhuicheng Technology Co., Ltd" },
{ { 0x80, 0x8C, 0x97 }, "KaonGroup", "Kaon Group Co., Ltd." },
- { { 0x80, 0x8D, 0xB7 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x80, 0x8D, 0xB7 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x80, 0x8F, 0x1D }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x80, 0x8F, 0xE8 }, "Intelbras", "Intelbras" },
{ { 0x80, 0x91, 0x2A }, "LihRongelect", "Lih Rong electronic Enterprise Co., Ltd." },
@@ -24278,6 +24484,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x80, 0xAC, 0xC8 }, "PhyplusMicro", "Phyplus Microelectronics Limited" },
{ { 0x80, 0xAD, 0x16 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x80, 0xAD, 0x67 }, "KasdaNetwork", "Kasda Networks Inc" },
+ { { 0x80, 0xAE, 0x54 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x80, 0xAF, 0xCA }, "CudyTechnolo", "Shenzhen Cudy Technology Co., Ltd." },
{ { 0x80, 0xB0, 0x3D }, "Apple", "Apple, Inc." },
{ { 0x80, 0xB0, 0x7B }, "zte", "zte corporation" },
@@ -24355,6 +24562,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x80, 0xE6, 0x50 }, "Apple", "Apple, Inc." },
{ { 0x80, 0xE8, 0x2C }, "HewlettPacka", "Hewlett Packard" },
{ { 0x80, 0xE8, 0x6F }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x80, 0xE9, 0x4A }, "LEAPSsro", "LEAPS s.r.o." },
{ { 0x80, 0xEA, 0x07 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x80, 0xEA, 0x0B }, "ZyxelCommuni", "Zyxel Communications Corporation" },
{ { 0x80, 0xEA, 0x23 }, "WistronNeweb", "Wistron Neweb Corporation" },
@@ -24403,6 +24611,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x84, 0x11, 0x9E }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x84, 0x13, 0x9F }, "zte", "zte corporation" },
{ { 0x84, 0x14, 0x4D }, "Intel", "Intel Corporate" },
+ { { 0x84, 0x15, 0x71 }, "TCTmobile", "TCT mobile ltd" },
{ { 0x84, 0x15, 0xD3 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x84, 0x16, 0x0C }, "Broadcom", "Broadcom Limited" },
{ { 0x84, 0x16, 0xF9 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
@@ -24447,6 +24656,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x84, 0x2C, 0x80 }, "SichuanChang", "Sichuan Changhong Electric Ltd." },
{ { 0x84, 0x2E, 0x14 }, "SiliconLabor", "Silicon Laboratories" },
{ { 0x84, 0x2E, 0x27 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0x84, 0x2F, 0x57 }, "Apple", "Apple, Inc." },
{ { 0x84, 0x2F, 0x75 }, "InnokasGroup", "Innokas Group" },
{ { 0x84, 0x30, 0x95 }, "HonHaiPrecis", "Hon Hai Precision IND.CO.,LTD" },
{ { 0x84, 0x30, 0xCE }, "JaguarMicros", "Shenzhen Jaguar Microsystems Co., Ltd" },
@@ -24454,6 +24664,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x84, 0x31, 0xA8 }, "FunshionOnli", "Wuhan Funshion Online Technologies Co.,Ltd" },
{ { 0x84, 0x32, 0x6F }, "GuangzhouAva", "Guangzhou Ava Electronics Technology Co.,Ltd" },
{ { 0x84, 0x32, 0xEA }, "AnhuiWanzten", "Anhui Wanzten P&T Co., Ltd" },
+ { { 0x84, 0x33, 0xF2 }, "StellamoreTe", "Shenzhen Stellamore Technology Co.,Ltd" },
{ { 0x84, 0x34, 0x97 }, "HewlettPacka", "Hewlett Packard" },
{ { 0x84, 0x36, 0x11 }, "hyungseulpub", "hyungseul publishing networks" },
{ { 0x84, 0x37, 0xD5 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -24493,6 +24704,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x84, 0x56, 0x9C }, "CohoData", "Coho Data, Inc.," },
{ { 0x84, 0x57, 0x33 }, "Microsoft", "Microsoft Corporation" },
{ { 0x84, 0x57, 0x87 }, "DVRC&C", "DVR C&C Co., Ltd." },
+ { { 0x84, 0x57, 0xF7 }, "MetaPlatform", "Meta Platforms Technologies, LLC" },
{ { 0x84, 0x5A, 0x3E }, "Cisco", "Cisco Systems, Inc" },
{ { 0x84, 0x5A, 0x81 }, "ffly4u", "ffly4u" },
{ { 0x84, 0x5B, 0x12 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -24545,6 +24757,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x84, 0x80, 0x2D }, "Cisco", "Cisco Systems, Inc" },
{ { 0x84, 0x80, 0x94 }, "Meter", "Meter, Inc." },
{ { 0x84, 0x81, 0x02 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
+ { { 0x84, 0x82, 0x1B }, "PROXSGPte", "PROX SG Pte Ltd" },
{ { 0x84, 0x82, 0xF4 }, "HuasunUnicre", "Beijing Huasun Unicreate Technology Co., Ltd" },
{ { 0x84, 0x83, 0x19 }, "ZeroZeroTech", "Hangzhou Zero Zero Technology Co., Ltd." },
{ { 0x84, 0x83, 0x36 }, "Newrun", "Newrun" },
@@ -24582,6 +24795,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x84, 0x98, 0x66 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x84, 0x9A, 0x40 }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
{ { 0x84, 0x9C, 0x02 }, "DruidSoftwar", "Druid Software" },
+ { { 0x84, 0x9C, 0xA4 }, "MimosaNetwor", "Mimosa Networks" },
{ { 0x84, 0x9C, 0xA6 }, "ArcadyanTech", "Arcadyan Technology Corporation" },
{ { 0x84, 0x9D, 0x64 }, "SMC", "SMC Corporation" },
{ { 0x84, 0x9D, 0xC2 }, "MXCHIPInform", "Shanghai MXCHIP Information Technology Co., Ltd." },
@@ -24591,6 +24805,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x84, 0xA1, 0x34 }, "Apple", "Apple, Inc." },
{ { 0x84, 0xA1, 0xD1 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x84, 0xA2, 0x4D }, "BirdsEyePriv", "Birds Eye Systems Private Limited" },
+ { { 0x84, 0xA3, 0x29 }, "Arcadyan", "Arcadyan Corporation" },
{ { 0x84, 0xA3, 0xB5 }, "Propulsion", "Propulsion systems" },
{ { 0x84, 0xA4, 0x23 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x84, 0xA4, 0x66 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -24746,6 +24961,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0x12, 0x3D }, "SuzhouAquila", "Suzhou Aquila Solutions Inc." },
{ { 0x88, 0x12, 0x4E }, "Qualcomm", "Qualcomm Inc." },
{ { 0x88, 0x12, 0xAC }, "HunanFnLinkT", "Hunan Fn-Link Technology Limited" },
+ { { 0x88, 0x13, 0xBF }, "Espressif", "Espressif Inc." },
{ { 0x88, 0x14, 0x2B }, "ProtonicHoll", "Protonic Holland" },
{ { 0x88, 0x15, 0x44 }, "CiscoMeraki", "Cisco Meraki" },
{ { 0x88, 0x15, 0xC5 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -24761,6 +24977,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0x1F, 0xA1 }, "Apple", "Apple, Inc." },
{ { 0x88, 0x20, 0x0D }, "Apple", "Apple, Inc." },
{ { 0x88, 0x20, 0x12 }, "LMITechnolog", "LMI Technologies" },
+ { { 0x88, 0x20, 0x67 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x88, 0x21, 0xE3 }, "NebusensSL", "Nebusens, S.L." },
{ { 0x88, 0x22, 0xB2 }, "ChipseaTechn", "Chipsea Technologies (Shenzhen) Corp." },
{ { 0x88, 0x23, 0x1F }, "FibocomWirel", "Fibocom Wireless Inc." },
@@ -24800,6 +25017,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0x3C, 0x1C }, "Mercury", "Mercury Corporation" },
{ { 0x88, 0x3C, 0x93 }, "AlcatelLucen", "Alcatel-Lucent Enterprise" },
{ { 0x88, 0x3D, 0x24 }, "Google", "Google, Inc." },
+ { { 0x88, 0x3E, 0x0D }, "HDHyundaiEle", "HD Hyundai Electric" },
{ { 0x88, 0x3F, 0x0C }, "systemav", "system a.v. co., ltd." },
{ { 0x88, 0x3F, 0x27 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x88, 0x3F, 0x37 }, "Uhtek", "Uhtek Co., Ltd." },
@@ -24850,6 +25068,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0x62, 0x5D }, "Bitnetworks", "Bitnetworks Co.,Ltd" },
{ { 0x88, 0x63, 0xDF }, "Apple", "Apple, Inc." },
{ { 0x88, 0x64, 0x40 }, "Apple", "Apple, Inc." },
+ { { 0x88, 0x65, 0x9F }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x88, 0x66, 0x39 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x88, 0x66, 0x5A }, "Apple", "Apple, Inc." },
{ { 0x88, 0x66, 0xA5 }, "Apple", "Apple, Inc." },
@@ -24863,6 +25082,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0x6B, 0x44 }, "SunnovoInter", "Sunnovo International Limited" },
{ { 0x88, 0x6B, 0x6E }, "Apple", "Apple, Inc." },
{ { 0x88, 0x6B, 0x76 }, "ChinaHopeful", "China Hopeful Group Hopeful Electric Co.,Ltd" },
+ { { 0x88, 0x6B, 0xDB }, "Apple", "Apple, Inc." },
{ { 0x88, 0x6C, 0x60 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x88, 0x6D, 0x2D }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x88, 0x6E, 0xDD }, "Micronetunio", "Micronet union Technology(Chengdu)Co., Ltd." },
@@ -24888,6 +25108,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0x7B, 0x2C }, "zte", "zte corporation" },
{ { 0x88, 0x7E, 0x25 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
{ { 0x88, 0x7F, 0x03 }, "ComperTechno", "Comper Technology Investment Limited" },
+ { { 0x88, 0x7F, 0xD5 }, "zte", "zte corporation" },
{ { 0x88, 0x81, 0x87 }, "UmeoxInnovat", "Umeox Innovations Co.,Ltd" },
{ { 0x88, 0x81, 0xB9 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x88, 0x82, 0x79 }, "RBLINKIntell", "Shenzhen RB-LINK Intelligent Technology Co.Ltd" },
@@ -24954,6 +25175,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0xAD, 0xD2 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x88, 0xAE, 0x07 }, "Apple", "Apple, Inc." },
{ { 0x88, 0xAE, 0x1D }, "CompalInform", "Compal Information (Kunshan) Co., Ltd." },
+ { { 0x88, 0xAE, 0x35 }, "RealmeChongq", "Realme Chongqing Mobile Telecommunications Corp.,Ltd." },
{ { 0x88, 0xAE, 0xDD }, "EliteGroupCo", "EliteGroup Computer Systems Co., LTD" },
{ { 0x88, 0xAF, 0x7B }, "NanjingPower", "Nanjing Powercore Tech Co.,Ltd" },
{ { 0x88, 0xB1, 0x11 }, "Intel", "Intel Corporate" },
@@ -24975,6 +25197,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0xB8, 0xD0 }, "DongguanKopp", "Dongguan Koppo Electronic Co.,Ltd" },
{ { 0x88, 0xB9, 0x45 }, "Apple", "Apple, Inc." },
{ { 0x88, 0xBA, 0x7F }, "Qfiednet", "Qfiednet Co., Ltd." },
+ { { 0x88, 0xBC, 0xAC }, "ZebraTechnol", "Zebra Technologies Inc." },
{ { 0x88, 0xBC, 0xC1 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x88, 0xBD, 0x45 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x88, 0xBD, 0x78 }, "FlaircommMic", "Flaircomm Microelectronics,Inc." },
@@ -25015,6 +25238,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0xD8, 0x2E }, "Intel", "Intel Corporate" },
{ { 0x88, 0xD9, 0x62 }, "CanopusUS", "Canopus Systems US LLC" },
{ { 0x88, 0xD9, 0x8F }, "JuniperNetwo", "Juniper Networks" },
+ { { 0x88, 0xDA, 0x18 }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
{ { 0x88, 0xDA, 0x1A }, "RedpineSigna", "Redpine Signals, Inc." },
{ { 0x88, 0xDA, 0x33 }, "XiaoyuerNetw", "Beijing Xiaoyuer Network Technology Co., Ltd" },
{ { 0x88, 0xDC, 0x96 }, "EnGeniusTech", "EnGenius Technologies, Inc." },
@@ -25037,7 +25261,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0xE8, 0xF8 }, "YongTaiElect", "Yong Tai Electronic (Dongguan) Ltd." },
{ { 0x88, 0xE9, 0x0F }, "innomdlelab", "innomdlelab" },
{ { 0x88, 0xE9, 0x17 }, "Tamaggo", "Tamaggo" },
- { { 0x88, 0xE9, 0xA4 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x88, 0xE9, 0xA4 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x88, 0xE9, 0xFE }, "Apple", "Apple, Inc." },
{ { 0x88, 0xED, 0x1C }, "CudoCommunic", "Cudo Communication Co., Ltd." },
{ { 0x88, 0xEF, 0x16 }, "ARRISGroup", "ARRIS Group, Inc." },
@@ -25048,6 +25272,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0xF4, 0x88 }, "celloncommun", "cellon communications technology(shenzhen)Co.,Ltd." },
{ { 0x88, 0xF4, 0x90 }, "JetmobilePte", "Jetmobile Pte Ltd" },
{ { 0x88, 0xF5, 0x6E }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x88, 0xF6, 0xDC }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x88, 0xF7, 0xBF }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x88, 0xF7, 0xC7 }, "VantivaUSA", "Vantiva USA LLC" },
{ { 0x88, 0xF8, 0x72 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -25057,7 +25282,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0xFD, 0x15 }, "Lineeye", "Lineeye Co., Ltd" },
{ { 0x88, 0xFE, 0xD6 }, "WangYongSoft", "ShangHai WangYong Software Co., Ltd." },
{ { 0x8A, 0x00, 0xB0 }, "EoptolinkTec", "Eoptolink Technology Inc. Ltd," },
- { { 0x8A, 0x07, 0x75 }, "LyotechLabs", "Lyotech Labs Llc" },
+ { { 0x8A, 0x07, 0x75 }, "HorysTechnol", "Horys Technologies Llc" },
{ { 0x8A, 0x0A, 0xF7 }, "MontageTechn", "Montage Technology Co,.LTD" },
{ { 0x8A, 0x34, 0xBC }, "FiberworksAS", "Fiberworks AS" },
{ { 0x8A, 0x4F, 0x8B }, "Irdeto", "Irdeto" },
@@ -25258,6 +25483,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x8C, 0x86, 0x1E }, "Apple", "Apple, Inc." },
{ { 0x8C, 0x86, 0x2A }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x8C, 0x87, 0x3B }, "LeicaCamera", "Leica Camera AG" },
+ { { 0x8C, 0x87, 0xD0 }, "UascentTechn", "Shenzhen Uascent Technology Co.,Ltd" },
{ { 0x8C, 0x88, 0x81 }, "CiscoMeraki", "Cisco Meraki" },
{ { 0x8C, 0x89, 0x7A }, "Augtek", "Augtek" },
{ { 0x8C, 0x89, 0xA5 }, "MicroStarINT", "Micro-Star INT'L CO., LTD" },
@@ -25327,6 +25553,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x8C, 0xC7, 0xD0 }, "zhejiangeban", "zhejiang ebang communication co.,ltd" },
{ { 0x8C, 0xC8, 0x4B }, "ChongqingFug", "Chongqing Fugui Electronics Co.,Ltd." },
{ { 0x8C, 0xC8, 0xCD }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0x8C, 0xC9, 0xE9 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x8C, 0xCB, 0x14 }, "TBS", "TBS GmbH" },
{ { 0x8C, 0xCB, 0xDF }, "FoxconnInter", "Foxconn Interconnect Technology" },
{ { 0x8C, 0xCD, 0xA2 }, "ACTP", "ACTP, Inc." },
@@ -25373,6 +25600,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x8C, 0xEA, 0x12 }, "MiaoMingInte", "Shenzhen MiaoMing Intelligent Technology Co.,Ltd" },
{ { 0x8C, 0xEA, 0x1B }, "EdgecoreNetw", "Edgecore Networks Corporation" },
{ { 0x8C, 0xEA, 0x48 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0x8C, 0xEA, 0x88 }, "YoctoCommuni", "Chengdu Yocto Communication Technology Co.Ltd." },
{ { 0x8C, 0xEB, 0xC6 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x8C, 0xEC, 0x4B }, "Dell", "Dell Inc." },
{ { 0x8C, 0xEC, 0x7B }, "Apple", "Apple, Inc." },
@@ -25410,6 +25638,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0x02, 0x8A }, "ShideanLegra", "Shenzhen Shidean Legrand Electronic Products Co.,Ltd" },
{ { 0x90, 0x02, 0xA9 }, "ZhejiangDahu", "Zhejiang Dahua Technology Co., Ltd." },
{ { 0x90, 0x03, 0x25 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x90, 0x03, 0x71 }, "QuectelWirel", "Quectel Wireless Solutions Co.,Ltd." },
{ { 0x90, 0x03, 0x72 }, "LongnanJunya", "Longnan Junya Digital Technology Co. Ltd." },
{ { 0x90, 0x03, 0xB7 }, "Parrot", "Parrot Sa" },
{ { 0x90, 0x06, 0x28 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -25454,6 +25683,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0x20, 0x83 }, "GeneralEngin", "General Engine Management Systems Ltd." },
{ { 0x90, 0x20, 0xC2 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
{ { 0x90, 0x21, 0x06 }, "SkyUk", "Sky Uk Limited" },
+ { { 0x90, 0x21, 0x2E }, "ApptionLabs", "Apption Labs Ltd" },
{ { 0x90, 0x21, 0x55 }, "HTC", "HTC Corporation" },
{ { 0x90, 0x21, 0x81 }, "HuaqinTeleco", "Shanghai Huaqin Telecom Technology Co.,Ltd" },
{ { 0x90, 0x23, 0x5B }, "AmazonTechno", "Amazon Technologies Inc." },
@@ -25512,7 +25742,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0x48, 0x9A }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x90, 0x49, 0x92 }, "YSTenTechnol", "YSTen Technology Co.,Ltd" },
{ { 0x90, 0x49, 0xFA }, "Intel", "Intel Corporate" },
- { { 0x90, 0x4C, 0x81 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x90, 0x4C, 0x81 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x90, 0x4C, 0xE5 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x90, 0x4D, 0x4A }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x90, 0x4D, 0xC3 }, "Flonidan", "Flonidan A/S" },
@@ -25669,6 +25899,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0xB1, 0x44 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x90, 0xB1, 0xE0 }, "NebulaLinkTe", "Beijing Nebula Link Technology Co., Ltd" },
{ { 0x90, 0xB2, 0x1F }, "Apple", "Apple, Inc." },
+ { { 0x90, 0xB4, 0xDD }, "ZptR&D", "Zpt R&D" },
{ { 0x90, 0xB5, 0x7F }, "iCommSemicon", "Shenzhen iComm Semiconductor CO.,LTD" },
{ { 0x90, 0xB6, 0x22 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x90, 0xB6, 0x7A }, "SkyworthDigi", "Shenzhen Skyworth Digital Technology CO., Ltd" },
@@ -25785,7 +26016,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0x0B, 0x19 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x94, 0x0B, 0x2D }, "NetViewTechn", "NetView Technologies(Shenzhen) Co., Ltd" },
{ { 0x94, 0x0B, 0x83 }, "zte", "zte corporation" },
+ { { 0x94, 0x0B, 0xCD }, "Apple", "Apple, Inc." },
{ { 0x94, 0x0B, 0xD5 }, "HimaxTechnol", "Himax Technologies, Inc" },
+ { { 0x94, 0x0B, 0xFA }, "EMMicroelect", "EM Microelectronic" },
{ { 0x94, 0x0C, 0x6D }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x94, 0x0C, 0x98 }, "Apple", "Apple, Inc." },
{ { 0x94, 0x0D, 0x2D }, "UniversalEle", "Universal Electronics, Inc." },
@@ -25800,18 +26033,21 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0x16, 0x73 }, "PointCore", "Point Core SARL" },
{ { 0x94, 0x17, 0x00 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x94, 0x18, 0x65 }, "Netgear", "Netgear" },
- { { 0x94, 0x18, 0x82 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x94, 0x18, 0x82 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x94, 0x19, 0x3A }, "Elvaco", "Elvaco AB" },
{ { 0x94, 0x1C, 0x56 }, "ActiontecEle", "Actiontec Electronics, Inc" },
{ { 0x94, 0x1D, 0x1C }, "TLabWest", "TLab West Systems AB" },
{ { 0x94, 0x1F, 0x3A }, "Ambiq", "Ambiq" },
{ { 0x94, 0x1F, 0xA2 }, "YuXinSemicon", "Wuhan YuXin Semiconductor Co., Ltd." },
{ { 0x94, 0x20, 0x53 }, "Nokia", "Nokia Corporation" },
+ { { 0x94, 0x21, 0x57 }, "Apple", "Apple, Inc." },
{ { 0x94, 0x21, 0x97 }, "StalmartTech", "Stalmart Technology Limited" },
{ { 0x94, 0x23, 0x6E }, "JunlanElectr", "Shenzhen Junlan Electronic Ltd" },
{ { 0x94, 0x24, 0xB8 }, "GreeElectric", "Gree Electric Appliances, Inc. Of Zhuhai" },
{ { 0x94, 0x24, 0xE1 }, "AlcatelLucen", "Alcatel-Lucent Enterprise" },
{ { 0x94, 0x25, 0x33 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x94, 0x26, 0x1D }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x94, 0x27, 0x70 }, "BSHHausgerät", "BSH Hausgeräte GmbH" },
{ { 0x94, 0x27, 0x90 }, "TCTmobile", "TCT mobile ltd" },
{ { 0x94, 0x28, 0x2E }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x94, 0x28, 0x6F }, "zte", "zte corporation" },
@@ -25833,6 +26069,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0x33, 0xDD }, "Taco", "Taco Inc" },
{ { 0x94, 0x34, 0x69 }, "SiliconLabor", "Silicon Laboratories" },
{ { 0x94, 0x35, 0x0A }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0x94, 0x35, 0x89 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x94, 0x36, 0xE0 }, "SichuanBihon", "Sichuan Bihong Broadcast & Television New Technologies Co.,Ltd" },
{ { 0x94, 0x37, 0xF7 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x94, 0x39, 0xE5 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
@@ -25846,10 +26083,10 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0x3E, 0xE4 }, "WiSATechnolo", "WiSA Technologies Inc" },
{ { 0x94, 0x3F, 0x0C }, "Genexis", "Genexis B.V." },
{ { 0x94, 0x3F, 0xBB }, "JSCRPCIstokn", "JSC RPC Istok named after Shokin" },
- { { 0x94, 0x3F, 0xC2 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x94, 0x3F, 0xC2 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x94, 0x3F, 0xD6 }, "Apple", "Apple, Inc." },
{ { 0x94, 0x40, 0xA2 }, "AnywaveCommu", "Anywave Communication Technologies, Inc." },
- { { 0x94, 0x40, 0xC9 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x94, 0x40, 0xC9 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x94, 0x40, 0xF3 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x94, 0x41, 0xC1 }, "MiniCam", "Mini-Cam Limited" },
{ { 0x94, 0x43, 0x4D }, "Ciena", "Ciena Corporation" },
@@ -25862,6 +26099,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0x49, 0x96 }, "WiSilica", "WiSilica Inc" },
{ { 0x94, 0x4A, 0x09 }, "BitWiseContr", "BitWise Controls" },
{ { 0x94, 0x4A, 0x0C }, "Sercomm", "Sercomm Corporation." },
+ { { 0x94, 0x4B, 0xF8 }, "Tozo", "Tozo Inc" },
{ { 0x94, 0x4E, 0x5B }, "UbeeInteract", "Ubee Interactive Co., Limited" },
{ { 0x94, 0x4F, 0x4C }, "SoundUnited", "Sound United LLC" },
{ { 0x94, 0x50, 0x47 }, "Rechnerbetri", "Rechnerbetriebsgruppe" },
@@ -25928,6 +26166,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0x8A, 0xC6 }, "RealmeChongq", "Realme Chongqing Mobile Telecommunications Corp.,Ltd." },
{ { 0x94, 0x8B, 0x03 }, "EAGETInnovat", "EAGET Innovation and Technology Co., Ltd." },
{ { 0x94, 0x8B, 0xC1 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0x94, 0x8C, 0xD7 }, "HuiZhouGaosh", "Hui Zhou Gaoshengda Technology Co.,LTD" },
{ { 0x94, 0x8D, 0x50 }, "Beamex", "Beamex Oy Ab" },
{ { 0x94, 0x8D, 0xEF }, "OetikerSchwe", "Oetiker Schweiz AG" },
{ { 0x94, 0x8E, 0x89 }, "IndustriasUn", "Industrias Unidas Sa De Cv" },
@@ -25955,6 +26194,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0x9D, 0x57 }, "PanasonicdoB", "Panasonic do Brasil Limitada" },
{ { 0x94, 0x9F, 0x3E }, "Sonos", "Sonos, Inc." },
{ { 0x94, 0x9F, 0x3F }, "OptekDigital", "Optek Digital Technology company limited" },
+ { { 0x94, 0x9F, 0x8B }, "zte", "zte corporation" },
{ { 0x94, 0x9F, 0xB4 }, "JiaFaAnTaiTe", "ChengDu JiaFaAnTai Technology Co.,Ltd" },
{ { 0x94, 0xA0, 0x4E }, "BostexTechno", "Bostex Technology Co., LTD" },
{ { 0x94, 0xA0, 0x7D }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -25995,9 +26235,10 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0xBA, 0x56 }, "CoshipElectr", "Shenzhen Coship Electronics Co., Ltd." },
{ { 0x94, 0xBB, 0x43 }, "AzureWaveTec", "AzureWave Technology Inc." },
{ { 0x94, 0xBB, 0xAE }, "Husqvarna", "Husqvarna AB" },
+ { { 0x94, 0xBD, 0xBE }, "TPVDisplayTe", "TPV Display Technology (Xiamen) Co.,Ltd." },
{ { 0x94, 0xBE, 0x09 }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
{ { 0x94, 0xBE, 0x46 }, "MotorolaMobi", "Motorola (Wuhan) Mobility Technologies Communication Co., Ltd." },
- { { 0x94, 0xBE, 0x50 }, "Remotesoluti", "Remotesolution" },
+ { { 0x94, 0xBE, 0x50 }, "RemoteSoluti", "Remote Solution" },
{ { 0x94, 0xBF, 0x1E }, "eflowSmartDe", "eflow Inc. / Smart Device Planning and Development Division" },
{ { 0x94, 0xBF, 0x2D }, "Apple", "Apple, Inc." },
{ { 0x94, 0xBF, 0x80 }, "zte", "zte corporation" },
@@ -26067,6 +26308,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0xE3, 0xEE }, "zte", "zte corporation" },
{ { 0x94, 0xE4, 0xBA }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x94, 0xE6, 0x86 }, "Espressif", "Espressif Inc." },
+ { { 0x94, 0xE6, 0xBA }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x94, 0xE6, 0xF7 }, "Intel", "Intel Corporate" },
{ { 0x94, 0xE7, 0x0B }, "Intel", "Intel Corporate" },
{ { 0x94, 0xE7, 0x11 }, "XirkaDamaPer", "Xirka Dama Persada PT" },
@@ -26083,7 +26325,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0xEB, 0xCD }, "BlackBerryRT", "BlackBerry RTS" },
{ { 0x94, 0xEE, 0x9F }, "HMDGlobal", "HMD Global Oy" },
{ { 0x94, 0xEF, 0x49 }, "BDRThermeaGr", "BDR Thermea Group B.V" },
- { { 0x94, 0xF1, 0x28 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x94, 0xF1, 0x28 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x94, 0xF1, 0x9E }, "HuizhouMaoro", "Huizhou Maorong Intelligent Technology Co.,Ltd" },
{ { 0x94, 0xF2, 0x78 }, "ElmaElectron", "Elma Electronic" },
{ { 0x94, 0xF2, 0xBB }, "ValeoVision", "Valeo Vision Systems" },
@@ -26122,6 +26364,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0x03, 0xD8 }, "Apple", "Apple, Inc." },
{ { 0x98, 0x06, 0x3A }, "HomeControlS", "Home Control Singapore Pte Ltd" },
{ { 0x98, 0x06, 0x3C }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0x98, 0x07, 0x09 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x98, 0x07, 0x2D }, "TexasInstrum", "Texas Instruments" },
{ { 0x98, 0x09, 0xCF }, "OnePlusTechn", "OnePlus Technology (Shenzhen) Co., Ltd" },
{ { 0x98, 0x0C, 0x33 }, "SiliconLabor", "Silicon Laboratories" },
@@ -26146,6 +26389,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0x1A, 0x35 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x98, 0x1B, 0xB5 }, "ASSAABLOYKor", "ASSA ABLOY Korea Co., Ltd iRevo" },
{ { 0x98, 0x1C, 0x42 }, "Laiier", "Laiier" },
+ { { 0x98, 0x1D, 0xAC }, "CyvizAS", "Cyviz AS" },
{ { 0x98, 0x1D, 0xFA }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x98, 0x1E, 0x0F }, "JeelanShangh", "Jeelan (Shanghai Jeelan Technology Information Inc" },
{ { 0x98, 0x1E, 0x19 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
@@ -26163,6 +26407,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0x29, 0x1D }, "JaguardeMexi", "Jaguar de Mexico, SA de CV" },
{ { 0x98, 0x29, 0x3F }, "FujianStartC", "Fujian Start Computer Equipment Co.,Ltd" },
{ { 0x98, 0x29, 0xA6 }, "CompalInform", "Compal Information (Kunshan) Co., Ltd." },
+ { { 0x98, 0x2A, 0x0A }, "Intelbras", "Intelbras" },
{ { 0x98, 0x2C, 0xBC }, "Intel", "Intel Corporate" },
{ { 0x98, 0x2C, 0xBE }, "2Wire", "2Wire Inc" },
{ { 0x98, 0x2D, 0x56 }, "ResolutionAu", "Resolution Audio" },
@@ -26173,13 +26418,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0x2F, 0xF8 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x98, 0x30, 0x00 }, "KEMACOMTechn", "Beijing KEMACOM Technologies Co., Ltd." },
{ { 0x98, 0x30, 0x71 }, "DaikyungVasc", "Daikyung Vascom" },
- { { 0x98, 0x34, 0x8C }, "Teleepoch", "Teleepoch Ltd" },
+ { { 0x98, 0x34, 0x8C }, "GreatTalentT", "Great Talent Technology Limited" },
{ { 0x98, 0x34, 0x9D }, "KraussMaffei", "Krauss Maffei Technologies GmbH" },
{ { 0x98, 0x35, 0x71 }, "Sub10", "Sub10 Systems Ltd" },
{ { 0x98, 0x35, 0xB8 }, "AssembledPro", "Assembled Products Corporation" },
{ { 0x98, 0x35, 0xED }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x98, 0x37, 0x13 }, "PTNavicomInd", "PT.Navicom Indonesia" },
{ { 0x98, 0x38, 0x7D }, "ItronicTechn", "Itronic Technology Co. , Ltd." },
+ { { 0x98, 0x39, 0x10 }, "KaonGroup", "Kaon Group Co., Ltd." },
{ { 0x98, 0x39, 0x8E }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x98, 0x39, 0xC0 }, "Flextronics", "Flextronics" },
{ { 0x98, 0x3B, 0x16 }, "AMPAKTechnol", "AMPAK Technology, Inc." },
@@ -26226,6 +26472,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0x59, 0x45 }, "TexasInstrum", "Texas Instruments" },
{ { 0x98, 0x59, 0x49 }, "LuxotticaGro", "Luxottica Group S.P.A." },
{ { 0x98, 0x59, 0x7A }, "Intel", "Intel Corporate" },
+ { { 0x98, 0x5A, 0x98 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x98, 0x5A, 0xEB }, "Apple", "Apple, Inc." },
{ { 0x98, 0x5B, 0xB0 }, "Kmdata", "Kmdata Inc." },
{ { 0x98, 0x5C, 0x93 }, "SBGSAS", "SBG Systems SAS" },
@@ -26233,6 +26480,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0x5D, 0x82 }, "AristaNetwor", "Arista Networks" },
{ { 0x98, 0x5D, 0xAD }, "TexasInstrum", "Texas Instruments" },
{ { 0x98, 0x5E, 0x1B }, "ConversDigit", "ConversDigital Co., Ltd." },
+ { { 0x98, 0x5F, 0x41 }, "Intel", "Intel Corporate" },
{ { 0x98, 0x5F, 0x4F }, "TongfangComp", "Tongfang Computer Co.,Ltd." },
{ { 0x98, 0x5F, 0xD3 }, "Microsoft", "Microsoft Corporation" },
{ { 0x98, 0x60, 0x22 }, "EMW", "EMW Co., Ltd." },
@@ -26297,6 +26545,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0x9B, 0xCB }, "AVMAudiovisu", "AVM Audiovisuelles Marketing und Computersysteme GmbH" },
{ { 0x98, 0x9C, 0x57 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x98, 0x9D, 0x5D }, "VantivaUSA", "Vantiva USA LLC" },
+ { { 0x98, 0x9D, 0xB2 }, "GOIPGlobalSe", "GOIP Global Services Pvt. Ltd." },
{ { 0x98, 0x9D, 0xE5 }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
{ { 0x98, 0x9E, 0x63 }, "Apple", "Apple, Inc." },
{ { 0x98, 0x9F, 0x1E }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -26306,6 +26555,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0xA5, 0xF9 }, "Apple", "Apple, Inc." },
{ { 0x98, 0xA7, 0xB0 }, "Mcst", "Mcst Zao" },
{ { 0x98, 0xA8, 0x29 }, "AltoBeam", "AltoBeam Inc." },
+ { { 0x98, 0xA8, 0x78 }, "AgnigateTech", "Agnigate Technologies Private Limited" },
{ { 0x98, 0xA9, 0x2D }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x98, 0xA9, 0x42 }, "GuangzhouToz", "Guangzhou Tozed Kangwei Intelligent Technology Co., LTD" },
{ { 0x98, 0xAA, 0x3C }, "Willitech", "Will i-tech Co., Ltd." },
@@ -26346,6 +26596,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0xCA, 0x20 }, "SIMCOM", "Shanghai SIMCOM Ltd." },
{ { 0x98, 0xCA, 0x33 }, "Apple", "Apple, Inc." },
{ { 0x98, 0xCB, 0x27 }, "GaloreNetwor", "Galore Networks Pvt. Ltd." },
+ { { 0x98, 0xCB, 0x38 }, "BoxinCommuni", "Boxin Communications Limited Liability Company" },
{ { 0x98, 0xCB, 0xA4 }, "BenchmarkEle", "Benchmark Electronics" },
{ { 0x98, 0xCC, 0x4D }, "mantunsci", "Shenzhen mantunsci co., LTD" },
{ { 0x98, 0xCC, 0xD9 }, "SuperElectro", "Shenzhen SuperElectron Technology Co.,Ltd." },
@@ -26400,8 +26651,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0xF1, 0x81 }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x98, 0xF1, 0x99 }, "NECPlatforms", "NEC Platforms, Ltd." },
{ { 0x98, 0xF2, 0x17 }, "CastlenetTec", "Castlenet Technology Inc." },
- { { 0x98, 0xF2, 0xB3 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x98, 0xF2, 0xB3 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x98, 0xF4, 0x28 }, "zte", "zte corporation" },
+ { { 0x98, 0xF4, 0x87 }, "TexasInstrum", "Texas Instruments" },
{ { 0x98, 0xF4, 0xAB }, "Espressif", "Espressif Inc." },
{ { 0x98, 0xF5, 0x37 }, "zte", "zte corporation" },
{ { 0x98, 0xF5, 0xA9 }, "Ohsung", "Ohsung" },
@@ -26442,6 +26694,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0x06, 0x1B }, "H3CTechnolog", "Hangzhou H3C Technologies Co., Limited" },
{ { 0x9C, 0x06, 0x6E }, "HyteraCommun", "Hytera Communications Corporation Limited" },
{ { 0x9C, 0x09, 0x71 }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
+ { { 0x9C, 0x09, 0x8B }, "Cisco", "Cisco Systems, Inc" },
{ { 0x9C, 0x0B, 0x05 }, "eero", "eero inc." },
{ { 0x9C, 0x0C, 0x35 }, "ShenzhenshiX", "Shenzhenshi Xinzhongxin Technology Co.Ltd" },
{ { 0x9C, 0x0C, 0xDF }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
@@ -26452,6 +26705,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0x14, 0x65 }, "EdataElektro", "Edata Elektronik San. ve Tic. A.Ş." },
{ { 0x9C, 0x18, 0x74 }, "NokiaDanmark", "Nokia Danmark A/S" },
{ { 0x9C, 0x19, 0xC2 }, "DongguanLies", "Dongguan Liesheng Electronic Co., Ltd." },
+ { { 0x9C, 0x1A, 0x25 }, "Apple", "Apple, Inc." },
{ { 0x9C, 0x1C, 0x12 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
{ { 0x9C, 0x1C, 0x37 }, "AltoBeam", "AltoBeam (China) Inc." },
{ { 0x9C, 0x1C, 0x6D }, "HefeiDatangS", "Hefei Datang Storage Technology Co.,Ltd" },
@@ -26480,6 +26734,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0x2A, 0x70 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x9C, 0x2A, 0x83 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x9C, 0x2B, 0xA6 }, "RuijieNetwor", "Ruijie Networks Co.,LTD" },
+ { { 0x9C, 0x2D, 0x49 }, "NanowellInfo", "Nanowell Info Tech Co., Limited" },
{ { 0x9C, 0x2D, 0xCD }, "LCFCElectron", "LCFC(HeFei) Electronics Technology co., ltd" },
{ { 0x9C, 0x2D, 0xCF }, "ShishiTongyu", "Shishi Tongyun Technology(Chengdu)Co.,Ltd." },
{ { 0x9C, 0x2E, 0x7A }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -26523,6 +26778,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0x4E, 0x8E }, "ALT", "ALT Systems Ltd" },
{ { 0x9C, 0x4E, 0xBF }, "BoxCast", "BoxCast" },
{ { 0x9C, 0x4F, 0x5F }, "Google", "Google, Inc." },
+ { { 0x9C, 0x4F, 0xAC }, "zte", "zte corporation" },
{ { 0x9C, 0x4F, 0xCF }, "TCTmobile", "TCT mobile ltd" },
{ { 0x9C, 0x4F, 0xDA }, "Apple", "Apple, Inc." },
{ { 0x9C, 0x50, 0xD1 }, "MurataManufa", "Murata Manufacturing Co., Ltd." },
@@ -26544,7 +26800,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0x57, 0xAD }, "Cisco", "Cisco Systems, Inc" },
{ { 0x9C, 0x57, 0xBC }, "eero", "eero inc." },
{ { 0x9C, 0x58, 0x3C }, "Apple", "Apple, Inc." },
+ { { 0x9C, 0x58, 0x84 }, "Apple", "Apple, Inc." },
{ { 0x9C, 0x5A, 0x44 }, "CompalInform", "Compal Information (Kunshan) Co., Ltd." },
+ { { 0x9C, 0x5A, 0x80 }, "JuniperNetwo", "Juniper Networks" },
{ { 0x9C, 0x5A, 0x81 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x9C, 0x5B, 0x96 }, "NMR", "NMR Corporation" },
{ { 0x9C, 0x5C, 0x8D }, "FiremaxIndús", "Firemax Indústria E Comércio De Produtos Eletrônicos Ltda" },
@@ -26555,6 +26813,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0x5E, 0x73 }, "CalibreUK", "Calibre UK LTD" },
{ { 0x9C, 0x5F, 0x5A }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0x9C, 0x5F, 0xB0 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0x9C, 0x60, 0x76 }, "Apple", "Apple, Inc." },
{ { 0x9C, 0x61, 0x1D }, "PanasonicNor", "Panasonic Corporation of North America" },
{ { 0x9C, 0x61, 0x21 }, "SichuanTiany", "Sichuan Tianyi Comheart Telecom Co.,LTD" },
{ { 0x9C, 0x62, 0xAB }, "SumavisionTe", "Sumavision Technologies Co.,Ltd" },
@@ -26568,6 +26827,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0x65, 0xF9 }, "AcSiPTechnol", "AcSiP Technology Corp." },
{ { 0x9C, 0x65, 0xFA }, "AcSiP", "AcSiP" },
{ { 0x9C, 0x66, 0x50 }, "GlodioTechno", "Glodio Technolies Co.,Ltd Tianjin Branch" },
+ { { 0x9C, 0x66, 0x97 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x9C, 0x68, 0x5B }, "Octonion", "Octonion SA" },
{ { 0x9C, 0x68, 0x65 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x9C, 0x69, 0x37 }, "QorvoInterna", "Qorvo International Pte. Ltd." },
@@ -26615,7 +26875,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0x8B, 0xA0 }, "Apple", "Apple, Inc." },
{ { 0x9C, 0x8B, 0xF1 }, "Warehouse", "The Warehouse Limited" },
{ { 0x9C, 0x8C, 0x6E }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
- { { 0x9C, 0x8C, 0xD8 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x9C, 0x8C, 0xD8 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x9C, 0x8D, 0x1A }, "INTEGprocess", "INTEG process group inc" },
{ { 0x9C, 0x8D, 0x7C }, "Alpsalpine", "Alpsalpine Co,.Ltd" },
{ { 0x9C, 0x8D, 0xD3 }, "LeontonTechn", "Leonton Technologies" },
@@ -26644,6 +26904,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0x9D, 0x5D }, "Raden", "Raden Inc" },
{ { 0x9C, 0x9D, 0x7E }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0x9C, 0x9E, 0x03 }, "awayfrom", "awayfrom" },
+ { { 0x9C, 0x9E, 0x6E }, "Espressif", "Espressif Inc." },
{ { 0x9C, 0x9E, 0x71 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x9C, 0x9E, 0xD5 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x9C, 0xA1, 0x0A }, "ScleSfe", "Scle Sfe" },
@@ -26709,6 +26970,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0xD3, 0x5B }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x9C, 0xD3, 0x6D }, "Netgear", "Netgear" },
{ { 0x9C, 0xD4, 0x8B }, "InnoluxTechn", "Innolux Technology Europe BV" },
+ { { 0x9C, 0xD4, 0xA6 }, "ServercomPri", "Servercom (India) Private Limited" },
{ { 0x9C, 0xD5, 0x7D }, "Cisco", "Cisco Systems, Inc" },
{ { 0x9C, 0xD6, 0x43 }, "DLinkInterna", "D-Link International" },
{ { 0x9C, 0xD8, 0xE3 }, "HuazhongNume", "Wuhan Huazhong Numerical Control Co., Ltd" },
@@ -26718,7 +26980,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0xDB, 0x07 }, "Yellowtec", "Yellowtec GmbH" },
{ { 0x9C, 0xDB, 0xAF }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x9C, 0xDB, 0xCB }, "FunshionOnli", "Wuhan Funshion Online Technologies Co.,Ltd" },
- { { 0x9C, 0xDC, 0x71 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0x9C, 0xDC, 0x71 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0x9C, 0xDD, 0x1F }, "IntelligentS", "Intelligent Steward Co.,Ltd" },
{ { 0x9C, 0xDE, 0x4D }, "MLvision", "ML vision Co.,LTD" },
{ { 0x9C, 0xDF, 0x03 }, "HarmanBecker", "Harman/Becker Automotive Systems GmbH" },
@@ -26759,6 +27021,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0xF8, 0xDB }, "eyunmeitechn", "shenzhen eyunmei technology co,.ltd" },
{ { 0x9C, 0xF9, 0x38 }, "AREVANP", "AREVA NP GmbH" },
{ { 0x9C, 0xFA, 0x3C }, "DaeyoungElec", "Daeyoung Electronics" },
+ { { 0x9C, 0xFA, 0x76 }, "Apple", "Apple, Inc." },
{ { 0x9C, 0xFB, 0x77 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0x9C, 0xFB, 0xD5 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x9C, 0xFB, 0xF1 }, "MESOMATIC", "MESOMATIC GmbH & Co.KG" },
@@ -26808,6 +27071,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA0, 0x20, 0xA6 }, "Espressif", "Espressif Inc." },
{ { 0xA0, 0x21, 0x8B }, "ACEAntenna", "ACE Antenna Co., ltd" },
{ { 0xA0, 0x21, 0x95 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0xA0, 0x21, 0xAA }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
{ { 0xA0, 0x21, 0xB7 }, "Netgear", "Netgear" },
{ { 0xA0, 0x22, 0x52 }, "AstraWireles", "Astra Wireless Technology FZ-LLC" },
{ { 0xA0, 0x22, 0xDE }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
@@ -26862,6 +27126,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA0, 0x43, 0xDB }, "Sitael", "Sitael S.p.A." },
{ { 0xA0, 0x44, 0x5C }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xA0, 0x44, 0x66 }, "Intellics", "Intellics" },
+ { { 0xA0, 0x44, 0xB7 }, "PAXComputerT", "PAX Computer Technology(Shenzhen) Ltd." },
{ { 0xA0, 0x44, 0xF3 }, "RafaelMicro", "RafaelMicro" },
{ { 0xA0, 0x46, 0x5A }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0xA0, 0x47, 0xD7 }, "BestITWorld", "Best IT World (India) Pvt Ltd" },
@@ -26930,7 +27195,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA0, 0x77, 0x71 }, "Vialis", "Vialis BV" },
{ { 0xA0, 0x77, 0x9E }, "ChipseaTechn", "Chipsea Technologies (Shenzhen) Corp." },
{ { 0xA0, 0x78, 0x17 }, "Apple", "Apple, Inc." },
+ { { 0xA0, 0x78, 0x2D }, "Apple", "Apple, Inc." },
{ { 0xA0, 0x78, 0xBA }, "Pantech", "Pantech Co., Ltd." },
+ { { 0xA0, 0x7D, 0x9C }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xA0, 0x7F, 0x8A }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0xA0, 0x80, 0x69 }, "Intel", "Intel Corporate" },
{ { 0xA0, 0x82, 0x1F }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -27100,6 +27367,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA0, 0xF8, 0x95 }, "TINNOMobileT", "Shenzhen TINNO Mobile Technology Corp." },
{ { 0xA0, 0xF9, 0xB7 }, "AdemcoSmartH", "Ademco Smart Homes Technology(Tianjin)Co.,Ltd." },
{ { 0xA0, 0xF9, 0xE0 }, "Vivatel", "Vivatel Company Limited" },
+ { { 0xA0, 0xFA, 0xC8 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xA0, 0xFB, 0x83 }, "HonorDevice", "Honor Device Co., Ltd." },
{ { 0xA0, 0xFB, 0xC5 }, "Apple", "Apple, Inc." },
{ { 0xA0, 0xFC, 0x6E }, "Telegrafia", "Telegrafia a.s." },
@@ -27163,6 +27431,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA4, 0x25, 0x1B }, "Avaya", "Avaya Inc" },
{ { 0xA4, 0x26, 0x18 }, "IntegratedDe", "Integrated Device Technology (Malaysia) Sdn. Bhd." },
{ { 0xA4, 0x26, 0x55 }, "LTIMotion", "LTI Motion (Shanghai) Co., Ltd." },
+ { { 0xA4, 0x27, 0xA5 }, "PaloAltoNetw", "Palo Alto Networks" },
{ { 0xA4, 0x28, 0xB7 }, "YangtzeMemor", "Yangtze Memory Technologies Co., Ltd." },
{ { 0xA4, 0x29, 0x40 }, "YOUHUATechno", "Shenzhen YOUHUA Technology Co., Ltd" },
{ { 0xA4, 0x29, 0x83 }, "BoeingDefenc", "Boeing Defence Australia" },
@@ -27199,6 +27468,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA4, 0x3F, 0x51 }, "BenewTechnol", "Shenzhen Benew Technology Co.,Ltd." },
{ { 0xA4, 0x3F, 0x68 }, "AristaNetwor", "Arista Network, Inc." },
{ { 0xA4, 0x40, 0x27 }, "zte", "zte corporation" },
+ { { 0xA4, 0x40, 0x3D }, "BaseusTechno", "Shenzhen Baseus Technology Co., Ltd." },
{ { 0xA4, 0x42, 0x3B }, "Intel", "Intel Corporate" },
{ { 0xA4, 0x43, 0x8C }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xA4, 0x44, 0xD1 }, "WingtechGrou", "Wingtech Group (HongKong)Limited" },
@@ -27231,6 +27501,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA4, 0x56, 0xCC }, "VantivaUSA", "Vantiva USA LLC" },
{ { 0xA4, 0x58, 0x02 }, "ShinIlTech", "Shin-Il Tech" },
{ { 0xA4, 0x5A, 0x1C }, "smartelectro", "smart-electronic GmbH" },
+ { { 0xA4, 0x5C, 0x25 }, "TexasInstrum", "Texas Instruments" },
{ { 0xA4, 0x5C, 0x27 }, "Nintendo", "Nintendo Co., Ltd." },
{ { 0xA4, 0x5D, 0x36 }, "HewlettPacka", "Hewlett Packard" },
{ { 0xA4, 0x5D, 0x5E }, "WilkElektron", "Wilk Elektronik S.A." },
@@ -27326,6 +27597,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA4, 0xA1, 0xC2 }, "Ericsson", "Ericsson AB" },
{ { 0xA4, 0xA1, 0xE4 }, "Innotube", "Innotube, Inc." },
{ { 0xA4, 0xA2, 0x4A }, "CiscoSPVTG", "Cisco SPVTG" },
+ { { 0xA4, 0xA4, 0x59 }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
{ { 0xA4, 0xA4, 0x6B }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xA4, 0xA4, 0x90 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xA4, 0xA4, 0xD3 }, "BluebankComm", "Bluebank Communication Technology Co.Ltd" },
@@ -27456,6 +27728,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA4, 0xFB, 0x8D }, "DunchongTech", "Hangzhou Dunchong Technology Co.Ltd" },
{ { 0xA4, 0xFC, 0x14 }, "Apple", "Apple, Inc." },
{ { 0xA4, 0xFC, 0x77 }, "MegaWell", "Mega Well Limited" },
+ { { 0xA4, 0xFC, 0xA1 }, "NokiaSolutio", "Nokia Solutions and Networks GmbH & Co. KG" },
{ { 0xA4, 0xFC, 0xCE }, "SecurityExpe", "Security Expert Ltd." },
{ { 0xA4, 0xFF, 0x95 }, "Nokia", "Nokia" },
{ { 0xA8, 0x00, 0xE3 }, "StarkeyLabs", "Starkey Labs Inc." },
@@ -27508,6 +27781,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0x30, 0x1C }, "QingdaoIntel", "Qingdao Intelligent&Precise Electronics Co.,Ltd." },
{ { 0xA8, 0x30, 0xAD }, "WeifangGoert", "Weifang Goertek Electronics Co.,Ltd" },
{ { 0xA8, 0x30, 0xBC }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0xA8, 0x31, 0x62 }, "HuachengNetw", "Hangzhou Huacheng Network Technology Co.,Ltd" },
{ { 0xA8, 0x32, 0x9A }, "DigicomFutur", "Digicom Futuristic Technologies Ltd." },
{ { 0xA8, 0x34, 0x6A }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xA8, 0x35, 0x12 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -27559,6 +27833,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0x58, 0x40 }, "CambridgeInd", "Cambridge Industries(Group) Co.,Ltd." },
{ { 0xA8, 0x58, 0x4E }, "PkVega", "Pk Vega" },
{ { 0xA8, 0x58, 0x7C }, "Shoogee", "Shoogee GmbH & Co. KG" },
+ { { 0xA8, 0x59, 0x5F }, "Intel", "Intel Corporate" },
{ { 0xA8, 0x5A, 0xE0 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xA8, 0x5A, 0xF3 }, "SiflowerComm", "Shanghai Siflower Communication Technology Co., Ltd" },
{ { 0xA8, 0x5B, 0x6C }, "RobertBoschC", "Robert Bosch Gmbh, CM-CI2" },
@@ -27577,6 +27852,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0x61, 0xAA }, "Cloudview", "Cloudview Limited" },
{ { 0xA8, 0x61, 0xDF }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
{ { 0xA8, 0x62, 0xA2 }, "Jiwumedia", "Jiwumedia Co., Ltd." },
+ { { 0xA8, 0x63, 0x08 }, "Avutec", "Avutec" },
{ { 0xA8, 0x63, 0x7D }, "DLinkInterna", "D-Link International" },
{ { 0xA8, 0x63, 0xDF }, "Displaire", "Displaire Corporation" },
{ { 0xA8, 0x63, 0xF2 }, "TexasInstrum", "Texas Instruments" },
@@ -27595,6 +27871,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0x6D, 0x5F }, "RaisecomTech", "Raisecom Technology CO., LTD" },
{ { 0xA8, 0x6D, 0xAA }, "Intel", "Intel Corporate" },
{ { 0xA8, 0x6E, 0x4E }, "HuaweiDevice", "Huawei Device Co., Ltd." },
+ { { 0xA8, 0x6F, 0x36 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0xA8, 0x70, 0x5D }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xA8, 0x70, 0xA5 }, "UniComm", "UniComm Inc." },
{ { 0xA8, 0x71, 0x16 }, "EardaTechnol", "Earda Technologies co Ltd" },
@@ -27646,6 +27923,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0x93, 0x52 }, "ZhongmiCommu", "Shanghai Zhongmi Communication Technology Co.,Ltd" },
{ { 0xA8, 0x93, 0xE6 }, "JiangxiJingg", "Jiangxi Jinggangshan Cking Communication Technology Co.,Ltd" },
{ { 0xA8, 0x95, 0xB0 }, "AkerSubsea", "Aker Subsea Ltd" },
+ { { 0xA8, 0x96, 0x09 }, "FNLINKTECHNO", "FN-LINK TECHNOLOGY Ltd." },
{ { 0xA8, 0x96, 0x75 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0xA8, 0x96, 0x8A }, "Apple", "Apple, Inc." },
{ { 0xA8, 0x97, 0xCD }, "ARRISGroup", "ARRIS Group, Inc." },
@@ -27681,6 +27959,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0xB0, 0x28 }, "CubePilot", "CubePilot Pty Ltd" },
{ { 0xA8, 0xB0, 0x88 }, "eero", "eero inc." },
{ { 0xA8, 0xB0, 0xAE }, "BizLinkSpeci", "BizLink Special Cables Germany GmbH" },
+ { { 0xA8, 0xB0, 0xD1 }, "EFUNDisplayT", "EFUN Display Technology (Shenzhen) Co., Ltd." },
{ { 0xA8, 0xB1, 0x3B }, "HP", "HP Inc." },
{ { 0xA8, 0xB1, 0xD4 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xA8, 0xB2, 0x71 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -27697,13 +27976,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0xBB, 0xCF }, "Apple", "Apple, Inc." },
{ { 0xA8, 0xBC, 0x9C }, "CloudLightTe", "Cloud Light Technology Limited" },
{ { 0xA8, 0xBD, 0x1A }, "HoneyBee", "Honey Bee (Hong Kong) Limited" },
- { { 0xA8, 0xBD, 0x27 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0xA8, 0xBD, 0x27 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0xA8, 0xBD, 0x3A }, "UnionManTech", "Union Man Technology Co.,Ltd" },
{ { 0xA8, 0xBE, 0x27 }, "Apple", "Apple, Inc." },
{ { 0xA8, 0xBF, 0x3C }, "HDVPhoelectr", "HDV Phoelectron Technology Limited" },
{ { 0xA8, 0xC0, 0x92 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xA8, 0xC0, 0xEA }, "Pepwave", "Pepwave Limited" },
{ { 0xA8, 0xC2, 0x22 }, "TMResearch", "TM-Research Inc." },
+ { { 0xA8, 0xC2, 0x46 }, "GemtekTechno", "Gemtek Technology Co., Ltd." },
{ { 0xA8, 0xC2, 0x52 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xA8, 0xC2, 0x66 }, "HUMAX", "HUMAX Co., Ltd." },
{ { 0xA8, 0xC5, 0x6F }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
@@ -27756,6 +28036,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0xEF, 0x26 }, "Tritonwave", "Tritonwave" },
{ { 0xA8, 0xEF, 0x5F }, "RealmeChongq", "Realme Chongqing Mobile Telecommunications Corp.,Ltd." },
{ { 0xA8, 0xF0, 0x38 }, "ShenZhenShiJ", "Shen Zhen Shi Jin Hua Tai Electronics Co.,Ltd" },
+ { { 0xA8, 0xF0, 0x59 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xA8, 0xF1, 0xB2 }, "AllwinnerTec", "Allwinner Technology Co., Ltd" },
{ { 0xA8, 0xF2, 0x66 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xA8, 0xF2, 0x74 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -27799,6 +28080,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xAC, 0x06, 0x13 }, "Senselogix", "Senselogix Ltd" },
{ { 0xAC, 0x06, 0xC7 }, "ServerNet", "ServerNet S.r.l." },
{ { 0xAC, 0x07, 0x5F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0xAC, 0x07, 0x75 }, "Apple", "Apple, Inc." },
{ { 0xAC, 0x0A, 0x61 }, "Labor", "Labor S.r.L." },
{ { 0xAC, 0x0B, 0xFB }, "Espressif", "Espressif Inc." },
{ { 0xAC, 0x0D, 0x1B }, "LGElectronic", "LG Electronics (Mobile Communications)" },
@@ -27810,6 +28092,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xAC, 0x13, 0x9C }, "Adtran", "Adtran Inc" },
{ { 0xAC, 0x14, 0x61 }, "ATAW", "ATAW Co., Ltd." },
{ { 0xAC, 0x14, 0xD2 }, "widaq", "wi-daq, inc." },
+ { { 0xAC, 0x15, 0x18 }, "Espressif", "Espressif Inc." },
{ { 0xAC, 0x15, 0x85 }, "silergy", "silergy corp" },
{ { 0xAC, 0x15, 0xA2 }, "TPLink", "TP-Link Corporation Limited" },
{ { 0xAC, 0x15, 0xF4 }, "Apple", "Apple, Inc." },
@@ -27825,6 +28108,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xAC, 0x1D, 0x06 }, "Apple", "Apple, Inc." },
{ { 0xAC, 0x1E, 0x92 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xAC, 0x1E, 0x9E }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
+ { { 0xAC, 0x1E, 0xA9 }, "Intelbras", "Intelbras" },
{ { 0xAC, 0x1E, 0xD0 }, "TemicAutomot", "Temic Automotive Philippines Inc." },
{ { 0xAC, 0x1F, 0x09 }, "RAKwirelesst", "shenzhen RAKwireless technology Co.,Ltd" },
{ { 0xAC, 0x1F, 0x0F }, "TexasInstrum", "Texas Instruments" },
@@ -27860,6 +28144,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xAC, 0x37, 0x43 }, "HTC", "HTC Corporation" },
{ { 0xAC, 0x37, 0xC9 }, "RAID", "RAID Incorporated" },
{ { 0xAC, 0x38, 0x70 }, "LenovoMobile", "Lenovo Mobile Communication Technology Ltd." },
+ { { 0xAC, 0x39, 0x71 }, "RealmeChongq", "Realme Chongqing Mobile Telecommunications Corp.,Ltd." },
{ { 0xAC, 0x3A, 0x67 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xAC, 0x3A, 0x7A }, "Roku", "Roku, Inc." },
{ { 0xAC, 0x3B, 0x77 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
@@ -27988,6 +28273,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xAC, 0x86, 0x7E }, "CreateNewTec", "Create New Technology (HK) Limited Company" },
{ { 0xAC, 0x86, 0xA3 }, "Apple", "Apple, Inc." },
{ { 0xAC, 0x87, 0xA3 }, "Apple", "Apple, Inc." },
+ { { 0xAC, 0x88, 0x66 }, "SkyworthDigi", "Shenzhen Skyworth Digital Technology CO., Ltd" },
{ { 0xAC, 0x88, 0xFD }, "Apple", "Apple, Inc." },
{ { 0xAC, 0x89, 0x95 }, "AzureWaveTec", "AzureWave Technology Inc." },
{ { 0xAC, 0x89, 0xD2 }, "Ciena", "Ciena Corporation" },
@@ -28127,6 +28413,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xAC, 0xE9, 0x7F }, "IoTTech", "IoT Tech Limited" },
{ { 0xAC, 0xE9, 0xAA }, "Hay", "Hay Systems Ltd" },
{ { 0xAC, 0xEA, 0x6A }, "GenixInfocom", "Genix Infocomm Co., Ltd." },
+ { { 0xAC, 0xEA, 0xEA }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xAC, 0xEB, 0x51 }, "UniversalEle", "Universal Electronics, Inc." },
{ { 0xAC, 0xEC, 0x80 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xAC, 0xEC, 0x85 }, "eero", "eero inc." },
@@ -28140,6 +28427,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xAC, 0xF1, 0x08 }, "LGInnotek", "LG Innotek" },
{ { 0xAC, 0xF1, 0xDF }, "DLinkInterna", "D-Link International" },
{ { 0xAC, 0xF2, 0xC5 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0xAC, 0xF4, 0x2C }, "EardaTechnol", "Earda Technologies co Ltd" },
{ { 0xAC, 0xF5, 0xE6 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xAC, 0xF6, 0xF7 }, "LGElectronic", "LG Electronics (Mobile Communications)" },
{ { 0xAC, 0xF7, 0xF3 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
@@ -28209,6 +28497,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB0, 0x37, 0x95 }, "LGElectronic", "LG Electronics" },
{ { 0xB0, 0x38, 0x29 }, "SiliconwareP", "Siliconware Precision Industries Co., Ltd." },
{ { 0xB0, 0x38, 0x50 }, "NanjingCASZD", "Nanjing CAS-ZDC IOT SYSTEM CO.,LTD" },
+ { { 0xB0, 0x38, 0x6C }, "EFMNetworks", "EFM Networks" },
{ { 0xB0, 0x38, 0x93 }, "OndaTLCItali", "Onda TLC Italia S.r.l." },
{ { 0xB0, 0x38, 0xE2 }, "WananHongshe", "Wanan Hongsheng Electronic Co.Ltd" },
{ { 0xB0, 0x39, 0x56 }, "Netgear", "Netgear" },
@@ -28257,6 +28546,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB0, 0x57, 0x06 }, "Vallox", "Vallox Oy" },
{ { 0xB0, 0x58, 0xC4 }, "BroadcastMic", "Broadcast Microwave Services, Inc" },
{ { 0xB0, 0x59, 0x47 }, "QihuIntellig", "Shenzhen Qihu Intelligent Technology Company Limited" },
+ { { 0xB0, 0x5A, 0x44 }, "FibocomWirel", "Fibocom Wireless Inc." },
{ { 0xB0, 0x5A, 0xDA }, "HewlettPacka", "Hewlett Packard" },
{ { 0xB0, 0x5B, 0x1F }, "ThermoFisher", "Thermo Fisher Scientific S.P.A." },
{ { 0xB0, 0x5B, 0x67 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -28316,6 +28606,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB0, 0x89, 0xC2 }, "Zyptonite", "Zyptonite" },
{ { 0xB0, 0x8B, 0x92 }, "zte", "zte corporation" },
{ { 0xB0, 0x8B, 0x9E }, "Telechips", "Telechips, Inc." },
+ { { 0xB0, 0x8B, 0xA8 }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0xB0, 0x8B, 0xBE }, "ABL", "ABL GmbH" },
{ { 0xB0, 0x8B, 0xCF }, "Cisco", "Cisco Systems, Inc" },
{ { 0xB0, 0x8B, 0xD0 }, "Cisco", "Cisco Systems, Inc" },
@@ -28328,6 +28619,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB0, 0x91, 0x22 }, "TexasInstrum", "Texas Instruments" },
{ { 0xB0, 0x91, 0x34 }, "Taleo", "Taleo" },
{ { 0xB0, 0x91, 0x37 }, "ISisImageStr", "ISis ImageStream Internet Solutions, Inc" },
+ { { 0xB0, 0x92, 0x4A }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0xB0, 0x93, 0x5B }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xB0, 0x95, 0x75 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0xB0, 0x95, 0x8E }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
@@ -28359,6 +28651,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB0, 0xA7, 0x32 }, "Espressif", "Espressif Inc." },
{ { 0xB0, 0xA7, 0x37 }, "Roku", "Roku, Inc." },
{ { 0xB0, 0xA7, 0xB9 }, "TPLink", "TP-Link Corporation Limited" },
+ { { 0xB0, 0xA7, 0xD2 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0xB0, 0xA8, 0x6E }, "JuniperNetwo", "Juniper Networks" },
{ { 0xB0, 0xAA, 0x36 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0xB0, 0xAA, 0x77 }, "Cisco", "Cisco Systems, Inc" },
@@ -28379,7 +28672,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB0, 0xB4, 0x48 }, "TexasInstrum", "Texas Instruments" },
{ { 0xB0, 0xB5, 0xC3 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0xB0, 0xB5, 0xE8 }, "Ruroc", "Ruroc LTD" },
- { { 0xB0, 0xB8, 0x67 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0xB0, 0xB8, 0x67 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0xB0, 0xB8, 0xD5 }, "NanjingNengr", "Nanjing Nengrui Auto Equipment CO.,Ltd" },
{ { 0xB0, 0xB9, 0x8A }, "Netgear", "Netgear" },
{ { 0xB0, 0xBB, 0x8B }, "WavetelTechn", "Wavetel Technology Limited" },
@@ -28422,6 +28715,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB0, 0xD2, 0x78 }, "TexasInstrum", "Texas Instruments" },
{ { 0xB0, 0xD2, 0xF5 }, "Vello", "Vello Systems, Inc." },
{ { 0xB0, 0xD5, 0x68 }, "CultraviewDi", "Shenzhen Cultraview Digital Technology Co., Ltd" },
+ { { 0xB0, 0xD5, 0x76 }, "Apple", "Apple, Inc." },
{ { 0xB0, 0xD5, 0x9D }, "ZoweeTechnol", "Shenzhen Zowee Technology Co., Ltd" },
{ { 0xB0, 0xD5, 0xCC }, "TexasInstrum", "Texas Instruments" },
{ { 0xB0, 0xD7, 0xC5 }, "Logipix", "Logipix Ltd" },
@@ -28509,6 +28803,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB4, 0x14, 0xE6 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xB4, 0x15, 0x13 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xB4, 0x15, 0x7E }, "Celona", "Celona Inc." },
+ { { 0xB4, 0x17, 0x4D }, "ProjectMonit", "Project Monitor Inc" },
{ { 0xB4, 0x17, 0x80 }, "DTIGroup", "DTI Group Ltd" },
{ { 0xB4, 0x17, 0xA8 }, "MetaPlatform", "Meta Platforms Technologies, LLC" },
{ { 0xB4, 0x18, 0xD1 }, "Apple", "Apple, Inc." },
@@ -28624,7 +28919,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB4, 0x79, 0x47 }, "Nutanix", "Nutanix" },
{ { 0xB4, 0x79, 0xA7 }, "SamsungElect", "Samsung Electro-Mechanics(Thailand)" },
{ { 0xB4, 0x79, 0xC8 }, "RuckusWirele", "Ruckus Wireless" },
- { { 0xB4, 0x7A, 0xF1 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0xB4, 0x7A, 0xF1 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0xB4, 0x7C, 0x29 }, "GuzidiTechno", "Shenzhen Guzidi Technology Co.,Ltd" },
{ { 0xB4, 0x7C, 0x59 }, "JiangsuHengx", "Jiangsu Hengxin Technology Co.,Ltd." },
{ { 0xB4, 0x7C, 0x9C }, "AmazonTechno", "Amazon Technologies Inc." },
@@ -28647,6 +28942,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB4, 0x8A, 0x5F }, "JuniperNetwo", "Juniper Networks" },
{ { 0xB4, 0x8B, 0x19 }, "Apple", "Apple, Inc." },
{ { 0xB4, 0x8C, 0x9D }, "AzureWaveTec", "AzureWave Technology Inc." },
+ { { 0xB4, 0x92, 0xFE }, "AristaNetwor", "Arista Network, Inc." },
{ { 0xB4, 0x94, 0x4E }, "WeTelecom", "WeTelecom Co., Ltd." },
{ { 0xB4, 0x96, 0x91 }, "Intel", "Intel Corporate" },
{ { 0xB4, 0x98, 0x42 }, "zte", "zte corporation" },
@@ -28872,6 +29168,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB8, 0x3A, 0x5A }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
{ { 0xB8, 0x3A, 0x7B }, "Worldplay", "Worldplay (Canada) Inc." },
{ { 0xB8, 0x3A, 0x9D }, "Alarmcom", "Alarm.com" },
+ { { 0xB8, 0x3B, 0x8F }, "HylinIoTTech", "Hangzhou Hylin IoT Techonology Co.,Ltd." },
{ { 0xB8, 0x3B, 0xAB }, "Arcadyan", "Arcadyan Corporation" },
{ { 0xB8, 0x3B, 0xCC }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0xB8, 0x3C, 0x28 }, "Apple", "Apple, Inc." },
@@ -28909,6 +29206,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB8, 0x5A, 0x73 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xB8, 0x5A, 0xF7 }, "Ouya", "Ouya, Inc" },
{ { 0xB8, 0x5A, 0xFE }, "HandaerCommu", "Handaer Communication Technology (Beijing) Co., Ltd" },
+ { { 0xB8, 0x5C, 0x5C }, "Microsoft", "Microsoft Corporation" },
{ { 0xB8, 0x5C, 0xEE }, "BaiduOnlineN", "Baidu Online Network Technology (Beijing) Co., Ltd" },
{ { 0xB8, 0x5D, 0x0A }, "Apple", "Apple, Inc." },
{ { 0xB8, 0x5D, 0xC3 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -28932,7 +29230,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB8, 0x6A, 0x97 }, "EdgecoreNetw", "Edgecore Networks Corporation" },
{ { 0xB8, 0x6A, 0xF1 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0xB8, 0x6B, 0x23 }, "Toshiba", "Toshiba" },
- { { 0xB8, 0x6C, 0xE0 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0xB8, 0x6C, 0xE0 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0xB8, 0x6C, 0xE8 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xB8, 0x70, 0xF4 }, "CompalInform", "Compal Information (Kunshan) Co., Ltd." },
{ { 0xB8, 0x74, 0x24 }, "ViessmannEle", "Viessmann Elektronik GmbH" },
@@ -28957,7 +29255,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB8, 0x80, 0x4F }, "TexasInstrum", "Texas Instruments" },
{ { 0xB8, 0x81, 0x98 }, "Intel", "Intel Corporate" },
{ { 0xB8, 0x81, 0xFA }, "Apple", "Apple, Inc." },
- { { 0xB8, 0x83, 0x03 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0xB8, 0x83, 0x03 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0xB8, 0x85, 0x7B }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xB8, 0x85, 0x84 }, "Dell", "Dell Inc." },
{ { 0xB8, 0x86, 0x87 }, "LiteonTechno", "Liteon Technology Corporation" },
@@ -28991,6 +29289,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB8, 0x94, 0xE7 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0xB8, 0x96, 0x74 }, "AllDSP", "AllDSP GmbH & Co. KG" },
{ { 0xB8, 0x97, 0x5A }, "BIOSTARMicro", "BIOSTAR Microtech Int'l Corp." },
+ { { 0xB8, 0x97, 0x7A }, "NokiaSolutio", "Nokia Solutions and Networks GmbH & Co. KG" },
{ { 0xB8, 0x98, 0xAD }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0xB8, 0x98, 0xB0 }, "Atlona", "Atlona Inc." },
{ { 0xB8, 0x98, 0xF7 }, "GioneeCommun", "Gionee Communication Equipment Co,Ltd.ShenZhen" },
@@ -29070,11 +29369,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB8, 0xCA, 0x04 }, "HoltekSemico", "Holtek Semiconductor Inc." },
{ { 0xB8, 0xCA, 0x3A }, "Dell", "Dell Inc." },
{ { 0xB8, 0xCB, 0x29 }, "Dell", "Dell Inc." },
+ { { 0xB8, 0xCC, 0x5F }, "iCommSemicon", "Shenzhen iComm Semiconductor CO.,LTD" },
{ { 0xB8, 0xCD, 0x93 }, "Penetek", "Penetek, Inc" },
{ { 0xB8, 0xCD, 0xA7 }, "MaxelerTechn", "Maxeler Technologies Ltd." },
{ { 0xB8, 0xCE, 0xF6 }, "MellanoxTech", "Mellanox Technologies, Inc." },
{ { 0xB8, 0xD0, 0x6F }, "GuangzhouHku", "Guangzhou Hkust Fok Ying Tung Research Institute" },
- { { 0xB8, 0xD0, 0xF0 }, "FcntLmited", "Fcnt Lmited" },
+ { { 0xB8, 0xD0, 0xF0 }, "Fcnt", "Fcnt Llc" },
{ { 0xB8, 0xD3, 0x09 }, "CoxCommunica", "Cox Communications, Inc" },
{ { 0xB8, 0xD4, 0x3E }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0xB8, 0xD4, 0x9D }, "MSevenSystem", "M Seven System Ltd." },
@@ -29127,6 +29427,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB8, 0xF6, 0xB1 }, "Apple", "Apple, Inc." },
{ { 0xB8, 0xF7, 0x32 }, "AryakaNetwor", "Aryaka Networks Inc" },
{ { 0xB8, 0xF7, 0x4A }, "Rcntec", "Rcntec" },
+ { { 0xB8, 0xF7, 0x74 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0xB8, 0xF8, 0x28 }, "ChangshuGaos", "Changshu Gaoshida Optoelectronic Technology Co. Ltd." },
{ { 0xB8, 0xF8, 0x53 }, "Arcadyan", "Arcadyan Corporation" },
{ { 0xB8, 0xF8, 0x83 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
@@ -29160,6 +29461,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xBC, 0x03, 0xA7 }, "MfpMichelin", "Mfp Michelin" },
{ { 0xBC, 0x05, 0x43 }, "AVM", "AVM GmbH" },
{ { 0xBC, 0x06, 0x2D }, "Wacom", "Wacom Co.,Ltd." },
+ { { 0xBC, 0x08, 0x66 }, "NestlePurina", "Nestle Purina PetCare" },
{ { 0xBC, 0x09, 0x1B }, "Intel", "Intel Corporate" },
{ { 0xBC, 0x09, 0x63 }, "Apple", "Apple, Inc." },
{ { 0xBC, 0x09, 0xEB }, "TecnoMobile", "Tecno Mobile Limited" },
@@ -29239,7 +29541,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xBC, 0x3E, 0x07 }, "HitronTechno", "Hitron Technologies. Inc" },
{ { 0xBC, 0x3E, 0x13 }, "Accordance", "Accordance Systems Inc." },
{ { 0xBC, 0x3E, 0xCB }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
- { { 0xBC, 0x3F, 0x4E }, "Teleepoch", "Teleepoch Ltd" },
+ { { 0xBC, 0x3F, 0x4E }, "GreatTalentT", "Great Talent Technology Limited" },
{ { 0xBC, 0x3F, 0x8F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xBC, 0x41, 0x00 }, "CODACOELECTR", "CODACO ELECTRONIC s.r.o." },
{ { 0xBC, 0x41, 0x01 }, "TINNOMobileT", "Shenzhen TINNO Mobile Technology Corp." },
@@ -29377,6 +29679,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xBC, 0x9F, 0xE4 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
{ { 0xBC, 0x9F, 0xEF }, "Apple", "Apple, Inc." },
{ { 0xBC, 0xA0, 0x42 }, "FlycoElectri", "Shanghai Flyco Electrical Appliance Co.,Ltd" },
+ { { 0xBC, 0xA0, 0x80 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xBC, 0xA1, 0x3A }, "SESimagotag", "SES-imagotag" },
{ { 0xBC, 0xA3, 0x7F }, "RailMilSpSpK", "Rail-Mil Sp. z o.o. Sp. K." },
{ { 0xBC, 0xA4, 0xE1 }, "Nabto", "Nabto" },
@@ -29407,6 +29710,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xBC, 0xB9, 0x23 }, "AltaNetworks", "Alta Networks" },
{ { 0xBC, 0xBA, 0xC2 }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
{ { 0xBC, 0xBA, 0xE1 }, "AREC", "AREC Inc." },
+ { { 0xBC, 0xBB, 0x58 }, "Apple", "Apple, Inc." },
{ { 0xBC, 0xBB, 0xC9 }, "KellendonkEl", "Kellendonk Elektronik GmbH" },
{ { 0xBC, 0xBC, 0x46 }, "SKSWelding", "SKS Welding Systems GmbH" },
{ { 0xBC, 0xBD, 0x84 }, "zte", "zte corporation" },
@@ -29469,6 +29773,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xBC, 0xEE, 0x7B }, "ASUSTekCOMPU", "ASUSTek COMPUTER INC." },
{ { 0xBC, 0xF1, 0x71 }, "Intel", "Intel Corporate" },
{ { 0xBC, 0xF1, 0xF2 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0xBC, 0xF2, 0x12 }, "TelinkMicro", "Telink Micro LLC" },
{ { 0xBC, 0xF2, 0x92 }, "Plantronics", "Plantronics, Inc." },
{ { 0xBC, 0xF2, 0xAF }, "devolo", "devolo AG" },
{ { 0xBC, 0xF3, 0x10 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
@@ -29595,6 +29900,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC0, 0x51, 0x5C }, "zte", "zte corporation" },
{ { 0xC0, 0x51, 0x7E }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
{ { 0xC0, 0x53, 0x36 }, "NationalRail", "Beijing National Railway Research & Design Institute of Signal & Communication Group Co..Ltd." },
+ { { 0xC0, 0x55, 0x5C }, "ImpulseLabs", "Impulse Labs" },
{ { 0xC0, 0x56, 0x27 }, "BelkinIntern", "Belkin International Inc." },
{ { 0xC0, 0x56, 0xE3 }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
{ { 0xC0, 0x57, 0xBC }, "Avaya", "Avaya Inc" },
@@ -29621,6 +29927,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC0, 0x6C, 0x6D }, "MagneMotion", "MagneMotion, Inc." },
{ { 0xC0, 0x6D, 0x1A }, "TianjinHenxi", "Tianjin Henxinhuifeng Technology Co.,Ltd." },
{ { 0xC0, 0x6D, 0xED }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
+ { { 0xC0, 0x6F, 0x98 }, "eero", "eero inc." },
{ { 0xC0, 0x70, 0x09 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xC0, 0x71, 0xAA }, "OnMicroElect", "ShenZhen OnMicro Electronics Co.,Ltd." },
{ { 0xC0, 0x74, 0x2B }, "XunlongSoftw", "Shenzhen Xunlong Software Co.,Limited" },
@@ -29672,6 +29979,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC0, 0x98, 0xE5 }, "UniversityMi", "University of Michigan" },
{ { 0xC0, 0x9A, 0x71 }, "XiamenMeituM", "Xiamen Meitu Mobile Technology Co.Ltd" },
{ { 0xC0, 0x9A, 0xD0 }, "Apple", "Apple, Inc." },
+ { { 0xC0, 0x9B, 0x63 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xC0, 0x9C, 0x04 }, "ShaanxiGuoLi", "Shaanxi GuoLian Digital TV Technology Co.,Ltd." },
{ { 0xC0, 0x9C, 0x92 }, "Coby", "Coby" },
{ { 0xC0, 0x9D, 0x26 }, "TopiconHKLmd", "Topicon HK Lmd." },
@@ -29698,6 +30006,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC0, 0xA8, 0xF0 }, "AdamsonEngin", "Adamson Systems Engineering" },
{ { 0xC0, 0xA9, 0x38 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xC0, 0xAA, 0x68 }, "OSASITechnos", "OSASI Technos Inc." },
+ { { 0xC0, 0xAB, 0x2B }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xC0, 0xAC, 0x54 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0xC0, 0xAD, 0x97 }, "TecnoMobile", "Tecno Mobile Limited" },
{ { 0xC0, 0xAE, 0xFD }, "HCWLANTechno", "Shenzhen HC-WLAN Technology Co.,Ltd" },
@@ -29815,8 +30124,10 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC4, 0x06, 0x83 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xC4, 0x07, 0x2F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xC4, 0x07, 0x78 }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
+ { { 0xC4, 0x08, 0x26 }, "HisenseVisua", "Hisense Visual Technology Co.,Ltd" },
{ { 0xC4, 0x08, 0x4A }, "Nokia", "Nokia" },
{ { 0xC4, 0x08, 0x80 }, "UTEPOTech", "Shenzhen UTEPO Tech Co., Ltd." },
+ { { 0xC4, 0x08, 0x98 }, "DropbeatsTec", "Dropbeats Technology Co., Ltd." },
{ { 0xC4, 0x09, 0x38 }, "FujianStarNe", "Fujian Star-Net Communication Co.,Ltd" },
{ { 0xC4, 0x09, 0xB7 }, "JuniperNetwo", "Juniper Networks" },
{ { 0xC4, 0x0A, 0xCB }, "Cisco", "Cisco Systems, Inc" },
@@ -29902,6 +30213,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC4, 0x44, 0xA0 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xC4, 0x45, 0x67 }, "SAMBONPRECIS", "SAMBON PRECISON and ELECTRONICS" },
{ { 0xC4, 0x45, 0xEC }, "YaliElectron", "Shanghai Yali Electron Co.,LTD" },
+ { { 0xC4, 0x46, 0x06 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xC4, 0x46, 0x19 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0xC4, 0x47, 0x3F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xC4, 0x48, 0x38 }, "SatcomDirect", "Satcom Direct, Inc." },
@@ -29929,6 +30241,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC4, 0x57, 0x1F }, "JuneLife", "June Life Inc" },
{ { 0xC4, 0x57, 0x6E }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xC4, 0x57, 0x81 }, "WingtechGrou", "Wingtech Group (HongKong) Limited" },
+ { { 0xC4, 0x57, 0xCD }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xC4, 0x58, 0xC2 }, "TATFOOKTechn", "Shenzhen TATFOOK Technology Co., Ltd." },
{ { 0xC4, 0x59, 0x76 }, "FugooCoorpor", "Fugoo Coorporation" },
{ { 0xC4, 0x5A, 0x86 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -30044,6 +30357,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC4, 0xAA, 0x99 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xC4, 0xAA, 0xA1 }, "SUMMITDEVELO", "SUMMIT DEVELOPMENT, spol.s r.o." },
{ { 0xC4, 0xAA, 0xC4 }, "ZhejiangDahu", "Zhejiang Dahua Technology Co., Ltd." },
+ { { 0xC4, 0xAB, 0x4D }, "Cisco", "Cisco Systems, Inc" },
{ { 0xC4, 0xAB, 0xB2 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0xC4, 0xAC, 0x59 }, "MurataManufa", "Murata Manufacturing Co., Ltd." },
{ { 0xC4, 0xAC, 0xAA }, "Apple", "Apple, Inc." },
@@ -30051,6 +30365,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC4, 0xAD, 0x34 }, "Routerboardc", "Routerboard.com" },
{ { 0xC4, 0xAD, 0xF1 }, "GOPEACE", "GOPEACE Inc." },
{ { 0xC4, 0xAE, 0x12 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0xC4, 0xB1, 0xD9 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xC4, 0xB2, 0x39 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xC4, 0xB2, 0x5B }, "RuijieNetwor", "Ruijie Networks Co.,LTD" },
{ { 0xC4, 0xB3, 0x01 }, "Apple", "Apple, Inc." },
@@ -30064,6 +30379,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC4, 0xBB, 0xEA }, "PakedgeDevic", "Pakedge Device and Software Inc" },
{ { 0xC4, 0xBC, 0xD7 }, "NewRyatek", "New Ryatek" },
{ { 0xC4, 0xBD, 0x6A }, "SKF", "SKF GmbH" },
+ { { 0xC4, 0xBD, 0x8D }, "ChuangweiRgb", "Shenzhen Chuangwei-Rgb Electronics Co.,Ltd" },
{ { 0xC4, 0xBD, 0xE5 }, "Intel", "Intel Corporate" },
{ { 0xC4, 0xBE, 0x84 }, "TexasInstrum", "Texas Instruments" },
{ { 0xC4, 0xBE, 0xD4 }, "Avaya", "Avaya Inc" },
@@ -30076,6 +30392,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC4, 0xC3, 0x6B }, "Apple", "Apple, Inc." },
{ { 0xC4, 0xC5, 0x63 }, "TecnoMobile", "Tecno Mobile Limited" },
{ { 0xC4, 0xC6, 0x03 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0xC4, 0xC6, 0xE6 }, "LCFCElectron", "LCFC(HeFei) Electronics Technology co., ltd" },
{ { 0xC4, 0xC7, 0x55 }, "HuaqinWorldT", "Beijing HuaqinWorld Technology Co.,Ltd" },
{ { 0xC4, 0xC9, 0x19 }, "EnergyImport", "Energy Imports Ltd" },
{ { 0xC4, 0xC9, 0xEC }, "GugaooHK", "Gugaoo HK Limited" },
@@ -30084,6 +30401,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC4, 0xCB, 0x54 }, "FibocomAuto", "Fibocom Auto Inc." },
{ { 0xC4, 0xCB, 0x6B }, "AiristaFlow", "Airista Flow, Inc." },
{ { 0xC4, 0xCB, 0x76 }, "Microsoft", "Microsoft Corporation" },
+ { { 0xC4, 0xCB, 0xBE }, "GreatTalentT", "Great Talent Technology Limited" },
{ { 0xC4, 0xCB, 0xE1 }, "Dell", "Dell Inc." },
{ { 0xC4, 0xCD, 0x45 }, "BoomsenseTec", "Beijing Boomsense Technology CO.,LTD." },
{ { 0xC4, 0xCD, 0x82 }, "LowanInforma", "Hangzhou Lowan Information Technology Co., Ltd." },
@@ -30118,6 +30436,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC4, 0xE5, 0x32 }, "Arcadyan", "Arcadyan Corporation" },
{ { 0xC4, 0xE5, 0xB1 }, "SuzhouPanKor", "Suzhou PanKore Integrated Circuit Technology Co. Ltd." },
{ { 0xC4, 0xE7, 0x33 }, "ClearAlign", "Clear Align LLC" },
+ { { 0xC4, 0xE7, 0xAE }, "MerossTechno", "Chengdu Meross Technology Co., Ltd." },
{ { 0xC4, 0xE7, 0xBE }, "SCSpro", "SCSpro Co.,Ltd" },
{ { 0xC4, 0xE9, 0x0A }, "DLinkInterna", "D-Link International" },
{ { 0xC4, 0xE9, 0x2F }, "ABSciex", "AB Sciex" },
@@ -30268,6 +30587,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC8, 0x54, 0xA4 }, "Infinixmobil", "Infinix mobility limited" },
{ { 0xC8, 0x56, 0x45 }, "IntermasFran", "Intermas France" },
{ { 0xC8, 0x56, 0x63 }, "SunflexEurop", "Sunflex Europe GmbH" },
+ { { 0xC8, 0x58, 0x6A }, "WinnerMicroe", "Beijing Winner Microelectronics Co.,Ltd." },
{ { 0xC8, 0x58, 0x95 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0xC8, 0x58, 0xC0 }, "Intel", "Intel Corporate" },
{ { 0xC8, 0x5A, 0x9F }, "zte", "zte corporation" },
@@ -30328,6 +30648,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC8, 0x8B, 0x47 }, "Nolangroupco", "Nolangroup S.P.A con Socio Unico" },
{ { 0xC8, 0x8B, 0xE8 }, "Masimo", "Masimo Corporation" },
{ { 0xC8, 0x8D, 0x83 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0xC8, 0x8D, 0xD4 }, "Markonetechn", "Markone technology Co., Ltd." },
{ { 0xC8, 0x8F, 0x26 }, "SkyworthDigi", "Skyworth Digital Technology(Shenzhen) Co.,Ltd" },
{ { 0xC8, 0x90, 0x3E }, "PaktonTechno", "Pakton Technologies" },
{ { 0xC8, 0x90, 0x8A }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -30383,7 +30704,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC8, 0xB2, 0x9B }, "Intel", "Intel Corporate" },
{ { 0xC8, 0xB3, 0x73 }, "CiscoLinksys", "Cisco-Linksys, LLC" },
{ { 0xC8, 0xB4, 0x22 }, "AskeyCompute", "Askey Computer Corp" },
- { { 0xC8, 0xB5, 0xAD }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0xC8, 0xB5, 0xAD }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0xC8, 0xB5, 0xB7 }, "Apple", "Apple, Inc." },
{ { 0xC8, 0xB6, 0xD3 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xC8, 0xB6, 0xFE }, "Fitbit", "Fitbit, Inc." },
@@ -30425,6 +30746,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC8, 0xD1, 0x0B }, "Nokia", "Nokia Corporation" },
{ { 0xC8, 0xD1, 0x2A }, "Comtrend", "Comtrend Corporation" },
{ { 0xC8, 0xD1, 0x5E }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0xC8, 0xD1, 0xA9 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xC8, 0xD1, 0xD1 }, "AGAiTTechnol", "AGAiT Technology Corporation" },
{ { 0xC8, 0xD2, 0xC1 }, "Jetlun", "Jetlun (Shenzhen) Corporation" },
{ { 0xC8, 0xD3, 0xA3 }, "DLinkInterna", "D-Link International" },
@@ -30498,6 +30820,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xCA, 0x04, 0x5A }, "Ossia", "Ossia Inc" },
{ { 0xCA, 0x12, 0x5C }, "Microsoft", "Microsoft Corporation" },
{ { 0xCA, 0x1E, 0x45 }, "ASMediaTechn", "ASMedia Technology Inc." },
+ { { 0xCA, 0x22, 0x2B }, "PumaGearPowe", "Beijing Puma Gear Power Equipment Co.,Ltd" },
{ { 0xCA, 0x2B, 0x5E }, "SuzhouMotorc", "Suzhou Motor-comm Electronic Technology Co.,Ltd" },
{ { 0xCA, 0x30, 0xBF }, "IEEE8021Chai", "IEEE 802.1 Chair" },
{ { 0xCA, 0x37, 0x82 }, "Storbyte", "Storbyte, Inc." },
@@ -30553,6 +30876,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xCC, 0x24, 0x2E }, "SuperElectro", "Shenzhen SuperElectron Technology Co.,Ltd." },
{ { 0xCC, 0x25, 0xEF }, "Apple", "Apple, Inc." },
{ { 0xCC, 0x26, 0x2D }, "Verifi", "Verifi, LLC" },
+ { { 0xCC, 0x28, 0xAA }, "ASUSTekCOMPU", "ASUSTek COMPUTER INC." },
{ { 0xCC, 0x29, 0xBD }, "zte", "zte corporation" },
{ { 0xCC, 0x29, 0xF5 }, "Apple", "Apple, Inc." },
{ { 0xCC, 0x2A, 0x80 }, "MicroBizinte", "Micro-Biz intelligence solutions Co.,Ltd" },
@@ -30644,6 +30968,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xCC, 0x60, 0xC8 }, "Microsoft", "Microsoft Corporation" },
{ { 0xCC, 0x61, 0xE5 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0xCC, 0x62, 0xFE }, "UnionManTech", "Union Man Technology Co.,Ltd" },
+ { { 0xCC, 0x64, 0x1A }, "BilianElectr", "Shenzhen Bilian Electronic Co.,Ltd" },
{ { 0xCC, 0x64, 0xA6 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xCC, 0x65, 0xAD }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xCC, 0x66, 0x0A }, "Apple", "Apple, Inc." },
@@ -30654,6 +30979,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xCC, 0x69, 0xB0 }, "GlobalTraffi", "Global Traffic Technologies, LLC" },
{ { 0xCC, 0x69, 0xFA }, "Apple", "Apple, Inc." },
{ { 0xCC, 0x6A, 0x10 }, "ChamberlainG", "The Chamberlain Group, Inc" },
+ { { 0xCC, 0x6A, 0x33 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xCC, 0x6B, 0x1E }, "CloudNetwork", "Cloud Network Technology Singapore Pte. Ltd." },
{ { 0xCC, 0x6B, 0x98 }, "MinetecWirel", "Minetec Wireless Technologies" },
{ { 0xCC, 0x6B, 0xF1 }, "SoundMasking", "Sound Masking Inc." },
@@ -30684,6 +31010,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xCC, 0x7F, 0x75 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xCC, 0x7F, 0x76 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xCC, 0x81, 0x2A }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
+ { { 0xCC, 0x81, 0x7D }, "Apple", "Apple, Inc." },
{ { 0xCC, 0x81, 0xDA }, "Phicomm", "Phicomm (Shanghai) Co., Ltd." },
{ { 0xCC, 0x82, 0x7F }, "AdvantechTec", "Advantech Technology (CHINA) Co., Ltd." },
{ { 0xCC, 0x82, 0xEB }, "Kyocera", "Kyocera Corporation" },
@@ -30695,6 +31022,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xCC, 0x89, 0x5E }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xCC, 0x89, 0x6C }, "GNHearing", "GN Hearing A/S" },
{ { 0xCC, 0x89, 0xFD }, "Nokia", "Nokia Corporation" },
+ { { 0xCC, 0x8C, 0x17 }, "ItelMobile", "Itel Mobile Limited" },
{ { 0xCC, 0x8C, 0xBF }, "TuyaSmart", "Tuya Smart Inc." },
{ { 0xCC, 0x8C, 0xDA }, "WeiDaIntelli", "Shenzhen Wei Da Intelligent Technology Go.,Ltd" },
{ { 0xCC, 0x8C, 0xE3 }, "TexasInstrum", "Texas Instruments" },
@@ -30751,6 +31079,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xCC, 0xB5, 0xD1 }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0xCC, 0xB6, 0x91 }, "NECMagnusCom", "NECMagnusCommunications" },
{ { 0xCC, 0xB6, 0xC8 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0xCC, 0xB7, 0x77 }, "zte", "zte corporation" },
{ { 0xCC, 0xB7, 0xC4 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xCC, 0xB8, 0x88 }, "AnBSecurite", "AnB Securite s.a." },
{ { 0xCC, 0xB8, 0xA8 }, "AMPAKTechnol", "AMPAK Technology, Inc." },
@@ -30866,12 +31195,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD0, 0x07, 0x90 }, "TexasInstrum", "Texas Instruments" },
{ { 0xD0, 0x07, 0xCA }, "JuniperNetwo", "Juniper Networks" },
{ { 0xD0, 0x09, 0xC8 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0xD0, 0x09, 0xF5 }, "Hosiden", "Hosiden Corporation" },
{ { 0xD0, 0x0A, 0xAB }, "YokogawaDigi", "Yokogawa Digital Computer Corporation" },
{ { 0xD0, 0x0B, 0x27 }, "MurataManufa", "Murata Manufacturing Co., Ltd." },
{ { 0xD0, 0x0D, 0xF7 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xD0, 0x0E, 0xA4 }, "PorscheCarsN", "Porsche Cars North America" },
{ { 0xD0, 0x0E, 0xD9 }, "TaicangT&WEl", "Taicang T&W Electronics" },
{ { 0xD0, 0x0F, 0x6D }, "T&WElectroni", "T&W Electronics Company" },
+ { { 0xD0, 0x11, 0xE5 }, "Apple", "Apple, Inc." },
{ { 0xD0, 0x12, 0x42 }, "BIOS", "BIOS Corporation" },
{ { 0xD0, 0x12, 0x55 }, "HuiZhouGaosh", "Hui Zhou Gaoshengda Technology Co.,LTD" },
{ { 0xD0, 0x12, 0xCB }, "AVMAudiovisu", "AVM Audiovisuelles Marketing und Computersysteme GmbH" },
@@ -30991,9 +31322,10 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD0, 0x65, 0xCA }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xD0, 0x66, 0x6D }, "BusLanTechno", "Shenzhen Bus-Lan Technology Co., Ltd." },
{ { 0xD0, 0x66, 0x7B }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
- { { 0xD0, 0x67, 0x26 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0xD0, 0x67, 0x26 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0xD0, 0x67, 0xE5 }, "Dell", "Dell Inc." },
{ { 0xD0, 0x69, 0x9E }, "LUMINEXLight", "LUMINEX Lighting Control Equipment" },
+ { { 0xD0, 0x69, 0xC1 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xD0, 0x69, 0xD0 }, "VertoMedical", "Verto Medical Solutions, LLC" },
{ { 0xD0, 0x6A, 0x1F }, "Bse", "Bse Co.,Ltd." },
{ { 0xD0, 0x6B, 0x78 }, "Apple", "Apple, Inc." },
@@ -31008,6 +31340,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD0, 0x73, 0x8E }, "DongOhPrecis", "Dong Oh Precision Co., Ltd." },
{ { 0xD0, 0x73, 0xD5 }, "LifiLabsMana", "Lifi Labs Management Pty Ltd" },
{ { 0xD0, 0x75, 0xBE }, "RenoA&E", "Reno A&E" },
+ { { 0xD0, 0x76, 0x02 }, "HuiZhouGaosh", "Hui Zhou Gaoshengda Technology Co.,LTD" },
{ { 0xD0, 0x76, 0x8F }, "Calix", "Calix Inc." },
{ { 0xD0, 0x76, 0xE7 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0xD0, 0x77, 0x14 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
@@ -31122,6 +31455,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD0, 0xD3, 0xFC }, "Mios", "Mios, Ltd." },
{ { 0xD0, 0xD4, 0x12 }, "ADBBroadband", "ADB Broadband Italia" },
{ { 0xD0, 0xD4, 0x71 }, "MVTECH", "MVTECH co., Ltd" },
+ { { 0xD0, 0xD4, 0x9F }, "Apple", "Apple, Inc." },
{ { 0xD0, 0xD6, 0xCC }, "Wintop", "Wintop" },
{ { 0xD0, 0xD7, 0x83 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xD0, 0xD7, 0xBE }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -31140,6 +31474,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD0, 0xE4, 0x0B }, "Wearable", "Wearable Inc." },
{ { 0xD0, 0xE4, 0x4A }, "MurataManufa", "Murata Manufacturing Co., Ltd." },
{ { 0xD0, 0xE5, 0x4D }, "ARRISGroup", "ARRIS Group, Inc." },
+ { { 0xD0, 0xE5, 0x81 }, "Apple", "Apple, Inc." },
{ { 0xD0, 0xE7, 0x82 }, "AzureWaveTec", "AzureWave Technology Inc." },
{ { 0xD0, 0xE8, 0x28 }, "RadiantIndus", "Radiant Industries Incorporated" },
{ { 0xD0, 0xEB, 0x03 }, "Zhehuatechno", "Zhehua technology limited" },
@@ -31192,6 +31527,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD4, 0x12, 0x96 }, "AnobitTechno", "Anobit Technologies Ltd." },
{ { 0xD4, 0x12, 0xBB }, "QuadrantComp", "Quadrant Components Inc. Ltd" },
{ { 0xD4, 0x13, 0x6F }, "AsiaPacificB", "Asia Pacific Brands" },
+ { { 0xD4, 0x13, 0xB3 }, "WuQiTechnolo", "Wu Qi Technologies,Inc." },
{ { 0xD4, 0x13, 0xF8 }, "PeplinkInter", "Peplink International Ltd." },
{ { 0xD4, 0x17, 0x61 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0xD4, 0x19, 0xF6 }, "NXPSemicondu", "NXP Semiconductor (Tianjin) LTD." },
@@ -31260,12 +31596,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD4, 0x46, 0xE1 }, "Apple", "Apple, Inc." },
{ { 0xD4, 0x47, 0x5A }, "ScreenBeam", "ScreenBeam, Inc." },
{ { 0xD4, 0x48, 0x2D }, "DeejoyLighti", "Shenzhen Deejoy Lighting Technology Co.,Ltd." },
+ { { 0xD4, 0x48, 0x67 }, "SiliconLabor", "Silicon Laboratories" },
{ { 0xD4, 0x4B, 0x5E }, "TaiyoYuden", "Taiyo Yuden Co., Ltd." },
{ { 0xD4, 0x4B, 0xB6 }, "ZhejiangTmal", "Zhejiang Tmall Technology Co., Ltd." },
{ { 0xD4, 0x4C, 0x24 }, "Vuppalamrith", "Vuppalamritha Magnetic Components LTD" },
{ { 0xD4, 0x4C, 0x9C }, "YOOBAOTechno", "Shenzhen YOOBAO Technology Co.Ltd" },
{ { 0xD4, 0x4C, 0xA7 }, "Informtekhni", "Informtekhnika & Communication, LLC" },
{ { 0xD4, 0x4D, 0x77 }, "Nokia", "Nokia" },
+ { { 0xD4, 0x4D, 0x9F }, "SkyworthDigi", "Shenzhen Skyworth Digital Technology CO., Ltd" },
{ { 0xD4, 0x4D, 0xA4 }, "MurataManufa", "Murata Manufacturing Co., Ltd." },
{ { 0xD4, 0x4F, 0x67 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xD4, 0x4F, 0x68 }, "EideticCommu", "Eidetic Communications Inc" },
@@ -31350,6 +31688,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD4, 0x7B, 0xB0 }, "AskeyCompute", "Askey Computer Corp" },
{ { 0xD4, 0x7D, 0xFC }, "TecnoMobile", "Tecno Mobile Limited" },
{ { 0xD4, 0x7E, 0xE4 }, "ChinaMobileI", "China Mobile IOT Company Limited" },
+ { { 0xD4, 0x7F, 0x35 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xD4, 0x7F, 0x78 }, "Dopple", "Dopple B.V." },
{ { 0xD4, 0x81, 0xCA }, "iDevices", "iDevices, LLC" },
{ { 0xD4, 0x81, 0xD7 }, "Dell", "Dell Inc." },
@@ -31389,6 +31728,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD4, 0x94, 0xE8 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xD4, 0x94, 0xFB }, "ContinentalA", "Continental Automotive Systems Inc." },
{ { 0xD4, 0x95, 0x24 }, "CloverNetwor", "Clover Network, Inc." },
+ { { 0xD4, 0x95, 0x5D }, "zte", "zte corporation" },
{ { 0xD4, 0x96, 0xDF }, "SungjinC&T", "Sungjin C&T Co.,Ltd" },
{ { 0xD4, 0x97, 0x0B }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0xD4, 0x99, 0x6C }, "JuniperNetwo", "Juniper Networks" },
@@ -31522,7 +31862,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD4, 0xF5, 0x13 }, "TexasInstrum", "Texas Instruments" },
{ { 0xD4, 0xF5, 0x27 }, "Siemens", "Siemens Ag" },
{ { 0xD4, 0xF5, 0x47 }, "Google", "Google, Inc." },
- { { 0xD4, 0xF5, 0xEF }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0xD4, 0xF5, 0xEF }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0xD4, 0xF6, 0x3F }, "Iea", "Iea S.R.L." },
{ { 0xD4, 0xF7, 0x56 }, "zte", "zte corporation" },
{ { 0xD4, 0xF7, 0x86 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
@@ -31633,6 +31973,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD8, 0x43, 0xEA }, "SYElectronic", "SY Electronics Ltd" },
{ { 0xD8, 0x43, 0xED }, "Suzuken", "Suzuken" },
{ { 0xD8, 0x44, 0x5C }, "DEVTecnologi", "DEV Tecnologia Ind Com Man Eq LTDA" },
+ { { 0xD8, 0x44, 0x89 }, "TpLinkPte", "Tp-Link Corporation Pte. Ltd." },
{ { 0xD8, 0x45, 0x2B }, "IntegratedDe", "Integrated Device Technology (Malaysia) Sdn. Bhd." },
{ { 0xD8, 0x46, 0x06 }, "SiliconValle", "Silicon Valley Global Marketing" },
{ { 0xD8, 0x47, 0x10 }, "SichuanChang", "Sichuan Changhong Electric Ltd." },
@@ -31656,6 +31997,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD8, 0x54, 0x3A }, "TexasInstrum", "Texas Instruments" },
{ { 0xD8, 0x54, 0x82 }, "Oxit", "Oxit, LLC" },
{ { 0xD8, 0x54, 0xA2 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
+ { { 0xD8, 0x54, 0xF2 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xD8, 0x55, 0x75 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xD8, 0x55, 0xA3 }, "zte", "zte corporation" },
{ { 0xD8, 0x57, 0xEF }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -31688,6 +32030,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD8, 0x68, 0xC3 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xD8, 0x69, 0x60 }, "Steinsvik", "Steinsvik" },
{ { 0xD8, 0x6B, 0xF7 }, "Nintendo", "Nintendo Co., Ltd." },
+ { { 0xD8, 0x6B, 0xFC }, "zte", "zte corporation" },
{ { 0xD8, 0x6C, 0x02 }, "HuaqinTeleco", "Huaqin Telecom Technology Co.,Ltd" },
{ { 0xD8, 0x6C, 0x5A }, "HUMAX", "HUMAX Co., Ltd." },
{ { 0xD8, 0x6C, 0x63 }, "Google", "Google, Inc." },
@@ -31734,8 +32077,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD8, 0x91, 0x2A }, "ZyxelCommuni", "Zyxel Communications Corporation" },
{ { 0xD8, 0x91, 0x36 }, "DoverFueling", "Dover Fueling Solutions" },
{ { 0xD8, 0x93, 0x41 }, "GeneralElect", "General Electric Global Research" },
- { { 0xD8, 0x94, 0x03 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0xD8, 0x94, 0x03 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0xD8, 0x95, 0x2F }, "TexasInstrum", "Texas Instruments" },
+ { { 0xD8, 0x95, 0x63 }, "TaiwanDigita", "Taiwan Digital Streaming Co." },
{ { 0xD8, 0x96, 0x85 }, "GoPro", "GoPro" },
{ { 0xD8, 0x96, 0x95 }, "Apple", "Apple, Inc." },
{ { 0xD8, 0x96, 0xE0 }, "AlibabaCloud", "Alibaba Cloud Computing Ltd." },
@@ -31757,6 +32101,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD8, 0x9E, 0xF3 }, "Dell", "Dell Inc." },
{ { 0xD8, 0xA0, 0x11 }, "WiZ", "WiZ" },
{ { 0xD8, 0xA0, 0x1D }, "Espressif", "Espressif Inc." },
+ { { 0xD8, 0xA0, 0xE6 }, "ChongqingYip", "Chongqing Yipingfang Technology Co., Ltd." },
{ { 0xD8, 0xA0, 0xE8 }, "zte", "zte corporation" },
{ { 0xD8, 0xA1, 0x05 }, "Syslane", "Syslane, Co., Ltd." },
{ { 0xD8, 0xA2, 0x5E }, "Apple", "Apple, Inc." },
@@ -31812,6 +32157,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD8, 0xC5, 0x61 }, "CommFrontCom", "CommFront Communications Pte Ltd" },
{ { 0xD8, 0xC6, 0x78 }, "MitraStarTec", "MitraStar Technology Corp." },
{ { 0xD8, 0xC6, 0x91 }, "HichanTechno", "Hichan Technology Corp." },
+ { { 0xD8, 0xC6, 0xF9 }, "Tracklab", "Tracklab Inc" },
{ { 0xD8, 0xC7, 0x71 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xD8, 0xC7, 0xC8 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
{ { 0xD8, 0xC8, 0xE9 }, "Phicomm", "Phicomm (Shanghai) Co., Ltd." },
@@ -31998,8 +32344,10 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xDC, 0x45, 0xB8 }, "Apple", "Apple, Inc." },
{ { 0xDC, 0x46, 0x28 }, "Intel", "Intel Corporate" },
{ { 0xDC, 0x48, 0xB2 }, "Baraja", "Baraja Pty. Ltd." },
+ { { 0xDC, 0x49, 0x65 }, "DASANNewtork", "DASAN Newtork Solutions" },
{ { 0xDC, 0x49, 0xC9 }, "CascoSignal", "Casco Signal Ltd" },
{ { 0xDC, 0x4A, 0x3E }, "HewlettPacka", "Hewlett Packard" },
+ { { 0xDC, 0x4B, 0xA1 }, "WistronNeweb", "Wistron Neweb Corporation" },
{ { 0xDC, 0x4B, 0xDD }, "SuperElectro", "Shenzhen SuperElectron Technology Co.,Ltd." },
{ { 0xDC, 0x4B, 0xFE }, "BelonTechnol", "Shenzhen Belon Technology CO.,LTD" },
{ { 0xDC, 0x4D, 0x23 }, "MRVComunicat", "MRV Comunications" },
@@ -32014,6 +32362,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xDC, 0x53, 0x92 }, "Apple", "Apple, Inc." },
{ { 0xDC, 0x54, 0x3D }, "ItelMobile", "Itel Mobile Limited" },
{ { 0xDC, 0x54, 0x75 }, "Espressif", "Espressif Inc." },
+ { { 0xDC, 0x54, 0xAD }, "RunZhouFiber", "Hangzhou RunZhou Fiber Technologies Co.,Ltd" },
{ { 0xDC, 0x54, 0xD7 }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0xDC, 0x55, 0x83 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0xDC, 0x56, 0xE6 }, "BococomTechn", "Shenzhen Bococom Technology Co.,LTD" },
@@ -32022,6 +32371,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xDC, 0x58, 0xBC }, "ThomasKrenn", "Thomas-Krenn.AG" },
{ { 0xDC, 0x5E, 0x36 }, "PatersonTech", "Paterson Technology" },
{ { 0xDC, 0x60, 0xA1 }, "TeledyneDALS", "Teledyne DALSA Professional Imaging" },
+ { { 0xDC, 0x61, 0x80 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xDC, 0x62, 0x1F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xDC, 0x62, 0x94 }, "GuangzhouLan", "Guangzhou Lango Electronics Technology Co.,Ltd." },
{ { 0xDC, 0x63, 0x73 }, "ObaraKorea", "Obara Korea" },
@@ -32031,7 +32381,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xDC, 0x66, 0x3A }, "ApacerTechno", "Apacer Technology Inc." },
{ { 0xDC, 0x66, 0x72 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xDC, 0x67, 0x23 }, "baroxKommuni", "barox Kommunikation GmbH" },
- { { 0xDC, 0x68, 0x0C }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0xDC, 0x68, 0x0C }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0xDC, 0x68, 0x80 }, "zte", "zte corporation" },
{ { 0xDC, 0x68, 0xEB }, "Nintendo", "Nintendo Co.,Ltd" },
{ { 0xDC, 0x69, 0xE2 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -32046,6 +32396,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xDC, 0x71, 0x37 }, "zte", "zte corporation" },
{ { 0xDC, 0x71, 0x44 }, "SamsungElect", "Samsung Electro Mechanics Co., Ltd." },
{ { 0xDC, 0x71, 0x96 }, "Intel", "Intel Corporate" },
+ { { 0xDC, 0x71, 0xD0 }, "Apple", "Apple, Inc." },
{ { 0xDC, 0x71, 0xDD }, "AXTechnologi", "AX Technologies" },
{ { 0xDC, 0x72, 0x23 }, "HuiZhouGaosh", "Hui Zhou Gaoshengda Technology Co.,LTD" },
{ { 0xDC, 0x72, 0x9B }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -32077,6 +32428,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xDC, 0x90, 0x88 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xDC, 0x91, 0x66 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xDC, 0x91, 0xBF }, "AmazonTechno", "Amazon Technologies Inc." },
+ { { 0xDC, 0x92, 0x72 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0xDC, 0x96, 0x2C }, "NSTAudio", "NST Audio Ltd" },
{ { 0xDC, 0x97, 0x3A }, "VeranaNetwor", "Verana Networks" },
{ { 0xDC, 0x97, 0x58 }, "SichuanAILin", "Sichuan AI-Link Technology Co., Ltd." },
@@ -32088,6 +32440,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xDC, 0x9A, 0x7D }, "HisenseVisua", "Hisense Visual Technology Co.,Ltd" },
{ { 0xDC, 0x9A, 0x8E }, "NanjingCocom", "Nanjing Cocomm electronics co., LTD" },
{ { 0xDC, 0x9B, 0x1E }, "Intercom", "Intercom, Inc." },
+ { { 0xDC, 0x9B, 0x95 }, "PhyplusTechn", "Phyplus Technology (Shanghai) Co., Ltd" },
{ { 0xDC, 0x9B, 0x9C }, "Apple", "Apple, Inc." },
{ { 0xDC, 0x9B, 0xD6 }, "TCTmobile", "TCT mobile ltd" },
{ { 0xDC, 0x9C, 0x52 }, "SapphireTech", "Sapphire Technology Limited." },
@@ -32136,6 +32489,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xDC, 0xBB, 0x96 }, "FullSolution", "Full Solution Telecom" },
{ { 0xDC, 0xBD, 0x7A }, "GuangzhouShi", "Guangzhou Shiyuan Electronic Technology Company Limited" },
{ { 0xDC, 0xBD, 0xCC }, "QuectelWirel", "Quectel Wireless Solutions Co.,Ltd." },
+ { { 0xDC, 0xBE, 0x04 }, "TexasInstrum", "Texas Instruments" },
{ { 0xDC, 0xBE, 0x49 }, "ItelMobile", "Itel Mobile Limited" },
{ { 0xDC, 0xBE, 0x7A }, "ZhejiangNuro", "Zhejiang Nurotron Biotechnology Co." },
{ { 0xDC, 0xBF, 0x90 }, "HuizhouQiaox", "Huizhou Qiaoxing Telecommunication Industry Co.,Ltd." },
@@ -32207,7 +32561,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xDC, 0xEB, 0x69 }, "VantivaUSA", "Vantiva USA LLC" },
{ { 0xDC, 0xEB, 0x94 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xDC, 0xEC, 0x06 }, "HeimiNetwork", "Heimi Network Technology Co., Ltd." },
- { { 0xDC, 0xEC, 0xE3 }, "LyotechLabs", "Lyotech Labs Llc" },
+ { { 0xDC, 0xEC, 0xE3 }, "HorysTechnol", "Horys Technologies Llc" },
{ { 0xDC, 0xED, 0x83 }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0xDC, 0xED, 0x84 }, "Haverford", "Haverford Systems Inc" },
{ { 0xDC, 0xEE, 0x06 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -32245,8 +32599,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE0, 0x05, 0xC5 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0xE0, 0x06, 0x30 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xE0, 0x06, 0xE6 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
- { { 0xE0, 0x07, 0x1B }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0xE0, 0x07, 0x1B }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0xE0, 0x07, 0xC2 }, "FujianStarNe", "Fujian Star-Net Communication Co.,Ltd" },
+ { { 0xE0, 0x08, 0x55 }, "AVMAudiovisu", "AVM Audiovisuelles Marketing und Computersysteme GmbH" },
{ { 0xE0, 0x08, 0x71 }, "DongguanLies", "Dongguan Liesheng Electronic Co., Ltd." },
{ { 0xE0, 0x09, 0xBF }, "TONGBOWEITEC", "SHENZHEN TONG BO WEI TECHNOLOGY Co.,LTD" },
{ { 0xE0, 0x0A, 0xF6 }, "LiteonTechno", "Liteon Technology Corporation" },
@@ -32334,6 +32689,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE0, 0x46, 0xE5 }, "GosuncnTechn", "Gosuncn Technology Group Co., Ltd." },
{ { 0xE0, 0x46, 0xEE }, "Netgear", "Netgear" },
{ { 0xE0, 0x47, 0x35 }, "Ericsson", "Ericsson AB" },
+ { { 0xE0, 0x48, 0x24 }, "GarminIntern", "Garmin International" },
{ { 0xE0, 0x48, 0xAF }, "Premietech", "Premietech Limited" },
{ { 0xE0, 0x48, 0xD3 }, "MobiwireMobi", "Mobiwire Mobiles (Ningbo) Co.,Ltd" },
{ { 0xE0, 0x48, 0xD8 }, "GuangzhiWuli", "Guangzhi Wulian Technology(Guangzhou) Co., Ltd" },
@@ -32343,6 +32699,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE0, 0x4B, 0xA6 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xE0, 0x4C, 0x05 }, "EverCharge", "EverCharge" },
{ { 0xE0, 0x4C, 0x12 }, "RealmeChongq", "Realme Chongqing Mobile Telecommunications Corp.,Ltd." },
+ { { 0xE0, 0x4E, 0x7A }, "NanjingQinhe", "Nanjing Qinheng Microelectronics Co., Ltd." },
{ { 0xE0, 0x4F, 0x43 }, "UniversalGlo", "Universal Global Scientific Industrial Co., Ltd." },
{ { 0xE0, 0x4F, 0xBD }, "SichuanTiany", "Sichuan Tianyi Comheart Telecom Co.,LTD" },
{ { 0xE0, 0x50, 0x8B }, "ZhejiangDahu", "Zhejiang Dahua Technology Co., Ltd." },
@@ -32417,6 +32774,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE0, 0x89, 0x9D }, "Cisco", "Cisco Systems, Inc" },
{ { 0xE0, 0x8A, 0x7E }, "Exponent", "Exponent" },
{ { 0xE0, 0x8E, 0x3C }, "AztechElectr", "Aztech Electronics Pte Ltd" },
+ { { 0xE0, 0x8F, 0x4C }, "Intel", "Intel Corporate" },
{ { 0xE0, 0x8F, 0xEC }, "Repotec", "Repotec Co., Ltd." },
{ { 0xE0, 0x91, 0x3C }, "KyeunginCNS", "Kyeungin CNS Co., Ltd." },
{ { 0xE0, 0x91, 0x53 }, "XAViTechnolo", "XAVi Technologies Corp." },
@@ -32457,6 +32815,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE0, 0xAB, 0xFE }, "OrbNetworks", "Orb Networks, Inc." },
{ { 0xE0, 0xAC, 0xCB }, "Apple", "Apple, Inc." },
{ { 0xE0, 0xAC, 0xF1 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0xE0, 0xAD, 0x9B }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xE0, 0xAE, 0x5E }, "Alpsalpine", "Alpsalpine Co,.Ltd" },
{ { 0xE0, 0xAE, 0xA2 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xE0, 0xAE, 0xB2 }, "Bender", "Bender GmbH & Co.KG" },
@@ -32471,6 +32830,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE0, 0xB6, 0x68 }, "zte", "zte corporation" },
{ { 0xE0, 0xB7, 0x0A }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xE0, 0xB7, 0x2E }, "QualmeshTech", "ShenZhen Qualmesh Technology Co.,Ltd." },
+ { { 0xE0, 0xB7, 0x63 }, "BoschAutomot", "Bosch Automotive Products (Suzhou) Co., Ltd. Changzhou Branch" },
{ { 0xE0, 0xB7, 0xB1 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xE0, 0xB9, 0x4D }, "BilianElectr", "Shenzhen Bilian Electronic Co.,Ltd" },
{ { 0xE0, 0xB9, 0x8A }, "Taikeindustr", "Shenzhen Taike industrial automation company,Ltd" },
@@ -32675,6 +33035,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE4, 0x50, 0x9A }, "HWCommunicat", "HW Communications Ltd" },
{ { 0xE4, 0x50, 0xEB }, "Apple", "Apple, Inc." },
{ { 0xE4, 0x52, 0x1E }, "TexasInstrum", "Texas Instruments" },
+ { { 0xE4, 0x54, 0xE5 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xE4, 0x54, 0xE8 }, "Dell", "Dell Inc." },
{ { 0xE4, 0x55, 0xA8 }, "CiscoMeraki", "Cisco Meraki" },
{ { 0xE4, 0x55, 0xEA }, "DedicatedCom", "Dedicated Computing" },
@@ -32685,6 +33046,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE4, 0x58, 0xE7 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xE4, 0x5A, 0xA2 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0xE4, 0x5A, 0xD4 }, "EltexEnterpr", "Eltex Enterprise Ltd." },
+ { { 0xE4, 0x5B, 0xB3 }, "zte", "zte corporation" },
{ { 0xE4, 0x5D, 0x37 }, "JuniperNetwo", "Juniper Networks" },
{ { 0xE4, 0x5D, 0x51 }, "Sfr", "Sfr" },
{ { 0xE4, 0x5D, 0x52 }, "Avaya", "Avaya Inc" },
@@ -32767,6 +33129,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE4, 0x98, 0xBB }, "PhyplusMicro", "Phyplus Microelectronics Limited" },
{ { 0xE4, 0x98, 0xD1 }, "MicrosoftMob", "Microsoft Mobile Oy" },
{ { 0xE4, 0x98, 0xD6 }, "Apple", "Apple, Inc." },
+ { { 0xE4, 0x99, 0x5F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xE4, 0x9A, 0x79 }, "Apple", "Apple, Inc." },
{ { 0xE4, 0x9A, 0xDC }, "Apple", "Apple, Inc." },
{ { 0xE4, 0x9C, 0x67 }, "Apple", "Apple, Inc." },
@@ -32797,6 +33160,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE4, 0xAF, 0xA1 }, "HesSo", "Hes-So" },
{ { 0xE4, 0xB0, 0x05 }, "IQIYIScience", "Beijing IQIYI Science & Technology Co., Ltd." },
{ { 0xE4, 0xB0, 0x21 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0xE4, 0xB0, 0x63 }, "Espressif", "Espressif Inc." },
{ { 0xE4, 0xB2, 0x24 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xE4, 0xB2, 0xFB }, "Apple", "Apple, Inc." },
{ { 0xE4, 0xB3, 0x18 }, "Intel", "Intel Corporate" },
@@ -32836,7 +33200,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE4, 0xD1, 0x24 }, "MojoNetworks", "Mojo Networks, Inc." },
{ { 0xE4, 0xD3, 0x32 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0xE4, 0xD3, 0x73 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
- { { 0xE4, 0xD3, 0xAA }, "FcntLmited", "Fcnt Lmited" },
+ { { 0xE4, 0xD3, 0xAA }, "Fcnt", "Fcnt Llc" },
{ { 0xE4, 0xD3, 0xF1 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xE4, 0xD5, 0x3D }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0xE4, 0xD7, 0x1D }, "OrayaTherape", "Oraya Therapeutics" },
@@ -32919,6 +33283,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0x13, 0x63 }, "ComstockRD", "Comstock RD, Inc." },
{ { 0xE8, 0x13, 0x67 }, "AIRSOUND", "AIRSOUND Inc." },
{ { 0xE8, 0x13, 0x6E }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0xE8, 0x14, 0x99 }, "YoquTechnolo", "Yoqu Technology(Shenzhen)Co.,Ltd." },
{ { 0xE8, 0x15, 0x0E }, "Nokia", "Nokia Corporation" },
{ { 0xE8, 0x16, 0x2B }, "IDEOSecurity", "IDEO Security Co., Ltd." },
{ { 0xE8, 0x16, 0x56 }, "BroadLinkTec", "Hangzhou BroadLink Technology Co.,Ltd" },
@@ -32997,6 +33362,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0x51, 0x9D }, "YeonhabPreci", "Yeonhab Precision Co.,LTD" },
{ { 0xE8, 0x51, 0x9E }, "GuangzhouShi", "Guangzhou Shiyuan Electronic Technology Company Limited" },
{ { 0xE8, 0x54, 0x84 }, "NEOInformati", "NEO Information Systems Co., Ltd." },
+ { { 0xE8, 0x54, 0x97 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xE8, 0x55, 0x40 }, "WuxiFunideDi", "Wuxi Funide Digital Co.,Ltd" },
{ { 0xE8, 0x55, 0xB4 }, "SAITechnolog", "SAI Technology Inc." },
{ { 0xE8, 0x56, 0x59 }, "AdvancedConn", "Advanced-Connectek Inc." },
@@ -33012,6 +33378,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0x5D, 0x86 }, "ChangYowTech", "Chang Yow Technologies International Co.,Ltd." },
{ { 0xE8, 0x5E, 0x53 }, "InfratecDate", "Infratec Datentechnik GmbH" },
{ { 0xE8, 0x5F, 0x02 }, "Apple", "Apple, Inc." },
+ { { 0xE8, 0x5F, 0xB4 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0xE8, 0x61, 0x1F }, "DawningInfor", "Dawning Information Industry Co.,Ltd" },
{ { 0xE8, 0x61, 0x7E }, "LiteonTechno", "Liteon Technology Corporation" },
{ { 0xE8, 0x61, 0x83 }, "BlackDiamond", "Black Diamond Advanced Technology, LLC" },
@@ -33111,6 +33478,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0xA7, 0x30 }, "Apple", "Apple, Inc." },
{ { 0xE8, 0xA7, 0x88 }, "XiamenLeelen", "Xiamen Leelen Technology Co., Ltd" },
{ { 0xE8, 0xA7, 0xF2 }, "sTraffic", "sTraffic" },
+ { { 0xE8, 0xA8, 0x48 }, "Wacom", "Wacom Co.,Ltd." },
{ { 0xE8, 0xAA, 0xCB }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xE8, 0xAB, 0xF3 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xE8, 0xAB, 0xFA }, "ReecamTech", "Shenzhen Reecam Tech.Ltd." },
@@ -33126,6 +33494,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0xB3, 0xEF }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0xE8, 0xB4, 0xAE }, "C&DElectroni", "Shenzhen C&D Electronics Co.,Ltd" },
{ { 0xE8, 0xB4, 0xC8 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0xE8, 0xB5, 0x27 }, "PhyplusTechn", "Phyplus Technology (Shanghai) Co., Ltd" },
{ { 0xE8, 0xB5, 0x41 }, "zte", "zte corporation" },
{ { 0xE8, 0xB5, 0xD0 }, "Dell", "Dell Inc." },
{ { 0xE8, 0xB6, 0xC2 }, "JuniperNetwo", "Juniper Networks" },
@@ -33137,6 +33506,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0xBB, 0xA8 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0xE8, 0xBD, 0xD1 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xE8, 0xBE, 0x81 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
+ { { 0xE8, 0xBF, 0xB8 }, "Intel", "Intel Corporate" },
{ { 0xE8, 0xBF, 0xDB }, "InodesignGro", "Inodesign Group" },
{ { 0xE8, 0xC1, 0xB8 }, "NanjingBangz", "Nanjing Bangzhong Electronic Commerce Limited" },
{ { 0xE8, 0xC1, 0xD7 }, "Philips", "Philips" },
@@ -33225,7 +33595,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0xF3, 0x75 }, "Nokia", "Nokia" },
{ { 0xE8, 0xF4, 0x08 }, "Intel", "Intel Corporate" },
{ { 0xE8, 0xF6, 0x54 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
- { { 0xE8, 0xF7, 0x24 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0xE8, 0xF7, 0x24 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0xE8, 0xF7, 0x2F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xE8, 0xF7, 0x91 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0xE8, 0xF8, 0xD0 }, "NokiaShangha", "Nokia Shanghai Bell Co., Ltd." },
@@ -33452,7 +33822,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xEC, 0x9A, 0x74 }, "HewlettPacka", "Hewlett Packard" },
{ { 0xEC, 0x9B, 0x2D }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
{ { 0xEC, 0x9B, 0x5B }, "Nokia", "Nokia Corporation" },
- { { 0xEC, 0x9B, 0x8B }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0xEC, 0x9B, 0x8B }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0xEC, 0x9B, 0xF3 }, "SamsungElect", "Samsung Electro-Mechanics(Thailand)" },
{ { 0xEC, 0x9C, 0x32 }, "SichuanAILin", "Sichuan AI-Link Technology Co., Ltd." },
{ { 0xEC, 0x9E, 0xCD }, "ArtesynEmbed", "Artesyn Embedded Technologies" },
@@ -33467,6 +33837,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xEC, 0xA8, 0x6B }, "ElitegroupCo", "Elitegroup Computer Systems Co.,Ltd." },
{ { 0xEC, 0xA9, 0x07 }, "Apple", "Apple, Inc." },
{ { 0xEC, 0xA9, 0x40 }, "ARRISGroup", "ARRIS Group, Inc." },
+ { { 0xEC, 0xA9, 0x71 }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
{ { 0xEC, 0xA9, 0xFA }, "GeniusTechno", "Guangdong Genius Technology Co., Ltd." },
{ { 0xEC, 0xAA, 0x25 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xEC, 0xAA, 0x8F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -33502,6 +33873,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xEC, 0xC0, 0x7A }, "LairdConnect", "Laird Connectivity" },
{ { 0xEC, 0xC1, 0xAB }, "GuangzhouShi", "Guangzhou Shiyuan Electronic Technology Company Limited" },
{ { 0xEC, 0xC3, 0x02 }, "HUMAX", "HUMAX Co., Ltd." },
+ { { 0xEC, 0xC3, 0x42 }, "zte", "zte corporation" },
{ { 0xEC, 0xC3, 0x8A }, "Accuenergy", "Accuenergy (CANADA) Inc" },
{ { 0xEC, 0xC3, 0xB0 }, "zte", "zte corporation" },
{ { 0xEC, 0xC4, 0x0D }, "Nintendo", "Nintendo Co.,Ltd" },
@@ -33509,6 +33881,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xEC, 0xC5, 0xD2 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xEC, 0xC8, 0x82 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xEC, 0xC8, 0x9C }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
+ { { 0xEC, 0xC9, 0xFF }, "Espressif", "Espressif Inc." },
{ { 0xEC, 0xCB, 0x30 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xEC, 0xCD, 0x4C }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0xEC, 0xCD, 0x6D }, "AlliedTelesi", "Allied Telesis, Inc." },
@@ -33545,7 +33918,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xEC, 0xE9, 0x15 }, "STI", "STI Ltd" },
{ { 0xEC, 0xE9, 0xF8 }, "GuangZhouTRI", "Guang Zhou TRI-SUN Electronics Technology Co., Ltd" },
{ { 0xEC, 0xEA, 0x03 }, "DarfonLighti", "Darfon Lighting Corp" },
- { { 0xEC, 0xEB, 0xB8 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0xEC, 0xEB, 0xB8 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0xEC, 0xED, 0x73 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0xEC, 0xEE, 0xD8 }, "ZTLXNetworkT", "ZTLX Network Technology Co.,Ltd" },
{ { 0xEC, 0xEF, 0x17 }, "SunplusTechn", "Sunplus Technology Co., Ltd." },
@@ -33569,12 +33942,15 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xEC, 0xFA, 0xBC }, "Espressif", "Espressif Inc." },
{ { 0xEC, 0xFA, 0xF4 }, "SenRaTech", "SenRa Tech Pvt. Ltd" },
{ { 0xEC, 0xFC, 0x55 }, "AEberle", "A. Eberle GmbH & Co. KG" },
+ { { 0xEC, 0xFC, 0xC6 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
{ { 0xEC, 0xFE, 0x7E }, "BlueRadios", "BlueRadios, Inc." },
{ { 0xF0, 0x00, 0x7F }, "JanzContador", "Janz - Contadores de Energia, SA" },
{ { 0xF0, 0x01, 0x6E }, "TianyiTeleco", "Tianyi Telecom Terminals Company Limited" },
{ { 0xF0, 0x02, 0x2B }, "Chrontel", "Chrontel" },
{ { 0xF0, 0x02, 0x48 }, "SmarteBuildi", "SmarteBuilding" },
{ { 0xF0, 0x03, 0x8C }, "AzureWaveTec", "AzureWave Technology Inc." },
+ { { 0xF0, 0x04, 0xE1 }, "Apple", "Apple, Inc." },
+ { { 0xF0, 0x05, 0x1B }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xF0, 0x07, 0x27 }, "InterelBuild", "Interel Building Automation" },
{ { 0xF0, 0x07, 0x86 }, "ShandongBitt", "Shandong Bittel Electronics Co., Ltd" },
{ { 0xF0, 0x08, 0xD1 }, "Espressif", "Espressif Inc." },
@@ -33848,6 +34224,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF0, 0xD7, 0x93 }, "Apple", "Apple, Inc." },
{ { 0xF0, 0xD7, 0xAA }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0xF0, 0xD7, 0xDC }, "WesineTechno", "Wesine (Wuhan) Technology Co., Ltd." },
+ { { 0xF0, 0xD8, 0x05 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xF0, 0xD9, 0xB2 }, "Exo", "Exo S.A." },
{ { 0xF0, 0xDA, 0x7C }, "RlhIndustrie", "Rlh Industries,Inc." },
{ { 0xF0, 0xDB, 0x30 }, "Yottabyte", "Yottabyte" },
@@ -33860,6 +34237,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF0, 0xE3, 0xDC }, "TeconMT", "Tecon MT, LLC" },
{ { 0xF0, 0xE4, 0xA2 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xF0, 0xE5, 0xC3 }, "DrägerwerkaA", "Drägerwerk AG & Co. KG aA" },
+ { { 0xF0, 0xE7, 0x52 }, "HuajuxinSemi", "Shenzhen Huajuxin Semiconductor Co.,ltd" },
{ { 0xF0, 0xE7, 0x7E }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xF0, 0xEB, 0xD0 }, "FeixunCommun", "Shanghai Feixun Communication Co.,Ltd." },
{ { 0xF0, 0xEC, 0x39 }, "Essec", "Essec" },
@@ -33895,6 +34273,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF0, 0xF8, 0xF2 }, "TexasInstrum", "Texas Instruments" },
{ { 0xF0, 0xF9, 0xF7 }, "IES", "IES GmbH & Co. KG" },
{ { 0xF0, 0xFA, 0xC7 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
+ { { 0xF0, 0xFC, 0x65 }, "SynaXGTechno", "SynaXG Technologies Pte. Ltd." },
{ { 0xF0, 0xFC, 0xC8 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xF0, 0xFD, 0xA0 }, "AcurixNetwor", "Acurix Networks Pty Ltd" },
{ { 0xF0, 0xFD, 0xDD }, "FoxtronVehic", "Foxtron Vehicle Technologies Co., Ltd." },
@@ -33908,7 +34287,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF4, 0x03, 0x21 }, "BeNeXt", "BeNeXt B.V." },
{ { 0xF4, 0x03, 0x2A }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0xF4, 0x03, 0x2F }, "Reduxio", "Reduxio Systems" },
- { { 0xF4, 0x03, 0x43 }, "HewlettPacka", "Hewlett Packard Enterprise" },
+ { { 0xF4, 0x03, 0x43 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
{ { 0xF4, 0x04, 0x4C }, "ValenceTech", "ValenceTech Limited" },
{ { 0xF4, 0x05, 0x95 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0xF4, 0x06, 0x16 }, "Apple", "Apple, Inc." },
@@ -33946,6 +34325,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF4, 0x1F, 0x88 }, "zte", "zte corporation" },
{ { 0xF4, 0x1F, 0xC2 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xF4, 0x20, 0x12 }, "Cuciniale", "Cuciniale GmbH" },
+ { { 0xF4, 0x20, 0x15 }, "GuangzhouShi", "Guangzhou Shiyuan Electronic Technology Company Limited" },
{ { 0xF4, 0x21, 0xAE }, "XiaoduTechno", "Shanghai Xiaodu Technology Limited" },
{ { 0xF4, 0x21, 0xCA }, "Apple", "Apple, Inc." },
{ { 0xF4, 0x22, 0x7A }, "SeneasyIntel", "Guangdong Seneasy Intelligent Technology Co., Ltd." },
@@ -34017,6 +34397,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF4, 0x50, 0xEB }, "Telechips", "Telechips Inc" },
{ { 0xF4, 0x52, 0x14 }, "MellanoxTech", "Mellanox Technologies, Inc." },
{ { 0xF4, 0x52, 0x46 }, "AskeyCompute", "Askey Computer Corp" },
+ { { 0xF4, 0x52, 0x93 }, "Apple", "Apple, Inc." },
{ { 0xF4, 0x54, 0x20 }, "TellescomInd", "Tellescom Industria E Comercio Em Telecomunicacao" },
{ { 0xF4, 0x54, 0x24 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
{ { 0xF4, 0x54, 0x33 }, "RockwellAuto", "Rockwell Automation" },
@@ -34058,6 +34439,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF4, 0x6D, 0xE2 }, "zte", "zte corporation" },
{ { 0xF4, 0x6E, 0x24 }, "NECPersonalC", "NEC Personal Computers, Ltd." },
{ { 0xF4, 0x6E, 0x95 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
+ { { 0xF4, 0x6E, 0xD6 }, "EMMicroelect", "EM Microelectronic" },
{ { 0xF4, 0x6F, 0x4E }, "Echowell", "Echowell" },
{ { 0xF4, 0x6F, 0xA4 }, "PhysikInstru", "Physik Instrumente GmbH & Co. KG" },
{ { 0xF4, 0x6F, 0xED }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
@@ -34065,6 +34447,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF4, 0x71, 0x90 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xF4, 0x73, 0x35 }, "LogitechFarE", "Logitech Far East" },
{ { 0xF4, 0x73, 0xCA }, "ConversionSo", "Conversion Sound Inc." },
+ { { 0xF4, 0x74, 0x70 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xF4, 0x74, 0x88 }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0xF4, 0x76, 0x26 }, "ViltechmedaU", "Viltechmeda UAB" },
{ { 0xF4, 0x79, 0x46 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -34104,6 +34487,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF4, 0x97, 0xC2 }, "Nebulon", "Nebulon Inc" },
{ { 0xF4, 0x99, 0xAC }, "WEBERSchraub", "WEBER Schraubautomaten GmbH" },
{ { 0xF4, 0x9C, 0x12 }, "Structab", "Structab AB" },
+ { { 0xF4, 0x9D, 0x8A }, "FantasiaTrad", "Fantasia Trading LLC" },
{ { 0xF4, 0x9E, 0xEF }, "TaicangT&WEl", "Taicang T&W Electronics" },
{ { 0xF4, 0x9F, 0x54 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xF4, 0x9F, 0xF3 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -34360,6 +34744,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF8, 0x4C, 0xDA }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xF8, 0x4D, 0x33 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0xF8, 0x4D, 0x89 }, "Apple", "Apple, Inc." },
+ { { 0xF8, 0x4D, 0x8B }, "ecamtek", "ecamtek" },
{ { 0xF8, 0x4D, 0xFC }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
{ { 0xF8, 0x4E, 0x17 }, "Sony", "Sony Corporation" },
{ { 0xF8, 0x4E, 0x58 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -34425,6 +34810,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF8, 0x72, 0xEA }, "Cisco", "Cisco Systems, Inc" },
{ { 0xF8, 0x73, 0x94 }, "Netgear", "Netgear" },
{ { 0xF8, 0x73, 0xA2 }, "Avaya", "Avaya Inc" },
+ { { 0xF8, 0x73, 0xDF }, "Apple", "Apple, Inc." },
{ { 0xF8, 0x75, 0x88 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xF8, 0x75, 0xA4 }, "LCFCElectron", "LCFC(HeFei) Electronics Technology co., ltd" },
{ { 0xF8, 0x76, 0x9B }, "Neopis", "Neopis Co., Ltd." },
@@ -34459,6 +34845,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF8, 0x8E, 0x85 }, "Comtrend", "Comtrend Corporation" },
{ { 0xF8, 0x8E, 0xA1 }, "EdgecoreNetw", "Edgecore Networks Corporation" },
{ { 0xF8, 0x8F, 0x07 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0xF8, 0x8F, 0xC8 }, "ChipseaTechn", "Chipsea Technologies (Shenzhen) Corp." },
{ { 0xF8, 0x8F, 0xCA }, "Google", "Google, Inc." },
{ { 0xF8, 0x90, 0x66 }, "Nain", "Nain Inc." },
{ { 0xF8, 0x91, 0x2A }, "GLPGermanLig", "GLP German Light Products GmbH" },
@@ -34547,6 +34934,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF8, 0xC3, 0x97 }, "NZXT", "NZXT Corp. Ltd." },
{ { 0xF8, 0xC3, 0x9E }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xF8, 0xC3, 0xCC }, "Apple", "Apple, Inc." },
+ { { 0xF8, 0xC3, 0xF1 }, "RaytronPhoto", "Raytron Photonics Co.,Ltd." },
{ { 0xF8, 0xC4, 0xAE }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0xF8, 0xC4, 0xF3 }, "InfinityWire", "Shanghai Infinity Wireless Technologies Co.,Ltd." },
{ { 0xF8, 0xC4, 0xFA }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
@@ -34558,6 +34946,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF8, 0xCA, 0xB8 }, "Dell", "Dell Inc." },
{ { 0xF8, 0xCC, 0x6E }, "DEPOElectron", "DEPO Electronics Ltd" },
{ { 0xF8, 0xCD, 0xC8 }, "SichuanTiany", "Sichuan Tianyi Comheart Telecom Co.,LTD" },
+ { { 0xF8, 0xCE, 0x07 }, "ZhejiangDahu", "Zhejiang Dahua Technologyco.,Ltd" },
{ { 0xF8, 0xCE, 0x72 }, "Wistron", "Wistron Corporation" },
{ { 0xF8, 0xCF, 0xC5 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0xF8, 0xD0, 0x27 }, "SeikoEpson", "Seiko Epson Corporation" },
@@ -34647,6 +35036,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xFA, 0xE1, 0x90 }, "InWinDevelop", "In Win Development Inc." },
{ { 0xFA, 0xE5, 0x1A }, "RSAELabs", "RSAE Labs Inc" },
{ { 0xFA, 0xEB, 0x6E }, "xRANorg", "xRAN.org" },
+ { { 0xFA, 0xEE, 0xB6 }, "JiahuaZhongl", "Shenzhen Jiahua Zhongli Technology Co., LTD" },
{ { 0xFA, 0xF9, 0xC0 }, "RAID", "RAID Incorporated" },
{ { 0xFC, 0x00, 0x12 }, "ToshibaSamsu", "Toshiba Samsung Storage Technolgoy Korea Corporation" },
{ { 0xFC, 0x01, 0x7C }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
@@ -34786,7 +35176,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xFC, 0x5B, 0x39 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xFC, 0x5B, 0x8C }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0xFC, 0x5C, 0x45 }, "RuckusWirele", "Ruckus Wireless" },
- { { 0xFC, 0x5C, 0xEE }, "LCFCElectron", "LCFC(Hefei) Electronics Technology co., ltd" },
+ { { 0xFC, 0x5C, 0xEE }, "LCFCElectron", "LCFC(HeFei) Electronics Technology co., ltd" },
{ { 0xFC, 0x5F, 0x49 }, "ZhejiangDahu", "Zhejiang Dahua Technology Co., Ltd." },
{ { 0xFC, 0x60, 0x18 }, "ZhejiangKang", "Zhejiang Kangtai Electric Co., Ltd." },
{ { 0xFC, 0x60, 0x9B }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
@@ -34846,6 +35236,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xFC, 0x8F, 0xC4 }, "IntelligentT", "Intelligent Technology Inc." },
{ { 0xFC, 0x90, 0xFA }, "IndependentT", "Independent Technologies" },
{ { 0xFC, 0x91, 0x14 }, "VantivaUSA", "Vantiva USA LLC" },
+ { { 0xFC, 0x91, 0x5D }, "Google", "Google, Inc." },
{ { 0xFC, 0x91, 0x89 }, "SichuanTiany", "Sichuan Tianyi Comheart Telecom Co.,LTD" },
{ { 0xFC, 0x92, 0x3B }, "Nokia", "Nokia Corporation" },
{ { 0xFC, 0x92, 0x57 }, "RenesasElect", "Renesas Electronics (Penang) Sdn. Bhd." },
@@ -34857,6 +35248,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xFC, 0x95, 0x6A }, "Octagon", "Octagon Systems Corp." },
{ { 0xFC, 0x96, 0x43 }, "JuniperNetwo", "Juniper Networks" },
{ { 0xFC, 0x97, 0xA8 }, "Cricut", "Cricut Inc." },
+ { { 0xFC, 0x98, 0x16 }, "Alpsalpine", "Alpsalpine Co,.Ltd" },
{ { 0xFC, 0x99, 0x47 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xFC, 0x9A, 0xFA }, "MotusGlobal", "Motus Global Inc." },
{ { 0xFC, 0x9B, 0xC6 }, "SumavisionTe", "Sumavision Technologies Co.,Ltd" },
@@ -35076,7 +35468,7 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x04, 0xC3, 0xE6, 0xB0 }, "FlintecUK", "Flintec UK Ltd." },
{ { 0x04, 0xC3, 0xE6, 0xC0 }, "ShantouYings", "Shantou Yingsheng Import & Export Trading Co.,Ltd." },
{ { 0x04, 0xC3, 0xE6, 0xD0 }, "Amiosec", "Amiosec Ltd" },
- { { 0x04, 0xC3, 0xE6, 0xE0 }, "Teleepoch", "Teleepoch Ltd" },
+ { { 0x04, 0xC3, 0xE6, 0xE0 }, "GreatTalentT", "Great Talent Technology Limited" },
{ { 0x04, 0xD1, 0x6E, 0x00 }, "INTRIPLE", "INTRIPLE, a.s." },
{ { 0x04, 0xD1, 0x6E, 0x10 }, "LaunchTech", "Launch Tech Co., Ltd." },
{ { 0x04, 0xD1, 0x6E, 0x20 }, "sdi", "s.d.i. s.p.a." },
@@ -35122,6 +35514,21 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x08, 0x26, 0xAE, 0xC0 }, "BrannstromSw", "Brannstrom Sweden AB" },
{ { 0x08, 0x26, 0xAE, 0xD0 }, "VethPropulsi", "Veth Propulsion bv" },
{ { 0x08, 0x26, 0xAE, 0xE0 }, "MassElectron", "Mass Electronics Pty Ltd" },
+ { { 0x08, 0x63, 0x32, 0x00 }, "Eaton", "Eaton Corporation" },
+ { { 0x08, 0x63, 0x32, 0x10 }, "eCloudTechno", "Shanghai eCloud Technologies Co.,ltd" },
+ { { 0x08, 0x63, 0x32, 0x20 }, "innovativesp", "innovative specialized security solutions" },
+ { { 0x08, 0x63, 0x32, 0x30 }, "UmanoMedical", "Umano Medical Inc." },
+ { { 0x08, 0x63, 0x32, 0x40 }, "KELIBANGInfo", "Beijing KELIBANG Information technology Co.,LTD" },
+ { { 0x08, 0x63, 0x32, 0x50 }, "APaulSoftwar", "A Paul Software Systems Pvt. Ltd." },
+ { { 0x08, 0x63, 0x32, 0x60 }, "OVTIndia", "OVT India pvt Ltd" },
+ { { 0x08, 0x63, 0x32, 0x70 }, "SoftwareAuto", "Software-Automation-Control Joint Stock Company (Cadpro., Jsc)" },
+ { { 0x08, 0x63, 0x32, 0x80 }, "inhub", "in.hub GmbH" },
+ { { 0x08, 0x63, 0x32, 0x90 }, "TZMedical", "TZMedical Inc." },
+ { { 0x08, 0x63, 0x32, 0xA0 }, "DynacomCommu", "Dynacom Communication" },
+ { { 0x08, 0x63, 0x32, 0xB0 }, "YuanXiangDig", "ShenZhen YuanXiang Digital Technology Co., Ltd" },
+ { { 0x08, 0x63, 0x32, 0xC0 }, "Swiftronix", "Swiftronix AB" },
+ { { 0x08, 0x63, 0x32, 0xD0 }, "akYtec", "akYtec GmbH" },
+ { { 0x08, 0x63, 0x32, 0xE0 }, "CVueAudioTec", "C-Vue (Shanghai) Audio Technology Co.,Ltd" },
{ { 0x08, 0xED, 0x02, 0x00 }, "D2SLink", "D2SLink Systems" },
{ { 0x08, 0xED, 0x02, 0x10 }, "Imperx", "Imperx, Inc" },
{ { 0x08, 0xED, 0x02, 0x20 }, "TESTouchEmbe", "TES Touch Embedded Solutions Inc." },
@@ -35150,7 +35557,7 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x08, 0xF8, 0x0D, 0xA0 }, "MickeyIndust", "Mickey Industry,Ltd." },
{ { 0x08, 0xF8, 0x0D, 0xB0 }, "VontInnovati", "Vont Innovations" },
{ { 0x08, 0xF8, 0x0D, 0xC0 }, "ZmbiziApp", "Zmbizi App Llc" },
- { { 0x08, 0xF8, 0x0D, 0xD0 }, "ZhejiangEvTe", "Zhejiang Ev-Tech.,Ltd" },
+ { { 0x08, 0xF8, 0x0D, 0xD0 }, "ZheJiangEVTe", "Zhe Jiang EV-Tech Co.,Ltd" },
{ { 0x08, 0xF8, 0x0D, 0xE0 }, "SuzhouSidiIn", "Suzhou Sidi Information Technology Co., Ltd." },
{ { 0x0C, 0x5C, 0xB5, 0x00 }, "Yamasei", "Yamasei" },
{ { 0x0C, 0x5C, 0xB5, 0x10 }, "avxavElectro", "avxav Electronic Trading LLC" },
@@ -35321,7 +35728,7 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x14, 0x1F, 0xBA, 0x20 }, "DeutscheEner", "Deutsche Energieversorgung GmbH" },
{ { 0x14, 0x1F, 0xBA, 0x40 }, "Byzero", "Byzero" },
{ { 0x14, 0x1F, 0xBA, 0x50 }, "InttelixBras", "Inttelix Brasil Tecnologia e Sistemas Ltda" },
- { { 0x14, 0x1F, 0xBA, 0x60 }, "ThalesCommun", "Thales Communications & Security SAS" },
+ { { 0x14, 0x1F, 0xBA, 0x60 }, "RevenueColle", "Revenue Collection Systems France SAS" },
{ { 0x14, 0x1F, 0xBA, 0x70 }, "WisnetworksT", "Wisnetworks Technologies Co., Ltd." },
{ { 0x14, 0x1F, 0xBA, 0x80 }, "CATICInforma", "Shenzhen CATIC Information Technology Industry Co.,Ltd" },
{ { 0x14, 0x1F, 0xBA, 0x90 }, "BlackMothTec", "Black Moth Technologies" },
@@ -36106,6 +36513,21 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x34, 0x29, 0x8F, 0xC0 }, "AlbertHandtm", "Albert Handtmann Maschinenfabrik GmbH&Co.KG" },
{ { 0x34, 0x29, 0x8F, 0xD0 }, "KeystoneElec", "Keystone Electronic Solutions" },
{ { 0x34, 0x29, 0x8F, 0xE0 }, "ARCTechnolog", "ARC Technology Co., Ltd" },
+ { { 0x34, 0xC8, 0xD6, 0x00 }, "ZhangyueTech", "Shenzhen Zhangyue Technology Co., Ltd" },
+ { { 0x34, 0xC8, 0xD6, 0x10 }, "XmitechElect", "Shenzhen Xmitech Electronic Co.,Ltd" },
+ { { 0x34, 0xC8, 0xD6, 0x20 }, "GuangzhouLin", "Guangzhou Linkpi Technology Co. Ltd" },
+ { { 0x34, 0xC8, 0xD6, 0x30 }, "kratosnetwor", "kratos network pte.ltd." },
+ { { 0x34, 0xC8, 0xD6, 0x40 }, "Decentesttec", "Chengdu Decentest technology Co., Ltd." },
+ { { 0x34, 0xC8, 0xD6, 0x50 }, "PrizmaGroupD", "Prizma Group Distribution & Consulting D.O.O - Rubisec" },
+ { { 0x34, 0xC8, 0xD6, 0x60 }, "Signalwing", "Signalwing Corporation" },
+ { { 0x34, 0xC8, 0xD6, 0x70 }, "ZXCLAATechno", "ZXCLAA Technology(Suzhou) Co.,Ltd" },
+ { { 0x34, 0xC8, 0xD6, 0x80 }, "Illumina", "Illumina" },
+ { { 0x34, 0xC8, 0xD6, 0x90 }, "LaxtonGroup", "Laxton Group Limited" },
+ { { 0x34, 0xC8, 0xD6, 0xA0 }, "JooanTechnol", "Shenzhen Jooan Technology Co., Ltd" },
+ { { 0x34, 0xC8, 0xD6, 0xB0 }, "YuanzhouInte", "Yuanzhou Intelligent (Shenzhen) Co., Ltd." },
+ { { 0x34, 0xC8, 0xD6, 0xC0 }, "HuizhouKDTIn", "Huizhou KDT Intelligent Display Technology Co. Ltd" },
+ { { 0x34, 0xC8, 0xD6, 0xD0 }, "eight", "eight" },
+ { { 0x34, 0xC8, 0xD6, 0xE0 }, "CDElectronic", "Shenzhen C & D Electronics Co., Ltd." },
{ { 0x34, 0xD0, 0xB8, 0x00 }, "Captec", "Captec Ltd" },
{ { 0x34, 0xD0, 0xB8, 0x10 }, "BaoLaiWeiInt", "Shenzhen Bao Lai Wei Intelligent Technology Co., L" },
{ { 0x34, 0xD0, 0xB8, 0x20 }, "Blustream", "Blustream Pty Ltd" },
@@ -36412,7 +36834,7 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x40, 0xF3, 0x85, 0x50 }, "KatoEngineer", "Kato Engineering Inc." },
{ { 0x40, 0xF3, 0x85, 0x60 }, "LennoxIntern", "Lennox International Incorporated" },
{ { 0x40, 0xF3, 0x85, 0x70 }, "PalazzettiLe", "Palazzetti Lelio Spa" },
- { { 0x40, 0xF3, 0x85, 0x80 }, "Teleepoch", "Teleepoch Ltd" },
+ { { 0x40, 0xF3, 0x85, 0x80 }, "GreatTalentT", "Great Talent Technology Limited" },
{ { 0x40, 0xF3, 0x85, 0x90 }, "FastPrecisio", "Fast Precision Technologies Co. Ltd." },
{ { 0x40, 0xF3, 0x85, 0xA0 }, "Creanord", "Creanord" },
{ { 0x40, 0xF3, 0x85, 0xB0 }, "URMETHomeBui", "URMET Home & Building Solutions Pty Ltd" },
@@ -36524,6 +36946,21 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x48, 0xDA, 0x35, 0xC0 }, "GuangzhouXin", "Guangzhou Xinhong Communication Technology Co.,Ltd" },
{ { 0x48, 0xDA, 0x35, 0xD0 }, "Nacon", "Nacon Limited (Hk) Ltd" },
{ { 0x48, 0xDA, 0x35, 0xE0 }, "NepsTechnolo", "Neps Technologies Private Limited" },
+ { { 0x48, 0xE6, 0x63, 0x00 }, "HuaqianBeiji", "Huaqian Beijing Technology Co., Ltd" },
+ { { 0x48, 0xE6, 0x63, 0x10 }, "NanningNisli", "Nanning Nislight Communication Technology Co.,Ltd.," },
+ { { 0x48, 0xE6, 0x63, 0x20 }, "JingdongQian", "Beijing Jingdong Qianshi Technology Co.,Ltd." },
+ { { 0x48, 0xE6, 0x63, 0x30 }, "Makerfabs", "Makerfabs" },
+ { { 0x48, 0xE6, 0x63, 0x40 }, "SmileSecurit", "Smile Security and Survillence Private Limited" },
+ { { 0x48, 0xE6, 0x63, 0x50 }, "HoypowerEner", "Hoypower Energy Co.,Ltd" },
+ { { 0x48, 0xE6, 0x63, 0x60 }, "HuabaoNewEne", "Shenzhen Huabao New Energy Co.,Ltd" },
+ { { 0x48, 0xE6, 0x63, 0x70 }, "EarweissTech", "Earweiss Technology (Shenzhen) Co,. Ltd" },
+ { { 0x48, 0xE6, 0x63, 0x80 }, "PeichengTech", "Shenzhen Peicheng Technology Co., LTD." },
+ { { 0x48, 0xE6, 0x63, 0x90 }, "AceZoneAps", "AceZone Aps" },
+ { { 0x48, 0xE6, 0x63, 0xA0 }, "JointelliTec", "Shenzhen Jointelli Technologies Co.,Ltd" },
+ { { 0x48, 0xE6, 0x63, 0xB0 }, "NakamuraTome", "Nakamura-Tome Precision Industry Co.,Ltd." },
+ { { 0x48, 0xE6, 0x63, 0xC0 }, "CunyinChengq", "Beijing Cunyin Chengqi Technology Co., Ltd." },
+ { { 0x48, 0xE6, 0x63, 0xD0 }, "Neureality", "Neureality ltd" },
+ { { 0x48, 0xE6, 0x63, 0xE0 }, "MatriboxInte", "Matribox Intelligent Technology co.Ltd." },
{ { 0x4C, 0x4B, 0xF9, 0x00 }, "MultitekElek", "Multitek Elektronik Sanayi ve Ticaret A.S." },
{ { 0x4C, 0x4B, 0xF9, 0x10 }, "Jiangsuacrel", "Jiangsu acrel Co., Ltd." },
{ { 0x4C, 0x4B, 0xF9, 0x20 }, "HommProTechn", "Shenzhen HommPro Technology Co.,Ltd" },
@@ -37004,6 +37441,21 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x60, 0x95, 0xCE, 0xC0 }, "Synamedia", "Synamedia" },
{ { 0x60, 0x95, 0xCE, 0xD0 }, "GovComm", "GovComm" },
{ { 0x60, 0x95, 0xCE, 0xE0 }, "VNS", "VNS Inc." },
+ { { 0x60, 0xA4, 0x34, 0x00 }, "Uniqon", "Uniqon" },
+ { { 0x60, 0xA4, 0x34, 0x10 }, "EEGEnterpris", "EEG Enterprises Inc" },
+ { { 0x60, 0xA4, 0x34, 0x20 }, "Zhongxinhuil", "Hangzhou Zhongxinhui lntelligent Technology Co.,Ltd." },
+ { { 0x60, 0xA4, 0x34, 0x30 }, "lncarTechnol", "Shenzhen lncar Technology Co.,Ltd" },
+ { { 0x60, 0xA4, 0x34, 0x40 }, "HumanlifeInf", "Human-life Information Platforms Institute" },
+ { { 0x60, 0xA4, 0x34, 0x50 }, "LanlyTechnol", "Hangzhou Lanly Technology Co., Ltd." },
+ { { 0x60, 0xA4, 0x34, 0x60 }, "LechpolElect", "Lechpol Electronics Leszek Sp.k." },
+ { { 0x60, 0xA4, 0x34, 0x70 }, "DrovTechnolo", "Drov Technologies" },
+ { { 0x60, 0xA4, 0x34, 0x80 }, "TimeEngineer", "Time Engineering Co., Ltd." },
+ { { 0x60, 0xA4, 0x34, 0x90 }, "HantangFengy", "Shenzhen HantangFengyun Technology Co.,Ltd" },
+ { { 0x60, 0xA4, 0x34, 0xA0 }, "Scancom", "Scancom" },
+ { { 0x60, 0xA4, 0x34, 0xB0 }, "BweetechElec", "Bweetech Electronics Technology (Shanghai) Co.,Ltd" },
+ { { 0x60, 0xA4, 0x34, 0xC0 }, "Annapurnalab", "Annapurna labs" },
+ { { 0x60, 0xA4, 0x34, 0xD0 }, "Kaynestechno", "Kaynes technology India Ltd" },
+ { { 0x60, 0xA4, 0x34, 0xE0 }, "Knvision", "Knvision" },
{ { 0x60, 0xD7, 0xE3, 0x00 }, "Avalun", "Avalun" },
{ { 0x60, 0xD7, 0xE3, 0x10 }, "Elap", "Elap s.r.l." },
{ { 0x60, 0xD7, 0xE3, 0x20 }, "Novoinnovati", "Novo innovations Ltd" },
@@ -37481,10 +37933,19 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x78, 0xD8, 0x00, 0xE0 }, "CLInternatio", "CL International" },
{ { 0x78, 0xE9, 0x96, 0x00 }, "EeguardTechn", "Shenzhen Eeguard Technology Co.,Limited" },
{ { 0x78, 0xE9, 0x96, 0x10 }, "CogitoTech", "Cogito Tech Company Limited" },
+ { { 0x78, 0xE9, 0x96, 0x20 }, "StiebelEltro", "Stiebel Eltron Gmbh & Co. Kg" },
+ { { 0x78, 0xE9, 0x96, 0x30 }, "ACL", "ACL Co.,Ltd." },
{ { 0x78, 0xE9, 0x96, 0x40 }, "JinHaoMiTech", "Shenzhen Jin Hao Mi Technology Co., LTD" },
{ { 0x78, 0xE9, 0x96, 0x50 }, "ChuangmingFu", "Chuangming Futre Technology Co., Ltd." },
+ { { 0x78, 0xE9, 0x96, 0x60 }, "Kilews", "Kilews" },
{ { 0x78, 0xE9, 0x96, 0x70 }, "BeisitElectr", "Beisit Electric Tech(Hangzhou)Co.,Ltd." },
+ { { 0x78, 0xE9, 0x96, 0x80 }, "ZhitingTechn", "Shenzhen Zhiting Technology Co.,Ltd" },
{ { 0x78, 0xE9, 0x96, 0x90 }, "AtmSolutions", "Atm Solutions" },
+ { { 0x78, 0xE9, 0x96, 0xA0 }, "Farbenlnform", "Shenzhen Farben lnformation Technology CO.,Ltd." },
+ { { 0x78, 0xE9, 0x96, 0xB0 }, "CelAudioTech", "CelAudio (Beijing) Technology Inc" },
+ { { 0x78, 0xE9, 0x96, 0xC0 }, "GarantirTech", "Garantir Technologies Private Limited" },
+ { { 0x78, 0xE9, 0x96, 0xD0 }, "LorchSchweis", "Lorch Schweisstechnik GmbH" },
+ { { 0x78, 0xE9, 0x96, 0xE0 }, "BitaInternat", "Bita-International Co.,Ltd" },
{ { 0x7C, 0x45, 0xF9, 0x00 }, "SENSeOR", "SENSeOR" },
{ { 0x7C, 0x45, 0xF9, 0x10 }, "HunanShengyu", "Hunan Shengyun Photoelectric Technology Co., LTD" },
{ { 0x7C, 0x45, 0xF9, 0x20 }, "DongguanBoyy", "Dongguan Boyye Industrial Co., Ltd" },
@@ -37627,6 +38088,21 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x80, 0x7B, 0x85, 0xC0 }, "SCALADigital", "SCALA Digital Technology(Ningbo) CO, LTD" },
{ { 0x80, 0x7B, 0x85, 0xD0 }, "KaynesTechno", "Kaynes Technology India Pvt Ltd" },
{ { 0x80, 0x7B, 0x85, 0xE0 }, "Mersen", "Mersen" },
+ { { 0x80, 0xA5, 0x79, 0x00 }, "Benano", "Benano Inc." },
+ { { 0x80, 0xA5, 0x79, 0x10 }, "ZheJiangEVTe", "Zhe Jiang EV-Tech Co.,Ltd" },
+ { { 0x80, 0xA5, 0x79, 0x20 }, "Jiangsuwonde", "Jiangsu wonder-working electric co., LTD" },
+ { { 0x80, 0xA5, 0x79, 0x30 }, "ToolTemp", "Tool-Temp AG" },
+ { { 0x80, 0xA5, 0x79, 0x40 }, "HardenedNetw", "Hardened Networks" },
+ { { 0x80, 0xA5, 0x79, 0x50 }, "PotronTechno", "Potron Technology Co.,Ltd.," },
+ { { 0x80, 0xA5, 0x79, 0x60 }, "XiamenPinnac", "Xiamen Pinnacle Electrical Co., Ltd" },
+ { { 0x80, 0xA5, 0x79, 0x70 }, "SiemensEnerg", "Siemens Energy Global GmbH & Co. KG" },
+ { { 0x80, 0xA5, 0x79, 0x80 }, "Di3InfotechL", "Di3 Infotech Llp" },
+ { { 0x80, 0xA5, 0x79, 0x90 }, "Yovil", "Yovil Ltd." },
+ { { 0x80, 0xA5, 0x79, 0xA0 }, "ViewSonic", "ViewSonic Corp" },
+ { { 0x80, 0xA5, 0x79, 0xB0 }, "GroundContro", "Ground Control Technologies UK Ltd." },
+ { { 0x80, 0xA5, 0x79, 0xC0 }, "BluArmor", "BluArmor" },
+ { { 0x80, 0xA5, 0x79, 0xD0 }, "ProvinceIvsu", "Guangdong Province Ivsuan technology co., ltd" },
+ { { 0x80, 0xA5, 0x79, 0xE0 }, "UnpluggedTec", "Unplugged Technologies Ltd." },
{ { 0x80, 0xE4, 0xDA, 0x00 }, "Wheatstone", "Wheatstone Corporation" },
{ { 0x80, 0xE4, 0xDA, 0x10 }, "GuangzhouPin", "Guangzhou Pinzhong Electronic Technology CO., LTD" },
{ { 0x80, 0xE4, 0xDA, 0x20 }, "ThurlbyThand", "Thurlby Thandar Instruments LTD" },
@@ -37945,7 +38421,7 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x8C, 0xA6, 0x82, 0x40 }, "ChinaInforma", "China Information Technology Designing&Consulting Institute Co., Ltd." },
{ { 0x8C, 0xA6, 0x82, 0x50 }, "QstarTechnol", "Qstar Technology Co,Ltd" },
{ { 0x8C, 0xA6, 0x82, 0x60 }, "HuijueNetwor", "ShangHai Huijue Network Communication Equipment CO., Ltd." },
- { { 0x8C, 0xA6, 0x82, 0x70 }, "CanpointEduc", "Wuhan Canpoint Education&Technology Co.,Ltd" },
+ { { 0x8C, 0xA6, 0x82, 0x70 }, "Anhuiseekere", "Anhui seeker electronic technology Co.,LTD" },
{ { 0x8C, 0xA6, 0x82, 0x80 }, "Schok", "Schok LLC" },
{ { 0x8C, 0xA6, 0x82, 0x90 }, "BarkodesBilg", "Barkodes Bilgisayar Sistemleri Bilgi Iletisim ve Y" },
{ { 0x8C, 0xA6, 0x82, 0xA0 }, "Schok", "Schok LLC" },
@@ -37983,10 +38459,24 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x8C, 0xC8, 0xF4, 0xC0 }, "KSTARScience", "Shenzhen KSTAR Science and Technology Co., Ltd" },
{ { 0x8C, 0xC8, 0xF4, 0xD0 }, "Xinxunxinton", "Beijing Xinxunxintong Eletronics Co.,Ltd" },
{ { 0x8C, 0xC8, 0xF4, 0xE0 }, "EvaporcoolSo", "Evaporcool Solutions" },
+ { { 0x90, 0x15, 0x64, 0x00 }, "Fengzhushou", "Fengzhushou Co., Ltd." },
+ { { 0x90, 0x15, 0x64, 0x20 }, "PinGenieDbaL", "Pin Genie, Inc.Dba Lockly" },
+ { { 0x90, 0x15, 0x64, 0x30 }, "ClintonElect", "Clinton Electronics Corporation" },
+ { { 0x90, 0x15, 0x64, 0x40 }, "KontaktMicro", "Kontakt Micro-Location Sp z o.o." },
+ { { 0x90, 0x15, 0x64, 0x50 }, "Relectrify", "Relectrify Pty Ltd" },
+ { { 0x90, 0x15, 0x64, 0x60 }, "final", "final Inc." },
+ { { 0x90, 0x15, 0x64, 0x70 }, "SystemTechno", "Hangzhou System Technology Co.,Ltd" },
+ { { 0x90, 0x15, 0x64, 0x80 }, "Heliogen", "Heliogen" },
+ { { 0x90, 0x15, 0x64, 0x90 }, "Annapurnalab", "Annapurna labs" },
+ { { 0x90, 0x15, 0x64, 0xA0 }, "BunkaShutter", "Bunka Shutter Co., Ltd." },
+ { { 0x90, 0x15, 0x64, 0xB0 }, "AMP&MOONSAut", "Shanghai AMP&MOONS'Automation Co.,Ltd." },
+ { { 0x90, 0x15, 0x64, 0xC0 }, "Linak", "Linak A/S" },
+ { { 0x90, 0x15, 0x64, 0xD0 }, "JiangsuKangj", "Jiangsu Kangjie Data Co., Ltd." },
+ { { 0x90, 0x15, 0x64, 0xE0 }, "GuiyagElectr", "Guiyag Electrlcal Control Equipment Co.,Ltd" },
{ { 0x90, 0x4E, 0x91, 0x00 }, "Spirtech", "Spirtech" },
{ { 0x90, 0x4E, 0x91, 0x10 }, "ApolloVideoT", "Apollo Video Technology" },
{ { 0x90, 0x4E, 0x91, 0x20 }, "NorthPoleEng", "North Pole Engineering, Inc." },
- { { 0x90, 0x4E, 0x91, 0x30 }, "Teleepoch", "Teleepoch Ltd" },
+ { { 0x90, 0x4E, 0x91, 0x30 }, "GreatTalentT", "Great Talent Technology Limited" },
{ { 0x90, 0x4E, 0x91, 0x40 }, "Wrtnodetechn", "Wrtnode technology Inc." },
{ { 0x90, 0x4E, 0x91, 0x50 }, "mcf88", "mcf88 SRL" },
{ { 0x90, 0x4E, 0x91, 0x60 }, "NuwaRobotics", "Nuwa Robotics (HK) Limited Taiwan Branch" },
@@ -38997,6 +39487,21 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0xC4, 0xA5, 0x59, 0xC0 }, "AltamSl", "Altam Systems Sl" },
{ { 0xC4, 0xA5, 0x59, 0xD0 }, "MinoltaSecur", "Minolta Security" },
{ { 0xC4, 0xA5, 0x59, 0xE0 }, "SernetTechno", "Sernet (Suzhou) Technologies Corporation" },
+ { { 0xC4, 0xCC, 0x37, 0x00 }, "KAIS", "KAIS Co.,Ltd." },
+ { { 0xC4, 0xCC, 0x37, 0x10 }, "TaiwanInproI", "Taiwan Inpro International Co.Ltd" },
+ { { 0xC4, 0xCC, 0x37, 0x20 }, "CixTechnolog", "Cix Technology Inc." },
+ { { 0xC4, 0xCC, 0x37, 0x30 }, "QingdaoGoert", "Qingdao Goertek Intelligent Sensor Co.,Ltd" },
+ { { 0xC4, 0xCC, 0x37, 0x40 }, "PineberryPi", "Pineberry Pi" },
+ { { 0xC4, 0xCC, 0x37, 0x50 }, "Changzhourun", "Changzhou runningtech industrial technology Co., Ltd." },
+ { { 0xC4, 0xCC, 0x37, 0x60 }, "SafetySystem", "Safety System Product GmbH & Co. KG" },
+ { { 0xC4, 0xCC, 0x37, 0x70 }, "VicinityTech", "Vicinity Technologies Limited" },
+ { { 0xC4, 0xCC, 0x37, 0x80 }, "SmartLicht", "SmartLicht systems co., ltd" },
+ { { 0xC4, 0xCC, 0x37, 0x90 }, "SkychersCrea", "Skychers Creations ShenZhen Limited" },
+ { { 0xC4, 0xCC, 0x37, 0xA0 }, "INPAQTechnol", "INPAQ Technology Co., Ltd" },
+ { { 0xC4, 0xCC, 0x37, 0xB0 }, "DRSNavalPowe", "DRS Naval Power Systems, Inc." },
+ { { 0xC4, 0xCC, 0x37, 0xC0 }, "CHAINTECHTec", "CHAINTECH Technology Corp." },
+ { { 0xC4, 0xCC, 0x37, 0xD0 }, "NetavoGlobal", "Netavo Global Data Services Ltd" },
+ { { 0xC4, 0xCC, 0x37, 0xE0 }, "JobyAviation", "Joby Aviation, Inc." },
{ { 0xC4, 0xFF, 0xBC, 0x00 }, "Danego", "Danego BV" },
{ { 0xC4, 0xFF, 0xBC, 0x10 }, "VisatechC0", "Visatech C0., Ltd." },
{ { 0xC4, 0xFF, 0xBC, 0x20 }, "MobiletronEl", "Mobiletron Electronics Co., Ltd" },
@@ -39116,6 +39621,9 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0xC8, 0xF5, 0xD6, 0xC0 }, "Eltako", "Eltako GmbH" },
{ { 0xC8, 0xF5, 0xD6, 0xD0 }, "Volansystech", "Volansys technologies pvt ltd" },
{ { 0xC8, 0xF5, 0xD6, 0xE0 }, "Heitec", "Heitec Ag" },
+ { { 0xC8, 0xFF, 0xBF, 0x20 }, "CognizantMob", "Cognizant Mobility GmbH" },
+ { { 0xC8, 0xFF, 0xBF, 0x40 }, "Jingyibeifan", "Beijing Jingyibeifang Instrument Co.,Ltd." },
+ { { 0xC8, 0xFF, 0xBF, 0xA0 }, "MaestroFood", "Maestro Food Co." },
{ { 0xCC, 0x1B, 0xE0, 0x00 }, "MicrotechSys", "Microtech System,Inc" },
{ { 0xCC, 0x1B, 0xE0, 0x10 }, "Daotongtianx", "Beijing Daotongtianxia Co.Ltd." },
{ { 0xCC, 0x1B, 0xE0, 0x20 }, "iTrinetech", "i-Trinetech Co.,Ltd." },
@@ -42408,7 +42916,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x00, 0x50, 0xC2, 0x88, 0x30 }, "NeocontrolSo", "Neocontrol Soluções em Automação" },
{ { 0x00, 0x50, 0xC2, 0x88, 0x40 }, "IPThinking", "IP Thinking A/S" },
{ { 0x00, 0x50, 0xC2, 0x88, 0x50 }, "OooNtkImos", "Ooo \"Ntk \"Imos\"" },
- { { 0x00, 0x50, 0xC2, 0x88, 0x60 }, "WartsilaVoya", "Wartsila Voyage Limited" },
+ { { 0x00, 0x50, 0xC2, 0x88, 0x60 }, "WartsilaVoya", "Wartsila Voyage Oy" },
{ { 0x00, 0x50, 0xC2, 0x88, 0x70 }, "InventisTech", "Inventis Technology Pty Limited" },
{ { 0x00, 0x50, 0xC2, 0x88, 0x80 }, "IAdea", "IAdea Corporation" },
{ { 0x00, 0x50, 0xC2, 0x88, 0x90 }, "ACSMotionCon", "ACS Motion Control Ltd." },
@@ -43719,7 +44227,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x00, 0x50, 0xC2, 0xDA, 0xC0 }, "RFLElectroni", "RFL Electronics, Inc." },
{ { 0x00, 0x50, 0xC2, 0xDA, 0xD0 }, "KeithKoep", "Keith & Koep GmbH" },
{ { 0x00, 0x50, 0xC2, 0xDA, 0xE0 }, "SpangPowerEl", "Spang Power Electronics" },
- { { 0x00, 0x50, 0xC2, 0xDA, 0xF0 }, "eumigindustr", "eumig industrie-tv GmbH" },
+ { { 0x00, 0x50, 0xC2, 0xDA, 0xF0 }, "eumigindustr", "eumig industrie-TV GmbH." },
{ { 0x00, 0x50, 0xC2, 0xDB, 0x00 }, "IMAGOTechnol", "IMAGO Technologies GmbH" },
{ { 0x00, 0x50, 0xC2, 0xDB, 0x10 }, "RFCode", "RF Code" },
{ { 0x00, 0x50, 0xC2, 0xDB, 0x20 }, "SoftwareCann", "SoftwareCannery" },
@@ -43758,7 +44266,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x00, 0x50, 0xC2, 0xDD, 0x30 }, "Rohde&Schwar", "Rohde&Schwarz Topex SA" },
{ { 0x00, 0x50, 0xC2, 0xDD, 0x40 }, "Systech", "Systech" },
{ { 0x00, 0x50, 0xC2, 0xDD, 0x50 }, "FriendSpring", "Friend Spring Industrial Co., Ltd." },
- { { 0x00, 0x50, 0xC2, 0xDD, 0x60 }, "WartsilaVoya", "Wartsila Voyage Limited" },
+ { { 0x00, 0x50, 0xC2, 0xDD, 0x60 }, "WartsilaVoya", "Wartsila Voyage Oy" },
{ { 0x00, 0x50, 0xC2, 0xDD, 0x70 }, "TornadoModul", "Tornado Modular Systems" },
{ { 0x00, 0x50, 0xC2, 0xDD, 0x80 }, "LeonardoUK", "Leonardo UK Ltd" },
{ { 0x00, 0x50, 0xC2, 0xDD, 0x90 }, "Metraware", "Metraware" },
@@ -44557,7 +45065,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x40, 0xD8, 0x55, 0x0F, 0x90 }, "InvisuaLight", "Invisua Lighting BV" },
{ { 0x40, 0xD8, 0x55, 0x0F, 0xA0 }, "Marmitek", "Marmitek BV" },
{ { 0x40, 0xD8, 0x55, 0x0F, 0xB0 }, "InfoMacSpzoo", "InfoMac Sp. z o. o. Sp. k." },
- { { 0x40, 0xD8, 0x55, 0x0F, 0xC0 }, "eumigindustr", "eumig industrie-tv GmbH" },
+ { { 0x40, 0xD8, 0x55, 0x0F, 0xC0 }, "eumigindustr", "eumig industrie-TV GmbH." },
{ { 0x40, 0xD8, 0x55, 0x0F, 0xD0 }, "MONOGRAMtech", "MONOGRAM technologies ltd" },
{ { 0x40, 0xD8, 0x55, 0x0F, 0xE0 }, "CytechTechno", "Cytech Technology Pte Ltd" },
{ { 0x40, 0xD8, 0x55, 0x0F, 0xF0 }, "YUYAMAMFG", "YUYAMA MFG Co.,Ltd" },
@@ -45557,7 +46065,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x70, 0xB3, 0xD5, 0x30, 0x10 }, "WayneAnalyti", "Wayne Analytics Llc" },
{ { 0x70, 0xB3, 0xD5, 0x30, 0x20 }, "DogWatch", "DogWatch Inc" },
{ { 0x70, 0xB3, 0xD5, 0x30, 0x30 }, "FuchuGiken", "Fuchu Giken, Inc." },
- { { 0x70, 0xB3, 0xD5, 0x30, 0x40 }, "WartsilaVoya", "Wartsila Voyage Limited" },
+ { { 0x70, 0xB3, 0xD5, 0x30, 0x40 }, "WartsilaVoya", "Wartsila Voyage Oy" },
{ { 0x70, 0xB3, 0xD5, 0x30, 0x50 }, "CAITRONIndus", "CAITRON Industrial Solutions GmbH" },
{ { 0x70, 0xB3, 0xD5, 0x30, 0x60 }, "LemzT", "Lemz-T, Llc" },
{ { 0x70, 0xB3, 0xD5, 0x30, 0x70 }, "Energiinnova", "Energi innovation Aps" },
@@ -47118,7 +47626,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x70, 0xB3, 0xD5, 0x92, 0x00 }, "Slat", "Slat" },
{ { 0x70, 0xB3, 0xD5, 0x92, 0x10 }, "QDevil", "QDevil" },
{ { 0x70, 0xB3, 0xD5, 0x92, 0x20 }, "AdcoleSpace", "Adcole Space" },
- { { 0x70, 0xB3, 0xD5, 0x92, 0x30 }, "eumigindustr", "eumig industrie-tv GmbH" },
+ { { 0x70, 0xB3, 0xD5, 0x92, 0x30 }, "eumigindustr", "eumig industrie-TV GmbH." },
{ { 0x70, 0xB3, 0xD5, 0x92, 0x40 }, "MeridianTech", "Meridian Technologies Inc" },
{ { 0x70, 0xB3, 0xD5, 0x92, 0x50 }, "DiamanteLigh", "Diamante Lighting Srl" },
{ { 0x70, 0xB3, 0xD5, 0x92, 0x60 }, "Advice", "Advice" },
@@ -47295,7 +47803,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x70, 0xB3, 0xD5, 0x9D, 0x10 }, "OS42UG", "OS42 UG (haftungsbeschraenkt)" },
{ { 0x70, 0xB3, 0xD5, 0x9D, 0x20 }, "AcsMotionCon", "Acs Motion Control" },
{ { 0x70, 0xB3, 0xD5, 0x9D, 0x30 }, "Communicatio", "Communication Technology Ltd." },
- { { 0x70, 0xB3, 0xD5, 0x9D, 0x40 }, "WartsilaVoya", "Wartsila Voyage Limited" },
+ { { 0x70, 0xB3, 0xD5, 0x9D, 0x40 }, "WartsilaVoya", "Wartsila Voyage Oy" },
{ { 0x70, 0xB3, 0xD5, 0x9D, 0x50 }, "SouthernTier", "Southern Tier Technologies" },
{ { 0x70, 0xB3, 0xD5, 0x9D, 0x60 }, "CrownSolarPo", "Crown Solar Power Fencing Systems" },
{ { 0x70, 0xB3, 0xD5, 0x9D, 0x70 }, "KMOptoElektr", "KM OptoElektronik GmbH" },
@@ -47343,7 +47851,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x70, 0xB3, 0xD5, 0xA0, 0x20 }, "GreenFlux", "GreenFlux" },
{ { 0x70, 0xB3, 0xD5, 0xA0, 0x30 }, "Proemion", "Proemion GmbH" },
{ { 0x70, 0xB3, 0xD5, 0xA0, 0x40 }, "GaleaElectri", "Galea Electric S.L." },
- { { 0x70, 0xB3, 0xD5, 0xA0, 0x50 }, "WartsilaVoya", "Wartsila Voyage Limited" },
+ { { 0x70, 0xB3, 0xD5, 0xA0, 0x50 }, "WartsilaVoya", "Wartsila Voyage Oy" },
{ { 0x70, 0xB3, 0xD5, 0xA0, 0x60 }, "KopisMobile", "Kopis Mobile LLC" },
{ { 0x70, 0xB3, 0xD5, 0xA0, 0x70 }, "IoTrekTechno", "IoTrek Technology Private Limited" },
{ { 0x70, 0xB3, 0xD5, 0xA0, 0x80 }, "BioBusiness", "BioBusiness" },
@@ -47563,7 +48071,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x70, 0xB3, 0xD5, 0xAD, 0xF0 }, "SeraphimOptr", "Seraphim Optronics Ltd" },
{ { 0x70, 0xB3, 0xD5, 0xAE, 0x00 }, "AnyComm", "AnyComm.Co.,Ltd." },
{ { 0x70, 0xB3, 0xD5, 0xAE, 0x10 }, "DimoCore", "DimoCore Corporation" },
- { { 0x70, 0xB3, 0xD5, 0xAE, 0x20 }, "WartsilaVoya", "Wartsila Voyage Limited" },
+ { { 0x70, 0xB3, 0xD5, 0xAE, 0x20 }, "WartsilaVoya", "Wartsila Voyage Oy" },
{ { 0x70, 0xB3, 0xD5, 0xAE, 0x30 }, "ZhejiangWell", "Zhejiang Wellsun Electric Meter Co.,Ltd" },
{ { 0x70, 0xB3, 0xD5, 0xAE, 0x40 }, "NuanceHearin", "Nuance Hearing Ltd." },
{ { 0x70, 0xB3, 0xD5, 0xAE, 0x50 }, "BeatCraft", "BeatCraft, Inc." },
@@ -48574,7 +49082,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x70, 0xB3, 0xD5, 0xED, 0x50 }, "battlelinkte", "hangzhou battle link technology Co.,Ltd" },
{ { 0x70, 0xB3, 0xD5, 0xED, 0x60 }, "Metrasens", "Metrasens Limited" },
{ { 0x70, 0xB3, 0xD5, 0xED, 0x70 }, "Wave", "Wave" },
- { { 0x70, 0xB3, 0xD5, 0xED, 0x80 }, "WartsilaVoya", "Wartsila Voyage Limited" },
+ { { 0x70, 0xB3, 0xD5, 0xED, 0x80 }, "WartsilaVoya", "Wartsila Voyage Oy" },
{ { 0x70, 0xB3, 0xD5, 0xED, 0x90 }, "AADONACommun", "AADONA Communication Pvt Ltd" },
{ { 0x70, 0xB3, 0xD5, 0xED, 0xA0 }, "BreasMedical", "Breas Medical AB" },
{ { 0x70, 0xB3, 0xD5, 0xED, 0xB0 }, "NetfortSolut", "Netfort Solutions" },
@@ -48871,8 +49379,10 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x00, 0x00 }, "SuzhouXingxi", "Suzhou Xingxiangyi Precision Manufacturing Co.,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x00, 0x30 }, "BrightenCont", "Brighten Controls LLP" },
{ { 0x8C, 0x1F, 0x64, 0x00, 0x90 }, "Converging", "Converging Systems Inc." },
+ { { 0x8C, 0x1F, 0x64, 0x00, 0xA0 }, "TaskUnite", "TaskUnite Inc. (dba AMPAworks)" },
{ { 0x8C, 0x1F, 0x64, 0x00, 0xC0 }, "GuanShowTech", "Guan Show Technologe Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x01, 0x10 }, "DEUTAWERKE", "DEUTA-WERKE GmbH" },
+ { { 0x8C, 0x1F, 0x64, 0x01, 0x40 }, "CristalContr", "Cristal Controles Ltee" },
{ { 0x8C, 0x1F, 0x64, 0x01, 0x70 }, "Farmote", "Farmote Limited" },
{ { 0x8C, 0x1F, 0x64, 0x01, 0xA0 }, "Paragraf", "Paragraf" },
{ { 0x8C, 0x1F, 0x64, 0x01, 0xE0 }, "SCIREQScient", "SCIREQ Scientific Respiratory Equipment Inc" },
@@ -48883,6 +49393,8 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x02, 0x90 }, "HunanShengyu", "Hunan Shengyun Photoelectric Technology Co.,LTD" },
{ { 0x8C, 0x1F, 0x64, 0x02, 0xF0 }, "SOLIDpower", "SOLIDpower SpA" },
{ { 0x8C, 0x1F, 0x64, 0x03, 0x30 }, "IQHomeKft", "IQ Home Kft." },
+ { { 0x8C, 0x1F, 0x64, 0x03, 0x50 }, "RealWear", "RealWear" },
+ { { 0x8C, 0x1F, 0x64, 0x03, 0xB0 }, "OrionPower", "Orion Power Systems, Inc." },
{ { 0x8C, 0x1F, 0x64, 0x03, 0xC0 }, "SonaBusiness", "Sona Business B.V." },
{ { 0x8C, 0x1F, 0x64, 0x03, 0xD0 }, "Horizon", "Horizon.Inc" },
{ { 0x8C, 0x1F, 0x64, 0x04, 0x20 }, "Heitec", "Heitec Ag" },
@@ -48907,8 +49419,10 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x06, 0xB0 }, "SanwaSupply", "Sanwa Supply Inc." },
{ { 0x8C, 0x1F, 0x64, 0x06, 0xD0 }, "Monnit", "Monnit Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x07, 0x10 }, "DorletSau", "Dorlet Sau" },
+ { { 0x8C, 0x1F, 0x64, 0x07, 0x60 }, "PackR", "Pack'R" },
{ { 0x8C, 0x1F, 0x64, 0x07, 0x70 }, "EngageTechno", "Engage Technologies" },
{ { 0x8C, 0x1F, 0x64, 0x07, 0xA0 }, "FlextronicsI", "Flextronics International Kft" },
+ { { 0x8C, 0x1F, 0x64, 0x07, 0xD0 }, "TalleresdeEs", "Talleres de Escoriaza SAU" },
{ { 0x8C, 0x1F, 0x64, 0x07, 0xE0 }, "FLOYD", "FLOYD inc." },
{ { 0x8C, 0x1F, 0x64, 0x07, 0xF0 }, "GSDGroup", "G.S.D Group Inc." },
{ { 0x8C, 0x1F, 0x64, 0x08, 0x00 }, "Twinleaf", "Twinleaf LLC" },
@@ -48932,6 +49446,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x09, 0xD0 }, "FlextronicsI", "Flextronics International Kft" },
{ { 0x8C, 0x1F, 0x64, 0x09, 0xE0 }, "IWSGlobal", "IWS Global Pty Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x09, 0xF0 }, "MBconnectlin", "MB connect line GmbH Fernwartungssysteme" },
+ { { 0x8C, 0x1F, 0x64, 0x0A, 0x00 }, "Techniwave", "Techniwave" },
{ { 0x8C, 0x1F, 0x64, 0x0A, 0x40 }, "DynamicResea", "Dynamic Research, Inc." },
{ { 0x8C, 0x1F, 0x64, 0x0A, 0x80 }, "SamabaNova", "SamabaNova Systems" },
{ { 0x8C, 0x1F, 0x64, 0x0A, 0xA0 }, "Di3InfotechL", "Di3 Infotech Llp" },
@@ -48972,6 +49487,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x10, 0x30 }, "Kronotech", "Kronotech Srl" },
{ { 0x8C, 0x1F, 0x64, 0x10, 0x50 }, "AixControl", "AixControl GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x10, 0x70 }, "SCITechnolog", "SCI Technology, Inc." },
+ { { 0x8C, 0x1F, 0x64, 0x10, 0xB0 }, "RedLionEurop", "Red Lion Europe GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x11, 0x00 }, "XianLinkingB", "Xian Linking Backhaul Telecom Technology Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x11, 0x10 }, "Isac", "Isac Srl" },
{ { 0x8C, 0x1F, 0x64, 0x11, 0x30 }, "TimberlineMa", "Timberline Manufacturing" },
@@ -48980,6 +49496,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x11, 0x70 }, "Grossenbache", "Grossenbacher Systeme AG" },
{ { 0x8C, 0x1F, 0x64, 0x11, 0x80 }, "Automata", "Automata GmbH & Co. KG" },
{ { 0x8C, 0x1F, 0x64, 0x11, 0x90 }, "FoxconnTechn", "Foxconn Technology Co., Ltd." },
+ { { 0x8C, 0x1F, 0x64, 0x11, 0xE0 }, "InfosoftDigi", "Infosoft Digital Design and Services P L" },
{ { 0x8C, 0x1F, 0x64, 0x11, 0xF0 }, "NodeUDesign", "NodeUDesign" },
{ { 0x8C, 0x1F, 0x64, 0x12, 0x60 }, "HarvestTechn", "Harvest Technology Pty Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x12, 0x80 }, "YulistaInteg", "Yulista Integrated Solution" },
@@ -48989,6 +49506,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x13, 0x30 }, "Vtron", "Vtron Pty Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x13, 0x50 }, "YuvalFichman", "Yuval Fichman" },
{ { 0x8C, 0x1F, 0x64, 0x13, 0x80 }, "Vissavisp", "Vissavi sp. z o.o." },
+ { { 0x8C, 0x1F, 0x64, 0x13, 0xC0 }, "SiFive", "SiFive Inc" },
{ { 0x8C, 0x1F, 0x64, 0x13, 0xF0 }, "Elsist", "Elsist Srl" },
{ { 0x8C, 0x1F, 0x64, 0x14, 0x10 }, "CodeBlue", "Code Blue Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x14, 0x40 }, "LangfangENNl", "Langfang ENN lntelligent Technology Co.,Ltd." },
@@ -49037,6 +49555,8 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x1B, 0xF0 }, "Ossia", "Ossia Inc" },
{ { 0x8C, 0x1F, 0x64, 0x1C, 0x00 }, "INVENTIASp", "INVENTIA Sp. z o.o." },
{ { 0x8C, 0x1F, 0x64, 0x1C, 0x20 }, "SolidInventL", "Solid Invent Ltda." },
+ { { 0x8C, 0x1F, 0x64, 0x1C, 0x90 }, "Pneumax", "Pneumax Spa" },
+ { { 0x8C, 0x1F, 0x64, 0x1C, 0xA0 }, "PowerElectro", "Power Electronics Espana, S.L." },
{ { 0x8C, 0x1F, 0x64, 0x1C, 0xB0 }, "SASYSeK", "SASYS e.K." },
{ { 0x8C, 0x1F, 0x64, 0x1C, 0xE0 }, "Eiden", "Eiden Co.,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x1D, 0x00 }, "MBconnectlin", "MB connect line GmbH Fernwartungssysteme" },
@@ -49068,6 +49588,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x21, 0xE0 }, "Bionetics", "The Bionetics Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x22, 0x40 }, "PHBEletronic", "PHB Eletronica Ltda." },
{ { 0x8C, 0x1F, 0x64, 0x22, 0x70 }, "Digilens", "Digilens" },
+ { { 0x8C, 0x1F, 0x64, 0x22, 0xD0 }, "KaysonsElect", "Kaysons Electricals Private Limited" },
{ { 0x8C, 0x1F, 0x64, 0x22, 0xE0 }, "JideCarRastr", "Jide Car Rastreamento e Monitoramento LTDA" },
{ { 0x8C, 0x1F, 0x64, 0x23, 0x20 }, "Monnit", "Monnit Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x23, 0xD0 }, "MokilaNetwor", "Mokila Networks Pvt Ltd" },
@@ -49081,17 +49602,21 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x25, 0x20 }, "TYTElectroni", "TYT Electronics CO., LTD" },
{ { 0x8C, 0x1F, 0x64, 0x25, 0x40 }, "ZhuhaiYunzho", "Zhuhai Yunzhou Intelligence Technology Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x25, 0x60 }, "Landinger", "Landinger" },
+ { { 0x8C, 0x1F, 0x64, 0x25, 0x70 }, "FourBarsDesi", "Four Bars Design" },
{ { 0x8C, 0x1F, 0x64, 0x25, 0xA0 }, "XingtuxinkeE", "Wuhan Xingtuxinke ELectronic Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x25, 0xC0 }, "TimeMachines", "TimeMachines Inc." },
{ { 0x8C, 0x1F, 0x64, 0x25, 0xE0 }, "R2Sonic", "R2Sonic, LLC" },
+ { { 0x8C, 0x1F, 0x64, 0x25, 0xF0 }, "Acuris", "Acuris Inc" },
{ { 0x8C, 0x1F, 0x64, 0x26, 0x30 }, "EPCPower", "EPC Power Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x26, 0x40 }, "BRVossIngenj", "BR. Voss Ingenjörsfirma AB" },
{ { 0x8C, 0x1F, 0x64, 0x26, 0x70 }, "KarlDUNGS", "Karl DUNGS GmbH & Co. KG" },
{ { 0x8C, 0x1F, 0x64, 0x26, 0x80 }, "AstroMachine", "Astro Machine Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x26, 0xE0 }, "KoizumiLight", "Koizumi Lighting Technology Corp." },
{ { 0x8C, 0x1F, 0x64, 0x27, 0x00 }, "Xi‘anHanggua", "Xi‘an Hangguang Satellite and Control Technology Co.,Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x27, 0x30 }, "Distran", "Distran AG" },
{ { 0x8C, 0x1F, 0x64, 0x27, 0x40 }, "InvixiumAcce", "Invixium Access Inc" },
{ { 0x8C, 0x1F, 0x64, 0x27, 0xB0 }, "Oriux", "Oriux" },
+ { { 0x8C, 0x1F, 0x64, 0x28, 0x00 }, "Heitec", "Heitec Ag" },
{ { 0x8C, 0x1F, 0x64, 0x28, 0x10 }, "NvpTeco", "Nvp Teco Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x28, 0x60 }, "i2s", "i2s" },
{ { 0x8C, 0x1F, 0x64, 0x28, 0x90 }, "Craft4Digita", "Craft4 Digital GmbH" },
@@ -49100,10 +49625,12 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x28, 0xD0 }, "AVAMonitorin", "AVA Monitoring AB" },
{ { 0x8C, 0x1F, 0x64, 0x29, 0x20 }, "GogoBusiness", "Gogo Business Aviation" },
{ { 0x8C, 0x1F, 0x64, 0x29, 0x30 }, "LandisGyrEqu", "Landis+Gyr Equipamentos de Medição Ltda" },
+ { { 0x8C, 0x1F, 0x64, 0x29, 0x40 }, "nanoTRONIXCo", "nanoTRONIX Computing Inc." },
{ { 0x8C, 0x1F, 0x64, 0x29, 0x60 }, "RoogzhitongT", "Roog zhi tong Technology(Beijing) Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x29, 0x80 }, "MeggerGerman", "Megger Germany GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x29, 0xF0 }, "Nagtech", "Nagtech Llc" },
{ { 0x8C, 0x1F, 0x64, 0x2A, 0x10 }, "PantherunTec", "Pantherun Technologies Pvt Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x2A, 0x40 }, "YUYAMAMFG", "YUYAMA MFG Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x2A, 0x50 }, "Nonet", "Nonet Inc" },
{ { 0x8C, 0x1F, 0x64, 0x2A, 0x60 }, "RadiationSol", "Radiation Solutions Inc." },
{ { 0x8C, 0x1F, 0x64, 0x2A, 0x80 }, "SHALARMSECUR", "SHALARM SECURITY Co.,LTD" },
@@ -49113,6 +49640,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x2B, 0x80 }, "Veinland", "Veinland GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x2B, 0xB0 }, "ChakraTechno", "Chakra Technology Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x2B, 0xC0 }, "DEUTAWerke", "DEUTA Werke GmbH" },
+ { { 0x8C, 0x1F, 0x64, 0x2B, 0xF0 }, "GogoBusiness", "Gogo Business Aviation" },
{ { 0x8C, 0x1F, 0x64, 0x2C, 0x20 }, "TexComputer", "Tex Computer Srl" },
{ { 0x8C, 0x1F, 0x64, 0x2C, 0x30 }, "TeraDiodePan", "TeraDiode / Panasonic" },
{ { 0x8C, 0x1F, 0x64, 0x2C, 0x50 }, "Sysn", "Sysn" },
@@ -49120,6 +49648,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x2C, 0x70 }, "ContraltoAud", "Contralto Audio Srl" },
{ { 0x8C, 0x1F, 0x64, 0x2C, 0x80 }, "BRSSistemasE", "BRS Sistemas Eletrônicos" },
{ { 0x8C, 0x1F, 0x64, 0x2C, 0xB0 }, "SmartCompone", "Smart Component Technologies Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x2C, 0xC0 }, "SBS", "SBS SpA" },
{ { 0x8C, 0x1F, 0x64, 0x2C, 0xD0 }, "TaiwanVtron", "Taiwan Vtron" },
{ { 0x8C, 0x1F, 0x64, 0x2C, 0xE0 }, "E2Nova", "E2 Nova Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x2D, 0x00 }, "CambridgeRes", "Cambridge Research Systems Ltd" },
@@ -49133,6 +49662,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x2E, 0x80 }, "SonoraNetwor", "Sonora Network Solutions" },
{ { 0x8C, 0x1F, 0x64, 0x2E, 0xF0 }, "Invisense", "Invisense AB" },
{ { 0x8C, 0x1F, 0x64, 0x2F, 0x00 }, "SwitchScienc", "Switch Science, Inc." },
+ { { 0x8C, 0x1F, 0x64, 0x2F, 0x10 }, "DEUTAWerke", "DEUTA Werke GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x2F, 0x20 }, "EnlessWirele", "Enless Wireless" },
{ { 0x8C, 0x1F, 0x64, 0x2F, 0x50 }, "FloridaR&DAs", "Florida R&D Associates LLC" },
{ { 0x8C, 0x1F, 0x64, 0x2F, 0xB0 }, "MBconnectlin", "MB connect line GmbH Fernwartungssysteme" },
@@ -49147,9 +49677,11 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x30, 0x90 }, "Mect", "Mect Srl" },
{ { 0x8C, 0x1F, 0x64, 0x30, 0xA0 }, "XCOMLabs", "XCOM Labs" },
{ { 0x8C, 0x1F, 0x64, 0x30, 0xD0 }, "FlextronicsI", "Flextronics International Kft" },
+ { { 0x8C, 0x1F, 0x64, 0x30, 0xE0 }, "TangentDesig", "Tangent Design Engineering" },
{ { 0x8C, 0x1F, 0x64, 0x31, 0x40 }, "Cedel", "Cedel BV" },
{ { 0x8C, 0x1F, 0x64, 0x31, 0x60 }, "PotterElectr", "Potter Electric Signal Company" },
{ { 0x8C, 0x1F, 0x64, 0x31, 0x70 }, "BacancyLLP", "Bacancy Systems LLP" },
+ { { 0x8C, 0x1F, 0x64, 0x31, 0x90 }, "Exato", "Exato Company" },
{ { 0x8C, 0x1F, 0x64, 0x31, 0xA0 }, "Asiga", "Asiga Pty Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x31, 0xB0 }, "jointanalyti", "joint analytical systems GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x31, 0xC0 }, "Accumetrics", "Accumetrics" },
@@ -49166,26 +49698,32 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x33, 0x40 }, "OutdoorLink", "OutdoorLink" },
{ { 0x8C, 0x1F, 0x64, 0x33, 0x80 }, "RheingoldHea", "Rheingold Heavy LLC" },
{ { 0x8C, 0x1F, 0x64, 0x33, 0xC0 }, "HubrisTechno", "Hubris Technologies Private Limited" },
+ { { 0x8C, 0x1F, 0x64, 0x33, 0xD0 }, "ArrowElectro", "Arrow (China) Electronics Trading Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x34, 0x20 }, "TimeMachines", "TimeMachines Inc." },
+ { { 0x8C, 0x1F, 0x64, 0x34, 0x70 }, "Plutdoo", "Plut d.o.o." },
{ { 0x8C, 0x1F, 0x64, 0x34, 0x90 }, "WavesSystem", "Waves System" },
{ { 0x8C, 0x1F, 0x64, 0x34, 0xB0 }, "InfraredInsp", "Infrared Inspection Systems" },
{ { 0x8C, 0x1F, 0x64, 0x34, 0xC0 }, "KyushuKeisok", "Kyushu Keisokki Co.,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x34, 0xD0 }, "biosilver", "biosilver.co.,ltd" },
{ { 0x8C, 0x1F, 0x64, 0x34, 0xF0 }, "SystecDesign", "Systec Designs BV" },
{ { 0x8C, 0x1F, 0x64, 0x35, 0x00 }, "biosilver", "biosilver.co.,ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x35, 0x20 }, "Mediashare", "Mediashare Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x35, 0x40 }, "PaulTagliamo", "Paul Tagliamonte" },
{ { 0x8C, 0x1F, 0x64, 0x35, 0x80 }, "DensoManufac", "Denso Manufacturing Tennessee" },
{ { 0x8C, 0x1F, 0x64, 0x35, 0xC0 }, "OpgalOptroni", "Opgal Optronic Industries ltd" },
{ { 0x8C, 0x1F, 0x64, 0x35, 0xD0 }, "Security&Bes", "Security&Best" },
{ { 0x8C, 0x1F, 0x64, 0x36, 0x20 }, "PowerElectro", "Power Electronics Espana, S.L." },
+ { { 0x8C, 0x1F, 0x64, 0x36, 0x40 }, "TilakInterna", "Tilak International" },
{ { 0x8C, 0x1F, 0x64, 0x36, 0x50 }, "VectorTechno", "Vector Technologies, Llc" },
{ { 0x8C, 0x1F, 0x64, 0x36, 0x60 }, "MBconnectlin", "MB connect line GmbH Fernwartungssysteme" },
{ { 0x8C, 0x1F, 0x64, 0x36, 0x70 }, "LAMTECMessun", "LAMTEC Mess- und Regeltechnik für Feuerungen GmbH & Co. KG" },
{ { 0x8C, 0x1F, 0x64, 0x36, 0x90 }, "OrbitalAstro", "Orbital Astronautics Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x36, 0xA0 }, "INVENTIS", "INVENTIS S.r.l." },
+ { { 0x8C, 0x1F, 0x64, 0x36, 0xB0 }, "ViewSonic", "ViewSonic Corp" },
{ { 0x8C, 0x1F, 0x64, 0x36, 0xE0 }, "AbbottDiagno", "Abbott Diagnostics Technologies AS" },
{ { 0x8C, 0x1F, 0x64, 0x37, 0x00 }, "WOLFAdvanced", "WOLF Advanced Technology" },
{ { 0x8C, 0x1F, 0x64, 0x37, 0x20 }, "WINKStreamin", "WINK Streaming" },
+ { { 0x8C, 0x1F, 0x64, 0x37, 0x50 }, "Duevi", "Duevi Srl" },
{ { 0x8C, 0x1F, 0x64, 0x37, 0x60 }, "DIASInfrared", "DIAS Infrared GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x37, 0x80 }, "sparPowerTec", "spar Power Technologies Inc." },
{ { 0x8C, 0x1F, 0x64, 0x37, 0xF0 }, "ScarletTech", "Scarlet Tech Co., Ltd." },
@@ -49198,10 +49736,12 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x38, 0xB0 }, "BorrellUSA", "Borrell USA Corp" },
{ { 0x8C, 0x1F, 0x64, 0x38, 0xC0 }, "XiamenZhixia", "Xiamen Zhixiaojin Intelligent Technology Co., Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x38, 0xD0 }, "WilsonElectr", "Wilson Electronics" },
- { { 0x8C, 0x1F, 0x64, 0x38, 0xE0 }, "WartsilaVoya", "Wartsila Voyage Limited" },
+ { { 0x8C, 0x1F, 0x64, 0x38, 0xE0 }, "WartsilaVoya", "Wartsila Voyage Oy" },
+ { { 0x8C, 0x1F, 0x64, 0x38, 0xF0 }, "Unabiz", "Unabiz" },
{ { 0x8C, 0x1F, 0x64, 0x39, 0x00 }, "SkyLabsdoo", "SkyLabs d.o.o." },
{ { 0x8C, 0x1F, 0x64, 0x39, 0x10 }, "Cpc", "Cpc (Uk)" },
{ { 0x8C, 0x1F, 0x64, 0x39, 0x20 }, "mmckommunika", "mmc kommunikationstechnologie gmbh" },
+ { { 0x8C, 0x1F, 0x64, 0x39, 0x30 }, "GreSystem", "Gre System Inc." },
{ { 0x8C, 0x1F, 0x64, 0x39, 0x70 }, "Intel", "Intel Corporate" },
{ { 0x8C, 0x1F, 0x64, 0x39, 0x80 }, "SoftwarePlus", "Software Systems Plus" },
{ { 0x8C, 0x1F, 0x64, 0x39, 0xA0 }, "GoldingAudio", "Golding Audio Ltd" },
@@ -49219,6 +49759,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x3B, 0x50 }, "Svms", "Svms" },
{ { 0x8C, 0x1F, 0x64, 0x3B, 0x60 }, "TexComputer", "Tex Computer Srl" },
{ { 0x8C, 0x1F, 0x64, 0x3B, 0x70 }, "AiBlox", "Ai-Blox" },
+ { { 0x8C, 0x1F, 0x64, 0x3B, 0x80 }, "HubrisTechno", "Hubris Technologies Private Limited" },
{ { 0x8C, 0x1F, 0x64, 0x3B, 0xB0 }, "ClausalCompu", "Clausal Computing Oy" },
{ { 0x8C, 0x1F, 0x64, 0x3C, 0x10 }, "SuzhouLiansh", "Suzhou Lianshichuangzhi Technology Co., Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x3C, 0x40 }, "NavSysTechno", "NavSys Technology Inc." },
@@ -49239,6 +49780,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x3E, 0x80 }, "Ruichuangte", "Ruichuangte" },
{ { 0x8C, 0x1F, 0x64, 0x3E, 0xE0 }, "BnBInformati", "BnB Information Technology" },
{ { 0x8C, 0x1F, 0x64, 0x3F, 0x40 }, "ActelserSL", "Actelser S.L." },
+ { { 0x8C, 0x1F, 0x64, 0x3F, 0x70 }, "MitsubishiEl", "Mitsubishi Electric India Pvt. Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x3F, 0xC0 }, "STVElectroni", "STV Electronic GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x3F, 0xE0 }, "Plumsp", "Plum sp. z.o.o." },
{ { 0x8C, 0x1F, 0x64, 0x3F, 0xF0 }, "UiseeAutomot", "Uisee(Shanghai) Automotive Technologies Ltd." },
@@ -49256,6 +49798,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x41, 0xC0 }, "KSE", "KSE GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x41, 0xD0 }, "AspenSpectra", "Aspen Spectra Sdn Bhd" },
{ { 0x8C, 0x1F, 0x64, 0x41, 0xE0 }, "Linxpeed", "Linxpeed Limited" },
+ { { 0x8C, 0x1F, 0x64, 0x41, 0xF0 }, "Gigalane", "Gigalane" },
{ { 0x8C, 0x1F, 0x64, 0x42, 0x30 }, "HiwinMikrosy", "Hiwin Mikrosystem Corp." },
{ { 0x8C, 0x1F, 0x64, 0x42, 0x60 }, "eumigindustr", "eumig industrie-TV GmbH." },
{ { 0x8C, 0x1F, 0x64, 0x42, 0x90 }, "AbbottDiagno", "Abbott Diagnostics Technologies AS" },
@@ -49263,6 +49806,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x43, 0x20 }, "Rebel", "Rebel Systems" },
{ { 0x8C, 0x1F, 0x64, 0x43, 0x80 }, "Integerpl", "Integer.pl S.A." },
{ { 0x8C, 0x1F, 0x64, 0x43, 0x90 }, "Bornico", "Bornico" },
+ { { 0x8C, 0x1F, 0x64, 0x43, 0xA0 }, "Spacelite", "Spacelite Inc" },
{ { 0x8C, 0x1F, 0x64, 0x43, 0xD0 }, "SolidStateSu", "Solid State Supplies Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x44, 0x00 }, "MBconnectlin", "MB connect line GmbH Fernwartungssysteme" },
{ { 0x8C, 0x1F, 0x64, 0x44, 0x10 }, "NovantaIMS", "Novanta IMS" },
@@ -49271,6 +49815,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x44, 0xF0 }, "RealD", "RealD, Inc." },
{ { 0x8C, 0x1F, 0x64, 0x45, 0x10 }, "GuanShowTech", "Guan Show Technologe Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x45, 0x40 }, "KJKlimatekni", "KJ Klimateknik A/S" },
+ { { 0x8C, 0x1F, 0x64, 0x45, 0x70 }, "AngweiInform", "Shanghai Angwei Information Technology Co.,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x45, 0xB0 }, "AoxingTechno", "Beijing Aoxing Technology Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x45, 0xD0 }, "FuzhouTucsen", "Fuzhou Tucsen Photonics Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x45, 0xF0 }, "ToshniwalSec", "Toshniwal Security Solutions Pvt Ltd" },
@@ -49285,18 +49830,21 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x47, 0x60 }, "ClairGlobal", "Clair Global Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x47, 0xA0 }, "MissingLinkE", "Missing Link Electronics, Inc." },
{ { 0x8C, 0x1F, 0x64, 0x47, 0xD0 }, "EbNeuro", "Eb Neuro Spa" },
+ { { 0x8C, 0x1F, 0x64, 0x48, 0x10 }, "VirtualVTrad", "VirtualV Trading Limited" },
{ { 0x8C, 0x1F, 0x64, 0x48, 0x70 }, "TECHKON", "TECHKON GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x48, 0x90 }, "Hupi", "Hupi" },
+ { { 0x8C, 0x1F, 0x64, 0x48, 0xB0 }, "Monnit", "Monnit Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x48, 0xF0 }, "Mecos", "Mecos AG" },
{ { 0x8C, 0x1F, 0x64, 0x49, 0x30 }, "SecurityProd", "Security Products International, LLC" },
{ { 0x8C, 0x1F, 0x64, 0x49, 0x50 }, "Dave", "Dave Srl" },
{ { 0x8C, 0x1F, 0x64, 0x49, 0x60 }, "QualsenTechn", "Qualsen(Guangzhou)Technologies Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x49, 0x80 }, "YUYAMAMFG", "YUYAMA MFG Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x49, 0x90 }, "Tiama", "Tiama" },
- { { 0x8C, 0x1F, 0x64, 0x49, 0xB0 }, "WartsilaVoya", "Wartsila Voyage Limited" },
+ { { 0x8C, 0x1F, 0x64, 0x49, 0xB0 }, "WartsilaVoya", "Wartsila Voyage Oy" },
{ { 0x8C, 0x1F, 0x64, 0x4A, 0x00 }, "Tantec", "Tantec A/S" },
{ { 0x8C, 0x1F, 0x64, 0x4A, 0x10 }, "BreasMedical", "Breas Medical AB" },
{ { 0x8C, 0x1F, 0x64, 0x4A, 0x20 }, "Bludigit", "Bludigit SpA" },
+ { { 0x8C, 0x1F, 0x64, 0x4A, 0x60 }, "AlaireTechno", "Alaire Technologies Inc" },
{ { 0x8C, 0x1F, 0x64, 0x4A, 0x90 }, "MartecMarine", "Martec Marine S.p.a." },
{ { 0x8C, 0x1F, 0x64, 0x4A, 0xC0 }, "Vekto", "Vekto" },
{ { 0x8C, 0x1F, 0x64, 0x4A, 0xE0 }, "KCS", "KCS Co., Ltd." },
@@ -49367,8 +49915,10 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x55, 0x60 }, "BAE", "BAE Systems" },
{ { 0x8C, 0x1F, 0x64, 0x55, 0x70 }, "InliteDesign", "In-lite Design BV" },
{ { 0x8C, 0x1F, 0x64, 0x55, 0x80 }, "Scitel", "Scitel" },
+ { { 0x8C, 0x1F, 0x64, 0x55, 0xC0 }, "Schildknecht", "Schildknecht AG" },
{ { 0x8C, 0x1F, 0x64, 0x55, 0xE0 }, "Hanateksyste", "Hanateksystem" },
{ { 0x8C, 0x1F, 0x64, 0x56, 0x00 }, "DexterLaundr", "Dexter Laundry Inc." },
+ { { 0x8C, 0x1F, 0x64, 0x56, 0xB0 }, "Avida", "Avida, Inc." },
{ { 0x8C, 0x1F, 0x64, 0x56, 0xC0 }, "ELTEK", "ELTEK SpA" },
{ { 0x8C, 0x1F, 0x64, 0x56, 0xD0 }, "Acod", "Acod" },
{ { 0x8C, 0x1F, 0x64, 0x56, 0xE0 }, "Euklis", "Euklis srl" },
@@ -49398,6 +49948,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x5B, 0x00 }, "Sonel", "Sonel S.A." },
{ { 0x8C, 0x1F, 0x64, 0x5B, 0x30 }, "eumigindustr", "eumig industrie-TV GmbH." },
{ { 0x8C, 0x1F, 0x64, 0x5B, 0x40 }, "AxionLightin", "Axion Lighting" },
+ { { 0x8C, 0x1F, 0x64, 0x5B, 0x90 }, "ViewSonic", "ViewSonic Corp" },
{ { 0x8C, 0x1F, 0x64, 0x5B, 0xC0 }, "Heitec", "Heitec Ag" },
{ { 0x8C, 0x1F, 0x64, 0x5B, 0xD0 }, "MPTServicepr", "MPT-Service project" },
{ { 0x8C, 0x1F, 0x64, 0x5B, 0xE0 }, "BenchmarkEle", "Benchmark Electronics BV" },
@@ -49406,6 +49957,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x5C, 0xB0 }, "dinosys", "dinosys" },
{ { 0x8C, 0x1F, 0x64, 0x5C, 0xD0 }, "MahindrMahin", "Mahindr & Mahindra" },
{ { 0x8C, 0x1F, 0x64, 0x5C, 0xE0 }, "Packetalk", "Packetalk LLC" },
+ { { 0x8C, 0x1F, 0x64, 0x5D, 0x00 }, "ImageEnginee", "Image Engineering" },
{ { 0x8C, 0x1F, 0x64, 0x5D, 0x10 }, "TwinDevelopm", "Twin Development" },
{ { 0x8C, 0x1F, 0x64, 0x5D, 0x30 }, "EloyWater", "Eloy Water" },
{ { 0x8C, 0x1F, 0x64, 0x5D, 0x60 }, "PortraitDisp", "Portrait Displays, Inc." },
@@ -49421,6 +49973,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x5E, 0x70 }, "HOSCHGebäude", "HOSCH Gebäude Automation Neue Produkte GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x5E, 0xA0 }, "BTGInstrumen", "BTG Instruments AB" },
{ { 0x8C, 0x1F, 0x64, 0x5E, 0xB0 }, "Tiama", "Tiama" },
+ { { 0x8C, 0x1F, 0x64, 0x5E, 0xC0 }, "NvBekaert", "Nv Bekaert Sa" },
{ { 0x8C, 0x1F, 0x64, 0x5F, 0x10 }, "HDLink", "HD Link Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x5F, 0x50 }, "HongSeok", "HongSeok Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x5F, 0x70 }, "EagleHarborT", "Eagle Harbor Technologies, Inc." },
@@ -49472,6 +50025,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x66, 0x00 }, "LlcNtpc", "Llc Ntpc" },
{ { 0x8C, 0x1F, 0x64, 0x66, 0x20 }, "SuzhouLeamor", "Suzhou Leamore Optronics Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x66, 0x30 }, "maltechTechn", "mal-tech Technological Solutions Ltd/CRISP" },
+ { { 0x8C, 0x1F, 0x64, 0x66, 0x40 }, "Thermoeye", "Thermoeye Inc" },
{ { 0x8C, 0x1F, 0x64, 0x66, 0xC0 }, "LineagePower", "Lineage Power Pvt Ltd.," },
{ { 0x8C, 0x1F, 0x64, 0x66, 0xD0 }, "Vt100", "Vt100 Srl" },
{ { 0x8C, 0x1F, 0x64, 0x66, 0xF0 }, "Elix", "Elix Systems SA" },
@@ -49482,6 +50036,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x67, 0x70 }, "FreySJ", "Frey S.J." },
{ { 0x8C, 0x1F, 0x64, 0x67, 0xA0 }, "MG", "MG s.r.l." },
{ { 0x8C, 0x1F, 0x64, 0x67, 0xC0 }, "EnstoProtrol", "Ensto Protrol AB" },
+ { { 0x8C, 0x1F, 0x64, 0x67, 0xD0 }, "RaviTeleinfo", "Ravi Teleinfomatics" },
{ { 0x8C, 0x1F, 0x64, 0x67, 0xE0 }, "LDAAudiotech", "LDA Audiotech" },
{ { 0x8C, 0x1F, 0x64, 0x67, 0xF0 }, "HamamatsuPho", "Hamamatsu Photonics K.K." },
{ { 0x8C, 0x1F, 0x64, 0x68, 0x30 }, "Slat", "Slat" },
@@ -49489,6 +50044,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x69, 0x10 }, "WendeTan", "Wende Tan" },
{ { 0x8C, 0x1F, 0x64, 0x69, 0x20 }, "NexilisElect", "Nexilis Electronics India Pvt Ltd (PICSYS)" },
{ { 0x8C, 0x1F, 0x64, 0x69, 0x40 }, "HubbellPower", "Hubbell Power Systems" },
+ { { 0x8C, 0x1F, 0x64, 0x69, 0x60 }, "EmersonRosem", "Emerson Rosemount Analytical" },
{ { 0x8C, 0x1F, 0x64, 0x69, 0x70 }, "Sontay", "Sontay Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x69, 0x80 }, "ArcusEDS", "Arcus-EDS GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x69, 0x90 }, "FIDICA", "FIDICA GmbH & Co. KG" },
@@ -49496,14 +50052,17 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x6A, 0x00 }, "Avionica", "Avionica" },
{ { 0x8C, 0x1F, 0x64, 0x6A, 0x40 }, "Automata", "Automata Spa" },
{ { 0x8C, 0x1F, 0x64, 0x6A, 0x80 }, "Bulwark", "Bulwark" },
+ { { 0x8C, 0x1F, 0x64, 0x6A, 0xB0 }, "TohoSystem", "Toho System Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x6A, 0xD0 }, "PotterElectr", "Potter Electric Signal Company" },
{ { 0x8C, 0x1F, 0x64, 0x6A, 0xE0 }, "BrayInternat", "Bray International" },
+ { { 0x8C, 0x1F, 0x64, 0x6B, 0x00 }, "ONetTechnolo", "O-Net Technologies(Shenzhen)Group Co.,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x6B, 0x10 }, "SpecialistMe", "Specialist Mechanical Engineers (PTY)LTD" },
{ { 0x8C, 0x1F, 0x64, 0x6B, 0x30 }, "Feritech", "Feritech Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x6B, 0x50 }, "ONetCommunic", "O-Net Communications(Shenzhen)Limited" },
{ { 0x8C, 0x1F, 0x64, 0x6B, 0x70 }, "AlphaOmegaTe", "Alpha-Omega Technology GmbH & Co. KG" },
{ { 0x8C, 0x1F, 0x64, 0x6B, 0x90 }, "GSIndustrieE", "GS Industrie-Elektronik GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x6B, 0xB0 }, "SeasonElectr", "Season Electronics Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x6B, 0xD0 }, "IoTWaterAnal", "IoT Water Analytics S.L." },
{ { 0x8C, 0x1F, 0x64, 0x6C, 0x60 }, "Fit", "Fit" },
{ { 0x8C, 0x1F, 0x64, 0x6C, 0xB0 }, "GJDManufactu", "GJD Manufacturing" },
{ { 0x8C, 0x1F, 0x64, 0x6C, 0xD0 }, "XingtuxinkeE", "Wuhan Xingtuxinke ELectronic Co.,Ltd" },
@@ -49514,12 +50073,15 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x6D, 0x90 }, "Khimo", "Khimo" },
{ { 0x8C, 0x1F, 0x64, 0x6D, 0xC0 }, "IntrinsicInn", "Intrinsic Innovation, LLC" },
{ { 0x8C, 0x1F, 0x64, 0x6D, 0xD0 }, "ViewSonic", "ViewSonic Corp" },
+ { { 0x8C, 0x1F, 0x64, 0x6D, 0xE0 }, "SUN・TECTRO", "SUN・TECTRO,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x6E, 0x20 }, "SCU", "SCU Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x6E, 0x30 }, "ViewSonicInt", "ViewSonic International Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x6E, 0x40 }, "RABMicroflui", "RAB Microfluidics R&D Company Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x6E, 0xA0 }, "KMtronic", "KMtronic ltd" },
{ { 0x8C, 0x1F, 0x64, 0x6E, 0xC0 }, "BitTradeOne", "Bit Trade One, Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x6F, 0x40 }, "Elsist", "Elsist Srl" },
+ { { 0x8C, 0x1F, 0x64, 0x6F, 0x70 }, "EddyWorks", "EddyWorks Co.,Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x6F, 0x80 }, "ProikerTechn", "Proiker Technology Sl" },
{ { 0x8C, 0x1F, 0x64, 0x6F, 0x90 }, "Anddoro", "Anddoro Llc" },
{ { 0x8C, 0x1F, 0x64, 0x6F, 0xC0 }, "HM", "HM Systems A/S" },
{ { 0x8C, 0x1F, 0x64, 0x70, 0x00 }, "Quantaflow", "Quantaflow" },
@@ -49532,7 +50094,9 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x71, 0x20 }, "NexionDataPL", "Nexion Data Systems P/L" },
{ { 0x8C, 0x1F, 0x64, 0x71, 0x80 }, "Abb", "Abb" },
{ { 0x8C, 0x1F, 0x64, 0x71, 0xB0 }, "Adasky", "Adasky Ltd." },
+ { { 0x8C, 0x1F, 0x64, 0x71, 0xD0 }, "Epigonspolsr", "Epigon spol. s r.o." },
{ { 0x8C, 0x1F, 0x64, 0x72, 0x10 }, "MSMilindRama", "M/S Milind Ramachandra Rajwade" },
+ { { 0x8C, 0x1F, 0x64, 0x72, 0x20 }, "Artome", "Artome Oy" },
{ { 0x8C, 0x1F, 0x64, 0x72, 0x30 }, "Celestica", "Celestica Inc." },
{ { 0x8C, 0x1F, 0x64, 0x72, 0x60 }, "Dave", "Dave Srl" },
{ { 0x8C, 0x1F, 0x64, 0x72, 0xA0 }, "DorletSau", "Dorlet Sau" },
@@ -49540,6 +50104,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x73, 0x10 }, "ehoosys", "ehoosys Co.,LTD." },
{ { 0x8C, 0x1F, 0x64, 0x73, 0x30 }, "VideoNetwork", "Video Network Security" },
{ { 0x8C, 0x1F, 0x64, 0x73, 0x70 }, "VytahyVymysl", "Vytahy-Vymyslicky s.r.o." },
+ { { 0x8C, 0x1F, 0x64, 0x73, 0x80 }, "ssolgrid", "ssolgrid" },
{ { 0x8C, 0x1F, 0x64, 0x73, 0x90 }, "Monnit", "Monnit Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x73, 0xB0 }, "FinkZeitsyst", "Fink Zeitsysteme GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x73, 0xC0 }, "Reo", "Reo Ag" },
@@ -49550,11 +50115,14 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x74, 0x40 }, "ChaseoConnec", "Chaseo Connectome" },
{ { 0x8C, 0x1F, 0x64, 0x74, 0x60 }, "SensusHealth", "Sensus Healthcare" },
{ { 0x8C, 0x1F, 0x64, 0x74, 0x70 }, "VisionTIRMul", "VisionTIR Multispectral Technology" },
+ { { 0x8C, 0x1F, 0x64, 0x74, 0x90 }, "Tiama", "Tiama" },
{ { 0x8C, 0x1F, 0x64, 0x74, 0xB0 }, "ARModularRF", "AR Modular RF" },
{ { 0x8C, 0x1F, 0x64, 0x74, 0xE0 }, "OpenParkTech", "OpenPark Technologies Kft" },
+ { { 0x8C, 0x1F, 0x64, 0x75, 0x50 }, "FlextronicsI", "Flextronics International Kft" },
{ { 0x8C, 0x1F, 0x64, 0x75, 0x60 }, "StarInternat", "Star Systems International Limited" },
{ { 0x8C, 0x1F, 0x64, 0x75, 0x90 }, "Systel", "Systel Inc" },
{ { 0x8C, 0x1F, 0x64, 0x75, 0xF0 }, "ASTRACOM", "ASTRACOM Co. Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x76, 0x00 }, "QLightAS", "Q-Light AS" },
{ { 0x8C, 0x1F, 0x64, 0x76, 0x20 }, "SupportProfe", "Support Professionals B.V." },
{ { 0x8C, 0x1F, 0x64, 0x76, 0x40 }, "nanoTRONIXCo", "nanoTRONIX Computing Inc." },
{ { 0x8C, 0x1F, 0x64, 0x76, 0x50 }, "MicroElectro", "Micro Electroninc Products" },
@@ -49564,6 +50132,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x77, 0x40 }, "navXperience", "navXperience GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x77, 0x50 }, "BectonDickin", "Becton Dickinson" },
{ { 0x8C, 0x1F, 0x64, 0x77, 0x70 }, "Sicon", "Sicon srl" },
+ { { 0x8C, 0x1F, 0x64, 0x77, 0x90 }, "InventioDiNi", "Inventio Di Nicolo' Bordoli" },
{ { 0x8C, 0x1F, 0x64, 0x77, 0xB0 }, "DbSas", "Db Sas" },
{ { 0x8C, 0x1F, 0x64, 0x77, 0xC0 }, "OrangeTreeTe", "Orange Tree Technologies Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x77, 0xE0 }, "Institutegeo", "Institute of geophysics, China earthquake administration" },
@@ -49578,6 +50147,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x79, 0xD0 }, "MurataManufa", "Murata Manufacturing Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x79, 0xE0 }, "AccemicTechn", "Accemic Technologies GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x79, 0xF0 }, "HiwinMikrosy", "Hiwin Mikrosystem Corp." },
+ { { 0x8C, 0x1F, 0x64, 0x7A, 0x00 }, "PotterElectr", "Potter Electric Signal Co. LLC" },
{ { 0x8C, 0x1F, 0x64, 0x7A, 0x10 }, "GuardianCont", "Guardian Controls International Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x7A, 0x40 }, "Hirotech", "Hirotech inc." },
{ { 0x8C, 0x1F, 0x64, 0x7A, 0x60 }, "OTMetric", "OTMetric" },
@@ -49618,16 +50188,20 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x7E, 0xC0 }, "Methods2Busi", "Methods2Business B.V." },
{ { 0x8C, 0x1F, 0x64, 0x7E, 0xE0 }, "OrangePrecis", "Orange Precision Measurement LLC" },
{ { 0x8C, 0x1F, 0x64, 0x7F, 0x10 }, "AEMSingapore", "AEM Singapore Pte Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x7F, 0x40 }, "GMInternatio", "G.M. International srl" },
{ { 0x8C, 0x1F, 0x64, 0x7F, 0x80 }, "FleetSafeInd", "FleetSafe India Private Limited" },
+ { { 0x8C, 0x1F, 0x64, 0x7F, 0xC0 }, "MitsubishiEl", "Mitsubishi Electric Klimat Transportation Systems S.p.A." },
+ { { 0x8C, 0x1F, 0x64, 0x80, 0x00 }, "SDGTelecomEq", "Shenzhen SDG Telecom Equipment Co.,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x80, 0x10 }, "ZhejiangLaol", "Zhejiang Laolan Information Technology Co., Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x80, 0x30 }, "MOSCAElektro", "MOSCA Elektronik und Antriebstechnik GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x80, 0x40 }, "EAElektroAut", "EA Elektro-Automatik" },
{ { 0x8C, 0x1F, 0x64, 0x80, 0x70 }, "GiordanoCont", "Giordano Controls Spa" },
{ { 0x8C, 0x1F, 0x64, 0x80, 0xC0 }, "ThermifyHold", "Thermify Holdings Ltd" },
- { { 0x8C, 0x1F, 0x64, 0x80, 0xE0 }, "TaoglasIoTSo", "Taoglas IoT Solutions Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x80, 0xE0 }, "TxWireless", "TxWireless Limited" },
{ { 0x8C, 0x1F, 0x64, 0x80, 0xF0 }, "ASYS", "ASYS Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x81, 0x00 }, "Kymata", "Kymata Srl" },
{ { 0x8C, 0x1F, 0x64, 0x81, 0x10 }, "PanoramicPow", "Panoramic Power" },
+ { { 0x8C, 0x1F, 0x64, 0x81, 0x30 }, "Pribusin", "Pribusin Inc." },
{ { 0x8C, 0x1F, 0x64, 0x81, 0x70 }, "nkemarineele", "nke marine electronics" },
{ { 0x8C, 0x1F, 0x64, 0x81, 0xA0 }, "GeminiElectr", "Gemini Electronics B.V." },
{ { 0x8C, 0x1F, 0x64, 0x81, 0xF0 }, "ViewSonic", "ViewSonic Corp" },
@@ -49651,12 +50225,14 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x85, 0x20 }, "Abb", "Abb" },
{ { 0x8C, 0x1F, 0x64, 0x85, 0x50 }, "ekundenservi", "e.kundenservice Netz GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x85, 0x60 }, "GartenAutoma", "Garten Automation" },
+ { { 0x8C, 0x1F, 0x64, 0x85, 0x80 }, "SFERA", "SFERA srl" },
{ { 0x8C, 0x1F, 0x64, 0x85, 0xB0 }, "AtlanticPump", "Atlantic Pumps Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x85, 0xC0 }, "Zing5gCommun", "Zing 5g Communications Canada Inc." },
{ { 0x8C, 0x1F, 0x64, 0x86, 0x30 }, "EngiNe", "EngiNe srl" },
{ { 0x8C, 0x1F, 0x64, 0x86, 0x70 }, "ForeverEngin", "Forever Engineering Systems Pvt. Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x86, 0x80 }, "PeakeTechnol", "Shenzhen Peake Technology Co.,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x86, 0xA0 }, "VisionToolsB", "VisionTools Bildanalyse Systeme GmbH" },
+ { { 0x8C, 0x1F, 0x64, 0x86, 0xC0 }, "AbbottDiagno", "Abbott Diagnostics Technologies AS" },
{ { 0x8C, 0x1F, 0x64, 0x86, 0xF0 }, "NewEdgeSigna", "NewEdge Signal Solutions LLC" },
{ { 0x8C, 0x1F, 0x64, 0x87, 0x60 }, "fmadengineer", "fmad engineering" },
{ { 0x8C, 0x1F, 0x64, 0x87, 0x80 }, "GreenAccess", "Green Access Ltd" },
@@ -49667,6 +50243,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x88, 0x20 }, "TmyTechnolog", "Tmy Technology Inc." },
{ { 0x8C, 0x1F, 0x64, 0x88, 0x30 }, "DEUTAWERKE", "DEUTA-WERKE GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x88, 0xB0 }, "TaiwanAulisa", "Taiwan Aulisa Medical Devices Technologies, Inc" },
+ { { 0x8C, 0x1F, 0x64, 0x88, 0xC0 }, "SALNavigatio", "SAL Navigation AB" },
{ { 0x8C, 0x1F, 0x64, 0x88, 0xD0 }, "PantherunTec", "Pantherun Technologies Pvt Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x88, 0xE0 }, "CubeWorks", "CubeWorks, Inc." },
{ { 0x8C, 0x1F, 0x64, 0x89, 0x00 }, "WonATech", "WonATech Co., Ltd." },
@@ -49689,11 +50266,13 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x8C, 0x20 }, "Cirrus", "Cirrus Systems, Inc." },
{ { 0x8C, 0x1F, 0x64, 0x8C, 0x40 }, "HermesNetwor", "Hermes Network Inc" },
{ { 0x8C, 0x1F, 0x64, 0x8C, 0x50 }, "NextTMicrowa", "NextT Microwave Inc" },
+ { { 0x8C, 0x1F, 0x64, 0x8C, 0xB0 }, "Chromaviso", "Chromaviso A/S" },
{ { 0x8C, 0x1F, 0x64, 0x8C, 0xF0 }, "Diffraction", "Diffraction Limited" },
{ { 0x8C, 0x1F, 0x64, 0x8D, 0x00 }, "Enerthing", "Enerthing GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x8D, 0x10 }, "OrlacoProduc", "Orlaco Products B.V." },
{ { 0x8C, 0x1F, 0x64, 0x8D, 0x40 }, "RecabSweden", "Recab Sweden AB" },
{ { 0x8C, 0x1F, 0x64, 0x8D, 0x50 }, "Agramkow", "Agramkow A/S" },
+ { { 0x8C, 0x1F, 0x64, 0x8D, 0x60 }, "ADCGlobalTec", "ADC Global Technology Sdn Bhd" },
{ { 0x8C, 0x1F, 0x64, 0x8D, 0x90 }, "PietroFioren", "Pietro Fiorentini Spa" },
{ { 0x8C, 0x1F, 0x64, 0x8D, 0xA0 }, "Dart", "Dart Systems Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x8D, 0xE0 }, "IconetServic", "Iconet Services" },
@@ -49701,6 +50280,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x8E, 0x00 }, "ReivaxAutoma", "Reivax S/A Automação e Controle" },
{ { 0x8C, 0x1F, 0x64, 0x8E, 0x20 }, "ALPHA", "ALPHA Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x8E, 0x30 }, "UniTikTechno", "UniTik Technology Co., Limited" },
+ { { 0x8C, 0x1F, 0x64, 0x8E, 0x40 }, "Cominfo", "Cominfo, Inc." },
{ { 0x8C, 0x1F, 0x64, 0x8E, 0x50 }, "Druck", "Druck Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x8E, 0x80 }, "Cominfo", "Cominfo, Inc." },
{ { 0x8C, 0x1F, 0x64, 0x8E, 0x90 }, "Vesperix", "Vesperix Corporation" },
@@ -49726,6 +50306,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x91, 0xB0 }, "PotterElectr", "Potter Electric Signal Co. LLC" },
{ { 0x8C, 0x1F, 0x64, 0x91, 0xC0 }, "CospowersCha", "Cospowers Changsha Branch" },
{ { 0x8C, 0x1F, 0x64, 0x91, 0xD0 }, "enlighten", "enlighten" },
+ { { 0x8C, 0x1F, 0x64, 0x92, 0x00 }, "VuWallTechno", "VuWall Technology Europe GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x92, 0x30 }, "MBconnectlin", "MB connect line GmbH Fernwartungssysteme" },
{ { 0x8C, 0x1F, 0x64, 0x92, 0x40 }, "MagicsTechno", "Magics Technologies" },
{ { 0x8C, 0x1F, 0x64, 0x92, 0x80 }, "ITG", "ITG Co.Ltd" },
@@ -49742,9 +50323,11 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x94, 0x90 }, "tickIoT", "tickIoT Inc." },
{ { 0x8C, 0x1F, 0x64, 0x94, 0xC0 }, "Bcmtech", "Bcmtech" },
{ { 0x8C, 0x1F, 0x64, 0x94, 0xE0 }, "Monnit", "Monnit Corporation" },
+ { { 0x8C, 0x1F, 0x64, 0x94, 0xF0 }, "FörsterTechn", "Förster Technik GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x95, 0x60 }, "PaulmannLich", "Paulmann Licht GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x95, 0x80 }, "SancharTeles", "Sanchar Telesystems limited" },
{ { 0x8C, 0x1F, 0x64, 0x95, 0xA0 }, "LongyunLight", "Shenzhen Longyun Lighting Electric Appliances Co., Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x95, 0xB0 }, "Qualitel", "Qualitel Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x95, 0xC0 }, "Fasetto", "Fasetto, Inc." },
{ { 0x8C, 0x1F, 0x64, 0x96, 0x20 }, "UmanoMedical", "Umano Medical Inc." },
{ { 0x8C, 0x1F, 0x64, 0x96, 0x30 }, "GogoBusiness", "Gogo Business Aviation" },
@@ -49763,6 +50346,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x98, 0x40 }, "AbacusPeriph", "Abacus Peripherals Pvt Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x98, 0x70 }, "PeterHuberKa", "Peter Huber Kaeltemaschinenbau SE" },
{ { 0x8C, 0x1F, 0x64, 0x98, 0x90 }, "PhenX", "Phe-nX B.V." },
+ { { 0x8C, 0x1F, 0x64, 0x98, 0xB0 }, "SyscomInstru", "Syscom Instruments SA" },
{ { 0x8C, 0x1F, 0x64, 0x98, 0xC0 }, "PANBusinessC", "PAN Business & Consulting (ANYOS]" },
{ { 0x8C, 0x1F, 0x64, 0x98, 0xF0 }, "BreasMedical", "Breas Medical AB" },
{ { 0x8C, 0x1F, 0x64, 0x99, 0x10 }, "DBSystel", "DB Systel GmbH" },
@@ -49770,6 +50354,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x99, 0x80 }, "EVLOStockage", "EVLO Stockage Énergie" },
{ { 0x8C, 0x1F, 0x64, 0x99, 0xE0 }, "EIDOS", "EIDOS s.r.l." },
{ { 0x8C, 0x1F, 0x64, 0x9A, 0x10 }, "PacificSoftw", "Pacific Software Development Co., Ltd." },
+ { { 0x8C, 0x1F, 0x64, 0x9A, 0x20 }, "LadyBugTechn", "LadyBug Technologies, LLC" },
{ { 0x8C, 0x1F, 0x64, 0x9A, 0x40 }, "LabLogic", "LabLogic Systems" },
{ { 0x8C, 0x1F, 0x64, 0x9A, 0x50 }, "Xi‘anShengxi", "Xi‘an Shengxin Science& Technology Development Co.?Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x9A, 0x60 }, "InstitutoDeG", "Instituto De Gestão, Redes Tecnológicas E Nergias" },
@@ -49790,6 +50375,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x9C, 0xE0 }, "ExiFlowMeasu", "Exi Flow Measurement Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x9C, 0xF0 }, "ASAPElectron", "ASAP Electronics GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x9D, 0x00 }, "SalineLectro", "Saline Lectronics, Inc." },
+ { { 0x8C, 0x1F, 0x64, 0x9D, 0x30 }, "EAElektroAut", "EA Elektro-Automatik" },
{ { 0x8C, 0x1F, 0x64, 0x9D, 0x40 }, "WolfspyreLab", "Wolfspyre Labs" },
{ { 0x8C, 0x1F, 0x64, 0x9D, 0x80 }, "Integerpl", "Integer.pl S.A." },
{ { 0x8C, 0x1F, 0x64, 0x9D, 0xB0 }, "HDRenewableE", "HD Renewable Energy Co.,Ltd" },
@@ -49803,6 +50389,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x9E, 0x80 }, "GHMMesstechn", "GHM Messtechnik GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x9E, 0xC0 }, "SpecializedC", "Specialized Communications Corp." },
{ { 0x8C, 0x1F, 0x64, 0x9F, 0x00 }, "ePlant", "ePlant, Inc." },
+ { { 0x8C, 0x1F, 0x64, 0x9F, 0x10 }, "Skymira", "Skymira" },
{ { 0x8C, 0x1F, 0x64, 0x9F, 0x20 }, "MBconnectlin", "MB connect line GmbH Fernwartungssysteme" },
{ { 0x8C, 0x1F, 0x64, 0x9F, 0x40 }, "Grossenbache", "Grossenbacher Systeme AG" },
{ { 0x8C, 0x1F, 0x64, 0x9F, 0x50 }, "YUYAMAMFG", "YUYAMA MFG Co.,Ltd" },
@@ -49819,6 +50406,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xA0, 0xA0 }, "WiseTechInte", "Shanghai Wise-Tech Intelligent Technology Co.,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xA0, 0xD0 }, "LumiplanDuha", "Lumiplan Duhamel" },
{ { 0x8C, 0x1F, 0x64, 0xA0, 0xE0 }, "ElacAmericas", "Elac Americas Inc." },
+ { { 0x8C, 0x1F, 0x64, 0xA1, 0x30 }, "INVENTIASp", "INVENTIA Sp. z o.o." },
{ { 0x8C, 0x1F, 0x64, 0xA1, 0xB0 }, "Zilica", "Zilica Limited" },
{ { 0x8C, 0x1F, 0x64, 0xA1, 0xF0 }, "HitachiEnerg", "Hitachi Energy India Limited" },
{ { 0x8C, 0x1F, 0x64, 0xA2, 0x90 }, "RingtailSecu", "Ringtail Security" },
@@ -49845,6 +50433,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xA5, 0xD0 }, "zhushidaTech", "Shenzhen zhushida Technology lnformation Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xA5, 0xE0 }, "XTIA", "XTIA Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xA6, 0x00 }, "ActiveOptica", "Active Optical Systems, LLC" },
+ { { 0x8C, 0x1F, 0x64, 0xA6, 0x10 }, "BreasMedical", "Breas Medical AB" },
{ { 0x8C, 0x1F, 0x64, 0xA6, 0xA0 }, "SphereComSer", "Sphere Com Services Pvt Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xA6, 0xD0 }, "CyberneX", "CyberneX Co., Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xA6, 0xE0 }, "beswave", "shenzhen beswave co.,ltd" },
@@ -49872,19 +50461,23 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xAA, 0xB0 }, "BlueSwordInt", "BlueSword Intelligent Technology Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xAB, 0x40 }, "ZhongchenMic", "Beijing Zhongchen Microelectronics Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xAB, 0x50 }, "JustmorphPte", "Justmorph Pte. Ltd." },
+ { { 0x8C, 0x1F, 0x64, 0xAB, 0x60 }, "EMIT", "EMIT GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xAB, 0x70 }, "MClavis", "MClavis Co.,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xAB, 0xE0 }, "TAIYODENON", "TAIYO DENON Corporation" },
+ { { 0x8C, 0x1F, 0x64, 0xAB, 0xF0 }, "StackiotTech", "Stackiot Technologies Private Limited" },
{ { 0x8C, 0x1F, 0x64, 0xAC, 0x00 }, "AIQuatro", "AIQuatro" },
{ { 0x8C, 0x1F, 0x64, 0xAC, 0x30 }, "WavesSystem", "Waves System" },
{ { 0x8C, 0x1F, 0x64, 0xAC, 0x40 }, "comelec", "comelec" },
{ { 0x8C, 0x1F, 0x64, 0xAC, 0x50 }, "ForeverEngin", "Forever Engineering Systems Pvt. Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xAC, 0x90 }, "ShenYangLeSh", "ShenYang LeShun Technology Co.,Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0xAC, 0xB0 }, "Villari", "Villari B.V." },
{ { 0x8C, 0x1F, 0x64, 0xAC, 0xE0 }, "RayhaanNetwo", "Rayhaan Networks" },
{ { 0x8C, 0x1F, 0x64, 0xAD, 0x00 }, "Elektrotechn", "Elektrotechnik & Elektronik Oltmann GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xAD, 0x20 }, "YUYAMAMFG", "YUYAMA MFG Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xAD, 0x40 }, "FlextronicsI", "Flextronics International Kft" },
{ { 0x8C, 0x1F, 0x64, 0xAD, 0x70 }, "Monnit", "Monnit Corporation" },
{ { 0x8C, 0x1F, 0x64, 0xAD, 0x80 }, "NovantaIMS", "Novanta IMS" },
+ { { 0x8C, 0x1F, 0x64, 0xAD, 0xB0 }, "HebeiWeijiEl", "Hebei Weiji Electric Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xAE, 0x10 }, "YUYAMAMFG", "YUYAMA MFG Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xAE, 0x50 }, "Ltec", "Ltec Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xAE, 0x80 }, "AdetecSas", "Adetec Sas" },
@@ -49893,6 +50486,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xAE, 0xD0 }, "MBconnectlin", "MB connect line GmbH Fernwartungssysteme" },
{ { 0x8C, 0x1F, 0x64, 0xAE, 0xF0 }, "ScenarioAuto", "Scenario Automation" },
{ { 0x8C, 0x1F, 0x64, 0xAF, 0x00 }, "MinebeaMitsu", "MinebeaMitsumi Inc." },
+ { { 0x8C, 0x1F, 0x64, 0xAF, 0x10 }, "ESTel", "E-S-Tel" },
{ { 0x8C, 0x1F, 0x64, 0xAF, 0x40 }, "NokiaBellLab", "Nokia Bell Labs" },
{ { 0x8C, 0x1F, 0x64, 0xAF, 0x50 }, "SanminaIsrae", "Sanmina Israel Medical Systems Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xAF, 0x70 }, "ard", "ard sa" },
@@ -49910,12 +50504,15 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xB1, 0x00 }, "MTUAeroEngin", "MTU Aero Engines AG" },
{ { 0x8C, 0x1F, 0x64, 0xB1, 0x30 }, "Abode", "Abode Systems Inc" },
{ { 0x8C, 0x1F, 0x64, 0xB1, 0x40 }, "MurataManufa", "Murata Manufacturing CO., Ltd." },
+ { { 0x8C, 0x1F, 0x64, 0xB1, 0x80 }, "Grossenbache", "Grossenbacher Systeme AG" },
{ { 0x8C, 0x1F, 0x64, 0xB1, 0x90 }, "DITRON", "DITRON S.r.l." },
+ { { 0x8C, 0x1F, 0x64, 0xB2, 0x00 }, "LechpolElect", "Lechpol Electronics Spółka z o.o. Sp.k." },
{ { 0x8C, 0x1F, 0x64, 0xB2, 0x20 }, "BlighterSurv", "Blighter Surveillance Systems Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xB2, 0x40 }, "Abb", "Abb" },
{ { 0x8C, 0x1F, 0x64, 0xB2, 0x60 }, "AVLDiTEST", "AVL DiTEST GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xB2, 0x70 }, "InHandPlus", "InHandPlus Inc." },
{ { 0x8C, 0x1F, 0x64, 0xB2, 0x80 }, "SeasonElectr", "Season Electronics Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0xB2, 0xA0 }, "LumiplanDuha", "Lumiplan Duhamel" },
{ { 0x8C, 0x1F, 0x64, 0xB2, 0xB0 }, "RhombusEurop", "Rhombus Europe" },
{ { 0x8C, 0x1F, 0x64, 0xB2, 0xC0 }, "SanminaIsrae", "Sanmina Israel Medical Systems Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xB2, 0xF0 }, "MtechnologyG", "Mtechnology - Gamma Commerciale Srl" },
@@ -49926,6 +50523,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xB3, 0xC0 }, "SafeproAIVid", "Safepro AI Video Research Labs Pvt Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xB3, 0xD0 }, "RealD", "RealD, Inc." },
{ { 0x8C, 0x1F, 0x64, 0xB4, 0x60 }, "PhygitallSol", "Phygitall Soluções Em Internet Das Coisas" },
+ { { 0x8C, 0x1F, 0x64, 0xB4, 0x70 }, "LineagePower", "Lineage Power Pvt Ltd.," },
{ { 0x8C, 0x1F, 0x64, 0xB4, 0xC0 }, "PicocomTechn", "Picocom Technology Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xB5, 0x50 }, "SancharTeles", "Sanchar Telesystems limited" },
{ { 0x8C, 0x1F, 0x64, 0xB5, 0x60 }, "Arcvideo", "Arcvideo" },
@@ -49945,7 +50543,6 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xB7, 0xB0 }, "GateviewTech", "Gateview Technologies" },
{ { 0x8C, 0x1F, 0x64, 0xB7, 0xC0 }, "EvernetTaiwa", "Evernet Co,.Ltd Taiwan" },
{ { 0x8C, 0x1F, 0x64, 0xB7, 0xD0 }, "Scheurich", "Scheurich GmbH" },
- { { 0x8C, 0x1F, 0x64, 0xB8, 0x10 }, "KingsIoT", "Shenzhen Kings IoT Co., Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xB8, 0x20 }, "SeedCore", "Seed Core Co., LTD." },
{ { 0x8C, 0x1F, 0x64, 0xB8, 0x40 }, "SPXFlowTechn", "SPX Flow Technology" },
{ { 0x8C, 0x1F, 0x64, 0xB8, 0x60 }, "ElektronikMo", "Elektronik & Modellprodukter Gävle AB" },
@@ -49954,15 +50551,19 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xB9, 0x70 }, "GeminiElectr", "Gemini Electronics B.V." },
{ { 0x8C, 0x1F, 0x64, 0xB9, 0x80 }, "Calamity", "Calamity, Inc." },
{ { 0x8C, 0x1F, 0x64, 0xB9, 0xA0 }, "QuercusTechn", "Quercus Technologies, S.L." },
+ { { 0x8C, 0x1F, 0x64, 0xB9, 0xB0 }, "Kromek", "Kromek Limited" },
{ { 0x8C, 0x1F, 0x64, 0xB9, 0xE0 }, "PowerElectro", "Power Electronics Espana, S.L." },
{ { 0x8C, 0x1F, 0x64, 0xB9, 0xF0 }, "LithionBatte", "Lithion Battery Inc" },
{ { 0x8C, 0x1F, 0x64, 0xBA, 0x30 }, "DEUTAWERKE", "DEUTA-WERKE GmbH" },
+ { { 0x8C, 0x1F, 0x64, 0xBA, 0x60 }, "FMCTechnolog", "FMC Technologies Measurement Solutions Inc" },
{ { 0x8C, 0x1F, 0x64, 0xBA, 0xA0 }, "MineVision", "Mine Vision Systems" },
{ { 0x8C, 0x1F, 0x64, 0xBA, 0xE0 }, "TielineResea", "Tieline Research Pty Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xBB, 0x10 }, "TransitSolut", "Transit Solutions, LLC." },
{ { 0x8C, 0x1F, 0x64, 0xBB, 0x20 }, "GrupoEpelsaS", "Grupo Epelsa S.L." },
{ { 0x8C, 0x1F, 0x64, 0xBB, 0x30 }, "ZarucTecnolo", "Zaruc Tecnologia LTDA" },
+ { { 0x8C, 0x1F, 0x64, 0xBB, 0x70 }, "JiangxiLvCCh", "Jiangxi Lv C-Chong Charging Technology Co.Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xBB, 0xC0 }, "Liberator", "Liberator Pty Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0xBB, 0xE0 }, "AirScandbaHe", "AirScan, Inc. dba HemaTechnologies" },
{ { 0x8C, 0x1F, 0x64, 0xBB, 0xF0 }, "Retency", "Retency" },
{ { 0x8C, 0x1F, 0x64, 0xBC, 0x00 }, "GSElektromed", "GS Elektromedizinsiche Geräte G. Stemple GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xBC, 0x10 }, "CominTech", "CominTech, LLC" },
@@ -49972,10 +50573,11 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xBC, 0x90 }, "GlTech", "Gl Tech Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xBC, 0xB0 }, "A&T", "A&T Corporation" },
{ { 0x8C, 0x1F, 0x64, 0xBC, 0xC0 }, "SoundHealth", "Sound Health Systems" },
+ { { 0x8C, 0x1F, 0x64, 0xBC, 0xE0 }, "BESOsp", "BESO sp. z o.o." },
{ { 0x8C, 0x1F, 0x64, 0xBD, 0x30 }, "IOMasterTech", "IO Master Technology" },
+ { { 0x8C, 0x1F, 0x64, 0xBD, 0x50 }, "ProCustomGro", "Pro-Custom Group" },
{ { 0x8C, 0x1F, 0x64, 0xBD, 0x60 }, "NOVAProducts", "NOVA Products GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xBD, 0x70 }, "UnionElectro", "Union Electronic." },
- { { 0x8C, 0x1F, 0x64, 0xBD, 0x80 }, "ecamtek", "ecamtek" },
{ { 0x8C, 0x1F, 0x64, 0xBD, 0xB0 }, "CardinalScal", "Cardinal Scales Manufacturing Co" },
{ { 0x8C, 0x1F, 0x64, 0xBE, 0x30 }, "Reo", "Reo Ag" },
{ { 0x8C, 0x1F, 0x64, 0xBE, 0x80 }, "Technologies", "Technologies Bacmove Inc." },
@@ -49985,15 +50587,19 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xBF, 0x20 }, "YujunElectri", "Yujun Electricity Industry Co., Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xBF, 0x30 }, "AlphatekAS", "Alphatek AS" },
{ { 0x8C, 0x1F, 0x64, 0xBF, 0x40 }, "FluidCompone", "Fluid Components Intl" },
+ { { 0x8C, 0x1F, 0x64, 0xBF, 0x50 }, "UrbanJungleP", "The Urban Jungle Project" },
+ { { 0x8C, 0x1F, 0x64, 0xBF, 0x60 }, "PanoramicPow", "Panoramic Power" },
{ { 0x8C, 0x1F, 0x64, 0xBF, 0x80 }, "Cdsi", "Cdsi" },
{ { 0x8C, 0x1F, 0x64, 0xBF, 0xB0 }, "TechArgos", "TechArgos" },
{ { 0x8C, 0x1F, 0x64, 0xBF, 0xC0 }, "ASiSTechnolo", "ASiS Technologies Pte Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0xBF, 0xE0 }, "PuSund", "PuS GmbH und Co. KG" },
{ { 0x8C, 0x1F, 0x64, 0xC0, 0x10 }, "HoribaAbxSas", "Horiba Abx Sas" },
{ { 0x8C, 0x1F, 0x64, 0xC0, 0x30 }, "AbimanEngine", "Abiman Engineering" },
{ { 0x8C, 0x1F, 0x64, 0xC0, 0x40 }, "Sanwa", "Sanwa Corporation" },
{ { 0x8C, 0x1F, 0x64, 0xC0, 0x50 }, "SkyCell", "SkyCell AG" },
{ { 0x8C, 0x1F, 0x64, 0xC0, 0x60 }, "TardisTechno", "Tardis Technology" },
{ { 0x8C, 0x1F, 0x64, 0xC0, 0x70 }, "HYOSUNGHeavy", "HYOSUNG Heavy Industries Corporation" },
+ { { 0x8C, 0x1F, 0x64, 0xC0, 0x80 }, "TriamecMotio", "Triamec Motion AG" },
{ { 0x8C, 0x1F, 0x64, 0xC0, 0xA0 }, "Acrolabs", "Acrolabs,Inc" },
{ { 0x8C, 0x1F, 0x64, 0xC0, 0xC0 }, "GiordanoCont", "Giordano Controls Spa" },
{ { 0x8C, 0x1F, 0x64, 0xC0, 0xD0 }, "AbbottDiagno", "Abbott Diagnostics Technologies AS" },
@@ -50034,6 +50640,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xC5, 0x90 }, "Tunstall", "Tunstall A/S" },
{ { 0x8C, 0x1F, 0x64, 0xC5, 0xD0 }, "AlfaProximad", "Alfa Proxima d.o.o." },
{ { 0x8C, 0x1F, 0x64, 0xC6, 0x10 }, "CeresdateTec", "Beijing Ceresdate Technology Co.,LTD" },
+ { { 0x8C, 0x1F, 0x64, 0xC6, 0x20 }, "GMI", "GMI Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xC6, 0x40 }, "Ajeco", "Ajeco Oy" },
{ { 0x8C, 0x1F, 0x64, 0xC6, 0x80 }, "FibermeCommu", "Fiberme Communications Llc" },
{ { 0x8C, 0x1F, 0x64, 0xC6, 0xA0 }, "RedPhaseTech", "Red Phase Technologies Limited" },
@@ -50053,7 +50660,10 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xC9, 0x70 }, "MagnetPhysik", "Magnet-Physik Dr. Steingroever GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xC9, 0xA0 }, "InfosoftDigi", "Infosoft Digital Design and Services P L" },
{ { 0x8C, 0x1F, 0x64, 0xC9, 0xB0 }, "JMVoithSE", "J.M. Voith SE & Co. KG" },
+ { { 0x8C, 0x1F, 0x64, 0xC9, 0xE0 }, "CytoTronics", "CytoTronics" },
{ { 0x8C, 0x1F, 0x64, 0xCA, 0x10 }, "PantherunTec", "Pantherun Technologies Pvt Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0xCA, 0x20 }, "eumigindustr", "eumig industrie-TV GmbH." },
+ { { 0x8C, 0x1F, 0x64, 0xCA, 0x40 }, "BitPart", "Bit Part LLC" },
{ { 0x8C, 0x1F, 0x64, 0xCA, 0x60 }, "ReliaSpeakIn", "ReliaSpeak Information Technology Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xCA, 0x70 }, "eumigindustr", "eumig industrie-TV GmbH." },
{ { 0x8C, 0x1F, 0x64, 0xCA, 0x90 }, "AvantTechnol", "Avant Technologies" },
@@ -50072,6 +50682,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xCC, 0x50 }, "PotterElectr", "Potter Electric Signal Co. LLC" },
{ { 0x8C, 0x1F, 0x64, 0xCC, 0x60 }, "GeniusVision", "Genius Vision Digital Private Limited" },
{ { 0x8C, 0x1F, 0x64, 0xCC, 0xB0 }, "suzhouyuecro", "suzhou yuecrown Electronic Technology Co.,LTD" },
+ { { 0x8C, 0x1F, 0x64, 0xCD, 0x10 }, "FlextronicsI", "Flextronics International Kft" },
{ { 0x8C, 0x1F, 0x64, 0xCD, 0x30 }, "Pionierkraft", "Pionierkraft GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xCD, 0x40 }, "ShengliTechn", "Shengli Technologies" },
{ { 0x8C, 0x1F, 0x64, 0xCD, 0x60 }, "USM", "USM Pty Ltd" },
@@ -50083,6 +50694,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xCE, 0x30 }, "PixelDesignM", "Pixel Design & Manufacturing Sdn. Bhd." },
{ { 0x8C, 0x1F, 0x64, 0xCE, 0x40 }, "SlUsa", "Sl Usa, Llc" },
{ { 0x8C, 0x1F, 0x64, 0xCE, 0xB0 }, "EurekaForSma", "Eureka For Smart Properties Co. W.L.L" },
+ { { 0x8C, 0x1F, 0x64, 0xCE, 0xC0 }, "ZhuhaiHuayam", "Zhuhai Huaya machinery Technology Co., LTD" },
{ { 0x8C, 0x1F, 0x64, 0xCE, 0xE0 }, "Displax", "Displax S.A." },
{ { 0x8C, 0x1F, 0x64, 0xCE, 0xF0 }, "GoertekRobot", "Goertek Robotics Co.,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xCF, 0x10 }, "ROBOfiber", "ROBOfiber, Inc." },
@@ -50101,6 +50713,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xD0, 0xF0 }, "Mecco", "Mecco LLC" },
{ { 0x8C, 0x1F, 0x64, 0xD1, 0x30 }, "EYatskoIndiv", "EYatsko Individual" },
{ { 0x8C, 0x1F, 0x64, 0xD1, 0x70 }, "IAltanovagro", "I.S.A. - Altanova group srl" },
+ { { 0x8C, 0x1F, 0x64, 0xD1, 0xF0 }, "FreeTalkEngi", "Free Talk Engineering Co., Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xD2, 0x00 }, "NASEngineeri", "NAS Engineering PRO" },
{ { 0x8C, 0x1F, 0x64, 0xD2, 0x10 }, "AmetekCts", "Ametek Cts Gmbh" },
{ { 0x8C, 0x1F, 0x64, 0xD2, 0x40 }, "R3IoT", "R3 IoT Ltd." },
@@ -50115,15 +50728,18 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xD4, 0x40 }, "MonarchInstr", "Monarch Instrument" },
{ { 0x8C, 0x1F, 0x64, 0xD4, 0x60 }, "End2EndTechn", "End 2 End Technologies" },
{ { 0x8C, 0x1F, 0x64, 0xD4, 0xA0 }, "Caproc", "Caproc Oy" },
+ { { 0x8C, 0x1F, 0x64, 0xD4, 0xF0 }, "HenanCreatbo", "Henan Creatbot Technology Limited" },
{ { 0x8C, 0x1F, 0x64, 0xD5, 0x10 }, "ZIGENLightin", "ZIGEN Lighting Solution co., ltd." },
{ { 0x8C, 0x1F, 0x64, 0xD5, 0x20 }, "CriticalSoft", "Critical Software SA" },
{ { 0x8C, 0x1F, 0x64, 0xD5, 0x30 }, "Gridnt", "Gridnt" },
{ { 0x8C, 0x1F, 0x64, 0xD5, 0x40 }, "GrupoEpelsaS", "Grupo Epelsa S.L." },
{ { 0x8C, 0x1F, 0x64, 0xD5, 0x60 }, "WisdomAudio", "Wisdom Audio" },
{ { 0x8C, 0x1F, 0x64, 0xD5, 0xB0 }, "LocalSecurit", "Local Security" },
+ { { 0x8C, 0x1F, 0x64, 0xD5, 0xD0 }, "GeniusVision", "Genius Vision Digital Private Limited" },
{ { 0x8C, 0x1F, 0x64, 0xD5, 0xE0 }, "Integerpl", "Integer.pl S.A." },
{ { 0x8C, 0x1F, 0x64, 0xD6, 0x00 }, "PotterElectr", "Potter Electric Signal Co. LLC" },
{ { 0x8C, 0x1F, 0x64, 0xD6, 0x10 }, "AdventDiamon", "Advent Diamond" },
+ { { 0x8C, 0x1F, 0x64, 0xD6, 0x20 }, "Alpesrecherc", "Alpes recherche et développement" },
{ { 0x8C, 0x1F, 0x64, 0xD6, 0x30 }, "Mobileye", "Mobileye" },
{ { 0x8C, 0x1F, 0x64, 0xD6, 0x90 }, "ADiCo", "ADiCo Corporation" },
{ { 0x8C, 0x1F, 0x64, 0xD6, 0xC0 }, "Packetalk", "Packetalk LLC" },
@@ -50134,6 +50750,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xD7, 0xC0 }, "QuercusTechn", "Quercus Technologies, S.L." },
{ { 0x8C, 0x1F, 0x64, 0xD7, 0xE0 }, "ThalesBelgiu", "Thales Belgium" },
{ { 0x8C, 0x1F, 0x64, 0xD7, 0xF0 }, "Fiberstoryco", "Fiberstory communications Pvt Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0xD8, 0x00 }, "Aztek", "Aztek Sa" },
{ { 0x8C, 0x1F, 0x64, 0xD8, 0x10 }, "MitsubishiEl", "Mitsubishi Electric India Pvt. Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xD8, 0x80 }, "UniversityGe", "University of Geneva - Department of Particle Physics" },
{ { 0x8C, 0x1F, 0x64, 0xD8, 0xC0 }, "Smri", "Smri" },
@@ -50147,6 +50764,8 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xD9, 0xA0 }, "RedlinkInfor", "Beijing Redlink Information Technology Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xD9, 0xB0 }, "GiSmbH", "GiS mbH" },
{ { 0x8C, 0x1F, 0x64, 0xD9, 0xC0 }, "Relcom", "Relcom, Inc." },
+ { { 0x8C, 0x1F, 0x64, 0xD9, 0xD0 }, "MitsubishiHe", "Mitsubishi Heavy Industries Thermal Systems, Ltd." },
+ { { 0x8C, 0x1F, 0x64, 0xD9, 0xE0 }, "WagnerGroup", "Wagner Group GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xDA, 0x50 }, "Daom", "Daom" },
{ { 0x8C, 0x1F, 0x64, 0xDA, 0x60 }, "PowerElectro", "Power Electronics Espana, S.L." },
{ { 0x8C, 0x1F, 0x64, 0xDA, 0xA0 }, "Davetech", "Davetech Limited" },
@@ -50181,9 +50800,12 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xE0, 0x00 }, "DvbTech", "Dvb-Tech S.R.L." },
{ { 0x8C, 0x1F, 0x64, 0xE0, 0x20 }, "ITSTeknik", "ITS Teknik A/S" },
{ { 0x8C, 0x1F, 0x64, 0xE0, 0x90 }, "EnlessWirele", "Enless Wireless" },
+ { { 0x8C, 0x1F, 0x64, 0xE0, 0xB0 }, "LaurelElectr", "Laurel Electronics LLC" },
+ { { 0x8C, 0x1F, 0x64, 0xE0, 0xC0 }, "Telestrider", "Telestrider Sa" },
{ { 0x8C, 0x1F, 0x64, 0xE0, 0xE0 }, "Nokeval", "Nokeval Oy" },
{ { 0x8C, 0x1F, 0x64, 0xE1, 0x00 }, "ScenarioAuto", "Scenario Automation" },
{ { 0x8C, 0x1F, 0x64, 0xE1, 0x20 }, "PixusTechnol", "Pixus Technologies Inc." },
+ { { 0x8C, 0x1F, 0x64, 0xE1, 0x40 }, "Proserv", "Proserv" },
{ { 0x8C, 0x1F, 0x64, 0xE1, 0xA0 }, "DAccessSecur", "DAccess Security Systems P Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xE1, 0xE0 }, "FlextronicsI", "Flextronics International Kft" },
{ { 0x8C, 0x1F, 0x64, 0xE2, 0x10 }, "LGLHTAircraf", "LG-LHT Aircraft Solutions GmbH" },
@@ -50192,15 +50814,18 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xE2, 0xB0 }, "GlotechEximP", "Glotech Exim Private Limited" },
{ { 0x8C, 0x1F, 0x64, 0xE2, 0xD0 }, "RADAElectron", "RADA Electronics Industries Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xE3, 0x00 }, "VMuktiSoluti", "VMukti Solutions Private Limited" },
+ { { 0x8C, 0x1F, 0x64, 0xE3, 0x30 }, "AmiadWater", "Amiad Water Systems" },
{ { 0x8C, 0x1F, 0x64, 0xE4, 0x10 }, "Grossenbache", "Grossenbacher Systeme AG" },
{ { 0x8C, 0x1F, 0x64, 0xE4, 0x30 }, "Daedalean", "Daedalean AG" },
{ { 0x8C, 0x1F, 0x64, 0xE4, 0x50 }, "Integerpl", "Integer.pl S.A." },
{ { 0x8C, 0x1F, 0x64, 0xE4, 0x60 }, "Nautel", "Nautel LTD" },
+ { { 0x8C, 0x1F, 0x64, 0xE4, 0x70 }, "BRSSistemasE", "BRS Sistemas Eletrônicos" },
{ { 0x8C, 0x1F, 0x64, 0xE4, 0x90 }, "SamwellInter", "Samwell International Inc" },
{ { 0x8C, 0x1F, 0x64, 0xE4, 0xB0 }, "AlgaziraTele", "Algazira Telecom Solutions" },
{ { 0x8C, 0x1F, 0x64, 0xE4, 0xC0 }, "TTCTELEKOMUN", "TTC TELEKOMUNIKACE, s.r.o." },
{ { 0x8C, 0x1F, 0x64, 0xE4, 0xD0 }, "SanTelequip", "San Telequip (P) Ltd.," },
{ { 0x8C, 0x1F, 0x64, 0xE4, 0xE0 }, "TrivediAdvan", "Trivedi Advanced Technologies LLC" },
+ { { 0x8C, 0x1F, 0x64, 0xE4, 0xF0 }, "Sabl", "Sabl Systems Pty Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xE5, 0x20 }, "LcmVelociApS", "LcmVeloci ApS" },
{ { 0x8C, 0x1F, 0x64, 0xE5, 0x30 }, "TProjeMuhend", "T Proje Muhendislik Dis Tic. Ltd. Sti." },
{ { 0x8C, 0x1F, 0x64, 0xE5, 0xC0 }, "ScientificLi", "Scientific Lightning Solutions" },
@@ -50213,6 +50838,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xE6, 0xE0 }, "HumanDgm", "Human Dgm. Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xE6, 0xF0 }, "VisionSafety", "Vision Systems Safety Tech" },
{ { 0x8C, 0x1F, 0x64, 0xE7, 0x00 }, "TelfiTechnol", "Telfi Technologies Private Limited" },
+ { { 0x8C, 0x1F, 0x64, 0xE7, 0x10 }, "Alma", "Alma" },
{ { 0x8C, 0x1F, 0x64, 0xE7, 0x30 }, "GTRIndustrie", "GTR Industries" },
{ { 0x8C, 0x1F, 0x64, 0xE7, 0x40 }, "Magosys", "Magosys Systems LTD" },
{ { 0x8C, 0x1F, 0x64, 0xE7, 0x50 }, "StercomPower", "Stercom Power Soltions GmbH" },
@@ -50244,6 +50870,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xEC, 0xF0 }, "Monnit", "Monnit Corporation" },
{ { 0x8C, 0x1F, 0x64, 0xED, 0x30 }, "Senso2Me", "Senso2Me Nv" },
{ { 0x8C, 0x1F, 0x64, 0xED, 0x40 }, "ZhejiangChit", "Zhejiang Chitic-Safeway New Energy Technical Co.,Ltd." },
+ { { 0x8C, 0x1F, 0x64, 0xED, 0x60 }, "PowTechnolog", "PowTechnology Limited" },
{ { 0x8C, 0x1F, 0x64, 0xED, 0x90 }, "NetgenHitech", "Netgen Hitech Solutions Llp" },
{ { 0x8C, 0x1F, 0x64, 0xED, 0xA0 }, "DEUTAWERKE", "DEUTA-WERKE GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xEE, 0x10 }, "PuSund", "PuS GmbH und Co. KG" },
@@ -50258,6 +50885,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xEF, 0xB0 }, "Warecube", "Warecube,Inc" },
{ { 0x8C, 0x1F, 0x64, 0xF0, 0x40 }, "IoTSecure", "IoTSecure, LLC" },
{ { 0x8C, 0x1F, 0x64, 0xF0, 0x50 }, "PrestonIndus", "Preston Industries dba PolyScience" },
+ { { 0x8C, 0x1F, 0x64, 0xF0, 0x80 }, "Advantor", "Advantor Corporation" },
{ { 0x8C, 0x1F, 0x64, 0xF0, 0x90 }, "TexiAS", "Texi AS" },
{ { 0x8C, 0x1F, 0x64, 0xF1, 0x00 }, "TelevicRail", "Televic Rail GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xF1, 0x20 }, "CAITRON", "CAITRON GmbH" },
@@ -50308,6 +50936,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xF7, 0x80 }, "TernaryResea", "Ternary Research Corporation" },
{ { 0x8C, 0x1F, 0x64, 0xF7, 0x90 }, "YUYAMAMFG", "YUYAMA MFG Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xF7, 0xA0 }, "SiEngineTech", "SiEngine Technology Co., Ltd." },
+ { { 0x8C, 0x1F, 0x64, 0xF7, 0xD0 }, "RpgInformati", "Rpg Informatica, S.A." },
{ { 0x8C, 0x1F, 0x64, 0xF8, 0x40 }, "KSTtechnolog", "KST technology" },
{ { 0x8C, 0x1F, 0x64, 0xF8, 0x60 }, "INFOSTECH", "INFOSTECH Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xF8, 0x70 }, "FlyElectroni", "Fly Electronic (Shang Hai) Technology Co.,Ltd" },
@@ -50350,6 +50979,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xFE, 0x00 }, "PotterElectr", "Potter Electric Signal Company" },
{ { 0x8C, 0x1F, 0x64, 0xFE, 0x20 }, "VUVAnalytics", "VUV Analytics, Inc." },
{ { 0x8C, 0x1F, 0x64, 0xFE, 0x30 }, "PowerElectro", "Power Electronics Espana, S.L." },
+ { { 0x8C, 0x1F, 0x64, 0xFE, 0x50 }, "Truenorth", "Truenorth" },
{ { 0x8C, 0x1F, 0x64, 0xFE, 0x90 }, "AlzajelModer", "Alzajel Modern Telecommunication" },
{ { 0x8C, 0x1F, 0x64, 0xFE, 0xA0 }, "AKON", "AKON Co.,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xFE, 0xD0 }, "TelevicRail", "Televic Rail GmbH" },
@@ -50357,5 +50987,6 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xFF, 0x40 }, "SMSgroup", "SMS group GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xFF, 0x60 }, "AsconTecnolo", "Ascon Tecnologic S.r.l." },
{ { 0x8C, 0x1F, 0x64, 0xFF, 0x80 }, "Chamsys", "Chamsys Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0xFF, 0x90 }, "Vtron", "Vtron Pty Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xFF, 0xC0 }, "InvendisTech", "Invendis Technologies India Pvt Ltd" },
};
diff --git a/epan/packet.c b/epan/packet.c
index c4bcb4d8..5a4c70a1 100644
--- a/epan/packet.c
+++ b/epan/packet.c
@@ -880,13 +880,6 @@ static int
call_dissector_work_error(dissector_handle_t handle, tvbuff_t *tvb,
packet_info *pinfo_arg, proto_tree *tree, void *);
-/*
- * XXX packet_info.curr_layer_num is a guint8 and *_MAX_RECURSION_DEPTH is
- * 100 elsewhere in the code. We should arguably use the same value here,
- * but using that makes suite_wslua.case_wslua.test_wslua_dissector_fpm fail.
- */
-#define PINFO_LAYER_MAX_RECURSION_DEPTH 500
-
static int
call_dissector_work(dissector_handle_t handle, tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree, gboolean add_proto_name, void *data)
@@ -908,7 +901,7 @@ call_dissector_work(dissector_handle_t handle, tvbuff_t *tvb, packet_info *pinfo
saved_proto = pinfo->current_proto;
saved_can_desegment = pinfo->can_desegment;
saved_layers_len = wmem_list_count(pinfo->layers);
- DISSECTOR_ASSERT(saved_layers_len < PINFO_LAYER_MAX_RECURSION_DEPTH);
+ DISSECTOR_ASSERT(saved_layers_len < prefs.gui_max_tree_depth);
/*
* can_desegment is set to 2 by anyone which offers the
@@ -2942,7 +2935,7 @@ dissector_try_heuristic(heur_dissector_list_t sub_dissectors, tvbuff_t *tvb,
saved_layers_len = wmem_list_count(pinfo->layers);
*heur_dtbl_entry = NULL;
- DISSECTOR_ASSERT(saved_layers_len < PINFO_LAYER_MAX_RECURSION_DEPTH);
+ DISSECTOR_ASSERT(saved_layers_len < prefs.gui_max_tree_depth);
for (entry = sub_dissectors->dissectors; entry != NULL;
entry = g_slist_next(entry)) {
@@ -3917,6 +3910,18 @@ prime_epan_dissect_with_postdissector_wanted_hfids(epan_dissect_t *edt)
}
}
+void
+increment_dissection_depth(packet_info *pinfo) {
+ pinfo->dissection_depth++;
+ DISSECTOR_ASSERT(pinfo->dissection_depth < (int)prefs.gui_max_tree_depth);
+}
+
+void
+decrement_dissection_depth(packet_info *pinfo) {
+ pinfo->dissection_depth--;
+ DISSECTOR_ASSERT(pinfo->dissection_depth >= 0);
+}
+
/*
* Editor modelines - https://www.wireshark.org/tools/modelines.html
*
diff --git a/epan/packet.h b/epan/packet.h
index 63127984..ecfa85a0 100644
--- a/epan/packet.h
+++ b/epan/packet.h
@@ -887,6 +887,20 @@ WS_DLL_PUBLIC gboolean postdissectors_want_hfids(void);
WS_DLL_PUBLIC void
prime_epan_dissect_with_postdissector_wanted_hfids(epan_dissect_t *edt);
+/** Increment the dissection depth.
+ * This should be used to limit recursion outside the tree depth checks in
+ * call_dissector and dissector_try_heuristic.
+ * @param pinfo Packet Info.
+ */
+
+WS_DLL_PUBLIC void increment_dissection_depth(packet_info *pinfo);
+
+/** Decrement the dissection depth.
+ * @param pinfo Packet Info.
+ */
+
+WS_DLL_PUBLIC void decrement_dissection_depth(packet_info *pinfo);
+
/** @} */
#ifdef __cplusplus
diff --git a/epan/packet_info.h b/epan/packet_info.h
index 788deecd..d1e8a200 100644
--- a/epan/packet_info.h
+++ b/epan/packet_info.h
@@ -156,6 +156,7 @@ typedef struct _packet_info {
wmem_allocator_t *pool; /**< Memory pool scoped to the pinfo struct */
struct epan_session *epan;
const gchar *heur_list_name; /**< name of heur list if this packet is being heuristically dissected */
+ int dissection_depth; /**< The current "depth" or layer number in the current frame */
} packet_info;
/** @} */
diff --git a/epan/pci-ids.c b/epan/pci-ids.c
index 77697cab..f506c147 100644
--- a/epan/pci-ids.c
+++ b/epan/pci-ids.c
@@ -6,8 +6,8 @@
*
* List of PCI ID's
*
- * Version: 2023.11.11
- * Date: 2023-11-11 03:15:02
+ * Version: 2024.02.02
+ * Date: 2024-02-02 14:41:33
*
* Maintained by Albert Pool, Martin Mares, and other volunteers from
* the PCI ID Project at https://pci-ids.ucw.cz/.
@@ -39,7 +39,7 @@ typedef struct
uint16_t did;
uint16_t svid;
uint16_t ssid;
- char *name;
+ const char *name;
} pci_id_t;
@@ -47,20 +47,20 @@ typedef struct
{
uint16_t vid;
uint16_t count;
- pci_id_t *ids_ptr;
+ pci_id_t const *ids_ptr;
} pci_vid_index_t;
-pci_id_t pci_vid_0001[] = {
+static pci_id_t const pci_vid_0001[] = {
{0x0001, 0xFFFF, 0xFFFF, 0xFFFF, "SafeNet (wrong ID)(0x0001)"},
}; /* pci_vid_0001[] */
-pci_id_t pci_vid_0010[] = {
+static pci_id_t const pci_vid_0010[] = {
{0x0010, 0xFFFF, 0xFFFF, 0xFFFF, "Allied Telesis, Inc (Wrong ID)(0x0010)"},
{0x0010, 0x8139, 0xFFFF, 0xFFFF, "AT-2500TX V3 Ethernet(0x8139)"},
}; /* pci_vid_0010[] */
-pci_id_t pci_vid_0014[] = {
+static pci_id_t const pci_vid_0014[] = {
{0x0014, 0xFFFF, 0xFFFF, 0xFFFF, "Loongson Technology LLC(0x0014)"},
{0x0014, 0x7A00, 0xFFFF, 0xFFFF, "Hyper Transport Bridge Controller(0x7A00)"},
{0x0014, 0x7A02, 0xFFFF, 0xFFFF, "APB (Advanced Peripheral Bus) Controller(0x7A02)"},
@@ -79,144 +79,156 @@ pci_id_t pci_vid_0014[] = {
{0x0014, 0x7A15, 0xFFFF, 0xFFFF, "Vivante GPU (Graphics Processing Unit)(0x7A15)"},
{0x0014, 0x7A19, 0xFFFF, 0xFFFF, "PCI-to-PCI Bridge(0x7A19)"},
{0x0014, 0x7A24, 0xFFFF, 0xFFFF, "OHCI USB Controller(0x7A24)"},
+{0x0014, 0x7A25, 0xFFFF, 0xFFFF, "LG100 GPU(0x7A25)"},
{0x0014, 0x7A29, 0xFFFF, 0xFFFF, "PCI-to-PCI Bridge(0x7A29)"},
+{0x0014, 0x7A36, 0xFFFF, 0xFFFF, "Display Controller(0x7A36)"},
}; /* pci_vid_0014[] */
-pci_id_t pci_vid_0018[] = {
+static pci_id_t const pci_vid_0018[] = {
{0x0018, 0xFFFF, 0xFFFF, 0xFFFF, "Fn-Link Technology Limited(0x0018)"},
{0x0018, 0x6252, 0xFFFF, 0xFFFF, "6252CPUB 802.11ax PCIe Wireless Network Adapter(0x6252)"},
}; /* pci_vid_0018[] */
-pci_id_t pci_vid_001C[] = {
+static pci_id_t const pci_vid_001C[] = {
{0x001C, 0xFFFF, 0xFFFF, 0xFFFF, "PEAK-System Technik GmbH(0x001C)"},
{0x001C, 0x0001, 0xFFFF, 0xFFFF, "PCAN-PCI CAN-Bus controller(0x0001)"},
{0x001C, 0x0001, 0x001C, 0x0004, "2 Channel CAN Bus SJC1000(0x001C-0x0004)"},
{0x001C, 0x0001, 0x001C, 0x0005, "2 Channel CAN Bus SJC1000 (Optically Isolated)(0x001C-0x0005)"},
}; /* pci_vid_001C[] */
-pci_id_t pci_vid_003D[] = {
+static pci_id_t const pci_vid_003D[] = {
{0x003D, 0xFFFF, 0xFFFF, 0xFFFF, "Lockheed Martin-Marietta Corp(0x003D)"},
}; /* pci_vid_003D[] */
-pci_id_t pci_vid_0059[] = {
+static pci_id_t const pci_vid_0059[] = {
{0x0059, 0xFFFF, 0xFFFF, 0xFFFF, "Tiger Jet Network Inc. (Wrong ID)(0x0059)"},
}; /* pci_vid_0059[] */
-pci_id_t pci_vid_0070[] = {
+static pci_id_t const pci_vid_0070[] = {
{0x0070, 0xFFFF, 0xFFFF, 0xFFFF, "Hauppauge computer works Inc.(0x0070)"},
{0x0070, 0x7801, 0xFFFF, 0xFFFF, "WinTV HVR-1800 MCE(0x7801)"},
}; /* pci_vid_0070[] */
-pci_id_t pci_vid_0071[] = {
+static pci_id_t const pci_vid_0071[] = {
{0x0071, 0xFFFF, 0xFFFF, 0xFFFF, "Nebula Electronics Ltd.(0x0071)"},
}; /* pci_vid_0071[] */
-pci_id_t pci_vid_0095[] = {
+static pci_id_t const pci_vid_0095[] = {
{0x0095, 0xFFFF, 0xFFFF, 0xFFFF, "Silicon Image, Inc. (Wrong ID)(0x0095)"},
{0x0095, 0x0680, 0xFFFF, 0xFFFF, "Ultra ATA/133 IDE RAID CONTROLLER CARD(0x0680)"},
}; /* pci_vid_0095[] */
-pci_id_t pci_vid_00A7[] = {
+static pci_id_t const pci_vid_00A7[] = {
{0x00A7, 0xFFFF, 0xFFFF, 0xFFFF, "Teles AG (Wrong ID)(0x00A7)"},
}; /* pci_vid_00A7[] */
-pci_id_t pci_vid_0100[] = {
+static pci_id_t const pci_vid_0100[] = {
{0x0100, 0xFFFF, 0xFFFF, 0xFFFF, "nCipher Security(0x0100)"},
}; /* pci_vid_0100[] */
-pci_id_t pci_vid_0123[] = {
+static pci_id_t const pci_vid_0123[] = {
{0x0123, 0xFFFF, 0xFFFF, 0xFFFF, "General Dynamics(0x0123)"},
}; /* pci_vid_0123[] */
-pci_id_t pci_vid_0128[] = {
+static pci_id_t const pci_vid_0128[] = {
{0x0128, 0xFFFF, 0xFFFF, 0xFFFF, "Dell (wrong ID)(0x0128)"},
}; /* pci_vid_0128[] */
-pci_id_t pci_vid_018A[] = {
+static pci_id_t const pci_vid_018A[] = {
{0x018A, 0xFFFF, 0xFFFF, 0xFFFF, "LevelOne(0x018A)"},
{0x018A, 0x0106, 0xFFFF, 0xFFFF, "FPC-0106TX misprogrammed [RTL81xx](0x0106)"},
}; /* pci_vid_018A[] */
-pci_id_t pci_vid_01DE[] = {
+static pci_id_t const pci_vid_01DE[] = {
{0x01DE, 0xFFFF, 0xFFFF, 0xFFFF, "Oxide Computer Company(0x01DE)"},
{0x01DE, 0x0000, 0xFFFF, 0xFFFF, "Propolis NVMe Controller(0x0000)"},
{0x01DE, 0x0001, 0xFFFF, 0xFFFF, "Propolis xHCI Controller(0x0001)"},
{0x01DE, 0x0002, 0xFFFF, 0xFFFF, "Propolis PCI-PCI Bridge(0x0002)"},
}; /* pci_vid_01DE[] */
-pci_id_t pci_vid_0200[] = {
+static pci_id_t const pci_vid_0200[] = {
{0x0200, 0xFFFF, 0xFFFF, 0xFFFF, "Dell (wrong ID)(0x0200)"},
}; /* pci_vid_0200[] */
-pci_id_t pci_vid_021B[] = {
+static pci_id_t const pci_vid_021B[] = {
{0x021B, 0xFFFF, 0xFFFF, 0xFFFF, "Compaq Computer Corporation(0x021B)"},
{0x021B, 0x8139, 0xFFFF, 0xFFFF, "HNE-300 (RealTek RTL8139c) [iPaq Networking](0x8139)"},
}; /* pci_vid_021B[] */
-pci_id_t pci_vid_025E[] = {
+static pci_id_t const pci_vid_025E[] = {
{0x025E, 0xFFFF, 0xFFFF, 0xFFFF, "Solidigm(0x025E)"},
{0x025E, 0x0B60, 0xFFFF, 0xFFFF, "NVMe DC SSD [Sentinel Rock Plus controller](0x0B60)"},
+{0x025E, 0x0B60, 0x025E, 0x8008, "NVMe DC SSD U.2 15mm [D7-P5510](0x025E-0x8008)"},
{0x025E, 0x0B60, 0x025E, 0x8208, "NVMe DC SSD U.2 15mm [D7-P5810](0x025E-0x8208)"},
+{0x025E, 0x0B60, 0x025E, 0x8D1D, "NVMe DC SSD E1.L 9.5mm [D5-P5316](0x025E-0x8D1D)"},
+{0x025E, 0x0B60, 0x025E, 0x9008, "NVMe DC SSD U.2 15mm [D7-P5520](0x025E-0x9008)"},
+{0x025E, 0x0B60, 0x025E, 0x900C, "NVMe DC SSD E1.S 9.5mm [D7-P5520](0x025E-0x900C)"},
+{0x025E, 0x0B60, 0x025E, 0x900D, "NVMe DC SSD E1.S 15mm [D7-P5520](0x025E-0x900D)"},
+{0x025E, 0x0B60, 0x025E, 0x901C, "NVMe DC SSD E1.L 9.5mm [D7-P5520](0x025E-0x901C)"},
+{0x025E, 0x0B60, 0x025E, 0x9108, "NVMe DC SSD U.2 15mm [D7-P5620](0x025E-0x9108)"},
+{0x025E, 0x0B60, 0x025E, 0xC008, "NVMe DC SSD U.2 15mm [D5-P5530](0x025E-0xC008)"},
{0x025E, 0x0B60, 0x025E, 0xD408, "NVMe DC SSD U.2 15mm [D5-P5430](0x025E-0xD408)"},
{0x025E, 0x0B60, 0x025E, 0xD40C, "NVMe DC SSD E1.S 9.5mm [D5-P5430](0x025E-0xD40C)"},
{0x025E, 0x0B60, 0x025E, 0xD419, "NVMe DC SSD E3.S 7.5mm [D5-P5430](0x025E-0xD419)"},
{0x025E, 0x0B60, 0x025E, 0xD808, "NVMe DC SSD U.2 15mm [D5-P5336](0x025E-0xD808)"},
{0x025E, 0x0B60, 0x025E, 0xD819, "NVMe DC SSD E3.S 7.5mm [D5-P5336](0x025E-0xD819)"},
+{0x025E, 0x0B60, 0x025E, 0xD81C, "NVMe DC SSD E1.L 18mm [D5-P5336](0x025E-0xD81C)"},
{0x025E, 0x0B60, 0x025E, 0xD81D, "NVMe DC SSD E1.L 9.5mm [D5-P5336](0x025E-0xD81D)"},
{0x025E, 0x0B70, 0xFFFF, 0xFFFF, "NVMe DC SSD [Yorktown controller](0x0B70)"},
+{0x025E, 0x2B59, 0xFFFF, 0xFFFF, "NVMe DC SSD [Atomos Prime](0x2B59)"},
{0x025E, 0xF1AB, 0xFFFF, 0xFFFF, "P41 Plus NVMe SSD (DRAM-less) [Echo Harbor](0xF1AB)"},
{0x025E, 0xF1AC, 0xFFFF, 0xFFFF, "P44 Pro NVMe SSD [Hollywood Beach](0xF1AC)"},
}; /* pci_vid_025E[] */
-pci_id_t pci_vid_0270[] = {
+static pci_id_t const pci_vid_0270[] = {
{0x0270, 0xFFFF, 0xFFFF, 0xFFFF, "Hauppauge computer works Inc. (Wrong ID)(0x0270)"},
}; /* pci_vid_0270[] */
-pci_id_t pci_vid_0291[] = {
+static pci_id_t const pci_vid_0291[] = {
{0x0291, 0xFFFF, 0xFFFF, 0xFFFF, "Davicom Semiconductor, Inc. (Wrong ID)(0x0291)"},
}; /* pci_vid_0291[] */
-pci_id_t pci_vid_02AC[] = {
+static pci_id_t const pci_vid_02AC[] = {
{0x02AC, 0xFFFF, 0xFFFF, 0xFFFF, "SpeedStream(0x02AC)"},
{0x02AC, 0x1012, 0xFFFF, 0xFFFF, "1012 PCMCIA 10/100 Ethernet Card [RTL81xx](0x1012)"},
}; /* pci_vid_02AC[] */
-pci_id_t pci_vid_02E0[] = {
+static pci_id_t const pci_vid_02E0[] = {
{0x02E0, 0xFFFF, 0xFFFF, 0xFFFF, "XFX Pine Group Inc. (Wrong ID)(0x02E0)"},
}; /* pci_vid_02E0[] */
-pci_id_t pci_vid_0303[] = {
+static pci_id_t const pci_vid_0303[] = {
{0x0303, 0xFFFF, 0xFFFF, 0xFFFF, "Hewlett-Packard Company (Wrong ID)(0x0303)"},
}; /* pci_vid_0303[] */
-pci_id_t pci_vid_0308[] = {
+static pci_id_t const pci_vid_0308[] = {
{0x0308, 0xFFFF, 0xFFFF, 0xFFFF, "ZyXEL Communications Corporation (Wrong ID)(0x0308)"},
}; /* pci_vid_0308[] */
-pci_id_t pci_vid_0315[] = {
+static pci_id_t const pci_vid_0315[] = {
{0x0315, 0xFFFF, 0xFFFF, 0xFFFF, "SK-Electronics Co., Ltd.(0x0315)"},
}; /* pci_vid_0315[] */
-pci_id_t pci_vid_0357[] = {
+static pci_id_t const pci_vid_0357[] = {
{0x0357, 0xFFFF, 0xFFFF, 0xFFFF, "TTTech Computertechnik AG (Wrong ID)(0x0357)"},
{0x0357, 0x000A, 0xFFFF, 0xFFFF, "TTP-Monitoring Card V2.0(0x000A)"},
}; /* pci_vid_0357[] */
-pci_id_t pci_vid_0432[] = {
+static pci_id_t const pci_vid_0432[] = {
{0x0432, 0xFFFF, 0xFFFF, 0xFFFF, "SCM Microsystems, Inc.(0x0432)"},
{0x0432, 0x0001, 0xFFFF, 0xFFFF, "Pluto2 DVB-T Receiver for PCMCIA [EasyWatch MobilSet](0x0001)"},
}; /* pci_vid_0432[] */
-pci_id_t pci_vid_0497[] = {
+static pci_id_t const pci_vid_0497[] = {
{0x0497, 0xFFFF, 0xFFFF, 0xFFFF, "Dell Inc. (wrong ID)(0x0497)"},
}; /* pci_vid_0497[] */
-pci_id_t pci_vid_060E[] = {
+static pci_id_t const pci_vid_060E[] = {
{0x060E, 0xFFFF, 0xFFFF, 0xFFFF, "Lightelligence(0x060E)"},
{0x060E, 0x0001, 0xFFFF, 0xFFFF, "Hummingbird ES(0x0001)"},
}; /* pci_vid_060E[] */
-pci_id_t pci_vid_0675[] = {
+static pci_id_t const pci_vid_0675[] = {
{0x0675, 0xFFFF, 0xFFFF, 0xFFFF, "Dynalink(0x0675)"},
{0x0675, 0x1700, 0xFFFF, 0xFFFF, "IS64PH ISDN Adapter(0x1700)"},
{0x0675, 0x1702, 0xFFFF, 0xFFFF, "IS64PH ISDN Adapter(0x1702)"},
@@ -224,11 +236,11 @@ pci_id_t pci_vid_0675[] = {
{0x0675, 0x1704, 0xFFFF, 0xFFFF, "ISDN Adapter (PCI Bus, D, C)(0x1704)"},
}; /* pci_vid_0675[] */
-pci_id_t pci_vid_0721[] = {
+static pci_id_t const pci_vid_0721[] = {
{0x0721, 0xFFFF, 0xFFFF, 0xFFFF, "Sapphire, Inc.(0x0721)"},
}; /* pci_vid_0721[] */
-pci_id_t pci_vid_0731[] = {
+static pci_id_t const pci_vid_0731[] = {
{0x0731, 0xFFFF, 0xFFFF, 0xFFFF, "Jingjia Microelectronics Co Ltd(0x0731)"},
{0x0731, 0x7200, 0xFFFF, 0xFFFF, "JM7200 Series GPU(0x7200)"},
{0x0731, 0x7200, 0x0731, 0x7201, "JM7201(0x0731-0x7201)"},
@@ -269,33 +281,33 @@ pci_id_t pci_vid_0731[] = {
{0x0731, 0x930B, 0xFFFF, 0xFFFF, "JH930-M(0x930B)"},
}; /* pci_vid_0731[] */
-pci_id_t pci_vid_0777[] = {
+static pci_id_t const pci_vid_0777[] = {
{0x0777, 0xFFFF, 0xFFFF, 0xFFFF, "Ubiquiti Networks, Inc.(0x0777)"},
}; /* pci_vid_0777[] */
-pci_id_t pci_vid_0795[] = {
+static pci_id_t const pci_vid_0795[] = {
{0x0795, 0xFFFF, 0xFFFF, 0xFFFF, "Wired Inc.(0x0795)"},
{0x0795, 0x6663, 0xFFFF, 0xFFFF, "Butane II (MPEG2 encoder board)(0x6663)"},
{0x0795, 0x6666, 0xFFFF, 0xFFFF, "MediaPress (MPEG2 encoder board)(0x6666)"},
}; /* pci_vid_0795[] */
-pci_id_t pci_vid_07D1[] = {
+static pci_id_t const pci_vid_07D1[] = {
{0x07D1, 0xFFFF, 0xFFFF, 0xFFFF, "D-Link System Inc(0x07D1)"},
}; /* pci_vid_07D1[] */
-pci_id_t pci_vid_0824[] = {
+static pci_id_t const pci_vid_0824[] = {
{0x0824, 0xFFFF, 0xFFFF, 0xFFFF, "T1042 [Freescale](0x0824)"},
}; /* pci_vid_0824[] */
-pci_id_t pci_vid_0925[] = {
+static pci_id_t const pci_vid_0925[] = {
{0x0925, 0xFFFF, 0xFFFF, 0xFFFF, "VIA Technologies, Inc. (Wrong ID)(0x0925)"},
}; /* pci_vid_0925[] */
-pci_id_t pci_vid_0A89[] = {
+static pci_id_t const pci_vid_0A89[] = {
{0x0A89, 0xFFFF, 0xFFFF, 0xFFFF, "BREA Technologies Inc(0x0A89)"},
}; /* pci_vid_0A89[] */
-pci_id_t pci_vid_0B0B[] = {
+static pci_id_t const pci_vid_0B0B[] = {
{0x0B0B, 0xFFFF, 0xFFFF, 0xFFFF, "Rhino Equipment Corp.(0x0B0B)"},
{0x0B0B, 0x0105, 0xFFFF, 0xFFFF, "R1T1(0x0105)"},
{0x0B0B, 0x0205, 0xFFFF, 0xFFFF, "R4FXO(0x0205)"},
@@ -313,15 +325,21 @@ pci_id_t pci_vid_0B0B[] = {
{0x0B0B, 0x0A06, 0xFFFF, 0xFFFF, "RCB672FXX 672-channel modular analog telephony card(0x0A06)"},
}; /* pci_vid_0B0B[] */
-pci_id_t pci_vid_0BAE[] = {
+static pci_id_t const pci_vid_0BAE[] = {
{0x0BAE, 0xFFFF, 0xFFFF, 0xFFFF, "Bachmann electronic GmbH(0x0BAE)"},
}; /* pci_vid_0BAE[] */
-pci_id_t pci_vid_0CCD[] = {
+static pci_id_t const pci_vid_0CCD[] = {
{0x0CCD, 0xFFFF, 0xFFFF, 0xFFFF, "Preferred Networks, Inc.(0x0CCD)"},
+{0x0CCD, 0x0110, 0xFFFF, 0xFFFF, "MN-Core(0x0110)"},
+{0x0CCD, 0x0120, 0xFFFF, 0xFFFF, "MN-Core 2(0x0120)"},
+{0x0CCD, 0x0120, 0x0CCD, 0x0000, "MN-Core 2 16GB(0x0CCD-0x0000)"},
+{0x0CCD, 0x0120, 0x0CCD, 0x0010, "MN-Core 2 32GB(0x0CCD-0x0010)"},
+{0x0CCD, 0x0200, 0xFFFF, 0xFFFF, "MN-Core Direct Connect(0x0200)"},
+{0x0CCD, 0x0201, 0xFFFF, 0xFFFF, "MN-Core 2 Middle-plane(0x0201)"},
}; /* pci_vid_0CCD[] */
-pci_id_t pci_vid_0E11[] = {
+static pci_id_t const pci_vid_0E11[] = {
{0x0E11, 0xFFFF, 0xFFFF, 0xFFFF, "Compaq Computer Corporation(0x0E11)"},
{0x0E11, 0x0001, 0xFFFF, 0xFFFF, "PCI to EISA Bridge(0x0001)"},
{0x0E11, 0x0002, 0xFFFF, 0xFFFF, "PCI to ISA Bridge(0x0002)"},
@@ -433,20 +451,20 @@ pci_id_t pci_vid_0E11[] = {
{0x0E11, 0xF150, 0xFFFF, 0xFFFF, "NetFlex-3/P ThunderLAN 2.3(0xF150)"},
}; /* pci_vid_0E11[] */
-pci_id_t pci_vid_0E55[] = {
+static pci_id_t const pci_vid_0E55[] = {
{0x0E55, 0xFFFF, 0xFFFF, 0xFFFF, "HaSoTec GmbH(0x0E55)"},
}; /* pci_vid_0E55[] */
-pci_id_t pci_vid_0EAC[] = {
+static pci_id_t const pci_vid_0EAC[] = {
{0x0EAC, 0xFFFF, 0xFFFF, 0xFFFF, "SHF Communication Technologies AG(0x0EAC)"},
{0x0EAC, 0x0008, 0xFFFF, 0xFFFF, "Ethernet Powerlink Managing Node 01(0x0008)"},
}; /* pci_vid_0EAC[] */
-pci_id_t pci_vid_0F62[] = {
+static pci_id_t const pci_vid_0F62[] = {
{0x0F62, 0xFFFF, 0xFFFF, 0xFFFF, "Acrox Technologies Co., Ltd.(0x0F62)"},
}; /* pci_vid_0F62[] */
-pci_id_t pci_vid_1000[] = {
+static pci_id_t const pci_vid_1000[] = {
{0x1000, 0xFFFF, 0xFFFF, 0xFFFF, "Broadcom / LSI(0x1000)"},
{0x1000, 0x0001, 0xFFFF, 0xFFFF, "53c810(0x0001)"},
{0x1000, 0x0001, 0x1000, 0x1000, "LSI53C810AE PCI to SCSI I/O Processor(0x1000-0x1000)"},
@@ -964,6 +982,15 @@ pci_id_t pci_vid_1000[] = {
{0x1000, 0x00B3, 0x1000, 0x5030, "eHBA 9700-16e 24G SAS/PCIe Storage Adapter(0x1000-0x5030)"},
{0x1000, 0x00B3, 0x1028, 0x22D2, "PERC H975i Front(0x1028-0x22D2)"},
{0x1000, 0x00B3, 0x1028, 0x22D3, "PERC H975i Adapter(0x1028-0x22D3)"},
+{0x1000, 0x00B3, 0x1D49, 0x020B, "ThinkSystem 460-16e SAS/SATA PCIe Gen5 24Gb HBA(0x1D49-0x020B)"},
+{0x1000, 0x00B5, 0xFFFF, 0xFFFF, "Fusion-MPT 24G SAS/PCIe SAS50xx/SAS51xx(0x00B5)"},
+{0x1000, 0x00B5, 0x1000, 0x5000, "MegaRAID 9760W-32i 24G SAS/PCIe Storage Adapter(0x1000-0x5000)"},
+{0x1000, 0x00B5, 0x1000, 0x5001, "MegaRAID 9760W-16i 24G SAS/PCIe Storage Adapter(0x1000-0x5001)"},
+{0x1000, 0x00B5, 0x1000, 0x5010, "MegaRAID 9760W-16i16e 24G SAS/PCIe Storage Adapter(0x1000-0x5010)"},
+{0x1000, 0x00B5, 0x1000, 0x5020, "eHBA 9700W-32i 24G SAS/PCIe Storage Adapter(0x1000-0x5020)"},
+{0x1000, 0x00B5, 0x1000, 0x5021, "eHBA 9700W-16i 24G SAS/PCIe Storage Adapter(0x1000-0x5021)"},
+{0x1000, 0x00B5, 0x1000, 0x5030, "eHBA 9700-16e 24G SAS/PCIe Storage Adapter(0x1000-0x5030)"},
+{0x1000, 0x00B8, 0xFFFF, 0xFFFF, "Fusion-MPT Switch SAS50xx/SAS51xx(0x00B8)"},
{0x1000, 0x00BE, 0xFFFF, 0xFFFF, "SAS3504 Fusion-MPT Tri-Mode RAID On Chip (ROC)(0x00BE)"},
{0x1000, 0x00BF, 0xFFFF, 0xFFFF, "SAS3404 Fusion-MPT Tri-Mode I/O Controller Chip (IOC)(0x00BF)"},
{0x1000, 0x00C0, 0xFFFF, 0xFFFF, "SAS3324 PCI-Express Fusion-MPT SAS-3(0x00C0)"},
@@ -1173,10 +1200,12 @@ pci_id_t pci_vid_1000[] = {
{0x1000, 0x10E6, 0x15D9, 0x1C6E, "AOC-SLG4-2H8M2 Storage Adapter(0x15D9-0x1C6E)"},
{0x1000, 0x10E6, 0x1D49, 0x0505, "ThinkSystem RAID 540-8i PCIe Gen4 12Gb Adapter(0x1D49-0x0505)"},
{0x1000, 0x10E6, 0x1D49, 0x0506, "ThinkSystem RAID 540-16i PCIe Gen4 12Gb Adapter(0x1D49-0x0506)"},
+{0x1000, 0x10E6, 0x1D49, 0x0507, "ThinkSystem RAID 545-8i PCIe Gen4 12Gb Adapter(0x1D49-0x0507)"},
{0x1000, 0x10E6, 0x1D49, 0x0700, "ThinkSystem M.2 RAID B540i-2i SATA/NVMe Enablement Kit(0x1D49-0x0700)"},
{0x1000, 0x10E6, 0x1D49, 0x0701, "ThinkSystem 7mm RAID B540p-2HS SATA/NVMe Enablement Kit(0x1D49-0x0701)"},
{0x1000, 0x10E6, 0x1D49, 0x0702, "ThinkSystem M.2 RAID B540p-2HS SATA/NVMe Enablement Kit(0x1D49-0x0702)"},
{0x1000, 0x10E6, 0x1D49, 0x0703, "ThinkSystem M.2 RAID B540d-2HS SATA/NVMe Enablement Kit(0x1D49-0x0703)"},
+{0x1000, 0x10E6, 0x1D49, 0x0704, "ThinkSystem M.2 RAID B545i-2i SATA/NVMe Enablement Kit(0x1D49-0x0704)"},
{0x1000, 0x10E7, 0xFFFF, 0xFFFF, "MegaRAID 12GSAS/PCIe Unsupported SAS38xx(0x10E7)"},
{0x1000, 0x1960, 0xFFFF, 0xFFFF, "MegaRAID(0x1960)"},
{0x1000, 0x1960, 0x1000, 0x0518, "MegaRAID 518 SCSI 320-2 Controller(0x1000-0x0518)"},
@@ -1192,6 +1221,7 @@ pci_id_t pci_vid_1000[] = {
{0x1000, 0x1960, 0x8086, 0x0520, "MegaRAID RAID Controller SRCU41L(0x8086-0x0520)"},
{0x1000, 0x1960, 0x8086, 0x0523, "MegaRAID RAID Controller SRCS16(0x8086-0x0523)"},
{0x1000, 0x3050, 0xFFFF, 0xFFFF, "SAS2008 PCI-Express Fusion-MPT SAS-2(0x3050)"},
+{0x1000, 0x3150, 0xFFFF, 0xFFFF, "1068e(0x3150)"},
{0x1000, 0x6001, 0xFFFF, 0xFFFF, "DX1 Multiformat Broadcast HD/SD Encoder/Decoder(0x6001)"},
{0x1000, 0xC010, 0xFFFF, 0xFFFF, "PEX880xx PCIe Gen 4 Switch(0xC010)"},
{0x1000, 0xC010, 0x1000, 0x100B, "PEX88000 PCIe Gen 4 Virtual Upstream/Downstream Port(0x1000-0x100B)"},
@@ -1234,7 +1264,7 @@ pci_id_t pci_vid_1000[] = {
{0x1000, 0xC034, 0x1000, 0x2005, "PEX89000 Virtual PCIe gDMA Endpoint(0x1000-0x2005)"},
}; /* pci_vid_1000[] */
-pci_id_t pci_vid_1001[] = {
+static pci_id_t const pci_vid_1001[] = {
{0x1001, 0xFFFF, 0xFFFF, 0xFFFF, "Kolter Electronic(0x1001)"},
{0x1001, 0x0010, 0xFFFF, 0xFFFF, "PCI 1616 Measurement card with 32 digital I/O lines(0x0010)"},
{0x1001, 0x0011, 0xFFFF, 0xFFFF, "OPTO-PCI Opto-Isolated digital I/O board(0x0011)"},
@@ -1247,7 +1277,7 @@ pci_id_t pci_vid_1001[] = {
{0x1001, 0x9100, 0xFFFF, 0xFFFF, "INI-9100/9100W SCSI Host(0x9100)"},
}; /* pci_vid_1001[] */
-pci_id_t pci_vid_1002[] = {
+static pci_id_t const pci_vid_1002[] = {
{0x1002, 0xFFFF, 0xFFFF, 0xFFFF, "Advanced Micro Devices, Inc. [AMD/ATI](0x1002)"},
{0x1002, 0x1304, 0xFFFF, 0xFFFF, "Kaveri(0x1304)"},
{0x1002, 0x1305, 0xFFFF, 0xFFFF, "Kaveri(0x1305)"},
@@ -1279,6 +1309,7 @@ pci_id_t pci_vid_1002[] = {
{0x1002, 0x13E9, 0xFFFF, 0xFFFF, "Ariel/Navi10Lite(0x13E9)"},
{0x1002, 0x13F9, 0xFFFF, 0xFFFF, "Oberon/Navi12Lite(0x13F9)"},
{0x1002, 0x13FE, 0xFFFF, 0xFFFF, "Cyan Skillfish [BC-250](0x13FE)"},
+{0x1002, 0x1435, 0xFFFF, 0xFFFF, "Sephiroth [AMD Custom GPU 0405](0x1435)"},
{0x1002, 0x145A, 0xFFFF, 0xFFFF, "Dummy Function (absent graphics controller)(0x145A)"},
{0x1002, 0x1478, 0xFFFF, 0xFFFF, "Navi 10 XL Upstream Port of PCI Express Switch(0x1478)"},
{0x1002, 0x1479, 0xFFFF, 0xFFFF, "Navi 10 XL Downstream Port of PCI Express Switch(0x1479)"},
@@ -2828,6 +2859,7 @@ pci_id_t pci_vid_1002[] = {
{0x1002, 0x6779, 0x1028, 0x2120, "Radeon HD 6450(0x1028-0x2120)"},
{0x1002, 0x6779, 0x103C, 0x2128, "Radeon HD 6450(0x103C-0x2128)"},
{0x1002, 0x6779, 0x103C, 0x2AEE, "Radeon HD 7450A(0x103C-0x2AEE)"},
+{0x1002, 0x6779, 0x1043, 0x047B, "EAH6450 SILENT/DI/1GD3(LP)(0x1043-0x047B)"},
{0x1002, 0x6779, 0x1092, 0x6450, "Radeon HD 6450(0x1092-0x6450)"},
{0x1002, 0x6779, 0x1462, 0x2125, "Radeon HD 6450(0x1462-0x2125)"},
{0x1002, 0x6779, 0x1462, 0x2346, "Radeon HD 7450(0x1462-0x2346)"},
@@ -3818,6 +3850,7 @@ pci_id_t pci_vid_1002[] = {
{0x1002, 0x6980, 0xFFFF, 0xFFFF, "Polaris12(0x6980)"},
{0x1002, 0x6981, 0xFFFF, 0xFFFF, "Lexa XT [Radeon PRO WX 3200](0x6981)"},
{0x1002, 0x6985, 0xFFFF, 0xFFFF, "Lexa XT [Radeon PRO WX 3100](0x6985)"},
+{0x1002, 0x6985, 0x103C, 0x83B5, "Radeon PRO WX 3100(0x103C-0x83B5)"},
{0x1002, 0x6986, 0xFFFF, 0xFFFF, "Polaris12(0x6986)"},
{0x1002, 0x6987, 0xFFFF, 0xFFFF, "Lexa [Radeon 540X/550X/630 / RX 640 / E9171 MCM](0x6987)"},
{0x1002, 0x698F, 0xFFFF, 0xFFFF, "Lexa XT [Radeon PRO WX 3100 / Barco MXRT 4700](0x698F)"},
@@ -4008,6 +4041,7 @@ pci_id_t pci_vid_1002[] = {
{0x1002, 0x73A5, 0xFFFF, 0xFFFF, "Navi 21 [Radeon RX 6950 XT](0x73A5)"},
{0x1002, 0x73A5, 0x1849, 0x5230, "Navi 21 [ASRock OC Forumla Radeon RX 6950XT](0x1849-0x5230)"},
{0x1002, 0x73A5, 0x1DA2, 0x441D, "Navi 21 [Sapphire Nitro+ Radeon RX 6950 XT](0x1DA2-0x441D)"},
+{0x1002, 0x73A5, 0x1EAE, 0x6950, "Navi 21 [XFX Speedster MERC319 Radeon RX 6950 XT](0x1EAE-0x6950)"},
{0x1002, 0x73AB, 0xFFFF, 0xFFFF, "Navi 21 Pro-XLA [Radeon Pro W6800X/Radeon Pro W6800X Duo](0x73AB)"},
{0x1002, 0x73AE, 0xFFFF, 0xFFFF, "Navi 21 [Radeon Pro V620 MxGPU](0x73AE)"},
{0x1002, 0x73AF, 0xFFFF, 0xFFFF, "Navi 21 [Radeon RX 6900 XT](0x73AF)"},
@@ -4027,8 +4061,10 @@ pci_id_t pci_vid_1002[] = {
{0x1002, 0x73DF, 0x1043, 0x16C2, "Radeon RX 6800M(0x1043-0x16C2)"},
{0x1002, 0x73DF, 0x1458, 0x2408, "Radeon RX 6750 XT GAMING OC 12G(0x1458-0x2408)"},
{0x1002, 0x73DF, 0x1462, 0x3980, "Radeon RX 6700 XT Mech 2X 12G [MSI](0x1462-0x3980)"},
+{0x1002, 0x73DF, 0x148C, 0x2409, "Red Devil RX 6700 XT(0x148C-0x2409)"},
{0x1002, 0x73DF, 0x1849, 0x5219, "Radeon RX 6700 XT Challenger D(0x1849-0x5219)"},
{0x1002, 0x73DF, 0x1849, 0x5222, "RX 6700 XT Challenger D OC(0x1849-0x5222)"},
+{0x1002, 0x73DF, 0x1DA2, 0x445E, "Radeon RX 6700 XT GAMING OC 12G [Sapphire PULSE](0x1DA2-0x445E)"},
{0x1002, 0x73DF, 0x1DA2, 0x465E, "Radeon RX 6750 XT PULSE OC(0x1DA2-0x465E)"},
{0x1002, 0x73DF, 0x1DA2, 0xE445, "Sapphire Radeon RX 6700(0x1DA2-0xE445)"},
{0x1002, 0x73DF, 0x1EAE, 0x6601, "Speedster QICK 319 RX 6700 XT(0x1EAE-0x6601)"},
@@ -4057,17 +4093,20 @@ pci_id_t pci_vid_1002[] = {
{0x1002, 0x743F, 0x1DA2, 0xE457, "PULSE AMD Radeon RX 6500 XT(0x1DA2-0xE457)"},
{0x1002, 0x7446, 0xFFFF, 0xFFFF, "Navi 31 USB(0x7446)"},
{0x1002, 0x7448, 0xFFFF, 0xFFFF, "Navi 31 [Radeon Pro W7900](0x7448)"},
-{0x1002, 0x744C, 0xFFFF, 0xFFFF, "Navi 31 [Radeon RX 7900 XT/7900 XTX](0x744C)"},
+{0x1002, 0x744C, 0xFFFF, 0xFFFF, "Navi 31 [Radeon RX 7900 XT/7900 XTX/7900M](0x744C)"},
{0x1002, 0x744C, 0x1002, 0x0E3B, "RX 7900 GRE [XFX](0x1002-0x0E3B)"},
{0x1002, 0x744C, 0x1DA2, 0x471E, "PULSE RX 7900 XTX(0x1DA2-0x471E)"},
{0x1002, 0x744C, 0x1DA2, 0xE471, "NITRO+ RX 7900 XTX Vapor-X(0x1DA2-0xE471)"},
{0x1002, 0x744C, 0x1EAE, 0x7901, "RX-79XMERCB9 [SPEEDSTER MERC 310 RX 7900 XTX](0x1EAE-0x7901)"},
{0x1002, 0x745E, 0xFFFF, 0xFFFF, "Navi 31 [Radeon Pro W7800](0x745E)"},
+{0x1002, 0x7470, 0xFFFF, 0xFFFF, "Navi 32 [Radeon PRO W7700](0x7470)"},
{0x1002, 0x747E, 0xFFFF, 0xFFFF, "Navi 32 [Radeon RX 7700 XT / 7800 XT](0x747E)"},
{0x1002, 0x7480, 0xFFFF, 0xFFFF, "Navi 33 [Radeon RX 7700S/7600/7600S/7600M XT/PRO W7600](0x7480)"},
{0x1002, 0x7480, 0x1849, 0x5313, "RX 7600 Challenger OC(0x1849-0x5313)"},
{0x1002, 0x7483, 0xFFFF, 0xFFFF, "Navi 33 [Radeon RX 7600M/7600M XT](0x7483)"},
{0x1002, 0x7489, 0xFFFF, 0xFFFF, "Navi 33 [Radeon Pro W7500](0x7489)"},
+{0x1002, 0x74A0, 0xFFFF, 0xFFFF, "Aqua Vanjaram [Instinct MI300A](0x74A0)"},
+{0x1002, 0x74A1, 0xFFFF, 0xFFFF, "Aqua Vanjaram [Instinct MI300X](0x74A1)"},
{0x1002, 0x7833, 0xFFFF, 0xFFFF, "RS350 Host Bridge(0x7833)"},
{0x1002, 0x7834, 0xFFFF, 0xFFFF, "RS350 [Radeon 9100 PRO/XT IGP](0x7834)"},
{0x1002, 0x7835, 0xFFFF, 0xFFFF, "RS350M [Mobility Radeon 9000 IGP](0x7835)"},
@@ -4442,6 +4481,7 @@ pci_id_t pci_vid_1002[] = {
{0x1002, 0xAA90, 0xFFFF, 0xFFFF, "Turks HDMI Audio [Radeon HD 6500/6600 / 6700M Series](0xAA90)"},
{0x1002, 0xAA90, 0x1028, 0x04A3, "Precision M4600(0x1028-0x04A3)"},
{0x1002, 0xAA98, 0xFFFF, 0xFFFF, "Caicos HDMI Audio [Radeon HD 6450 / 7450/8450/8490 OEM / R5 230/235/235X OEM](0xAA98)"},
+{0x1002, 0xAA98, 0x1043, 0xAA98, "EAH6450 SILENT/DI/1GD3(LP)(0x1043-0xAA98)"},
{0x1002, 0xAA98, 0x174B, 0xAA98, "Radeon HD 6450 1GB DDR3(0x174B-0xAA98)"},
{0x1002, 0xAAA0, 0xFFFF, 0xFFFF, "Tahiti HDMI Audio [Radeon HD 7870 XT / 7950/7970](0xAAA0)"},
{0x1002, 0xAAB0, 0xFFFF, 0xFFFF, "Oland/Hainan/Cape Verde/Pitcairn HDMI Audio [Radeon HD 7000 Series](0xAAB0)"},
@@ -4486,12 +4526,12 @@ pci_id_t pci_vid_1002[] = {
{0x1002, 0xCBB2, 0xFFFF, 0xFFFF, "RS200 Host Bridge(0xCBB2)"},
}; /* pci_vid_1002[] */
-pci_id_t pci_vid_1003[] = {
+static pci_id_t const pci_vid_1003[] = {
{0x1003, 0xFFFF, 0xFFFF, 0xFFFF, "ULSI Systems(0x1003)"},
{0x1003, 0x0201, 0xFFFF, 0xFFFF, "US201(0x0201)"},
}; /* pci_vid_1003[] */
-pci_id_t pci_vid_1004[] = {
+static pci_id_t const pci_vid_1004[] = {
{0x1004, 0xFFFF, 0xFFFF, 0xFFFF, "VLSI Technology Inc(0x1004)"},
{0x1004, 0x0005, 0xFFFF, 0xFFFF, "82C592-FC1(0x0005)"},
{0x1004, 0x0006, 0xFFFF, 0xFFFF, "82C593-FC1(0x0006)"},
@@ -4528,7 +4568,7 @@ pci_id_t pci_vid_1004[] = {
{0x1004, 0x0703, 0xFFFF, 0xFFFF, "Tollgate(0x0703)"},
}; /* pci_vid_1004[] */
-pci_id_t pci_vid_1005[] = {
+static pci_id_t const pci_vid_1005[] = {
{0x1005, 0xFFFF, 0xFFFF, 0xFFFF, "Avance Logic Inc. [ALI](0x1005)"},
{0x1005, 0x2064, 0xFFFF, 0xFFFF, "ALG2032/2064(0x2064)"},
{0x1005, 0x2128, 0xFFFF, 0xFFFF, "ALG2364A(0x2128)"},
@@ -4539,23 +4579,23 @@ pci_id_t pci_vid_1005[] = {
{0x1005, 0x2501, 0xFFFF, 0xFFFF, "ALG2564A/25128A(0x2501)"},
}; /* pci_vid_1005[] */
-pci_id_t pci_vid_1006[] = {
+static pci_id_t const pci_vid_1006[] = {
{0x1006, 0xFFFF, 0xFFFF, 0xFFFF, "Reply Group(0x1006)"},
}; /* pci_vid_1006[] */
-pci_id_t pci_vid_1007[] = {
+static pci_id_t const pci_vid_1007[] = {
{0x1007, 0xFFFF, 0xFFFF, 0xFFFF, "NetFrame Systems Inc(0x1007)"},
}; /* pci_vid_1007[] */
-pci_id_t pci_vid_1008[] = {
+static pci_id_t const pci_vid_1008[] = {
{0x1008, 0xFFFF, 0xFFFF, 0xFFFF, "Epson(0x1008)"},
}; /* pci_vid_1008[] */
-pci_id_t pci_vid_100A[] = {
+static pci_id_t const pci_vid_100A[] = {
{0x100A, 0xFFFF, 0xFFFF, 0xFFFF, "Phoenix Technologies(0x100A)"},
}; /* pci_vid_100A[] */
-pci_id_t pci_vid_100B[] = {
+static pci_id_t const pci_vid_100B[] = {
{0x100B, 0xFFFF, 0xFFFF, 0xFFFF, "National Semiconductor Corporation(0x100B)"},
{0x100B, 0x0001, 0xFFFF, 0xFFFF, "DP83810(0x0001)"},
{0x100B, 0x0002, 0xFFFF, 0xFFFF, "87415/87560 IDE(0x0002)"},
@@ -4598,7 +4638,7 @@ pci_id_t pci_vid_100B[] = {
{0x100B, 0xD001, 0xFFFF, 0xFFFF, "87410 IDE(0xD001)"},
}; /* pci_vid_100B[] */
-pci_id_t pci_vid_100C[] = {
+static pci_id_t const pci_vid_100C[] = {
{0x100C, 0xFFFF, 0xFFFF, 0xFFFF, "Tseng Labs Inc(0x100C)"},
{0x100C, 0x3202, 0xFFFF, 0xFFFF, "ET4000/W32p rev A(0x3202)"},
{0x100C, 0x3205, 0xFFFF, 0xFFFF, "ET4000/W32p rev B(0x3205)"},
@@ -4608,11 +4648,11 @@ pci_id_t pci_vid_100C[] = {
{0x100C, 0x4702, 0xFFFF, 0xFFFF, "ET6300(0x4702)"},
}; /* pci_vid_100C[] */
-pci_id_t pci_vid_100D[] = {
+static pci_id_t const pci_vid_100D[] = {
{0x100D, 0xFFFF, 0xFFFF, 0xFFFF, "AST Research Inc(0x100D)"},
}; /* pci_vid_100D[] */
-pci_id_t pci_vid_100E[] = {
+static pci_id_t const pci_vid_100E[] = {
{0x100E, 0xFFFF, 0xFFFF, 0xFFFF, "Weitek(0x100E)"},
{0x100E, 0x9000, 0xFFFF, 0xFFFF, "P9000 Viper(0x9000)"},
{0x100E, 0x9001, 0xFFFF, 0xFFFF, "P9000 Viper(0x9001)"},
@@ -4620,11 +4660,11 @@ pci_id_t pci_vid_100E[] = {
{0x100E, 0x9100, 0xFFFF, 0xFFFF, "P9100 Viper Pro/SE(0x9100)"},
}; /* pci_vid_100E[] */
-pci_id_t pci_vid_1010[] = {
+static pci_id_t const pci_vid_1010[] = {
{0x1010, 0xFFFF, 0xFFFF, 0xFFFF, "Video Logic, Ltd.(0x1010)"},
}; /* pci_vid_1010[] */
-pci_id_t pci_vid_1011[] = {
+static pci_id_t const pci_vid_1011[] = {
{0x1011, 0xFFFF, 0xFFFF, 0xFFFF, "Digital Equipment Corporation(0x1011)"},
{0x1011, 0x0001, 0xFFFF, 0xFFFF, "DECchip 21050(0x0001)"},
{0x1011, 0x0002, 0xFFFF, 0xFFFF, "DECchip 21040 [Tulip](0x0002)"},
@@ -4730,11 +4770,11 @@ pci_id_t pci_vid_1011[] = {
{0x1011, 0x1065, 0x1069, 0x0020, "DAC960P / DAC1164P(0x1069-0x0020)"},
}; /* pci_vid_1011[] */
-pci_id_t pci_vid_1012[] = {
+static pci_id_t const pci_vid_1012[] = {
{0x1012, 0xFFFF, 0xFFFF, 0xFFFF, "Micronics Computers Inc(0x1012)"},
}; /* pci_vid_1012[] */
-pci_id_t pci_vid_1013[] = {
+static pci_id_t const pci_vid_1013[] = {
{0x1013, 0xFFFF, 0xFFFF, 0xFFFF, "Cirrus Logic(0x1013)"},
{0x1013, 0x0038, 0xFFFF, 0xFFFF, "GD 7548(0x0038)"},
{0x1013, 0x0040, 0xFFFF, 0xFFFF, "GD 7555 Flat Panel GUI Accelerator(0x0040)"},
@@ -4791,7 +4831,7 @@ pci_id_t pci_vid_1013[] = {
{0x1013, 0x6005, 0x14C0, 0x000C, "Crystal CS4281 PCI Audio(0x14C0-0x000C)"},
}; /* pci_vid_1013[] */
-pci_id_t pci_vid_1014[] = {
+static pci_id_t const pci_vid_1014[] = {
{0x1014, 0xFFFF, 0xFFFF, 0xFFFF, "IBM(0x1014)"},
{0x1014, 0x0002, 0xFFFF, 0xFFFF, "PCI to MCA Bridge(0x0002)"},
{0x1014, 0x0005, 0xFFFF, 0xFFFF, "Processor to I/O Controller [Alta Lite](0x0005)"},
@@ -4957,28 +4997,29 @@ pci_id_t pci_vid_1014[] = {
{0x1014, 0xFFFF, 0xFFFF, 0xFFFF, "MPIC-2 interrupt controller(0xFFFF)"},
}; /* pci_vid_1014[] */
-pci_id_t pci_vid_1015[] = {
+static pci_id_t const pci_vid_1015[] = {
{0x1015, 0xFFFF, 0xFFFF, 0xFFFF, "LSI Logic Corp of Canada(0x1015)"},
}; /* pci_vid_1015[] */
-pci_id_t pci_vid_1016[] = {
+static pci_id_t const pci_vid_1016[] = {
{0x1016, 0xFFFF, 0xFFFF, 0xFFFF, "ICL Personal Systems(0x1016)"},
}; /* pci_vid_1016[] */
-pci_id_t pci_vid_1017[] = {
+static pci_id_t const pci_vid_1017[] = {
{0x1017, 0xFFFF, 0xFFFF, 0xFFFF, "SPEA Software AG(0x1017)"},
{0x1017, 0x5343, 0xFFFF, 0xFFFF, "SPEA 3D Accelerator(0x5343)"},
}; /* pci_vid_1017[] */
-pci_id_t pci_vid_1018[] = {
+static pci_id_t const pci_vid_1018[] = {
{0x1018, 0xFFFF, 0xFFFF, 0xFFFF, "Unisys Systems(0x1018)"},
}; /* pci_vid_1018[] */
-pci_id_t pci_vid_1019[] = {
+static pci_id_t const pci_vid_1019[] = {
{0x1019, 0xFFFF, 0xFFFF, 0xFFFF, "Elitegroup Computer Systems(0x1019)"},
+{0x1019, 0x9602, 0xFFFF, 0xFFFF, "RS780/RS880 PCI to PCI bridge (int gfx)(0x9602)"},
}; /* pci_vid_1019[] */
-pci_id_t pci_vid_101A[] = {
+static pci_id_t const pci_vid_101A[] = {
{0x101A, 0xFFFF, 0xFFFF, 0xFFFF, "AT&T GIS (NCR)(0x101A)"},
{0x101A, 0x0005, 0xFFFF, 0xFFFF, "100VG ethernet(0x0005)"},
{0x101A, 0x0007, 0xFFFF, 0xFFFF, "BYNET BIC4G/2C/2G(0x0007)"},
@@ -4998,12 +5039,12 @@ pci_id_t pci_vid_101A[] = {
{0x101A, 0x1FA8, 0x101A, 0x00C3, "BYNET BIC2SE(0x101A-0x00C3)"},
}; /* pci_vid_101A[] */
-pci_id_t pci_vid_101B[] = {
+static pci_id_t const pci_vid_101B[] = {
{0x101B, 0xFFFF, 0xFFFF, 0xFFFF, "Vitesse Semiconductor(0x101B)"},
{0x101B, 0x0452, 0xFFFF, 0xFFFF, "VSC452 [SuperBMC](0x0452)"},
}; /* pci_vid_101B[] */
-pci_id_t pci_vid_101C[] = {
+static pci_id_t const pci_vid_101C[] = {
{0x101C, 0xFFFF, 0xFFFF, 0xFFFF, "Western Digital(0x101C)"},
{0x101C, 0x0193, 0xFFFF, 0xFFFF, "33C193A(0x0193)"},
{0x101C, 0x0196, 0xFFFF, 0xFFFF, "33C196A(0x0196)"},
@@ -5018,11 +5059,11 @@ pci_id_t pci_vid_101C[] = {
{0x101C, 0xC24A, 0xFFFF, 0xFFFF, "90C(0xC24A)"},
}; /* pci_vid_101C[] */
-pci_id_t pci_vid_101D[] = {
+static pci_id_t const pci_vid_101D[] = {
{0x101D, 0xFFFF, 0xFFFF, 0xFFFF, "Maxim Integrated Products(0x101D)"},
}; /* pci_vid_101D[] */
-pci_id_t pci_vid_101E[] = {
+static pci_id_t const pci_vid_101E[] = {
{0x101E, 0xFFFF, 0xFFFF, 0xFFFF, "American Megatrends Inc.(0x101E)"},
{0x101E, 0x0009, 0xFFFF, 0xFFFF, "MegaRAID 428 Ultra RAID Controller (rev 03)(0x0009)"},
{0x101E, 0x1960, 0xFFFF, 0xFFFF, "MegaRAID(0x1960)"},
@@ -5051,19 +5092,19 @@ pci_id_t pci_vid_101E[] = {
{0x101E, 0x9063, 0x101E, 0x0767, "Dell Remote Assistant Card 2(0x101E-0x0767)"},
}; /* pci_vid_101E[] */
-pci_id_t pci_vid_101F[] = {
+static pci_id_t const pci_vid_101F[] = {
{0x101F, 0xFFFF, 0xFFFF, 0xFFFF, "PictureTel(0x101F)"},
}; /* pci_vid_101F[] */
-pci_id_t pci_vid_1020[] = {
+static pci_id_t const pci_vid_1020[] = {
{0x1020, 0xFFFF, 0xFFFF, 0xFFFF, "Hitachi Computer Products(0x1020)"},
}; /* pci_vid_1020[] */
-pci_id_t pci_vid_1021[] = {
+static pci_id_t const pci_vid_1021[] = {
{0x1021, 0xFFFF, 0xFFFF, 0xFFFF, "OKI Electric Industry Co. Ltd.(0x1021)"},
}; /* pci_vid_1021[] */
-pci_id_t pci_vid_1022[] = {
+static pci_id_t const pci_vid_1022[] = {
{0x1022, 0xFFFF, 0xFFFF, 0xFFFF, "Advanced Micro Devices, Inc. [AMD](0x1022)"},
{0x1022, 0x1100, 0xFFFF, 0xFFFF, "K8 [Athlon64/Opteron] HyperTransport Technology Configuration(0x1100)"},
{0x1022, 0x1101, 0xFFFF, 0xFFFF, "K8 [Athlon64/Opteron] Address Map(0x1101)"},
@@ -5510,7 +5551,7 @@ pci_id_t pci_vid_1022[] = {
{0x1022, 0x1716, 0xFFFF, 0xFFFF, "Family 12h/14h Processor Function 5(0x1716)"},
{0x1022, 0x1718, 0xFFFF, 0xFFFF, "Family 12h/14h Processor Function 6(0x1718)"},
{0x1022, 0x1719, 0xFFFF, 0xFFFF, "Family 12h/14h Processor Function 7(0x1719)"},
-{0x1022, 0x2000, 0xFFFF, 0xFFFF, "79c970 [PCnet32 LANCE](0x2000)"},
+{0x1022, 0x2000, 0xFFFF, 0xFFFF, "79C97x [PCnet32 LANCE](0x2000)"},
{0x1022, 0x2000, 0x1014, 0x2000, "NetFinity 10/100 Fast Ethernet(0x1014-0x2000)"},
{0x1022, 0x2000, 0x1022, 0x2000, "PCnet - Fast 79C971(0x1022-0x2000)"},
{0x1022, 0x2000, 0x103C, 0x104C, "Ethernet with LAN remote power Adapter(0x103C-0x104C)"},
@@ -5524,7 +5565,7 @@ pci_id_t pci_vid_1022[] = {
{0x1022, 0x2000, 0x1259, 0x2454, "AT-2450v4 10Mb Ethernet Adapter(0x1259-0x2454)"},
{0x1022, 0x2000, 0x1259, 0x2700, "AT-2700TX 10/100 Fast Ethernet(0x1259-0x2700)"},
{0x1022, 0x2000, 0x1259, 0x2701, "AT-2700FX 100Mb Ethernet(0x1259-0x2701)"},
-{0x1022, 0x2000, 0x1259, 0x2702, "AT-2700FTX 10/100 Mb Fiber/Copper Fast Ethernet(0x1259-0x2702)"},
+{0x1022, 0x2000, 0x1259, 0x2702, "AT-2700FTX (AM79C976KD [PCnet-PRO] chipset) 10/100 Mb Fiber/Copper Fast Ethernet(0x1259-0x2702)"},
{0x1022, 0x2000, 0x1259, 0x2703, "AT-2701FX(0x1259-0x2703)"},
{0x1022, 0x2000, 0x1259, 0x2704, "AT-2701FTX 10/100 Mb Fiber/Copper Fast Ethernet(0x1259-0x2704)"},
{0x1022, 0x2000, 0x4C53, 0x1000, "CC7/CR7/CP7/VC7/VP7/VR7 mainboard(0x4C53-0x1000)"},
@@ -5537,7 +5578,7 @@ pci_id_t pci_vid_1022[] = {
{0x1022, 0x2001, 0x1092, 0x0A78, "Multimedia Home Network Adapter(0x1092-0x0A78)"},
{0x1022, 0x2001, 0x1668, 0x0299, "ActionLink Home Network Adapter(0x1668-0x0299)"},
{0x1022, 0x2003, 0xFFFF, 0xFFFF, "Am 1771 MBW [Alchemy](0x2003)"},
-{0x1022, 0x2020, 0xFFFF, 0xFFFF, "53c974 [PCscsi](0x2020)"},
+{0x1022, 0x2020, 0xFFFF, 0xFFFF, "AM53/79C974 [PC-SCSI](0x2020)"},
{0x1022, 0x2020, 0x1AF4, 0x1100, "QEMU Virtual Machine(0x1AF4-0x1100)"},
{0x1022, 0x2040, 0xFFFF, 0xFFFF, "79c974(0x2040)"},
{0x1022, 0x2080, 0xFFFF, 0xFFFF, "CS5536 [Geode companion] Host Bridge(0x2080)"},
@@ -5580,6 +5621,10 @@ pci_id_t pci_vid_1022[] = {
{0x1022, 0x43EB, 0x1B21, 0x1062, "ASM1062 Serial ATA Controller(0x1B21-0x1062)"},
{0x1022, 0x43EE, 0xFFFF, 0xFFFF, "500 Series Chipset USB 3.1 XHCI Controller(0x43EE)"},
{0x1022, 0x43EE, 0x1B21, 0x1142, "ASM1042A USB 3.0 Host Controller(0x1B21-0x1142)"},
+{0x1022, 0x43F4, 0xFFFF, 0xFFFF, "600 Series Chipset PCIe Switch Upstream Port(0x43F4)"},
+{0x1022, 0x43F5, 0xFFFF, 0xFFFF, "600 Series Chipset PCIe Switch Downstream Port(0x43F5)"},
+{0x1022, 0x43F6, 0xFFFF, 0xFFFF, "600 Series Chipset SATA Controller(0x43F6)"},
+{0x1022, 0x43F7, 0xFFFF, 0xFFFF, "600 Series Chipset USB 3.2 Controller(0x43F7)"},
{0x1022, 0x57A3, 0xFFFF, 0xFFFF, "Matisse PCIe GPP Bridge(0x57A3)"},
{0x1022, 0x57A4, 0xFFFF, 0xFFFF, "Matisse PCIe GPP Bridge(0x57A4)"},
{0x1022, 0x57AD, 0xFFFF, 0xFFFF, "Matisse Switch Upstream(0x57AD)"},
@@ -5750,7 +5795,7 @@ pci_id_t pci_vid_1022[] = {
{0x1022, 0x960B, 0xFFFF, 0xFFFF, "RS780 PCI to PCI bridge (ext gfx port 1)(0x960B)"},
}; /* pci_vid_1022[] */
-pci_id_t pci_vid_1023[] = {
+static pci_id_t const pci_vid_1023[] = {
{0x1023, 0xFFFF, 0xFFFF, 0xFFFF, "Trident Microsystems(0x1023)"},
{0x1023, 0x0194, 0xFFFF, 0xFFFF, "82C194(0x0194)"},
{0x1023, 0x2000, 0xFFFF, 0xFFFF, "4DWave DX(0x2000)"},
@@ -5809,14 +5854,14 @@ pci_id_t pci_vid_1023[] = {
{0x1023, 0x9960, 0xFFFF, 0xFFFF, "CyberBlade XP2(0x9960)"},
}; /* pci_vid_1023[] */
-pci_id_t pci_vid_1024[] = {
+static pci_id_t const pci_vid_1024[] = {
{0x1024, 0xFFFF, 0xFFFF, 0xFFFF, "Beijing Dajia Internet Information Technology Co.(0x1024)"},
{0x1024, 0x0101, 0xFFFF, 0xFFFF, "StreamLake 200 AI-VPU(0x0101)"},
{0x1024, 0x0101, 0x1024, 0x0201, "SL200-NP(0x1024-0x0201)"},
{0x1024, 0x0101, 0x1024, 0x0301, "SL200-P(0x1024-0x0301)"},
}; /* pci_vid_1024[] */
-pci_id_t pci_vid_1025[] = {
+static pci_id_t const pci_vid_1025[] = {
{0x1025, 0xFFFF, 0xFFFF, 0xFFFF, "Acer Incorporated [ALI](0x1025)"},
{0x1025, 0x1435, 0xFFFF, 0xFFFF, "M1435(0x1435)"},
{0x1025, 0x1445, 0xFFFF, 0xFFFF, "M1445(0x1445)"},
@@ -5878,7 +5923,7 @@ pci_id_t pci_vid_1025[] = {
{0x1025, 0x9602, 0xFFFF, 0xFFFF, "AMD RS780/RS880 PCI to PCI bridge (int gfx)(0x9602)"},
}; /* pci_vid_1025[] */
-pci_id_t pci_vid_1028[] = {
+static pci_id_t const pci_vid_1028[] = {
{0x1028, 0xFFFF, 0xFFFF, 0xFFFF, "Dell(0x1028)"},
{0x1028, 0x0001, 0xFFFF, 0xFFFF, "PowerEdge Expandable RAID Controller 2/Si(0x0001)"},
{0x1028, 0x0001, 0x1028, 0x0001, "PowerEdge 2400(0x1028-0x0001)"},
@@ -5929,11 +5974,11 @@ pci_id_t pci_vid_1028[] = {
{0x1028, 0x9602, 0xFFFF, 0xFFFF, "RS780/RS880 PCI to PCI bridge (int gfx)(0x9602)"},
}; /* pci_vid_1028[] */
-pci_id_t pci_vid_1029[] = {
+static pci_id_t const pci_vid_1029[] = {
{0x1029, 0xFFFF, 0xFFFF, 0xFFFF, "Siemens Nixdorf IS(0x1029)"},
}; /* pci_vid_1029[] */
-pci_id_t pci_vid_102A[] = {
+static pci_id_t const pci_vid_102A[] = {
{0x102A, 0xFFFF, 0xFFFF, 0xFFFF, "LSI Logic(0x102A)"},
{0x102A, 0x0000, 0xFFFF, 0xFFFF, "HYDRA(0x0000)"},
{0x102A, 0x0010, 0xFFFF, 0xFFFF, "ASPEN(0x0010)"},
@@ -5948,7 +5993,7 @@ pci_id_t pci_vid_102A[] = {
{0x102A, 0x00CF, 0x1028, 0x0121, "PowerEdge 2650(0x1028-0x0121)"},
}; /* pci_vid_102A[] */
-pci_id_t pci_vid_102B[] = {
+static pci_id_t const pci_vid_102B[] = {
{0x102B, 0xFFFF, 0xFFFF, 0xFFFF, "Matrox Electronics Systems Ltd.(0x102B)"},
{0x102B, 0x0010, 0xFFFF, 0xFFFF, "MGA-I [Impression?-](0x0010)"},
{0x102B, 0x0100, 0xFFFF, 0xFFFF, "MGA 1064SG [Mystique](0x0100)"},
@@ -6254,7 +6299,7 @@ pci_id_t pci_vid_102B[] = {
{0x102B, 0x6573, 0xFFFF, 0xFFFF, "Shark 10/100 Multiport SwitchNIC(0x6573)"},
}; /* pci_vid_102B[] */
-pci_id_t pci_vid_102C[] = {
+static pci_id_t const pci_vid_102C[] = {
{0x102C, 0xFFFF, 0xFFFF, 0xFFFF, "Chips and Technologies(0x102C)"},
{0x102C, 0x00B8, 0xFFFF, 0xFFFF, "F64310(0x00B8)"},
{0x102C, 0x00C0, 0xFFFF, 0xFFFF, "F69000 HiQVideo(0x00C0)"},
@@ -6283,16 +6328,16 @@ pci_id_t pci_vid_102C[] = {
{0x102C, 0x0C30, 0x4C53, 0x1080, "CT8 mainboard(0x4C53-0x1080)"},
}; /* pci_vid_102C[] */
-pci_id_t pci_vid_102D[] = {
+static pci_id_t const pci_vid_102D[] = {
{0x102D, 0xFFFF, 0xFFFF, 0xFFFF, "Wyse Technology Inc.(0x102D)"},
{0x102D, 0x50DC, 0xFFFF, 0xFFFF, "3328 Audio(0x50DC)"},
}; /* pci_vid_102D[] */
-pci_id_t pci_vid_102E[] = {
+static pci_id_t const pci_vid_102E[] = {
{0x102E, 0xFFFF, 0xFFFF, 0xFFFF, "Olivetti Advanced Technology(0x102E)"},
}; /* pci_vid_102E[] */
-pci_id_t pci_vid_102F[] = {
+static pci_id_t const pci_vid_102F[] = {
{0x102F, 0xFFFF, 0xFFFF, 0xFFFF, "Toshiba America(0x102F)"},
{0x102F, 0x0009, 0xFFFF, 0xFFFF, "r4x00(0x0009)"},
{0x102F, 0x000A, 0xFFFF, 0xFFFF, "TX3927 MIPS RISC PCI Controller(0x000A)"},
@@ -6313,11 +6358,11 @@ pci_id_t pci_vid_102F[] = {
{0x102F, 0x01B6, 0xFFFF, 0xFFFF, "SCC USB 1.1 OHCI controller(0x01B6)"},
}; /* pci_vid_102F[] */
-pci_id_t pci_vid_1030[] = {
+static pci_id_t const pci_vid_1030[] = {
{0x1030, 0xFFFF, 0xFFFF, 0xFFFF, "TMC Research(0x1030)"},
}; /* pci_vid_1030[] */
-pci_id_t pci_vid_1031[] = {
+static pci_id_t const pci_vid_1031[] = {
{0x1031, 0xFFFF, 0xFFFF, 0xFFFF, "Miro Computer Products AG(0x1031)"},
{0x1031, 0x5601, 0xFFFF, 0xFFFF, "DC20 ASIC(0x5601)"},
{0x1031, 0x5607, 0xFFFF, 0xFFFF, "Video I/O & motion JPEG compressor(0x5607)"},
@@ -6325,11 +6370,11 @@ pci_id_t pci_vid_1031[] = {
{0x1031, 0x6057, 0xFFFF, 0xFFFF, "MiroVideo DC10/DC30+(0x6057)"},
}; /* pci_vid_1031[] */
-pci_id_t pci_vid_1032[] = {
+static pci_id_t const pci_vid_1032[] = {
{0x1032, 0xFFFF, 0xFFFF, 0xFFFF, "Compaq(0x1032)"},
}; /* pci_vid_1032[] */
-pci_id_t pci_vid_1033[] = {
+static pci_id_t const pci_vid_1033[] = {
{0x1033, 0xFFFF, 0xFFFF, 0xFFFF, "NEC Corporation(0x1033)"},
{0x1033, 0x0000, 0xFFFF, 0xFFFF, "Vr4181A USB Host or Function Control Unit(0x0000)"},
{0x1033, 0x0001, 0xFFFF, 0xFFFF, "PCI to 486-like bus Bridge(0x0001)"},
@@ -6410,28 +6455,28 @@ pci_id_t pci_vid_1033[] = {
{0x1033, 0x01F2, 0xFFFF, 0xFFFF, "uPD72874 [Firewarden] IEEE1394a OHCI 1.1 Link/3-port PHY Controller(0x01F2)"},
}; /* pci_vid_1033[] */
-pci_id_t pci_vid_1034[] = {
+static pci_id_t const pci_vid_1034[] = {
{0x1034, 0xFFFF, 0xFFFF, 0xFFFF, "Framatome Connectors USA Inc.(0x1034)"},
}; /* pci_vid_1034[] */
-pci_id_t pci_vid_1035[] = {
+static pci_id_t const pci_vid_1035[] = {
{0x1035, 0xFFFF, 0xFFFF, 0xFFFF, "Comp. & Comm. Research Lab(0x1035)"},
}; /* pci_vid_1035[] */
-pci_id_t pci_vid_1036[] = {
+static pci_id_t const pci_vid_1036[] = {
{0x1036, 0xFFFF, 0xFFFF, 0xFFFF, "Future Domain Corp.(0x1036)"},
{0x1036, 0x0000, 0xFFFF, 0xFFFF, "TMC-18C30 [36C70](0x0000)"},
}; /* pci_vid_1036[] */
-pci_id_t pci_vid_1037[] = {
+static pci_id_t const pci_vid_1037[] = {
{0x1037, 0xFFFF, 0xFFFF, 0xFFFF, "Hitachi Micro Systems(0x1037)"},
}; /* pci_vid_1037[] */
-pci_id_t pci_vid_1038[] = {
+static pci_id_t const pci_vid_1038[] = {
{0x1038, 0xFFFF, 0xFFFF, 0xFFFF, "AMP, Inc(0x1038)"},
}; /* pci_vid_1038[] */
-pci_id_t pci_vid_1039[] = {
+static pci_id_t const pci_vid_1039[] = {
{0x1039, 0xFFFF, 0xFFFF, 0xFFFF, "Silicon Integrated Systems [SiS](0x1039)"},
{0x1039, 0x0001, 0xFFFF, 0xFFFF, "AGP Port (virtual PCI-to-PCI bridge)(0x0001)"},
{0x1039, 0x0002, 0xFFFF, 0xFFFF, "AGP Port (virtual PCI-to-PCI bridge)(0x0002)"},
@@ -6621,18 +6666,19 @@ pci_id_t pci_vid_1039[] = {
{0x1039, 0x7502, 0x1043, 0x81A1, "P5SD2-FM/S mainboard(0x1043-0x81A1)"},
}; /* pci_vid_1039[] */
-pci_id_t pci_vid_103A[] = {
+static pci_id_t const pci_vid_103A[] = {
{0x103A, 0xFFFF, 0xFFFF, 0xFFFF, "Seiko Epson Corporation(0x103A)"},
}; /* pci_vid_103A[] */
-pci_id_t pci_vid_103B[] = {
+static pci_id_t const pci_vid_103B[] = {
{0x103B, 0xFFFF, 0xFFFF, 0xFFFF, "Tatung Corp. Of America(0x103B)"},
}; /* pci_vid_103B[] */
-pci_id_t pci_vid_103C[] = {
+static pci_id_t const pci_vid_103C[] = {
{0x103C, 0xFFFF, 0xFFFF, 0xFFFF, "Hewlett-Packard Company(0x103C)"},
{0x103C, 0x1005, 0xFFFF, 0xFFFF, "A4977A Visualize EG(0x1005)"},
{0x103C, 0x1008, 0xFFFF, 0xFFFF, "Visualize FX(0x1008)"},
+{0x103C, 0x1020, 0xFFFF, 0xFFFF, "548XX Scope Interface(0x1020)"},
{0x103C, 0x1028, 0xFFFF, 0xFFFF, "Tach TL Fibre Channel Host Adapter(0x1028)"},
{0x103C, 0x1029, 0xFFFF, 0xFFFF, "Tach XL2 Fibre Channel Host Adapter(0x1029)"},
{0x103C, 0x1029, 0x107E, 0x000F, "Interphase 5560 Fibre Channel Adapter(0x107E-0x000F)"},
@@ -6778,23 +6824,23 @@ pci_id_t pci_vid_103C[] = {
{0x103C, 0x9602, 0x103C, 0x1609, "ProLiant MicroServer N36L(0x103C-0x1609)"},
}; /* pci_vid_103C[] */
-pci_id_t pci_vid_103E[] = {
+static pci_id_t const pci_vid_103E[] = {
{0x103E, 0xFFFF, 0xFFFF, 0xFFFF, "Solliday Engineering(0x103E)"},
}; /* pci_vid_103E[] */
-pci_id_t pci_vid_103F[] = {
+static pci_id_t const pci_vid_103F[] = {
{0x103F, 0xFFFF, 0xFFFF, 0xFFFF, "Synopsys/Logic Modeling Group(0x103F)"},
}; /* pci_vid_103F[] */
-pci_id_t pci_vid_1040[] = {
+static pci_id_t const pci_vid_1040[] = {
{0x1040, 0xFFFF, 0xFFFF, 0xFFFF, "Accelgraphics Inc.(0x1040)"},
}; /* pci_vid_1040[] */
-pci_id_t pci_vid_1041[] = {
+static pci_id_t const pci_vid_1041[] = {
{0x1041, 0xFFFF, 0xFFFF, 0xFFFF, "Computrend(0x1041)"},
}; /* pci_vid_1041[] */
-pci_id_t pci_vid_1042[] = {
+static pci_id_t const pci_vid_1042[] = {
{0x1042, 0xFFFF, 0xFFFF, 0xFFFF, "Micron(0x1042)"},
{0x1042, 0x1000, 0xFFFF, 0xFFFF, "PC Tech RZ1000(0x1000)"},
{0x1042, 0x1001, 0xFFFF, 0xFFFF, "PC Tech RZ1001(0x1001)"},
@@ -6803,10 +6849,8 @@ pci_id_t pci_vid_1042[] = {
{0x1042, 0x3020, 0xFFFF, 0xFFFF, "Samurai_IDE(0x3020)"},
}; /* pci_vid_1042[] */
-pci_id_t pci_vid_1043[] = {
+static pci_id_t const pci_vid_1043[] = {
{0x1043, 0xFFFF, 0xFFFF, 0xFFFF, "ASUSTeK Computer Inc.(0x1043)"},
-{0x1043, 0x0464, 0xFFFF, 0xFFFF, "Radeon R9 270x GPU(0x0464)"},
-{0x1043, 0x0521, 0xFFFF, 0xFFFF, "RX580 [RX 580 Dual O8G](0x0521)"},
{0x1043, 0x0675, 0xFFFF, 0xFFFF, "ISDNLink P-IN100-ST-D(0x0675)"},
{0x1043, 0x0675, 0x0675, 0x1704, "ISDN Adapter (PCI Bus, D, C)(0x0675-0x1704)"},
{0x1043, 0x0675, 0x0675, 0x1707, "ISDN Adapter (PCI Bus, DV, W)(0x0675-0x1707)"},
@@ -6815,7 +6859,7 @@ pci_id_t pci_vid_1043[] = {
{0x1043, 0x9602, 0x1043, 0x83A2, "M4A785TD Motherboard(0x1043-0x83A2)"},
}; /* pci_vid_1043[] */
-pci_id_t pci_vid_1044[] = {
+static pci_id_t const pci_vid_1044[] = {
{0x1044, 0xFFFF, 0xFFFF, 0xFFFF, "Adaptec (formerly DPT)(0x1044)"},
{0x1044, 0x1012, 0xFFFF, 0xFFFF, "Domino RAID Engine(0x1012)"},
{0x1044, 0xA400, 0xFFFF, 0xFFFF, "SmartCache/Raid I-IV Controller(0xA400)"},
@@ -6862,7 +6906,7 @@ pci_id_t pci_vid_1044[] = {
{0x1044, 0xC066, 0xFFFF, 0xFFFF, "3010S Ultra3 Dual Channel(0xC066)"},
}; /* pci_vid_1044[] */
-pci_id_t pci_vid_1045[] = {
+static pci_id_t const pci_vid_1045[] = {
{0x1045, 0xFFFF, 0xFFFF, 0xFFFF, "OPTi Inc.(0x1045)"},
{0x1045, 0xA0F8, 0xFFFF, 0xFFFF, "82C750 [Vendetta] USB Controller(0xA0F8)"},
{0x1045, 0xC101, 0xFFFF, 0xFFFF, "92C264(0xC101)"},
@@ -6889,15 +6933,15 @@ pci_id_t pci_vid_1045[] = {
{0x1045, 0xD721, 0xFFFF, 0xFFFF, "IDE [FireStar](0xD721)"},
}; /* pci_vid_1045[] */
-pci_id_t pci_vid_1046[] = {
+static pci_id_t const pci_vid_1046[] = {
{0x1046, 0xFFFF, 0xFFFF, 0xFFFF, "IPC Corporation, Ltd.(0x1046)"},
}; /* pci_vid_1046[] */
-pci_id_t pci_vid_1047[] = {
+static pci_id_t const pci_vid_1047[] = {
{0x1047, 0xFFFF, 0xFFFF, 0xFFFF, "Genoa Systems Corp(0x1047)"},
}; /* pci_vid_1047[] */
-pci_id_t pci_vid_1048[] = {
+static pci_id_t const pci_vid_1048[] = {
{0x1048, 0xFFFF, 0xFFFF, 0xFFFF, "Elsa AG(0x1048)"},
{0x1048, 0x0C60, 0xFFFF, 0xFFFF, "Gladiac MX(0x0C60)"},
{0x1048, 0x0D22, 0xFFFF, 0xFFFF, "Quadro4 900XGL [ELSA GLoria4 900XGL](0x0D22)"},
@@ -6907,11 +6951,11 @@ pci_id_t pci_vid_1048[] = {
{0x1048, 0x8901, 0x1048, 0x0935, "GLoria XL (Virge)(0x1048-0x0935)"},
}; /* pci_vid_1048[] */
-pci_id_t pci_vid_1049[] = {
+static pci_id_t const pci_vid_1049[] = {
{0x1049, 0xFFFF, 0xFFFF, 0xFFFF, "Fountain Technologies, Inc.(0x1049)"},
}; /* pci_vid_1049[] */
-pci_id_t pci_vid_104A[] = {
+static pci_id_t const pci_vid_104A[] = {
{0x104A, 0xFFFF, 0xFFFF, 0xFFFF, "STMicroelectronics(0x104A)"},
{0x104A, 0x0000, 0xFFFF, 0xFFFF, "STLS2F Host Bridge(0x0000)"},
{0x104A, 0x0008, 0xFFFF, 0xFFFF, "STG 2000X(0x0008)"},
@@ -6944,14 +6988,14 @@ pci_id_t pci_vid_104A[] = {
{0x104A, 0x55CC, 0xFFFF, 0xFFFF, "STPC Client Southbridge(0x55CC)"},
}; /* pci_vid_104A[] */
-pci_id_t pci_vid_104B[] = {
+static pci_id_t const pci_vid_104B[] = {
{0x104B, 0xFFFF, 0xFFFF, 0xFFFF, "BusLogic(0x104B)"},
{0x104B, 0x0140, 0xFFFF, 0xFFFF, "BT-946C (old) [multimaster 01](0x0140)"},
{0x104B, 0x1040, 0xFFFF, 0xFFFF, "BT-946C (BA80C30) [MultiMaster 10](0x1040)"},
{0x104B, 0x8130, 0xFFFF, 0xFFFF, "Flashpoint LT(0x8130)"},
}; /* pci_vid_104B[] */
-pci_id_t pci_vid_104C[] = {
+static pci_id_t const pci_vid_104C[] = {
{0x104C, 0xFFFF, 0xFFFF, 0xFFFF, "Texas Instruments(0x104C)"},
{0x104C, 0x0500, 0xFFFF, 0xFFFF, "100 MBit LAN Controller(0x0500)"},
{0x104C, 0x0508, 0xFFFF, 0xFFFF, "TMS380C2X Compressor Interface(0x0508)"},
@@ -7244,7 +7288,7 @@ pci_id_t pci_vid_104C[] = {
{0x104C, 0xFE03, 0xFFFF, 0xFFFF, "12C01A FireWire Host Controller(0xFE03)"},
}; /* pci_vid_104C[] */
-pci_id_t pci_vid_104D[] = {
+static pci_id_t const pci_vid_104D[] = {
{0x104D, 0xFFFF, 0xFFFF, 0xFFFF, "Sony Corporation(0x104D)"},
{0x104D, 0x8004, 0xFFFF, 0xFFFF, "DTL-H2500 [Playstation development board](0x8004)"},
{0x104D, 0x8009, 0xFFFF, 0xFFFF, "CXD1947Q i.LINK Controller(0x8009)"},
@@ -7290,10 +7334,11 @@ pci_id_t pci_vid_104D[] = {
{0x104D, 0x90DC, 0xFFFF, 0xFFFF, "Baikal DMA Controller(0x90DC)"},
{0x104D, 0x90DD, 0xFFFF, 0xFFFF, "Baikal Memory (DDR3/SPM)(0x90DD)"},
{0x104D, 0x90DE, 0xFFFF, 0xFFFF, "Baikal USB 3.0 xHCI Host Controller(0x90DE)"},
+{0x104D, 0x90EB, 0xFFFF, 0xFFFF, "CXD90062GG(0x90EB)"},
{0x104D, 0x9121, 0xFFFF, 0xFFFF, "Nextorage NEM-PA NVMe SSD for PlayStation(0x9121)"},
}; /* pci_vid_104D[] */
-pci_id_t pci_vid_104E[] = {
+static pci_id_t const pci_vid_104E[] = {
{0x104E, 0xFFFF, 0xFFFF, 0xFFFF, "Oak Technology, Inc(0x104E)"},
{0x104E, 0x0017, 0xFFFF, 0xFFFF, "OTI-64017(0x0017)"},
{0x104E, 0x0107, 0xFFFF, 0xFFFF, "OTI-107 [Spitfire](0x0107)"},
@@ -7303,11 +7348,11 @@ pci_id_t pci_vid_104E[] = {
{0x104E, 0x0317, 0xFFFF, 0xFFFF, "OTI-64317(0x0317)"},
}; /* pci_vid_104E[] */
-pci_id_t pci_vid_104F[] = {
+static pci_id_t const pci_vid_104F[] = {
{0x104F, 0xFFFF, 0xFFFF, 0xFFFF, "Co-time Computer Ltd(0x104F)"},
}; /* pci_vid_104F[] */
-pci_id_t pci_vid_1050[] = {
+static pci_id_t const pci_vid_1050[] = {
{0x1050, 0xFFFF, 0xFFFF, 0xFFFF, "Winbond Electronics Corp(0x1050)"},
{0x1050, 0x0000, 0xFFFF, 0xFFFF, "NE2000(0x0000)"},
{0x1050, 0x0001, 0xFFFF, 0xFFFF, "W83769F(0x0001)"},
@@ -7330,19 +7375,19 @@ pci_id_t pci_vid_1050[] = {
{0x1050, 0x9970, 0xFFFF, 0xFFFF, "W9970CF(0x9970)"},
}; /* pci_vid_1050[] */
-pci_id_t pci_vid_1051[] = {
+static pci_id_t const pci_vid_1051[] = {
{0x1051, 0xFFFF, 0xFFFF, 0xFFFF, "Anigma, Inc.(0x1051)"},
}; /* pci_vid_1051[] */
-pci_id_t pci_vid_1052[] = {
+static pci_id_t const pci_vid_1052[] = {
{0x1052, 0xFFFF, 0xFFFF, 0xFFFF, "?-Young Micro Systems(0x1052)"},
}; /* pci_vid_1052[] */
-pci_id_t pci_vid_1053[] = {
+static pci_id_t const pci_vid_1053[] = {
{0x1053, 0xFFFF, 0xFFFF, 0xFFFF, "Young Micro Systems(0x1053)"},
}; /* pci_vid_1053[] */
-pci_id_t pci_vid_1054[] = {
+static pci_id_t const pci_vid_1054[] = {
{0x1054, 0xFFFF, 0xFFFF, 0xFFFF, "Hitachi, Ltd(0x1054)"},
{0x1054, 0x3009, 0xFFFF, 0xFFFF, "2Gbps Fibre Channel to PCI HBA 3009(0x3009)"},
{0x1054, 0x300A, 0xFFFF, 0xFFFF, "4Gbps Fibre Channel to PCI-X HBA 300a(0x300A)"},
@@ -7362,7 +7407,7 @@ pci_id_t pci_vid_1054[] = {
{0x1054, 0x350E, 0xFFFF, 0xFFFF, "SH7751R PCI Controller (PCIC)(0x350E)"},
}; /* pci_vid_1054[] */
-pci_id_t pci_vid_1055[] = {
+static pci_id_t const pci_vid_1055[] = {
{0x1055, 0xFFFF, 0xFFFF, 0xFFFF, "Microchip Technology / SMSC(0x1055)"},
{0x1055, 0x7430, 0xFFFF, 0xFFFF, "LAN7430(0x7430)"},
{0x1055, 0x7431, 0xFFFF, 0xFFFF, "LAN7431(0x7431)"},
@@ -7373,11 +7418,11 @@ pci_id_t pci_vid_1055[] = {
{0x1055, 0xE420, 0xFFFF, 0xFFFF, "LAN9420/LAN9420i(0xE420)"},
}; /* pci_vid_1055[] */
-pci_id_t pci_vid_1056[] = {
+static pci_id_t const pci_vid_1056[] = {
{0x1056, 0xFFFF, 0xFFFF, 0xFFFF, "ICL(0x1056)"},
}; /* pci_vid_1056[] */
-pci_id_t pci_vid_1057[] = {
+static pci_id_t const pci_vid_1057[] = {
{0x1057, 0xFFFF, 0xFFFF, 0xFFFF, "Motorola(0x1057)"},
{0x1057, 0x0001, 0xFFFF, 0xFFFF, "MPC105 [Eagle](0x0001)"},
{0x1057, 0x0002, 0xFFFF, 0xFFFF, "MPC106 [Grackle](0x0002)"},
@@ -7465,17 +7510,17 @@ pci_id_t pci_vid_1057[] = {
{0x1057, 0x6405, 0xFFFF, 0xFFFF, "MPC184 Security Processor (S1 family)(0x6405)"},
}; /* pci_vid_1057[] */
-pci_id_t pci_vid_1058[] = {
+static pci_id_t const pci_vid_1058[] = {
{0x1058, 0xFFFF, 0xFFFF, 0xFFFF, "Electronics & Telecommunications RSH(0x1058)"},
}; /* pci_vid_1058[] */
-pci_id_t pci_vid_1059[] = {
+static pci_id_t const pci_vid_1059[] = {
{0x1059, 0xFFFF, 0xFFFF, 0xFFFF, "Kontron(0x1059)"},
{0x1059, 0x0004, 0xFFFF, 0xFFFF, "FPGA M.2 (K20058)(0x0004)"},
{0x1059, 0x0004, 0x1059, 0x0000, "FPGA M.2 (K20058)(0x1059-0x0000)"},
}; /* pci_vid_1059[] */
-pci_id_t pci_vid_105A[] = {
+static pci_id_t const pci_vid_105A[] = {
{0x105A, 0xFFFF, 0xFFFF, 0xFFFF, "Promise Technology, Inc.(0x105A)"},
{0x105A, 0x0D30, 0xFFFF, 0xFFFF, "PDC20265 (FastTrak100 Lite/Ultra100)(0x0D30)"},
{0x105A, 0x0D30, 0x1043, 0x8042, "AV7266-E South Bridge Promise RAID(0x1043-0x8042)"},
@@ -7559,16 +7604,17 @@ pci_id_t pci_vid_105A[] = {
{0x105A, 0xE350, 0xFFFF, 0xFFFF, "80333 [SuperTrak EX24350](0xE350)"},
}; /* pci_vid_105A[] */
-pci_id_t pci_vid_105B[] = {
+static pci_id_t const pci_vid_105B[] = {
{0x105B, 0xFFFF, 0xFFFF, 0xFFFF, "Foxconn International, Inc.(0x105B)"},
+{0x105B, 0x9602, 0xFFFF, 0xFFFF, "RS780/RS880 PCI to PCI bridge (int gfx)(0x9602)"},
{0x105B, 0xE0C3, 0xFFFF, 0xFFFF, "T99W175 5G Modem [Snapdragon X55](0xE0C3)"},
}; /* pci_vid_105B[] */
-pci_id_t pci_vid_105C[] = {
+static pci_id_t const pci_vid_105C[] = {
{0x105C, 0xFFFF, 0xFFFF, 0xFFFF, "Wipro Infotech Limited(0x105C)"},
}; /* pci_vid_105C[] */
-pci_id_t pci_vid_105D[] = {
+static pci_id_t const pci_vid_105D[] = {
{0x105D, 0xFFFF, 0xFFFF, 0xFFFF, "Number 9 Computer Company(0x105D)"},
{0x105D, 0x2309, 0xFFFF, 0xFFFF, "Imagine 128(0x2309)"},
{0x105D, 0x2339, 0xFFFF, 0xFFFF, "Imagine 128-II(0x2339)"},
@@ -7608,15 +7654,15 @@ pci_id_t pci_vid_105D[] = {
{0x105D, 0x5348, 0x11A4, 0x0038, "PVS5600D(0x11A4-0x0038)"},
}; /* pci_vid_105D[] */
-pci_id_t pci_vid_105E[] = {
+static pci_id_t const pci_vid_105E[] = {
{0x105E, 0xFFFF, 0xFFFF, 0xFFFF, "Vtech Computers Ltd(0x105E)"},
}; /* pci_vid_105E[] */
-pci_id_t pci_vid_105F[] = {
+static pci_id_t const pci_vid_105F[] = {
{0x105F, 0xFFFF, 0xFFFF, 0xFFFF, "Infotronic America Inc(0x105F)"},
}; /* pci_vid_105F[] */
-pci_id_t pci_vid_1060[] = {
+static pci_id_t const pci_vid_1060[] = {
{0x1060, 0xFFFF, 0xFFFF, 0xFFFF, "United Microelectronics [UMC](0x1060)"},
{0x1060, 0x0001, 0xFFFF, 0xFFFF, "UM82C881(0x0001)"},
{0x1060, 0x0002, 0xFFFF, 0xFFFF, "UM82C886(0x0002)"},
@@ -7642,30 +7688,30 @@ pci_id_t pci_vid_1060[] = {
{0x1060, 0xE891, 0xFFFF, 0xFFFF, "UM8891N(0xE891)"},
}; /* pci_vid_1060[] */
-pci_id_t pci_vid_1061[] = {
+static pci_id_t const pci_vid_1061[] = {
{0x1061, 0xFFFF, 0xFFFF, 0xFFFF, "I.I.T.(0x1061)"},
{0x1061, 0x0001, 0xFFFF, 0xFFFF, "AGX016(0x0001)"},
{0x1061, 0x0002, 0xFFFF, 0xFFFF, "IIT3204/3501(0x0002)"},
}; /* pci_vid_1061[] */
-pci_id_t pci_vid_1062[] = {
+static pci_id_t const pci_vid_1062[] = {
{0x1062, 0xFFFF, 0xFFFF, 0xFFFF, "Maspar Computer Corp(0x1062)"},
}; /* pci_vid_1062[] */
-pci_id_t pci_vid_1063[] = {
+static pci_id_t const pci_vid_1063[] = {
{0x1063, 0xFFFF, 0xFFFF, 0xFFFF, "Ocean Office Automation(0x1063)"},
}; /* pci_vid_1063[] */
-pci_id_t pci_vid_1064[] = {
+static pci_id_t const pci_vid_1064[] = {
{0x1064, 0xFFFF, 0xFFFF, 0xFFFF, "Alcatel(0x1064)"},
{0x1064, 0x1102, 0xFFFF, 0xFFFF, "Dynamite 2840 (ADSL PCI modem)(0x1102)"},
}; /* pci_vid_1064[] */
-pci_id_t pci_vid_1065[] = {
+static pci_id_t const pci_vid_1065[] = {
{0x1065, 0xFFFF, 0xFFFF, 0xFFFF, "Texas Microsystems(0x1065)"},
}; /* pci_vid_1065[] */
-pci_id_t pci_vid_1066[] = {
+static pci_id_t const pci_vid_1066[] = {
{0x1066, 0xFFFF, 0xFFFF, 0xFFFF, "PicoPower Technology(0x1066)"},
{0x1066, 0x0000, 0xFFFF, 0xFFFF, "PT80C826(0x0000)"},
{0x1066, 0x0001, 0xFFFF, 0xFFFF, "PT86C521 [Vesuvius v1] Host Bridge(0x0001)"},
@@ -7676,7 +7722,7 @@ pci_id_t pci_vid_1066[] = {
{0x1066, 0x8002, 0xFFFF, 0xFFFF, "PT86C523 [Vesuvius v3] PCI-ISA Bridge Slave(0x8002)"},
}; /* pci_vid_1066[] */
-pci_id_t pci_vid_1067[] = {
+static pci_id_t const pci_vid_1067[] = {
{0x1067, 0xFFFF, 0xFFFF, 0xFFFF, "Mitsubishi Electric(0x1067)"},
{0x1067, 0x0301, 0xFFFF, 0xFFFF, "AccelGraphics AccelECLIPSE(0x0301)"},
{0x1067, 0x0304, 0xFFFF, 0xFFFF, "AccelGALAXY A2100 [OEM Evans & Sutherland](0x0304)"},
@@ -7684,11 +7730,11 @@ pci_id_t pci_vid_1067[] = {
{0x1067, 0x1002, 0xFFFF, 0xFFFF, "VG500 [VolumePro Volume Rendering Accelerator](0x1002)"},
}; /* pci_vid_1067[] */
-pci_id_t pci_vid_1068[] = {
+static pci_id_t const pci_vid_1068[] = {
{0x1068, 0xFFFF, 0xFFFF, 0xFFFF, "Diversified Technology(0x1068)"},
}; /* pci_vid_1068[] */
-pci_id_t pci_vid_1069[] = {
+static pci_id_t const pci_vid_1069[] = {
{0x1069, 0xFFFF, 0xFFFF, 0xFFFF, "Mylex Corporation(0x1069)"},
{0x1069, 0x0001, 0xFFFF, 0xFFFF, "DAC960P(0x0001)"},
{0x1069, 0x0002, 0xFFFF, 0xFFFF, "DAC960PD(0x0002)"},
@@ -7716,11 +7762,11 @@ pci_id_t pci_vid_1069[] = {
{0x1069, 0xBA57, 0x1069, 0x0072, "eXtremeRAID 5000 support Device(0x1069-0x0072)"},
}; /* pci_vid_1069[] */
-pci_id_t pci_vid_106A[] = {
+static pci_id_t const pci_vid_106A[] = {
{0x106A, 0xFFFF, 0xFFFF, 0xFFFF, "Aten Research Inc(0x106A)"},
}; /* pci_vid_106A[] */
-pci_id_t pci_vid_106B[] = {
+static pci_id_t const pci_vid_106B[] = {
{0x106B, 0xFFFF, 0xFFFF, 0xFFFF, "Apple Inc.(0x106B)"},
{0x106B, 0x0001, 0xFFFF, 0xFFFF, "Bandit PowerPC host bridge(0x0001)"},
{0x106B, 0x0002, 0xFFFF, 0xFFFF, "Grand Central I/O(0x0002)"},
@@ -7803,7 +7849,7 @@ pci_id_t pci_vid_106B[] = {
{0x106B, 0x2005, 0xFFFF, 0xFFFF, "ANS2 NVMe Controller(0x2005)"},
}; /* pci_vid_106B[] */
-pci_id_t pci_vid_106C[] = {
+static pci_id_t const pci_vid_106C[] = {
{0x106C, 0xFFFF, 0xFFFF, 0xFFFF, "Hynix Semiconductor(0x106C)"},
{0x106C, 0x8139, 0xFFFF, 0xFFFF, "8139c 100BaseTX Ethernet Controller(0x8139)"},
{0x106C, 0x8801, 0xFFFF, 0xFFFF, "Dual Pentium ISA/PCI Motherboard(0x8801)"},
@@ -7813,32 +7859,32 @@ pci_id_t pci_vid_106C[] = {
{0x106C, 0x8805, 0xFFFF, 0xFFFF, "100-BaseT LAN(0x8805)"},
}; /* pci_vid_106C[] */
-pci_id_t pci_vid_106D[] = {
+static pci_id_t const pci_vid_106D[] = {
{0x106D, 0xFFFF, 0xFFFF, 0xFFFF, "Sequent Computer Systems(0x106D)"},
}; /* pci_vid_106D[] */
-pci_id_t pci_vid_106E[] = {
+static pci_id_t const pci_vid_106E[] = {
{0x106E, 0xFFFF, 0xFFFF, 0xFFFF, "DFI, Inc(0x106E)"},
}; /* pci_vid_106E[] */
-pci_id_t pci_vid_106F[] = {
+static pci_id_t const pci_vid_106F[] = {
{0x106F, 0xFFFF, 0xFFFF, 0xFFFF, "City Gate Development Ltd(0x106F)"},
}; /* pci_vid_106F[] */
-pci_id_t pci_vid_1070[] = {
+static pci_id_t const pci_vid_1070[] = {
{0x1070, 0xFFFF, 0xFFFF, 0xFFFF, "Daewoo Telecom Ltd(0x1070)"},
}; /* pci_vid_1070[] */
-pci_id_t pci_vid_1071[] = {
+static pci_id_t const pci_vid_1071[] = {
{0x1071, 0xFFFF, 0xFFFF, 0xFFFF, "Mitac(0x1071)"},
{0x1071, 0x8160, 0xFFFF, 0xFFFF, "Mitac 8060B Mobile Platform(0x8160)"},
}; /* pci_vid_1071[] */
-pci_id_t pci_vid_1072[] = {
+static pci_id_t const pci_vid_1072[] = {
{0x1072, 0xFFFF, 0xFFFF, 0xFFFF, "GIT Co Ltd(0x1072)"},
}; /* pci_vid_1072[] */
-pci_id_t pci_vid_1073[] = {
+static pci_id_t const pci_vid_1073[] = {
{0x1073, 0xFFFF, 0xFFFF, 0xFFFF, "Yamaha Corporation(0x1073)"},
{0x1073, 0x0001, 0xFFFF, 0xFFFF, "3D GUI Accelerator(0x0001)"},
{0x1073, 0x0002, 0xFFFF, 0xFFFF, "YGV615 [RPA3 3D-Graphics Controller](0x0002)"},
@@ -7869,23 +7915,23 @@ pci_id_t pci_vid_1073[] = {
{0x1073, 0x2000, 0x1073, 0x2000, "DS2416 Digital Mixing Card(0x1073-0x2000)"},
}; /* pci_vid_1073[] */
-pci_id_t pci_vid_1074[] = {
+static pci_id_t const pci_vid_1074[] = {
{0x1074, 0xFFFF, 0xFFFF, 0xFFFF, "NexGen Microsystems(0x1074)"},
{0x1074, 0x4E78, 0xFFFF, 0xFFFF, "82c500/1(0x4E78)"},
}; /* pci_vid_1074[] */
-pci_id_t pci_vid_1075[] = {
+static pci_id_t const pci_vid_1075[] = {
{0x1075, 0xFFFF, 0xFFFF, 0xFFFF, "Advanced Integrations Research(0x1075)"},
}; /* pci_vid_1075[] */
-pci_id_t pci_vid_1076[] = {
+static pci_id_t const pci_vid_1076[] = {
{0x1076, 0xFFFF, 0xFFFF, 0xFFFF, "Chaintech Computer Co. Ltd(0x1076)"},
}; /* pci_vid_1076[] */
-pci_id_t pci_vid_1077[] = {
+static pci_id_t const pci_vid_1077[] = {
{0x1077, 0xFFFF, 0xFFFF, 0xFFFF, "QLogic Corp.(0x1077)"},
{0x1077, 0x1016, 0xFFFF, 0xFFFF, "ISP10160 Single Channel Ultra3 SCSI Processor(0x1016)"},
-{0x1077, 0x1020, 0xFFFF, 0xFFFF, "ISP1020 Fast-wide SCSI(0x1020)"},
+{0x1077, 0x1020, 0xFFFF, 0xFFFF, "ISP1020/1040 Fast-wide SCSI(0x1020)"},
{0x1077, 0x1022, 0xFFFF, 0xFFFF, "ISP1022 Fast-wide SCSI(0x1022)"},
{0x1077, 0x1080, 0xFFFF, 0xFFFF, "ISP1080 SCSI Host Adapter(0x1080)"},
{0x1077, 0x1216, 0xFFFF, 0xFFFF, "ISP12160 Dual Channel Ultra3 SCSI Processor(0x1216)"},
@@ -8144,7 +8190,7 @@ pci_id_t pci_vid_1077[] = {
{0x1077, 0x8432, 0xFFFF, 0xFFFF, "ISP2432M-based 10GbE Converged Network Adapter (CNA)(0x8432)"},
}; /* pci_vid_1077[] */
-pci_id_t pci_vid_1078[] = {
+static pci_id_t const pci_vid_1078[] = {
{0x1078, 0xFFFF, 0xFFFF, 0xFFFF, "Cyrix Corporation(0x1078)"},
{0x1078, 0x0000, 0xFFFF, 0xFFFF, "5510 [Grappa](0x0000)"},
{0x1078, 0x0001, 0xFFFF, 0xFFFF, "PCI Master(0x0001)"},
@@ -8160,28 +8206,28 @@ pci_id_t pci_vid_1078[] = {
{0x1078, 0x0403, 0xFFFF, 0xFFFF, "ZFMicro Expansion Bus(0x0403)"},
}; /* pci_vid_1078[] */
-pci_id_t pci_vid_1079[] = {
+static pci_id_t const pci_vid_1079[] = {
{0x1079, 0xFFFF, 0xFFFF, 0xFFFF, "I-Bus(0x1079)"},
}; /* pci_vid_1079[] */
-pci_id_t pci_vid_107A[] = {
+static pci_id_t const pci_vid_107A[] = {
{0x107A, 0xFFFF, 0xFFFF, 0xFFFF, "NetWorth(0x107A)"},
}; /* pci_vid_107A[] */
-pci_id_t pci_vid_107B[] = {
+static pci_id_t const pci_vid_107B[] = {
{0x107B, 0xFFFF, 0xFFFF, 0xFFFF, "Gateway, Inc.(0x107B)"},
}; /* pci_vid_107B[] */
-pci_id_t pci_vid_107C[] = {
+static pci_id_t const pci_vid_107C[] = {
{0x107C, 0xFFFF, 0xFFFF, 0xFFFF, "LG Electronics [Lucky Goldstar Co. Ltd](0x107C)"},
}; /* pci_vid_107C[] */
-pci_id_t pci_vid_107D[] = {
+static pci_id_t const pci_vid_107D[] = {
{0x107D, 0xFFFF, 0xFFFF, 0xFFFF, "LeadTek Research Inc.(0x107D)"},
{0x107D, 0x0000, 0xFFFF, 0xFFFF, "P86C850(0x0000)"},
}; /* pci_vid_107D[] */
-pci_id_t pci_vid_107E[] = {
+static pci_id_t const pci_vid_107E[] = {
{0x107E, 0xFFFF, 0xFFFF, 0xFFFF, "Interphase Corporation(0x107E)"},
{0x107E, 0x0001, 0xFFFF, 0xFFFF, "5515 ATM Adapter [Flipper](0x0001)"},
{0x107E, 0x0002, 0xFFFF, 0xFFFF, "100 VG AnyLan Controller(0x0002)"},
@@ -8201,53 +8247,53 @@ pci_id_t pci_vid_107E[] = {
{0x107E, 0x9033, 0xFFFF, 0xFFFF, "5536-2P-PRI(0x9033)"},
}; /* pci_vid_107E[] */
-pci_id_t pci_vid_107F[] = {
+static pci_id_t const pci_vid_107F[] = {
{0x107F, 0xFFFF, 0xFFFF, 0xFFFF, "Data Technology Corporation(0x107F)"},
{0x107F, 0x0802, 0xFFFF, 0xFFFF, "SL82C105(0x0802)"},
}; /* pci_vid_107F[] */
-pci_id_t pci_vid_1080[] = {
+static pci_id_t const pci_vid_1080[] = {
{0x1080, 0xFFFF, 0xFFFF, 0xFFFF, "Contaq Microsystems(0x1080)"},
{0x1080, 0x0600, 0xFFFF, 0xFFFF, "82C599(0x0600)"},
{0x1080, 0xC691, 0xFFFF, 0xFFFF, "Cypress CY82C691(0xC691)"},
{0x1080, 0xC693, 0xFFFF, 0xFFFF, "82c693(0xC693)"},
}; /* pci_vid_1080[] */
-pci_id_t pci_vid_1081[] = {
+static pci_id_t const pci_vid_1081[] = {
{0x1081, 0xFFFF, 0xFFFF, 0xFFFF, "Supermac Technology(0x1081)"},
{0x1081, 0x0D47, 0xFFFF, 0xFFFF, "Radius PCI to NuBUS Bridge(0x0D47)"},
}; /* pci_vid_1081[] */
-pci_id_t pci_vid_1082[] = {
+static pci_id_t const pci_vid_1082[] = {
{0x1082, 0xFFFF, 0xFFFF, 0xFFFF, "EFA Corporation of America(0x1082)"},
}; /* pci_vid_1082[] */
-pci_id_t pci_vid_1083[] = {
+static pci_id_t const pci_vid_1083[] = {
{0x1083, 0xFFFF, 0xFFFF, 0xFFFF, "Forex Computer Corporation(0x1083)"},
{0x1083, 0x0001, 0xFFFF, 0xFFFF, "FR710(0x0001)"},
}; /* pci_vid_1083[] */
-pci_id_t pci_vid_1084[] = {
+static pci_id_t const pci_vid_1084[] = {
{0x1084, 0xFFFF, 0xFFFF, 0xFFFF, "Parador(0x1084)"},
}; /* pci_vid_1084[] */
-pci_id_t pci_vid_1086[] = {
+static pci_id_t const pci_vid_1086[] = {
{0x1086, 0xFFFF, 0xFFFF, 0xFFFF, "J. Bond Computer Systems(0x1086)"},
}; /* pci_vid_1086[] */
-pci_id_t pci_vid_1087[] = {
+static pci_id_t const pci_vid_1087[] = {
{0x1087, 0xFFFF, 0xFFFF, 0xFFFF, "Cache Computer(0x1087)"},
}; /* pci_vid_1087[] */
-pci_id_t pci_vid_1088[] = {
+static pci_id_t const pci_vid_1088[] = {
{0x1088, 0xFFFF, 0xFFFF, 0xFFFF, "Microcomputer Systems (M) Son(0x1088)"},
}; /* pci_vid_1088[] */
-pci_id_t pci_vid_1089[] = {
+static pci_id_t const pci_vid_1089[] = {
{0x1089, 0xFFFF, 0xFFFF, 0xFFFF, "Data General Corporation(0x1089)"},
}; /* pci_vid_1089[] */
-pci_id_t pci_vid_108A[] = {
+static pci_id_t const pci_vid_108A[] = {
{0x108A, 0xFFFF, 0xFFFF, 0xFFFF, "SBS Technologies(0x108A)"},
{0x108A, 0x0001, 0xFFFF, 0xFFFF, "VME Bridge Model 617(0x0001)"},
{0x108A, 0x0010, 0xFFFF, 0xFFFF, "VME Bridge Model 618(0x0010)"},
@@ -8255,11 +8301,11 @@ pci_id_t pci_vid_108A[] = {
{0x108A, 0x3000, 0xFFFF, 0xFFFF, "VME Bridge Model 2706(0x3000)"},
}; /* pci_vid_108A[] */
-pci_id_t pci_vid_108C[] = {
+static pci_id_t const pci_vid_108C[] = {
{0x108C, 0xFFFF, 0xFFFF, 0xFFFF, "Oakleigh Systems Inc.(0x108C)"},
}; /* pci_vid_108C[] */
-pci_id_t pci_vid_108D[] = {
+static pci_id_t const pci_vid_108D[] = {
{0x108D, 0xFFFF, 0xFFFF, 0xFFFF, "Olicom(0x108D)"},
{0x108D, 0x0001, 0xFFFF, 0xFFFF, "Token-Ring 16/4 PCI Adapter (3136/3137)(0x0001)"},
{0x108D, 0x0002, 0xFFFF, 0xFFFF, "16/4 Token Ring(0x0002)"},
@@ -8282,7 +8328,7 @@ pci_id_t pci_vid_108D[] = {
{0x108D, 0x0022, 0xFFFF, 0xFFFF, "ATM Adapter(0x0022)"},
}; /* pci_vid_108D[] */
-pci_id_t pci_vid_108E[] = {
+static pci_id_t const pci_vid_108E[] = {
{0x108E, 0xFFFF, 0xFFFF, 0xFFFF, "Oracle/SUN(0x108E)"},
{0x108E, 0x0001, 0xFFFF, 0xFFFF, "EBUS(0x0001)"},
{0x108E, 0x1000, 0xFFFF, 0xFFFF, "STP2003QFP [PCIO] EBUS(0x1000)"},
@@ -8343,17 +8389,17 @@ pci_id_t pci_vid_108E[] = {
{0x108E, 0xC416, 0xFFFF, 0xFFFF, "Sun Fire System/System Controller Interface chip [sbbc](0xC416)"},
}; /* pci_vid_108E[] */
-pci_id_t pci_vid_108F[] = {
+static pci_id_t const pci_vid_108F[] = {
{0x108F, 0xFFFF, 0xFFFF, 0xFFFF, "Systemsoft(0x108F)"},
}; /* pci_vid_108F[] */
-pci_id_t pci_vid_1090[] = {
+static pci_id_t const pci_vid_1090[] = {
{0x1090, 0xFFFF, 0xFFFF, 0xFFFF, "Compro Computer Services, Inc.(0x1090)"},
{0x1090, 0x4610, 0xFFFF, 0xFFFF, "PCI RTOM(0x4610)"},
{0x1090, 0x4620, 0xFFFF, 0xFFFF, "GPIO HSD(0x4620)"},
}; /* pci_vid_1090[] */
-pci_id_t pci_vid_1091[] = {
+static pci_id_t const pci_vid_1091[] = {
{0x1091, 0xFFFF, 0xFFFF, 0xFFFF, "Intergraph Corporation(0x1091)"},
{0x1091, 0x0020, 0xFFFF, 0xFFFF, "3D graphics processor(0x0020)"},
{0x1091, 0x0021, 0xFFFF, 0xFFFF, "3D graphics processor w/Texturing(0x0021)"},
@@ -8367,7 +8413,7 @@ pci_id_t pci_vid_1091[] = {
{0x1091, 0x1091, 0xFFFF, 0xFFFF, "Sun Expert3D Graphics Accelerator(0x1091)"},
}; /* pci_vid_1091[] */
-pci_id_t pci_vid_1092[] = {
+static pci_id_t const pci_vid_1092[] = {
{0x1092, 0xFFFF, 0xFFFF, 0xFFFF, "Diamond Multimedia Systems(0x1092)"},
{0x1092, 0x0028, 0xFFFF, 0xFFFF, "Viper V770(0x0028)"},
{0x1092, 0x0028, 0x1092, 0x4A00, "Viper V770 32MB(0x1092-0x4A00)"},
@@ -8394,7 +8440,7 @@ pci_id_t pci_vid_1092[] = {
{0x1092, 0x9999, 0xFFFF, 0xFFFF, "DMD-I0928-1 \"Monster sound\" sound chip(0x9999)"},
}; /* pci_vid_1092[] */
-pci_id_t pci_vid_1093[] = {
+static pci_id_t const pci_vid_1093[] = {
{0x1093, 0xFFFF, 0xFFFF, 0xFFFF, "National Instruments(0x1093)"},
{0x1093, 0x0160, 0xFFFF, 0xFFFF, "PCI-DIO-96(0x0160)"},
{0x1093, 0x0162, 0xFFFF, 0xFFFF, "PCI-MIO-16XE-50(0x0162)"},
@@ -9178,11 +9224,11 @@ pci_id_t pci_vid_1093[] = {
{0x1093, 0xFE70, 0xFFFF, 0xFFFF, "VXIpc-880(0xFE70)"},
}; /* pci_vid_1093[] */
-pci_id_t pci_vid_1094[] = {
+static pci_id_t const pci_vid_1094[] = {
{0x1094, 0xFFFF, 0xFFFF, 0xFFFF, "First International Computers [FIC](0x1094)"},
}; /* pci_vid_1094[] */
-pci_id_t pci_vid_1095[] = {
+static pci_id_t const pci_vid_1095[] = {
{0x1095, 0xFFFF, 0xFFFF, 0xFFFF, "Silicon Image, Inc.(0x1095)"},
{0x1095, 0x0240, 0xFFFF, 0xFFFF, "Adaptec AAR-1210SA SATA HostRAID Controller(0x0240)"},
{0x1095, 0x0242, 0xFFFF, 0xFFFF, "AAR-1220SA SATA RAID Controller(0x0242)"},
@@ -9221,41 +9267,41 @@ pci_id_t pci_vid_1095[] = {
{0x1095, 0x3531, 0x17C0, 0x4083, "Medion WIM 2210 Notebook PC [MD96850](0x17C0-0x4083)"},
}; /* pci_vid_1095[] */
-pci_id_t pci_vid_1096[] = {
+static pci_id_t const pci_vid_1096[] = {
{0x1096, 0xFFFF, 0xFFFF, 0xFFFF, "Alacron(0x1096)"},
}; /* pci_vid_1096[] */
-pci_id_t pci_vid_1097[] = {
+static pci_id_t const pci_vid_1097[] = {
{0x1097, 0xFFFF, 0xFFFF, 0xFFFF, "Appian Technology(0x1097)"},
}; /* pci_vid_1097[] */
-pci_id_t pci_vid_1098[] = {
+static pci_id_t const pci_vid_1098[] = {
{0x1098, 0xFFFF, 0xFFFF, 0xFFFF, "Quantum Designs (H.K.) Ltd(0x1098)"},
{0x1098, 0x0001, 0xFFFF, 0xFFFF, "QD-8500(0x0001)"},
{0x1098, 0x0002, 0xFFFF, 0xFFFF, "QD-8580(0x0002)"},
}; /* pci_vid_1098[] */
-pci_id_t pci_vid_1099[] = {
+static pci_id_t const pci_vid_1099[] = {
{0x1099, 0xFFFF, 0xFFFF, 0xFFFF, "Samsung Electronics Co., Ltd(0x1099)"},
}; /* pci_vid_1099[] */
-pci_id_t pci_vid_109A[] = {
+static pci_id_t const pci_vid_109A[] = {
{0x109A, 0xFFFF, 0xFFFF, 0xFFFF, "Packard Bell(0x109A)"},
}; /* pci_vid_109A[] */
-pci_id_t pci_vid_109B[] = {
+static pci_id_t const pci_vid_109B[] = {
{0x109B, 0xFFFF, 0xFFFF, 0xFFFF, "Gemlight Computer Ltd.(0x109B)"},
}; /* pci_vid_109B[] */
-pci_id_t pci_vid_109C[] = {
+static pci_id_t const pci_vid_109C[] = {
{0x109C, 0xFFFF, 0xFFFF, 0xFFFF, "Megachips Corporation(0x109C)"},
}; /* pci_vid_109C[] */
-pci_id_t pci_vid_109D[] = {
+static pci_id_t const pci_vid_109D[] = {
{0x109D, 0xFFFF, 0xFFFF, 0xFFFF, "Zida Technologies Ltd.(0x109D)"},
}; /* pci_vid_109D[] */
-pci_id_t pci_vid_109E[] = {
+static pci_id_t const pci_vid_109E[] = {
{0x109E, 0xFFFF, 0xFFFF, 0xFFFF, "Brooktree Corporation(0x109E)"},
{0x109E, 0x0310, 0xFFFF, 0xFFFF, "Bt848 Video Capture(0x0310)"},
{0x109E, 0x032E, 0xFFFF, 0xFFFF, "Bt878 Video Capture(0x032E)"},
@@ -9448,50 +9494,50 @@ pci_id_t pci_vid_109E[] = {
{0x109E, 0x8474, 0xFFFF, 0xFFFF, "Bt8474(0x8474)"},
}; /* pci_vid_109E[] */
-pci_id_t pci_vid_109F[] = {
+static pci_id_t const pci_vid_109F[] = {
{0x109F, 0xFFFF, 0xFFFF, 0xFFFF, "Trigem Computer Inc.(0x109F)"},
}; /* pci_vid_109F[] */
-pci_id_t pci_vid_10A0[] = {
+static pci_id_t const pci_vid_10A0[] = {
{0x10A0, 0xFFFF, 0xFFFF, 0xFFFF, "Meidensha Corporation(0x10A0)"},
}; /* pci_vid_10A0[] */
-pci_id_t pci_vid_10A1[] = {
+static pci_id_t const pci_vid_10A1[] = {
{0x10A1, 0xFFFF, 0xFFFF, 0xFFFF, "Juko Electronics Ind. Co. Ltd(0x10A1)"},
}; /* pci_vid_10A1[] */
-pci_id_t pci_vid_10A2[] = {
+static pci_id_t const pci_vid_10A2[] = {
{0x10A2, 0xFFFF, 0xFFFF, 0xFFFF, "Quantum Corporation(0x10A2)"},
}; /* pci_vid_10A2[] */
-pci_id_t pci_vid_10A3[] = {
+static pci_id_t const pci_vid_10A3[] = {
{0x10A3, 0xFFFF, 0xFFFF, 0xFFFF, "Everex Systems Inc(0x10A3)"},
}; /* pci_vid_10A3[] */
-pci_id_t pci_vid_10A4[] = {
+static pci_id_t const pci_vid_10A4[] = {
{0x10A4, 0xFFFF, 0xFFFF, 0xFFFF, "Globe Manufacturing Sales(0x10A4)"},
}; /* pci_vid_10A4[] */
-pci_id_t pci_vid_10A5[] = {
+static pci_id_t const pci_vid_10A5[] = {
{0x10A5, 0xFFFF, 0xFFFF, 0xFFFF, "Smart Link Ltd.(0x10A5)"},
{0x10A5, 0x3052, 0xFFFF, 0xFFFF, "SmartPCI562 56K Modem(0x3052)"},
{0x10A5, 0x5449, 0xFFFF, 0xFFFF, "SmartPCI561 modem(0x5449)"},
}; /* pci_vid_10A5[] */
-pci_id_t pci_vid_10A6[] = {
+static pci_id_t const pci_vid_10A6[] = {
{0x10A6, 0xFFFF, 0xFFFF, 0xFFFF, "Informtech Industrial Ltd.(0x10A6)"},
}; /* pci_vid_10A6[] */
-pci_id_t pci_vid_10A7[] = {
+static pci_id_t const pci_vid_10A7[] = {
{0x10A7, 0xFFFF, 0xFFFF, 0xFFFF, "Benchmarq Microelectronics(0x10A7)"},
}; /* pci_vid_10A7[] */
-pci_id_t pci_vid_10A8[] = {
+static pci_id_t const pci_vid_10A8[] = {
{0x10A8, 0xFFFF, 0xFFFF, 0xFFFF, "Sierra Semiconductor(0x10A8)"},
{0x10A8, 0x0000, 0xFFFF, 0xFFFF, "STB Horizon 64(0x0000)"},
}; /* pci_vid_10A8[] */
-pci_id_t pci_vid_10A9[] = {
+static pci_id_t const pci_vid_10A9[] = {
{0x10A9, 0xFFFF, 0xFFFF, 0xFFFF, "Silicon Graphics Intl. Corp.(0x10A9)"},
{0x10A9, 0x0001, 0xFFFF, 0xFFFF, "Crosstalk to PCI Bridge(0x0001)"},
{0x10A9, 0x0002, 0xFFFF, 0xFFFF, "Linc I/O controller(0x0002)"},
@@ -9526,22 +9572,22 @@ pci_id_t pci_vid_10A9[] = {
{0x10A9, 0x802B, 0xFFFF, 0xFFFF, "REACT external interrupt controller(0x802B)"},
}; /* pci_vid_10A9[] */
-pci_id_t pci_vid_10AA[] = {
+static pci_id_t const pci_vid_10AA[] = {
{0x10AA, 0xFFFF, 0xFFFF, 0xFFFF, "ACC Microelectronics(0x10AA)"},
{0x10AA, 0x0000, 0xFFFF, 0xFFFF, "ACCM 2188(0x0000)"},
{0x10AA, 0x2051, 0xFFFF, 0xFFFF, "2051 CPU bridge(0x2051)"},
{0x10AA, 0x5842, 0xFFFF, 0xFFFF, "2051 ISA bridge(0x5842)"},
}; /* pci_vid_10AA[] */
-pci_id_t pci_vid_10AB[] = {
+static pci_id_t const pci_vid_10AB[] = {
{0x10AB, 0xFFFF, 0xFFFF, 0xFFFF, "Digicom(0x10AB)"},
}; /* pci_vid_10AB[] */
-pci_id_t pci_vid_10AC[] = {
+static pci_id_t const pci_vid_10AC[] = {
{0x10AC, 0xFFFF, 0xFFFF, 0xFFFF, "Honeywell IAC(0x10AC)"},
}; /* pci_vid_10AC[] */
-pci_id_t pci_vid_10AD[] = {
+static pci_id_t const pci_vid_10AD[] = {
{0x10AD, 0xFFFF, 0xFFFF, 0xFFFF, "Symphony Labs(0x10AD)"},
{0x10AD, 0x0001, 0xFFFF, 0xFFFF, "W83769F(0x0001)"},
{0x10AD, 0x0003, 0xFFFF, 0xFFFF, "SL82C103(0x0003)"},
@@ -9551,39 +9597,39 @@ pci_id_t pci_vid_10AD[] = {
{0x10AD, 0x0565, 0xFFFF, 0xFFFF, "W83C553F/W83C554F(0x0565)"},
}; /* pci_vid_10AD[] */
-pci_id_t pci_vid_10AE[] = {
+static pci_id_t const pci_vid_10AE[] = {
{0x10AE, 0xFFFF, 0xFFFF, 0xFFFF, "Cornerstone Technology(0x10AE)"},
}; /* pci_vid_10AE[] */
-pci_id_t pci_vid_10AF[] = {
+static pci_id_t const pci_vid_10AF[] = {
{0x10AF, 0xFFFF, 0xFFFF, 0xFFFF, "Micro Computer Systems Inc(0x10AF)"},
}; /* pci_vid_10AF[] */
-pci_id_t pci_vid_10B0[] = {
+static pci_id_t const pci_vid_10B0[] = {
{0x10B0, 0xFFFF, 0xFFFF, 0xFFFF, "CardExpert Technology(0x10B0)"},
}; /* pci_vid_10B0[] */
-pci_id_t pci_vid_10B1[] = {
+static pci_id_t const pci_vid_10B1[] = {
{0x10B1, 0xFFFF, 0xFFFF, 0xFFFF, "Cabletron Systems Inc(0x10B1)"},
}; /* pci_vid_10B1[] */
-pci_id_t pci_vid_10B2[] = {
+static pci_id_t const pci_vid_10B2[] = {
{0x10B2, 0xFFFF, 0xFFFF, 0xFFFF, "Raytheon Company(0x10B2)"},
}; /* pci_vid_10B2[] */
-pci_id_t pci_vid_10B3[] = {
+static pci_id_t const pci_vid_10B3[] = {
{0x10B3, 0xFFFF, 0xFFFF, 0xFFFF, "Databook Inc(0x10B3)"},
{0x10B3, 0x3106, 0xFFFF, 0xFFFF, "DB87144(0x3106)"},
{0x10B3, 0xB106, 0xFFFF, 0xFFFF, "DB87144(0xB106)"},
}; /* pci_vid_10B3[] */
-pci_id_t pci_vid_10B4[] = {
+static pci_id_t const pci_vid_10B4[] = {
{0x10B4, 0xFFFF, 0xFFFF, 0xFFFF, "STB Systems Inc(0x10B4)"},
{0x10B4, 0x1B1D, 0xFFFF, 0xFFFF, "Velocity 128 3D(0x1B1D)"},
{0x10B4, 0x1B1D, 0x10B4, 0x237E, "Velocity 4400(0x10B4-0x237E)"},
}; /* pci_vid_10B4[] */
-pci_id_t pci_vid_10B5[] = {
+static pci_id_t const pci_vid_10B5[] = {
{0x10B5, 0xFFFF, 0xFFFF, 0xFFFF, "PLX Technology, Inc.(0x10B5)"},
{0x10B5, 0x0001, 0xFFFF, 0xFFFF, "i960 PCI bus interface(0x0001)"},
{0x10B5, 0x0557, 0xFFFF, 0xFFFF, "PCI9030 32-bit 33MHz PCI <-> IOBus Bridge(0x0557)"},
@@ -9845,7 +9891,7 @@ pci_id_t pci_vid_10B5[] = {
{0x10B5, 0xD44D, 0x10B5, 0x9030, "Tormenta 3 Varion V401PE Quad E1 PCI card(0x10B5-0x9030)"},
}; /* pci_vid_10B5[] */
-pci_id_t pci_vid_10B6[] = {
+static pci_id_t const pci_vid_10B6[] = {
{0x10B6, 0xFFFF, 0xFFFF, 0xFFFF, "Madge Networks(0x10B6)"},
{0x10B6, 0x0001, 0xFFFF, 0xFFFF, "Smart 16/4 PCI Ringnode(0x0001)"},
{0x10B6, 0x0002, 0xFFFF, 0xFFFF, "Smart 16/4 PCI Ringnode Mk2(0x0002)"},
@@ -9873,7 +9919,7 @@ pci_id_t pci_vid_10B6[] = {
{0x10B6, 0x1001, 0xFFFF, 0xFFFF, "Collage 155 ATM Server Adapter(0x1001)"},
}; /* pci_vid_10B6[] */
-pci_id_t pci_vid_10B7[] = {
+static pci_id_t const pci_vid_10B7[] = {
{0x10B7, 0xFFFF, 0xFFFF, 0xFFFF, "3Com Corporation(0x10B7)"},
{0x10B7, 0x0001, 0xFFFF, 0xFFFF, "3c985 1000BaseSX (SX/TX)(0x0001)"},
{0x10B7, 0x0001, 0x9850, 0x0001, "3c985B-SX(0x9850-0x0001)"},
@@ -10008,7 +10054,7 @@ pci_id_t pci_vid_10B7[] = {
{0x10B7, 0x990B, 0xFFFF, 0xFFFF, "3C990SVR [Typhoon Server](0x990B)"},
}; /* pci_vid_10B7[] */
-pci_id_t pci_vid_10B8[] = {
+static pci_id_t const pci_vid_10B8[] = {
{0x10B8, 0xFFFF, 0xFFFF, 0xFFFF, "Standard Microsystems Corp [SMC](0x10B8)"},
{0x10B8, 0x0005, 0xFFFF, 0xFFFF, "83c170 EPIC/100 Fast Ethernet Adapter(0x0005)"},
{0x10B8, 0x0005, 0x1055, 0xE000, "LANEPIC 10/100 [EVB171Q-PCI](0x1055-0xE000)"},
@@ -10032,7 +10078,7 @@ pci_id_t pci_vid_10B8[] = {
{0x10B8, 0xB106, 0xFFFF, 0xFFFF, "SMC34C90(0xB106)"},
}; /* pci_vid_10B8[] */
-pci_id_t pci_vid_10B9[] = {
+static pci_id_t const pci_vid_10B9[] = {
{0x10B9, 0xFFFF, 0xFFFF, 0xFFFF, "ULi Electronics Inc.(0x10B9)"},
{0x10B9, 0x0101, 0xFFFF, 0xFFFF, "CMI8338/C3DX PCI Audio Device(0x0101)"},
{0x10B9, 0x0111, 0xFFFF, 0xFFFF, "C-Media CMI8738/C3DX Audio Device (OEM)(0x0111)"},
@@ -10156,7 +10202,7 @@ pci_id_t pci_vid_10B9[] = {
{0x10B9, 0x7101, 0x1849, 0x7101, "ASRock 939Dual-SATA2 Motherboard(0x1849-0x7101)"},
}; /* pci_vid_10B9[] */
-pci_id_t pci_vid_10BA[] = {
+static pci_id_t const pci_vid_10BA[] = {
{0x10BA, 0xFFFF, 0xFFFF, 0xFFFF, "Mitsubishi Electric Corp.(0x10BA)"},
{0x10BA, 0x0301, 0xFFFF, 0xFFFF, "AccelGraphics AccelECLIPSE(0x0301)"},
{0x10BA, 0x0304, 0xFFFF, 0xFFFF, "AccelGALAXY A2100 [OEM Evans & Sutherland](0x0304)"},
@@ -10165,61 +10211,61 @@ pci_id_t pci_vid_10BA[] = {
{0x10BA, 0x1002, 0xFFFF, 0xFFFF, "VG500 [VolumePro Volume Rendering Accelerator](0x1002)"},
}; /* pci_vid_10BA[] */
-pci_id_t pci_vid_10BB[] = {
+static pci_id_t const pci_vid_10BB[] = {
{0x10BB, 0xFFFF, 0xFFFF, 0xFFFF, "Dapha Electronics Corporation(0x10BB)"},
}; /* pci_vid_10BB[] */
-pci_id_t pci_vid_10BC[] = {
+static pci_id_t const pci_vid_10BC[] = {
{0x10BC, 0xFFFF, 0xFFFF, 0xFFFF, "Advanced Logic Research(0x10BC)"},
}; /* pci_vid_10BC[] */
-pci_id_t pci_vid_10BD[] = {
+static pci_id_t const pci_vid_10BD[] = {
{0x10BD, 0xFFFF, 0xFFFF, 0xFFFF, "Surecom Technology(0x10BD)"},
{0x10BD, 0x0E34, 0xFFFF, 0xFFFF, "NE-34(0x0E34)"},
}; /* pci_vid_10BD[] */
-pci_id_t pci_vid_10BE[] = {
+static pci_id_t const pci_vid_10BE[] = {
{0x10BE, 0xFFFF, 0xFFFF, 0xFFFF, "Tseng Labs International Co.(0x10BE)"},
}; /* pci_vid_10BE[] */
-pci_id_t pci_vid_10BF[] = {
+static pci_id_t const pci_vid_10BF[] = {
{0x10BF, 0xFFFF, 0xFFFF, 0xFFFF, "Most Inc(0x10BF)"},
}; /* pci_vid_10BF[] */
-pci_id_t pci_vid_10C0[] = {
+static pci_id_t const pci_vid_10C0[] = {
{0x10C0, 0xFFFF, 0xFFFF, 0xFFFF, "Boca Research Inc.(0x10C0)"},
{0x10C0, 0x9135, 0xFFFF, 0xFFFF, "iX3D Ultimate Rez(0x9135)"},
}; /* pci_vid_10C0[] */
-pci_id_t pci_vid_10C1[] = {
+static pci_id_t const pci_vid_10C1[] = {
{0x10C1, 0xFFFF, 0xFFFF, 0xFFFF, "ICM Co., Ltd.(0x10C1)"},
}; /* pci_vid_10C1[] */
-pci_id_t pci_vid_10C2[] = {
+static pci_id_t const pci_vid_10C2[] = {
{0x10C2, 0xFFFF, 0xFFFF, 0xFFFF, "Auspex Systems Inc.(0x10C2)"},
}; /* pci_vid_10C2[] */
-pci_id_t pci_vid_10C3[] = {
+static pci_id_t const pci_vid_10C3[] = {
{0x10C3, 0xFFFF, 0xFFFF, 0xFFFF, "Samsung Semiconductors, Inc.(0x10C3)"},
}; /* pci_vid_10C3[] */
-pci_id_t pci_vid_10C4[] = {
+static pci_id_t const pci_vid_10C4[] = {
{0x10C4, 0xFFFF, 0xFFFF, 0xFFFF, "Award Software International Inc.(0x10C4)"},
}; /* pci_vid_10C4[] */
-pci_id_t pci_vid_10C5[] = {
+static pci_id_t const pci_vid_10C5[] = {
{0x10C5, 0xFFFF, 0xFFFF, 0xFFFF, "Xerox Corporation(0x10C5)"},
}; /* pci_vid_10C5[] */
-pci_id_t pci_vid_10C6[] = {
+static pci_id_t const pci_vid_10C6[] = {
{0x10C6, 0xFFFF, 0xFFFF, 0xFFFF, "Rambus Inc.(0x10C6)"},
}; /* pci_vid_10C6[] */
-pci_id_t pci_vid_10C7[] = {
+static pci_id_t const pci_vid_10C7[] = {
{0x10C7, 0xFFFF, 0xFFFF, 0xFFFF, "Media Vision(0x10C7)"},
}; /* pci_vid_10C7[] */
-pci_id_t pci_vid_10C8[] = {
+static pci_id_t const pci_vid_10C8[] = {
{0x10C8, 0xFFFF, 0xFFFF, 0xFFFF, "Neomagic Corporation(0x10C8)"},
{0x10C8, 0x0001, 0xFFFF, 0xFFFF, "NM2070 [MagicGraph 128](0x0001)"},
{0x10C8, 0x0002, 0xFFFF, 0xFFFF, "NM2090 [MagicGraph 128V](0x0002)"},
@@ -10269,25 +10315,25 @@ pci_id_t pci_vid_10C8[] = {
{0x10C8, 0x8016, 0xFFFF, 0xFFFF, "NM2380 [MagicMedia 256XL+ Audio](0x8016)"},
}; /* pci_vid_10C8[] */
-pci_id_t pci_vid_10C9[] = {
+static pci_id_t const pci_vid_10C9[] = {
{0x10C9, 0xFFFF, 0xFFFF, 0xFFFF, "Dataexpert Corporation(0x10C9)"},
}; /* pci_vid_10C9[] */
-pci_id_t pci_vid_10CA[] = {
+static pci_id_t const pci_vid_10CA[] = {
{0x10CA, 0xFFFF, 0xFFFF, 0xFFFF, "Fujitsu Microelectr., Inc.(0x10CA)"},
}; /* pci_vid_10CA[] */
-pci_id_t pci_vid_10CB[] = {
+static pci_id_t const pci_vid_10CB[] = {
{0x10CB, 0xFFFF, 0xFFFF, 0xFFFF, "Omron Corporation(0x10CB)"},
}; /* pci_vid_10CB[] */
-pci_id_t pci_vid_10CC[] = {
+static pci_id_t const pci_vid_10CC[] = {
{0x10CC, 0xFFFF, 0xFFFF, 0xFFFF, "Mai Logic Incorporated(0x10CC)"},
{0x10CC, 0x0660, 0xFFFF, 0xFFFF, "Articia S Host Bridge(0x0660)"},
{0x10CC, 0x0661, 0xFFFF, 0xFFFF, "Articia S PCI Bridge(0x0661)"},
}; /* pci_vid_10CC[] */
-pci_id_t pci_vid_10CD[] = {
+static pci_id_t const pci_vid_10CD[] = {
{0x10CD, 0xFFFF, 0xFFFF, 0xFFFF, "Advanced System Products, Inc(0x10CD)"},
{0x10CD, 0x1100, 0xFFFF, 0xFFFF, "ASC1100(0x1100)"},
{0x10CD, 0x1200, 0xFFFF, 0xFFFF, "ASC1200 [(abp940) Fast SCSI-II](0x1200)"},
@@ -10299,11 +10345,11 @@ pci_id_t pci_vid_10CD[] = {
{0x10CD, 0x2700, 0xFFFF, 0xFFFF, "ABP3950-U3W(0x2700)"},
}; /* pci_vid_10CD[] */
-pci_id_t pci_vid_10CE[] = {
+static pci_id_t const pci_vid_10CE[] = {
{0x10CE, 0xFFFF, 0xFFFF, 0xFFFF, "Radius(0x10CE)"},
}; /* pci_vid_10CE[] */
-pci_id_t pci_vid_10CF[] = {
+static pci_id_t const pci_vid_10CF[] = {
{0x10CF, 0xFFFF, 0xFFFF, 0xFFFF, "Fujitsu Limited.(0x10CF)"},
{0x10CF, 0x01EF, 0xFFFF, 0xFFFF, "PCEA4 PCI-Express Dual Port ESCON Adapter(0x01EF)"},
{0x10CF, 0x1414, 0xFFFF, 0xFFFF, "On-board USB 1.1 companion controller(0x1414)"},
@@ -10320,39 +10366,39 @@ pci_id_t pci_vid_10CF[] = {
{0x10CF, 0x202B, 0xFFFF, 0xFFFF, "MB86297A [Carmine Graphics Controller](0x202B)"},
}; /* pci_vid_10CF[] */
-pci_id_t pci_vid_10D1[] = {
+static pci_id_t const pci_vid_10D1[] = {
{0x10D1, 0xFFFF, 0xFFFF, 0xFFFF, "FuturePlus Systems Corp.(0x10D1)"},
}; /* pci_vid_10D1[] */
-pci_id_t pci_vid_10D2[] = {
+static pci_id_t const pci_vid_10D2[] = {
{0x10D2, 0xFFFF, 0xFFFF, 0xFFFF, "Molex Incorporated(0x10D2)"},
}; /* pci_vid_10D2[] */
-pci_id_t pci_vid_10D3[] = {
+static pci_id_t const pci_vid_10D3[] = {
{0x10D3, 0xFFFF, 0xFFFF, 0xFFFF, "Jabil Circuit Inc(0x10D3)"},
}; /* pci_vid_10D3[] */
-pci_id_t pci_vid_10D4[] = {
+static pci_id_t const pci_vid_10D4[] = {
{0x10D4, 0xFFFF, 0xFFFF, 0xFFFF, "Hualon Microelectronics(0x10D4)"},
}; /* pci_vid_10D4[] */
-pci_id_t pci_vid_10D5[] = {
+static pci_id_t const pci_vid_10D5[] = {
{0x10D5, 0xFFFF, 0xFFFF, 0xFFFF, "Autologic Inc.(0x10D5)"},
}; /* pci_vid_10D5[] */
-pci_id_t pci_vid_10D6[] = {
+static pci_id_t const pci_vid_10D6[] = {
{0x10D6, 0xFFFF, 0xFFFF, 0xFFFF, "Cetia(0x10D6)"},
}; /* pci_vid_10D6[] */
-pci_id_t pci_vid_10D7[] = {
+static pci_id_t const pci_vid_10D7[] = {
{0x10D7, 0xFFFF, 0xFFFF, 0xFFFF, "BCM Advanced Research(0x10D7)"},
}; /* pci_vid_10D7[] */
-pci_id_t pci_vid_10D8[] = {
+static pci_id_t const pci_vid_10D8[] = {
{0x10D8, 0xFFFF, 0xFFFF, 0xFFFF, "Advanced Peripherals Labs(0x10D8)"},
}; /* pci_vid_10D8[] */
-pci_id_t pci_vid_10D9[] = {
+static pci_id_t const pci_vid_10D9[] = {
{0x10D9, 0xFFFF, 0xFFFF, 0xFFFF, "Macronix, Inc. [MXIC](0x10D9)"},
{0x10D9, 0x0431, 0xFFFF, 0xFFFF, "MX98715(0x0431)"},
{0x10D9, 0x0512, 0xFFFF, 0xFFFF, "MX98713(0x0512)"},
@@ -10363,17 +10409,17 @@ pci_id_t pci_vid_10D9[] = {
{0x10D9, 0x8888, 0xFFFF, 0xFFFF, "MX86200(0x8888)"},
}; /* pci_vid_10D9[] */
-pci_id_t pci_vid_10DA[] = {
+static pci_id_t const pci_vid_10DA[] = {
{0x10DA, 0xFFFF, 0xFFFF, 0xFFFF, "Compaq IPG-Austin(0x10DA)"},
{0x10DA, 0x0508, 0xFFFF, 0xFFFF, "TC4048 Token Ring 4/16(0x0508)"},
{0x10DA, 0x3390, 0xFFFF, 0xFFFF, "Tl3c3x9(0x3390)"},
}; /* pci_vid_10DA[] */
-pci_id_t pci_vid_10DB[] = {
+static pci_id_t const pci_vid_10DB[] = {
{0x10DB, 0xFFFF, 0xFFFF, 0xFFFF, "Rohm LSI Systems, Inc.(0x10DB)"},
}; /* pci_vid_10DB[] */
-pci_id_t pci_vid_10DC[] = {
+static pci_id_t const pci_vid_10DC[] = {
{0x10DC, 0xFFFF, 0xFFFF, 0xFFFF, "CERN/ECP/EDU(0x10DC)"},
{0x10DC, 0x0001, 0xFFFF, 0xFFFF, "STAR/RD24 SCI-PCI (PMC)(0x0001)"},
{0x10DC, 0x0002, 0xFFFF, 0xFFFF, "TAR/RD24 SCI-PCI (PMC)(0x0002)"},
@@ -10382,13 +10428,13 @@ pci_id_t pci_vid_10DC[] = {
{0x10DC, 0x10DC, 0xFFFF, 0xFFFF, "ATT2C15-3 FPGA(0x10DC)"},
}; /* pci_vid_10DC[] */
-pci_id_t pci_vid_10DD[] = {
+static pci_id_t const pci_vid_10DD[] = {
{0x10DD, 0xFFFF, 0xFFFF, 0xFFFF, "Evans & Sutherland(0x10DD)"},
{0x10DD, 0x0100, 0xFFFF, 0xFFFF, "Lightning 1200(0x0100)"},
{0x10DD, 0x0100, 0x10DD, 0x0023, "Lightning 1200 15+16M(0x10DD-0x0023)"},
}; /* pci_vid_10DD[] */
-pci_id_t pci_vid_10DE[] = {
+static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0xFFFF, 0xFFFF, 0xFFFF, "NVIDIA Corporation(0x10DE)"},
{0x10DE, 0x0008, 0xFFFF, 0xFFFF, "NV1 [STG2000X-B Series](0x0008)"},
{0x10DE, 0x0009, 0xFFFF, 0xFFFF, "NV1 [NV1 Series](0x0009)"},
@@ -10986,6 +11032,7 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x0200, 0x1043, 0x402F, "AGP-V8200 DDR(0x1043-0x402F)"},
{0x10DE, 0x0200, 0x1048, 0x0C70, "GLADIAC 920(0x1048-0x0C70)"},
{0x10DE, 0x0201, 0xFFFF, 0xFFFF, "NV20 [GeForce3 Ti 200](0x0201)"},
+{0x10DE, 0x0201, 0x1462, 0x8503, "G3Ti200 Pro VT128(0x1462-0x8503)"},
{0x10DE, 0x0202, 0xFFFF, 0xFFFF, "NV20 [GeForce3 Ti 500](0x0202)"},
{0x10DE, 0x0202, 0x1043, 0x405B, "V8200 T5(0x1043-0x405B)"},
{0x10DE, 0x0202, 0x1545, 0x002F, "Xtasy 6964(0x1545-0x002F)"},
@@ -12280,6 +12327,7 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x0DE9, 0x1025, 0x0753, "GeForce GT 620M(0x1025-0x0753)"},
{0x10DE, 0x0DE9, 0x1025, 0x0754, "GeForce GT 620M(0x1025-0x0754)"},
{0x10DE, 0x0DE9, 0x17AA, 0x3977, "GeForce GT 640M LE(0x17AA-0x3977)"},
+{0x10DE, 0x0DE9, 0x1B0A, 0x20C6, "GeForce GT 630M(0x1B0A-0x20C6)"},
{0x10DE, 0x0DE9, 0x1B0A, 0x2210, "GeForce GT 635M(0x1B0A-0x2210)"},
{0x10DE, 0x0DEA, 0xFFFF, 0xFFFF, "GF108M [GeForce 610M](0x0DEA)"},
{0x10DE, 0x0DEA, 0x17AA, 0x365A, "GeForce 615(0x17AA-0x365A)"},
@@ -13127,6 +13175,9 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x15F7, 0xFFFF, 0xFFFF, "GP100GL [Tesla P100 PCIe 12GB](0x15F7)"},
{0x10DE, 0x15F8, 0xFFFF, 0xFFFF, "GP100GL [Tesla P100 PCIe 16GB](0x15F8)"},
{0x10DE, 0x15F9, 0xFFFF, 0xFFFF, "GP100GL [Tesla P100 SXM2 16GB](0x15F9)"},
+{0x10DE, 0x15FA, 0xFFFF, 0xFFFF, "GP100GL [DGX Station / PH402 SKU 200](0x15FA)"},
+{0x10DE, 0x15FB, 0xFFFF, 0xFFFF, "GP100GL [GP100 SKU 200](0x15FB)"},
+{0x10DE, 0x15FF, 0xFFFF, 0xFFFF, "GP100GL [GP100 SKU 15ff](0x15FF)"},
{0x10DE, 0x1617, 0xFFFF, 0xFFFF, "GM204M [GeForce GTX 980M](0x1617)"},
{0x10DE, 0x1618, 0xFFFF, 0xFFFF, "GM204M [GeForce GTX 970M](0x1618)"},
{0x10DE, 0x1619, 0xFFFF, 0xFFFF, "GM204M [GeForce GTX 965M](0x1619)"},
@@ -13296,6 +13347,7 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x1DB8, 0x10DE, 0x131D, "Tesla V100-SXM3-32GB-H(0x10DE-0x131D)"},
{0x10DE, 0x1DBA, 0xFFFF, 0xFFFF, "GV100GL [Quadro GV100](0x1DBA)"},
{0x10DE, 0x1DBA, 0x10DE, 0x12EB, "TITAN V CEO Edition(0x10DE-0x12EB)"},
+{0x10DE, 0x1DBD, 0xFFFF, 0xFFFF, "GV100GL [Tesla GV100 DGX1-V](0x1DBD)"},
{0x10DE, 0x1DBE, 0xFFFF, 0xFFFF, "GV100 Engineering Sample(0x1DBE)"},
{0x10DE, 0x1DC1, 0xFFFF, 0xFFFF, "GV100 [CMP 100-200](0x1DC1)"},
{0x10DE, 0x1DF0, 0xFFFF, 0xFFFF, "GV100GL [Tesla PG500-216](0x1DF0)"},
@@ -13450,6 +13502,7 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x21AE, 0xFFFF, 0xFFFF, "TU116GL(0x21AE)"},
{0x10DE, 0x21BF, 0xFFFF, 0xFFFF, "TU116GL(0x21BF)"},
{0x10DE, 0x21C2, 0xFFFF, 0xFFFF, "TU116(0x21C2)"},
+{0x10DE, 0x21C3, 0xFFFF, 0xFFFF, "TU116(0x21C3)"},
{0x10DE, 0x21C4, 0xFFFF, 0xFFFF, "TU116 [GeForce GTX 1660 SUPER](0x21C4)"},
{0x10DE, 0x21D1, 0xFFFF, 0xFFFF, "TU116BM [GeForce GTX 1660 Ti Mobile](0x21D1)"},
{0x10DE, 0x2200, 0xFFFF, 0xFFFF, "GA102(0x2200)"},
@@ -13495,9 +13548,10 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x2339, 0xFFFF, 0xFFFF, "GH100 [H100 SXM5 94GB](0x2339)"},
{0x10DE, 0x233A, 0xFFFF, 0xFFFF, "GH100 [H800L 94GB](0x233A)"},
{0x10DE, 0x233D, 0xFFFF, 0xFFFF, "GH100 [H100 96GB](0x233D)"},
-{0x10DE, 0x2342, 0xFFFF, 0xFFFF, "GH100 [GH200 120GB](0x2342)"},
+{0x10DE, 0x2342, 0xFFFF, 0xFFFF, "GH100 [GH200 120GB / 480GB](0x2342)"},
{0x10DE, 0x2343, 0xFFFF, 0xFFFF, "GH100(0x2343)"},
-{0x10DE, 0x2345, 0xFFFF, 0xFFFF, "GH100 [GH200 480GB](0x2345)"},
+{0x10DE, 0x2345, 0xFFFF, 0xFFFF, "GH100 [GH100-88K-A1](0x2345)"},
+{0x10DE, 0x237F, 0xFFFF, 0xFFFF, "GH100 [Skinny Joe](0x237F)"},
{0x10DE, 0x23B0, 0xFFFF, 0xFFFF, "GH100(0x23B0)"},
{0x10DE, 0x23F0, 0xFFFF, 0xFFFF, "GH100(0x23F0)"},
{0x10DE, 0x2414, 0xFFFF, 0xFFFF, "GA103 [GeForce RTX 3060 Ti](0x2414)"},
@@ -13593,25 +13647,33 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x25FB, 0xFFFF, 0xFFFF, "GA107 [RTX A500 Embedded GPU](0x25FB)"},
{0x10DE, 0x2681, 0xFFFF, 0xFFFF, "AD102 [RTX TITAN Ada](0x2681)"},
{0x10DE, 0x2684, 0xFFFF, 0xFFFF, "AD102 [GeForce RTX 4090](0x2684)"},
+{0x10DE, 0x2685, 0xFFFF, 0xFFFF, "AD102 [GeForce RTX 4090 D](0x2685)"},
{0x10DE, 0x26B1, 0xFFFF, 0xFFFF, "AD102GL [RTX 6000 Ada Generation](0x26B1)"},
{0x10DE, 0x26B2, 0xFFFF, 0xFFFF, "AD102GL [RTX 5000 Ada Generation](0x26B2)"},
+{0x10DE, 0x26B3, 0xFFFF, 0xFFFF, "AD102GL [RTX 5880 Ada Generation](0x26B3)"},
{0x10DE, 0x26B5, 0xFFFF, 0xFFFF, "AD102GL [L40](0x26B5)"},
+{0x10DE, 0x26B7, 0xFFFF, 0xFFFF, "AD102GL [L20](0x26B7)"},
{0x10DE, 0x26B8, 0xFFFF, 0xFFFF, "AD102GL [L40G](0x26B8)"},
{0x10DE, 0x26B9, 0xFFFF, 0xFFFF, "AD102GL [L40S](0x26B9)"},
+{0x10DE, 0x26BA, 0xFFFF, 0xFFFF, "AD102GL [L20](0x26BA)"},
{0x10DE, 0x26F5, 0xFFFF, 0xFFFF, "AD102GL [L40 CNX](0x26F5)"},
+{0x10DE, 0x2702, 0xFFFF, 0xFFFF, "AD103 [GeForce RTX 4080 SUPER](0x2702)"},
{0x10DE, 0x2703, 0xFFFF, 0xFFFF, "AD103 [GeForce RTX 4080 SUPER](0x2703)"},
{0x10DE, 0x2704, 0xFFFF, 0xFFFF, "AD103 [GeForce RTX 4080](0x2704)"},
+{0x10DE, 0x2705, 0xFFFF, 0xFFFF, "AD103 [GeForce RTX 4070 Ti SUPER](0x2705)"},
{0x10DE, 0x2717, 0xFFFF, 0xFFFF, "GN21-X11 [GeForce RTX 4090 Laptop GPU](0x2717)"},
{0x10DE, 0x2730, 0xFFFF, 0xFFFF, "AD103GLM [RTX 5000 Ada Generation Laptop GPU](0x2730)"},
{0x10DE, 0x2757, 0xFFFF, 0xFFFF, "GN21-X11(0x2757)"},
{0x10DE, 0x2770, 0xFFFF, 0xFFFF, "AD103GLM [RTX 5000 Ada Generation Embedded GPU](0x2770)"},
{0x10DE, 0x2782, 0xFFFF, 0xFFFF, "AD104 [GeForce RTX 4070 Ti](0x2782)"},
+{0x10DE, 0x2783, 0xFFFF, 0xFFFF, "AD104 [GeForce RTX 4070 SUPER](0x2783)"},
{0x10DE, 0x2785, 0xFFFF, 0xFFFF, "AD104 [AC AD104 20GB](0x2785)"},
{0x10DE, 0x2786, 0xFFFF, 0xFFFF, "AD104 [GeForce RTX 4070](0x2786)"},
{0x10DE, 0x27A0, 0xFFFF, 0xFFFF, "AD104M [GeForce RTX 4080 Max-Q / Mobile](0x27A0)"},
{0x10DE, 0x27B0, 0xFFFF, 0xFFFF, "AD104GL [RTX 4000 SFF Ada Generation](0x27B0)"},
{0x10DE, 0x27B1, 0xFFFF, 0xFFFF, "AD104GL [RTX 4500 Ada Generation](0x27B1)"},
{0x10DE, 0x27B2, 0xFFFF, 0xFFFF, "AD104GL [RTX 4000 Ada Generation](0x27B2)"},
+{0x10DE, 0x27B6, 0xFFFF, 0xFFFF, "AD104GL [L2](0x27B6)"},
{0x10DE, 0x27B7, 0xFFFF, 0xFFFF, "AD104GL [L16](0x27B7)"},
{0x10DE, 0x27B8, 0xFFFF, 0xFFFF, "AD104GL [L4](0x27B8)"},
{0x10DE, 0x27BA, 0xFFFF, 0xFFFF, "AD104GLM [RTX 4000 Ada Generation Laptop GPU](0x27BA)"},
@@ -13634,7 +13696,7 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x28F8, 0xFFFF, 0xFFFF, "AD107GLM [RTX 2000 Ada Generation Embedded GPU](0x28F8)"},
}; /* pci_vid_10DE[] */
-pci_id_t pci_vid_10DF[] = {
+static pci_id_t const pci_vid_10DF[] = {
{0x10DF, 0xFFFF, 0xFFFF, 0xFFFF, "Emulex Corporation(0x10DF)"},
{0x10DF, 0x0720, 0xFFFF, 0xFFFF, "OneConnect NIC (Skyhawk)(0x0720)"},
{0x10DF, 0x0720, 0x103C, 0x1934, "FlexFabric 20Gb 2-port 650M Adapter(0x103C-0x1934)"},
@@ -13764,7 +13826,7 @@ pci_id_t pci_vid_10DF[] = {
{0x10DF, 0xFF00, 0xFFFF, 0xFFFF, "Neptune LightPulse Fibre Channel Host Adapter(0xFF00)"},
}; /* pci_vid_10DF[] */
-pci_id_t pci_vid_10E0[] = {
+static pci_id_t const pci_vid_10E0[] = {
{0x10E0, 0xFFFF, 0xFFFF, 0xFFFF, "Integrated Micro Solutions Inc.(0x10E0)"},
{0x10E0, 0x5026, 0xFFFF, 0xFFFF, "IMS5026/27/28(0x5026)"},
{0x10E0, 0x5027, 0xFFFF, 0xFFFF, "IMS5027(0x5027)"},
@@ -13774,7 +13836,7 @@ pci_id_t pci_vid_10E0[] = {
{0x10E0, 0x9128, 0xFFFF, 0xFFFF, "IMS9128 [Twin turbo 128](0x9128)"},
}; /* pci_vid_10E0[] */
-pci_id_t pci_vid_10E1[] = {
+static pci_id_t const pci_vid_10E1[] = {
{0x10E1, 0xFFFF, 0xFFFF, 0xFFFF, "Tekram Technology Co.,Ltd.(0x10E1)"},
{0x10E1, 0x0391, 0xFFFF, 0xFFFF, "TRM-S1040(0x0391)"},
{0x10E1, 0x0391, 0x10E1, 0x0391, "DC-315U SCSI-3 Host Adapter(0x10E1-0x0391)"},
@@ -13782,11 +13844,11 @@ pci_id_t pci_vid_10E1[] = {
{0x10E1, 0xDC29, 0xFFFF, 0xFFFF, "DC-290(0xDC29)"},
}; /* pci_vid_10E1[] */
-pci_id_t pci_vid_10E2[] = {
+static pci_id_t const pci_vid_10E2[] = {
{0x10E2, 0xFFFF, 0xFFFF, 0xFFFF, "Aptix Corporation(0x10E2)"},
}; /* pci_vid_10E2[] */
-pci_id_t pci_vid_10E3[] = {
+static pci_id_t const pci_vid_10E3[] = {
{0x10E3, 0xFFFF, 0xFFFF, 0xFFFF, "Tundra Semiconductor Corp.(0x10E3)"},
{0x10E3, 0x0000, 0xFFFF, 0xFFFF, "CA91C042 [Universe](0x0000)"},
{0x10E3, 0x0108, 0xFFFF, 0xFFFF, "Tsi108 Host Bridge for Single PowerPC(0x0108)"},
@@ -13800,24 +13862,24 @@ pci_id_t pci_vid_10E3[] = {
{0x10E3, 0xA108, 0xFFFF, 0xFFFF, "Tsi109 Host Bridge for Dual PowerPC(0xA108)"},
}; /* pci_vid_10E3[] */
-pci_id_t pci_vid_10E4[] = {
+static pci_id_t const pci_vid_10E4[] = {
{0x10E4, 0xFFFF, 0xFFFF, 0xFFFF, "Tandem Computers(0x10E4)"},
{0x10E4, 0x8029, 0xFFFF, 0xFFFF, "Realtek 8029 Network Card(0x8029)"},
}; /* pci_vid_10E4[] */
-pci_id_t pci_vid_10E5[] = {
+static pci_id_t const pci_vid_10E5[] = {
{0x10E5, 0xFFFF, 0xFFFF, 0xFFFF, "Micro Industries Corporation(0x10E5)"},
}; /* pci_vid_10E5[] */
-pci_id_t pci_vid_10E6[] = {
+static pci_id_t const pci_vid_10E6[] = {
{0x10E6, 0xFFFF, 0xFFFF, 0xFFFF, "Gainbery Computer Products Inc.(0x10E6)"},
}; /* pci_vid_10E6[] */
-pci_id_t pci_vid_10E7[] = {
+static pci_id_t const pci_vid_10E7[] = {
{0x10E7, 0xFFFF, 0xFFFF, 0xFFFF, "Vadem(0x10E7)"},
}; /* pci_vid_10E7[] */
-pci_id_t pci_vid_10E8[] = {
+static pci_id_t const pci_vid_10E8[] = {
{0x10E8, 0xFFFF, 0xFFFF, 0xFFFF, "Applied Micro Circuits Corp.(0x10E8)"},
{0x10E8, 0x1072, 0xFFFF, 0xFFFF, "INES GPIB-PCI (AMCC5920 based)(0x1072)"},
{0x10E8, 0x2011, 0xFFFF, 0xFFFF, "Q-Motion Video Capture/Edit board(0x2011)"},
@@ -13855,11 +13917,11 @@ pci_id_t pci_vid_10E8[] = {
{0x10E8, 0xE004, 0xFFFF, 0xFFFF, "X-Gene PCIe bridge(0xE004)"},
}; /* pci_vid_10E8[] */
-pci_id_t pci_vid_10E9[] = {
+static pci_id_t const pci_vid_10E9[] = {
{0x10E9, 0xFFFF, 0xFFFF, 0xFFFF, "Alps Electric Co., Ltd.(0x10E9)"},
}; /* pci_vid_10E9[] */
-pci_id_t pci_vid_10EA[] = {
+static pci_id_t const pci_vid_10EA[] = {
{0x10EA, 0xFFFF, 0xFFFF, 0xFFFF, "Integraphics(0x10EA)"},
{0x10EA, 0x1680, 0xFFFF, 0xFFFF, "IGA-1680(0x1680)"},
{0x10EA, 0x1682, 0xFFFF, 0xFFFF, "IGA-1682(0x1682)"},
@@ -13872,15 +13934,16 @@ pci_id_t pci_vid_10EA[] = {
{0x10EA, 0x5252, 0xFFFF, 0xFFFF, "CyberPro5252(0x5252)"},
}; /* pci_vid_10EA[] */
-pci_id_t pci_vid_10EB[] = {
+static pci_id_t const pci_vid_10EB[] = {
{0x10EB, 0xFFFF, 0xFFFF, 0xFFFF, "Artists Graphics(0x10EB)"},
{0x10EB, 0x0101, 0xFFFF, 0xFFFF, "3GA(0x0101)"},
{0x10EB, 0x8111, 0xFFFF, 0xFFFF, "Twist3 Frame Grabber(0x8111)"},
}; /* pci_vid_10EB[] */
-pci_id_t pci_vid_10EC[] = {
+static pci_id_t const pci_vid_10EC[] = {
{0x10EC, 0xFFFF, 0xFFFF, 0xFFFF, "Realtek Semiconductor Co., Ltd.(0x10EC)"},
{0x10EC, 0x0139, 0xFFFF, 0xFFFF, "RTL-8139/8139C/8139C+ Ethernet Controller(0x0139)"},
+{0x10EC, 0x2600, 0xFFFF, 0xFFFF, "Killer E2600 GbE Controller(0x2600)"},
{0x10EC, 0x3000, 0xFFFF, 0xFFFF, "Killer E3000 2.5GbE Controller(0x3000)"},
{0x10EC, 0x4321, 0xFFFF, 0xFFFF, "RTL8852BE 802.11ax PCIe Wireless Network Adapter(0x4321)"},
{0x10EC, 0x5208, 0xFFFF, 0xFFFF, "RTS5208 PCI Express Card Reader(0x5208)"},
@@ -14002,7 +14065,7 @@ pci_id_t pci_vid_10EC[] = {
{0x10EC, 0x8167, 0x1458, 0xE000, "GA-MA69G-S3H Motherboard(0x1458-0xE000)"},
{0x10EC, 0x8167, 0x1462, 0x235C, "P965 Neo MS-7235 mainboard(0x1462-0x235C)"},
{0x10EC, 0x8167, 0x1462, 0x236C, "945P Neo3-F motherboard(0x1462-0x236C)"},
-{0x10EC, 0x8168, 0xFFFF, 0xFFFF, "RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller(0x8168)"},
+{0x10EC, 0x8168, 0xFFFF, 0xFFFF, "RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller(0x8168)"},
{0x10EC, 0x8168, 0x1019, 0x8168, "RTL8111/8168 PCI Express Gigabit Ethernet controller(0x1019-0x8168)"},
{0x10EC, 0x8168, 0x1025, 0x1094, "Acer Aspire E5-575G(0x1025-0x1094)"},
{0x10EC, 0x8168, 0x1028, 0x0283, "Vostro 220(0x1028-0x0283)"},
@@ -14040,6 +14103,7 @@ pci_id_t pci_vid_10EC[] = {
{0x10EC, 0x8168, 0x1462, 0x4180, "Wind PC MS-7418(0x1462-0x4180)"},
{0x10EC, 0x8168, 0x1462, 0x7522, "X58 Pro-E(0x1462-0x7522)"},
{0x10EC, 0x8168, 0x1462, 0x7C37, "X570-A PRO motherboard(0x1462-0x7C37)"},
+{0x10EC, 0x8168, 0x1734, 0x11C0, "RTL8211DN on Esprimo P510 D3171 motherboard(0x1734-0x11C0)"},
{0x10EC, 0x8168, 0x1775, 0x11CC, "CC11/CL11(0x1775-0x11CC)"},
{0x10EC, 0x8168, 0x17AA, 0x3098, "ThinkCentre E73(0x17AA-0x3098)"},
{0x10EC, 0x8168, 0x17AA, 0x3814, "Z50-75(0x17AA-0x3814)"},
@@ -14118,15 +14182,16 @@ pci_id_t pci_vid_10EC[] = {
{0x10EC, 0xC821, 0xFFFF, 0xFFFF, "RTL8821CE 802.11ac PCIe Wireless Network Adapter(0xC821)"},
{0x10EC, 0xC822, 0xFFFF, 0xFFFF, "RTL8822CE 802.11ac PCIe Wireless Network Adapter(0xC822)"},
{0x10EC, 0xC82F, 0xFFFF, 0xFFFF, "RTL8822CE 802.11ac PCIe Wireless Network Adapter(0xC82F)"},
+{0x10EC, 0xC852, 0xFFFF, 0xFFFF, "RTL8852CE PCIe 802.11ax Wireless Network Controller(0xC852)"},
{0x10EC, 0xD723, 0xFFFF, 0xFFFF, "RTL8723DE 802.11b/g/n PCIe Adapter(0xD723)"},
}; /* pci_vid_10EC[] */
-pci_id_t pci_vid_10ED[] = {
+static pci_id_t const pci_vid_10ED[] = {
{0x10ED, 0xFFFF, 0xFFFF, 0xFFFF, "Ascii Corporation(0x10ED)"},
{0x10ED, 0x7310, 0xFFFF, 0xFFFF, "V7310(0x7310)"},
}; /* pci_vid_10ED[] */
-pci_id_t pci_vid_10EE[] = {
+static pci_id_t const pci_vid_10EE[] = {
{0x10EE, 0xFFFF, 0xFFFF, 0xFFFF, "Xilinx Corporation(0x10EE)"},
{0x10EE, 0x0001, 0xFFFF, 0xFFFF, "EUROCOM for PCI (ECOMP)(0x0001)"},
{0x10EE, 0x0002, 0xFFFF, 0xFFFF, "Octal E1/T1 for PCI ETP Card(0x0002)"},
@@ -14176,87 +14241,87 @@ pci_id_t pci_vid_10EE[] = {
{0x10EE, 0xEBF3, 0xFFFF, 0xFFFF, "SED Systems PCIe-AXI Bridge(0xEBF3)"},
}; /* pci_vid_10EE[] */
-pci_id_t pci_vid_10EF[] = {
+static pci_id_t const pci_vid_10EF[] = {
{0x10EF, 0xFFFF, 0xFFFF, 0xFFFF, "Racore Computer Products, Inc.(0x10EF)"},
{0x10EF, 0x8154, 0xFFFF, 0xFFFF, "M815x Token Ring Adapter(0x8154)"},
}; /* pci_vid_10EF[] */
-pci_id_t pci_vid_10F0[] = {
+static pci_id_t const pci_vid_10F0[] = {
{0x10F0, 0xFFFF, 0xFFFF, 0xFFFF, "Peritek Corporation(0x10F0)"},
}; /* pci_vid_10F0[] */
-pci_id_t pci_vid_10F1[] = {
+static pci_id_t const pci_vid_10F1[] = {
{0x10F1, 0xFFFF, 0xFFFF, 0xFFFF, "Tyan Computer(0x10F1)"},
{0x10F1, 0x2865, 0xFFFF, 0xFFFF, "Tyan Thunder K8E S2865(0x2865)"},
{0x10F1, 0x5300, 0xFFFF, 0xFFFF, "Tyan S5380 Mainboard(0x5300)"},
}; /* pci_vid_10F1[] */
-pci_id_t pci_vid_10F2[] = {
+static pci_id_t const pci_vid_10F2[] = {
{0x10F2, 0xFFFF, 0xFFFF, 0xFFFF, "Achme Computer, Inc.(0x10F2)"},
}; /* pci_vid_10F2[] */
-pci_id_t pci_vid_10F3[] = {
+static pci_id_t const pci_vid_10F3[] = {
{0x10F3, 0xFFFF, 0xFFFF, 0xFFFF, "Alaris, Inc.(0x10F3)"},
}; /* pci_vid_10F3[] */
-pci_id_t pci_vid_10F4[] = {
+static pci_id_t const pci_vid_10F4[] = {
{0x10F4, 0xFFFF, 0xFFFF, 0xFFFF, "S-MOS Systems, Inc.(0x10F4)"},
}; /* pci_vid_10F4[] */
-pci_id_t pci_vid_10F5[] = {
+static pci_id_t const pci_vid_10F5[] = {
{0x10F5, 0xFFFF, 0xFFFF, 0xFFFF, "NKK Corporation(0x10F5)"},
{0x10F5, 0xA001, 0xFFFF, 0xFFFF, "NDR4000 [NR4600 Bridge](0xA001)"},
}; /* pci_vid_10F5[] */
-pci_id_t pci_vid_10F6[] = {
+static pci_id_t const pci_vid_10F6[] = {
{0x10F6, 0xFFFF, 0xFFFF, 0xFFFF, "Creative Electronic Systems SA(0x10F6)"},
}; /* pci_vid_10F6[] */
-pci_id_t pci_vid_10F7[] = {
+static pci_id_t const pci_vid_10F7[] = {
{0x10F7, 0xFFFF, 0xFFFF, 0xFFFF, "Matsushita Electric Industrial Co., Ltd.(0x10F7)"},
}; /* pci_vid_10F7[] */
-pci_id_t pci_vid_10F8[] = {
+static pci_id_t const pci_vid_10F8[] = {
{0x10F8, 0xFFFF, 0xFFFF, 0xFFFF, "Altos India Ltd(0x10F8)"},
}; /* pci_vid_10F8[] */
-pci_id_t pci_vid_10F9[] = {
+static pci_id_t const pci_vid_10F9[] = {
{0x10F9, 0xFFFF, 0xFFFF, 0xFFFF, "PC Direct(0x10F9)"},
}; /* pci_vid_10F9[] */
-pci_id_t pci_vid_10FA[] = {
+static pci_id_t const pci_vid_10FA[] = {
{0x10FA, 0xFFFF, 0xFFFF, 0xFFFF, "Truevision(0x10FA)"},
{0x10FA, 0x000C, 0xFFFF, 0xFFFF, "TARGA 1000(0x000C)"},
}; /* pci_vid_10FA[] */
-pci_id_t pci_vid_10FB[] = {
+static pci_id_t const pci_vid_10FB[] = {
{0x10FB, 0xFFFF, 0xFFFF, 0xFFFF, "Thesys Gesellschaft fuer Mikroelektronik mbH(0x10FB)"},
{0x10FB, 0x186F, 0xFFFF, 0xFFFF, "TH 6255(0x186F)"},
}; /* pci_vid_10FB[] */
-pci_id_t pci_vid_10FC[] = {
+static pci_id_t const pci_vid_10FC[] = {
{0x10FC, 0xFFFF, 0xFFFF, 0xFFFF, "I-O Data Device, Inc.(0x10FC)"},
{0x10FC, 0x0003, 0xFFFF, 0xFFFF, "Cardbus IDE Controller(0x0003)"},
{0x10FC, 0x0005, 0xFFFF, 0xFFFF, "Cardbus SCSI CBSC II(0x0005)"},
}; /* pci_vid_10FC[] */
-pci_id_t pci_vid_10FD[] = {
+static pci_id_t const pci_vid_10FD[] = {
{0x10FD, 0xFFFF, 0xFFFF, 0xFFFF, "Soyo Computer, Inc(0x10FD)"},
}; /* pci_vid_10FD[] */
-pci_id_t pci_vid_10FE[] = {
+static pci_id_t const pci_vid_10FE[] = {
{0x10FE, 0xFFFF, 0xFFFF, 0xFFFF, "Fast Multimedia AG(0x10FE)"},
}; /* pci_vid_10FE[] */
-pci_id_t pci_vid_10FF[] = {
+static pci_id_t const pci_vid_10FF[] = {
{0x10FF, 0xFFFF, 0xFFFF, 0xFFFF, "NCube(0x10FF)"},
}; /* pci_vid_10FF[] */
-pci_id_t pci_vid_1100[] = {
+static pci_id_t const pci_vid_1100[] = {
{0x1100, 0xFFFF, 0xFFFF, 0xFFFF, "Jazz Multimedia(0x1100)"},
}; /* pci_vid_1100[] */
-pci_id_t pci_vid_1101[] = {
+static pci_id_t const pci_vid_1101[] = {
{0x1101, 0xFFFF, 0xFFFF, 0xFFFF, "Initio Corporation(0x1101)"},
{0x1101, 0x0002, 0xFFFF, 0xFFFF, "INI-920 Ultra SCSI Adapter(0x0002)"},
{0x1101, 0x1060, 0xFFFF, 0xFFFF, "INI-A100U2W(0x1060)"},
@@ -14268,7 +14333,7 @@ pci_id_t pci_vid_1101[] = {
{0x1101, 0x9502, 0xFFFF, 0xFFFF, "INI-950P Ultra Wide SCSI Adapter(0x9502)"},
}; /* pci_vid_1101[] */
-pci_id_t pci_vid_1102[] = {
+static pci_id_t const pci_vid_1102[] = {
{0x1102, 0xFFFF, 0xFFFF, 0xFFFF, "Creative Labs(0x1102)"},
{0x1102, 0x0002, 0xFFFF, 0xFFFF, "EMU10k1 [Sound Blaster Live! Series](0x0002)"},
{0x1102, 0x0002, 0x100A, 0x1102, "SB Live! 5.1 Digital OEM SB0220 EMU10K1-JFF(0x100A-0x1102)"},
@@ -14419,7 +14484,7 @@ pci_id_t pci_vid_1102[] = {
{0x1102, 0x8938, 0x156D, 0xB797, "G797 (AlphaTop (Taiwan))(0x156D-0xB797)"},
}; /* pci_vid_1102[] */
-pci_id_t pci_vid_1103[] = {
+static pci_id_t const pci_vid_1103[] = {
{0x1103, 0xFFFF, 0xFFFF, 0xFFFF, "HighPoint Technologies, Inc.(0x1103)"},
{0x1103, 0x0003, 0xFFFF, 0xFFFF, "HPT343/345/346/363(0x0003)"},
{0x1103, 0x0004, 0xFFFF, 0xFFFF, "HPT366/368/370/370A/372/372N(0x0004)"},
@@ -14440,6 +14505,8 @@ pci_id_t pci_vid_1103[] = {
{0x1103, 0x0644, 0xFFFF, 0xFFFF, "RocketRAID 644 4 Port SATA-III Controller (eSATA)(0x0644)"},
{0x1103, 0x0645, 0xFFFF, 0xFFFF, "RocketRAID 644L 4 Port SATA-III Controller (eSATA)(0x0645)"},
{0x1103, 0x0646, 0xFFFF, 0xFFFF, "RocketRAID 644LS SATA-III Controller (4 eSATA devices connected by 1 SAS cable)(0x0646)"},
+{0x1103, 0x0750, 0xFFFF, 0xFFFF, "Rocket 750 PCIe Gen2 SATA III Controller(0x0750)"},
+{0x1103, 0x0840, 0xFFFF, 0xFFFF, "RocketRAID 840 PCIe Gen3 SATA III Controller(0x0840)"},
{0x1103, 0x1720, 0xFFFF, 0xFFFF, "RocketRAID 1720 (2x SATA II RAID Controller)(0x1720)"},
{0x1103, 0x1740, 0xFFFF, 0xFFFF, "RocketRAID 1740(0x1740)"},
{0x1103, 0x1742, 0xFFFF, 0xFFFF, "RocketRAID 1742(0x1742)"},
@@ -14451,23 +14518,33 @@ pci_id_t pci_vid_1103[] = {
{0x1103, 0x2322, 0xFFFF, 0xFFFF, "RocketRAID 2322 SATA-II Controller(0x2322)"},
{0x1103, 0x2340, 0xFFFF, 0xFFFF, "RocketRAID 2340 16 Port SATA-II Controller(0x2340)"},
{0x1103, 0x2640, 0xFFFF, 0xFFFF, "RocketRAID 2640 SAS/SATA Controller(0x2640)"},
+{0x1103, 0x2720, 0xFFFF, 0xFFFF, "RocketRAID 2720 PCIe Gen2 6Gb/s SAS/SATA Controller(0x2720)"},
{0x1103, 0x2722, 0xFFFF, 0xFFFF, "RocketRAID 2722(0x2722)"},
{0x1103, 0x2740, 0xFFFF, 0xFFFF, "RocketRAID 2740(0x2740)"},
{0x1103, 0x2744, 0xFFFF, 0xFFFF, "RocketRaid 2744(0x2744)"},
{0x1103, 0x2782, 0xFFFF, 0xFFFF, "RocketRAID 2782(0x2782)"},
+{0x1103, 0x2840, 0xFFFF, 0xFFFF, "RocketRAID 2840 PCIe Gen3 6Gb/s SAS/SATA Controller(0x2840)"},
{0x1103, 0x3120, 0xFFFF, 0xFFFF, "RocketRAID 3120(0x3120)"},
{0x1103, 0x3220, 0xFFFF, 0xFFFF, "RocketRAID 3220(0x3220)"},
{0x1103, 0x3320, 0xFFFF, 0xFFFF, "RocketRAID 3320(0x3320)"},
+{0x1103, 0x3520, 0xFFFF, 0xFFFF, "RocketRAID 3520 PCIe Gen1 8-Port SATA II Controller(0x3520)"},
+{0x1103, 0x3530, 0xFFFF, 0xFFFF, "RocketRAID 3530 PCIe Gen1 12-Port SATA II Controller(0x3530)"},
+{0x1103, 0x3740, 0xFFFF, 0xFFFF, "RocketRAID 3740 PCIe Gen3 12Gb/s SAS/SATA Controller(0x3740)"},
{0x1103, 0x4310, 0xFFFF, 0xFFFF, "RocketRaid 4310(0x4310)"},
+{0x1103, 0x4320, 0xFFFF, 0xFFFF, "RocketRAID 4320 SAS Controller(0x4320)"},
+{0x1103, 0x7103, 0xFFFF, 0xFFFF, "SSD7103 PCIe Gen3 x16 4-Port M.2 NVMe RAID Controller(0x7103)"},
+{0x1103, 0x7105, 0xFFFF, 0xFFFF, "SSD7105 PCIe Gen3 x16 4-Port M.2 NVMe RAID Controller(0x7105)"},
+{0x1103, 0x7110, 0xFFFF, 0xFFFF, "SSD7110 PCIe Gen3 x16 NVMe RAID Controller(0x7110)"},
{0x1103, 0x7505, 0xFFFF, 0xFFFF, "SSD7505 PCIe Gen4 x16 4-Port M.2 NVMe RAID Controller(0x7505)"},
{0x1103, 0x7540, 0xFFFF, 0xFFFF, "SSD7540 PCIe Gen4 x16 8-Port M.2 NVMe RAID Controller(0x7540)"},
+{0x1103, 0x7580, 0xFFFF, 0xFFFF, "SSD7580 PCIe Gen4 x16 8-Port M.2 NVMe RAID Controller(0x7580)"},
}; /* pci_vid_1103[] */
-pci_id_t pci_vid_1104[] = {
+static pci_id_t const pci_vid_1104[] = {
{0x1104, 0xFFFF, 0xFFFF, 0xFFFF, "RasterOps Corp.(0x1104)"},
}; /* pci_vid_1104[] */
-pci_id_t pci_vid_1105[] = {
+static pci_id_t const pci_vid_1105[] = {
{0x1105, 0xFFFF, 0xFFFF, 0xFFFF, "Sigma Designs, Inc.(0x1105)"},
{0x1105, 0x1105, 0xFFFF, 0xFFFF, "REALmagic Xcard MPEG 1/2/3/4 DVD Decoder(0x1105)"},
{0x1105, 0x8300, 0xFFFF, 0xFFFF, "REALmagic Hollywood Plus DVD Decoder(0x8300)"},
@@ -14485,7 +14562,7 @@ pci_id_t pci_vid_1105[] = {
{0x1105, 0xC622, 0xFFFF, 0xFFFF, "EM8622L MPEG-4.10 (H.264) and SMPTE 421M (VC-1) A/V Decoder(0xC622)"},
}; /* pci_vid_1105[] */
-pci_id_t pci_vid_1106[] = {
+static pci_id_t const pci_vid_1106[] = {
{0x1106, 0xFFFF, 0xFFFF, 0xFFFF, "VIA Technologies, Inc.(0x1106)"},
{0x1106, 0x0102, 0xFFFF, 0xFFFF, "Embedded VIA Ethernet Controller(0x0102)"},
{0x1106, 0x0130, 0xFFFF, 0xFFFF, "VT6305 1394.A Controller(0x0130)"},
@@ -14651,6 +14728,7 @@ pci_id_t pci_vid_1106[] = {
{0x1106, 0x3038, 0x1043, 0x808C, "VT62xx USB1.1 4 port controller(0x1043-0x808C)"},
{0x1106, 0x3038, 0x1043, 0x80A1, "A7V8X-X motherboard(0x1043-0x80A1)"},
{0x1106, 0x3038, 0x1043, 0x80ED, "A7V600/K8V-X/A8V Deluxe motherboard(0x1043-0x80ED)"},
+{0x1106, 0x3038, 0x1106, 0x3038, "USB 1.1 UHCI controller(0x1106-0x3038)"},
{0x1106, 0x3038, 0x1179, 0x0001, "Magnia Z310(0x1179-0x0001)"},
{0x1106, 0x3038, 0x1234, 0x0925, "MVP3 USB Controller(0x1234-0x0925)"},
{0x1106, 0x3038, 0x1458, 0x5004, "GA-7VAX Mainboard(0x1458-0x5004)"},
@@ -14682,6 +14760,7 @@ pci_id_t pci_vid_1106[] = {
{0x1106, 0x3044, 0x1462, 0x590D, "KT6 Delta-FIS2R (MS-6590)(0x1462-0x590D)"},
{0x1106, 0x3044, 0x1462, 0x702D, "K8T NEO 2 motherboard(0x1462-0x702D)"},
{0x1106, 0x3044, 0x1462, 0x971D, "MS-6917(0x1462-0x971D)"},
+{0x1106, 0x3044, 0x153B, 0x1146, "Cameo DV Firewire controller(0x153B-0x1146)"},
{0x1106, 0x3050, 0xFFFF, 0xFFFF, "VT82C596 Power Management(0x3050)"},
{0x1106, 0x3051, 0xFFFF, 0xFFFF, "VT82C596 Power Management(0x3051)"},
{0x1106, 0x3053, 0xFFFF, 0xFFFF, "VT6105M [Rhine-III](0x3053)"},
@@ -14774,7 +14853,7 @@ pci_id_t pci_vid_1106[] = {
{0x1106, 0x3104, 0x1043, 0x808C, "A7V8X motherboard(0x1043-0x808C)"},
{0x1106, 0x3104, 0x1043, 0x80A1, "A7V8X-X motherboard rev 1.01(0x1043-0x80A1)"},
{0x1106, 0x3104, 0x1043, 0x80ED, "A7V600/K8V-X/A8V Deluxe motherboard(0x1043-0x80ED)"},
-{0x1106, 0x3104, 0x1106, 0x3104, "USB 2.0 Controller(0x1106-0x3104)"},
+{0x1106, 0x3104, 0x1106, 0x3104, "USB 2.0 EHCI controller(0x1106-0x3104)"},
{0x1106, 0x3104, 0x1297, 0xF641, "FX41 motherboard(0x1297-0xF641)"},
{0x1106, 0x3104, 0x1458, 0x5004, "GA-7VAX Mainboard(0x1458-0x5004)"},
{0x1106, 0x3104, 0x1462, 0x5901, "KT6 Delta-FIS2R (MS-6590)(0x1462-0x5901)"},
@@ -15065,12 +15144,12 @@ pci_id_t pci_vid_1106[] = {
{0x1106, 0xF410, 0xFFFF, 0xFFFF, "VX900 Series PCI UART Port 0-3(0xF410)"},
}; /* pci_vid_1106[] */
-pci_id_t pci_vid_1107[] = {
+static pci_id_t const pci_vid_1107[] = {
{0x1107, 0xFFFF, 0xFFFF, 0xFFFF, "Stratus Computers(0x1107)"},
{0x1107, 0x0576, 0xFFFF, 0xFFFF, "VIA VT82C570MV [Apollo] (Wrong vendor ID!)(0x0576)"},
}; /* pci_vid_1107[] */
-pci_id_t pci_vid_1108[] = {
+static pci_id_t const pci_vid_1108[] = {
{0x1108, 0xFFFF, 0xFFFF, 0xFFFF, "Proteon, Inc.(0x1108)"},
{0x1108, 0x0100, 0xFFFF, 0xFFFF, "p1690plus_AA(0x0100)"},
{0x1108, 0x0101, 0xFFFF, 0xFFFF, "p1690plus_AB(0x0101)"},
@@ -15082,12 +15161,12 @@ pci_id_t pci_vid_1108[] = {
{0x1108, 0x013D, 0xFFFF, 0xFFFF, "P1690Plus(0x013D)"},
}; /* pci_vid_1108[] */
-pci_id_t pci_vid_1109[] = {
+static pci_id_t const pci_vid_1109[] = {
{0x1109, 0xFFFF, 0xFFFF, 0xFFFF, "Cogent Data Technologies, Inc.(0x1109)"},
{0x1109, 0x1400, 0xFFFF, 0xFFFF, "EM110TX [EX110TX](0x1400)"},
}; /* pci_vid_1109[] */
-pci_id_t pci_vid_110A[] = {
+static pci_id_t const pci_vid_110A[] = {
{0x110A, 0xFFFF, 0xFFFF, 0xFFFF, "Siemens AG(0x110A)"},
{0x110A, 0x0002, 0xFFFF, 0xFFFF, "Pirahna 2-port(0x0002)"},
{0x110A, 0x0005, 0xFFFF, 0xFFFF, "Tulip controller, power management, switch extender(0x0005)"},
@@ -15100,6 +15179,7 @@ pci_id_t pci_vid_110A[] = {
{0x110A, 0x2101, 0xFFFF, 0xFFFF, "HST SAPHIR V Primary PCI (ISDN/PMx)(0x2101)"},
{0x110A, 0x2102, 0xFFFF, 0xFFFF, "DSCC4 PEB/PEF 20534 DMA Supported Serial Communication Controller with 4 Channels(0x2102)"},
{0x110A, 0x2104, 0xFFFF, 0xFFFF, "Eicon Diva 2.02 compatible passive ISDN card(0x2104)"},
+{0x110A, 0x3101, 0xFFFF, 0xFFFF, "HiPath 4000 PCI card(0x3101)"},
{0x110A, 0x3141, 0xFFFF, 0xFFFF, "SIMATIC NET CP 5611 / 5621(0x3141)"},
{0x110A, 0x3142, 0xFFFF, 0xFFFF, "SIMATIC NET CP 5613 / 5614(0x3142)"},
{0x110A, 0x3143, 0xFFFF, 0xFFFF, "SIMATIC NET CP 1613(0x3143)"},
@@ -15122,39 +15202,39 @@ pci_id_t pci_vid_110A[] = {
{0x110A, 0x6120, 0xFFFF, 0xFFFF, "SZB6120(0x6120)"},
}; /* pci_vid_110A[] */
-pci_id_t pci_vid_110B[] = {
+static pci_id_t const pci_vid_110B[] = {
{0x110B, 0xFFFF, 0xFFFF, 0xFFFF, "Chromatic Research Inc.(0x110B)"},
{0x110B, 0x0001, 0xFFFF, 0xFFFF, "Mpact Media Processor(0x0001)"},
{0x110B, 0x0004, 0xFFFF, 0xFFFF, "Mpact 2(0x0004)"},
}; /* pci_vid_110B[] */
-pci_id_t pci_vid_110C[] = {
+static pci_id_t const pci_vid_110C[] = {
{0x110C, 0xFFFF, 0xFFFF, 0xFFFF, "Mini-Max Technology, Inc.(0x110C)"},
}; /* pci_vid_110C[] */
-pci_id_t pci_vid_110D[] = {
+static pci_id_t const pci_vid_110D[] = {
{0x110D, 0xFFFF, 0xFFFF, 0xFFFF, "Znyx Advanced Systems(0x110D)"},
}; /* pci_vid_110D[] */
-pci_id_t pci_vid_110E[] = {
+static pci_id_t const pci_vid_110E[] = {
{0x110E, 0xFFFF, 0xFFFF, 0xFFFF, "CPU Technology(0x110E)"},
}; /* pci_vid_110E[] */
-pci_id_t pci_vid_110F[] = {
+static pci_id_t const pci_vid_110F[] = {
{0x110F, 0xFFFF, 0xFFFF, 0xFFFF, "Ross Technology(0x110F)"},
}; /* pci_vid_110F[] */
-pci_id_t pci_vid_1110[] = {
+static pci_id_t const pci_vid_1110[] = {
{0x1110, 0xFFFF, 0xFFFF, 0xFFFF, "Powerhouse Systems(0x1110)"},
{0x1110, 0x6037, 0xFFFF, 0xFFFF, "Firepower Powerized SMP I/O ASIC(0x6037)"},
{0x1110, 0x6073, 0xFFFF, 0xFFFF, "Firepower Powerized SMP I/O ASIC(0x6073)"},
}; /* pci_vid_1110[] */
-pci_id_t pci_vid_1111[] = {
+static pci_id_t const pci_vid_1111[] = {
{0x1111, 0xFFFF, 0xFFFF, 0xFFFF, "Santa Cruz Operation(0x1111)"},
}; /* pci_vid_1111[] */
-pci_id_t pci_vid_1112[] = {
+static pci_id_t const pci_vid_1112[] = {
{0x1112, 0xFFFF, 0xFFFF, 0xFFFF, "Osicom Technologies Inc(0x1112)"},
{0x1112, 0x2200, 0xFFFF, 0xFFFF, "FDDI Adapter(0x2200)"},
{0x1112, 0x2300, 0xFFFF, 0xFFFF, "Fast Ethernet Adapter(0x2300)"},
@@ -15162,7 +15242,7 @@ pci_id_t pci_vid_1112[] = {
{0x1112, 0x2400, 0xFFFF, 0xFFFF, "ATM Adapter(0x2400)"},
}; /* pci_vid_1112[] */
-pci_id_t pci_vid_1113[] = {
+static pci_id_t const pci_vid_1113[] = {
{0x1113, 0xFFFF, 0xFFFF, 0xFFFF, "Accton Technology Corporation(0x1113)"},
{0x1113, 0x1211, 0xFFFF, 0xFFFF, "SMC2-1211TX(0x1211)"},
{0x1113, 0x1211, 0x103C, 0x1207, "EN-1207D Fast Ethernet Adapter(0x103C-0x1207)"},
@@ -15182,16 +15262,16 @@ pci_id_t pci_vid_1113[] = {
{0x1113, 0xEE23, 0xFFFF, 0xFFFF, "SMCWPCIT-G 108Mbps Wireless PCI adapter(0xEE23)"},
}; /* pci_vid_1113[] */
-pci_id_t pci_vid_1114[] = {
+static pci_id_t const pci_vid_1114[] = {
{0x1114, 0xFFFF, 0xFFFF, 0xFFFF, "Atmel Corporation(0x1114)"},
{0x1114, 0x0506, 0xFFFF, 0xFFFF, "at76c506 802.11b Wireless Network Adaptor(0x0506)"},
}; /* pci_vid_1114[] */
-pci_id_t pci_vid_1115[] = {
+static pci_id_t const pci_vid_1115[] = {
{0x1115, 0xFFFF, 0xFFFF, 0xFFFF, "3D Labs(0x1115)"},
}; /* pci_vid_1115[] */
-pci_id_t pci_vid_1116[] = {
+static pci_id_t const pci_vid_1116[] = {
{0x1116, 0xFFFF, 0xFFFF, 0xFFFF, "Data Translation(0x1116)"},
{0x1116, 0x0022, 0xFFFF, 0xFFFF, "DT3001(0x0022)"},
{0x1116, 0x0023, 0xFFFF, 0xFFFF, "DT3002(0x0023)"},
@@ -15206,17 +15286,17 @@ pci_id_t pci_vid_1116[] = {
{0x1116, 0x80C2, 0xFFFF, 0xFFFF, "DT3162(0x80C2)"},
}; /* pci_vid_1116[] */
-pci_id_t pci_vid_1117[] = {
+static pci_id_t const pci_vid_1117[] = {
{0x1117, 0xFFFF, 0xFFFF, 0xFFFF, "Datacube, Inc(0x1117)"},
{0x1117, 0x9500, 0xFFFF, 0xFFFF, "Max-1C SVGA card(0x9500)"},
{0x1117, 0x9501, 0xFFFF, 0xFFFF, "Max-1C image processing(0x9501)"},
}; /* pci_vid_1117[] */
-pci_id_t pci_vid_1118[] = {
+static pci_id_t const pci_vid_1118[] = {
{0x1118, 0xFFFF, 0xFFFF, 0xFFFF, "Berg Electronics(0x1118)"},
}; /* pci_vid_1118[] */
-pci_id_t pci_vid_1119[] = {
+static pci_id_t const pci_vid_1119[] = {
{0x1119, 0xFFFF, 0xFFFF, 0xFFFF, "ICP Vortex Computersysteme GmbH(0x1119)"},
{0x1119, 0x0000, 0xFFFF, 0xFFFF, "GDT 6000/6020/6050(0x0000)"},
{0x1119, 0x0001, 0xFFFF, 0xFFFF, "GDT 6000B/6010(0x0001)"},
@@ -15291,7 +15371,7 @@ pci_id_t pci_vid_1119[] = {
{0x1119, 0x0301, 0xFFFF, 0xFFFF, "GDT NEWRX2(0x0301)"},
}; /* pci_vid_1119[] */
-pci_id_t pci_vid_111A[] = {
+static pci_id_t const pci_vid_111A[] = {
{0x111A, 0xFFFF, 0xFFFF, 0xFFFF, "Efficient Networks, Inc(0x111A)"},
{0x111A, 0x0000, 0xFFFF, 0xFFFF, "155P-MF1 (FPGA)(0x0000)"},
{0x111A, 0x0002, 0xFFFF, 0xFFFF, "155P-MF1 (ASIC)(0x0002)"},
@@ -15311,16 +15391,16 @@ pci_id_t pci_vid_111A[] = {
{0x111A, 0x1203, 0xFFFF, 0xFFFF, "SpeedStream 1023 Wireless PCI Adapter(0x1203)"},
}; /* pci_vid_111A[] */
-pci_id_t pci_vid_111B[] = {
+static pci_id_t const pci_vid_111B[] = {
{0x111B, 0xFFFF, 0xFFFF, 0xFFFF, "Teledyne Electronic Systems(0x111B)"},
}; /* pci_vid_111B[] */
-pci_id_t pci_vid_111C[] = {
+static pci_id_t const pci_vid_111C[] = {
{0x111C, 0xFFFF, 0xFFFF, 0xFFFF, "Tricord Systems Inc.(0x111C)"},
{0x111C, 0x0001, 0xFFFF, 0xFFFF, "Powerbis Bridge(0x0001)"},
}; /* pci_vid_111C[] */
-pci_id_t pci_vid_111D[] = {
+static pci_id_t const pci_vid_111D[] = {
{0x111D, 0xFFFF, 0xFFFF, 0xFFFF, "Microsemi / PMC / IDT(0x111D)"},
{0x111D, 0x0001, 0xFFFF, 0xFFFF, "IDT77201/77211 155Mbps ATM SAR Controller [NICStAR](0x0001)"},
{0x111D, 0x0003, 0xFFFF, 0xFFFF, "IDT77222/77252 155Mbps ATM MICRO ABR SAR Controller(0x0003)"},
@@ -15386,49 +15466,49 @@ pci_id_t pci_vid_111D[] = {
{0x111D, 0x80D2, 0xFFFF, 0xFFFF, "F32P08xG3 NVMe controller(0x80D2)"},
}; /* pci_vid_111D[] */
-pci_id_t pci_vid_111E[] = {
+static pci_id_t const pci_vid_111E[] = {
{0x111E, 0xFFFF, 0xFFFF, 0xFFFF, "Eldec(0x111E)"},
}; /* pci_vid_111E[] */
-pci_id_t pci_vid_111F[] = {
+static pci_id_t const pci_vid_111F[] = {
{0x111F, 0xFFFF, 0xFFFF, 0xFFFF, "Precision Digital Images(0x111F)"},
{0x111F, 0x4A47, 0xFFFF, 0xFFFF, "Precision MX Video engine interface(0x4A47)"},
{0x111F, 0x5243, 0xFFFF, 0xFFFF, "Frame capture bus interface(0x5243)"},
}; /* pci_vid_111F[] */
-pci_id_t pci_vid_1120[] = {
+static pci_id_t const pci_vid_1120[] = {
{0x1120, 0xFFFF, 0xFFFF, 0xFFFF, "Dell EMC(0x1120)"},
{0x1120, 0x2306, 0xFFFF, 0xFFFF, "Unity Fibre Channel Controller(0x2306)"},
{0x1120, 0x2501, 0xFFFF, 0xFFFF, "Unity Ethernet Controller(0x2501)"},
{0x1120, 0x2505, 0xFFFF, 0xFFFF, "Unity Fibre Channel Controller(0x2505)"},
}; /* pci_vid_1120[] */
-pci_id_t pci_vid_1121[] = {
+static pci_id_t const pci_vid_1121[] = {
{0x1121, 0xFFFF, 0xFFFF, 0xFFFF, "Zilog(0x1121)"},
}; /* pci_vid_1121[] */
-pci_id_t pci_vid_1122[] = {
+static pci_id_t const pci_vid_1122[] = {
{0x1122, 0xFFFF, 0xFFFF, 0xFFFF, "Multi-tech Systems, Inc.(0x1122)"},
}; /* pci_vid_1122[] */
-pci_id_t pci_vid_1123[] = {
+static pci_id_t const pci_vid_1123[] = {
{0x1123, 0xFFFF, 0xFFFF, 0xFFFF, "Excellent Design, Inc.(0x1123)"},
}; /* pci_vid_1123[] */
-pci_id_t pci_vid_1124[] = {
+static pci_id_t const pci_vid_1124[] = {
{0x1124, 0xFFFF, 0xFFFF, 0xFFFF, "Leutron Vision AG(0x1124)"},
{0x1124, 0x2581, 0xFFFF, 0xFFFF, "Picport Monochrome(0x2581)"},
}; /* pci_vid_1124[] */
-pci_id_t pci_vid_1125[] = {
+static pci_id_t const pci_vid_1125[] = {
{0x1125, 0xFFFF, 0xFFFF, 0xFFFF, "Eurocore(0x1125)"},
}; /* pci_vid_1125[] */
-pci_id_t pci_vid_1126[] = {
+static pci_id_t const pci_vid_1126[] = {
{0x1126, 0xFFFF, 0xFFFF, 0xFFFF, "Vigra(0x1126)"},
}; /* pci_vid_1126[] */
-pci_id_t pci_vid_1127[] = {
+static pci_id_t const pci_vid_1127[] = {
{0x1127, 0xFFFF, 0xFFFF, 0xFFFF, "FORE Systems Inc(0x1127)"},
{0x1127, 0x0200, 0xFFFF, 0xFFFF, "ForeRunner PCA-200 ATM(0x0200)"},
{0x1127, 0x0210, 0xFFFF, 0xFFFF, "PCA-200PC(0x0210)"},
@@ -15439,32 +15519,32 @@ pci_id_t pci_vid_1127[] = {
{0x1127, 0x0400, 0x1127, 0x0400, "ForeRunnerHE ATM(0x1127-0x0400)"},
}; /* pci_vid_1127[] */
-pci_id_t pci_vid_1129[] = {
+static pci_id_t const pci_vid_1129[] = {
{0x1129, 0xFFFF, 0xFFFF, 0xFFFF, "Firmworks(0x1129)"},
}; /* pci_vid_1129[] */
-pci_id_t pci_vid_112A[] = {
+static pci_id_t const pci_vid_112A[] = {
{0x112A, 0xFFFF, 0xFFFF, 0xFFFF, "Hermes Electronics Company, Ltd.(0x112A)"},
}; /* pci_vid_112A[] */
-pci_id_t pci_vid_112B[] = {
+static pci_id_t const pci_vid_112B[] = {
{0x112B, 0xFFFF, 0xFFFF, 0xFFFF, "Heidelberger Druckmaschinen AG(0x112B)"},
{0x112B, 0x0001, 0xFFFF, 0xFFFF, "SCU5(0x0001)"},
}; /* pci_vid_112B[] */
-pci_id_t pci_vid_112C[] = {
+static pci_id_t const pci_vid_112C[] = {
{0x112C, 0xFFFF, 0xFFFF, 0xFFFF, "Zenith Data Systems(0x112C)"},
}; /* pci_vid_112C[] */
-pci_id_t pci_vid_112D[] = {
+static pci_id_t const pci_vid_112D[] = {
{0x112D, 0xFFFF, 0xFFFF, 0xFFFF, "Ravicad(0x112D)"},
}; /* pci_vid_112D[] */
-pci_id_t pci_vid_112E[] = {
+static pci_id_t const pci_vid_112E[] = {
{0x112E, 0xFFFF, 0xFFFF, 0xFFFF, "Infomedia Microelectronics Inc.(0x112E)"},
}; /* pci_vid_112E[] */
-pci_id_t pci_vid_112F[] = {
+static pci_id_t const pci_vid_112F[] = {
{0x112F, 0xFFFF, 0xFFFF, 0xFFFF, "Dalsa Inc.(0x112F)"},
{0x112F, 0x0000, 0xFFFF, 0xFFFF, "MVC IC-PCI(0x0000)"},
{0x112F, 0x0001, 0xFFFF, 0xFFFF, "MVC IM-PCI Video frame grabber/processor(0x0001)"},
@@ -15472,11 +15552,11 @@ pci_id_t pci_vid_112F[] = {
{0x112F, 0x0008, 0xFFFF, 0xFFFF, "PC-CamLink PCI framegrabber(0x0008)"},
}; /* pci_vid_112F[] */
-pci_id_t pci_vid_1130[] = {
+static pci_id_t const pci_vid_1130[] = {
{0x1130, 0xFFFF, 0xFFFF, 0xFFFF, "Computervision(0x1130)"},
}; /* pci_vid_1130[] */
-pci_id_t pci_vid_1131[] = {
+static pci_id_t const pci_vid_1131[] = {
{0x1131, 0xFFFF, 0xFFFF, 0xFFFF, "Philips Semiconductors(0x1131)"},
{0x1131, 0x1561, 0xFFFF, 0xFFFF, "USB 1.1 Host Controller(0x1561)"},
{0x1131, 0x1561, 0x1775, 0xC200, "C2K onboard USB 1.1 host controller(0x1775-0xC200)"},
@@ -15720,11 +15800,11 @@ pci_id_t pci_vid_1131[] = {
{0x1131, 0x9730, 0x1131, 0x0000, "Integrated Multimedia and Peripheral Controller(0x1131-0x0000)"},
}; /* pci_vid_1131[] */
-pci_id_t pci_vid_1132[] = {
+static pci_id_t const pci_vid_1132[] = {
{0x1132, 0xFFFF, 0xFFFF, 0xFFFF, "Mitel Corp.(0x1132)"},
}; /* pci_vid_1132[] */
-pci_id_t pci_vid_1133[] = {
+static pci_id_t const pci_vid_1133[] = {
{0x1133, 0xFFFF, 0xFFFF, 0xFFFF, "Dialogic Corporation(0x1133)"},
{0x1133, 0x7701, 0xFFFF, 0xFFFF, "Eiconcard C90(0x7701)"},
{0x1133, 0x7711, 0xFFFF, 0xFFFF, "Eiconcard C91(0x7711)"},
@@ -15819,7 +15899,7 @@ pci_id_t pci_vid_1133[] = {
{0x1133, 0xE034, 0xFFFF, 0xFFFF, "Diva BRI-CTI PCI v2(0xE034)"},
}; /* pci_vid_1133[] */
-pci_id_t pci_vid_1134[] = {
+static pci_id_t const pci_vid_1134[] = {
{0x1134, 0xFFFF, 0xFFFF, 0xFFFF, "Mercury Computer Systems(0x1134)"},
{0x1134, 0x0001, 0xFFFF, 0xFFFF, "Raceway Bridge(0x0001)"},
{0x1134, 0x0002, 0xFFFF, 0xFFFF, "Dual PCI to RapidIO Bridge(0x0002)"},
@@ -15827,17 +15907,17 @@ pci_id_t pci_vid_1134[] = {
{0x1134, 0x000D, 0xFFFF, 0xFFFF, "POET PSDMS Device(0x000D)"},
}; /* pci_vid_1134[] */
-pci_id_t pci_vid_1135[] = {
+static pci_id_t const pci_vid_1135[] = {
{0x1135, 0xFFFF, 0xFFFF, 0xFFFF, "FUJIFILM Business Innovation Corp.(0x1135)"},
{0x1135, 0x0001, 0xFFFF, 0xFFFF, "Printer controller(0x0001)"},
}; /* pci_vid_1135[] */
-pci_id_t pci_vid_1136[] = {
+static pci_id_t const pci_vid_1136[] = {
{0x1136, 0xFFFF, 0xFFFF, 0xFFFF, "Momentum Data Systems(0x1136)"},
{0x1136, 0x0002, 0xFFFF, 0xFFFF, "PCI-JTAG(0x0002)"},
}; /* pci_vid_1136[] */
-pci_id_t pci_vid_1137[] = {
+static pci_id_t const pci_vid_1137[] = {
{0x1137, 0xFFFF, 0xFFFF, 0xFFFF, "Cisco Systems Inc(0x1137)"},
{0x1137, 0x0023, 0xFFFF, 0xFFFF, "VIC 81 PCIe Upstream Port(0x0023)"},
{0x1137, 0x0040, 0xFFFF, 0xFFFF, "VIC PCIe Upstream Port(0x0040)"},
@@ -15931,25 +16011,25 @@ pci_id_t pci_vid_1137[] = {
{0x1137, 0x023E, 0xFFFF, 0xFFFF, "1GigE I350 LOM(0x023E)"},
}; /* pci_vid_1137[] */
-pci_id_t pci_vid_1138[] = {
+static pci_id_t const pci_vid_1138[] = {
{0x1138, 0xFFFF, 0xFFFF, 0xFFFF, "Ziatech Corporation(0x1138)"},
{0x1138, 0x8905, 0xFFFF, 0xFFFF, "8905 [STD 32 Bridge](0x8905)"},
}; /* pci_vid_1138[] */
-pci_id_t pci_vid_1139[] = {
+static pci_id_t const pci_vid_1139[] = {
{0x1139, 0xFFFF, 0xFFFF, 0xFFFF, "Dynamic Pictures, Inc(0x1139)"},
{0x1139, 0x0001, 0xFFFF, 0xFFFF, "VGA Compatible 3D Graphics(0x0001)"},
}; /* pci_vid_1139[] */
-pci_id_t pci_vid_113A[] = {
+static pci_id_t const pci_vid_113A[] = {
{0x113A, 0xFFFF, 0xFFFF, 0xFFFF, "FWB Inc(0x113A)"},
}; /* pci_vid_113A[] */
-pci_id_t pci_vid_113B[] = {
+static pci_id_t const pci_vid_113B[] = {
{0x113B, 0xFFFF, 0xFFFF, 0xFFFF, "Network Computing Devices(0x113B)"},
}; /* pci_vid_113B[] */
-pci_id_t pci_vid_113C[] = {
+static pci_id_t const pci_vid_113C[] = {
{0x113C, 0xFFFF, 0xFFFF, 0xFFFF, "Cyclone Microsystems, Inc.(0x113C)"},
{0x113C, 0x0000, 0xFFFF, 0xFFFF, "PCI-9060 i960 Bridge(0x0000)"},
{0x113C, 0x0001, 0xFFFF, 0xFFFF, "PCI-SDK [PCI i960 Evaluation Platform](0x0001)"},
@@ -15959,15 +16039,15 @@ pci_id_t pci_vid_113C[] = {
{0x113C, 0x0914, 0xFFFF, 0xFFFF, "PCI-914 [I/O Controller w/ secondary PCI bus](0x0914)"},
}; /* pci_vid_113C[] */
-pci_id_t pci_vid_113D[] = {
+static pci_id_t const pci_vid_113D[] = {
{0x113D, 0xFFFF, 0xFFFF, 0xFFFF, "Leading Edge Products Inc(0x113D)"},
}; /* pci_vid_113D[] */
-pci_id_t pci_vid_113E[] = {
+static pci_id_t const pci_vid_113E[] = {
{0x113E, 0xFFFF, 0xFFFF, 0xFFFF, "Sanyo Electric Co - Computer Engineering Dept(0x113E)"},
}; /* pci_vid_113E[] */
-pci_id_t pci_vid_113F[] = {
+static pci_id_t const pci_vid_113F[] = {
{0x113F, 0xFFFF, 0xFFFF, 0xFFFF, "Equinox Systems, Inc.(0x113F)"},
{0x113F, 0x0808, 0xFFFF, 0xFFFF, "SST-64P Adapter(0x0808)"},
{0x113F, 0x1010, 0xFFFF, 0xFFFF, "SST-128P Adapter(0x1010)"},
@@ -15978,15 +16058,15 @@ pci_id_t pci_vid_113F[] = {
{0x113F, 0x9090, 0xFFFF, 0xFFFF, "SST-8P Adapter(0x9090)"},
}; /* pci_vid_113F[] */
-pci_id_t pci_vid_1140[] = {
+static pci_id_t const pci_vid_1140[] = {
{0x1140, 0xFFFF, 0xFFFF, 0xFFFF, "Intervoice Inc(0x1140)"},
}; /* pci_vid_1140[] */
-pci_id_t pci_vid_1141[] = {
+static pci_id_t const pci_vid_1141[] = {
{0x1141, 0xFFFF, 0xFFFF, 0xFFFF, "Crest Microsystem Inc(0x1141)"},
}; /* pci_vid_1141[] */
-pci_id_t pci_vid_1142[] = {
+static pci_id_t const pci_vid_1142[] = {
{0x1142, 0xFFFF, 0xFFFF, 0xFFFF, "Alliance Semiconductor Corporation(0x1142)"},
{0x1142, 0x3210, 0xFFFF, 0xFFFF, "AP6410(0x3210)"},
{0x1142, 0x6422, 0xFFFF, 0xFFFF, "ProVideo 6422(0x6422)"},
@@ -15995,16 +16075,16 @@ pci_id_t pci_vid_1142[] = {
{0x1142, 0x643D, 0xFFFF, 0xFFFF, "ProMotion AT3D(0x643D)"},
}; /* pci_vid_1142[] */
-pci_id_t pci_vid_1143[] = {
+static pci_id_t const pci_vid_1143[] = {
{0x1143, 0xFFFF, 0xFFFF, 0xFFFF, "NetPower, Inc(0x1143)"},
}; /* pci_vid_1143[] */
-pci_id_t pci_vid_1144[] = {
+static pci_id_t const pci_vid_1144[] = {
{0x1144, 0xFFFF, 0xFFFF, 0xFFFF, "Cincinnati Milacron(0x1144)"},
{0x1144, 0x0001, 0xFFFF, 0xFFFF, "Noservo controller(0x0001)"},
}; /* pci_vid_1144[] */
-pci_id_t pci_vid_1145[] = {
+static pci_id_t const pci_vid_1145[] = {
{0x1145, 0xFFFF, 0xFFFF, 0xFFFF, "Workbit Corporation(0x1145)"},
{0x1145, 0x8007, 0xFFFF, 0xFFFF, "NinjaSCSI-32 Workbit(0x8007)"},
{0x1145, 0xF007, 0xFFFF, 0xFFFF, "NinjaSCSI-32 KME(0xF007)"},
@@ -16018,15 +16098,15 @@ pci_id_t pci_vid_1145[] = {
{0x1145, 0xF103, 0xFFFF, 0xFFFF, "NinjaPATA-32 Delkin Cardbus UDMA(0xF103)"},
}; /* pci_vid_1145[] */
-pci_id_t pci_vid_1146[] = {
+static pci_id_t const pci_vid_1146[] = {
{0x1146, 0xFFFF, 0xFFFF, 0xFFFF, "Force Computers(0x1146)"},
}; /* pci_vid_1146[] */
-pci_id_t pci_vid_1147[] = {
+static pci_id_t const pci_vid_1147[] = {
{0x1147, 0xFFFF, 0xFFFF, 0xFFFF, "Interface Corp(0x1147)"},
}; /* pci_vid_1147[] */
-pci_id_t pci_vid_1148[] = {
+static pci_id_t const pci_vid_1148[] = {
{0x1148, 0xFFFF, 0xFFFF, 0xFFFF, "SysKonnect(0x1148)"},
{0x1148, 0x4000, 0xFFFF, 0xFFFF, "FDDI Adapter(0x4000)"},
{0x1148, 0x4000, 0x0E11, 0xB03B, "Netelligent 100 FDDI DAS Fibre SC(0x0E11-0xB03B)"},
@@ -16112,11 +16192,11 @@ pci_id_t pci_vid_1148[] = {
{0x1148, 0x9E01, 0xFFFF, 0xFFFF, "SK-9E21M 10/100/1000Base-T Adapter(0x9E01)"},
}; /* pci_vid_1148[] */
-pci_id_t pci_vid_1149[] = {
+static pci_id_t const pci_vid_1149[] = {
{0x1149, 0xFFFF, 0xFFFF, 0xFFFF, "Win System Corporation(0x1149)"},
}; /* pci_vid_1149[] */
-pci_id_t pci_vid_114A[] = {
+static pci_id_t const pci_vid_114A[] = {
{0x114A, 0xFFFF, 0xFFFF, 0xFFFF, "VMIC(0x114A)"},
{0x114A, 0x5565, 0xFFFF, 0xFFFF, "GE-IP PCI5565,PMC5565 Reflective Memory Node(0x5565)"},
{0x114A, 0x5579, 0xFFFF, 0xFFFF, "VMIPCI-5579 (Reflective Memory Card)(0x5579)"},
@@ -16125,23 +16205,23 @@ pci_id_t pci_vid_114A[] = {
{0x114A, 0x7587, 0xFFFF, 0xFFFF, "VMIVME-7587(0x7587)"},
}; /* pci_vid_114A[] */
-pci_id_t pci_vid_114B[] = {
+static pci_id_t const pci_vid_114B[] = {
{0x114B, 0xFFFF, 0xFFFF, 0xFFFF, "Canopus Co., Ltd(0x114B)"},
}; /* pci_vid_114B[] */
-pci_id_t pci_vid_114C[] = {
+static pci_id_t const pci_vid_114C[] = {
{0x114C, 0xFFFF, 0xFFFF, 0xFFFF, "Annabooks(0x114C)"},
}; /* pci_vid_114C[] */
-pci_id_t pci_vid_114D[] = {
+static pci_id_t const pci_vid_114D[] = {
{0x114D, 0xFFFF, 0xFFFF, 0xFFFF, "IC Corporation(0x114D)"},
}; /* pci_vid_114D[] */
-pci_id_t pci_vid_114E[] = {
+static pci_id_t const pci_vid_114E[] = {
{0x114E, 0xFFFF, 0xFFFF, 0xFFFF, "Nikon Systems Inc(0x114E)"},
}; /* pci_vid_114E[] */
-pci_id_t pci_vid_114F[] = {
+static pci_id_t const pci_vid_114F[] = {
{0x114F, 0xFFFF, 0xFFFF, 0xFFFF, "Digi International(0x114F)"},
{0x114F, 0x0002, 0xFFFF, 0xFFFF, "AccelePort EPC(0x0002)"},
{0x114F, 0x0003, 0xFFFF, 0xFFFF, "RightSwitch SE-6(0x0003)"},
@@ -16208,64 +16288,64 @@ pci_id_t pci_vid_114F[] = {
{0x114F, 0x6001, 0xFFFF, 0xFFFF, "Avanstar(0x6001)"},
}; /* pci_vid_114F[] */
-pci_id_t pci_vid_1150[] = {
+static pci_id_t const pci_vid_1150[] = {
{0x1150, 0xFFFF, 0xFFFF, 0xFFFF, "Thinking Machines Corp(0x1150)"},
}; /* pci_vid_1150[] */
-pci_id_t pci_vid_1151[] = {
+static pci_id_t const pci_vid_1151[] = {
{0x1151, 0xFFFF, 0xFFFF, 0xFFFF, "JAE Electronics Inc.(0x1151)"},
}; /* pci_vid_1151[] */
-pci_id_t pci_vid_1152[] = {
+static pci_id_t const pci_vid_1152[] = {
{0x1152, 0xFFFF, 0xFFFF, 0xFFFF, "Megatek(0x1152)"},
}; /* pci_vid_1152[] */
-pci_id_t pci_vid_1153[] = {
+static pci_id_t const pci_vid_1153[] = {
{0x1153, 0xFFFF, 0xFFFF, 0xFFFF, "Land Win Electronic Corp(0x1153)"},
}; /* pci_vid_1153[] */
-pci_id_t pci_vid_1154[] = {
+static pci_id_t const pci_vid_1154[] = {
{0x1154, 0xFFFF, 0xFFFF, 0xFFFF, "Melco Inc(0x1154)"},
}; /* pci_vid_1154[] */
-pci_id_t pci_vid_1155[] = {
+static pci_id_t const pci_vid_1155[] = {
{0x1155, 0xFFFF, 0xFFFF, 0xFFFF, "Pine Technology Ltd(0x1155)"},
}; /* pci_vid_1155[] */
-pci_id_t pci_vid_1156[] = {
+static pci_id_t const pci_vid_1156[] = {
{0x1156, 0xFFFF, 0xFFFF, 0xFFFF, "Periscope Engineering(0x1156)"},
}; /* pci_vid_1156[] */
-pci_id_t pci_vid_1157[] = {
+static pci_id_t const pci_vid_1157[] = {
{0x1157, 0xFFFF, 0xFFFF, 0xFFFF, "Avsys Corporation(0x1157)"},
}; /* pci_vid_1157[] */
-pci_id_t pci_vid_1158[] = {
+static pci_id_t const pci_vid_1158[] = {
{0x1158, 0xFFFF, 0xFFFF, 0xFFFF, "Voarx R & D Inc(0x1158)"},
{0x1158, 0x3011, 0xFFFF, 0xFFFF, "Tokenet/vg 1001/10m anylan(0x3011)"},
{0x1158, 0x9050, 0xFFFF, 0xFFFF, "Lanfleet/Truevalue(0x9050)"},
{0x1158, 0x9051, 0xFFFF, 0xFFFF, "Lanfleet/Truevalue(0x9051)"},
}; /* pci_vid_1158[] */
-pci_id_t pci_vid_1159[] = {
+static pci_id_t const pci_vid_1159[] = {
{0x1159, 0xFFFF, 0xFFFF, 0xFFFF, "MuTech Corporation(0x1159)"},
{0x1159, 0x0001, 0xFFFF, 0xFFFF, "MV-1000(0x0001)"},
{0x1159, 0x0002, 0xFFFF, 0xFFFF, "MV-1500(0x0002)"},
}; /* pci_vid_1159[] */
-pci_id_t pci_vid_115A[] = {
+static pci_id_t const pci_vid_115A[] = {
{0x115A, 0xFFFF, 0xFFFF, 0xFFFF, "Harlequin Ltd(0x115A)"},
}; /* pci_vid_115A[] */
-pci_id_t pci_vid_115B[] = {
+static pci_id_t const pci_vid_115B[] = {
{0x115B, 0xFFFF, 0xFFFF, 0xFFFF, "Parallax Graphics(0x115B)"},
}; /* pci_vid_115B[] */
-pci_id_t pci_vid_115C[] = {
+static pci_id_t const pci_vid_115C[] = {
{0x115C, 0xFFFF, 0xFFFF, 0xFFFF, "Photron Ltd.(0x115C)"},
}; /* pci_vid_115C[] */
-pci_id_t pci_vid_115D[] = {
+static pci_id_t const pci_vid_115D[] = {
{0x115D, 0xFFFF, 0xFFFF, 0xFFFF, "Xircom(0x115D)"},
{0x115D, 0x0003, 0xFFFF, 0xFFFF, "Cardbus Ethernet 10/100(0x0003)"},
{0x115D, 0x0003, 0x1014, 0x0181, "10/100 EtherJet Cardbus Adapter(0x1014-0x0181)"},
@@ -16305,43 +16385,43 @@ pci_id_t pci_vid_115D[] = {
{0x115D, 0x0103, 0x8086, 0x9181, "PRO/100 LAN + Modem56 CardBus(0x8086-0x9181)"},
}; /* pci_vid_115D[] */
-pci_id_t pci_vid_115E[] = {
+static pci_id_t const pci_vid_115E[] = {
{0x115E, 0xFFFF, 0xFFFF, 0xFFFF, "Peer Protocols Inc(0x115E)"},
}; /* pci_vid_115E[] */
-pci_id_t pci_vid_115F[] = {
+static pci_id_t const pci_vid_115F[] = {
{0x115F, 0xFFFF, 0xFFFF, 0xFFFF, "Maxtor Corporation(0x115F)"},
}; /* pci_vid_115F[] */
-pci_id_t pci_vid_1160[] = {
+static pci_id_t const pci_vid_1160[] = {
{0x1160, 0xFFFF, 0xFFFF, 0xFFFF, "Megasoft Inc(0x1160)"},
}; /* pci_vid_1160[] */
-pci_id_t pci_vid_1161[] = {
+static pci_id_t const pci_vid_1161[] = {
{0x1161, 0xFFFF, 0xFFFF, 0xFFFF, "PFU Limited(0x1161)"},
}; /* pci_vid_1161[] */
-pci_id_t pci_vid_1162[] = {
+static pci_id_t const pci_vid_1162[] = {
{0x1162, 0xFFFF, 0xFFFF, 0xFFFF, "OA Laboratory Co Ltd(0x1162)"},
}; /* pci_vid_1162[] */
-pci_id_t pci_vid_1163[] = {
+static pci_id_t const pci_vid_1163[] = {
{0x1163, 0xFFFF, 0xFFFF, 0xFFFF, "Rendition(0x1163)"},
{0x1163, 0x0001, 0xFFFF, 0xFFFF, "Verite 1000(0x0001)"},
{0x1163, 0x2000, 0xFFFF, 0xFFFF, "Verite V2000/V2100/V2200(0x2000)"},
{0x1163, 0x2000, 0x1092, 0x2000, "Stealth II S220(0x1092-0x2000)"},
}; /* pci_vid_1163[] */
-pci_id_t pci_vid_1164[] = {
+static pci_id_t const pci_vid_1164[] = {
{0x1164, 0xFFFF, 0xFFFF, 0xFFFF, "Advanced Peripherals Technologies(0x1164)"},
}; /* pci_vid_1164[] */
-pci_id_t pci_vid_1165[] = {
+static pci_id_t const pci_vid_1165[] = {
{0x1165, 0xFFFF, 0xFFFF, 0xFFFF, "Imagraph Corporation(0x1165)"},
{0x1165, 0x0001, 0xFFFF, 0xFFFF, "Motion TPEG Recorder/Player with audio(0x0001)"},
}; /* pci_vid_1165[] */
-pci_id_t pci_vid_1166[] = {
+static pci_id_t const pci_vid_1166[] = {
{0x1166, 0xFFFF, 0xFFFF, 0xFFFF, "Broadcom(0x1166)"},
{0x1166, 0x0000, 0xFFFF, 0xFFFF, "CMIC-LE(0x0000)"},
{0x1166, 0x0005, 0xFFFF, 0xFFFF, "CNB20-LE Host Bridge(0x0005)"},
@@ -16428,19 +16508,19 @@ pci_id_t pci_vid_1166[] = {
{0x1166, 0x0422, 0xFFFF, 0xFFFF, "HT1100 PCI-Express Bridge(0x0422)"},
}; /* pci_vid_1166[] */
-pci_id_t pci_vid_1167[] = {
+static pci_id_t const pci_vid_1167[] = {
{0x1167, 0xFFFF, 0xFFFF, 0xFFFF, "Mutoh Industries Inc(0x1167)"},
}; /* pci_vid_1167[] */
-pci_id_t pci_vid_1168[] = {
+static pci_id_t const pci_vid_1168[] = {
{0x1168, 0xFFFF, 0xFFFF, 0xFFFF, "Thine Electronics Inc(0x1168)"},
}; /* pci_vid_1168[] */
-pci_id_t pci_vid_1169[] = {
+static pci_id_t const pci_vid_1169[] = {
{0x1169, 0xFFFF, 0xFFFF, 0xFFFF, "Centre for Development of Advanced Computing(0x1169)"},
}; /* pci_vid_1169[] */
-pci_id_t pci_vid_116A[] = {
+static pci_id_t const pci_vid_116A[] = {
{0x116A, 0xFFFF, 0xFFFF, 0xFFFF, "Luminex Software, Inc.(0x116A)"},
{0x116A, 0x6100, 0xFFFF, 0xFFFF, "Bus/Tag Channel(0x6100)"},
{0x116A, 0x6800, 0xFFFF, 0xFFFF, "Escon Channel(0x6800)"},
@@ -16448,67 +16528,67 @@ pci_id_t pci_vid_116A[] = {
{0x116A, 0x7800, 0xFFFF, 0xFFFF, "Escon Channel(0x7800)"},
}; /* pci_vid_116A[] */
-pci_id_t pci_vid_116B[] = {
+static pci_id_t const pci_vid_116B[] = {
{0x116B, 0xFFFF, 0xFFFF, 0xFFFF, "Connectware Inc(0x116B)"},
}; /* pci_vid_116B[] */
-pci_id_t pci_vid_116C[] = {
+static pci_id_t const pci_vid_116C[] = {
{0x116C, 0xFFFF, 0xFFFF, 0xFFFF, "Intelligent Resources Integrated Systems(0x116C)"},
}; /* pci_vid_116C[] */
-pci_id_t pci_vid_116D[] = {
+static pci_id_t const pci_vid_116D[] = {
{0x116D, 0xFFFF, 0xFFFF, 0xFFFF, "Martin-Marietta(0x116D)"},
}; /* pci_vid_116D[] */
-pci_id_t pci_vid_116E[] = {
+static pci_id_t const pci_vid_116E[] = {
{0x116E, 0xFFFF, 0xFFFF, 0xFFFF, "Electronics for Imaging(0x116E)"},
}; /* pci_vid_116E[] */
-pci_id_t pci_vid_116F[] = {
+static pci_id_t const pci_vid_116F[] = {
{0x116F, 0xFFFF, 0xFFFF, 0xFFFF, "Workstation Technology(0x116F)"},
}; /* pci_vid_116F[] */
-pci_id_t pci_vid_1170[] = {
+static pci_id_t const pci_vid_1170[] = {
{0x1170, 0xFFFF, 0xFFFF, 0xFFFF, "Inventec Corporation(0x1170)"},
}; /* pci_vid_1170[] */
-pci_id_t pci_vid_1171[] = {
+static pci_id_t const pci_vid_1171[] = {
{0x1171, 0xFFFF, 0xFFFF, 0xFFFF, "Loughborough Sound Images Plc(0x1171)"},
}; /* pci_vid_1171[] */
-pci_id_t pci_vid_1172[] = {
+static pci_id_t const pci_vid_1172[] = {
{0x1172, 0xFFFF, 0xFFFF, 0xFFFF, "Altera Corporation(0x1172)"},
{0x1172, 0x00A7, 0xFFFF, 0xFFFF, "Stratix V(0x00A7)"},
{0x1172, 0x0530, 0xFFFF, 0xFFFF, "Stratix IV(0x0530)"},
{0x1172, 0x646C, 0xFFFF, 0xFFFF, "KT-500/KT-521 board(0x646C)"},
}; /* pci_vid_1172[] */
-pci_id_t pci_vid_1173[] = {
+static pci_id_t const pci_vid_1173[] = {
{0x1173, 0xFFFF, 0xFFFF, 0xFFFF, "Adobe Systems, Inc(0x1173)"},
}; /* pci_vid_1173[] */
-pci_id_t pci_vid_1174[] = {
+static pci_id_t const pci_vid_1174[] = {
{0x1174, 0xFFFF, 0xFFFF, 0xFFFF, "Bridgeport Machines(0x1174)"},
}; /* pci_vid_1174[] */
-pci_id_t pci_vid_1175[] = {
+static pci_id_t const pci_vid_1175[] = {
{0x1175, 0xFFFF, 0xFFFF, 0xFFFF, "Mitron Computer Inc.(0x1175)"},
}; /* pci_vid_1175[] */
-pci_id_t pci_vid_1176[] = {
+static pci_id_t const pci_vid_1176[] = {
{0x1176, 0xFFFF, 0xFFFF, 0xFFFF, "SBE Incorporated(0x1176)"},
}; /* pci_vid_1176[] */
-pci_id_t pci_vid_1177[] = {
+static pci_id_t const pci_vid_1177[] = {
{0x1177, 0xFFFF, 0xFFFF, 0xFFFF, "Silicon Engineering(0x1177)"},
}; /* pci_vid_1177[] */
-pci_id_t pci_vid_1178[] = {
+static pci_id_t const pci_vid_1178[] = {
{0x1178, 0xFFFF, 0xFFFF, 0xFFFF, "Alfa, Inc.(0x1178)"},
{0x1178, 0xAFA1, 0xFFFF, 0xFFFF, "Fast Ethernet Adapter(0xAFA1)"},
}; /* pci_vid_1178[] */
-pci_id_t pci_vid_1179[] = {
+static pci_id_t const pci_vid_1179[] = {
{0x1179, 0xFFFF, 0xFFFF, 0xFFFF, "Toshiba Corporation(0x1179)"},
{0x1179, 0x0102, 0xFFFF, 0xFFFF, "Extended IDE Controller(0x0102)"},
{0x1179, 0x0103, 0xFFFF, 0xFFFF, "EX-IDE Type-B(0x0103)"},
@@ -16549,17 +16629,18 @@ pci_id_t pci_vid_1179[] = {
{0x1179, 0x0805, 0xFFFF, 0xFFFF, "SD TypA Controller(0x0805)"},
{0x1179, 0x0D01, 0xFFFF, 0xFFFF, "FIR Port Type-DO(0x0D01)"},
{0x1179, 0x0D01, 0x1179, 0x0001, "FIR Port Type-DO(0x1179-0x0001)"},
+{0x1179, 0x9602, 0xFFFF, 0xFFFF, "RS780/RS880 PCI to PCI bridge (int gfx)(0x9602)"},
}; /* pci_vid_1179[] */
-pci_id_t pci_vid_117A[] = {
+static pci_id_t const pci_vid_117A[] = {
{0x117A, 0xFFFF, 0xFFFF, 0xFFFF, "A-Trend Technology(0x117A)"},
}; /* pci_vid_117A[] */
-pci_id_t pci_vid_117B[] = {
+static pci_id_t const pci_vid_117B[] = {
{0x117B, 0xFFFF, 0xFFFF, 0xFFFF, "L G Electronics, Inc.(0x117B)"},
}; /* pci_vid_117B[] */
-pci_id_t pci_vid_117C[] = {
+static pci_id_t const pci_vid_117C[] = {
{0x117C, 0xFFFF, 0xFFFF, 0xFFFF, "ATTO Technology, Inc.(0x117C)"},
{0x117C, 0x002C, 0xFFFF, 0xFFFF, "ExpressSAS R380(0x002C)"},
{0x117C, 0x002D, 0xFFFF, 0xFFFF, "ExpressSAS R348(0x002D)"},
@@ -16628,19 +16709,19 @@ pci_id_t pci_vid_117C[] = {
{0x117C, 0x8072, 0x117C, 0x0082, "ExpressSAS H1288(0x117C-0x0082)"},
}; /* pci_vid_117C[] */
-pci_id_t pci_vid_117D[] = {
+static pci_id_t const pci_vid_117D[] = {
{0x117D, 0xFFFF, 0xFFFF, 0xFFFF, "Becton & Dickinson(0x117D)"},
}; /* pci_vid_117D[] */
-pci_id_t pci_vid_117E[] = {
+static pci_id_t const pci_vid_117E[] = {
{0x117E, 0xFFFF, 0xFFFF, 0xFFFF, "T/R Systems(0x117E)"},
}; /* pci_vid_117E[] */
-pci_id_t pci_vid_117F[] = {
+static pci_id_t const pci_vid_117F[] = {
{0x117F, 0xFFFF, 0xFFFF, 0xFFFF, "Integrated Circuit Systems(0x117F)"},
}; /* pci_vid_117F[] */
-pci_id_t pci_vid_1180[] = {
+static pci_id_t const pci_vid_1180[] = {
{0x1180, 0xFFFF, 0xFFFF, 0xFFFF, "Ricoh Co Ltd(0x1180)"},
{0x1180, 0x0465, 0xFFFF, 0xFFFF, "RL5c465(0x0465)"},
{0x1180, 0x0466, 0xFFFF, 0xFFFF, "RL5c466(0x0466)"},
@@ -16783,23 +16864,23 @@ pci_id_t pci_vid_1180[] = {
{0x1180, 0xE852, 0xFFFF, 0xFFFF, "PCIe xD-Picture Card Controller(0xE852)"},
}; /* pci_vid_1180[] */
-pci_id_t pci_vid_1181[] = {
+static pci_id_t const pci_vid_1181[] = {
{0x1181, 0xFFFF, 0xFFFF, 0xFFFF, "Telmatics International(0x1181)"},
}; /* pci_vid_1181[] */
-pci_id_t pci_vid_1183[] = {
+static pci_id_t const pci_vid_1183[] = {
{0x1183, 0xFFFF, 0xFFFF, 0xFFFF, "Fujikura Ltd(0x1183)"},
}; /* pci_vid_1183[] */
-pci_id_t pci_vid_1184[] = {
+static pci_id_t const pci_vid_1184[] = {
{0x1184, 0xFFFF, 0xFFFF, 0xFFFF, "Forks Inc(0x1184)"},
}; /* pci_vid_1184[] */
-pci_id_t pci_vid_1185[] = {
+static pci_id_t const pci_vid_1185[] = {
{0x1185, 0xFFFF, 0xFFFF, 0xFFFF, "Dataworld International Ltd(0x1185)"},
}; /* pci_vid_1185[] */
-pci_id_t pci_vid_1186[] = {
+static pci_id_t const pci_vid_1186[] = {
{0x1186, 0xFFFF, 0xFFFF, 0xFFFF, "D-Link System Inc(0x1186)"},
{0x1186, 0x1002, 0xFFFF, 0xFFFF, "DL10050 Sundance Ethernet(0x1002)"},
{0x1186, 0x1002, 0x1186, 0x1002, "DFE-550TX/FX(0x1186-0x1002)"},
@@ -16837,33 +16918,33 @@ pci_id_t pci_vid_1186[] = {
{0x1186, 0x8400, 0xFFFF, 0xFFFF, "D-Link DWL-650+ CardBus PC Card(0x8400)"},
}; /* pci_vid_1186[] */
-pci_id_t pci_vid_1187[] = {
+static pci_id_t const pci_vid_1187[] = {
{0x1187, 0xFFFF, 0xFFFF, 0xFFFF, "Advanced Technology Laboratories, Inc.(0x1187)"},
}; /* pci_vid_1187[] */
-pci_id_t pci_vid_1188[] = {
+static pci_id_t const pci_vid_1188[] = {
{0x1188, 0xFFFF, 0xFFFF, 0xFFFF, "Shima Seiki Manufacturing Ltd.(0x1188)"},
}; /* pci_vid_1188[] */
-pci_id_t pci_vid_1189[] = {
+static pci_id_t const pci_vid_1189[] = {
{0x1189, 0xFFFF, 0xFFFF, 0xFFFF, "Matsushita Electronics Co Ltd(0x1189)"},
}; /* pci_vid_1189[] */
-pci_id_t pci_vid_118A[] = {
+static pci_id_t const pci_vid_118A[] = {
{0x118A, 0xFFFF, 0xFFFF, 0xFFFF, "Hilevel Technology(0x118A)"},
}; /* pci_vid_118A[] */
-pci_id_t pci_vid_118B[] = {
+static pci_id_t const pci_vid_118B[] = {
{0x118B, 0xFFFF, 0xFFFF, 0xFFFF, "Hypertec Pty Limited(0x118B)"},
}; /* pci_vid_118B[] */
-pci_id_t pci_vid_118C[] = {
+static pci_id_t const pci_vid_118C[] = {
{0x118C, 0xFFFF, 0xFFFF, 0xFFFF, "Corollary, Inc(0x118C)"},
{0x118C, 0x0014, 0xFFFF, 0xFFFF, "PCIB [C-bus II to PCI bus host bridge chip](0x0014)"},
{0x118C, 0x1117, 0xFFFF, 0xFFFF, "Intel 8-way XEON Profusion Chipset [Cache Coherency Filter](0x1117)"},
}; /* pci_vid_118C[] */
-pci_id_t pci_vid_118D[] = {
+static pci_id_t const pci_vid_118D[] = {
{0x118D, 0xFFFF, 0xFFFF, 0xFFFF, "BitFlow Inc(0x118D)"},
{0x118D, 0x0001, 0xFFFF, 0xFFFF, "Raptor-PCI framegrabber(0x0001)"},
{0x118D, 0x0012, 0xFFFF, 0xFFFF, "Model 12 Road Runner Frame Grabber(0x0012)"},
@@ -16885,20 +16966,20 @@ pci_id_t pci_vid_118D[] = {
{0x118D, 0xB04E, 0xFFFF, 0xFFFF, "Claxon CXP4 CoaXPress frame grabber(0xB04E)"},
}; /* pci_vid_118D[] */
-pci_id_t pci_vid_118E[] = {
+static pci_id_t const pci_vid_118E[] = {
{0x118E, 0xFFFF, 0xFFFF, 0xFFFF, "Hermstedt GmbH(0x118E)"},
}; /* pci_vid_118E[] */
-pci_id_t pci_vid_118F[] = {
+static pci_id_t const pci_vid_118F[] = {
{0x118F, 0xFFFF, 0xFFFF, 0xFFFF, "Green Logic(0x118F)"},
}; /* pci_vid_118F[] */
-pci_id_t pci_vid_1190[] = {
+static pci_id_t const pci_vid_1190[] = {
{0x1190, 0xFFFF, 0xFFFF, 0xFFFF, "Tripace(0x1190)"},
{0x1190, 0xC731, 0xFFFF, 0xFFFF, "TP-910/920/940 PCI Ultra(Wide) SCSI Adapter(0xC731)"},
}; /* pci_vid_1190[] */
-pci_id_t pci_vid_1191[] = {
+static pci_id_t const pci_vid_1191[] = {
{0x1191, 0xFFFF, 0xFFFF, 0xFFFF, "Artop Electronic Corp(0x1191)"},
{0x1191, 0x0003, 0xFFFF, 0xFFFF, "SCSI Cache Host Adapter(0x0003)"},
{0x1191, 0x0004, 0xFFFF, 0xFFFF, "ATP8400(0x0004)"},
@@ -16925,118 +17006,118 @@ pci_id_t pci_vid_1191[] = {
{0x1191, 0x808A, 0xFFFF, 0xFFFF, "AEC67162 2-ch. LVD SCSI(0x808A)"},
}; /* pci_vid_1191[] */
-pci_id_t pci_vid_1192[] = {
+static pci_id_t const pci_vid_1192[] = {
{0x1192, 0xFFFF, 0xFFFF, 0xFFFF, "Densan Company Ltd(0x1192)"},
}; /* pci_vid_1192[] */
-pci_id_t pci_vid_1193[] = {
+static pci_id_t const pci_vid_1193[] = {
{0x1193, 0xFFFF, 0xFFFF, 0xFFFF, "Zeitnet Inc.(0x1193)"},
{0x1193, 0x0001, 0xFFFF, 0xFFFF, "1221(0x0001)"},
{0x1193, 0x0002, 0xFFFF, 0xFFFF, "1225(0x0002)"},
}; /* pci_vid_1193[] */
-pci_id_t pci_vid_1194[] = {
+static pci_id_t const pci_vid_1194[] = {
{0x1194, 0xFFFF, 0xFFFF, 0xFFFF, "Toucan Technology(0x1194)"},
}; /* pci_vid_1194[] */
-pci_id_t pci_vid_1195[] = {
+static pci_id_t const pci_vid_1195[] = {
{0x1195, 0xFFFF, 0xFFFF, 0xFFFF, "Ratoc System Inc(0x1195)"},
}; /* pci_vid_1195[] */
-pci_id_t pci_vid_1196[] = {
+static pci_id_t const pci_vid_1196[] = {
{0x1196, 0xFFFF, 0xFFFF, 0xFFFF, "Hytec Electronics Ltd(0x1196)"},
}; /* pci_vid_1196[] */
-pci_id_t pci_vid_1197[] = {
+static pci_id_t const pci_vid_1197[] = {
{0x1197, 0xFFFF, 0xFFFF, 0xFFFF, "Gage Applied Sciences, Inc.(0x1197)"},
{0x1197, 0x010C, 0xFFFF, 0xFFFF, "CompuScope 82G 8bit 2GS/s Analog Input Card(0x010C)"},
}; /* pci_vid_1197[] */
-pci_id_t pci_vid_1198[] = {
+static pci_id_t const pci_vid_1198[] = {
{0x1198, 0xFFFF, 0xFFFF, 0xFFFF, "Lambda Systems Inc(0x1198)"},
}; /* pci_vid_1198[] */
-pci_id_t pci_vid_1199[] = {
+static pci_id_t const pci_vid_1199[] = {
{0x1199, 0xFFFF, 0xFFFF, 0xFFFF, "Attachmate Corporation(0x1199)"},
{0x1199, 0x0101, 0xFFFF, 0xFFFF, "Advanced ISCA/PCI Adapter(0x0101)"},
}; /* pci_vid_1199[] */
-pci_id_t pci_vid_119A[] = {
+static pci_id_t const pci_vid_119A[] = {
{0x119A, 0xFFFF, 0xFFFF, 0xFFFF, "Mind Share, Inc.(0x119A)"},
}; /* pci_vid_119A[] */
-pci_id_t pci_vid_119B[] = {
+static pci_id_t const pci_vid_119B[] = {
{0x119B, 0xFFFF, 0xFFFF, 0xFFFF, "Omega Micro Inc.(0x119B)"},
{0x119B, 0x1221, 0xFFFF, 0xFFFF, "82C092G(0x1221)"},
}; /* pci_vid_119B[] */
-pci_id_t pci_vid_119C[] = {
+static pci_id_t const pci_vid_119C[] = {
{0x119C, 0xFFFF, 0xFFFF, 0xFFFF, "Information Technology Inst.(0x119C)"},
}; /* pci_vid_119C[] */
-pci_id_t pci_vid_119D[] = {
+static pci_id_t const pci_vid_119D[] = {
{0x119D, 0xFFFF, 0xFFFF, 0xFFFF, "Bug, Inc. Sapporo Japan(0x119D)"},
}; /* pci_vid_119D[] */
-pci_id_t pci_vid_119E[] = {
+static pci_id_t const pci_vid_119E[] = {
{0x119E, 0xFFFF, 0xFFFF, 0xFFFF, "Fujitsu Microelectronics Ltd.(0x119E)"},
{0x119E, 0x0001, 0xFFFF, 0xFFFF, "FireStream 155(0x0001)"},
{0x119E, 0x0003, 0xFFFF, 0xFFFF, "FireStream 50(0x0003)"},
}; /* pci_vid_119E[] */
-pci_id_t pci_vid_119F[] = {
+static pci_id_t const pci_vid_119F[] = {
{0x119F, 0xFFFF, 0xFFFF, 0xFFFF, "Bull HN Information Systems(0x119F)"},
{0x119F, 0x1081, 0xFFFF, 0xFFFF, "BXI Host Channel Adapter(0x1081)"},
{0x119F, 0x1101, 0xFFFF, 0xFFFF, "BXI Host Channel Adapter v1.2(0x1101)"},
{0x119F, 0x1121, 0xFFFF, 0xFFFF, "BXI Host Channel Adapter v1.3(0x1121)"},
}; /* pci_vid_119F[] */
-pci_id_t pci_vid_11A0[] = {
+static pci_id_t const pci_vid_11A0[] = {
{0x11A0, 0xFFFF, 0xFFFF, 0xFFFF, "Convex Computer Corporation(0x11A0)"},
}; /* pci_vid_11A0[] */
-pci_id_t pci_vid_11A1[] = {
+static pci_id_t const pci_vid_11A1[] = {
{0x11A1, 0xFFFF, 0xFFFF, 0xFFFF, "Hamamatsu Photonics K.K.(0x11A1)"},
}; /* pci_vid_11A1[] */
-pci_id_t pci_vid_11A2[] = {
+static pci_id_t const pci_vid_11A2[] = {
{0x11A2, 0xFFFF, 0xFFFF, 0xFFFF, "Sierra Research and Technology(0x11A2)"},
}; /* pci_vid_11A2[] */
-pci_id_t pci_vid_11A3[] = {
+static pci_id_t const pci_vid_11A3[] = {
{0x11A3, 0xFFFF, 0xFFFF, 0xFFFF, "Deuretzbacher GmbH & Co. Eng. KG(0x11A3)"},
}; /* pci_vid_11A3[] */
-pci_id_t pci_vid_11A4[] = {
+static pci_id_t const pci_vid_11A4[] = {
{0x11A4, 0xFFFF, 0xFFFF, 0xFFFF, "Barco Graphics NV(0x11A4)"},
}; /* pci_vid_11A4[] */
-pci_id_t pci_vid_11A5[] = {
+static pci_id_t const pci_vid_11A5[] = {
{0x11A5, 0xFFFF, 0xFFFF, 0xFFFF, "Microunity Systems Eng. Inc(0x11A5)"},
}; /* pci_vid_11A5[] */
-pci_id_t pci_vid_11A6[] = {
+static pci_id_t const pci_vid_11A6[] = {
{0x11A6, 0xFFFF, 0xFFFF, 0xFFFF, "Pure Data Ltd.(0x11A6)"},
}; /* pci_vid_11A6[] */
-pci_id_t pci_vid_11A7[] = {
+static pci_id_t const pci_vid_11A7[] = {
{0x11A7, 0xFFFF, 0xFFFF, 0xFFFF, "Power Computing Corp.(0x11A7)"},
}; /* pci_vid_11A7[] */
-pci_id_t pci_vid_11A8[] = {
+static pci_id_t const pci_vid_11A8[] = {
{0x11A8, 0xFFFF, 0xFFFF, 0xFFFF, "Systech Corp.(0x11A8)"},
}; /* pci_vid_11A8[] */
-pci_id_t pci_vid_11A9[] = {
+static pci_id_t const pci_vid_11A9[] = {
{0x11A9, 0xFFFF, 0xFFFF, 0xFFFF, "InnoSys Inc.(0x11A9)"},
{0x11A9, 0x4240, 0xFFFF, 0xFFFF, "AMCC S933Q Intelligent Serial Card(0x4240)"},
}; /* pci_vid_11A9[] */
-pci_id_t pci_vid_11AA[] = {
+static pci_id_t const pci_vid_11AA[] = {
{0x11AA, 0xFFFF, 0xFFFF, 0xFFFF, "Actel(0x11AA)"},
}; /* pci_vid_11AA[] */
-pci_id_t pci_vid_11AB[] = {
+static pci_id_t const pci_vid_11AB[] = {
{0x11AB, 0xFFFF, 0xFFFF, 0xFFFF, "Marvell Technology Group Ltd.(0x11AB)"},
{0x11AB, 0x0100, 0xFFFF, 0xFFFF, "88F3700 [Armada 3700 Family] ARM SoC(0x0100)"},
{0x11AB, 0x0110, 0xFFFF, 0xFFFF, "88F60x0/88F70x0/88F80x0/CN913x ARM SoC(0x0110)"},
@@ -17269,11 +17350,11 @@ pci_id_t pci_vid_11AB[] = {
{0x11AB, 0xF003, 0xFFFF, 0xFFFF, "GT-64010 Primary Image Piranha Image Generator(0xF003)"},
}; /* pci_vid_11AB[] */
-pci_id_t pci_vid_11AC[] = {
+static pci_id_t const pci_vid_11AC[] = {
{0x11AC, 0xFFFF, 0xFFFF, 0xFFFF, "Canon Information Systems Research Aust.(0x11AC)"},
}; /* pci_vid_11AC[] */
-pci_id_t pci_vid_11AD[] = {
+static pci_id_t const pci_vid_11AD[] = {
{0x11AD, 0xFFFF, 0xFFFF, 0xFFFF, "Lite-On Communications Inc(0x11AD)"},
{0x11AD, 0x0002, 0xFFFF, 0xFFFF, "LNE100TX(0x0002)"},
{0x11AD, 0x0002, 0x11AD, 0x0002, "LNE100TX(0x11AD-0x0002)"},
@@ -17287,17 +17368,17 @@ pci_id_t pci_vid_11AD[] = {
{0x11AD, 0xC115, 0x2646, 0x000B, "KNE111TX(0x2646-0x000B)"},
}; /* pci_vid_11AD[] */
-pci_id_t pci_vid_11AE[] = {
+static pci_id_t const pci_vid_11AE[] = {
{0x11AE, 0xFFFF, 0xFFFF, 0xFFFF, "Aztech System Ltd(0x11AE)"},
}; /* pci_vid_11AE[] */
-pci_id_t pci_vid_11AF[] = {
+static pci_id_t const pci_vid_11AF[] = {
{0x11AF, 0xFFFF, 0xFFFF, 0xFFFF, "Avid Technology Inc.(0x11AF)"},
{0x11AF, 0x0001, 0xFFFF, 0xFFFF, "Cinema(0x0001)"},
{0x11AF, 0xEE40, 0xFFFF, 0xFFFF, "Digidesign Audiomedia III(0xEE40)"},
}; /* pci_vid_11AF[] */
-pci_id_t pci_vid_11B0[] = {
+static pci_id_t const pci_vid_11B0[] = {
{0x11B0, 0xFFFF, 0xFFFF, 0xFFFF, "V3 Semiconductor Inc.(0x11B0)"},
{0x11B0, 0x0002, 0xFFFF, 0xFFFF, "V300PSC(0x0002)"},
{0x11B0, 0x0292, 0xFFFF, 0xFFFF, "V292PBC [Am29030/40 Bridge](0x0292)"},
@@ -17306,58 +17387,58 @@ pci_id_t pci_vid_11B0[] = {
{0x11B0, 0xC960, 0xFFFF, 0xFFFF, "V96DPC(0xC960)"},
}; /* pci_vid_11B0[] */
-pci_id_t pci_vid_11B1[] = {
+static pci_id_t const pci_vid_11B1[] = {
{0x11B1, 0xFFFF, 0xFFFF, 0xFFFF, "Apricot Computers(0x11B1)"},
}; /* pci_vid_11B1[] */
-pci_id_t pci_vid_11B2[] = {
+static pci_id_t const pci_vid_11B2[] = {
{0x11B2, 0xFFFF, 0xFFFF, 0xFFFF, "Eastman Kodak(0x11B2)"},
}; /* pci_vid_11B2[] */
-pci_id_t pci_vid_11B3[] = {
+static pci_id_t const pci_vid_11B3[] = {
{0x11B3, 0xFFFF, 0xFFFF, 0xFFFF, "Barr Systems Inc.(0x11B3)"},
}; /* pci_vid_11B3[] */
-pci_id_t pci_vid_11B4[] = {
+static pci_id_t const pci_vid_11B4[] = {
{0x11B4, 0xFFFF, 0xFFFF, 0xFFFF, "Leitch Technology International(0x11B4)"},
}; /* pci_vid_11B4[] */
-pci_id_t pci_vid_11B5[] = {
+static pci_id_t const pci_vid_11B5[] = {
{0x11B5, 0xFFFF, 0xFFFF, 0xFFFF, "Radstone Technology Plc(0x11B5)"},
}; /* pci_vid_11B5[] */
-pci_id_t pci_vid_11B6[] = {
+static pci_id_t const pci_vid_11B6[] = {
{0x11B6, 0xFFFF, 0xFFFF, 0xFFFF, "United Video Corp(0x11B6)"},
}; /* pci_vid_11B6[] */
-pci_id_t pci_vid_11B7[] = {
+static pci_id_t const pci_vid_11B7[] = {
{0x11B7, 0xFFFF, 0xFFFF, 0xFFFF, "Motorola(0x11B7)"},
}; /* pci_vid_11B7[] */
-pci_id_t pci_vid_11B8[] = {
+static pci_id_t const pci_vid_11B8[] = {
{0x11B8, 0xFFFF, 0xFFFF, 0xFFFF, "XPoint Technologies, Inc(0x11B8)"},
{0x11B8, 0x0001, 0xFFFF, 0xFFFF, "Quad PeerMaster(0x0001)"},
}; /* pci_vid_11B8[] */
-pci_id_t pci_vid_11B9[] = {
+static pci_id_t const pci_vid_11B9[] = {
{0x11B9, 0xFFFF, 0xFFFF, 0xFFFF, "Pathlight Technology Inc.(0x11B9)"},
{0x11B9, 0xC0ED, 0xFFFF, 0xFFFF, "SSA Controller(0xC0ED)"},
}; /* pci_vid_11B9[] */
-pci_id_t pci_vid_11BA[] = {
+static pci_id_t const pci_vid_11BA[] = {
{0x11BA, 0xFFFF, 0xFFFF, 0xFFFF, "Videotron Corp(0x11BA)"},
}; /* pci_vid_11BA[] */
-pci_id_t pci_vid_11BB[] = {
+static pci_id_t const pci_vid_11BB[] = {
{0x11BB, 0xFFFF, 0xFFFF, 0xFFFF, "Pyramid Technology(0x11BB)"},
}; /* pci_vid_11BB[] */
-pci_id_t pci_vid_11BC[] = {
+static pci_id_t const pci_vid_11BC[] = {
{0x11BC, 0xFFFF, 0xFFFF, 0xFFFF, "Network Peripherals Inc(0x11BC)"},
{0x11BC, 0x0001, 0xFFFF, 0xFFFF, "NP-PCI(0x0001)"},
}; /* pci_vid_11BC[] */
-pci_id_t pci_vid_11BD[] = {
+static pci_id_t const pci_vid_11BD[] = {
{0x11BD, 0xFFFF, 0xFFFF, 0xFFFF, "Pinnacle Systems Inc.(0x11BD)"},
{0x11BD, 0x002E, 0xFFFF, 0xFFFF, "PCTV 40i(0x002E)"},
{0x11BD, 0x0040, 0xFFFF, 0xFFFF, "Royal TS Function 1(0x0040)"},
@@ -17373,19 +17454,19 @@ pci_id_t pci_vid_11BD[] = {
{0x11BD, 0xBEDE, 0xFFFF, 0xFFFF, "AV/DV Studio Capture Card(0xBEDE)"},
}; /* pci_vid_11BD[] */
-pci_id_t pci_vid_11BE[] = {
+static pci_id_t const pci_vid_11BE[] = {
{0x11BE, 0xFFFF, 0xFFFF, 0xFFFF, "International Microcircuits Inc(0x11BE)"},
}; /* pci_vid_11BE[] */
-pci_id_t pci_vid_11BF[] = {
+static pci_id_t const pci_vid_11BF[] = {
{0x11BF, 0xFFFF, 0xFFFF, 0xFFFF, "Astrodesign, Inc.(0x11BF)"},
}; /* pci_vid_11BF[] */
-pci_id_t pci_vid_11C0[] = {
+static pci_id_t const pci_vid_11C0[] = {
{0x11C0, 0xFFFF, 0xFFFF, 0xFFFF, "Hewlett Packard(0x11C0)"},
}; /* pci_vid_11C0[] */
-pci_id_t pci_vid_11C1[] = {
+static pci_id_t const pci_vid_11C1[] = {
{0x11C1, 0xFFFF, 0xFFFF, 0xFFFF, "LSI Corporation(0x11C1)"},
{0x11C1, 0x0440, 0xFFFF, 0xFFFF, "56k WinModem(0x0440)"},
{0x11C1, 0x0440, 0x1033, 0x8015, "LT WinModem 56k Data+Fax+Voice+Dsvd(0x1033-0x8015)"},
@@ -17528,48 +17609,48 @@ pci_id_t pci_vid_11C1[] = {
{0x11C1, 0xED01, 0xFFFF, 0xFFFF, "ET-131x PCI-E Ethernet Controller(0xED01)"},
}; /* pci_vid_11C1[] */
-pci_id_t pci_vid_11C2[] = {
+static pci_id_t const pci_vid_11C2[] = {
{0x11C2, 0xFFFF, 0xFFFF, 0xFFFF, "Sand Microelectronics(0x11C2)"},
}; /* pci_vid_11C2[] */
-pci_id_t pci_vid_11C3[] = {
+static pci_id_t const pci_vid_11C3[] = {
{0x11C3, 0xFFFF, 0xFFFF, 0xFFFF, "NEC Corporation(0x11C3)"},
}; /* pci_vid_11C3[] */
-pci_id_t pci_vid_11C4[] = {
+static pci_id_t const pci_vid_11C4[] = {
{0x11C4, 0xFFFF, 0xFFFF, 0xFFFF, "Document Technologies, Inc(0x11C4)"},
}; /* pci_vid_11C4[] */
-pci_id_t pci_vid_11C5[] = {
+static pci_id_t const pci_vid_11C5[] = {
{0x11C5, 0xFFFF, 0xFFFF, 0xFFFF, "Shiva Corporation(0x11C5)"},
}; /* pci_vid_11C5[] */
-pci_id_t pci_vid_11C6[] = {
+static pci_id_t const pci_vid_11C6[] = {
{0x11C6, 0xFFFF, 0xFFFF, 0xFFFF, "Dainippon Screen Mfg. Co. Ltd(0x11C6)"},
}; /* pci_vid_11C6[] */
-pci_id_t pci_vid_11C7[] = {
+static pci_id_t const pci_vid_11C7[] = {
{0x11C7, 0xFFFF, 0xFFFF, 0xFFFF, "D.C.M. Data Systems(0x11C7)"},
}; /* pci_vid_11C7[] */
-pci_id_t pci_vid_11C8[] = {
+static pci_id_t const pci_vid_11C8[] = {
{0x11C8, 0xFFFF, 0xFFFF, 0xFFFF, "Dolphin Interconnect Solutions AS(0x11C8)"},
{0x11C8, 0x0658, 0xFFFF, 0xFFFF, "PSB32 SCI-Adapter D31x(0x0658)"},
{0x11C8, 0xD665, 0xFFFF, 0xFFFF, "PSB64 SCI-Adapter D32x(0xD665)"},
{0x11C8, 0xD667, 0xFFFF, 0xFFFF, "PSB66 SCI-Adapter D33x(0xD667)"},
}; /* pci_vid_11C8[] */
-pci_id_t pci_vid_11C9[] = {
+static pci_id_t const pci_vid_11C9[] = {
{0x11C9, 0xFFFF, 0xFFFF, 0xFFFF, "Magma(0x11C9)"},
{0x11C9, 0x0010, 0xFFFF, 0xFFFF, "16-line serial port w/- DMA(0x0010)"},
{0x11C9, 0x0011, 0xFFFF, 0xFFFF, "4-line serial port w/- DMA(0x0011)"},
}; /* pci_vid_11C9[] */
-pci_id_t pci_vid_11CA[] = {
+static pci_id_t const pci_vid_11CA[] = {
{0x11CA, 0xFFFF, 0xFFFF, 0xFFFF, "LSI Systems, Inc(0x11CA)"},
}; /* pci_vid_11CA[] */
-pci_id_t pci_vid_11CB[] = {
+static pci_id_t const pci_vid_11CB[] = {
{0x11CB, 0xFFFF, 0xFFFF, 0xFFFF, "Specialix Research Ltd.(0x11CB)"},
{0x11CB, 0x2000, 0xFFFF, 0xFFFF, "PCI_9050(0x2000)"},
{0x11CB, 0x2000, 0x11CB, 0x0200, "SX(0x11CB-0x0200)"},
@@ -17578,85 +17659,85 @@ pci_id_t pci_vid_11CB[] = {
{0x11CB, 0x8000, 0xFFFF, 0xFFFF, "T225(0x8000)"},
}; /* pci_vid_11CB[] */
-pci_id_t pci_vid_11CC[] = {
+static pci_id_t const pci_vid_11CC[] = {
{0x11CC, 0xFFFF, 0xFFFF, 0xFFFF, "Michels & Kleberhoff Computer GmbH(0x11CC)"},
}; /* pci_vid_11CC[] */
-pci_id_t pci_vid_11CD[] = {
+static pci_id_t const pci_vid_11CD[] = {
{0x11CD, 0xFFFF, 0xFFFF, 0xFFFF, "HAL Computer Systems, Inc.(0x11CD)"},
}; /* pci_vid_11CD[] */
-pci_id_t pci_vid_11CE[] = {
+static pci_id_t const pci_vid_11CE[] = {
{0x11CE, 0xFFFF, 0xFFFF, 0xFFFF, "Netaccess(0x11CE)"},
}; /* pci_vid_11CE[] */
-pci_id_t pci_vid_11CF[] = {
+static pci_id_t const pci_vid_11CF[] = {
{0x11CF, 0xFFFF, 0xFFFF, 0xFFFF, "Pioneer Electronic Corporation(0x11CF)"},
}; /* pci_vid_11CF[] */
-pci_id_t pci_vid_11D0[] = {
+static pci_id_t const pci_vid_11D0[] = {
{0x11D0, 0xFFFF, 0xFFFF, 0xFFFF, "Lockheed Martin Federal Systems-Manassas(0x11D0)"},
}; /* pci_vid_11D0[] */
-pci_id_t pci_vid_11D1[] = {
+static pci_id_t const pci_vid_11D1[] = {
{0x11D1, 0xFFFF, 0xFFFF, 0xFFFF, "Auravision(0x11D1)"},
{0x11D1, 0x01F7, 0xFFFF, 0xFFFF, "VxP524(0x01F7)"},
{0x11D1, 0x01F9, 0xFFFF, 0xFFFF, "VxP951(0x01F9)"},
}; /* pci_vid_11D1[] */
-pci_id_t pci_vid_11D2[] = {
+static pci_id_t const pci_vid_11D2[] = {
{0x11D2, 0xFFFF, 0xFFFF, 0xFFFF, "Intercom Inc.(0x11D2)"},
}; /* pci_vid_11D2[] */
-pci_id_t pci_vid_11D3[] = {
+static pci_id_t const pci_vid_11D3[] = {
{0x11D3, 0xFFFF, 0xFFFF, 0xFFFF, "Trancell Systems Inc(0x11D3)"},
}; /* pci_vid_11D3[] */
-pci_id_t pci_vid_11D4[] = {
+static pci_id_t const pci_vid_11D4[] = {
{0x11D4, 0xFFFF, 0xFFFF, 0xFFFF, "Analog Devices(0x11D4)"},
{0x11D4, 0x1535, 0xFFFF, 0xFFFF, "Blackfin BF535 processor(0x1535)"},
{0x11D4, 0x1805, 0xFFFF, 0xFFFF, "SM56 PCI modem(0x1805)"},
}; /* pci_vid_11D4[] */
-pci_id_t pci_vid_11D5[] = {
+static pci_id_t const pci_vid_11D5[] = {
{0x11D5, 0xFFFF, 0xFFFF, 0xFFFF, "Ikon Corporation(0x11D5)"},
{0x11D5, 0x0115, 0xFFFF, 0xFFFF, "10115(0x0115)"},
{0x11D5, 0x0117, 0xFFFF, 0xFFFF, "10117(0x0117)"},
}; /* pci_vid_11D5[] */
-pci_id_t pci_vid_11D6[] = {
+static pci_id_t const pci_vid_11D6[] = {
{0x11D6, 0xFFFF, 0xFFFF, 0xFFFF, "Tekelec Telecom(0x11D6)"},
}; /* pci_vid_11D6[] */
-pci_id_t pci_vid_11D7[] = {
+static pci_id_t const pci_vid_11D7[] = {
{0x11D7, 0xFFFF, 0xFFFF, 0xFFFF, "Trenton Technology, Inc.(0x11D7)"},
}; /* pci_vid_11D7[] */
-pci_id_t pci_vid_11D8[] = {
+static pci_id_t const pci_vid_11D8[] = {
{0x11D8, 0xFFFF, 0xFFFF, 0xFFFF, "Image Technologies Development(0x11D8)"},
}; /* pci_vid_11D8[] */
-pci_id_t pci_vid_11D9[] = {
+static pci_id_t const pci_vid_11D9[] = {
{0x11D9, 0xFFFF, 0xFFFF, 0xFFFF, "TEC Corporation(0x11D9)"},
}; /* pci_vid_11D9[] */
-pci_id_t pci_vid_11DA[] = {
+static pci_id_t const pci_vid_11DA[] = {
{0x11DA, 0xFFFF, 0xFFFF, 0xFFFF, "Novell(0x11DA)"},
}; /* pci_vid_11DA[] */
-pci_id_t pci_vid_11DB[] = {
+static pci_id_t const pci_vid_11DB[] = {
{0x11DB, 0xFFFF, 0xFFFF, 0xFFFF, "Sega Enterprises Ltd(0x11DB)"},
}; /* pci_vid_11DB[] */
-pci_id_t pci_vid_11DC[] = {
+static pci_id_t const pci_vid_11DC[] = {
{0x11DC, 0xFFFF, 0xFFFF, 0xFFFF, "Questra Corporation(0x11DC)"},
}; /* pci_vid_11DC[] */
-pci_id_t pci_vid_11DD[] = {
+static pci_id_t const pci_vid_11DD[] = {
{0x11DD, 0xFFFF, 0xFFFF, 0xFFFF, "Crosfield Electronics Limited(0x11DD)"},
}; /* pci_vid_11DD[] */
-pci_id_t pci_vid_11DE[] = {
+static pci_id_t const pci_vid_11DE[] = {
{0x11DE, 0xFFFF, 0xFFFF, 0xFFFF, "Zoran Corporation(0x11DE)"},
{0x11DE, 0x6017, 0xFFFF, 0xFFFF, "miroVIDEO DC30(0x6017)"},
{0x11DE, 0x6057, 0xFFFF, 0xFFFF, "ZR36057PQC Video cutting chipset(0x6057)"},
@@ -17670,23 +17751,23 @@ pci_id_t pci_vid_11DE[] = {
{0x11DE, 0x6120, 0x1DE1, 0x9FFF, "Video Kit C210(0x1DE1-0x9FFF)"},
}; /* pci_vid_11DE[] */
-pci_id_t pci_vid_11DF[] = {
+static pci_id_t const pci_vid_11DF[] = {
{0x11DF, 0xFFFF, 0xFFFF, 0xFFFF, "New Wave PDG(0x11DF)"},
}; /* pci_vid_11DF[] */
-pci_id_t pci_vid_11E0[] = {
+static pci_id_t const pci_vid_11E0[] = {
{0x11E0, 0xFFFF, 0xFFFF, 0xFFFF, "Cray Communications A/S(0x11E0)"},
}; /* pci_vid_11E0[] */
-pci_id_t pci_vid_11E1[] = {
+static pci_id_t const pci_vid_11E1[] = {
{0x11E1, 0xFFFF, 0xFFFF, 0xFFFF, "GEC Plessey Semi Inc.(0x11E1)"},
}; /* pci_vid_11E1[] */
-pci_id_t pci_vid_11E2[] = {
+static pci_id_t const pci_vid_11E2[] = {
{0x11E2, 0xFFFF, 0xFFFF, 0xFFFF, "Samsung Information Systems America(0x11E2)"},
}; /* pci_vid_11E2[] */
-pci_id_t pci_vid_11E3[] = {
+static pci_id_t const pci_vid_11E3[] = {
{0x11E3, 0xFFFF, 0xFFFF, 0xFFFF, "Quicklogic Corporation(0x11E3)"},
{0x11E3, 0x0001, 0xFFFF, 0xFFFF, "COM-ON-AIR Dosch&Amand DECT(0x0001)"},
{0x11E3, 0x0560, 0xFFFF, 0xFFFF, "QL5064 Companion Design Demo Board(0x0560)"},
@@ -17694,57 +17775,57 @@ pci_id_t pci_vid_11E3[] = {
{0x11E3, 0x8417, 0xFFFF, 0xFFFF, "QL5064 [QuickPCI] PCI v2.2 bridge for SMT417 Dual TMS320C6416T PMC Module(0x8417)"},
}; /* pci_vid_11E3[] */
-pci_id_t pci_vid_11E4[] = {
+static pci_id_t const pci_vid_11E4[] = {
{0x11E4, 0xFFFF, 0xFFFF, 0xFFFF, "Second Wave Inc(0x11E4)"},
}; /* pci_vid_11E4[] */
-pci_id_t pci_vid_11E5[] = {
+static pci_id_t const pci_vid_11E5[] = {
{0x11E5, 0xFFFF, 0xFFFF, 0xFFFF, "IIX Consulting(0x11E5)"},
}; /* pci_vid_11E5[] */
-pci_id_t pci_vid_11E6[] = {
+static pci_id_t const pci_vid_11E6[] = {
{0x11E6, 0xFFFF, 0xFFFF, 0xFFFF, "Mitsui-Zosen System Research(0x11E6)"},
}; /* pci_vid_11E6[] */
-pci_id_t pci_vid_11E7[] = {
+static pci_id_t const pci_vid_11E7[] = {
{0x11E7, 0xFFFF, 0xFFFF, 0xFFFF, "Toshiba America, Elec. Company(0x11E7)"},
}; /* pci_vid_11E7[] */
-pci_id_t pci_vid_11E8[] = {
+static pci_id_t const pci_vid_11E8[] = {
{0x11E8, 0xFFFF, 0xFFFF, 0xFFFF, "Digital Processing Systems Inc.(0x11E8)"},
}; /* pci_vid_11E8[] */
-pci_id_t pci_vid_11E9[] = {
+static pci_id_t const pci_vid_11E9[] = {
{0x11E9, 0xFFFF, 0xFFFF, 0xFFFF, "Highwater Designs Ltd.(0x11E9)"},
}; /* pci_vid_11E9[] */
-pci_id_t pci_vid_11EA[] = {
+static pci_id_t const pci_vid_11EA[] = {
{0x11EA, 0xFFFF, 0xFFFF, 0xFFFF, "Elsag Bailey(0x11EA)"},
}; /* pci_vid_11EA[] */
-pci_id_t pci_vid_11EB[] = {
+static pci_id_t const pci_vid_11EB[] = {
{0x11EB, 0xFFFF, 0xFFFF, 0xFFFF, "Formation Inc.(0x11EB)"},
}; /* pci_vid_11EB[] */
-pci_id_t pci_vid_11EC[] = {
+static pci_id_t const pci_vid_11EC[] = {
{0x11EC, 0xFFFF, 0xFFFF, 0xFFFF, "Coreco Inc(0x11EC)"},
{0x11EC, 0x000D, 0xFFFF, 0xFFFF, "Oculus-F/64P(0x000D)"},
{0x11EC, 0x1800, 0xFFFF, 0xFFFF, "Cobra/C6(0x1800)"},
}; /* pci_vid_11EC[] */
-pci_id_t pci_vid_11ED[] = {
+static pci_id_t const pci_vid_11ED[] = {
{0x11ED, 0xFFFF, 0xFFFF, 0xFFFF, "Mediamatics(0x11ED)"},
}; /* pci_vid_11ED[] */
-pci_id_t pci_vid_11EE[] = {
+static pci_id_t const pci_vid_11EE[] = {
{0x11EE, 0xFFFF, 0xFFFF, 0xFFFF, "Dome Imaging Systems Inc(0x11EE)"},
}; /* pci_vid_11EE[] */
-pci_id_t pci_vid_11EF[] = {
+static pci_id_t const pci_vid_11EF[] = {
{0x11EF, 0xFFFF, 0xFFFF, 0xFFFF, "Nicolet Technologies B.V.(0x11EF)"},
}; /* pci_vid_11EF[] */
-pci_id_t pci_vid_11F0[] = {
+static pci_id_t const pci_vid_11F0[] = {
{0x11F0, 0xFFFF, 0xFFFF, 0xFFFF, "Compu-Shack(0x11F0)"},
{0x11F0, 0x4231, 0xFFFF, 0xFFFF, "FDDI(0x4231)"},
{0x11F0, 0x4232, 0xFFFF, 0xFFFF, "FASTline UTP Quattro(0x4232)"},
@@ -17755,29 +17836,29 @@ pci_id_t pci_vid_11F0[] = {
{0x11F0, 0x4731, 0xFFFF, 0xFFFF, "GIGAline(0x4731)"},
}; /* pci_vid_11F0[] */
-pci_id_t pci_vid_11F1[] = {
+static pci_id_t const pci_vid_11F1[] = {
{0x11F1, 0xFFFF, 0xFFFF, 0xFFFF, "Symbios Logic Inc(0x11F1)"},
}; /* pci_vid_11F1[] */
-pci_id_t pci_vid_11F2[] = {
+static pci_id_t const pci_vid_11F2[] = {
{0x11F2, 0xFFFF, 0xFFFF, 0xFFFF, "Picture Tel Japan K.K.(0x11F2)"},
}; /* pci_vid_11F2[] */
-pci_id_t pci_vid_11F3[] = {
+static pci_id_t const pci_vid_11F3[] = {
{0x11F3, 0xFFFF, 0xFFFF, 0xFFFF, "Keithley Metrabyte(0x11F3)"},
{0x11F3, 0x0011, 0xFFFF, 0xFFFF, "KPCI-PIO24(0x0011)"},
}; /* pci_vid_11F3[] */
-pci_id_t pci_vid_11F4[] = {
+static pci_id_t const pci_vid_11F4[] = {
{0x11F4, 0xFFFF, 0xFFFF, 0xFFFF, "Kinetic Systems Corporation(0x11F4)"},
{0x11F4, 0x2915, 0xFFFF, 0xFFFF, "CAMAC controller(0x2915)"},
}; /* pci_vid_11F4[] */
-pci_id_t pci_vid_11F5[] = {
+static pci_id_t const pci_vid_11F5[] = {
{0x11F5, 0xFFFF, 0xFFFF, 0xFFFF, "Computing Devices International(0x11F5)"},
}; /* pci_vid_11F5[] */
-pci_id_t pci_vid_11F6[] = {
+static pci_id_t const pci_vid_11F6[] = {
{0x11F6, 0xFFFF, 0xFFFF, 0xFFFF, "Compex(0x11F6)"},
{0x11F6, 0x0112, 0xFFFF, 0xFFFF, "ENet100VG4(0x0112)"},
{0x11F6, 0x0113, 0xFFFF, 0xFFFF, "FreedomLine 100(0x0113)"},
@@ -17789,11 +17870,11 @@ pci_id_t pci_vid_11F6[] = {
{0x11F6, 0x9881, 0xFFFF, 0xFFFF, "RL100TX Fast Ethernet(0x9881)"},
}; /* pci_vid_11F6[] */
-pci_id_t pci_vid_11F7[] = {
+static pci_id_t const pci_vid_11F7[] = {
{0x11F7, 0xFFFF, 0xFFFF, 0xFFFF, "Scientific Atlanta(0x11F7)"},
}; /* pci_vid_11F7[] */
-pci_id_t pci_vid_11F8[] = {
+static pci_id_t const pci_vid_11F8[] = {
{0x11F8, 0xFFFF, 0xFFFF, 0xFFFF, "PMC-Sierra Inc.(0x11F8)"},
{0x11F8, 0x5220, 0xFFFF, 0xFFFF, "BR522x [PMC-Sierra maxRAID SAS Controller](0x5220)"},
{0x11F8, 0x7364, 0xFFFF, 0xFFFF, "PM7364 [FREEDM - 32 Frame Engine & Datalink Mgr](0x7364)"},
@@ -17828,27 +17909,27 @@ pci_id_t pci_vid_11F8[] = {
{0x11F8, 0x8562, 0xFFFF, 0xFFFF, "PM8562 Switchtec PFX-L 32xG3 Fanout-Lite PCIe Gen3 Switch(0x8562)"},
}; /* pci_vid_11F8[] */
-pci_id_t pci_vid_11F9[] = {
+static pci_id_t const pci_vid_11F9[] = {
{0x11F9, 0xFFFF, 0xFFFF, 0xFFFF, "I-Cube Inc(0x11F9)"},
}; /* pci_vid_11F9[] */
-pci_id_t pci_vid_11FA[] = {
+static pci_id_t const pci_vid_11FA[] = {
{0x11FA, 0xFFFF, 0xFFFF, 0xFFFF, "Kasan Electronics Company, Ltd.(0x11FA)"},
}; /* pci_vid_11FA[] */
-pci_id_t pci_vid_11FB[] = {
+static pci_id_t const pci_vid_11FB[] = {
{0x11FB, 0xFFFF, 0xFFFF, 0xFFFF, "Datel Inc(0x11FB)"},
}; /* pci_vid_11FB[] */
-pci_id_t pci_vid_11FC[] = {
+static pci_id_t const pci_vid_11FC[] = {
{0x11FC, 0xFFFF, 0xFFFF, 0xFFFF, "Silicon Magic(0x11FC)"},
}; /* pci_vid_11FC[] */
-pci_id_t pci_vid_11FD[] = {
+static pci_id_t const pci_vid_11FD[] = {
{0x11FD, 0xFFFF, 0xFFFF, 0xFFFF, "High Street Consultants(0x11FD)"},
}; /* pci_vid_11FD[] */
-pci_id_t pci_vid_11FE[] = {
+static pci_id_t const pci_vid_11FE[] = {
{0x11FE, 0xFFFF, 0xFFFF, 0xFFFF, "Pepperl+Fuchs(0x11FE)"},
{0x11FE, 0x0001, 0xFFFF, 0xFFFF, "RocketPort PCI 32-port w/external I/F(0x0001)"},
{0x11FE, 0x0002, 0xFFFF, 0xFFFF, "RocketPort PCI 8-port w/external I/F(0x0002)"},
@@ -17915,20 +17996,20 @@ pci_id_t pci_vid_11FE[] = {
{0x11FE, 0x8812, 0xFFFF, 0xFFFF, "RocketPort Plus uPCI 4-port RS422 w/Quad Cable(0x8812)"},
}; /* pci_vid_11FE[] */
-pci_id_t pci_vid_11FF[] = {
+static pci_id_t const pci_vid_11FF[] = {
{0x11FF, 0xFFFF, 0xFFFF, 0xFFFF, "Scion Corporation(0x11FF)"},
{0x11FF, 0x0003, 0xFFFF, 0xFFFF, "AG-5(0x0003)"},
}; /* pci_vid_11FF[] */
-pci_id_t pci_vid_1200[] = {
+static pci_id_t const pci_vid_1200[] = {
{0x1200, 0xFFFF, 0xFFFF, 0xFFFF, "CSS Corporation(0x1200)"},
}; /* pci_vid_1200[] */
-pci_id_t pci_vid_1201[] = {
+static pci_id_t const pci_vid_1201[] = {
{0x1201, 0xFFFF, 0xFFFF, 0xFFFF, "Vista Controls Corp(0x1201)"},
}; /* pci_vid_1201[] */
-pci_id_t pci_vid_1202[] = {
+static pci_id_t const pci_vid_1202[] = {
{0x1202, 0xFFFF, 0xFFFF, 0xFFFF, "Network General Corp.(0x1202)"},
{0x1202, 0x4300, 0xFFFF, 0xFFFF, "Gigabit Ethernet Adapter(0x4300)"},
{0x1202, 0x4300, 0x1202, 0x9841, "SK-9841 LX(0x1202-0x9841)"},
@@ -17937,49 +18018,49 @@ pci_id_t pci_vid_1202[] = {
{0x1202, 0x4300, 0x1202, 0x9844, "SK-9843 SX dual link(0x1202-0x9844)"},
}; /* pci_vid_1202[] */
-pci_id_t pci_vid_1203[] = {
+static pci_id_t const pci_vid_1203[] = {
{0x1203, 0xFFFF, 0xFFFF, 0xFFFF, "Bayer Corporation, Agfa Division(0x1203)"},
}; /* pci_vid_1203[] */
-pci_id_t pci_vid_1204[] = {
+static pci_id_t const pci_vid_1204[] = {
{0x1204, 0xFFFF, 0xFFFF, 0xFFFF, "Lattice Semiconductor Corporation(0x1204)"},
{0x1204, 0x1965, 0xFFFF, 0xFFFF, "SB6501 802.11ad Wireless Network Adapter(0x1965)"},
}; /* pci_vid_1204[] */
-pci_id_t pci_vid_1205[] = {
+static pci_id_t const pci_vid_1205[] = {
{0x1205, 0xFFFF, 0xFFFF, 0xFFFF, "Array Corporation(0x1205)"},
}; /* pci_vid_1205[] */
-pci_id_t pci_vid_1206[] = {
+static pci_id_t const pci_vid_1206[] = {
{0x1206, 0xFFFF, 0xFFFF, 0xFFFF, "Amdahl Corporation(0x1206)"},
}; /* pci_vid_1206[] */
-pci_id_t pci_vid_1208[] = {
+static pci_id_t const pci_vid_1208[] = {
{0x1208, 0xFFFF, 0xFFFF, 0xFFFF, "Parsytec GmbH(0x1208)"},
{0x1208, 0x4853, 0xFFFF, 0xFFFF, "HS-Link Device(0x4853)"},
}; /* pci_vid_1208[] */
-pci_id_t pci_vid_1209[] = {
+static pci_id_t const pci_vid_1209[] = {
{0x1209, 0xFFFF, 0xFFFF, 0xFFFF, "SCI Systems Inc(0x1209)"},
}; /* pci_vid_1209[] */
-pci_id_t pci_vid_120A[] = {
+static pci_id_t const pci_vid_120A[] = {
{0x120A, 0xFFFF, 0xFFFF, 0xFFFF, "Synaptel(0x120A)"},
}; /* pci_vid_120A[] */
-pci_id_t pci_vid_120B[] = {
+static pci_id_t const pci_vid_120B[] = {
{0x120B, 0xFFFF, 0xFFFF, 0xFFFF, "Adaptive Solutions(0x120B)"},
}; /* pci_vid_120B[] */
-pci_id_t pci_vid_120C[] = {
+static pci_id_t const pci_vid_120C[] = {
{0x120C, 0xFFFF, 0xFFFF, 0xFFFF, "Technical Corp.(0x120C)"},
}; /* pci_vid_120C[] */
-pci_id_t pci_vid_120D[] = {
+static pci_id_t const pci_vid_120D[] = {
{0x120D, 0xFFFF, 0xFFFF, 0xFFFF, "Compression Labs, Inc.(0x120D)"},
}; /* pci_vid_120D[] */
-pci_id_t pci_vid_120E[] = {
+static pci_id_t const pci_vid_120E[] = {
{0x120E, 0xFFFF, 0xFFFF, 0xFFFF, "Cyclades Corporation(0x120E)"},
{0x120E, 0x0100, 0xFFFF, 0xFFFF, "Cyclom-Y below first megabyte(0x0100)"},
{0x120E, 0x0101, 0xFFFF, 0xFFFF, "Cyclom-Y above first megabyte(0x0101)"},
@@ -17998,36 +18079,36 @@ pci_id_t pci_vid_120E[] = {
{0x120E, 0x0400, 0xFFFF, 0xFFFF, "PC400(0x0400)"},
}; /* pci_vid_120E[] */
-pci_id_t pci_vid_120F[] = {
+static pci_id_t const pci_vid_120F[] = {
{0x120F, 0xFFFF, 0xFFFF, 0xFFFF, "Essential Communications(0x120F)"},
{0x120F, 0x0001, 0xFFFF, 0xFFFF, "Roadrunner serial HIPPI(0x0001)"},
}; /* pci_vid_120F[] */
-pci_id_t pci_vid_1210[] = {
+static pci_id_t const pci_vid_1210[] = {
{0x1210, 0xFFFF, 0xFFFF, 0xFFFF, "Hyperparallel Technologies(0x1210)"},
}; /* pci_vid_1210[] */
-pci_id_t pci_vid_1211[] = {
+static pci_id_t const pci_vid_1211[] = {
{0x1211, 0xFFFF, 0xFFFF, 0xFFFF, "Braintech Inc(0x1211)"},
}; /* pci_vid_1211[] */
-pci_id_t pci_vid_1213[] = {
+static pci_id_t const pci_vid_1213[] = {
{0x1213, 0xFFFF, 0xFFFF, 0xFFFF, "Applied Intelligent Systems, Inc.(0x1213)"},
}; /* pci_vid_1213[] */
-pci_id_t pci_vid_1214[] = {
+static pci_id_t const pci_vid_1214[] = {
{0x1214, 0xFFFF, 0xFFFF, 0xFFFF, "Performance Technologies, Inc.(0x1214)"},
}; /* pci_vid_1214[] */
-pci_id_t pci_vid_1215[] = {
+static pci_id_t const pci_vid_1215[] = {
{0x1215, 0xFFFF, 0xFFFF, 0xFFFF, "Interware Co., Ltd(0x1215)"},
}; /* pci_vid_1215[] */
-pci_id_t pci_vid_1216[] = {
+static pci_id_t const pci_vid_1216[] = {
{0x1216, 0xFFFF, 0xFFFF, 0xFFFF, "Purup Prepress A/S(0x1216)"},
}; /* pci_vid_1216[] */
-pci_id_t pci_vid_1217[] = {
+static pci_id_t const pci_vid_1217[] = {
{0x1217, 0xFFFF, 0xFFFF, 0xFFFF, "O2 Micro, Inc.(0x1217)"},
{0x1217, 0x00F7, 0xFFFF, 0xFFFF, "Firewire (IEEE 1394)(0x00F7)"},
{0x1217, 0x00F7, 0x1071, 0x8209, "Medion MIM 2240 Notebook PC [MD98100](0x1071-0x8209)"},
@@ -18088,15 +18169,15 @@ pci_id_t pci_vid_1217[] = {
{0x1217, 0x8760, 0xFFFF, 0xFFFF, "FORESEE E2M2 NVMe SSD(0x8760)"},
}; /* pci_vid_1217[] */
-pci_id_t pci_vid_1218[] = {
+static pci_id_t const pci_vid_1218[] = {
{0x1218, 0xFFFF, 0xFFFF, 0xFFFF, "Hybricon Corp.(0x1218)"},
}; /* pci_vid_1218[] */
-pci_id_t pci_vid_1219[] = {
+static pci_id_t const pci_vid_1219[] = {
{0x1219, 0xFFFF, 0xFFFF, 0xFFFF, "First Virtual Corporation(0x1219)"},
}; /* pci_vid_1219[] */
-pci_id_t pci_vid_121A[] = {
+static pci_id_t const pci_vid_121A[] = {
{0x121A, 0xFFFF, 0xFFFF, 0xFFFF, "3Dfx Interactive, Inc.(0x121A)"},
{0x121A, 0x0001, 0xFFFF, 0xFFFF, "Voodoo(0x0001)"},
{0x121A, 0x0002, 0xFFFF, 0xFFFF, "Voodoo 2(0x0002)"},
@@ -18144,33 +18225,33 @@ pci_id_t pci_vid_121A[] = {
{0x121A, 0x0057, 0xFFFF, 0xFFFF, "Voodoo 3/3000 [Avenger](0x0057)"},
}; /* pci_vid_121A[] */
-pci_id_t pci_vid_121B[] = {
+static pci_id_t const pci_vid_121B[] = {
{0x121B, 0xFFFF, 0xFFFF, 0xFFFF, "Advanced Telecommunications Modules(0x121B)"},
}; /* pci_vid_121B[] */
-pci_id_t pci_vid_121C[] = {
+static pci_id_t const pci_vid_121C[] = {
{0x121C, 0xFFFF, 0xFFFF, 0xFFFF, "Nippon Texaco., Ltd(0x121C)"},
}; /* pci_vid_121C[] */
-pci_id_t pci_vid_121D[] = {
+static pci_id_t const pci_vid_121D[] = {
{0x121D, 0xFFFF, 0xFFFF, 0xFFFF, "LiPPERT ADLINK Technology GmbH(0x121D)"},
}; /* pci_vid_121D[] */
-pci_id_t pci_vid_121E[] = {
+static pci_id_t const pci_vid_121E[] = {
{0x121E, 0xFFFF, 0xFFFF, 0xFFFF, "CSPI(0x121E)"},
{0x121E, 0x0201, 0xFFFF, 0xFFFF, "Myrinet 2000 Scalable Cluster Interconnect(0x0201)"},
}; /* pci_vid_121E[] */
-pci_id_t pci_vid_121F[] = {
+static pci_id_t const pci_vid_121F[] = {
{0x121F, 0xFFFF, 0xFFFF, 0xFFFF, "Arcus Technology, Inc.(0x121F)"},
}; /* pci_vid_121F[] */
-pci_id_t pci_vid_1220[] = {
+static pci_id_t const pci_vid_1220[] = {
{0x1220, 0xFFFF, 0xFFFF, 0xFFFF, "Ariel Corporation(0x1220)"},
{0x1220, 0x1220, 0xFFFF, 0xFFFF, "AMCC 5933 TMS320C80 DSP/Imaging board(0x1220)"},
}; /* pci_vid_1220[] */
-pci_id_t pci_vid_1221[] = {
+static pci_id_t const pci_vid_1221[] = {
{0x1221, 0xFFFF, 0xFFFF, 0xFFFF, "Contec Co., Ltd(0x1221)"},
{0x1221, 0x9172, 0xFFFF, 0xFFFF, "PO-64L(PCI)H [Isolated Digital Output Board for PCI](0x9172)"},
{0x1221, 0x91A2, 0xFFFF, 0xFFFF, "PO-32L(PCI)H [Isolated Digital Output Board for PCI](0x91A2)"},
@@ -18179,11 +18260,11 @@ pci_id_t pci_vid_1221[] = {
{0x1221, 0xC103, 0xFFFF, 0xFFFF, "ADA16-32/2(PCI)F [High-Speed Analog I/O Board for PCI](0xC103)"},
}; /* pci_vid_1221[] */
-pci_id_t pci_vid_1222[] = {
+static pci_id_t const pci_vid_1222[] = {
{0x1222, 0xFFFF, 0xFFFF, 0xFFFF, "Ancor Communications, Inc.(0x1222)"},
}; /* pci_vid_1222[] */
-pci_id_t pci_vid_1223[] = {
+static pci_id_t const pci_vid_1223[] = {
{0x1223, 0xFFFF, 0xFFFF, 0xFFFF, "Artesyn Communication Products(0x1223)"},
{0x1223, 0x0003, 0xFFFF, 0xFFFF, "PM/Link(0x0003)"},
{0x1223, 0x0004, 0xFFFF, 0xFFFF, "PM/T1(0x0004)"},
@@ -18197,15 +18278,15 @@ pci_id_t pci_vid_1223[] = {
{0x1223, 0x000E, 0xFFFF, 0xFFFF, "PM/PPC(0x000E)"},
}; /* pci_vid_1223[] */
-pci_id_t pci_vid_1224[] = {
+static pci_id_t const pci_vid_1224[] = {
{0x1224, 0xFFFF, 0xFFFF, 0xFFFF, "Interactive Images(0x1224)"},
}; /* pci_vid_1224[] */
-pci_id_t pci_vid_1225[] = {
+static pci_id_t const pci_vid_1225[] = {
{0x1225, 0xFFFF, 0xFFFF, 0xFFFF, "Power I/O, Inc.(0x1225)"},
}; /* pci_vid_1225[] */
-pci_id_t pci_vid_1227[] = {
+static pci_id_t const pci_vid_1227[] = {
{0x1227, 0xFFFF, 0xFFFF, 0xFFFF, "EIZO Rugged Solutions(0x1227)"},
{0x1227, 0x0006, 0xFFFF, 0xFFFF, "Raptor GFX 8P(0x0006)"},
{0x1227, 0x0023, 0xFFFF, 0xFFFF, "Raptor GFX [1100T](0x0023)"},
@@ -18213,27 +18294,27 @@ pci_id_t pci_vid_1227[] = {
{0x1227, 0x004A, 0xFFFF, 0xFFFF, "Raptor 4000-LR-L [Linux version](0x004A)"},
}; /* pci_vid_1227[] */
-pci_id_t pci_vid_1228[] = {
+static pci_id_t const pci_vid_1228[] = {
{0x1228, 0xFFFF, 0xFFFF, 0xFFFF, "Norsk Elektro Optikk A/S(0x1228)"},
}; /* pci_vid_1228[] */
-pci_id_t pci_vid_1229[] = {
+static pci_id_t const pci_vid_1229[] = {
{0x1229, 0xFFFF, 0xFFFF, 0xFFFF, "Data Kinesis Inc.(0x1229)"},
}; /* pci_vid_1229[] */
-pci_id_t pci_vid_122A[] = {
+static pci_id_t const pci_vid_122A[] = {
{0x122A, 0xFFFF, 0xFFFF, 0xFFFF, "Integrated Telecom(0x122A)"},
}; /* pci_vid_122A[] */
-pci_id_t pci_vid_122B[] = {
+static pci_id_t const pci_vid_122B[] = {
{0x122B, 0xFFFF, 0xFFFF, 0xFFFF, "LG Industrial Systems Co., Ltd(0x122B)"},
}; /* pci_vid_122B[] */
-pci_id_t pci_vid_122C[] = {
+static pci_id_t const pci_vid_122C[] = {
{0x122C, 0xFFFF, 0xFFFF, 0xFFFF, "Sican GmbH(0x122C)"},
}; /* pci_vid_122C[] */
-pci_id_t pci_vid_122D[] = {
+static pci_id_t const pci_vid_122D[] = {
{0x122D, 0xFFFF, 0xFFFF, 0xFFFF, "Aztech System Ltd(0x122D)"},
{0x122D, 0x1206, 0xFFFF, 0xFFFF, "368DSP(0x1206)"},
{0x122D, 0x1400, 0xFFFF, 0xFFFF, "Trident PCI288-Q3DII (NX)(0x1400)"},
@@ -18243,22 +18324,22 @@ pci_id_t pci_vid_122D[] = {
{0x122D, 0x80DA, 0x122D, 0x0001, "3328 Audio(0x122D-0x0001)"},
}; /* pci_vid_122D[] */
-pci_id_t pci_vid_122E[] = {
+static pci_id_t const pci_vid_122E[] = {
{0x122E, 0xFFFF, 0xFFFF, 0xFFFF, "Xyratex(0x122E)"},
{0x122E, 0x7722, 0xFFFF, 0xFFFF, "Napatech XL1(0x7722)"},
{0x122E, 0x7724, 0xFFFF, 0xFFFF, "Napatech XL2/XA(0x7724)"},
{0x122E, 0x7729, 0xFFFF, 0xFFFF, "Napatech XD(0x7729)"},
}; /* pci_vid_122E[] */
-pci_id_t pci_vid_122F[] = {
+static pci_id_t const pci_vid_122F[] = {
{0x122F, 0xFFFF, 0xFFFF, 0xFFFF, "Andrew Corporation(0x122F)"},
}; /* pci_vid_122F[] */
-pci_id_t pci_vid_1230[] = {
+static pci_id_t const pci_vid_1230[] = {
{0x1230, 0xFFFF, 0xFFFF, 0xFFFF, "Fishcamp Engineering(0x1230)"},
}; /* pci_vid_1230[] */
-pci_id_t pci_vid_1231[] = {
+static pci_id_t const pci_vid_1231[] = {
{0x1231, 0xFFFF, 0xFFFF, 0xFFFF, "Woodward McCoach, Inc.(0x1231)"},
{0x1231, 0x04E1, 0xFFFF, 0xFFFF, "Desktop PCI Telephony 4(0x04E1)"},
{0x1231, 0x05E1, 0xFFFF, 0xFFFF, "Desktop PCI Telephony 5/6(0x05E1)"},
@@ -18267,49 +18348,49 @@ pci_id_t pci_vid_1231[] = {
{0x1231, 0x0D13, 0xFFFF, 0xFFFF, "Desktop PCI L1/L3 Telephony(0x0D13)"},
}; /* pci_vid_1231[] */
-pci_id_t pci_vid_1232[] = {
+static pci_id_t const pci_vid_1232[] = {
{0x1232, 0xFFFF, 0xFFFF, 0xFFFF, "GPT Limited(0x1232)"},
}; /* pci_vid_1232[] */
-pci_id_t pci_vid_1233[] = {
+static pci_id_t const pci_vid_1233[] = {
{0x1233, 0xFFFF, 0xFFFF, 0xFFFF, "Bus-Tech, Inc.(0x1233)"},
}; /* pci_vid_1233[] */
-pci_id_t pci_vid_1235[] = {
+static pci_id_t const pci_vid_1235[] = {
{0x1235, 0xFFFF, 0xFFFF, 0xFFFF, "SMART Modular Technologies(0x1235)"},
}; /* pci_vid_1235[] */
-pci_id_t pci_vid_1236[] = {
+static pci_id_t const pci_vid_1236[] = {
{0x1236, 0xFFFF, 0xFFFF, 0xFFFF, "Sigma Designs Corporation(0x1236)"},
{0x1236, 0x0000, 0xFFFF, 0xFFFF, "RealMagic64/GX(0x0000)"},
{0x1236, 0x6401, 0xFFFF, 0xFFFF, "REALmagic 64/GX (SD 6425)(0x6401)"},
}; /* pci_vid_1236[] */
-pci_id_t pci_vid_1237[] = {
+static pci_id_t const pci_vid_1237[] = {
{0x1237, 0xFFFF, 0xFFFF, 0xFFFF, "Alta Technology Corporation(0x1237)"},
}; /* pci_vid_1237[] */
-pci_id_t pci_vid_1238[] = {
+static pci_id_t const pci_vid_1238[] = {
{0x1238, 0xFFFF, 0xFFFF, 0xFFFF, "Adtran(0x1238)"},
}; /* pci_vid_1238[] */
-pci_id_t pci_vid_1239[] = {
+static pci_id_t const pci_vid_1239[] = {
{0x1239, 0xFFFF, 0xFFFF, 0xFFFF, "3DO Company(0x1239)"},
}; /* pci_vid_1239[] */
-pci_id_t pci_vid_123A[] = {
+static pci_id_t const pci_vid_123A[] = {
{0x123A, 0xFFFF, 0xFFFF, 0xFFFF, "Visicom Laboratories, Inc.(0x123A)"},
}; /* pci_vid_123A[] */
-pci_id_t pci_vid_123B[] = {
+static pci_id_t const pci_vid_123B[] = {
{0x123B, 0xFFFF, 0xFFFF, 0xFFFF, "Seeq Technology, Inc.(0x123B)"},
}; /* pci_vid_123B[] */
-pci_id_t pci_vid_123C[] = {
+static pci_id_t const pci_vid_123C[] = {
{0x123C, 0xFFFF, 0xFFFF, 0xFFFF, "Century Systems, Inc.(0x123C)"},
}; /* pci_vid_123C[] */
-pci_id_t pci_vid_123D[] = {
+static pci_id_t const pci_vid_123D[] = {
{0x123D, 0xFFFF, 0xFFFF, 0xFFFF, "Engineering Design Team, Inc.(0x123D)"},
{0x123D, 0x0000, 0xFFFF, 0xFFFF, "EasyConnect 8/32(0x0000)"},
{0x123D, 0x0002, 0xFFFF, 0xFFFF, "EasyConnect 8/64(0x0002)"},
@@ -18324,11 +18405,11 @@ pci_id_t pci_vid_123D[] = {
{0x123D, 0x00B5, 0xFFFF, 0xFFFF, "PCIe8 RFx SDR(0x00B5)"},
}; /* pci_vid_123D[] */
-pci_id_t pci_vid_123E[] = {
+static pci_id_t const pci_vid_123E[] = {
{0x123E, 0xFFFF, 0xFFFF, 0xFFFF, "Simutech, Inc.(0x123E)"},
}; /* pci_vid_123E[] */
-pci_id_t pci_vid_123F[] = {
+static pci_id_t const pci_vid_123F[] = {
{0x123F, 0xFFFF, 0xFFFF, 0xFFFF, "LSI Logic(0x123F)"},
{0x123F, 0x00E4, 0xFFFF, 0xFFFF, "MPEG(0x00E4)"},
{0x123F, 0x8120, 0xFFFF, 0xFFFF, "DVxplore Codec(0x8120)"},
@@ -18347,15 +18428,15 @@ pci_id_t pci_vid_123F[] = {
{0x123F, 0x8888, 0x1328, 0x0001, "Cinemaster C 3.0 DVD Decoder(0x1328-0x0001)"},
}; /* pci_vid_123F[] */
-pci_id_t pci_vid_1240[] = {
+static pci_id_t const pci_vid_1240[] = {
{0x1240, 0xFFFF, 0xFFFF, 0xFFFF, "Marathon Technologies Corp.(0x1240)"},
}; /* pci_vid_1240[] */
-pci_id_t pci_vid_1241[] = {
+static pci_id_t const pci_vid_1241[] = {
{0x1241, 0xFFFF, 0xFFFF, 0xFFFF, "DSC Communications(0x1241)"},
}; /* pci_vid_1241[] */
-pci_id_t pci_vid_1242[] = {
+static pci_id_t const pci_vid_1242[] = {
{0x1242, 0xFFFF, 0xFFFF, 0xFFFF, "JNI Corporation(0x1242)"},
{0x1242, 0x1560, 0xFFFF, 0xFFFF, "JNIC-1560 PCI-X Fibre Channel Controller(0x1560)"},
{0x1242, 0x1560, 0x1242, 0x6562, "FCX2-6562 Dual Channel PCI-X Fibre Channel Adapter(0x1242-0x6562)"},
@@ -18365,11 +18446,11 @@ pci_id_t pci_vid_1242[] = {
{0x1242, 0x656A, 0xFFFF, 0xFFFF, "FCX-6562 PCI-X Fibre Channel Adapter(0x656A)"},
}; /* pci_vid_1242[] */
-pci_id_t pci_vid_1243[] = {
+static pci_id_t const pci_vid_1243[] = {
{0x1243, 0xFFFF, 0xFFFF, 0xFFFF, "Delphax(0x1243)"},
}; /* pci_vid_1243[] */
-pci_id_t pci_vid_1244[] = {
+static pci_id_t const pci_vid_1244[] = {
{0x1244, 0xFFFF, 0xFFFF, 0xFFFF, "AVM GmbH(0x1244)"},
{0x1244, 0x0700, 0xFFFF, 0xFFFF, "B1 ISDN(0x0700)"},
{0x1244, 0x0800, 0xFFFF, 0xFFFF, "C4 ISDN(0x0800)"},
@@ -18384,41 +18465,41 @@ pci_id_t pci_vid_1244[] = {
{0x1244, 0x2900, 0xFFFF, 0xFFFF, "Fritz!Card DSL v2.0(0x2900)"},
}; /* pci_vid_1244[] */
-pci_id_t pci_vid_1245[] = {
+static pci_id_t const pci_vid_1245[] = {
{0x1245, 0xFFFF, 0xFFFF, 0xFFFF, "A.P.D., S.A.(0x1245)"},
}; /* pci_vid_1245[] */
-pci_id_t pci_vid_1246[] = {
+static pci_id_t const pci_vid_1246[] = {
{0x1246, 0xFFFF, 0xFFFF, 0xFFFF, "Dipix Technologies, Inc.(0x1246)"},
}; /* pci_vid_1246[] */
-pci_id_t pci_vid_1247[] = {
+static pci_id_t const pci_vid_1247[] = {
{0x1247, 0xFFFF, 0xFFFF, 0xFFFF, "Xylon Research, Inc.(0x1247)"},
}; /* pci_vid_1247[] */
-pci_id_t pci_vid_1248[] = {
+static pci_id_t const pci_vid_1248[] = {
{0x1248, 0xFFFF, 0xFFFF, 0xFFFF, "Central Data Corporation(0x1248)"},
}; /* pci_vid_1248[] */
-pci_id_t pci_vid_1249[] = {
+static pci_id_t const pci_vid_1249[] = {
{0x1249, 0xFFFF, 0xFFFF, 0xFFFF, "Samsung Electronics Co., Ltd.(0x1249)"},
}; /* pci_vid_1249[] */
-pci_id_t pci_vid_124A[] = {
+static pci_id_t const pci_vid_124A[] = {
{0x124A, 0xFFFF, 0xFFFF, 0xFFFF, "AEG Electrocom GmbH(0x124A)"},
}; /* pci_vid_124A[] */
-pci_id_t pci_vid_124B[] = {
+static pci_id_t const pci_vid_124B[] = {
{0x124B, 0xFFFF, 0xFFFF, 0xFFFF, "SBS/Greenspring Modular I/O(0x124B)"},
{0x124B, 0x0040, 0xFFFF, 0xFFFF, "PCI-40A or cPCI-200 Quad IndustryPack carrier(0x0040)"},
{0x124B, 0x0040, 0x124B, 0x9080, "PCI9080 Bridge(0x124B-0x9080)"},
}; /* pci_vid_124B[] */
-pci_id_t pci_vid_124C[] = {
+static pci_id_t const pci_vid_124C[] = {
{0x124C, 0xFFFF, 0xFFFF, 0xFFFF, "Solitron Technologies, Inc.(0x124C)"},
}; /* pci_vid_124C[] */
-pci_id_t pci_vid_124D[] = {
+static pci_id_t const pci_vid_124D[] = {
{0x124D, 0xFFFF, 0xFFFF, 0xFFFF, "Stallion Technologies, Inc.(0x124D)"},
{0x124D, 0x0000, 0xFFFF, 0xFFFF, "EasyConnection 8/32(0x0000)"},
{0x124D, 0x0002, 0xFFFF, 0xFFFF, "EasyConnection 8/64(0x0002)"},
@@ -18426,34 +18507,34 @@ pci_id_t pci_vid_124D[] = {
{0x124D, 0x0004, 0xFFFF, 0xFFFF, "EasyConnection/RA(0x0004)"},
}; /* pci_vid_124D[] */
-pci_id_t pci_vid_124E[] = {
+static pci_id_t const pci_vid_124E[] = {
{0x124E, 0xFFFF, 0xFFFF, 0xFFFF, "Cylink(0x124E)"},
}; /* pci_vid_124E[] */
-pci_id_t pci_vid_124F[] = {
+static pci_id_t const pci_vid_124F[] = {
{0x124F, 0xFFFF, 0xFFFF, 0xFFFF, "Infortrend Technology, Inc.(0x124F)"},
{0x124F, 0x0041, 0xFFFF, 0xFFFF, "IFT-2000 Series RAID Controller(0x0041)"},
}; /* pci_vid_124F[] */
-pci_id_t pci_vid_1250[] = {
+static pci_id_t const pci_vid_1250[] = {
{0x1250, 0xFFFF, 0xFFFF, 0xFFFF, "Hitachi Microcomputer System Ltd(0x1250)"},
}; /* pci_vid_1250[] */
-pci_id_t pci_vid_1251[] = {
+static pci_id_t const pci_vid_1251[] = {
{0x1251, 0xFFFF, 0xFFFF, 0xFFFF, "VLSI Solutions Oy(0x1251)"},
}; /* pci_vid_1251[] */
-pci_id_t pci_vid_1253[] = {
+static pci_id_t const pci_vid_1253[] = {
{0x1253, 0xFFFF, 0xFFFF, 0xFFFF, "Guzik Technical Enterprises(0x1253)"},
}; /* pci_vid_1253[] */
-pci_id_t pci_vid_1254[] = {
+static pci_id_t const pci_vid_1254[] = {
{0x1254, 0xFFFF, 0xFFFF, 0xFFFF, "Linear Systems Ltd.(0x1254)"},
{0x1254, 0x0065, 0xFFFF, 0xFFFF, "DVB Master FD(0x0065)"},
{0x1254, 0x007C, 0xFFFF, 0xFFFF, "DVB Master Quad/o(0x007C)"},
}; /* pci_vid_1254[] */
-pci_id_t pci_vid_1255[] = {
+static pci_id_t const pci_vid_1255[] = {
{0x1255, 0xFFFF, 0xFFFF, 0xFFFF, "Optibase Ltd(0x1255)"},
{0x1255, 0x1110, 0xFFFF, 0xFFFF, "MPEG Forge(0x1110)"},
{0x1255, 0x1210, 0xFFFF, 0xFFFF, "MPEG Fusion(0x1210)"},
@@ -18462,22 +18543,22 @@ pci_id_t pci_vid_1255[] = {
{0x1255, 0x2130, 0xFFFF, 0xFFFF, "VideoQuest(0x2130)"},
}; /* pci_vid_1255[] */
-pci_id_t pci_vid_1256[] = {
+static pci_id_t const pci_vid_1256[] = {
{0x1256, 0xFFFF, 0xFFFF, 0xFFFF, "Perceptive Solutions, Inc.(0x1256)"},
{0x1256, 0x4201, 0xFFFF, 0xFFFF, "PCI-2220I(0x4201)"},
{0x1256, 0x4401, 0xFFFF, 0xFFFF, "PCI-2240I(0x4401)"},
{0x1256, 0x5201, 0xFFFF, 0xFFFF, "PCI-2000(0x5201)"},
}; /* pci_vid_1256[] */
-pci_id_t pci_vid_1257[] = {
+static pci_id_t const pci_vid_1257[] = {
{0x1257, 0xFFFF, 0xFFFF, 0xFFFF, "Vertex Networks, Inc.(0x1257)"},
}; /* pci_vid_1257[] */
-pci_id_t pci_vid_1258[] = {
+static pci_id_t const pci_vid_1258[] = {
{0x1258, 0xFFFF, 0xFFFF, 0xFFFF, "Gilbarco, Inc.(0x1258)"},
}; /* pci_vid_1258[] */
-pci_id_t pci_vid_1259[] = {
+static pci_id_t const pci_vid_1259[] = {
{0x1259, 0xFFFF, 0xFFFF, 0xFFFF, "Allied Telesis(0x1259)"},
{0x1259, 0x2560, 0xFFFF, 0xFFFF, "AT-2560 Fast Ethernet Adapter (i82557B)(0x2560)"},
{0x1259, 0x2801, 0xFFFF, 0xFFFF, "AT-2801FX (RTL-8139)(0x2801)"},
@@ -18486,11 +18567,11 @@ pci_id_t pci_vid_1259[] = {
{0x1259, 0xA120, 0xFFFF, 0xFFFF, "21x4x DEC-Tulip compatible 10/100 Ethernet(0xA120)"},
}; /* pci_vid_1259[] */
-pci_id_t pci_vid_125A[] = {
+static pci_id_t const pci_vid_125A[] = {
{0x125A, 0xFFFF, 0xFFFF, 0xFFFF, "ABB Power Systems(0x125A)"},
}; /* pci_vid_125A[] */
-pci_id_t pci_vid_125B[] = {
+static pci_id_t const pci_vid_125B[] = {
{0x125B, 0xFFFF, 0xFFFF, 0xFFFF, "Asix Electronics Corporation(0x125B)"},
{0x125B, 0x1400, 0xFFFF, 0xFFFF, "AX88141 Fast Ethernet Controller(0x1400)"},
{0x125B, 0x1400, 0x1186, 0x1100, "AX8814X Based PCI Fast Ethernet Adapter(0x1186-0x1100)"},
@@ -18502,13 +18583,13 @@ pci_id_t pci_vid_125B[] = {
{0x125B, 0x9100, 0xEA50, 0x1C10, "RXi2-BP(0xEA50-0x1C10)"},
}; /* pci_vid_125B[] */
-pci_id_t pci_vid_125C[] = {
+static pci_id_t const pci_vid_125C[] = {
{0x125C, 0xFFFF, 0xFFFF, 0xFFFF, "Aurora Technologies, Inc.(0x125C)"},
{0x125C, 0x0101, 0xFFFF, 0xFFFF, "Saturn 4520P(0x0101)"},
{0x125C, 0x0640, 0xFFFF, 0xFFFF, "Aries 16000P(0x0640)"},
}; /* pci_vid_125C[] */
-pci_id_t pci_vid_125D[] = {
+static pci_id_t const pci_vid_125D[] = {
{0x125D, 0xFFFF, 0xFFFF, 0xFFFF, "ESS Technology(0x125D)"},
{0x125D, 0x0000, 0xFFFF, 0xFFFF, "ES336H Fax Modem (Early Model)(0x0000)"},
{0x125D, 0x1948, 0xFFFF, 0xFFFF, "ES1948 Maestro-1(0x1948)"},
@@ -18557,18 +18638,18 @@ pci_id_t pci_vid_125D[] = {
{0x125D, 0x2898, 0x14FE, 0x0429, "ES56-PI Data Fax Modem(0x14FE-0x0429)"},
}; /* pci_vid_125D[] */
-pci_id_t pci_vid_125E[] = {
+static pci_id_t const pci_vid_125E[] = {
{0x125E, 0xFFFF, 0xFFFF, 0xFFFF, "Specialvideo Engineering SRL(0x125E)"},
}; /* pci_vid_125E[] */
-pci_id_t pci_vid_125F[] = {
+static pci_id_t const pci_vid_125F[] = {
{0x125F, 0xFFFF, 0xFFFF, 0xFFFF, "Concurrent Technologies, Inc.(0x125F)"},
{0x125F, 0x2071, 0xFFFF, 0xFFFF, "CC PMC/232(0x2071)"},
{0x125F, 0x2084, 0xFFFF, 0xFFFF, "CC PMC/23P(0x2084)"},
{0x125F, 0x2091, 0xFFFF, 0xFFFF, "CC PMC/422(0x2091)"},
}; /* pci_vid_125F[] */
-pci_id_t pci_vid_1260[] = {
+static pci_id_t const pci_vid_1260[] = {
{0x1260, 0xFFFF, 0xFFFF, 0xFFFF, "Intersil Corporation(0x1260)"},
{0x1260, 0x3872, 0xFFFF, 0xFFFF, "ISL3872 [Prism 3](0x3872)"},
{0x1260, 0x3872, 0x1468, 0x0202, "LAN-Express IEEE 802.11b Wireless LAN(0x1468-0x0202)"},
@@ -18609,71 +18690,71 @@ pci_id_t pci_vid_1260[] = {
{0x1260, 0xFFFF, 0x1260, 0x0000, "Senao 3054MP+ (J) mini-PCI WLAN 802.11g adapter(0x1260-0x0000)"},
}; /* pci_vid_1260[] */
-pci_id_t pci_vid_1261[] = {
+static pci_id_t const pci_vid_1261[] = {
{0x1261, 0xFFFF, 0xFFFF, 0xFFFF, "Matsushita-Kotobuki Electronics Industries, Ltd.(0x1261)"},
}; /* pci_vid_1261[] */
-pci_id_t pci_vid_1262[] = {
+static pci_id_t const pci_vid_1262[] = {
{0x1262, 0xFFFF, 0xFFFF, 0xFFFF, "ES Computer Company, Ltd.(0x1262)"},
}; /* pci_vid_1262[] */
-pci_id_t pci_vid_1263[] = {
+static pci_id_t const pci_vid_1263[] = {
{0x1263, 0xFFFF, 0xFFFF, 0xFFFF, "Sonic Solutions(0x1263)"},
}; /* pci_vid_1263[] */
-pci_id_t pci_vid_1264[] = {
+static pci_id_t const pci_vid_1264[] = {
{0x1264, 0xFFFF, 0xFFFF, 0xFFFF, "Aval Nagasaki Corporation(0x1264)"},
}; /* pci_vid_1264[] */
-pci_id_t pci_vid_1265[] = {
+static pci_id_t const pci_vid_1265[] = {
{0x1265, 0xFFFF, 0xFFFF, 0xFFFF, "Casio Computer Co., Ltd.(0x1265)"},
}; /* pci_vid_1265[] */
-pci_id_t pci_vid_1266[] = {
+static pci_id_t const pci_vid_1266[] = {
{0x1266, 0xFFFF, 0xFFFF, 0xFFFF, "Microdyne Corporation(0x1266)"},
{0x1266, 0x0001, 0xFFFF, 0xFFFF, "NE10/100 Adapter (i82557B)(0x0001)"},
{0x1266, 0x1910, 0xFFFF, 0xFFFF, "NE2000Plus (RT8029) Ethernet Adapter(0x1910)"},
{0x1266, 0x1910, 0x1266, 0x1910, "NE2000Plus Ethernet Adapter(0x1266-0x1910)"},
}; /* pci_vid_1266[] */
-pci_id_t pci_vid_1267[] = {
+static pci_id_t const pci_vid_1267[] = {
{0x1267, 0xFFFF, 0xFFFF, 0xFFFF, "S. A. Telecommunications(0x1267)"},
{0x1267, 0x5352, 0xFFFF, 0xFFFF, "PCR2101(0x5352)"},
{0x1267, 0x5A4B, 0xFFFF, 0xFFFF, "Telsat Turbo(0x5A4B)"},
}; /* pci_vid_1267[] */
-pci_id_t pci_vid_1268[] = {
+static pci_id_t const pci_vid_1268[] = {
{0x1268, 0xFFFF, 0xFFFF, 0xFFFF, "Tektronix(0x1268)"},
}; /* pci_vid_1268[] */
-pci_id_t pci_vid_1269[] = {
+static pci_id_t const pci_vid_1269[] = {
{0x1269, 0xFFFF, 0xFFFF, 0xFFFF, "Thales(0x1269)"},
{0x1269, 0x00B3, 0xFFFF, 0xFFFF, "5G Data Card [Cinterion MV31-W](0x00B3)"},
}; /* pci_vid_1269[] */
-pci_id_t pci_vid_126A[] = {
+static pci_id_t const pci_vid_126A[] = {
{0x126A, 0xFFFF, 0xFFFF, 0xFFFF, "Lexmark International, Inc.(0x126A)"},
}; /* pci_vid_126A[] */
-pci_id_t pci_vid_126B[] = {
+static pci_id_t const pci_vid_126B[] = {
{0x126B, 0xFFFF, 0xFFFF, 0xFFFF, "Adax, Inc.(0x126B)"},
}; /* pci_vid_126B[] */
-pci_id_t pci_vid_126C[] = {
+static pci_id_t const pci_vid_126C[] = {
{0x126C, 0xFFFF, 0xFFFF, 0xFFFF, "Northern Telecom(0x126C)"},
{0x126C, 0x1211, 0xFFFF, 0xFFFF, "10/100BaseTX [RTL81xx](0x1211)"},
{0x126C, 0x126C, 0xFFFF, 0xFFFF, "802.11b Wireless Ethernet Adapter(0x126C)"},
}; /* pci_vid_126C[] */
-pci_id_t pci_vid_126D[] = {
+static pci_id_t const pci_vid_126D[] = {
{0x126D, 0xFFFF, 0xFFFF, 0xFFFF, "Splash Technology, Inc.(0x126D)"},
}; /* pci_vid_126D[] */
-pci_id_t pci_vid_126E[] = {
+static pci_id_t const pci_vid_126E[] = {
{0x126E, 0xFFFF, 0xFFFF, 0xFFFF, "Sumitomo Metal Industries, Ltd.(0x126E)"},
}; /* pci_vid_126E[] */
-pci_id_t pci_vid_126F[] = {
+static pci_id_t const pci_vid_126F[] = {
{0x126F, 0xFFFF, 0xFFFF, 0xFFFF, "Silicon Motion, Inc.(0x126F)"},
{0x126F, 0x0501, 0xFFFF, 0xFFFF, "SM501 VoyagerGX Rev. AA(0x0501)"},
{0x126F, 0x0510, 0xFFFF, 0xFFFF, "SM501 VoyagerGX Rev. B(0x0510)"},
@@ -18695,24 +18776,24 @@ pci_id_t pci_vid_126F[] = {
{0x126F, 0x8366, 0xFFFF, 0xFFFF, "SM8366 NVMe SSD Controller [MonTitan](0x8366)"},
}; /* pci_vid_126F[] */
-pci_id_t pci_vid_1270[] = {
+static pci_id_t const pci_vid_1270[] = {
{0x1270, 0xFFFF, 0xFFFF, 0xFFFF, "Olympus Optical Co., Ltd.(0x1270)"},
}; /* pci_vid_1270[] */
-pci_id_t pci_vid_1271[] = {
+static pci_id_t const pci_vid_1271[] = {
{0x1271, 0xFFFF, 0xFFFF, 0xFFFF, "GW Instruments(0x1271)"},
}; /* pci_vid_1271[] */
-pci_id_t pci_vid_1272[] = {
+static pci_id_t const pci_vid_1272[] = {
{0x1272, 0xFFFF, 0xFFFF, 0xFFFF, "Telematics International(0x1272)"},
}; /* pci_vid_1272[] */
-pci_id_t pci_vid_1273[] = {
+static pci_id_t const pci_vid_1273[] = {
{0x1273, 0xFFFF, 0xFFFF, 0xFFFF, "Hughes Network Systems(0x1273)"},
{0x1273, 0x0002, 0xFFFF, 0xFFFF, "DirecPC(0x0002)"},
}; /* pci_vid_1273[] */
-pci_id_t pci_vid_1274[] = {
+static pci_id_t const pci_vid_1274[] = {
{0x1274, 0xFFFF, 0xFFFF, 0xFFFF, "Ensoniq(0x1274)"},
{0x1274, 0x1171, 0xFFFF, 0xFFFF, "ES1373 / Creative Labs CT5803 [AudioPCI](0x1171)"},
{0x1274, 0x1371, 0xFFFF, 0xFFFF, "ES1371/ES1373 / Creative Labs CT2518(0x1371)"},
@@ -18776,7 +18857,7 @@ pci_id_t pci_vid_1274[] = {
{0x1274, 0x5880, 0x1274, 0x2000, "Creative CT4810 [Sound Blaster AudioPCI 128](0x1274-0x2000)"},
{0x1274, 0x5880, 0x1274, 0x2003, "Creative SoundBlaster AudioPCI 128(0x1274-0x2003)"},
{0x1274, 0x5880, 0x1274, 0x5880, "Creative CT4750 [Sound Blaster PCI 128](0x1274-0x5880)"},
-{0x1274, 0x5880, 0x1274, 0x8001, "Sound Blaster 16PCI 4.1ch(0x1274-0x8001)"},
+{0x1274, 0x5880, 0x1274, 0x8001, "Creative CT4750 [Sound Blaster 16 PCI/PCI 128/4.1 Digital](0x1274-0x8001)"},
{0x1274, 0x5880, 0x1458, 0xA000, "5880 AudioPCI On Motherboard 6OXET(0x1458-0xA000)"},
{0x1274, 0x5880, 0x1462, 0x6880, "5880 AudioPCI On Motherboard MS-6188 1.00(0x1462-0x6880)"},
{0x1274, 0x5880, 0x270F, 0x2001, "5880 AudioPCI On Motherboard 6CTR(0x270F-0x2001)"},
@@ -18786,19 +18867,19 @@ pci_id_t pci_vid_1274[] = {
{0x1274, 0x8002, 0xFFFF, 0xFFFF, "5880A [AudioPCI](0x8002)"},
}; /* pci_vid_1274[] */
-pci_id_t pci_vid_1275[] = {
+static pci_id_t const pci_vid_1275[] = {
{0x1275, 0xFFFF, 0xFFFF, 0xFFFF, "Network Appliance Corporation(0x1275)"},
}; /* pci_vid_1275[] */
-pci_id_t pci_vid_1276[] = {
+static pci_id_t const pci_vid_1276[] = {
{0x1276, 0xFFFF, 0xFFFF, 0xFFFF, "Switched Network Technologies, Inc.(0x1276)"},
}; /* pci_vid_1276[] */
-pci_id_t pci_vid_1277[] = {
+static pci_id_t const pci_vid_1277[] = {
{0x1277, 0xFFFF, 0xFFFF, 0xFFFF, "Comstream(0x1277)"},
}; /* pci_vid_1277[] */
-pci_id_t pci_vid_1278[] = {
+static pci_id_t const pci_vid_1278[] = {
{0x1278, 0xFFFF, 0xFFFF, 0xFFFF, "Transtech Parallel Systems Ltd.(0x1278)"},
{0x1278, 0x0701, 0xFFFF, 0xFFFF, "TPE3/TM3 PowerPC Node(0x0701)"},
{0x1278, 0x0710, 0xFFFF, 0xFFFF, "TPE5 PowerPC PCI board(0x0710)"},
@@ -18806,7 +18887,7 @@ pci_id_t pci_vid_1278[] = {
{0x1278, 0x1101, 0xFFFF, 0xFFFF, "TS-C43 card with 4 ADSP-TS101 processors(0x1101)"},
}; /* pci_vid_1278[] */
-pci_id_t pci_vid_1279[] = {
+static pci_id_t const pci_vid_1279[] = {
{0x1279, 0xFFFF, 0xFFFF, 0xFFFF, "Transmeta Corporation(0x1279)"},
{0x1279, 0x0060, 0xFFFF, 0xFFFF, "TM8000 Northbridge(0x0060)"},
{0x1279, 0x0061, 0xFFFF, 0xFFFF, "TM8000 AGP bridge(0x0061)"},
@@ -18816,7 +18897,7 @@ pci_id_t pci_vid_1279[] = {
{0x1279, 0x0397, 0xFFFF, 0xFFFF, "BIOS scratchpad(0x0397)"},
}; /* pci_vid_1279[] */
-pci_id_t pci_vid_127A[] = {
+static pci_id_t const pci_vid_127A[] = {
{0x127A, 0xFFFF, 0xFFFF, 0xFFFF, "Rockwell International(0x127A)"},
{0x127A, 0x1002, 0xFFFF, 0xFFFF, "HCF 56k Data/Fax Modem(0x1002)"},
{0x127A, 0x1002, 0x1092, 0x094C, "SupraExpress 56i PRO [Diamond SUP2380](0x1092-0x094C)"},
@@ -18935,36 +19016,36 @@ pci_id_t pci_vid_127A[] = {
{0x127A, 0x8234, 0x108D, 0x0027, "RapidFire 616X ATM155 Adapter(0x108D-0x0027)"},
}; /* pci_vid_127A[] */
-pci_id_t pci_vid_127B[] = {
+static pci_id_t const pci_vid_127B[] = {
{0x127B, 0xFFFF, 0xFFFF, 0xFFFF, "Pixera Corporation(0x127B)"},
}; /* pci_vid_127B[] */
-pci_id_t pci_vid_127C[] = {
+static pci_id_t const pci_vid_127C[] = {
{0x127C, 0xFFFF, 0xFFFF, 0xFFFF, "Crosspoint Solutions, Inc.(0x127C)"},
}; /* pci_vid_127C[] */
-pci_id_t pci_vid_127D[] = {
+static pci_id_t const pci_vid_127D[] = {
{0x127D, 0xFFFF, 0xFFFF, 0xFFFF, "Vela Research(0x127D)"},
}; /* pci_vid_127D[] */
-pci_id_t pci_vid_127E[] = {
+static pci_id_t const pci_vid_127E[] = {
{0x127E, 0xFFFF, 0xFFFF, 0xFFFF, "Winnov, L.P.(0x127E)"},
{0x127E, 0x0010, 0xFFFF, 0xFFFF, "Videum 1000 Plus(0x0010)"},
}; /* pci_vid_127E[] */
-pci_id_t pci_vid_127F[] = {
+static pci_id_t const pci_vid_127F[] = {
{0x127F, 0xFFFF, 0xFFFF, 0xFFFF, "Fujifilm(0x127F)"},
}; /* pci_vid_127F[] */
-pci_id_t pci_vid_1280[] = {
+static pci_id_t const pci_vid_1280[] = {
{0x1280, 0xFFFF, 0xFFFF, 0xFFFF, "Photoscript Group Ltd.(0x1280)"},
}; /* pci_vid_1280[] */
-pci_id_t pci_vid_1281[] = {
+static pci_id_t const pci_vid_1281[] = {
{0x1281, 0xFFFF, 0xFFFF, 0xFFFF, "Yokogawa Electric Corporation(0x1281)"},
}; /* pci_vid_1281[] */
-pci_id_t pci_vid_1282[] = {
+static pci_id_t const pci_vid_1282[] = {
{0x1282, 0xFFFF, 0xFFFF, 0xFFFF, "Davicom Semiconductor, Inc.(0x1282)"},
{0x1282, 0x6585, 0xFFFF, 0xFFFF, "DM562P V90 Modem(0x6585)"},
{0x1282, 0x9009, 0xFFFF, 0xFFFF, "DM9009 Ethernet Controller(0x9009)"},
@@ -18974,7 +19055,7 @@ pci_id_t pci_vid_1282[] = {
{0x1282, 0x9132, 0xFFFF, 0xFFFF, "Ethernet 100/10 MBit(0x9132)"},
}; /* pci_vid_1282[] */
-pci_id_t pci_vid_1283[] = {
+static pci_id_t const pci_vid_1283[] = {
{0x1283, 0xFFFF, 0xFFFF, 0xFFFF, "Integrated Technology Express, Inc.(0x1283)"},
{0x1283, 0x673A, 0xFFFF, 0xFFFF, "IT8330G(0x673A)"},
{0x1283, 0x8152, 0xFFFF, 0xFFFF, "IT8152F/G Advanced RISC-to-PCI Companion Chip(0x8152)"},
@@ -18994,51 +19075,51 @@ pci_id_t pci_vid_1283[] = {
{0x1283, 0xE886, 0xFFFF, 0xFFFF, "IT8330G(0xE886)"},
}; /* pci_vid_1283[] */
-pci_id_t pci_vid_1284[] = {
+static pci_id_t const pci_vid_1284[] = {
{0x1284, 0xFFFF, 0xFFFF, 0xFFFF, "Sahara Networks, Inc.(0x1284)"},
}; /* pci_vid_1284[] */
-pci_id_t pci_vid_1285[] = {
+static pci_id_t const pci_vid_1285[] = {
{0x1285, 0xFFFF, 0xFFFF, 0xFFFF, "Platform Technologies, Inc.(0x1285)"},
{0x1285, 0x0100, 0xFFFF, 0xFFFF, "AGOGO sound chip (aka ESS Maestro 1)(0x0100)"},
}; /* pci_vid_1285[] */
-pci_id_t pci_vid_1286[] = {
+static pci_id_t const pci_vid_1286[] = {
{0x1286, 0xFFFF, 0xFFFF, 0xFFFF, "Mazet GmbH(0x1286)"},
}; /* pci_vid_1286[] */
-pci_id_t pci_vid_1287[] = {
+static pci_id_t const pci_vid_1287[] = {
{0x1287, 0xFFFF, 0xFFFF, 0xFFFF, "M-Pact, Inc.(0x1287)"},
{0x1287, 0x001E, 0xFFFF, 0xFFFF, "LS220D DVD Decoder(0x001E)"},
{0x1287, 0x001F, 0xFFFF, 0xFFFF, "LS220C DVD Decoder(0x001F)"},
}; /* pci_vid_1287[] */
-pci_id_t pci_vid_1288[] = {
+static pci_id_t const pci_vid_1288[] = {
{0x1288, 0xFFFF, 0xFFFF, 0xFFFF, "Timestep Corporation(0x1288)"},
}; /* pci_vid_1288[] */
-pci_id_t pci_vid_1289[] = {
+static pci_id_t const pci_vid_1289[] = {
{0x1289, 0xFFFF, 0xFFFF, 0xFFFF, "AVC Technology, Inc.(0x1289)"},
}; /* pci_vid_1289[] */
-pci_id_t pci_vid_128A[] = {
+static pci_id_t const pci_vid_128A[] = {
{0x128A, 0xFFFF, 0xFFFF, 0xFFFF, "Asante Technologies, Inc.(0x128A)"},
}; /* pci_vid_128A[] */
-pci_id_t pci_vid_128B[] = {
+static pci_id_t const pci_vid_128B[] = {
{0x128B, 0xFFFF, 0xFFFF, 0xFFFF, "Transwitch Corporation(0x128B)"},
}; /* pci_vid_128B[] */
-pci_id_t pci_vid_128C[] = {
+static pci_id_t const pci_vid_128C[] = {
{0x128C, 0xFFFF, 0xFFFF, 0xFFFF, "Retix Corporation(0x128C)"},
}; /* pci_vid_128C[] */
-pci_id_t pci_vid_128D[] = {
+static pci_id_t const pci_vid_128D[] = {
{0x128D, 0xFFFF, 0xFFFF, 0xFFFF, "G2 Networks, Inc.(0x128D)"},
{0x128D, 0x0021, 0xFFFF, 0xFFFF, "ATM155 Adapter(0x0021)"},
}; /* pci_vid_128D[] */
-pci_id_t pci_vid_128E[] = {
+static pci_id_t const pci_vid_128E[] = {
{0x128E, 0xFFFF, 0xFFFF, 0xFFFF, "Hoontech Corporation/Samho Multi Tech Ltd.(0x128E)"},
{0x128E, 0x0008, 0xFFFF, 0xFFFF, "ST128 WSS/SB(0x0008)"},
{0x128E, 0x0009, 0xFFFF, 0xFFFF, "ST128 SAM9407(0x0009)"},
@@ -19047,54 +19128,55 @@ pci_id_t pci_vid_128E[] = {
{0x128E, 0x000C, 0xFFFF, 0xFFFF, "ST128 Ctrl Port(0x000C)"},
}; /* pci_vid_128E[] */
-pci_id_t pci_vid_128F[] = {
+static pci_id_t const pci_vid_128F[] = {
{0x128F, 0xFFFF, 0xFFFF, 0xFFFF, "Tateno Dennou, Inc.(0x128F)"},
}; /* pci_vid_128F[] */
-pci_id_t pci_vid_1290[] = {
+static pci_id_t const pci_vid_1290[] = {
{0x1290, 0xFFFF, 0xFFFF, 0xFFFF, "Sord Computer Corporation(0x1290)"},
}; /* pci_vid_1290[] */
-pci_id_t pci_vid_1291[] = {
+static pci_id_t const pci_vid_1291[] = {
{0x1291, 0xFFFF, 0xFFFF, 0xFFFF, "NCS Computer Italia(0x1291)"},
}; /* pci_vid_1291[] */
-pci_id_t pci_vid_1292[] = {
+static pci_id_t const pci_vid_1292[] = {
{0x1292, 0xFFFF, 0xFFFF, 0xFFFF, "Tritech Microelectronics Inc(0x1292)"},
{0x1292, 0xFC02, 0xFFFF, 0xFFFF, "Pyramid3D TR25202(0xFC02)"},
}; /* pci_vid_1292[] */
-pci_id_t pci_vid_1293[] = {
+static pci_id_t const pci_vid_1293[] = {
{0x1293, 0xFFFF, 0xFFFF, 0xFFFF, "Media Reality Technology(0x1293)"},
}; /* pci_vid_1293[] */
-pci_id_t pci_vid_1294[] = {
+static pci_id_t const pci_vid_1294[] = {
{0x1294, 0xFFFF, 0xFFFF, 0xFFFF, "Rhetorex, Inc.(0x1294)"},
}; /* pci_vid_1294[] */
-pci_id_t pci_vid_1295[] = {
+static pci_id_t const pci_vid_1295[] = {
{0x1295, 0xFFFF, 0xFFFF, 0xFFFF, "Imagenation Corporation(0x1295)"},
{0x1295, 0x0800, 0xFFFF, 0xFFFF, "PXR800(0x0800)"},
{0x1295, 0x1000, 0xFFFF, 0xFFFF, "PXD1000(0x1000)"},
}; /* pci_vid_1295[] */
-pci_id_t pci_vid_1296[] = {
+static pci_id_t const pci_vid_1296[] = {
{0x1296, 0xFFFF, 0xFFFF, 0xFFFF, "Kofax Image Products(0x1296)"},
}; /* pci_vid_1296[] */
-pci_id_t pci_vid_1297[] = {
+static pci_id_t const pci_vid_1297[] = {
{0x1297, 0xFFFF, 0xFFFF, 0xFFFF, "Holco Enterprise Co, Ltd/Shuttle Computer(0x1297)"},
+{0x1297, 0x9602, 0xFFFF, 0xFFFF, "RS780/RS880 PCI to PCI bridge (int gfx)(0x9602)"},
}; /* pci_vid_1297[] */
-pci_id_t pci_vid_1298[] = {
+static pci_id_t const pci_vid_1298[] = {
{0x1298, 0xFFFF, 0xFFFF, 0xFFFF, "Spellcaster Telecommunications Inc.(0x1298)"},
}; /* pci_vid_1298[] */
-pci_id_t pci_vid_1299[] = {
+static pci_id_t const pci_vid_1299[] = {
{0x1299, 0xFFFF, 0xFFFF, 0xFFFF, "Knowledge Technology Lab.(0x1299)"},
}; /* pci_vid_1299[] */
-pci_id_t pci_vid_129A[] = {
+static pci_id_t const pci_vid_129A[] = {
{0x129A, 0xFFFF, 0xFFFF, 0xFFFF, "VMetro, inc.(0x129A)"},
{0x129A, 0x0615, 0xFFFF, 0xFFFF, "PBT-615 PCI-X Bus Analyzer(0x0615)"},
{0x129A, 0x0715, 0xFFFF, 0xFFFF, "cPCI Bus Analyzer(0x0715)"},
@@ -19105,72 +19187,72 @@ pci_id_t pci_vid_129A[] = {
{0x129A, 0x1109, 0xFFFF, 0xFFFF, "XMC-FPGA05D, PCIe interface(0x1109)"},
}; /* pci_vid_129A[] */
-pci_id_t pci_vid_129B[] = {
+static pci_id_t const pci_vid_129B[] = {
{0x129B, 0xFFFF, 0xFFFF, 0xFFFF, "Image Access(0x129B)"},
}; /* pci_vid_129B[] */
-pci_id_t pci_vid_129C[] = {
+static pci_id_t const pci_vid_129C[] = {
{0x129C, 0xFFFF, 0xFFFF, 0xFFFF, "Jaycor(0x129C)"},
}; /* pci_vid_129C[] */
-pci_id_t pci_vid_129D[] = {
+static pci_id_t const pci_vid_129D[] = {
{0x129D, 0xFFFF, 0xFFFF, 0xFFFF, "Compcore Multimedia, Inc.(0x129D)"},
}; /* pci_vid_129D[] */
-pci_id_t pci_vid_129E[] = {
+static pci_id_t const pci_vid_129E[] = {
{0x129E, 0xFFFF, 0xFFFF, 0xFFFF, "Victor Company of Japan, Ltd.(0x129E)"},
}; /* pci_vid_129E[] */
-pci_id_t pci_vid_129F[] = {
+static pci_id_t const pci_vid_129F[] = {
{0x129F, 0xFFFF, 0xFFFF, 0xFFFF, "OEC Medical Systems, Inc.(0x129F)"},
}; /* pci_vid_129F[] */
-pci_id_t pci_vid_12A0[] = {
+static pci_id_t const pci_vid_12A0[] = {
{0x12A0, 0xFFFF, 0xFFFF, 0xFFFF, "Allen-Bradley Company(0x12A0)"},
}; /* pci_vid_12A0[] */
-pci_id_t pci_vid_12A1[] = {
+static pci_id_t const pci_vid_12A1[] = {
{0x12A1, 0xFFFF, 0xFFFF, 0xFFFF, "Simpact Associates, Inc.(0x12A1)"},
}; /* pci_vid_12A1[] */
-pci_id_t pci_vid_12A2[] = {
+static pci_id_t const pci_vid_12A2[] = {
{0x12A2, 0xFFFF, 0xFFFF, 0xFFFF, "Newgen Systems Corporation(0x12A2)"},
}; /* pci_vid_12A2[] */
-pci_id_t pci_vid_12A3[] = {
+static pci_id_t const pci_vid_12A3[] = {
{0x12A3, 0xFFFF, 0xFFFF, 0xFFFF, "Lucent Technologies(0x12A3)"},
{0x12A3, 0x8105, 0xFFFF, 0xFFFF, "T8105 H100 Digital Switch(0x8105)"},
}; /* pci_vid_12A3[] */
-pci_id_t pci_vid_12A4[] = {
+static pci_id_t const pci_vid_12A4[] = {
{0x12A4, 0xFFFF, 0xFFFF, 0xFFFF, "NTT Innovative Devices Corporation(0x12A4)"},
}; /* pci_vid_12A4[] */
-pci_id_t pci_vid_12A5[] = {
+static pci_id_t const pci_vid_12A5[] = {
{0x12A5, 0xFFFF, 0xFFFF, 0xFFFF, "Vision Dynamics Ltd.(0x12A5)"},
}; /* pci_vid_12A5[] */
-pci_id_t pci_vid_12A6[] = {
+static pci_id_t const pci_vid_12A6[] = {
{0x12A6, 0xFFFF, 0xFFFF, 0xFFFF, "Scalable Networks, Inc.(0x12A6)"},
}; /* pci_vid_12A6[] */
-pci_id_t pci_vid_12A7[] = {
+static pci_id_t const pci_vid_12A7[] = {
{0x12A7, 0xFFFF, 0xFFFF, 0xFFFF, "AMO GmbH(0x12A7)"},
}; /* pci_vid_12A7[] */
-pci_id_t pci_vid_12A8[] = {
+static pci_id_t const pci_vid_12A8[] = {
{0x12A8, 0xFFFF, 0xFFFF, 0xFFFF, "News Datacom(0x12A8)"},
}; /* pci_vid_12A8[] */
-pci_id_t pci_vid_12A9[] = {
+static pci_id_t const pci_vid_12A9[] = {
{0x12A9, 0xFFFF, 0xFFFF, 0xFFFF, "Xiotech Corporation(0x12A9)"},
}; /* pci_vid_12A9[] */
-pci_id_t pci_vid_12AA[] = {
+static pci_id_t const pci_vid_12AA[] = {
{0x12AA, 0xFFFF, 0xFFFF, 0xFFFF, "SDL Communications, Inc.(0x12AA)"},
}; /* pci_vid_12AA[] */
-pci_id_t pci_vid_12AB[] = {
+static pci_id_t const pci_vid_12AB[] = {
{0x12AB, 0xFFFF, 0xFFFF, 0xFFFF, "YUAN High-Tech Development Co., Ltd.(0x12AB)"},
{0x12AB, 0x0000, 0xFFFF, 0xFFFF, "MPG160/Kuroutoshikou ITVC15-STVLP(0x0000)"},
{0x12AB, 0x0002, 0xFFFF, 0xFFFF, "AU8830 [Vortex2] Based Sound Card With A3D Support(0x0002)"},
@@ -19182,15 +19264,15 @@ pci_id_t pci_vid_12AB[] = {
{0x12AB, 0xFFFF, 0xFFFF, 0xFFFF, "MPG600/Kuroutoshikou ITVC16-STVLP(0xFFFF)"},
}; /* pci_vid_12AB[] */
-pci_id_t pci_vid_12AC[] = {
+static pci_id_t const pci_vid_12AC[] = {
{0x12AC, 0xFFFF, 0xFFFF, 0xFFFF, "Measurex Corporation(0x12AC)"},
}; /* pci_vid_12AC[] */
-pci_id_t pci_vid_12AD[] = {
+static pci_id_t const pci_vid_12AD[] = {
{0x12AD, 0xFFFF, 0xFFFF, 0xFFFF, "Multidata GmbH(0x12AD)"},
}; /* pci_vid_12AD[] */
-pci_id_t pci_vid_12AE[] = {
+static pci_id_t const pci_vid_12AE[] = {
{0x12AE, 0xFFFF, 0xFFFF, 0xFFFF, "Alteon Networks Inc.(0x12AE)"},
{0x12AE, 0x0001, 0xFFFF, 0xFFFF, "AceNIC Gigabit Ethernet(0x0001)"},
{0x12AE, 0x0001, 0x1014, 0x0104, "Gigabit Ethernet-SX PCI Adapter(0x1014-0x0104)"},
@@ -19201,47 +19283,47 @@ pci_id_t pci_vid_12AE[] = {
{0x12AE, 0x00FA, 0xFFFF, 0xFFFF, "Farallon PN9100-T Gigabit Ethernet(0x00FA)"},
}; /* pci_vid_12AE[] */
-pci_id_t pci_vid_12AF[] = {
+static pci_id_t const pci_vid_12AF[] = {
{0x12AF, 0xFFFF, 0xFFFF, 0xFFFF, "TDK USA Corp(0x12AF)"},
}; /* pci_vid_12AF[] */
-pci_id_t pci_vid_12B0[] = {
+static pci_id_t const pci_vid_12B0[] = {
{0x12B0, 0xFFFF, 0xFFFF, 0xFFFF, "Jorge Scientific Corp(0x12B0)"},
}; /* pci_vid_12B0[] */
-pci_id_t pci_vid_12B1[] = {
+static pci_id_t const pci_vid_12B1[] = {
{0x12B1, 0xFFFF, 0xFFFF, 0xFFFF, "GammaLink(0x12B1)"},
}; /* pci_vid_12B1[] */
-pci_id_t pci_vid_12B2[] = {
+static pci_id_t const pci_vid_12B2[] = {
{0x12B2, 0xFFFF, 0xFFFF, 0xFFFF, "General Signal Networks(0x12B2)"},
}; /* pci_vid_12B2[] */
-pci_id_t pci_vid_12B3[] = {
+static pci_id_t const pci_vid_12B3[] = {
{0x12B3, 0xFFFF, 0xFFFF, 0xFFFF, "Inter-Face Co Ltd(0x12B3)"},
}; /* pci_vid_12B3[] */
-pci_id_t pci_vid_12B4[] = {
+static pci_id_t const pci_vid_12B4[] = {
{0x12B4, 0xFFFF, 0xFFFF, 0xFFFF, "FutureTel Inc(0x12B4)"},
}; /* pci_vid_12B4[] */
-pci_id_t pci_vid_12B5[] = {
+static pci_id_t const pci_vid_12B5[] = {
{0x12B5, 0xFFFF, 0xFFFF, 0xFFFF, "Granite Systems Inc.(0x12B5)"},
}; /* pci_vid_12B5[] */
-pci_id_t pci_vid_12B6[] = {
+static pci_id_t const pci_vid_12B6[] = {
{0x12B6, 0xFFFF, 0xFFFF, 0xFFFF, "Natural Microsystems(0x12B6)"},
}; /* pci_vid_12B6[] */
-pci_id_t pci_vid_12B7[] = {
+static pci_id_t const pci_vid_12B7[] = {
{0x12B7, 0xFFFF, 0xFFFF, 0xFFFF, "Cognex Corporation(0x12B7)"},
}; /* pci_vid_12B7[] */
-pci_id_t pci_vid_12B8[] = {
+static pci_id_t const pci_vid_12B8[] = {
{0x12B8, 0xFFFF, 0xFFFF, 0xFFFF, "Korg(0x12B8)"},
}; /* pci_vid_12B8[] */
-pci_id_t pci_vid_12B9[] = {
+static pci_id_t const pci_vid_12B9[] = {
{0x12B9, 0xFFFF, 0xFFFF, 0xFFFF, "3Com Corp, Modem Division(0x12B9)"},
{0x12B9, 0x1006, 0xFFFF, 0xFFFF, "WinModem(0x1006)"},
{0x12B9, 0x1006, 0x12B9, 0x005C, "USR 56k Internal Voice WinModem (Model 3472)(0x12B9-0x005C)"},
@@ -19266,52 +19348,52 @@ pci_id_t pci_vid_12B9[] = {
{0x12B9, 0x1008, 0x12B9, 0xBABA, "USR 56K Internal Voice Modem 3CP3298-DEL (Model 5601) [Hawk](0x12B9-0xBABA)"},
}; /* pci_vid_12B9[] */
-pci_id_t pci_vid_12BA[] = {
+static pci_id_t const pci_vid_12BA[] = {
{0x12BA, 0xFFFF, 0xFFFF, 0xFFFF, "BittWare, Inc.(0x12BA)"},
}; /* pci_vid_12BA[] */
-pci_id_t pci_vid_12BB[] = {
+static pci_id_t const pci_vid_12BB[] = {
{0x12BB, 0xFFFF, 0xFFFF, 0xFFFF, "Nippon Unisoft Corporation(0x12BB)"},
}; /* pci_vid_12BB[] */
-pci_id_t pci_vid_12BC[] = {
+static pci_id_t const pci_vid_12BC[] = {
{0x12BC, 0xFFFF, 0xFFFF, 0xFFFF, "Array Microsystems(0x12BC)"},
}; /* pci_vid_12BC[] */
-pci_id_t pci_vid_12BD[] = {
+static pci_id_t const pci_vid_12BD[] = {
{0x12BD, 0xFFFF, 0xFFFF, 0xFFFF, "Computerm Corp.(0x12BD)"},
}; /* pci_vid_12BD[] */
-pci_id_t pci_vid_12BE[] = {
+static pci_id_t const pci_vid_12BE[] = {
{0x12BE, 0xFFFF, 0xFFFF, 0xFFFF, "Anchor Chips Inc.(0x12BE)"},
{0x12BE, 0x3041, 0xFFFF, 0xFFFF, "AN3041Q CO-MEM(0x3041)"},
{0x12BE, 0x3042, 0xFFFF, 0xFFFF, "AN3042Q CO-MEM Lite(0x3042)"},
{0x12BE, 0x3042, 0x12BE, 0x3042, "Anchor Chips Lite Evaluation Board(0x12BE-0x3042)"},
}; /* pci_vid_12BE[] */
-pci_id_t pci_vid_12BF[] = {
+static pci_id_t const pci_vid_12BF[] = {
{0x12BF, 0xFFFF, 0xFFFF, 0xFFFF, "Fujifilm Microdevices(0x12BF)"},
}; /* pci_vid_12BF[] */
-pci_id_t pci_vid_12C0[] = {
+static pci_id_t const pci_vid_12C0[] = {
{0x12C0, 0xFFFF, 0xFFFF, 0xFFFF, "Infimed(0x12C0)"},
}; /* pci_vid_12C0[] */
-pci_id_t pci_vid_12C1[] = {
+static pci_id_t const pci_vid_12C1[] = {
{0x12C1, 0xFFFF, 0xFFFF, 0xFFFF, "GMM Research Corp(0x12C1)"},
}; /* pci_vid_12C1[] */
-pci_id_t pci_vid_12C2[] = {
+static pci_id_t const pci_vid_12C2[] = {
{0x12C2, 0xFFFF, 0xFFFF, 0xFFFF, "Mentec Limited(0x12C2)"},
}; /* pci_vid_12C2[] */
-pci_id_t pci_vid_12C3[] = {
+static pci_id_t const pci_vid_12C3[] = {
{0x12C3, 0xFFFF, 0xFFFF, 0xFFFF, "Holtek Microelectronics Inc(0x12C3)"},
{0x12C3, 0x0058, 0xFFFF, 0xFFFF, "PCI NE2K Ethernet(0x0058)"},
{0x12C3, 0x5598, 0xFFFF, 0xFFFF, "PCI NE2K Ethernet(0x5598)"},
}; /* pci_vid_12C3[] */
-pci_id_t pci_vid_12C4[] = {
+static pci_id_t const pci_vid_12C4[] = {
{0x12C4, 0xFFFF, 0xFFFF, 0xFFFF, "Connect Tech Inc(0x12C4)"},
{0x12C4, 0x0001, 0xFFFF, 0xFFFF, "Blue HEAT/PCI 8 (RS232/CL/RJ11)(0x0001)"},
{0x12C4, 0x0002, 0xFFFF, 0xFFFF, "Blue HEAT/PCI 4 (RS232)(0x0002)"},
@@ -19343,7 +19425,7 @@ pci_id_t pci_vid_12C4[] = {
{0x12C4, 0x0332, 0xFFFF, 0xFFFF, "CTI PCI UART 8 (RS485)(0x0332)"},
}; /* pci_vid_12C4[] */
-pci_id_t pci_vid_12C5[] = {
+static pci_id_t const pci_vid_12C5[] = {
{0x12C5, 0xFFFF, 0xFFFF, 0xFFFF, "Picture Elements Incorporated(0x12C5)"},
{0x12C5, 0x007E, 0xFFFF, 0xFFFF, "Imaging/Scanning Subsystem Engine(0x007E)"},
{0x12C5, 0x007F, 0xFFFF, 0xFFFF, "Imaging/Scanning Subsystem Engine(0x007F)"},
@@ -19352,11 +19434,11 @@ pci_id_t pci_vid_12C5[] = {
{0x12C5, 0x0086, 0xFFFF, 0xFFFF, "THR2 Multi-scale Thresholder(0x0086)"},
}; /* pci_vid_12C5[] */
-pci_id_t pci_vid_12C6[] = {
+static pci_id_t const pci_vid_12C6[] = {
{0x12C6, 0xFFFF, 0xFFFF, 0xFFFF, "Mitani Corporation(0x12C6)"},
}; /* pci_vid_12C6[] */
-pci_id_t pci_vid_12C7[] = {
+static pci_id_t const pci_vid_12C7[] = {
{0x12C7, 0xFFFF, 0xFFFF, 0xFFFF, "Dialogic Corp(0x12C7)"},
{0x12C7, 0x0546, 0xFFFF, 0xFFFF, "Springware D/120JCT-LS(0x0546)"},
{0x12C7, 0x0647, 0xFFFF, 0xFFFF, "Springware D/240JCT-T1(0x0647)"},
@@ -19364,54 +19446,55 @@ pci_id_t pci_vid_12C7[] = {
{0x12C7, 0x0685, 0xFFFF, 0xFFFF, "Springware D/480JCT-2T1(0x0685)"},
}; /* pci_vid_12C7[] */
-pci_id_t pci_vid_12C8[] = {
+static pci_id_t const pci_vid_12C8[] = {
{0x12C8, 0xFFFF, 0xFFFF, 0xFFFF, "G Force Co, Ltd(0x12C8)"},
}; /* pci_vid_12C8[] */
-pci_id_t pci_vid_12C9[] = {
+static pci_id_t const pci_vid_12C9[] = {
{0x12C9, 0xFFFF, 0xFFFF, 0xFFFF, "Gigi Operations(0x12C9)"},
}; /* pci_vid_12C9[] */
-pci_id_t pci_vid_12CA[] = {
+static pci_id_t const pci_vid_12CA[] = {
{0x12CA, 0xFFFF, 0xFFFF, 0xFFFF, "Integrated Computing Engines(0x12CA)"},
}; /* pci_vid_12CA[] */
-pci_id_t pci_vid_12CB[] = {
+static pci_id_t const pci_vid_12CB[] = {
{0x12CB, 0xFFFF, 0xFFFF, 0xFFFF, "Antex Electronics Corporation(0x12CB)"},
{0x12CB, 0x0027, 0xFFFF, 0xFFFF, "SC4 (StudioCard)(0x0027)"},
{0x12CB, 0x002E, 0xFFFF, 0xFFFF, "StudioCard 2000(0x002E)"},
}; /* pci_vid_12CB[] */
-pci_id_t pci_vid_12CC[] = {
+static pci_id_t const pci_vid_12CC[] = {
{0x12CC, 0xFFFF, 0xFFFF, 0xFFFF, "Pluto Technologies International(0x12CC)"},
}; /* pci_vid_12CC[] */
-pci_id_t pci_vid_12CD[] = {
+static pci_id_t const pci_vid_12CD[] = {
{0x12CD, 0xFFFF, 0xFFFF, 0xFFFF, "Aims Lab(0x12CD)"},
}; /* pci_vid_12CD[] */
-pci_id_t pci_vid_12CE[] = {
+static pci_id_t const pci_vid_12CE[] = {
{0x12CE, 0xFFFF, 0xFFFF, 0xFFFF, "Netspeed Inc.(0x12CE)"},
}; /* pci_vid_12CE[] */
-pci_id_t pci_vid_12CF[] = {
+static pci_id_t const pci_vid_12CF[] = {
{0x12CF, 0xFFFF, 0xFFFF, 0xFFFF, "Prophet Systems, Inc.(0x12CF)"},
}; /* pci_vid_12CF[] */
-pci_id_t pci_vid_12D0[] = {
+static pci_id_t const pci_vid_12D0[] = {
{0x12D0, 0xFFFF, 0xFFFF, 0xFFFF, "GDE Systems, Inc.(0x12D0)"},
}; /* pci_vid_12D0[] */
-pci_id_t pci_vid_12D1[] = {
+static pci_id_t const pci_vid_12D1[] = {
{0x12D1, 0xFFFF, 0xFFFF, 0xFFFF, "PSITech(0x12D1)"},
}; /* pci_vid_12D1[] */
-pci_id_t pci_vid_12D2[] = {
+static pci_id_t const pci_vid_12D2[] = {
{0x12D2, 0xFFFF, 0xFFFF, 0xFFFF, "NVidia / SGS Thomson (Joint Venture)(0x12D2)"},
{0x12D2, 0x0008, 0xFFFF, 0xFFFF, "NV1(0x0008)"},
{0x12D2, 0x0009, 0xFFFF, 0xFFFF, "DAC64(0x0009)"},
{0x12D2, 0x0018, 0xFFFF, 0xFFFF, "Riva128(0x0018)"},
{0x12D2, 0x0018, 0x1048, 0x0C10, "VICTORY Erazor(0x1048-0x0C10)"},
+{0x12D2, 0x0018, 0x1048, 0x0C15, "VICTORY Erazor LT-8(0x1048-0x0C15)"},
{0x12D2, 0x0018, 0x107B, 0x8030, "STB Velocity 128(0x107B-0x8030)"},
{0x12D2, 0x0018, 0x1092, 0x0350, "Viper V330(0x1092-0x0350)"},
{0x12D2, 0x0018, 0x1092, 0x1092, "Viper V330(0x1092-0x1092)"},
@@ -19437,42 +19520,43 @@ pci_id_t pci_vid_12D2[] = {
{0x12D2, 0x00A0, 0xFFFF, 0xFFFF, "ITNT2(0x00A0)"},
}; /* pci_vid_12D2[] */
-pci_id_t pci_vid_12D3[] = {
+static pci_id_t const pci_vid_12D3[] = {
{0x12D3, 0xFFFF, 0xFFFF, 0xFFFF, "Vingmed Sound A/S(0x12D3)"},
}; /* pci_vid_12D3[] */
-pci_id_t pci_vid_12D4[] = {
+static pci_id_t const pci_vid_12D4[] = {
{0x12D4, 0xFFFF, 0xFFFF, 0xFFFF, "Ulticom (Formerly DGM&S)(0x12D4)"},
{0x12D4, 0x0200, 0xFFFF, 0xFFFF, "T1 Card(0x0200)"},
}; /* pci_vid_12D4[] */
-pci_id_t pci_vid_12D5[] = {
+static pci_id_t const pci_vid_12D5[] = {
{0x12D5, 0xFFFF, 0xFFFF, 0xFFFF, "Equator Technologies Inc(0x12D5)"},
{0x12D5, 0x0003, 0xFFFF, 0xFFFF, "BSP16(0x0003)"},
{0x12D5, 0x1000, 0xFFFF, 0xFFFF, "BSP15(0x1000)"},
}; /* pci_vid_12D5[] */
-pci_id_t pci_vid_12D6[] = {
+static pci_id_t const pci_vid_12D6[] = {
{0x12D6, 0xFFFF, 0xFFFF, 0xFFFF, "Analogic Corp(0x12D6)"},
}; /* pci_vid_12D6[] */
-pci_id_t pci_vid_12D7[] = {
+static pci_id_t const pci_vid_12D7[] = {
{0x12D7, 0xFFFF, 0xFFFF, 0xFFFF, "Biotronic SRL(0x12D7)"},
}; /* pci_vid_12D7[] */
-pci_id_t pci_vid_12D8[] = {
+static pci_id_t const pci_vid_12D8[] = {
{0x12D8, 0xFFFF, 0xFFFF, 0xFFFF, "Pericom Semiconductor(0x12D8)"},
{0x12D8, 0x01A7, 0xFFFF, 0xFFFF, "7C21P100 2-port PCI-X to PCI-X Bridge(0x01A7)"},
{0x12D8, 0x0303, 0xFFFF, 0xFFFF, "PCI Express Switch 3-3(0x0303)"},
{0x12D8, 0x0508, 0xFFFF, 0xFFFF, "PI7C9X20508GP PCI Express Switch 5Port-8Lane(0x0508)"},
{0x12D8, 0x2304, 0xFFFF, 0xFFFF, "PI7C9X2G304 EL/SL PCIe2 3-Port/4-Lane Packet Switch(0x2304)"},
-{0x12D8, 0x2308, 0xFFFF, 0xFFFF, "PI7C9X2G308GP 8-lane PCI Express 2.0 Switch with 3 PCI Express ports(0x2308)"},
+{0x12D8, 0x2308, 0xFFFF, 0xFFFF, "PI7C9X2G308GP 3-Ports/8-lane PCIe 2.0 Switch(0x2308)"},
{0x12D8, 0x2404, 0xFFFF, 0xFFFF, "PI7C9X2G404 EL/SL PCIe2 4-Port/4-Lane Packet Switch(0x2404)"},
{0x12D8, 0x2608, 0xFFFF, 0xFFFF, "PI7C9X2G608GP PCIe2 6-Port/8-Lane Packet Switch(0x2608)"},
{0x12D8, 0x2608, 0xEA50, 0xCC10, "RXi2-BP(0xEA50-0xCC10)"},
-{0x12D8, 0x400A, 0xFFFF, 0xFFFF, "PI7C9X442SL PCI Express Bridge Port(0x400A)"},
-{0x12D8, 0x400E, 0xFFFF, 0xFFFF, "PI7C9X442SL USB OHCI Controller(0x400E)"},
-{0x12D8, 0x400F, 0xFFFF, 0xFFFF, "PI7C9X442SL USB EHCI Controller(0x400F)"},
+{0x12D8, 0x400A, 0xFFFF, 0xFFFF, "PI7C9X442SL PCIe Bridge Port(0x400A)"},
+{0x12D8, 0x400C, 0xFFFF, 0xFFFF, "PI7C9X440SL PCIe Bridge Port(0x400C)"},
+{0x12D8, 0x400E, 0xFFFF, 0xFFFF, "PI7C9X440SL/PI7C9X442SL USB OHCI Controller(0x400E)"},
+{0x12D8, 0x400F, 0xFFFF, 0xFFFF, "PI7C9X440SL/PI7C9X442SL USB EHCI Controller(0x400F)"},
{0x12D8, 0x71E2, 0xFFFF, 0xFFFF, "PI7C7300A/PI7C7300D PCI-to-PCI Bridge(0x71E2)"},
{0x12D8, 0x71E3, 0xFFFF, 0xFFFF, "PI7C7300A/PI7C7300D PCI-to-PCI Bridge (Secondary Bus 2)(0x71E3)"},
{0x12D8, 0x8140, 0xFFFF, 0xFFFF, "PI7C8140A PCI-to-PCI Bridge(0x8140)"},
@@ -19481,13 +19565,15 @@ pci_id_t pci_vid_12D8[] = {
{0x12D8, 0x8152, 0xFFFF, 0xFFFF, "PI7C8152A/PI7C8152B/PI7C8152BI PCI-to-PCI Bridge(0x8152)"},
{0x12D8, 0x8154, 0xFFFF, 0xFFFF, "PI7C8154A/PI7C8154B/PI7C8154BI PCI-to-PCI Bridge(0x8154)"},
{0x12D8, 0x8619, 0xFFFF, 0xFFFF, "PI7C9X2G1616PR PCIe2 16-Port/16-Lane Packet Switch(0x8619)"},
-{0x12D8, 0xE110, 0xFFFF, 0xFFFF, "PI7C9X110 PCI Express to PCI bridge(0xE110)"},
+{0x12D8, 0xE110, 0xFFFF, 0xFFFF, "PI7C9X110 PCIe- to-PCI bridge(0xE110)"},
{0x12D8, 0xE110, 0x1775, 0x11CC, "CC11/CL11 CompactPCI Bridge(0x1775-0x11CC)"},
{0x12D8, 0xE111, 0xFFFF, 0xFFFF, "PI7C9X111SL PCIe-to-PCI Reversible Bridge(0xE111)"},
+{0x12D8, 0xE112, 0xFFFF, 0xFFFF, "PI7C9X112SL PCIe-to-PCI Bridge(0xE112)"},
+{0x12D8, 0xE113, 0xFFFF, 0xFFFF, "PI7C9X113SL/PI7C9X118SL PCIe-to-PCI Bridge(0xE113)"},
{0x12D8, 0xE130, 0xFFFF, 0xFFFF, "PCI Express to PCI-XPI7C9X130 PCI-X Bridge(0xE130)"},
}; /* pci_vid_12D8[] */
-pci_id_t pci_vid_12D9[] = {
+static pci_id_t const pci_vid_12D9[] = {
{0x12D9, 0xFFFF, 0xFFFF, 0xFFFF, "Aculab PLC(0x12D9)"},
{0x12D9, 0x0002, 0xFFFF, 0xFFFF, "PCI Prosody(0x0002)"},
{0x12D9, 0x0004, 0xFFFF, 0xFFFF, "cPCI Prosody(0x0004)"},
@@ -19497,79 +19583,79 @@ pci_id_t pci_vid_12D9[] = {
{0x12D9, 0x1078, 0x12D9, 0x000E, "Prosody X cPCI(0x12D9-0x000E)"},
}; /* pci_vid_12D9[] */
-pci_id_t pci_vid_12DA[] = {
+static pci_id_t const pci_vid_12DA[] = {
{0x12DA, 0xFFFF, 0xFFFF, 0xFFFF, "True Time Inc.(0x12DA)"},
}; /* pci_vid_12DA[] */
-pci_id_t pci_vid_12DB[] = {
+static pci_id_t const pci_vid_12DB[] = {
{0x12DB, 0xFFFF, 0xFFFF, 0xFFFF, "Annapolis Micro Systems, Inc(0x12DB)"},
}; /* pci_vid_12DB[] */
-pci_id_t pci_vid_12DC[] = {
+static pci_id_t const pci_vid_12DC[] = {
{0x12DC, 0xFFFF, 0xFFFF, 0xFFFF, "Symicron Computer Communication Ltd.(0x12DC)"},
}; /* pci_vid_12DC[] */
-pci_id_t pci_vid_12DD[] = {
+static pci_id_t const pci_vid_12DD[] = {
{0x12DD, 0xFFFF, 0xFFFF, 0xFFFF, "Management Graphics(0x12DD)"},
}; /* pci_vid_12DD[] */
-pci_id_t pci_vid_12DE[] = {
+static pci_id_t const pci_vid_12DE[] = {
{0x12DE, 0xFFFF, 0xFFFF, 0xFFFF, "Rainbow Technologies(0x12DE)"},
{0x12DE, 0x0200, 0xFFFF, 0xFFFF, "CryptoSwift CS200(0x0200)"},
}; /* pci_vid_12DE[] */
-pci_id_t pci_vid_12DF[] = {
+static pci_id_t const pci_vid_12DF[] = {
{0x12DF, 0xFFFF, 0xFFFF, 0xFFFF, "SBS Technologies Inc(0x12DF)"},
}; /* pci_vid_12DF[] */
-pci_id_t pci_vid_12E0[] = {
+static pci_id_t const pci_vid_12E0[] = {
{0x12E0, 0xFFFF, 0xFFFF, 0xFFFF, "Chase Research(0x12E0)"},
{0x12E0, 0x0010, 0xFFFF, 0xFFFF, "ST16C654 Quad UART(0x0010)"},
{0x12E0, 0x0020, 0xFFFF, 0xFFFF, "ST16C654 Quad UART(0x0020)"},
{0x12E0, 0x0030, 0xFFFF, 0xFFFF, "ST16C654 Quad UART(0x0030)"},
}; /* pci_vid_12E0[] */
-pci_id_t pci_vid_12E1[] = {
+static pci_id_t const pci_vid_12E1[] = {
{0x12E1, 0xFFFF, 0xFFFF, 0xFFFF, "Nintendo Co, Ltd(0x12E1)"},
}; /* pci_vid_12E1[] */
-pci_id_t pci_vid_12E2[] = {
+static pci_id_t const pci_vid_12E2[] = {
{0x12E2, 0xFFFF, 0xFFFF, 0xFFFF, "Datum Inc. Bancomm-Timing Division(0x12E2)"},
}; /* pci_vid_12E2[] */
-pci_id_t pci_vid_12E3[] = {
+static pci_id_t const pci_vid_12E3[] = {
{0x12E3, 0xFFFF, 0xFFFF, 0xFFFF, "Imation Corp - Medical Imaging Systems(0x12E3)"},
}; /* pci_vid_12E3[] */
-pci_id_t pci_vid_12E4[] = {
+static pci_id_t const pci_vid_12E4[] = {
{0x12E4, 0xFFFF, 0xFFFF, 0xFFFF, "Brooktrout Technology Inc(0x12E4)"},
}; /* pci_vid_12E4[] */
-pci_id_t pci_vid_12E5[] = {
+static pci_id_t const pci_vid_12E5[] = {
{0x12E5, 0xFFFF, 0xFFFF, 0xFFFF, "Apex Semiconductor Inc(0x12E5)"},
}; /* pci_vid_12E5[] */
-pci_id_t pci_vid_12E6[] = {
+static pci_id_t const pci_vid_12E6[] = {
{0x12E6, 0xFFFF, 0xFFFF, 0xFFFF, "Cirel Systems(0x12E6)"},
}; /* pci_vid_12E6[] */
-pci_id_t pci_vid_12E7[] = {
+static pci_id_t const pci_vid_12E7[] = {
{0x12E7, 0xFFFF, 0xFFFF, 0xFFFF, "Sunsgroup Corporation(0x12E7)"},
}; /* pci_vid_12E7[] */
-pci_id_t pci_vid_12E8[] = {
+static pci_id_t const pci_vid_12E8[] = {
{0x12E8, 0xFFFF, 0xFFFF, 0xFFFF, "Crisc Corp(0x12E8)"},
}; /* pci_vid_12E8[] */
-pci_id_t pci_vid_12E9[] = {
+static pci_id_t const pci_vid_12E9[] = {
{0x12E9, 0xFFFF, 0xFFFF, 0xFFFF, "GE Spacenet(0x12E9)"},
}; /* pci_vid_12E9[] */
-pci_id_t pci_vid_12EA[] = {
+static pci_id_t const pci_vid_12EA[] = {
{0x12EA, 0xFFFF, 0xFFFF, 0xFFFF, "Zuken(0x12EA)"},
}; /* pci_vid_12EA[] */
-pci_id_t pci_vid_12EB[] = {
+static pci_id_t const pci_vid_12EB[] = {
{0x12EB, 0xFFFF, 0xFFFF, 0xFFFF, "Aureal Semiconductor(0x12EB)"},
{0x12EB, 0x0001, 0xFFFF, 0xFFFF, "Vortex 1(0x0001)"},
{0x12EB, 0x0001, 0x0000, 0x0300, "Terasound A3D PCI(0x0000-0x0300)"},
@@ -19608,64 +19694,64 @@ pci_id_t pci_vid_12EB[] = {
{0x12EB, 0x8803, 0x12EB, 0x8803, "Vortex 56k Software Modem(0x12EB-0x8803)"},
}; /* pci_vid_12EB[] */
-pci_id_t pci_vid_12EC[] = {
+static pci_id_t const pci_vid_12EC[] = {
{0x12EC, 0xFFFF, 0xFFFF, 0xFFFF, "3A International, Inc.(0x12EC)"},
}; /* pci_vid_12EC[] */
-pci_id_t pci_vid_12ED[] = {
+static pci_id_t const pci_vid_12ED[] = {
{0x12ED, 0xFFFF, 0xFFFF, 0xFFFF, "Optivision Inc.(0x12ED)"},
}; /* pci_vid_12ED[] */
-pci_id_t pci_vid_12EE[] = {
+static pci_id_t const pci_vid_12EE[] = {
{0x12EE, 0xFFFF, 0xFFFF, 0xFFFF, "Orange Micro(0x12EE)"},
}; /* pci_vid_12EE[] */
-pci_id_t pci_vid_12EF[] = {
+static pci_id_t const pci_vid_12EF[] = {
{0x12EF, 0xFFFF, 0xFFFF, 0xFFFF, "Vienna Systems(0x12EF)"},
}; /* pci_vid_12EF[] */
-pci_id_t pci_vid_12F0[] = {
+static pci_id_t const pci_vid_12F0[] = {
{0x12F0, 0xFFFF, 0xFFFF, 0xFFFF, "Pentek(0x12F0)"},
}; /* pci_vid_12F0[] */
-pci_id_t pci_vid_12F1[] = {
+static pci_id_t const pci_vid_12F1[] = {
{0x12F1, 0xFFFF, 0xFFFF, 0xFFFF, "Sorenson Vision Inc(0x12F1)"},
}; /* pci_vid_12F1[] */
-pci_id_t pci_vid_12F2[] = {
+static pci_id_t const pci_vid_12F2[] = {
{0x12F2, 0xFFFF, 0xFFFF, 0xFFFF, "Gammagraphx, Inc.(0x12F2)"},
}; /* pci_vid_12F2[] */
-pci_id_t pci_vid_12F3[] = {
+static pci_id_t const pci_vid_12F3[] = {
{0x12F3, 0xFFFF, 0xFFFF, 0xFFFF, "Radstone Technology(0x12F3)"},
}; /* pci_vid_12F3[] */
-pci_id_t pci_vid_12F4[] = {
+static pci_id_t const pci_vid_12F4[] = {
{0x12F4, 0xFFFF, 0xFFFF, 0xFFFF, "Megatel(0x12F4)"},
}; /* pci_vid_12F4[] */
-pci_id_t pci_vid_12F5[] = {
+static pci_id_t const pci_vid_12F5[] = {
{0x12F5, 0xFFFF, 0xFFFF, 0xFFFF, "Forks(0x12F5)"},
}; /* pci_vid_12F5[] */
-pci_id_t pci_vid_12F6[] = {
+static pci_id_t const pci_vid_12F6[] = {
{0x12F6, 0xFFFF, 0xFFFF, 0xFFFF, "Dawson France(0x12F6)"},
}; /* pci_vid_12F6[] */
-pci_id_t pci_vid_12F7[] = {
+static pci_id_t const pci_vid_12F7[] = {
{0x12F7, 0xFFFF, 0xFFFF, 0xFFFF, "Cognex(0x12F7)"},
}; /* pci_vid_12F7[] */
-pci_id_t pci_vid_12F8[] = {
+static pci_id_t const pci_vid_12F8[] = {
{0x12F8, 0xFFFF, 0xFFFF, 0xFFFF, "Electronic Design GmbH(0x12F8)"},
{0x12F8, 0x0002, 0xFFFF, 0xFFFF, "VideoMaker(0x0002)"},
}; /* pci_vid_12F8[] */
-pci_id_t pci_vid_12F9[] = {
+static pci_id_t const pci_vid_12F9[] = {
{0x12F9, 0xFFFF, 0xFFFF, 0xFFFF, "Four Fold Ltd(0x12F9)"},
}; /* pci_vid_12F9[] */
-pci_id_t pci_vid_12FB[] = {
+static pci_id_t const pci_vid_12FB[] = {
{0x12FB, 0xFFFF, 0xFFFF, 0xFFFF, "Spectrum Signal Processing(0x12FB)"},
{0x12FB, 0x0001, 0xFFFF, 0xFFFF, "PMC-MAI(0x0001)"},
{0x12FB, 0x00F5, 0xFFFF, 0xFFFF, "F5 Dakar(0x00F5)"},
@@ -19683,48 +19769,48 @@ pci_id_t pci_vid_12FB[] = {
{0x12FB, 0xFA01, 0xFFFF, 0xFFFF, "ePMC-FPGA(0xFA01)"},
}; /* pci_vid_12FB[] */
-pci_id_t pci_vid_12FC[] = {
+static pci_id_t const pci_vid_12FC[] = {
{0x12FC, 0xFFFF, 0xFFFF, 0xFFFF, "Capital Equipment Corp(0x12FC)"},
}; /* pci_vid_12FC[] */
-pci_id_t pci_vid_12FD[] = {
+static pci_id_t const pci_vid_12FD[] = {
{0x12FD, 0xFFFF, 0xFFFF, 0xFFFF, "I2S(0x12FD)"},
}; /* pci_vid_12FD[] */
-pci_id_t pci_vid_12FE[] = {
+static pci_id_t const pci_vid_12FE[] = {
{0x12FE, 0xFFFF, 0xFFFF, 0xFFFF, "ESD Electronic System Design GmbH(0x12FE)"},
}; /* pci_vid_12FE[] */
-pci_id_t pci_vid_12FF[] = {
+static pci_id_t const pci_vid_12FF[] = {
{0x12FF, 0xFFFF, 0xFFFF, 0xFFFF, "Lexicon(0x12FF)"},
}; /* pci_vid_12FF[] */
-pci_id_t pci_vid_1300[] = {
+static pci_id_t const pci_vid_1300[] = {
{0x1300, 0xFFFF, 0xFFFF, 0xFFFF, "Harman International Industries Inc(0x1300)"},
}; /* pci_vid_1300[] */
-pci_id_t pci_vid_1302[] = {
+static pci_id_t const pci_vid_1302[] = {
{0x1302, 0xFFFF, 0xFFFF, 0xFFFF, "Computer Sciences Corp(0x1302)"},
}; /* pci_vid_1302[] */
-pci_id_t pci_vid_1303[] = {
+static pci_id_t const pci_vid_1303[] = {
{0x1303, 0xFFFF, 0xFFFF, 0xFFFF, "Innovative Integration(0x1303)"},
{0x1303, 0x0030, 0xFFFF, 0xFFFF, "X3-SDF 4-channel XMC acquisition board(0x0030)"},
}; /* pci_vid_1303[] */
-pci_id_t pci_vid_1304[] = {
+static pci_id_t const pci_vid_1304[] = {
{0x1304, 0xFFFF, 0xFFFF, 0xFFFF, "Juniper Networks(0x1304)"},
}; /* pci_vid_1304[] */
-pci_id_t pci_vid_1305[] = {
+static pci_id_t const pci_vid_1305[] = {
{0x1305, 0xFFFF, 0xFFFF, 0xFFFF, "Netphone, Inc(0x1305)"},
}; /* pci_vid_1305[] */
-pci_id_t pci_vid_1306[] = {
+static pci_id_t const pci_vid_1306[] = {
{0x1306, 0xFFFF, 0xFFFF, 0xFFFF, "Duet Technologies(0x1306)"},
}; /* pci_vid_1306[] */
-pci_id_t pci_vid_1307[] = {
+static pci_id_t const pci_vid_1307[] = {
{0x1307, 0xFFFF, 0xFFFF, 0xFFFF, "Measurement Computing(0x1307)"},
{0x1307, 0x0001, 0xFFFF, 0xFFFF, "PCI-DAS1602/16(0x0001)"},
{0x1307, 0x000B, 0xFFFF, 0xFFFF, "PCI-DIO48H(0x000B)"},
@@ -19804,65 +19890,65 @@ pci_id_t pci_vid_1307[] = {
{0x1307, 0x0115, 0xFFFF, 0xFFFF, "PCIe-DAS1602/16(0x0115)"},
}; /* pci_vid_1307[] */
-pci_id_t pci_vid_1308[] = {
+static pci_id_t const pci_vid_1308[] = {
{0x1308, 0xFFFF, 0xFFFF, 0xFFFF, "Jato Technologies Inc.(0x1308)"},
{0x1308, 0x0001, 0xFFFF, 0xFFFF, "NetCelerator Adapter(0x0001)"},
{0x1308, 0x0001, 0x1308, 0x0001, "NetCelerator Adapter(0x1308-0x0001)"},
}; /* pci_vid_1308[] */
-pci_id_t pci_vid_1309[] = {
+static pci_id_t const pci_vid_1309[] = {
{0x1309, 0xFFFF, 0xFFFF, 0xFFFF, "AB Semiconductor Ltd(0x1309)"},
}; /* pci_vid_1309[] */
-pci_id_t pci_vid_130A[] = {
+static pci_id_t const pci_vid_130A[] = {
{0x130A, 0xFFFF, 0xFFFF, 0xFFFF, "Mitsubishi Electric Microcomputer(0x130A)"},
}; /* pci_vid_130A[] */
-pci_id_t pci_vid_130B[] = {
+static pci_id_t const pci_vid_130B[] = {
{0x130B, 0xFFFF, 0xFFFF, 0xFFFF, "Colorgraphic Communications Corp(0x130B)"},
}; /* pci_vid_130B[] */
-pci_id_t pci_vid_130C[] = {
+static pci_id_t const pci_vid_130C[] = {
{0x130C, 0xFFFF, 0xFFFF, 0xFFFF, "Ambex Technologies, Inc(0x130C)"},
}; /* pci_vid_130C[] */
-pci_id_t pci_vid_130D[] = {
+static pci_id_t const pci_vid_130D[] = {
{0x130D, 0xFFFF, 0xFFFF, 0xFFFF, "Accelerix Inc(0x130D)"},
}; /* pci_vid_130D[] */
-pci_id_t pci_vid_130E[] = {
+static pci_id_t const pci_vid_130E[] = {
{0x130E, 0xFFFF, 0xFFFF, 0xFFFF, "Yamatake-Honeywell Co. Ltd(0x130E)"},
}; /* pci_vid_130E[] */
-pci_id_t pci_vid_130F[] = {
+static pci_id_t const pci_vid_130F[] = {
{0x130F, 0xFFFF, 0xFFFF, 0xFFFF, "Advanet Inc(0x130F)"},
}; /* pci_vid_130F[] */
-pci_id_t pci_vid_1310[] = {
+static pci_id_t const pci_vid_1310[] = {
{0x1310, 0xFFFF, 0xFFFF, 0xFFFF, "Gespac(0x1310)"},
}; /* pci_vid_1310[] */
-pci_id_t pci_vid_1311[] = {
+static pci_id_t const pci_vid_1311[] = {
{0x1311, 0xFFFF, 0xFFFF, 0xFFFF, "Videoserver, Inc(0x1311)"},
}; /* pci_vid_1311[] */
-pci_id_t pci_vid_1312[] = {
+static pci_id_t const pci_vid_1312[] = {
{0x1312, 0xFFFF, 0xFFFF, 0xFFFF, "Acuity Imaging, Inc(0x1312)"},
}; /* pci_vid_1312[] */
-pci_id_t pci_vid_1313[] = {
+static pci_id_t const pci_vid_1313[] = {
{0x1313, 0xFFFF, 0xFFFF, 0xFFFF, "Yaskawa Electric Co.(0x1313)"},
}; /* pci_vid_1313[] */
-pci_id_t pci_vid_1315[] = {
+static pci_id_t const pci_vid_1315[] = {
{0x1315, 0xFFFF, 0xFFFF, 0xFFFF, "Wavesat(0x1315)"},
}; /* pci_vid_1315[] */
-pci_id_t pci_vid_1316[] = {
+static pci_id_t const pci_vid_1316[] = {
{0x1316, 0xFFFF, 0xFFFF, 0xFFFF, "Teradyne Inc(0x1316)"},
}; /* pci_vid_1316[] */
-pci_id_t pci_vid_1317[] = {
+static pci_id_t const pci_vid_1317[] = {
{0x1317, 0xFFFF, 0xFFFF, 0xFFFF, "ADMtek(0x1317)"},
{0x1317, 0x0981, 0xFFFF, 0xFFFF, "21x4x DEC-Tulip compatible 10/100 Ethernet(0x0981)"},
{0x1317, 0x0985, 0xFFFF, 0xFFFF, "NC100 Network Everywhere Fast Ethernet 10/100(0x0985)"},
@@ -19879,12 +19965,12 @@ pci_id_t pci_vid_1317[] = {
{0x1317, 0x9511, 0xFFFF, 0xFFFF, "21x4x DEC-Tulip compatible 10/100 Ethernet(0x9511)"},
}; /* pci_vid_1317[] */
-pci_id_t pci_vid_1318[] = {
+static pci_id_t const pci_vid_1318[] = {
{0x1318, 0xFFFF, 0xFFFF, 0xFFFF, "Packet Engines Inc.(0x1318)"},
{0x1318, 0x0911, 0xFFFF, 0xFFFF, "GNIC-II PCI Gigabit Ethernet [Hamachi](0x0911)"},
}; /* pci_vid_1318[] */
-pci_id_t pci_vid_1319[] = {
+static pci_id_t const pci_vid_1319[] = {
{0x1319, 0xFFFF, 0xFFFF, 0xFFFF, "Fortemedia, Inc(0x1319)"},
{0x1319, 0x0801, 0xFFFF, 0xFFFF, "Xwave QS3000A [FM801](0x0801)"},
{0x1319, 0x0801, 0x1319, 0x1319, "FM801 PCI Audio(0x1319-0x1319)"},
@@ -19894,23 +19980,23 @@ pci_id_t pci_vid_1319[] = {
{0x1319, 0x1001, 0xFFFF, 0xFFFF, "FM801 PCI Joystick(0x1001)"},
}; /* pci_vid_1319[] */
-pci_id_t pci_vid_131A[] = {
+static pci_id_t const pci_vid_131A[] = {
{0x131A, 0xFFFF, 0xFFFF, 0xFFFF, "Finisar Corp.(0x131A)"},
}; /* pci_vid_131A[] */
-pci_id_t pci_vid_131C[] = {
+static pci_id_t const pci_vid_131C[] = {
{0x131C, 0xFFFF, 0xFFFF, 0xFFFF, "Nippon Electro-Sensory Devices Corp(0x131C)"},
}; /* pci_vid_131C[] */
-pci_id_t pci_vid_131D[] = {
+static pci_id_t const pci_vid_131D[] = {
{0x131D, 0xFFFF, 0xFFFF, 0xFFFF, "Sysmic, Inc.(0x131D)"},
}; /* pci_vid_131D[] */
-pci_id_t pci_vid_131E[] = {
+static pci_id_t const pci_vid_131E[] = {
{0x131E, 0xFFFF, 0xFFFF, 0xFFFF, "Xinex Networks Inc(0x131E)"},
}; /* pci_vid_131E[] */
-pci_id_t pci_vid_131F[] = {
+static pci_id_t const pci_vid_131F[] = {
{0x131F, 0xFFFF, 0xFFFF, 0xFFFF, "Siig Inc(0x131F)"},
{0x131F, 0x1000, 0xFFFF, 0xFFFF, "CyberSerial (1-port) 16550(0x1000)"},
{0x131F, 0x1001, 0xFFFF, 0xFFFF, "CyberSerial (1-port) 16650(0x1001)"},
@@ -19953,67 +20039,67 @@ pci_id_t pci_vid_131F[] = {
{0x131F, 0x2081, 0xFFFF, 0xFFFF, "CyberSerial (8-port) ST16654(0x2081)"},
}; /* pci_vid_131F[] */
-pci_id_t pci_vid_1320[] = {
+static pci_id_t const pci_vid_1320[] = {
{0x1320, 0xFFFF, 0xFFFF, 0xFFFF, "Crypto AG(0x1320)"},
}; /* pci_vid_1320[] */
-pci_id_t pci_vid_1321[] = {
+static pci_id_t const pci_vid_1321[] = {
{0x1321, 0xFFFF, 0xFFFF, 0xFFFF, "Arcobel Graphics BV(0x1321)"},
}; /* pci_vid_1321[] */
-pci_id_t pci_vid_1322[] = {
+static pci_id_t const pci_vid_1322[] = {
{0x1322, 0xFFFF, 0xFFFF, 0xFFFF, "MTT Co., Ltd(0x1322)"},
}; /* pci_vid_1322[] */
-pci_id_t pci_vid_1323[] = {
+static pci_id_t const pci_vid_1323[] = {
{0x1323, 0xFFFF, 0xFFFF, 0xFFFF, "Dome Inc(0x1323)"},
}; /* pci_vid_1323[] */
-pci_id_t pci_vid_1324[] = {
+static pci_id_t const pci_vid_1324[] = {
{0x1324, 0xFFFF, 0xFFFF, 0xFFFF, "Sphere Communications(0x1324)"},
}; /* pci_vid_1324[] */
-pci_id_t pci_vid_1325[] = {
+static pci_id_t const pci_vid_1325[] = {
{0x1325, 0xFFFF, 0xFFFF, 0xFFFF, "Salix Technologies, Inc(0x1325)"},
}; /* pci_vid_1325[] */
-pci_id_t pci_vid_1326[] = {
+static pci_id_t const pci_vid_1326[] = {
{0x1326, 0xFFFF, 0xFFFF, 0xFFFF, "Seachange international(0x1326)"},
}; /* pci_vid_1326[] */
-pci_id_t pci_vid_1327[] = {
+static pci_id_t const pci_vid_1327[] = {
{0x1327, 0xFFFF, 0xFFFF, 0xFFFF, "Voss scientific(0x1327)"},
}; /* pci_vid_1327[] */
-pci_id_t pci_vid_1328[] = {
+static pci_id_t const pci_vid_1328[] = {
{0x1328, 0xFFFF, 0xFFFF, 0xFFFF, "quadrant international(0x1328)"},
}; /* pci_vid_1328[] */
-pci_id_t pci_vid_1329[] = {
+static pci_id_t const pci_vid_1329[] = {
{0x1329, 0xFFFF, 0xFFFF, 0xFFFF, "Productivity Enhancement(0x1329)"},
}; /* pci_vid_1329[] */
-pci_id_t pci_vid_132A[] = {
+static pci_id_t const pci_vid_132A[] = {
{0x132A, 0xFFFF, 0xFFFF, 0xFFFF, "Microcom Inc.(0x132A)"},
}; /* pci_vid_132A[] */
-pci_id_t pci_vid_132B[] = {
+static pci_id_t const pci_vid_132B[] = {
{0x132B, 0xFFFF, 0xFFFF, 0xFFFF, "Broadband Technologies(0x132B)"},
}; /* pci_vid_132B[] */
-pci_id_t pci_vid_132C[] = {
+static pci_id_t const pci_vid_132C[] = {
{0x132C, 0xFFFF, 0xFFFF, 0xFFFF, "Micrel Inc(0x132C)"},
}; /* pci_vid_132C[] */
-pci_id_t pci_vid_132D[] = {
+static pci_id_t const pci_vid_132D[] = {
{0x132D, 0xFFFF, 0xFFFF, 0xFFFF, "Integrated Silicon Solution, Inc.(0x132D)"},
}; /* pci_vid_132D[] */
-pci_id_t pci_vid_1330[] = {
+static pci_id_t const pci_vid_1330[] = {
{0x1330, 0xFFFF, 0xFFFF, 0xFFFF, "MMC Networks(0x1330)"},
}; /* pci_vid_1330[] */
-pci_id_t pci_vid_1331[] = {
+static pci_id_t const pci_vid_1331[] = {
{0x1331, 0xFFFF, 0xFFFF, 0xFFFF, "RadiSys Corporation(0x1331)"},
{0x1331, 0x0030, 0xFFFF, 0xFFFF, "ENP-2611(0x0030)"},
{0x1331, 0x8200, 0xFFFF, 0xFFFF, "82600 Host Bridge(0x8200)"},
@@ -20022,70 +20108,70 @@ pci_id_t pci_vid_1331[] = {
{0x1331, 0x8210, 0xFFFF, 0xFFFF, "82600 PCI Bridge(0x8210)"},
}; /* pci_vid_1331[] */
-pci_id_t pci_vid_1332[] = {
+static pci_id_t const pci_vid_1332[] = {
{0x1332, 0xFFFF, 0xFFFF, 0xFFFF, "Micro Memory(0x1332)"},
{0x1332, 0x5415, 0xFFFF, 0xFFFF, "MM-5415CN PCI Memory Module with Battery Backup(0x5415)"},
{0x1332, 0x5425, 0xFFFF, 0xFFFF, "MM-5425CN PCI 64/66 Memory Module with Battery Backup(0x5425)"},
{0x1332, 0x6140, 0xFFFF, 0xFFFF, "MM-6140D(0x6140)"},
}; /* pci_vid_1332[] */
-pci_id_t pci_vid_1334[] = {
+static pci_id_t const pci_vid_1334[] = {
{0x1334, 0xFFFF, 0xFFFF, 0xFFFF, "Redcreek Communications, Inc(0x1334)"},
}; /* pci_vid_1334[] */
-pci_id_t pci_vid_1335[] = {
+static pci_id_t const pci_vid_1335[] = {
{0x1335, 0xFFFF, 0xFFFF, 0xFFFF, "Videomail, Inc(0x1335)"},
}; /* pci_vid_1335[] */
-pci_id_t pci_vid_1337[] = {
+static pci_id_t const pci_vid_1337[] = {
{0x1337, 0xFFFF, 0xFFFF, 0xFFFF, "Third Planet Publishing(0x1337)"},
}; /* pci_vid_1337[] */
-pci_id_t pci_vid_1338[] = {
+static pci_id_t const pci_vid_1338[] = {
{0x1338, 0xFFFF, 0xFFFF, 0xFFFF, "BT Electronics(0x1338)"},
}; /* pci_vid_1338[] */
-pci_id_t pci_vid_133A[] = {
+static pci_id_t const pci_vid_133A[] = {
{0x133A, 0xFFFF, 0xFFFF, 0xFFFF, "Vtel Corp(0x133A)"},
}; /* pci_vid_133A[] */
-pci_id_t pci_vid_133B[] = {
+static pci_id_t const pci_vid_133B[] = {
{0x133B, 0xFFFF, 0xFFFF, 0xFFFF, "Softcom Microsystems(0x133B)"},
}; /* pci_vid_133B[] */
-pci_id_t pci_vid_133C[] = {
+static pci_id_t const pci_vid_133C[] = {
{0x133C, 0xFFFF, 0xFFFF, 0xFFFF, "Holontech Corp(0x133C)"},
}; /* pci_vid_133C[] */
-pci_id_t pci_vid_133D[] = {
+static pci_id_t const pci_vid_133D[] = {
{0x133D, 0xFFFF, 0xFFFF, 0xFFFF, "SS Technologies(0x133D)"},
}; /* pci_vid_133D[] */
-pci_id_t pci_vid_133E[] = {
+static pci_id_t const pci_vid_133E[] = {
{0x133E, 0xFFFF, 0xFFFF, 0xFFFF, "Virtual Computer Corp(0x133E)"},
}; /* pci_vid_133E[] */
-pci_id_t pci_vid_133F[] = {
+static pci_id_t const pci_vid_133F[] = {
{0x133F, 0xFFFF, 0xFFFF, 0xFFFF, "SCM Microsystems(0x133F)"},
}; /* pci_vid_133F[] */
-pci_id_t pci_vid_1340[] = {
+static pci_id_t const pci_vid_1340[] = {
{0x1340, 0xFFFF, 0xFFFF, 0xFFFF, "Atalla Corp(0x1340)"},
}; /* pci_vid_1340[] */
-pci_id_t pci_vid_1341[] = {
+static pci_id_t const pci_vid_1341[] = {
{0x1341, 0xFFFF, 0xFFFF, 0xFFFF, "Kyoto Microcomputer Co(0x1341)"},
}; /* pci_vid_1341[] */
-pci_id_t pci_vid_1342[] = {
+static pci_id_t const pci_vid_1342[] = {
{0x1342, 0xFFFF, 0xFFFF, 0xFFFF, "Promax Systems Inc(0x1342)"},
}; /* pci_vid_1342[] */
-pci_id_t pci_vid_1343[] = {
+static pci_id_t const pci_vid_1343[] = {
{0x1343, 0xFFFF, 0xFFFF, 0xFFFF, "Phylon Communications Inc(0x1343)"},
}; /* pci_vid_1343[] */
-pci_id_t pci_vid_1344[] = {
+static pci_id_t const pci_vid_1344[] = {
{0x1344, 0xFFFF, 0xFFFF, 0xFFFF, "Micron Technology Inc(0x1344)"},
{0x1344, 0x5150, 0xFFFF, 0xFFFF, "RealSSD P320h(0x5150)"},
{0x1344, 0x5151, 0xFFFF, 0xFFFF, "RealSSD P320m(0x5151)"},
@@ -20172,37 +20258,38 @@ pci_id_t pci_vid_1344[] = {
{0x1344, 0x5411, 0xFFFF, 0xFFFF, "2450 NVMe SSD [HendrixV] (DRAM-less)(0x5411)"},
{0x1344, 0x5413, 0xFFFF, 0xFFFF, "2400 NVMe SSD (DRAM-less)(0x5413)"},
{0x1344, 0x5414, 0xFFFF, 0xFFFF, "3460 NVMe SSD(0x5414)"},
+{0x1344, 0x5415, 0xFFFF, 0xFFFF, "3500 NVMe SSD(0x5415)"},
{0x1344, 0x5416, 0xFFFF, 0xFFFF, "2550 NVMe SSD (DRAM-less)(0x5416)"},
{0x1344, 0x6001, 0xFFFF, 0xFFFF, "2100AI NVMe SSD [Nitro](0x6001)"},
}; /* pci_vid_1344[] */
-pci_id_t pci_vid_1345[] = {
+static pci_id_t const pci_vid_1345[] = {
{0x1345, 0xFFFF, 0xFFFF, 0xFFFF, "Arescom Inc(0x1345)"},
}; /* pci_vid_1345[] */
-pci_id_t pci_vid_1347[] = {
+static pci_id_t const pci_vid_1347[] = {
{0x1347, 0xFFFF, 0xFFFF, 0xFFFF, "Odetics(0x1347)"},
}; /* pci_vid_1347[] */
-pci_id_t pci_vid_1349[] = {
+static pci_id_t const pci_vid_1349[] = {
{0x1349, 0xFFFF, 0xFFFF, 0xFFFF, "Sumitomo Electric Industries, Ltd.(0x1349)"},
}; /* pci_vid_1349[] */
-pci_id_t pci_vid_134A[] = {
+static pci_id_t const pci_vid_134A[] = {
{0x134A, 0xFFFF, 0xFFFF, 0xFFFF, "DTC Technology Corp.(0x134A)"},
{0x134A, 0x0001, 0xFFFF, 0xFFFF, "Domex 536(0x0001)"},
{0x134A, 0x0002, 0xFFFF, 0xFFFF, "Domex DMX3194UP SCSI Adapter(0x0002)"},
}; /* pci_vid_134A[] */
-pci_id_t pci_vid_134B[] = {
+static pci_id_t const pci_vid_134B[] = {
{0x134B, 0xFFFF, 0xFFFF, 0xFFFF, "ARK Research Corp.(0x134B)"},
}; /* pci_vid_134B[] */
-pci_id_t pci_vid_134C[] = {
+static pci_id_t const pci_vid_134C[] = {
{0x134C, 0xFFFF, 0xFFFF, 0xFFFF, "Chori Joho System Co. Ltd(0x134C)"},
}; /* pci_vid_134C[] */
-pci_id_t pci_vid_134D[] = {
+static pci_id_t const pci_vid_134D[] = {
{0x134D, 0xFFFF, 0xFFFF, 0xFFFF, "PCTel Inc(0x134D)"},
{0x134D, 0x2189, 0xFFFF, 0xFFFF, "HSP56 MicroModem(0x2189)"},
{0x134D, 0x2486, 0xFFFF, 0xFFFF, "2304WT V.92 MDC Modem(0x2486)"},
@@ -20218,23 +20305,23 @@ pci_id_t pci_vid_134D[] = {
{0x134D, 0x7897, 0xFFFF, 0xFFFF, "HSP MicroModem 56(0x7897)"},
}; /* pci_vid_134D[] */
-pci_id_t pci_vid_134E[] = {
+static pci_id_t const pci_vid_134E[] = {
{0x134E, 0xFFFF, 0xFFFF, 0xFFFF, "CSTI(0x134E)"},
}; /* pci_vid_134E[] */
-pci_id_t pci_vid_134F[] = {
+static pci_id_t const pci_vid_134F[] = {
{0x134F, 0xFFFF, 0xFFFF, 0xFFFF, "Algo System Co Ltd(0x134F)"},
}; /* pci_vid_134F[] */
-pci_id_t pci_vid_1350[] = {
+static pci_id_t const pci_vid_1350[] = {
{0x1350, 0xFFFF, 0xFFFF, 0xFFFF, "Systec Co. Ltd(0x1350)"},
}; /* pci_vid_1350[] */
-pci_id_t pci_vid_1351[] = {
+static pci_id_t const pci_vid_1351[] = {
{0x1351, 0xFFFF, 0xFFFF, 0xFFFF, "Sonix Inc(0x1351)"},
}; /* pci_vid_1351[] */
-pci_id_t pci_vid_1353[] = {
+static pci_id_t const pci_vid_1353[] = {
{0x1353, 0xFFFF, 0xFFFF, 0xFFFF, "dbeeSet Technology(0x1353)"},
{0x1353, 0x0002, 0xFFFF, 0xFFFF, "Proserver(0x0002)"},
{0x1353, 0x0003, 0xFFFF, 0xFFFF, "PCI-FUT(0x0003)"},
@@ -20244,23 +20331,23 @@ pci_id_t pci_vid_1353[] = {
{0x1353, 0x0007, 0xFFFF, 0xFFFF, "OTDU-EX(0x0007)"},
}; /* pci_vid_1353[] */
-pci_id_t pci_vid_1354[] = {
+static pci_id_t const pci_vid_1354[] = {
{0x1354, 0xFFFF, 0xFFFF, 0xFFFF, "Dwave System Inc(0x1354)"},
}; /* pci_vid_1354[] */
-pci_id_t pci_vid_1355[] = {
+static pci_id_t const pci_vid_1355[] = {
{0x1355, 0xFFFF, 0xFFFF, 0xFFFF, "Kratos Analytical Ltd(0x1355)"},
}; /* pci_vid_1355[] */
-pci_id_t pci_vid_1356[] = {
+static pci_id_t const pci_vid_1356[] = {
{0x1356, 0xFFFF, 0xFFFF, 0xFFFF, "The Logical Co(0x1356)"},
}; /* pci_vid_1356[] */
-pci_id_t pci_vid_1359[] = {
+static pci_id_t const pci_vid_1359[] = {
{0x1359, 0xFFFF, 0xFFFF, 0xFFFF, "Prisa Networks(0x1359)"},
}; /* pci_vid_1359[] */
-pci_id_t pci_vid_135A[] = {
+static pci_id_t const pci_vid_135A[] = {
{0x135A, 0xFFFF, 0xFFFF, 0xFFFF, "Brainboxes Ltd(0x135A)"},
{0x135A, 0x0841, 0xFFFF, 0xFFFF, "UC-268 4 port RS-232 card(0x0841)"},
{0x135A, 0x0861, 0xFFFF, 0xFFFF, "UC-257 2 port RS-232 + LPT card(0x0861)"},
@@ -20354,11 +20441,11 @@ pci_id_t pci_vid_135A[] = {
{0x135A, 0x4100, 0xFFFF, 0xFFFF, "PX-272 4 + 1 port RS-232 + LPT card(0x4100)"},
}; /* pci_vid_135A[] */
-pci_id_t pci_vid_135B[] = {
+static pci_id_t const pci_vid_135B[] = {
{0x135B, 0xFFFF, 0xFFFF, 0xFFFF, "Giganet Inc(0x135B)"},
}; /* pci_vid_135B[] */
-pci_id_t pci_vid_135C[] = {
+static pci_id_t const pci_vid_135C[] = {
{0x135C, 0xFFFF, 0xFFFF, 0xFFFF, "Quatech Inc(0x135C)"},
{0x135C, 0x0010, 0xFFFF, 0xFFFF, "QSC-100(0x0010)"},
{0x135C, 0x0020, 0xFFFF, 0xFFFF, "DSC-100(0x0020)"},
@@ -20383,11 +20470,11 @@ pci_id_t pci_vid_135C[] = {
{0x135C, 0x0258, 0xFFFF, 0xFFFF, "DSPSX-200/300(0x0258)"},
}; /* pci_vid_135C[] */
-pci_id_t pci_vid_135D[] = {
+static pci_id_t const pci_vid_135D[] = {
{0x135D, 0xFFFF, 0xFFFF, 0xFFFF, "ABB Network Partner AB(0x135D)"},
}; /* pci_vid_135D[] */
-pci_id_t pci_vid_135E[] = {
+static pci_id_t const pci_vid_135E[] = {
{0x135E, 0xFFFF, 0xFFFF, 0xFFFF, "Sealevel Systems Inc(0x135E)"},
{0x135E, 0x5101, 0xFFFF, 0xFFFF, "Route 56.PCI - Multi-Protocol Serial Interface (Zilog Z16C32)(0x5101)"},
{0x135E, 0x7101, 0xFFFF, 0xFFFF, "Single Port RS-232/422/485/530(0x7101)"},
@@ -20400,11 +20487,11 @@ pci_id_t pci_vid_135E[] = {
{0x135E, 0x8001, 0xFFFF, 0xFFFF, "8001 Digital I/O Adapter(0x8001)"},
}; /* pci_vid_135E[] */
-pci_id_t pci_vid_135F[] = {
+static pci_id_t const pci_vid_135F[] = {
{0x135F, 0xFFFF, 0xFFFF, 0xFFFF, "I-Data International A-S(0x135F)"},
}; /* pci_vid_135F[] */
-pci_id_t pci_vid_1360[] = {
+static pci_id_t const pci_vid_1360[] = {
{0x1360, 0xFFFF, 0xFFFF, 0xFFFF, "Meinberg Funkuhren(0x1360)"},
{0x1360, 0x0101, 0xFFFF, 0xFFFF, "PCI32 DCF77 Radio Clock(0x0101)"},
{0x1360, 0x0102, 0xFFFF, 0xFFFF, "PCI509 DCF77 Radio Clock(0x0102)"},
@@ -20431,43 +20518,43 @@ pci_id_t pci_vid_1360[] = {
{0x1360, 0x0601, 0xFFFF, 0xFFFF, "FRC511PEX Free Running Clock (PCI Express)(0x0601)"},
}; /* pci_vid_1360[] */
-pci_id_t pci_vid_1361[] = {
+static pci_id_t const pci_vid_1361[] = {
{0x1361, 0xFFFF, 0xFFFF, 0xFFFF, "Soliton Systems K.K.(0x1361)"},
}; /* pci_vid_1361[] */
-pci_id_t pci_vid_1362[] = {
+static pci_id_t const pci_vid_1362[] = {
{0x1362, 0xFFFF, 0xFFFF, 0xFFFF, "Fujifacom Corporation(0x1362)"},
}; /* pci_vid_1362[] */
-pci_id_t pci_vid_1363[] = {
+static pci_id_t const pci_vid_1363[] = {
{0x1363, 0xFFFF, 0xFFFF, 0xFFFF, "Phoenix Technology Ltd(0x1363)"},
}; /* pci_vid_1363[] */
-pci_id_t pci_vid_1364[] = {
+static pci_id_t const pci_vid_1364[] = {
{0x1364, 0xFFFF, 0xFFFF, 0xFFFF, "ATM Communications Inc(0x1364)"},
}; /* pci_vid_1364[] */
-pci_id_t pci_vid_1365[] = {
+static pci_id_t const pci_vid_1365[] = {
{0x1365, 0xFFFF, 0xFFFF, 0xFFFF, "Hypercope GmbH(0x1365)"},
}; /* pci_vid_1365[] */
-pci_id_t pci_vid_1366[] = {
+static pci_id_t const pci_vid_1366[] = {
{0x1366, 0xFFFF, 0xFFFF, 0xFFFF, "Teijin Seiki Co. Ltd(0x1366)"},
}; /* pci_vid_1366[] */
-pci_id_t pci_vid_1367[] = {
+static pci_id_t const pci_vid_1367[] = {
{0x1367, 0xFFFF, 0xFFFF, 0xFFFF, "Hitachi Zosen Corporation(0x1367)"},
}; /* pci_vid_1367[] */
-pci_id_t pci_vid_1368[] = {
+static pci_id_t const pci_vid_1368[] = {
{0x1368, 0xFFFF, 0xFFFF, 0xFFFF, "Skyware Corporation(0x1368)"},
}; /* pci_vid_1368[] */
-pci_id_t pci_vid_1369[] = {
+static pci_id_t const pci_vid_1369[] = {
{0x1369, 0xFFFF, 0xFFFF, 0xFFFF, "Digigram(0x1369)"},
}; /* pci_vid_1369[] */
-pci_id_t pci_vid_136A[] = {
+static pci_id_t const pci_vid_136A[] = {
{0x136A, 0xFFFF, 0xFFFF, 0xFFFF, "High Soft Tech(0x136A)"},
{0x136A, 0x0004, 0xFFFF, 0xFFFF, "HST Saphir VII mini PCI(0x0004)"},
{0x136A, 0x0007, 0xFFFF, 0xFFFF, "HST Saphir III E MultiLink 4(0x0007)"},
@@ -20475,38 +20562,38 @@ pci_id_t pci_vid_136A[] = {
{0x136A, 0x000A, 0xFFFF, 0xFFFF, "HST Saphir III E MultiLink 2(0x000A)"},
}; /* pci_vid_136A[] */
-pci_id_t pci_vid_136B[] = {
+static pci_id_t const pci_vid_136B[] = {
{0x136B, 0xFFFF, 0xFFFF, 0xFFFF, "Kawasaki Steel Corporation(0x136B)"},
{0x136B, 0xFF01, 0xFFFF, 0xFFFF, "KL5A72002 Motion JPEG(0xFF01)"},
}; /* pci_vid_136B[] */
-pci_id_t pci_vid_136C[] = {
+static pci_id_t const pci_vid_136C[] = {
{0x136C, 0xFFFF, 0xFFFF, 0xFFFF, "Adtek System Science Co Ltd(0x136C)"},
}; /* pci_vid_136C[] */
-pci_id_t pci_vid_136D[] = {
+static pci_id_t const pci_vid_136D[] = {
{0x136D, 0xFFFF, 0xFFFF, 0xFFFF, "Gigalabs Inc(0x136D)"},
}; /* pci_vid_136D[] */
-pci_id_t pci_vid_136F[] = {
+static pci_id_t const pci_vid_136F[] = {
{0x136F, 0xFFFF, 0xFFFF, 0xFFFF, "Applied Magic Inc(0x136F)"},
}; /* pci_vid_136F[] */
-pci_id_t pci_vid_1370[] = {
+static pci_id_t const pci_vid_1370[] = {
{0x1370, 0xFFFF, 0xFFFF, 0xFFFF, "ATL Products(0x1370)"},
}; /* pci_vid_1370[] */
-pci_id_t pci_vid_1371[] = {
+static pci_id_t const pci_vid_1371[] = {
{0x1371, 0xFFFF, 0xFFFF, 0xFFFF, "CNet Technology Inc(0x1371)"},
{0x1371, 0x434E, 0xFFFF, 0xFFFF, "GigaCard Network Adapter(0x434E)"},
{0x1371, 0x434E, 0x1371, 0x434E, "N-Way PCI-Bus Giga-Card 1000/100/10Mbps(L)(0x1371-0x434E)"},
}; /* pci_vid_1371[] */
-pci_id_t pci_vid_1373[] = {
+static pci_id_t const pci_vid_1373[] = {
{0x1373, 0xFFFF, 0xFFFF, 0xFFFF, "Silicon Vision Inc(0x1373)"},
}; /* pci_vid_1373[] */
-pci_id_t pci_vid_1374[] = {
+static pci_id_t const pci_vid_1374[] = {
{0x1374, 0xFFFF, 0xFFFF, 0xFFFF, "Silicom Ltd.(0x1374)"},
{0x1374, 0x0024, 0xFFFF, 0xFFFF, "Silicom Dual port Giga Ethernet BGE Bypass Server Adapter(0x0024)"},
{0x1374, 0x0025, 0xFFFF, 0xFFFF, "Silicom Quad port Giga Ethernet BGE Bypass Server Adapter(0x0025)"},
@@ -20552,60 +20639,60 @@ pci_id_t pci_vid_1374[] = {
{0x1374, 0x0483, 0xFFFF, 0xFFFF, "Dual-port Fiber (LR) 10 Gigabit Ethernet ExpressModule Bypass Server Adapter(0x0483)"},
}; /* pci_vid_1374[] */
-pci_id_t pci_vid_1375[] = {
+static pci_id_t const pci_vid_1375[] = {
{0x1375, 0xFFFF, 0xFFFF, 0xFFFF, "Argosystems Inc(0x1375)"},
}; /* pci_vid_1375[] */
-pci_id_t pci_vid_1376[] = {
+static pci_id_t const pci_vid_1376[] = {
{0x1376, 0xFFFF, 0xFFFF, 0xFFFF, "LMC(0x1376)"},
}; /* pci_vid_1376[] */
-pci_id_t pci_vid_1377[] = {
+static pci_id_t const pci_vid_1377[] = {
{0x1377, 0xFFFF, 0xFFFF, 0xFFFF, "Electronic Equipment Production & Distribution GmbH(0x1377)"},
}; /* pci_vid_1377[] */
-pci_id_t pci_vid_1378[] = {
+static pci_id_t const pci_vid_1378[] = {
{0x1378, 0xFFFF, 0xFFFF, 0xFFFF, "Telemann Co. Ltd(0x1378)"},
}; /* pci_vid_1378[] */
-pci_id_t pci_vid_1379[] = {
+static pci_id_t const pci_vid_1379[] = {
{0x1379, 0xFFFF, 0xFFFF, 0xFFFF, "Asahi Kasei Microsystems Co Ltd(0x1379)"},
}; /* pci_vid_1379[] */
-pci_id_t pci_vid_137A[] = {
+static pci_id_t const pci_vid_137A[] = {
{0x137A, 0xFFFF, 0xFFFF, 0xFFFF, "Mark of the Unicorn Inc(0x137A)"},
{0x137A, 0x0001, 0xFFFF, 0xFFFF, "PCI-324 Audiowire Interface(0x0001)"},
}; /* pci_vid_137A[] */
-pci_id_t pci_vid_137B[] = {
+static pci_id_t const pci_vid_137B[] = {
{0x137B, 0xFFFF, 0xFFFF, 0xFFFF, "PPT Vision(0x137B)"},
}; /* pci_vid_137B[] */
-pci_id_t pci_vid_137C[] = {
+static pci_id_t const pci_vid_137C[] = {
{0x137C, 0xFFFF, 0xFFFF, 0xFFFF, "Iwatsu Electric Co Ltd(0x137C)"},
}; /* pci_vid_137C[] */
-pci_id_t pci_vid_137D[] = {
+static pci_id_t const pci_vid_137D[] = {
{0x137D, 0xFFFF, 0xFFFF, 0xFFFF, "Dynachip Corporation(0x137D)"},
}; /* pci_vid_137D[] */
-pci_id_t pci_vid_137E[] = {
+static pci_id_t const pci_vid_137E[] = {
{0x137E, 0xFFFF, 0xFFFF, 0xFFFF, "Patriot Scientific Corporation(0x137E)"},
}; /* pci_vid_137E[] */
-pci_id_t pci_vid_137F[] = {
+static pci_id_t const pci_vid_137F[] = {
{0x137F, 0xFFFF, 0xFFFF, 0xFFFF, "Japan Satellite Systems Inc(0x137F)"},
}; /* pci_vid_137F[] */
-pci_id_t pci_vid_1380[] = {
+static pci_id_t const pci_vid_1380[] = {
{0x1380, 0xFFFF, 0xFFFF, 0xFFFF, "Sanritz Automation Co Ltd(0x1380)"},
}; /* pci_vid_1380[] */
-pci_id_t pci_vid_1381[] = {
+static pci_id_t const pci_vid_1381[] = {
{0x1381, 0xFFFF, 0xFFFF, 0xFFFF, "Brains Co. Ltd(0x1381)"},
}; /* pci_vid_1381[] */
-pci_id_t pci_vid_1382[] = {
+static pci_id_t const pci_vid_1382[] = {
{0x1382, 0xFFFF, 0xFFFF, 0xFFFF, "Marian - Electronic & Software(0x1382)"},
{0x1382, 0x0001, 0xFFFF, 0xFFFF, "ARC88 audio recording card(0x0001)"},
{0x1382, 0x2008, 0xFFFF, 0xFFFF, "Prodif 96 Pro sound system(0x2008)"},
@@ -20620,15 +20707,15 @@ pci_id_t pci_vid_1382[] = {
{0x1382, 0x4424, 0xFFFF, 0xFFFF, "TRACE D4 Sound System(0x4424)"},
}; /* pci_vid_1382[] */
-pci_id_t pci_vid_1383[] = {
+static pci_id_t const pci_vid_1383[] = {
{0x1383, 0xFFFF, 0xFFFF, 0xFFFF, "Controlnet Inc(0x1383)"},
}; /* pci_vid_1383[] */
-pci_id_t pci_vid_1384[] = {
+static pci_id_t const pci_vid_1384[] = {
{0x1384, 0xFFFF, 0xFFFF, 0xFFFF, "Reality Simulation Systems Inc(0x1384)"},
}; /* pci_vid_1384[] */
-pci_id_t pci_vid_1385[] = {
+static pci_id_t const pci_vid_1385[] = {
{0x1385, 0xFFFF, 0xFFFF, 0xFFFF, "Netgear(0x1385)"},
{0x1385, 0x006B, 0xFFFF, 0xFFFF, "WA301 802.11b Wireless PCI Adapter(0x006B)"},
{0x1385, 0x4100, 0xFFFF, 0xFFFF, "MA301 802.11b Wireless PCI Adapter(0x4100)"},
@@ -20637,61 +20724,61 @@ pci_id_t pci_vid_1385[] = {
{0x1385, 0x630A, 0xFFFF, 0xFFFF, "GA630 Gigabit Ethernet(0x630A)"},
}; /* pci_vid_1385[] */
-pci_id_t pci_vid_1386[] = {
+static pci_id_t const pci_vid_1386[] = {
{0x1386, 0xFFFF, 0xFFFF, 0xFFFF, "Video Domain Technologies(0x1386)"},
}; /* pci_vid_1386[] */
-pci_id_t pci_vid_1387[] = {
+static pci_id_t const pci_vid_1387[] = {
{0x1387, 0xFFFF, 0xFFFF, 0xFFFF, "Systran Corp(0x1387)"},
}; /* pci_vid_1387[] */
-pci_id_t pci_vid_1388[] = {
+static pci_id_t const pci_vid_1388[] = {
{0x1388, 0xFFFF, 0xFFFF, 0xFFFF, "Hitachi Information Technology Co Ltd(0x1388)"},
}; /* pci_vid_1388[] */
-pci_id_t pci_vid_1389[] = {
+static pci_id_t const pci_vid_1389[] = {
{0x1389, 0xFFFF, 0xFFFF, 0xFFFF, "Applicom International(0x1389)"},
{0x1389, 0x0001, 0xFFFF, 0xFFFF, "PCI1500PFB [Intelligent fieldbus adaptor](0x0001)"},
}; /* pci_vid_1389[] */
-pci_id_t pci_vid_138A[] = {
+static pci_id_t const pci_vid_138A[] = {
{0x138A, 0xFFFF, 0xFFFF, 0xFFFF, "Fusion Micromedia Corp(0x138A)"},
{0x138A, 0x003D, 0xFFFF, 0xFFFF, "VFS491 Validity Sensor(0x003D)"},
}; /* pci_vid_138A[] */
-pci_id_t pci_vid_138B[] = {
+static pci_id_t const pci_vid_138B[] = {
{0x138B, 0xFFFF, 0xFFFF, 0xFFFF, "Tokimec Inc(0x138B)"},
}; /* pci_vid_138B[] */
-pci_id_t pci_vid_138C[] = {
+static pci_id_t const pci_vid_138C[] = {
{0x138C, 0xFFFF, 0xFFFF, 0xFFFF, "Silicon Reality(0x138C)"},
}; /* pci_vid_138C[] */
-pci_id_t pci_vid_138D[] = {
+static pci_id_t const pci_vid_138D[] = {
{0x138D, 0xFFFF, 0xFFFF, 0xFFFF, "Future Techno Designs pte Ltd(0x138D)"},
}; /* pci_vid_138D[] */
-pci_id_t pci_vid_138E[] = {
+static pci_id_t const pci_vid_138E[] = {
{0x138E, 0xFFFF, 0xFFFF, 0xFFFF, "Basler GmbH(0x138E)"},
}; /* pci_vid_138E[] */
-pci_id_t pci_vid_138F[] = {
+static pci_id_t const pci_vid_138F[] = {
{0x138F, 0xFFFF, 0xFFFF, 0xFFFF, "Patapsco Designs Inc(0x138F)"},
}; /* pci_vid_138F[] */
-pci_id_t pci_vid_1390[] = {
+static pci_id_t const pci_vid_1390[] = {
{0x1390, 0xFFFF, 0xFFFF, 0xFFFF, "Concept Development Inc(0x1390)"},
}; /* pci_vid_1390[] */
-pci_id_t pci_vid_1391[] = {
+static pci_id_t const pci_vid_1391[] = {
{0x1391, 0xFFFF, 0xFFFF, 0xFFFF, "Development Concepts Inc(0x1391)"},
}; /* pci_vid_1391[] */
-pci_id_t pci_vid_1392[] = {
+static pci_id_t const pci_vid_1392[] = {
{0x1392, 0xFFFF, 0xFFFF, 0xFFFF, "Medialight Inc(0x1392)"},
}; /* pci_vid_1392[] */
-pci_id_t pci_vid_1393[] = {
+static pci_id_t const pci_vid_1393[] = {
{0x1393, 0xFFFF, 0xFFFF, 0xFFFF, "Moxa Technologies Co Ltd(0x1393)"},
{0x1393, 0x0001, 0xFFFF, 0xFFFF, "UC7000 Serial(0x0001)"},
{0x1393, 0x1020, 0xFFFF, 0xFFFF, "CP-102 (2-port RS-232 PCI)(0x1020)"},
@@ -20730,22 +20817,22 @@ pci_id_t pci_vid_1393[] = {
{0x1393, 0x3200, 0xFFFF, 0xFFFF, "Intellio C320 Turbo PCI(0x3200)"},
}; /* pci_vid_1393[] */
-pci_id_t pci_vid_1394[] = {
+static pci_id_t const pci_vid_1394[] = {
{0x1394, 0xFFFF, 0xFFFF, 0xFFFF, "Level One Communications(0x1394)"},
{0x1394, 0x0001, 0xFFFF, 0xFFFF, "LXT1001 Gigabit Ethernet(0x0001)"},
{0x1394, 0x0001, 0x1186, 0x4800, "DGE-500SX(0x1186-0x4800)"},
{0x1394, 0x0001, 0x1394, 0x0001, "NetCelerator Adapter(0x1394-0x0001)"},
}; /* pci_vid_1394[] */
-pci_id_t pci_vid_1395[] = {
+static pci_id_t const pci_vid_1395[] = {
{0x1395, 0xFFFF, 0xFFFF, 0xFFFF, "Ambicom Inc(0x1395)"},
}; /* pci_vid_1395[] */
-pci_id_t pci_vid_1396[] = {
+static pci_id_t const pci_vid_1396[] = {
{0x1396, 0xFFFF, 0xFFFF, 0xFFFF, "Cipher Systems Inc(0x1396)"},
}; /* pci_vid_1396[] */
-pci_id_t pci_vid_1397[] = {
+static pci_id_t const pci_vid_1397[] = {
{0x1397, 0xFFFF, 0xFFFF, 0xFFFF, "Cologne Chip Designs GmbH(0x1397)"},
{0x1397, 0x08B4, 0xFFFF, 0xFFFF, "ISDN network Controller [HFC-4S](0x08B4)"},
{0x1397, 0x08B4, 0x1397, 0x08B4, "HFC-4S [Cologne Chip HFC-4S Eval. Board](0x1397-0x08B4)"},
@@ -20798,54 +20885,54 @@ pci_id_t pci_vid_1397[] = {
{0x1397, 0xF001, 0xFFFF, 0xFFFF, "GSM Network Controller [HFC-4GSM](0xF001)"},
}; /* pci_vid_1397[] */
-pci_id_t pci_vid_1398[] = {
+static pci_id_t const pci_vid_1398[] = {
{0x1398, 0xFFFF, 0xFFFF, 0xFFFF, "Clarion co. Ltd(0x1398)"},
}; /* pci_vid_1398[] */
-pci_id_t pci_vid_1399[] = {
+static pci_id_t const pci_vid_1399[] = {
{0x1399, 0xFFFF, 0xFFFF, 0xFFFF, "Rios systems Co Ltd(0x1399)"},
}; /* pci_vid_1399[] */
-pci_id_t pci_vid_139A[] = {
+static pci_id_t const pci_vid_139A[] = {
{0x139A, 0xFFFF, 0xFFFF, 0xFFFF, "Alacritech Inc(0x139A)"},
{0x139A, 0x0001, 0xFFFF, 0xFFFF, "Quad Port 10/100 Server Accelerator(0x0001)"},
{0x139A, 0x0003, 0xFFFF, 0xFFFF, "Single Port 10/100 Server Accelerator(0x0003)"},
{0x139A, 0x0005, 0xFFFF, 0xFFFF, "Single Port Gigabit Server Accelerator(0x0005)"},
}; /* pci_vid_139A[] */
-pci_id_t pci_vid_139B[] = {
+static pci_id_t const pci_vid_139B[] = {
{0x139B, 0xFFFF, 0xFFFF, 0xFFFF, "Mediasonic Multimedia Systems Ltd(0x139B)"},
}; /* pci_vid_139B[] */
-pci_id_t pci_vid_139C[] = {
+static pci_id_t const pci_vid_139C[] = {
{0x139C, 0xFFFF, 0xFFFF, 0xFFFF, "Quantum 3d Inc(0x139C)"},
}; /* pci_vid_139C[] */
-pci_id_t pci_vid_139D[] = {
+static pci_id_t const pci_vid_139D[] = {
{0x139D, 0xFFFF, 0xFFFF, 0xFFFF, "EPL limited(0x139D)"},
}; /* pci_vid_139D[] */
-pci_id_t pci_vid_139E[] = {
+static pci_id_t const pci_vid_139E[] = {
{0x139E, 0xFFFF, 0xFFFF, 0xFFFF, "Media4(0x139E)"},
}; /* pci_vid_139E[] */
-pci_id_t pci_vid_139F[] = {
+static pci_id_t const pci_vid_139F[] = {
{0x139F, 0xFFFF, 0xFFFF, 0xFFFF, "Aethra s.r.l.(0x139F)"},
}; /* pci_vid_139F[] */
-pci_id_t pci_vid_13A0[] = {
+static pci_id_t const pci_vid_13A0[] = {
{0x13A0, 0xFFFF, 0xFFFF, 0xFFFF, "Crystal Group Inc(0x13A0)"},
}; /* pci_vid_13A0[] */
-pci_id_t pci_vid_13A1[] = {
+static pci_id_t const pci_vid_13A1[] = {
{0x13A1, 0xFFFF, 0xFFFF, 0xFFFF, "Kawasaki Heavy Industries Ltd(0x13A1)"},
}; /* pci_vid_13A1[] */
-pci_id_t pci_vid_13A2[] = {
+static pci_id_t const pci_vid_13A2[] = {
{0x13A2, 0xFFFF, 0xFFFF, 0xFFFF, "Ositech Communications Inc(0x13A2)"},
}; /* pci_vid_13A2[] */
-pci_id_t pci_vid_13A3[] = {
+static pci_id_t const pci_vid_13A3[] = {
{0x13A3, 0xFFFF, 0xFFFF, 0xFFFF, "Hifn Inc.(0x13A3)"},
{0x13A3, 0x0005, 0xFFFF, 0xFFFF, "7751 Security Processor(0x0005)"},
{0x13A3, 0x0006, 0xFFFF, 0xFFFF, "6500 Public Key Processor(0x0006)"},
@@ -20879,23 +20966,23 @@ pci_id_t pci_vid_13A3[] = {
{0x13A3, 0x9240, 0x13A3, 0x9200, "DX2040 Compression and Security Acceleration Card [Panther II](0x13A3-0x9200)"},
}; /* pci_vid_13A3[] */
-pci_id_t pci_vid_13A4[] = {
+static pci_id_t const pci_vid_13A4[] = {
{0x13A4, 0xFFFF, 0xFFFF, 0xFFFF, "Rascom Inc(0x13A4)"},
}; /* pci_vid_13A4[] */
-pci_id_t pci_vid_13A5[] = {
+static pci_id_t const pci_vid_13A5[] = {
{0x13A5, 0xFFFF, 0xFFFF, 0xFFFF, "Audio Digital Imaging Inc(0x13A5)"},
}; /* pci_vid_13A5[] */
-pci_id_t pci_vid_13A6[] = {
+static pci_id_t const pci_vid_13A6[] = {
{0x13A6, 0xFFFF, 0xFFFF, 0xFFFF, "Videonics Inc(0x13A6)"},
}; /* pci_vid_13A6[] */
-pci_id_t pci_vid_13A7[] = {
+static pci_id_t const pci_vid_13A7[] = {
{0x13A7, 0xFFFF, 0xFFFF, 0xFFFF, "Teles AG(0x13A7)"},
}; /* pci_vid_13A7[] */
-pci_id_t pci_vid_13A8[] = {
+static pci_id_t const pci_vid_13A8[] = {
{0x13A8, 0xFFFF, 0xFFFF, 0xFFFF, "Exar Corp.(0x13A8)"},
{0x13A8, 0x0152, 0xFFFF, 0xFFFF, "XR17C/D152 Dual PCI UART(0x0152)"},
{0x13A8, 0x0154, 0xFFFF, 0xFFFF, "XR17C154 Quad UART(0x0154)"},
@@ -20906,99 +20993,99 @@ pci_id_t pci_vid_13A8[] = {
{0x13A8, 0x0352, 0xFFFF, 0xFFFF, "XR17V3521 Dual PCIe UART(0x0352)"},
}; /* pci_vid_13A8[] */
-pci_id_t pci_vid_13A9[] = {
+static pci_id_t const pci_vid_13A9[] = {
{0x13A9, 0xFFFF, 0xFFFF, 0xFFFF, "Siemens Medical Systems, Ultrasound Group(0x13A9)"},
}; /* pci_vid_13A9[] */
-pci_id_t pci_vid_13AA[] = {
+static pci_id_t const pci_vid_13AA[] = {
{0x13AA, 0xFFFF, 0xFFFF, 0xFFFF, "Broadband Networks Inc(0x13AA)"},
}; /* pci_vid_13AA[] */
-pci_id_t pci_vid_13AB[] = {
+static pci_id_t const pci_vid_13AB[] = {
{0x13AB, 0xFFFF, 0xFFFF, 0xFFFF, "Arcom Control Systems Ltd(0x13AB)"},
}; /* pci_vid_13AB[] */
-pci_id_t pci_vid_13AC[] = {
+static pci_id_t const pci_vid_13AC[] = {
{0x13AC, 0xFFFF, 0xFFFF, 0xFFFF, "Motion Media Technology Ltd(0x13AC)"},
}; /* pci_vid_13AC[] */
-pci_id_t pci_vid_13AD[] = {
+static pci_id_t const pci_vid_13AD[] = {
{0x13AD, 0xFFFF, 0xFFFF, 0xFFFF, "Nexus Inc(0x13AD)"},
}; /* pci_vid_13AD[] */
-pci_id_t pci_vid_13AE[] = {
+static pci_id_t const pci_vid_13AE[] = {
{0x13AE, 0xFFFF, 0xFFFF, 0xFFFF, "ALD Technology Ltd(0x13AE)"},
}; /* pci_vid_13AE[] */
-pci_id_t pci_vid_13AF[] = {
+static pci_id_t const pci_vid_13AF[] = {
{0x13AF, 0xFFFF, 0xFFFF, 0xFFFF, "T.Sqware(0x13AF)"},
}; /* pci_vid_13AF[] */
-pci_id_t pci_vid_13B0[] = {
+static pci_id_t const pci_vid_13B0[] = {
{0x13B0, 0xFFFF, 0xFFFF, 0xFFFF, "Maxspeed Corp(0x13B0)"},
}; /* pci_vid_13B0[] */
-pci_id_t pci_vid_13B1[] = {
+static pci_id_t const pci_vid_13B1[] = {
{0x13B1, 0xFFFF, 0xFFFF, 0xFFFF, "Tamura corporation(0x13B1)"},
}; /* pci_vid_13B1[] */
-pci_id_t pci_vid_13B2[] = {
+static pci_id_t const pci_vid_13B2[] = {
{0x13B2, 0xFFFF, 0xFFFF, 0xFFFF, "Techno Chips Co. Ltd(0x13B2)"},
}; /* pci_vid_13B2[] */
-pci_id_t pci_vid_13B3[] = {
+static pci_id_t const pci_vid_13B3[] = {
{0x13B3, 0xFFFF, 0xFFFF, 0xFFFF, "Lanart Corporation(0x13B3)"},
}; /* pci_vid_13B3[] */
-pci_id_t pci_vid_13B4[] = {
+static pci_id_t const pci_vid_13B4[] = {
{0x13B4, 0xFFFF, 0xFFFF, 0xFFFF, "Wellbean Co Inc(0x13B4)"},
}; /* pci_vid_13B4[] */
-pci_id_t pci_vid_13B5[] = {
+static pci_id_t const pci_vid_13B5[] = {
{0x13B5, 0xFFFF, 0xFFFF, 0xFFFF, "ARM(0x13B5)"},
}; /* pci_vid_13B5[] */
-pci_id_t pci_vid_13B6[] = {
+static pci_id_t const pci_vid_13B6[] = {
{0x13B6, 0xFFFF, 0xFFFF, 0xFFFF, "Dlog GmbH(0x13B6)"},
}; /* pci_vid_13B6[] */
-pci_id_t pci_vid_13B7[] = {
+static pci_id_t const pci_vid_13B7[] = {
{0x13B7, 0xFFFF, 0xFFFF, 0xFFFF, "Logic Devices Inc(0x13B7)"},
}; /* pci_vid_13B7[] */
-pci_id_t pci_vid_13B8[] = {
+static pci_id_t const pci_vid_13B8[] = {
{0x13B8, 0xFFFF, 0xFFFF, 0xFFFF, "Nokia Telecommunications oy(0x13B8)"},
}; /* pci_vid_13B8[] */
-pci_id_t pci_vid_13B9[] = {
+static pci_id_t const pci_vid_13B9[] = {
{0x13B9, 0xFFFF, 0xFFFF, 0xFFFF, "Elecom Co Ltd(0x13B9)"},
}; /* pci_vid_13B9[] */
-pci_id_t pci_vid_13BA[] = {
+static pci_id_t const pci_vid_13BA[] = {
{0x13BA, 0xFFFF, 0xFFFF, 0xFFFF, "Oxford Instruments(0x13BA)"},
}; /* pci_vid_13BA[] */
-pci_id_t pci_vid_13BB[] = {
+static pci_id_t const pci_vid_13BB[] = {
{0x13BB, 0xFFFF, 0xFFFF, 0xFFFF, "Sanyo Technosound Co Ltd(0x13BB)"},
}; /* pci_vid_13BB[] */
-pci_id_t pci_vid_13BC[] = {
+static pci_id_t const pci_vid_13BC[] = {
{0x13BC, 0xFFFF, 0xFFFF, 0xFFFF, "Bitran Corporation(0x13BC)"},
}; /* pci_vid_13BC[] */
-pci_id_t pci_vid_13BD[] = {
+static pci_id_t const pci_vid_13BD[] = {
{0x13BD, 0xFFFF, 0xFFFF, 0xFFFF, "Sharp corporation(0x13BD)"},
}; /* pci_vid_13BD[] */
-pci_id_t pci_vid_13BE[] = {
+static pci_id_t const pci_vid_13BE[] = {
{0x13BE, 0xFFFF, 0xFFFF, 0xFFFF, "Miroku Jyoho Service Co. Ltd(0x13BE)"},
}; /* pci_vid_13BE[] */
-pci_id_t pci_vid_13BF[] = {
+static pci_id_t const pci_vid_13BF[] = {
{0x13BF, 0xFFFF, 0xFFFF, 0xFFFF, "Sharewave Inc(0x13BF)"},
}; /* pci_vid_13BF[] */
-pci_id_t pci_vid_13C0[] = {
+static pci_id_t const pci_vid_13C0[] = {
{0x13C0, 0xFFFF, 0xFFFF, 0xFFFF, "Microgate Corporation(0x13C0)"},
{0x13C0, 0x0010, 0xFFFF, 0xFFFF, "SyncLink Adapter v1(0x0010)"},
{0x13C0, 0x0020, 0xFFFF, 0xFFFF, "SyncLink SCC Adapter(0x0020)"},
@@ -21009,7 +21096,7 @@ pci_id_t pci_vid_13C0[] = {
{0x13C0, 0x0210, 0xFFFF, 0xFFFF, "SyncLink Adapter v2(0x0210)"},
}; /* pci_vid_13C0[] */
-pci_id_t pci_vid_13C1[] = {
+static pci_id_t const pci_vid_13C1[] = {
{0x13C1, 0xFFFF, 0xFFFF, 0xFFFF, "3ware Inc(0x13C1)"},
{0x13C1, 0x1000, 0xFFFF, 0xFFFF, "5xxx/6xxx-series PATA-RAID(0x1000)"},
{0x13C1, 0x1001, 0xFFFF, 0xFFFF, "7xxx/8xxx-series PATA/SATA-RAID(0x1001)"},
@@ -21021,25 +21108,25 @@ pci_id_t pci_vid_13C1[] = {
{0x13C1, 0x1010, 0xFFFF, 0xFFFF, "9750 SAS2/SATA-II RAID PCIe(0x1010)"},
}; /* pci_vid_13C1[] */
-pci_id_t pci_vid_13C2[] = {
+static pci_id_t const pci_vid_13C2[] = {
{0x13C2, 0xFFFF, 0xFFFF, 0xFFFF, "Technotrend Systemtechnik GmbH(0x13C2)"},
{0x13C2, 0x000E, 0xFFFF, 0xFFFF, "Technotrend/Hauppauge DVB card rev2.3(0x000E)"},
{0x13C2, 0x1019, 0xFFFF, 0xFFFF, "TTechnoTrend-budget DVB S2-3200(0x1019)"},
}; /* pci_vid_13C2[] */
-pci_id_t pci_vid_13C3[] = {
+static pci_id_t const pci_vid_13C3[] = {
{0x13C3, 0xFFFF, 0xFFFF, 0xFFFF, "Janz Computer AG(0x13C3)"},
}; /* pci_vid_13C3[] */
-pci_id_t pci_vid_13C4[] = {
+static pci_id_t const pci_vid_13C4[] = {
{0x13C4, 0xFFFF, 0xFFFF, 0xFFFF, "Phase Metrics(0x13C4)"},
}; /* pci_vid_13C4[] */
-pci_id_t pci_vid_13C5[] = {
+static pci_id_t const pci_vid_13C5[] = {
{0x13C5, 0xFFFF, 0xFFFF, 0xFFFF, "Alphi Technology Corp(0x13C5)"},
}; /* pci_vid_13C5[] */
-pci_id_t pci_vid_13C6[] = {
+static pci_id_t const pci_vid_13C6[] = {
{0x13C6, 0xFFFF, 0xFFFF, 0xFFFF, "Condor Engineering Inc(0x13C6)"},
{0x13C6, 0x0520, 0xFFFF, 0xFFFF, "CEI-520 A429 Card(0x0520)"},
{0x13C6, 0x0620, 0xFFFF, 0xFFFF, "CEI-620 A429 Card(0x0620)"},
@@ -21048,7 +21135,7 @@ pci_id_t pci_vid_13C6[] = {
{0x13C6, 0x1004, 0xFFFF, 0xFFFF, "P-SER Multi-channel PMC to RS-485/422/232 adapter(0x1004)"},
}; /* pci_vid_13C6[] */
-pci_id_t pci_vid_13C7[] = {
+static pci_id_t const pci_vid_13C7[] = {
{0x13C7, 0xFFFF, 0xFFFF, 0xFFFF, "Blue Chip Technology Ltd(0x13C7)"},
{0x13C7, 0x0ADC, 0xFFFF, 0xFFFF, "PCI-ADC(0x0ADC)"},
{0x13C7, 0x0B10, 0xFFFF, 0xFFFF, "PCI-PIO(0x0B10)"},
@@ -21057,46 +21144,46 @@ pci_id_t pci_vid_13C7[] = {
{0x13C7, 0x5744, 0xFFFF, 0xFFFF, "PCI-WDT(0x5744)"},
}; /* pci_vid_13C7[] */
-pci_id_t pci_vid_13C8[] = {
+static pci_id_t const pci_vid_13C8[] = {
{0x13C8, 0xFFFF, 0xFFFF, 0xFFFF, "Apptech Inc(0x13C8)"},
}; /* pci_vid_13C8[] */
-pci_id_t pci_vid_13C9[] = {
+static pci_id_t const pci_vid_13C9[] = {
{0x13C9, 0xFFFF, 0xFFFF, 0xFFFF, "Eaton Corporation(0x13C9)"},
}; /* pci_vid_13C9[] */
-pci_id_t pci_vid_13CA[] = {
+static pci_id_t const pci_vid_13CA[] = {
{0x13CA, 0xFFFF, 0xFFFF, 0xFFFF, "Iomega Corporation(0x13CA)"},
}; /* pci_vid_13CA[] */
-pci_id_t pci_vid_13CB[] = {
+static pci_id_t const pci_vid_13CB[] = {
{0x13CB, 0xFFFF, 0xFFFF, 0xFFFF, "Yano Electric Co Ltd(0x13CB)"},
}; /* pci_vid_13CB[] */
-pci_id_t pci_vid_13CC[] = {
+static pci_id_t const pci_vid_13CC[] = {
{0x13CC, 0xFFFF, 0xFFFF, 0xFFFF, "BARCO(0x13CC)"},
}; /* pci_vid_13CC[] */
-pci_id_t pci_vid_13CD[] = {
+static pci_id_t const pci_vid_13CD[] = {
{0x13CD, 0xFFFF, 0xFFFF, 0xFFFF, "Compatible Systems Corporation(0x13CD)"},
}; /* pci_vid_13CD[] */
-pci_id_t pci_vid_13CE[] = {
+static pci_id_t const pci_vid_13CE[] = {
{0x13CE, 0xFFFF, 0xFFFF, 0xFFFF, "Cocom A/S(0x13CE)"},
}; /* pci_vid_13CE[] */
-pci_id_t pci_vid_13CF[] = {
+static pci_id_t const pci_vid_13CF[] = {
{0x13CF, 0xFFFF, 0xFFFF, 0xFFFF, "Studio Audio & Video Ltd(0x13CF)"},
}; /* pci_vid_13CF[] */
-pci_id_t pci_vid_13D0[] = {
+static pci_id_t const pci_vid_13D0[] = {
{0x13D0, 0xFFFF, 0xFFFF, 0xFFFF, "Techsan Electronics Co Ltd(0x13D0)"},
{0x13D0, 0x2103, 0xFFFF, 0xFFFF, "B2C2 FlexCopII DVB chip / Technisat SkyStar2 DVB card(0x2103)"},
{0x13D0, 0x2104, 0xFFFF, 0xFFFF, "B2C2 FlexCopIII DVB chip / Technisat SkyStar2 DVB card (rev 01)(0x2104)"},
{0x13D0, 0x2200, 0xFFFF, 0xFFFF, "B2C2 FlexCopIII DVB chip / Technisat SkyStar2 DVB card(0x2200)"},
}; /* pci_vid_13D0[] */
-pci_id_t pci_vid_13D1[] = {
+static pci_id_t const pci_vid_13D1[] = {
{0x13D1, 0xFFFF, 0xFFFF, 0xFFFF, "Abocom Systems Inc(0x13D1)"},
{0x13D1, 0xAB02, 0xFFFF, 0xFFFF, "ADMtek Centaur-C rev 17 [D-Link DFE-680TX] CardBus Fast Ethernet Adapter(0xAB02)"},
{0x13D1, 0xAB03, 0xFFFF, 0xFFFF, "21x4x DEC-Tulip compatible 10/100 Ethernet(0xAB03)"},
@@ -21104,126 +21191,126 @@ pci_id_t pci_vid_13D1[] = {
{0x13D1, 0xAB08, 0xFFFF, 0xFFFF, "21x4x DEC-Tulip compatible 10/100 Ethernet(0xAB08)"},
}; /* pci_vid_13D1[] */
-pci_id_t pci_vid_13D2[] = {
+static pci_id_t const pci_vid_13D2[] = {
{0x13D2, 0xFFFF, 0xFFFF, 0xFFFF, "Shark Multimedia Inc(0x13D2)"},
}; /* pci_vid_13D2[] */
-pci_id_t pci_vid_13D4[] = {
+static pci_id_t const pci_vid_13D4[] = {
{0x13D4, 0xFFFF, 0xFFFF, 0xFFFF, "Graphics Microsystems Inc(0x13D4)"},
}; /* pci_vid_13D4[] */
-pci_id_t pci_vid_13D5[] = {
+static pci_id_t const pci_vid_13D5[] = {
{0x13D5, 0xFFFF, 0xFFFF, 0xFFFF, "Media 100 Inc(0x13D5)"},
}; /* pci_vid_13D5[] */
-pci_id_t pci_vid_13D6[] = {
+static pci_id_t const pci_vid_13D6[] = {
{0x13D6, 0xFFFF, 0xFFFF, 0xFFFF, "K.I. Technology Co Ltd(0x13D6)"},
}; /* pci_vid_13D6[] */
-pci_id_t pci_vid_13D7[] = {
+static pci_id_t const pci_vid_13D7[] = {
{0x13D7, 0xFFFF, 0xFFFF, 0xFFFF, "Toshiba Engineering Corporation(0x13D7)"},
}; /* pci_vid_13D7[] */
-pci_id_t pci_vid_13D8[] = {
+static pci_id_t const pci_vid_13D8[] = {
{0x13D8, 0xFFFF, 0xFFFF, 0xFFFF, "Phobos corporation(0x13D8)"},
}; /* pci_vid_13D8[] */
-pci_id_t pci_vid_13D9[] = {
+static pci_id_t const pci_vid_13D9[] = {
{0x13D9, 0xFFFF, 0xFFFF, 0xFFFF, "Apex PC Solutions Inc(0x13D9)"},
}; /* pci_vid_13D9[] */
-pci_id_t pci_vid_13DA[] = {
+static pci_id_t const pci_vid_13DA[] = {
{0x13DA, 0xFFFF, 0xFFFF, 0xFFFF, "Intresource Systems pte Ltd(0x13DA)"},
}; /* pci_vid_13DA[] */
-pci_id_t pci_vid_13DB[] = {
+static pci_id_t const pci_vid_13DB[] = {
{0x13DB, 0xFFFF, 0xFFFF, 0xFFFF, "Janich & Klass Computertechnik GmbH(0x13DB)"},
}; /* pci_vid_13DB[] */
-pci_id_t pci_vid_13DC[] = {
+static pci_id_t const pci_vid_13DC[] = {
{0x13DC, 0xFFFF, 0xFFFF, 0xFFFF, "Netboost Corporation(0x13DC)"},
}; /* pci_vid_13DC[] */
-pci_id_t pci_vid_13DD[] = {
+static pci_id_t const pci_vid_13DD[] = {
{0x13DD, 0xFFFF, 0xFFFF, 0xFFFF, "Multimedia Bundle Inc(0x13DD)"},
}; /* pci_vid_13DD[] */
-pci_id_t pci_vid_13DE[] = {
+static pci_id_t const pci_vid_13DE[] = {
{0x13DE, 0xFFFF, 0xFFFF, 0xFFFF, "ABB Robotics Products AB(0x13DE)"},
}; /* pci_vid_13DE[] */
-pci_id_t pci_vid_13DF[] = {
+static pci_id_t const pci_vid_13DF[] = {
{0x13DF, 0xFFFF, 0xFFFF, 0xFFFF, "E-Tech Inc(0x13DF)"},
{0x13DF, 0x0001, 0xFFFF, 0xFFFF, "PCI56RVP Modem(0x0001)"},
{0x13DF, 0x0001, 0x13DF, 0x0001, "PCI56RVP Modem(0x13DF-0x0001)"},
}; /* pci_vid_13DF[] */
-pci_id_t pci_vid_13E0[] = {
+static pci_id_t const pci_vid_13E0[] = {
{0x13E0, 0xFFFF, 0xFFFF, 0xFFFF, "GVC Corporation(0x13E0)"},
}; /* pci_vid_13E0[] */
-pci_id_t pci_vid_13E1[] = {
+static pci_id_t const pci_vid_13E1[] = {
{0x13E1, 0xFFFF, 0xFFFF, 0xFFFF, "Silicom Multimedia Systems Inc(0x13E1)"},
}; /* pci_vid_13E1[] */
-pci_id_t pci_vid_13E2[] = {
+static pci_id_t const pci_vid_13E2[] = {
{0x13E2, 0xFFFF, 0xFFFF, 0xFFFF, "Dynamics Research Corporation(0x13E2)"},
}; /* pci_vid_13E2[] */
-pci_id_t pci_vid_13E3[] = {
+static pci_id_t const pci_vid_13E3[] = {
{0x13E3, 0xFFFF, 0xFFFF, 0xFFFF, "Nest Inc(0x13E3)"},
}; /* pci_vid_13E3[] */
-pci_id_t pci_vid_13E4[] = {
+static pci_id_t const pci_vid_13E4[] = {
{0x13E4, 0xFFFF, 0xFFFF, 0xFFFF, "Calculex Inc(0x13E4)"},
}; /* pci_vid_13E4[] */
-pci_id_t pci_vid_13E5[] = {
+static pci_id_t const pci_vid_13E5[] = {
{0x13E5, 0xFFFF, 0xFFFF, 0xFFFF, "Telesoft Design Ltd(0x13E5)"},
}; /* pci_vid_13E5[] */
-pci_id_t pci_vid_13E6[] = {
+static pci_id_t const pci_vid_13E6[] = {
{0x13E6, 0xFFFF, 0xFFFF, 0xFFFF, "Argosy research Inc(0x13E6)"},
}; /* pci_vid_13E6[] */
-pci_id_t pci_vid_13E7[] = {
+static pci_id_t const pci_vid_13E7[] = {
{0x13E7, 0xFFFF, 0xFFFF, 0xFFFF, "NAC Incorporated(0x13E7)"},
}; /* pci_vid_13E7[] */
-pci_id_t pci_vid_13E8[] = {
+static pci_id_t const pci_vid_13E8[] = {
{0x13E8, 0xFFFF, 0xFFFF, 0xFFFF, "Chip Express Corporation(0x13E8)"},
}; /* pci_vid_13E8[] */
-pci_id_t pci_vid_13E9[] = {
+static pci_id_t const pci_vid_13E9[] = {
{0x13E9, 0xFFFF, 0xFFFF, 0xFFFF, "Intraserver Technology Inc(0x13E9)"},
}; /* pci_vid_13E9[] */
-pci_id_t pci_vid_13EA[] = {
+static pci_id_t const pci_vid_13EA[] = {
{0x13EA, 0xFFFF, 0xFFFF, 0xFFFF, "Dallas Semiconductor(0x13EA)"},
}; /* pci_vid_13EA[] */
-pci_id_t pci_vid_13EB[] = {
+static pci_id_t const pci_vid_13EB[] = {
{0x13EB, 0xFFFF, 0xFFFF, 0xFFFF, "Hauppauge Computer Works Inc(0x13EB)"},
}; /* pci_vid_13EB[] */
-pci_id_t pci_vid_13EC[] = {
+static pci_id_t const pci_vid_13EC[] = {
{0x13EC, 0xFFFF, 0xFFFF, 0xFFFF, "Zydacron Inc(0x13EC)"},
{0x13EC, 0x000A, 0xFFFF, 0xFFFF, "NPC-RC01 Remote control receiver(0x000A)"},
}; /* pci_vid_13EC[] */
-pci_id_t pci_vid_13ED[] = {
+static pci_id_t const pci_vid_13ED[] = {
{0x13ED, 0xFFFF, 0xFFFF, 0xFFFF, "Raytheion E-Systems(0x13ED)"},
}; /* pci_vid_13ED[] */
-pci_id_t pci_vid_13EE[] = {
+static pci_id_t const pci_vid_13EE[] = {
{0x13EE, 0xFFFF, 0xFFFF, 0xFFFF, "Hayes Microcomputer Products Inc(0x13EE)"},
}; /* pci_vid_13EE[] */
-pci_id_t pci_vid_13EF[] = {
+static pci_id_t const pci_vid_13EF[] = {
{0x13EF, 0xFFFF, 0xFFFF, 0xFFFF, "Coppercom Inc(0x13EF)"},
}; /* pci_vid_13EF[] */
-pci_id_t pci_vid_13F0[] = {
+static pci_id_t const pci_vid_13F0[] = {
{0x13F0, 0xFFFF, 0xFFFF, 0xFFFF, "Sundance Technology Inc / IC Plus Corp(0x13F0)"},
{0x13F0, 0x0200, 0xFFFF, 0xFFFF, "IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY(0x0200)"},
{0x13F0, 0x0200, 0x1043, 0x8213, "NX1001(0x1043-0x8213)"},
@@ -21233,28 +21320,28 @@ pci_id_t pci_vid_13F0[] = {
{0x13F0, 0x1023, 0x1043, 0x8180, "NX1101(0x1043-0x8180)"},
}; /* pci_vid_13F0[] */
-pci_id_t pci_vid_13F1[] = {
+static pci_id_t const pci_vid_13F1[] = {
{0x13F1, 0xFFFF, 0xFFFF, 0xFFFF, "Oce' - Technologies B.V.(0x13F1)"},
}; /* pci_vid_13F1[] */
-pci_id_t pci_vid_13F2[] = {
+static pci_id_t const pci_vid_13F2[] = {
{0x13F2, 0xFFFF, 0xFFFF, 0xFFFF, "Ford Microelectronics Inc(0x13F2)"},
}; /* pci_vid_13F2[] */
-pci_id_t pci_vid_13F3[] = {
+static pci_id_t const pci_vid_13F3[] = {
{0x13F3, 0xFFFF, 0xFFFF, 0xFFFF, "Brocade Communications Systems, Inc.(0x13F3)"},
}; /* pci_vid_13F3[] */
-pci_id_t pci_vid_13F4[] = {
+static pci_id_t const pci_vid_13F4[] = {
{0x13F4, 0xFFFF, 0xFFFF, 0xFFFF, "Troika Networks, Inc.(0x13F4)"},
{0x13F4, 0x1401, 0xFFFF, 0xFFFF, "Zentai Fibre Channel Adapter(0x1401)"},
}; /* pci_vid_13F4[] */
-pci_id_t pci_vid_13F5[] = {
+static pci_id_t const pci_vid_13F5[] = {
{0x13F5, 0xFFFF, 0xFFFF, 0xFFFF, "Kansai Electric Co. Ltd(0x13F5)"},
}; /* pci_vid_13F5[] */
-pci_id_t pci_vid_13F6[] = {
+static pci_id_t const pci_vid_13F6[] = {
{0x13F6, 0xFFFF, 0xFFFF, 0xFFFF, "C-Media Electronics Inc(0x13F6)"},
{0x13F6, 0x0011, 0xFFFF, 0xFFFF, "CMI8738(0x0011)"},
{0x13F6, 0x0100, 0xFFFF, 0xFFFF, "CM8338A(0x0100)"},
@@ -21316,35 +21403,35 @@ pci_id_t pci_vid_13F6[] = {
{0x13F6, 0x8788, 0x7284, 0x9787, "CLARO II(0x7284-0x9787)"},
}; /* pci_vid_13F6[] */
-pci_id_t pci_vid_13F7[] = {
+static pci_id_t const pci_vid_13F7[] = {
{0x13F7, 0xFFFF, 0xFFFF, 0xFFFF, "Wildfire Communications(0x13F7)"},
}; /* pci_vid_13F7[] */
-pci_id_t pci_vid_13F8[] = {
+static pci_id_t const pci_vid_13F8[] = {
{0x13F8, 0xFFFF, 0xFFFF, 0xFFFF, "Ad Lib Multimedia Inc(0x13F8)"},
}; /* pci_vid_13F8[] */
-pci_id_t pci_vid_13F9[] = {
+static pci_id_t const pci_vid_13F9[] = {
{0x13F9, 0xFFFF, 0xFFFF, 0xFFFF, "NTT Advanced Technology Corp.(0x13F9)"},
}; /* pci_vid_13F9[] */
-pci_id_t pci_vid_13FA[] = {
+static pci_id_t const pci_vid_13FA[] = {
{0x13FA, 0xFFFF, 0xFFFF, 0xFFFF, "Pentland Systems Ltd(0x13FA)"},
}; /* pci_vid_13FA[] */
-pci_id_t pci_vid_13FB[] = {
+static pci_id_t const pci_vid_13FB[] = {
{0x13FB, 0xFFFF, 0xFFFF, 0xFFFF, "Aydin Corp(0x13FB)"},
}; /* pci_vid_13FB[] */
-pci_id_t pci_vid_13FC[] = {
+static pci_id_t const pci_vid_13FC[] = {
{0x13FC, 0xFFFF, 0xFFFF, 0xFFFF, "Computer Peripherals International(0x13FC)"},
}; /* pci_vid_13FC[] */
-pci_id_t pci_vid_13FD[] = {
+static pci_id_t const pci_vid_13FD[] = {
{0x13FD, 0xFFFF, 0xFFFF, 0xFFFF, "Micro Science Inc(0x13FD)"},
}; /* pci_vid_13FD[] */
-pci_id_t pci_vid_13FE[] = {
+static pci_id_t const pci_vid_13FE[] = {
{0x13FE, 0xFFFF, 0xFFFF, 0xFFFF, "Advantech Co. Ltd(0x13FE)"},
{0x13FE, 0x0071, 0xFFFF, 0xFFFF, "PCIE-1761H, 8-ch Relay and 8-ch Isolated Digital Input Card(0x0071)"},
{0x13FE, 0x1240, 0xFFFF, 0xFFFF, "PCI-1240 4-channel stepper motor controller card(0x1240)"},
@@ -21370,20 +21457,20 @@ pci_id_t pci_vid_13FE[] = {
{0x13FE, 0xC302, 0xFFFF, 0xFFFF, "MIOe-3680 2-Port CAN-Bus MIOe Module with Isolation Protection(0xC302)"},
}; /* pci_vid_13FE[] */
-pci_id_t pci_vid_13FF[] = {
+static pci_id_t const pci_vid_13FF[] = {
{0x13FF, 0xFFFF, 0xFFFF, 0xFFFF, "Silicon Spice Inc(0x13FF)"},
}; /* pci_vid_13FF[] */
-pci_id_t pci_vid_1400[] = {
+static pci_id_t const pci_vid_1400[] = {
{0x1400, 0xFFFF, 0xFFFF, 0xFFFF, "Artx Inc(0x1400)"},
{0x1400, 0x1401, 0xFFFF, 0xFFFF, "9432 TX(0x1401)"},
}; /* pci_vid_1400[] */
-pci_id_t pci_vid_1401[] = {
+static pci_id_t const pci_vid_1401[] = {
{0x1401, 0xFFFF, 0xFFFF, 0xFFFF, "CR-Systems A/S(0x1401)"},
}; /* pci_vid_1401[] */
-pci_id_t pci_vid_1402[] = {
+static pci_id_t const pci_vid_1402[] = {
{0x1402, 0xFFFF, 0xFFFF, 0xFFFF, "Meilhaus Electronic GmbH(0x1402)"},
{0x1402, 0x0630, 0xFFFF, 0xFFFF, "ME-630(0x0630)"},
{0x1402, 0x0940, 0xFFFF, 0xFFFF, "ME-94(0x0940)"},
@@ -21463,23 +21550,23 @@ pci_id_t pci_vid_1402[] = {
{0x1402, 0x820B, 0xFFFF, 0xFFFF, "ME-8200B(0x820B)"},
}; /* pci_vid_1402[] */
-pci_id_t pci_vid_1403[] = {
+static pci_id_t const pci_vid_1403[] = {
{0x1403, 0xFFFF, 0xFFFF, 0xFFFF, "Ascor Inc(0x1403)"},
}; /* pci_vid_1403[] */
-pci_id_t pci_vid_1404[] = {
+static pci_id_t const pci_vid_1404[] = {
{0x1404, 0xFFFF, 0xFFFF, 0xFFFF, "Fundamental Software Inc(0x1404)"},
}; /* pci_vid_1404[] */
-pci_id_t pci_vid_1405[] = {
+static pci_id_t const pci_vid_1405[] = {
{0x1405, 0xFFFF, 0xFFFF, 0xFFFF, "Excalibur Systems Inc(0x1405)"},
}; /* pci_vid_1405[] */
-pci_id_t pci_vid_1406[] = {
+static pci_id_t const pci_vid_1406[] = {
{0x1406, 0xFFFF, 0xFFFF, 0xFFFF, "Oce' Printing Systems GmbH(0x1406)"},
}; /* pci_vid_1406[] */
-pci_id_t pci_vid_1407[] = {
+static pci_id_t const pci_vid_1407[] = {
{0x1407, 0xFFFF, 0xFFFF, 0xFFFF, "Lava Computer mfg Inc(0x1407)"},
{0x1407, 0x0100, 0xFFFF, 0xFFFF, "Lava Dual Serial(0x0100)"},
{0x1407, 0x0101, 0xFFFF, 0xFFFF, "Lava Quatro A(0x0101)"},
@@ -21506,11 +21593,11 @@ pci_id_t pci_vid_1407[] = {
{0x1407, 0x8800, 0xFFFF, 0xFFFF, "BOCA Research IOPPAR(0x8800)"},
}; /* pci_vid_1407[] */
-pci_id_t pci_vid_1408[] = {
+static pci_id_t const pci_vid_1408[] = {
{0x1408, 0xFFFF, 0xFFFF, 0xFFFF, "Aloka Co. Ltd(0x1408)"},
}; /* pci_vid_1408[] */
-pci_id_t pci_vid_1409[] = {
+static pci_id_t const pci_vid_1409[] = {
{0x1409, 0xFFFF, 0xFFFF, 0xFFFF, "Timedia Technology Co Ltd(0x1409)"},
{0x1409, 0x7168, 0xFFFF, 0xFFFF, "PCI2S550 (Dual 16550 UART)(0x7168)"},
{0x1409, 0x7168, 0x1409, 0x0002, "SER4036A3V (2x RS232 port)(0x1409-0x0002)"},
@@ -21526,39 +21613,39 @@ pci_id_t pci_vid_1409[] = {
{0x1409, 0x7268, 0x1409, 0x0104, "PAR4018A(0x1409-0x0104)"},
}; /* pci_vid_1409[] */
-pci_id_t pci_vid_140A[] = {
+static pci_id_t const pci_vid_140A[] = {
{0x140A, 0xFFFF, 0xFFFF, 0xFFFF, "DSP Research Inc(0x140A)"},
}; /* pci_vid_140A[] */
-pci_id_t pci_vid_140B[] = {
+static pci_id_t const pci_vid_140B[] = {
{0x140B, 0xFFFF, 0xFFFF, 0xFFFF, "Abaco Systems, Inc.(0x140B)"},
}; /* pci_vid_140B[] */
-pci_id_t pci_vid_140C[] = {
+static pci_id_t const pci_vid_140C[] = {
{0x140C, 0xFFFF, 0xFFFF, 0xFFFF, "Elmic Systems Inc(0x140C)"},
}; /* pci_vid_140C[] */
-pci_id_t pci_vid_140D[] = {
+static pci_id_t const pci_vid_140D[] = {
{0x140D, 0xFFFF, 0xFFFF, 0xFFFF, "Matsushita Electric Works Ltd(0x140D)"},
}; /* pci_vid_140D[] */
-pci_id_t pci_vid_140E[] = {
+static pci_id_t const pci_vid_140E[] = {
{0x140E, 0xFFFF, 0xFFFF, 0xFFFF, "Goepel Electronic GmbH(0x140E)"},
}; /* pci_vid_140E[] */
-pci_id_t pci_vid_140F[] = {
+static pci_id_t const pci_vid_140F[] = {
{0x140F, 0xFFFF, 0xFFFF, 0xFFFF, "Salient Systems Corp(0x140F)"},
}; /* pci_vid_140F[] */
-pci_id_t pci_vid_1410[] = {
+static pci_id_t const pci_vid_1410[] = {
{0x1410, 0xFFFF, 0xFFFF, 0xFFFF, "Midas lab Inc(0x1410)"},
}; /* pci_vid_1410[] */
-pci_id_t pci_vid_1411[] = {
+static pci_id_t const pci_vid_1411[] = {
{0x1411, 0xFFFF, 0xFFFF, 0xFFFF, "Ikos Systems Inc(0x1411)"},
}; /* pci_vid_1411[] */
-pci_id_t pci_vid_1412[] = {
+static pci_id_t const pci_vid_1412[] = {
{0x1412, 0xFFFF, 0xFFFF, 0xFFFF, "VIA Technologies Inc.(0x1412)"},
{0x1412, 0x1712, 0xFFFF, 0xFFFF, "ICE1712 [Envy24] PCI Multi-Channel I/O Controller(0x1712)"},
{0x1412, 0x1712, 0x1412, 0x1712, "Hoontech ST Audio DSP 24(0x1412-0x1712)"},
@@ -21597,11 +21684,11 @@ pci_id_t pci_vid_1412[] = {
{0x1412, 0x1724, 0x3130, 0x4154, "MAYA 44 MKII(0x3130-0x4154)"},
}; /* pci_vid_1412[] */
-pci_id_t pci_vid_1413[] = {
+static pci_id_t const pci_vid_1413[] = {
{0x1413, 0xFFFF, 0xFFFF, 0xFFFF, "Addonics(0x1413)"},
}; /* pci_vid_1413[] */
-pci_id_t pci_vid_1414[] = {
+static pci_id_t const pci_vid_1414[] = {
{0x1414, 0xFFFF, 0xFFFF, 0xFFFF, "Microsoft Corporation(0x1414)"},
{0x1414, 0x0001, 0xFFFF, 0xFFFF, "MN-120 (ADMtek Centaur-C based)(0x0001)"},
{0x1414, 0x0002, 0xFFFF, 0xFFFF, "MN-130 (ADMtek Centaur-P based)(0x0002)"},
@@ -21621,7 +21708,7 @@ pci_id_t pci_vid_1414[] = {
{0x1414, 0x5811, 0xFFFF, 0xFFFF, "Xenos GPU (Xenon)(0x5811)"},
}; /* pci_vid_1414[] */
-pci_id_t pci_vid_1415[] = {
+static pci_id_t const pci_vid_1415[] = {
{0x1415, 0xFFFF, 0xFFFF, 0xFFFF, "Oxford Semiconductor Ltd(0x1415)"},
{0x1415, 0x8401, 0xFFFF, 0xFFFF, "OX9162 Mode 1 (8-bit bus)(0x8401)"},
{0x1415, 0x8403, 0xFFFF, 0xFFFF, "OX9162 Mode 0 (parallel port)(0x8403)"},
@@ -21790,65 +21877,65 @@ pci_id_t pci_vid_1415[] = {
{0x1415, 0xC5CF, 0xFFFF, 0xFFFF, "OXPCIe200 Native 950 UART(0xC5CF)"},
}; /* pci_vid_1415[] */
-pci_id_t pci_vid_1416[] = {
+static pci_id_t const pci_vid_1416[] = {
{0x1416, 0xFFFF, 0xFFFF, 0xFFFF, "Multiwave Innovation pte Ltd(0x1416)"},
}; /* pci_vid_1416[] */
-pci_id_t pci_vid_1417[] = {
+static pci_id_t const pci_vid_1417[] = {
{0x1417, 0xFFFF, 0xFFFF, 0xFFFF, "Convergenet Technologies Inc(0x1417)"},
}; /* pci_vid_1417[] */
-pci_id_t pci_vid_1418[] = {
+static pci_id_t const pci_vid_1418[] = {
{0x1418, 0xFFFF, 0xFFFF, 0xFFFF, "Kyushu electronics systems Inc(0x1418)"},
}; /* pci_vid_1418[] */
-pci_id_t pci_vid_1419[] = {
+static pci_id_t const pci_vid_1419[] = {
{0x1419, 0xFFFF, 0xFFFF, 0xFFFF, "Excel Switching Corp(0x1419)"},
}; /* pci_vid_1419[] */
-pci_id_t pci_vid_141A[] = {
+static pci_id_t const pci_vid_141A[] = {
{0x141A, 0xFFFF, 0xFFFF, 0xFFFF, "Apache Micro Peripherals Inc(0x141A)"},
}; /* pci_vid_141A[] */
-pci_id_t pci_vid_141B[] = {
+static pci_id_t const pci_vid_141B[] = {
{0x141B, 0xFFFF, 0xFFFF, 0xFFFF, "Zoom Telephonics Inc(0x141B)"},
}; /* pci_vid_141B[] */
-pci_id_t pci_vid_141D[] = {
+static pci_id_t const pci_vid_141D[] = {
{0x141D, 0xFFFF, 0xFFFF, 0xFFFF, "Digitan Systems Inc(0x141D)"},
}; /* pci_vid_141D[] */
-pci_id_t pci_vid_141E[] = {
+static pci_id_t const pci_vid_141E[] = {
{0x141E, 0xFFFF, 0xFFFF, 0xFFFF, "Fanuc Ltd(0x141E)"},
}; /* pci_vid_141E[] */
-pci_id_t pci_vid_141F[] = {
+static pci_id_t const pci_vid_141F[] = {
{0x141F, 0xFFFF, 0xFFFF, 0xFFFF, "Visiontech Ltd(0x141F)"},
}; /* pci_vid_141F[] */
-pci_id_t pci_vid_1420[] = {
+static pci_id_t const pci_vid_1420[] = {
{0x1420, 0xFFFF, 0xFFFF, 0xFFFF, "Psion Dacom plc(0x1420)"},
{0x1420, 0x8002, 0xFFFF, 0xFFFF, "Gold Card NetGlobal 56k+10/100Mb CardBus (Ethernet part)(0x8002)"},
{0x1420, 0x8003, 0xFFFF, 0xFFFF, "Gold Card NetGlobal 56k+10/100Mb CardBus (Modem part)(0x8003)"},
}; /* pci_vid_1420[] */
-pci_id_t pci_vid_1421[] = {
+static pci_id_t const pci_vid_1421[] = {
{0x1421, 0xFFFF, 0xFFFF, 0xFFFF, "Ads Technologies Inc(0x1421)"},
}; /* pci_vid_1421[] */
-pci_id_t pci_vid_1422[] = {
+static pci_id_t const pci_vid_1422[] = {
{0x1422, 0xFFFF, 0xFFFF, 0xFFFF, "Ygrec Systems Co Ltd(0x1422)"},
}; /* pci_vid_1422[] */
-pci_id_t pci_vid_1423[] = {
+static pci_id_t const pci_vid_1423[] = {
{0x1423, 0xFFFF, 0xFFFF, 0xFFFF, "Custom Technology Corp.(0x1423)"},
}; /* pci_vid_1423[] */
-pci_id_t pci_vid_1424[] = {
+static pci_id_t const pci_vid_1424[] = {
{0x1424, 0xFFFF, 0xFFFF, 0xFFFF, "Videoserver Connections(0x1424)"},
}; /* pci_vid_1424[] */
-pci_id_t pci_vid_1425[] = {
+static pci_id_t const pci_vid_1425[] = {
{0x1425, 0xFFFF, 0xFFFF, 0xFFFF, "Chelsio Communications Inc(0x1425)"},
{0x1425, 0x000B, 0xFFFF, 0xFFFF, "T210 Protocol Engine(0x000B)"},
{0x1425, 0x000C, 0xFFFF, 0xFFFF, "T204 Protocol Engine(0x000C)"},
@@ -22525,66 +22612,66 @@ pci_id_t pci_vid_1425[] = {
{0x1425, 0xA000, 0xFFFF, 0xFFFF, "PE10K Unified Wire Ethernet Controller(0xA000)"},
}; /* pci_vid_1425[] */
-pci_id_t pci_vid_1426[] = {
+static pci_id_t const pci_vid_1426[] = {
{0x1426, 0xFFFF, 0xFFFF, 0xFFFF, "Storage Technology Corp.(0x1426)"},
}; /* pci_vid_1426[] */
-pci_id_t pci_vid_1427[] = {
+static pci_id_t const pci_vid_1427[] = {
{0x1427, 0xFFFF, 0xFFFF, 0xFFFF, "Better On-Line Solutions(0x1427)"},
}; /* pci_vid_1427[] */
-pci_id_t pci_vid_1428[] = {
+static pci_id_t const pci_vid_1428[] = {
{0x1428, 0xFFFF, 0xFFFF, 0xFFFF, "Edec Co Ltd(0x1428)"},
}; /* pci_vid_1428[] */
-pci_id_t pci_vid_1429[] = {
+static pci_id_t const pci_vid_1429[] = {
{0x1429, 0xFFFF, 0xFFFF, 0xFFFF, "Unex Technology Corp.(0x1429)"},
}; /* pci_vid_1429[] */
-pci_id_t pci_vid_142A[] = {
+static pci_id_t const pci_vid_142A[] = {
{0x142A, 0xFFFF, 0xFFFF, 0xFFFF, "Kingmax Technology Inc(0x142A)"},
}; /* pci_vid_142A[] */
-pci_id_t pci_vid_142B[] = {
+static pci_id_t const pci_vid_142B[] = {
{0x142B, 0xFFFF, 0xFFFF, 0xFFFF, "Radiolan(0x142B)"},
}; /* pci_vid_142B[] */
-pci_id_t pci_vid_142C[] = {
+static pci_id_t const pci_vid_142C[] = {
{0x142C, 0xFFFF, 0xFFFF, 0xFFFF, "Minton Optic Industry Co Ltd(0x142C)"},
}; /* pci_vid_142C[] */
-pci_id_t pci_vid_142D[] = {
+static pci_id_t const pci_vid_142D[] = {
{0x142D, 0xFFFF, 0xFFFF, 0xFFFF, "Pix stream Inc(0x142D)"},
}; /* pci_vid_142D[] */
-pci_id_t pci_vid_142E[] = {
+static pci_id_t const pci_vid_142E[] = {
{0x142E, 0xFFFF, 0xFFFF, 0xFFFF, "Vitec Multimedia(0x142E)"},
{0x142E, 0x4020, 0xFFFF, 0xFFFF, "VM2-2 [Video Maker 2] MPEG1/2 Encoder(0x4020)"},
{0x142E, 0x4337, 0xFFFF, 0xFFFF, "VM2-2-C7 [Video Maker 2 rev. C7] MPEG1/2 Encoder(0x4337)"},
}; /* pci_vid_142E[] */
-pci_id_t pci_vid_142F[] = {
+static pci_id_t const pci_vid_142F[] = {
{0x142F, 0xFFFF, 0xFFFF, 0xFFFF, "Radicom Research Inc(0x142F)"},
}; /* pci_vid_142F[] */
-pci_id_t pci_vid_1430[] = {
+static pci_id_t const pci_vid_1430[] = {
{0x1430, 0xFFFF, 0xFFFF, 0xFFFF, "ITT Aerospace/Communications Division(0x1430)"},
}; /* pci_vid_1430[] */
-pci_id_t pci_vid_1431[] = {
+static pci_id_t const pci_vid_1431[] = {
{0x1431, 0xFFFF, 0xFFFF, 0xFFFF, "Gilat Satellite Networks(0x1431)"},
}; /* pci_vid_1431[] */
-pci_id_t pci_vid_1432[] = {
+static pci_id_t const pci_vid_1432[] = {
{0x1432, 0xFFFF, 0xFFFF, 0xFFFF, "Edimax Computer Co.(0x1432)"},
{0x1432, 0x9130, 0xFFFF, 0xFFFF, "RTL81xx Fast Ethernet(0x9130)"},
}; /* pci_vid_1432[] */
-pci_id_t pci_vid_1433[] = {
+static pci_id_t const pci_vid_1433[] = {
{0x1433, 0xFFFF, 0xFFFF, 0xFFFF, "Eltec Elektronik GmbH(0x1433)"},
}; /* pci_vid_1433[] */
-pci_id_t pci_vid_1435[] = {
+static pci_id_t const pci_vid_1435[] = {
{0x1435, 0xFFFF, 0xFFFF, 0xFFFF, "RTD Embedded Technologies, Inc.(0x1435)"},
{0x1435, 0x4520, 0xFFFF, 0xFFFF, "PCI4520(0x4520)"},
{0x1435, 0x6020, 0xFFFF, 0xFFFF, "SPM6020(0x6020)"},
@@ -22597,87 +22684,87 @@ pci_id_t pci_vid_1435[] = {
{0x1435, 0x7820, 0xFFFF, 0xFFFF, "DM7820(0x7820)"},
}; /* pci_vid_1435[] */
-pci_id_t pci_vid_1436[] = {
+static pci_id_t const pci_vid_1436[] = {
{0x1436, 0xFFFF, 0xFFFF, 0xFFFF, "CIS Technology Inc(0x1436)"},
}; /* pci_vid_1436[] */
-pci_id_t pci_vid_1437[] = {
+static pci_id_t const pci_vid_1437[] = {
{0x1437, 0xFFFF, 0xFFFF, 0xFFFF, "Nissin Inc Co(0x1437)"},
}; /* pci_vid_1437[] */
-pci_id_t pci_vid_1438[] = {
+static pci_id_t const pci_vid_1438[] = {
{0x1438, 0xFFFF, 0xFFFF, 0xFFFF, "Atmel-dream(0x1438)"},
}; /* pci_vid_1438[] */
-pci_id_t pci_vid_1439[] = {
+static pci_id_t const pci_vid_1439[] = {
{0x1439, 0xFFFF, 0xFFFF, 0xFFFF, "Outsource Engineering & Mfg. Inc(0x1439)"},
}; /* pci_vid_1439[] */
-pci_id_t pci_vid_143A[] = {
+static pci_id_t const pci_vid_143A[] = {
{0x143A, 0xFFFF, 0xFFFF, 0xFFFF, "Stargate Solutions Inc(0x143A)"},
}; /* pci_vid_143A[] */
-pci_id_t pci_vid_143B[] = {
+static pci_id_t const pci_vid_143B[] = {
{0x143B, 0xFFFF, 0xFFFF, 0xFFFF, "Canon Research Center, America(0x143B)"},
}; /* pci_vid_143B[] */
-pci_id_t pci_vid_143C[] = {
+static pci_id_t const pci_vid_143C[] = {
{0x143C, 0xFFFF, 0xFFFF, 0xFFFF, "Amlogic Inc(0x143C)"},
}; /* pci_vid_143C[] */
-pci_id_t pci_vid_143D[] = {
+static pci_id_t const pci_vid_143D[] = {
{0x143D, 0xFFFF, 0xFFFF, 0xFFFF, "Tamarack Microelectronics Inc(0x143D)"},
}; /* pci_vid_143D[] */
-pci_id_t pci_vid_143E[] = {
+static pci_id_t const pci_vid_143E[] = {
{0x143E, 0xFFFF, 0xFFFF, 0xFFFF, "Jones Futurex Inc(0x143E)"},
}; /* pci_vid_143E[] */
-pci_id_t pci_vid_143F[] = {
+static pci_id_t const pci_vid_143F[] = {
{0x143F, 0xFFFF, 0xFFFF, 0xFFFF, "Lightwell Co Ltd - Zax Division(0x143F)"},
}; /* pci_vid_143F[] */
-pci_id_t pci_vid_1440[] = {
+static pci_id_t const pci_vid_1440[] = {
{0x1440, 0xFFFF, 0xFFFF, 0xFFFF, "ALGOL Corp.(0x1440)"},
}; /* pci_vid_1440[] */
-pci_id_t pci_vid_1441[] = {
+static pci_id_t const pci_vid_1441[] = {
{0x1441, 0xFFFF, 0xFFFF, 0xFFFF, "AGIE Ltd(0x1441)"},
}; /* pci_vid_1441[] */
-pci_id_t pci_vid_1442[] = {
+static pci_id_t const pci_vid_1442[] = {
{0x1442, 0xFFFF, 0xFFFF, 0xFFFF, "Phoenix Contact GmbH & Co.(0x1442)"},
}; /* pci_vid_1442[] */
-pci_id_t pci_vid_1443[] = {
+static pci_id_t const pci_vid_1443[] = {
{0x1443, 0xFFFF, 0xFFFF, 0xFFFF, "Unibrain S.A.(0x1443)"},
}; /* pci_vid_1443[] */
-pci_id_t pci_vid_1444[] = {
+static pci_id_t const pci_vid_1444[] = {
{0x1444, 0xFFFF, 0xFFFF, 0xFFFF, "TRW(0x1444)"},
}; /* pci_vid_1444[] */
-pci_id_t pci_vid_1445[] = {
+static pci_id_t const pci_vid_1445[] = {
{0x1445, 0xFFFF, 0xFFFF, 0xFFFF, "Logical DO Ltd(0x1445)"},
}; /* pci_vid_1445[] */
-pci_id_t pci_vid_1446[] = {
+static pci_id_t const pci_vid_1446[] = {
{0x1446, 0xFFFF, 0xFFFF, 0xFFFF, "Graphin Co Ltd(0x1446)"},
}; /* pci_vid_1446[] */
-pci_id_t pci_vid_1447[] = {
+static pci_id_t const pci_vid_1447[] = {
{0x1447, 0xFFFF, 0xFFFF, 0xFFFF, "AIM GmBH(0x1447)"},
}; /* pci_vid_1447[] */
-pci_id_t pci_vid_1448[] = {
+static pci_id_t const pci_vid_1448[] = {
{0x1448, 0xFFFF, 0xFFFF, 0xFFFF, "Alesis Studio Electronics(0x1448)"},
}; /* pci_vid_1448[] */
-pci_id_t pci_vid_1449[] = {
+static pci_id_t const pci_vid_1449[] = {
{0x1449, 0xFFFF, 0xFFFF, 0xFFFF, "TUT Systems Inc(0x1449)"},
}; /* pci_vid_1449[] */
-pci_id_t pci_vid_144A[] = {
+static pci_id_t const pci_vid_144A[] = {
{0x144A, 0xFFFF, 0xFFFF, 0xFFFF, "Adlink Technology(0x144A)"},
{0x144A, 0x6208, 0xFFFF, 0xFFFF, "PCI-6208V(0x6208)"},
{0x144A, 0x7250, 0xFFFF, 0xFFFF, "PCI-7250(0x7250)"},
@@ -22695,15 +22782,15 @@ pci_id_t pci_vid_144A[] = {
{0x144A, 0xA001, 0xFFFF, 0xFFFF, "ADi-BSEC(0xA001)"},
}; /* pci_vid_144A[] */
-pci_id_t pci_vid_144B[] = {
+static pci_id_t const pci_vid_144B[] = {
{0x144B, 0xFFFF, 0xFFFF, 0xFFFF, "Verint Systems Inc.(0x144B)"},
}; /* pci_vid_144B[] */
-pci_id_t pci_vid_144C[] = {
+static pci_id_t const pci_vid_144C[] = {
{0x144C, 0xFFFF, 0xFFFF, 0xFFFF, "Catalina Research Inc(0x144C)"},
}; /* pci_vid_144C[] */
-pci_id_t pci_vid_144D[] = {
+static pci_id_t const pci_vid_144D[] = {
{0x144D, 0xFFFF, 0xFFFF, 0xFFFF, "Samsung Electronics Co Ltd(0x144D)"},
{0x144D, 0x1600, 0xFFFF, 0xFFFF, "S4LN053X01 AHCI SSD Controller(Apple slot)(0x1600)"},
{0x144D, 0x9602, 0xFFFF, 0xFFFF, "RS780/RS880 PCI to PCI bridge (int gfx)(0x9602)"},
@@ -22870,83 +22957,83 @@ pci_id_t pci_vid_144D[] = {
{0x144D, 0xECEC, 0xFFFF, 0xFFFF, "Exynos 8895 PCIe Root Complex(0xECEC)"},
}; /* pci_vid_144D[] */
-pci_id_t pci_vid_144E[] = {
+static pci_id_t const pci_vid_144E[] = {
{0x144E, 0xFFFF, 0xFFFF, 0xFFFF, "OLITEC(0x144E)"},
}; /* pci_vid_144E[] */
-pci_id_t pci_vid_144F[] = {
+static pci_id_t const pci_vid_144F[] = {
{0x144F, 0xFFFF, 0xFFFF, 0xFFFF, "Askey Computer Corp.(0x144F)"},
}; /* pci_vid_144F[] */
-pci_id_t pci_vid_1450[] = {
+static pci_id_t const pci_vid_1450[] = {
{0x1450, 0xFFFF, 0xFFFF, 0xFFFF, "Octave Communications Ind.(0x1450)"},
}; /* pci_vid_1450[] */
-pci_id_t pci_vid_1451[] = {
+static pci_id_t const pci_vid_1451[] = {
{0x1451, 0xFFFF, 0xFFFF, 0xFFFF, "SP3D Chip Design GmBH(0x1451)"},
}; /* pci_vid_1451[] */
-pci_id_t pci_vid_1453[] = {
+static pci_id_t const pci_vid_1453[] = {
{0x1453, 0xFFFF, 0xFFFF, 0xFFFF, "MYCOM Inc(0x1453)"},
}; /* pci_vid_1453[] */
-pci_id_t pci_vid_1454[] = {
+static pci_id_t const pci_vid_1454[] = {
{0x1454, 0xFFFF, 0xFFFF, 0xFFFF, "Altiga Networks(0x1454)"},
}; /* pci_vid_1454[] */
-pci_id_t pci_vid_1455[] = {
+static pci_id_t const pci_vid_1455[] = {
{0x1455, 0xFFFF, 0xFFFF, 0xFFFF, "Logic Plus Plus Inc(0x1455)"},
}; /* pci_vid_1455[] */
-pci_id_t pci_vid_1456[] = {
+static pci_id_t const pci_vid_1456[] = {
{0x1456, 0xFFFF, 0xFFFF, 0xFFFF, "Advanced Hardware Architectures(0x1456)"},
}; /* pci_vid_1456[] */
-pci_id_t pci_vid_1457[] = {
+static pci_id_t const pci_vid_1457[] = {
{0x1457, 0xFFFF, 0xFFFF, 0xFFFF, "Nuera Communications Inc(0x1457)"},
}; /* pci_vid_1457[] */
-pci_id_t pci_vid_1458[] = {
+static pci_id_t const pci_vid_1458[] = {
{0x1458, 0xFFFF, 0xFFFF, 0xFFFF, "Gigabyte Technology Co., Ltd(0x1458)"},
{0x1458, 0x1002, 0xFFFF, 0xFFFF, "Aourus Radeon RX6900XT Xtreme Waterforce WB 16G(0x1002)"},
{0x1458, 0x22E8, 0xFFFF, 0xFFFF, "Ellesmere [Radeon RX 480](0x22E8)"},
{0x1458, 0x3483, 0xFFFF, 0xFFFF, "USB 3.0 Controller (VIA VL80x-based xHCI Controller)(0x3483)"},
}; /* pci_vid_1458[] */
-pci_id_t pci_vid_1459[] = {
+static pci_id_t const pci_vid_1459[] = {
{0x1459, 0xFFFF, 0xFFFF, 0xFFFF, "DOOIN Electronics(0x1459)"},
}; /* pci_vid_1459[] */
-pci_id_t pci_vid_145A[] = {
+static pci_id_t const pci_vid_145A[] = {
{0x145A, 0xFFFF, 0xFFFF, 0xFFFF, "Escalate Networks Inc(0x145A)"},
}; /* pci_vid_145A[] */
-pci_id_t pci_vid_145B[] = {
+static pci_id_t const pci_vid_145B[] = {
{0x145B, 0xFFFF, 0xFFFF, 0xFFFF, "PRAIM SRL(0x145B)"},
}; /* pci_vid_145B[] */
-pci_id_t pci_vid_145C[] = {
+static pci_id_t const pci_vid_145C[] = {
{0x145C, 0xFFFF, 0xFFFF, 0xFFFF, "Cryptek(0x145C)"},
}; /* pci_vid_145C[] */
-pci_id_t pci_vid_145D[] = {
+static pci_id_t const pci_vid_145D[] = {
{0x145D, 0xFFFF, 0xFFFF, 0xFFFF, "Gallant Computer Inc(0x145D)"},
}; /* pci_vid_145D[] */
-pci_id_t pci_vid_145E[] = {
+static pci_id_t const pci_vid_145E[] = {
{0x145E, 0xFFFF, 0xFFFF, 0xFFFF, "Aashima Technology B.V.(0x145E)"},
}; /* pci_vid_145E[] */
-pci_id_t pci_vid_145F[] = {
+static pci_id_t const pci_vid_145F[] = {
{0x145F, 0xFFFF, 0xFFFF, 0xFFFF, "Baldor Electric Company(0x145F)"},
{0x145F, 0x0001, 0xFFFF, 0xFFFF, "NextMove PCI(0x0001)"},
}; /* pci_vid_145F[] */
-pci_id_t pci_vid_1460[] = {
+static pci_id_t const pci_vid_1460[] = {
{0x1460, 0xFFFF, 0xFFFF, 0xFFFF, "DYNARC INC(0x1460)"},
}; /* pci_vid_1460[] */
-pci_id_t pci_vid_1461[] = {
+static pci_id_t const pci_vid_1461[] = {
{0x1461, 0xFFFF, 0xFFFF, 0xFFFF, "Avermedia Technologies Inc(0x1461)"},
{0x1461, 0xA3CE, 0xFFFF, 0xFFFF, "M179(0xA3CE)"},
{0x1461, 0xA3CF, 0xFFFF, 0xFFFF, "M179(0xA3CF)"},
@@ -22955,231 +23042,231 @@ pci_id_t pci_vid_1461[] = {
{0x1461, 0xF436, 0xFFFF, 0xFFFF, "AVerTV Hybrid+FM(0xF436)"},
}; /* pci_vid_1461[] */
-pci_id_t pci_vid_1462[] = {
+static pci_id_t const pci_vid_1462[] = {
{0x1462, 0xFFFF, 0xFFFF, 0xFFFF, "Micro-Star International Co., Ltd. [MSI](0x1462)"},
{0x1462, 0x3483, 0xFFFF, 0xFFFF, "MSI USB 3.0 (VIA VL80x-based xHCI USB Controller)(0x3483)"},
{0x1462, 0x7C56, 0xFFFF, 0xFFFF, "Realtek Ethernet controller RTL8111H(0x7C56)"},
{0x1462, 0xAAF0, 0xFFFF, 0xFFFF, "Radeon RX 580 Gaming X 8G(0xAAF0)"},
}; /* pci_vid_1462[] */
-pci_id_t pci_vid_1463[] = {
+static pci_id_t const pci_vid_1463[] = {
{0x1463, 0xFFFF, 0xFFFF, 0xFFFF, "Fast Corporation(0x1463)"},
}; /* pci_vid_1463[] */
-pci_id_t pci_vid_1464[] = {
+static pci_id_t const pci_vid_1464[] = {
{0x1464, 0xFFFF, 0xFFFF, 0xFFFF, "Interactive Circuits & Systems Ltd(0x1464)"},
}; /* pci_vid_1464[] */
-pci_id_t pci_vid_1465[] = {
+static pci_id_t const pci_vid_1465[] = {
{0x1465, 0xFFFF, 0xFFFF, 0xFFFF, "GN NETTEST Telecom DIV.(0x1465)"},
}; /* pci_vid_1465[] */
-pci_id_t pci_vid_1466[] = {
+static pci_id_t const pci_vid_1466[] = {
{0x1466, 0xFFFF, 0xFFFF, 0xFFFF, "Designpro Inc.(0x1466)"},
}; /* pci_vid_1466[] */
-pci_id_t pci_vid_1467[] = {
+static pci_id_t const pci_vid_1467[] = {
{0x1467, 0xFFFF, 0xFFFF, 0xFFFF, "DIGICOM SPA(0x1467)"},
}; /* pci_vid_1467[] */
-pci_id_t pci_vid_1468[] = {
+static pci_id_t const pci_vid_1468[] = {
{0x1468, 0xFFFF, 0xFFFF, 0xFFFF, "AMBIT Microsystem Corp.(0x1468)"},
}; /* pci_vid_1468[] */
-pci_id_t pci_vid_1469[] = {
+static pci_id_t const pci_vid_1469[] = {
{0x1469, 0xFFFF, 0xFFFF, 0xFFFF, "Cleveland Motion Controls(0x1469)"},
}; /* pci_vid_1469[] */
-pci_id_t pci_vid_146A[] = {
+static pci_id_t const pci_vid_146A[] = {
{0x146A, 0xFFFF, 0xFFFF, 0xFFFF, "Aeroflex(0x146A)"},
{0x146A, 0x3010, 0xFFFF, 0xFFFF, "3010 RF Synthesizer(0x3010)"},
{0x146A, 0x3A11, 0xFFFF, 0xFFFF, "3011A PXI RF Synthesizer(0x3A11)"},
}; /* pci_vid_146A[] */
-pci_id_t pci_vid_146B[] = {
+static pci_id_t const pci_vid_146B[] = {
{0x146B, 0xFFFF, 0xFFFF, 0xFFFF, "Parascan Technologies Ltd(0x146B)"},
}; /* pci_vid_146B[] */
-pci_id_t pci_vid_146C[] = {
+static pci_id_t const pci_vid_146C[] = {
{0x146C, 0xFFFF, 0xFFFF, 0xFFFF, "Ruby Tech Corp.(0x146C)"},
{0x146C, 0x1430, 0xFFFF, 0xFFFF, "FE-1430TX Fast Ethernet PCI Adapter(0x1430)"},
}; /* pci_vid_146C[] */
-pci_id_t pci_vid_146D[] = {
+static pci_id_t const pci_vid_146D[] = {
{0x146D, 0xFFFF, 0xFFFF, 0xFFFF, "Tachyon, INC.(0x146D)"},
}; /* pci_vid_146D[] */
-pci_id_t pci_vid_146E[] = {
+static pci_id_t const pci_vid_146E[] = {
{0x146E, 0xFFFF, 0xFFFF, 0xFFFF, "Williams Electronics Games, Inc.(0x146E)"},
}; /* pci_vid_146E[] */
-pci_id_t pci_vid_146F[] = {
+static pci_id_t const pci_vid_146F[] = {
{0x146F, 0xFFFF, 0xFFFF, 0xFFFF, "Multi Dimensional Consulting Inc(0x146F)"},
}; /* pci_vid_146F[] */
-pci_id_t pci_vid_1470[] = {
+static pci_id_t const pci_vid_1470[] = {
{0x1470, 0xFFFF, 0xFFFF, 0xFFFF, "Bay Networks(0x1470)"},
}; /* pci_vid_1470[] */
-pci_id_t pci_vid_1471[] = {
+static pci_id_t const pci_vid_1471[] = {
{0x1471, 0xFFFF, 0xFFFF, 0xFFFF, "Integrated Telecom Express Inc(0x1471)"},
}; /* pci_vid_1471[] */
-pci_id_t pci_vid_1472[] = {
+static pci_id_t const pci_vid_1472[] = {
{0x1472, 0xFFFF, 0xFFFF, 0xFFFF, "DAIKIN Industries, Ltd(0x1472)"},
}; /* pci_vid_1472[] */
-pci_id_t pci_vid_1473[] = {
+static pci_id_t const pci_vid_1473[] = {
{0x1473, 0xFFFF, 0xFFFF, 0xFFFF, "ZAPEX Technologies Inc(0x1473)"},
}; /* pci_vid_1473[] */
-pci_id_t pci_vid_1474[] = {
+static pci_id_t const pci_vid_1474[] = {
{0x1474, 0xFFFF, 0xFFFF, 0xFFFF, "Doug Carson & Associates(0x1474)"},
}; /* pci_vid_1474[] */
-pci_id_t pci_vid_1475[] = {
+static pci_id_t const pci_vid_1475[] = {
{0x1475, 0xFFFF, 0xFFFF, 0xFFFF, "PICAZO Communications(0x1475)"},
}; /* pci_vid_1475[] */
-pci_id_t pci_vid_1476[] = {
+static pci_id_t const pci_vid_1476[] = {
{0x1476, 0xFFFF, 0xFFFF, 0xFFFF, "MORTARA Instrument Inc(0x1476)"},
}; /* pci_vid_1476[] */
-pci_id_t pci_vid_1477[] = {
+static pci_id_t const pci_vid_1477[] = {
{0x1477, 0xFFFF, 0xFFFF, 0xFFFF, "Net Insight(0x1477)"},
}; /* pci_vid_1477[] */
-pci_id_t pci_vid_1478[] = {
+static pci_id_t const pci_vid_1478[] = {
{0x1478, 0xFFFF, 0xFFFF, 0xFFFF, "DIATREND Corporation(0x1478)"},
}; /* pci_vid_1478[] */
-pci_id_t pci_vid_1479[] = {
+static pci_id_t const pci_vid_1479[] = {
{0x1479, 0xFFFF, 0xFFFF, 0xFFFF, "TORAY Industries Inc(0x1479)"},
}; /* pci_vid_1479[] */
-pci_id_t pci_vid_147A[] = {
+static pci_id_t const pci_vid_147A[] = {
{0x147A, 0xFFFF, 0xFFFF, 0xFFFF, "FORMOSA Industrial Computing(0x147A)"},
}; /* pci_vid_147A[] */
-pci_id_t pci_vid_147B[] = {
+static pci_id_t const pci_vid_147B[] = {
{0x147B, 0xFFFF, 0xFFFF, 0xFFFF, "ABIT Computer Corp.(0x147B)"},
{0x147B, 0x1084, 0xFFFF, 0xFFFF, "IP35 [Dark Raider](0x1084)"},
}; /* pci_vid_147B[] */
-pci_id_t pci_vid_147C[] = {
+static pci_id_t const pci_vid_147C[] = {
{0x147C, 0xFFFF, 0xFFFF, 0xFFFF, "AWARE, Inc.(0x147C)"},
}; /* pci_vid_147C[] */
-pci_id_t pci_vid_147D[] = {
+static pci_id_t const pci_vid_147D[] = {
{0x147D, 0xFFFF, 0xFFFF, 0xFFFF, "Interworks Computer Products(0x147D)"},
}; /* pci_vid_147D[] */
-pci_id_t pci_vid_147E[] = {
+static pci_id_t const pci_vid_147E[] = {
{0x147E, 0xFFFF, 0xFFFF, 0xFFFF, "Matsushita Graphic Communication Systems, Inc.(0x147E)"},
}; /* pci_vid_147E[] */
-pci_id_t pci_vid_147F[] = {
+static pci_id_t const pci_vid_147F[] = {
{0x147F, 0xFFFF, 0xFFFF, 0xFFFF, "NIHON UNISYS, Ltd.(0x147F)"},
}; /* pci_vid_147F[] */
-pci_id_t pci_vid_1480[] = {
+static pci_id_t const pci_vid_1480[] = {
{0x1480, 0xFFFF, 0xFFFF, 0xFFFF, "SCII Telecom(0x1480)"},
}; /* pci_vid_1480[] */
-pci_id_t pci_vid_1481[] = {
+static pci_id_t const pci_vid_1481[] = {
{0x1481, 0xFFFF, 0xFFFF, 0xFFFF, "BIOPAC Systems Inc(0x1481)"},
}; /* pci_vid_1481[] */
-pci_id_t pci_vid_1482[] = {
+static pci_id_t const pci_vid_1482[] = {
{0x1482, 0xFFFF, 0xFFFF, 0xFFFF, "ISYTEC - Integrierte Systemtechnik GmBH(0x1482)"},
{0x1482, 0x0001, 0xFFFF, 0xFFFF, "PCI-16 Host Interface for ITC-16(0x0001)"},
}; /* pci_vid_1482[] */
-pci_id_t pci_vid_1483[] = {
+static pci_id_t const pci_vid_1483[] = {
{0x1483, 0xFFFF, 0xFFFF, 0xFFFF, "LABWAY Corporation(0x1483)"},
}; /* pci_vid_1483[] */
-pci_id_t pci_vid_1484[] = {
+static pci_id_t const pci_vid_1484[] = {
{0x1484, 0xFFFF, 0xFFFF, 0xFFFF, "Logic Corporation(0x1484)"},
}; /* pci_vid_1484[] */
-pci_id_t pci_vid_1485[] = {
+static pci_id_t const pci_vid_1485[] = {
{0x1485, 0xFFFF, 0xFFFF, 0xFFFF, "ERMA - Electronic GmBH(0x1485)"},
}; /* pci_vid_1485[] */
-pci_id_t pci_vid_1486[] = {
+static pci_id_t const pci_vid_1486[] = {
{0x1486, 0xFFFF, 0xFFFF, 0xFFFF, "L3 Communications Telemetry & Instrumentation(0x1486)"},
}; /* pci_vid_1486[] */
-pci_id_t pci_vid_1487[] = {
+static pci_id_t const pci_vid_1487[] = {
{0x1487, 0xFFFF, 0xFFFF, 0xFFFF, "MARQUETTE Medical Systems(0x1487)"},
}; /* pci_vid_1487[] */
-pci_id_t pci_vid_1489[] = {
+static pci_id_t const pci_vid_1489[] = {
{0x1489, 0xFFFF, 0xFFFF, 0xFFFF, "KYE Systems Corporation(0x1489)"},
}; /* pci_vid_1489[] */
-pci_id_t pci_vid_148A[] = {
+static pci_id_t const pci_vid_148A[] = {
{0x148A, 0xFFFF, 0xFFFF, 0xFFFF, "OPTO(0x148A)"},
}; /* pci_vid_148A[] */
-pci_id_t pci_vid_148B[] = {
+static pci_id_t const pci_vid_148B[] = {
{0x148B, 0xFFFF, 0xFFFF, 0xFFFF, "INNOMEDIALOGIC Inc.(0x148B)"},
}; /* pci_vid_148B[] */
-pci_id_t pci_vid_148C[] = {
+static pci_id_t const pci_vid_148C[] = {
{0x148C, 0xFFFF, 0xFFFF, 0xFFFF, "Tul Corporation / PowerColor(0x148C)"},
{0x148C, 0x2391, 0xFFFF, 0xFFFF, "Radeon RX 590 [Red Devil](0x2391)"},
{0x148C, 0x2398, 0xFFFF, 0xFFFF, "AXRX 5700 XT 8GBD6-3DHE/OC [PowerColor Red Devil Radeon RX 5700 XT](0x2398)"},
}; /* pci_vid_148C[] */
-pci_id_t pci_vid_148D[] = {
+static pci_id_t const pci_vid_148D[] = {
{0x148D, 0xFFFF, 0xFFFF, 0xFFFF, "DIGICOM Systems, Inc.(0x148D)"},
{0x148D, 0x1003, 0xFFFF, 0xFFFF, "HCF 56k Data/Fax Modem(0x1003)"},
}; /* pci_vid_148D[] */
-pci_id_t pci_vid_148E[] = {
+static pci_id_t const pci_vid_148E[] = {
{0x148E, 0xFFFF, 0xFFFF, 0xFFFF, "OSI Plus Corporation(0x148E)"},
}; /* pci_vid_148E[] */
-pci_id_t pci_vid_148F[] = {
+static pci_id_t const pci_vid_148F[] = {
{0x148F, 0xFFFF, 0xFFFF, 0xFFFF, "Plant Equipment, Inc.(0x148F)"},
}; /* pci_vid_148F[] */
-pci_id_t pci_vid_1490[] = {
+static pci_id_t const pci_vid_1490[] = {
{0x1490, 0xFFFF, 0xFFFF, 0xFFFF, "Stone Microsystems PTY Ltd.(0x1490)"},
}; /* pci_vid_1490[] */
-pci_id_t pci_vid_1491[] = {
+static pci_id_t const pci_vid_1491[] = {
{0x1491, 0xFFFF, 0xFFFF, 0xFFFF, "ZEAL Corporation(0x1491)"},
}; /* pci_vid_1491[] */
-pci_id_t pci_vid_1492[] = {
+static pci_id_t const pci_vid_1492[] = {
{0x1492, 0xFFFF, 0xFFFF, 0xFFFF, "Time Logic Corporation(0x1492)"},
}; /* pci_vid_1492[] */
-pci_id_t pci_vid_1493[] = {
+static pci_id_t const pci_vid_1493[] = {
{0x1493, 0xFFFF, 0xFFFF, 0xFFFF, "MAKER Communications(0x1493)"},
}; /* pci_vid_1493[] */
-pci_id_t pci_vid_1494[] = {
+static pci_id_t const pci_vid_1494[] = {
{0x1494, 0xFFFF, 0xFFFF, 0xFFFF, "WINTOP Technology, Inc.(0x1494)"},
}; /* pci_vid_1494[] */
-pci_id_t pci_vid_1495[] = {
+static pci_id_t const pci_vid_1495[] = {
{0x1495, 0xFFFF, 0xFFFF, 0xFFFF, "TOKAI Communications Industry Co. Ltd(0x1495)"},
}; /* pci_vid_1495[] */
-pci_id_t pci_vid_1496[] = {
+static pci_id_t const pci_vid_1496[] = {
{0x1496, 0xFFFF, 0xFFFF, 0xFFFF, "JOYTECH Computer Co., Ltd.(0x1496)"},
}; /* pci_vid_1496[] */
-pci_id_t pci_vid_1497[] = {
+static pci_id_t const pci_vid_1497[] = {
{0x1497, 0xFFFF, 0xFFFF, 0xFFFF, "SMA Regelsysteme GmBH(0x1497)"},
{0x1497, 0x1497, 0xFFFF, 0xFFFF, "SMA Technologie AG(0x1497)"},
}; /* pci_vid_1497[] */
-pci_id_t pci_vid_1498[] = {
+static pci_id_t const pci_vid_1498[] = {
{0x1498, 0xFFFF, 0xFFFF, 0xFFFF, "TEWS Technologies GmbH(0x1498)"},
{0x1498, 0x0330, 0xFFFF, 0xFFFF, "TPMC816 2 Channel CAN bus controller.(0x0330)"},
{0x1498, 0x035D, 0xFFFF, 0xFFFF, "TPMC861 4-Channel Isolated Serial Interface RS422/RS485(0x035D)"},
@@ -23192,53 +23279,53 @@ pci_id_t pci_vid_1498[] = {
{0x1498, 0x9177, 0xFFFF, 0xFFFF, "TXMC375 8 channel RS232/RS422/RS485 programmable serial interface(0x9177)"},
}; /* pci_vid_1498[] */
-pci_id_t pci_vid_1499[] = {
+static pci_id_t const pci_vid_1499[] = {
{0x1499, 0xFFFF, 0xFFFF, 0xFFFF, "EMTEC CO., Ltd(0x1499)"},
}; /* pci_vid_1499[] */
-pci_id_t pci_vid_149A[] = {
+static pci_id_t const pci_vid_149A[] = {
{0x149A, 0xFFFF, 0xFFFF, 0xFFFF, "ANDOR Technology Ltd(0x149A)"},
}; /* pci_vid_149A[] */
-pci_id_t pci_vid_149B[] = {
+static pci_id_t const pci_vid_149B[] = {
{0x149B, 0xFFFF, 0xFFFF, 0xFFFF, "SEIKO Instruments Inc(0x149B)"},
}; /* pci_vid_149B[] */
-pci_id_t pci_vid_149C[] = {
+static pci_id_t const pci_vid_149C[] = {
{0x149C, 0xFFFF, 0xFFFF, 0xFFFF, "OVISLINK Corp.(0x149C)"},
}; /* pci_vid_149C[] */
-pci_id_t pci_vid_149D[] = {
+static pci_id_t const pci_vid_149D[] = {
{0x149D, 0xFFFF, 0xFFFF, 0xFFFF, "NEWTEK Inc(0x149D)"},
{0x149D, 0x0001, 0xFFFF, 0xFFFF, "Video Toaster for PC(0x0001)"},
}; /* pci_vid_149D[] */
-pci_id_t pci_vid_149E[] = {
+static pci_id_t const pci_vid_149E[] = {
{0x149E, 0xFFFF, 0xFFFF, 0xFFFF, "Mapletree Networks Inc.(0x149E)"},
}; /* pci_vid_149E[] */
-pci_id_t pci_vid_149F[] = {
+static pci_id_t const pci_vid_149F[] = {
{0x149F, 0xFFFF, 0xFFFF, 0xFFFF, "LECTRON Co Ltd(0x149F)"},
}; /* pci_vid_149F[] */
-pci_id_t pci_vid_14A0[] = {
+static pci_id_t const pci_vid_14A0[] = {
{0x14A0, 0xFFFF, 0xFFFF, 0xFFFF, "SOFTING GmBH(0x14A0)"},
}; /* pci_vid_14A0[] */
-pci_id_t pci_vid_14A1[] = {
+static pci_id_t const pci_vid_14A1[] = {
{0x14A1, 0xFFFF, 0xFFFF, 0xFFFF, "Systembase Co Ltd(0x14A1)"},
{0x14A1, 0x4D02, 0xFFFF, 0xFFFF, "SB16C1052PCI [Multi-2/PCIe RS232](0x4D02)"},
}; /* pci_vid_14A1[] */
-pci_id_t pci_vid_14A2[] = {
+static pci_id_t const pci_vid_14A2[] = {
{0x14A2, 0xFFFF, 0xFFFF, 0xFFFF, "Millennium Engineering Inc(0x14A2)"},
}; /* pci_vid_14A2[] */
-pci_id_t pci_vid_14A3[] = {
+static pci_id_t const pci_vid_14A3[] = {
{0x14A3, 0xFFFF, 0xFFFF, 0xFFFF, "Maverick Networks(0x14A3)"},
}; /* pci_vid_14A3[] */
-pci_id_t pci_vid_14A4[] = {
+static pci_id_t const pci_vid_14A4[] = {
{0x14A4, 0xFFFF, 0xFFFF, 0xFFFF, "Lite-On Technology Corporation(0x14A4)"},
{0x14A4, 0x2100, 0xFFFF, 0xFFFF, "CA1-8D128 NVMe SSD(0x2100)"},
{0x14A4, 0x2200, 0xFFFF, 0xFFFF, "CX2-8B256, CX2-8B512 NVMe SSD(0x2200)"},
@@ -23253,73 +23340,73 @@ pci_id_t pci_vid_14A4[] = {
{0x14A4, 0x9100, 0xFFFF, 0xFFFF, "CL1-3D256, CL1-8D512 NVMe SSD (DRAM-less)(0x9100)"},
}; /* pci_vid_14A4[] */
-pci_id_t pci_vid_14A5[] = {
+static pci_id_t const pci_vid_14A5[] = {
{0x14A5, 0xFFFF, 0xFFFF, 0xFFFF, "XIONICS Document Technologies Inc(0x14A5)"},
}; /* pci_vid_14A5[] */
-pci_id_t pci_vid_14A6[] = {
+static pci_id_t const pci_vid_14A6[] = {
{0x14A6, 0xFFFF, 0xFFFF, 0xFFFF, "INOVA Computers GmBH & Co KG(0x14A6)"},
}; /* pci_vid_14A6[] */
-pci_id_t pci_vid_14A7[] = {
+static pci_id_t const pci_vid_14A7[] = {
{0x14A7, 0xFFFF, 0xFFFF, 0xFFFF, "MYTHOS Systems Inc(0x14A7)"},
}; /* pci_vid_14A7[] */
-pci_id_t pci_vid_14A8[] = {
+static pci_id_t const pci_vid_14A8[] = {
{0x14A8, 0xFFFF, 0xFFFF, 0xFFFF, "FEATRON Technologies Corporation(0x14A8)"},
}; /* pci_vid_14A8[] */
-pci_id_t pci_vid_14A9[] = {
+static pci_id_t const pci_vid_14A9[] = {
{0x14A9, 0xFFFF, 0xFFFF, 0xFFFF, "HIVERTEC Inc(0x14A9)"},
}; /* pci_vid_14A9[] */
-pci_id_t pci_vid_14AA[] = {
+static pci_id_t const pci_vid_14AA[] = {
{0x14AA, 0xFFFF, 0xFFFF, 0xFFFF, "Advanced MOS Technology Inc(0x14AA)"},
}; /* pci_vid_14AA[] */
-pci_id_t pci_vid_14AB[] = {
+static pci_id_t const pci_vid_14AB[] = {
{0x14AB, 0xFFFF, 0xFFFF, 0xFFFF, "Siemens Industry Software Inc.(0x14AB)"},
}; /* pci_vid_14AB[] */
-pci_id_t pci_vid_14AC[] = {
+static pci_id_t const pci_vid_14AC[] = {
{0x14AC, 0xFFFF, 0xFFFF, 0xFFFF, "Novaweb Technologies Inc(0x14AC)"},
}; /* pci_vid_14AC[] */
-pci_id_t pci_vid_14AD[] = {
+static pci_id_t const pci_vid_14AD[] = {
{0x14AD, 0xFFFF, 0xFFFF, 0xFFFF, "Time Space Radio AB(0x14AD)"},
}; /* pci_vid_14AD[] */
-pci_id_t pci_vid_14AE[] = {
+static pci_id_t const pci_vid_14AE[] = {
{0x14AE, 0xFFFF, 0xFFFF, 0xFFFF, "CTI, Inc(0x14AE)"},
}; /* pci_vid_14AE[] */
-pci_id_t pci_vid_14AF[] = {
+static pci_id_t const pci_vid_14AF[] = {
{0x14AF, 0xFFFF, 0xFFFF, 0xFFFF, "Guillemot Corporation(0x14AF)"},
{0x14AF, 0x7102, 0xFFFF, 0xFFFF, "3D Prophet II MX(0x7102)"},
}; /* pci_vid_14AF[] */
-pci_id_t pci_vid_14B0[] = {
+static pci_id_t const pci_vid_14B0[] = {
{0x14B0, 0xFFFF, 0xFFFF, 0xFFFF, "BST Communication Technology Ltd(0x14B0)"},
}; /* pci_vid_14B0[] */
-pci_id_t pci_vid_14B1[] = {
+static pci_id_t const pci_vid_14B1[] = {
{0x14B1, 0xFFFF, 0xFFFF, 0xFFFF, "Nextcom K.K.(0x14B1)"},
}; /* pci_vid_14B1[] */
-pci_id_t pci_vid_14B2[] = {
+static pci_id_t const pci_vid_14B2[] = {
{0x14B2, 0xFFFF, 0xFFFF, 0xFFFF, "ENNOVATE Networks Inc(0x14B2)"},
}; /* pci_vid_14B2[] */
-pci_id_t pci_vid_14B3[] = {
+static pci_id_t const pci_vid_14B3[] = {
{0x14B3, 0xFFFF, 0xFFFF, 0xFFFF, "XPEED Inc(0x14B3)"},
{0x14B3, 0x0000, 0xFFFF, 0xFFFF, "DSL NIC(0x0000)"},
}; /* pci_vid_14B3[] */
-pci_id_t pci_vid_14B4[] = {
+static pci_id_t const pci_vid_14B4[] = {
{0x14B4, 0xFFFF, 0xFFFF, 0xFFFF, "PHILIPS Business Electronics B.V.(0x14B4)"},
}; /* pci_vid_14B4[] */
-pci_id_t pci_vid_14B5[] = {
+static pci_id_t const pci_vid_14B5[] = {
{0x14B5, 0xFFFF, 0xFFFF, 0xFFFF, "Creamware GmBH(0x14B5)"},
{0x14B5, 0x0200, 0xFFFF, 0xFFFF, "Scope(0x0200)"},
{0x14B5, 0x0300, 0xFFFF, 0xFFFF, "Pulsar(0x0300)"},
@@ -23331,20 +23418,20 @@ pci_id_t pci_vid_14B5[] = {
{0x14B5, 0x0B00, 0xFFFF, 0xFFFF, "DSP-Board(0x0B00)"},
}; /* pci_vid_14B5[] */
-pci_id_t pci_vid_14B6[] = {
+static pci_id_t const pci_vid_14B6[] = {
{0x14B6, 0xFFFF, 0xFFFF, 0xFFFF, "Quantum Data Corp.(0x14B6)"},
}; /* pci_vid_14B6[] */
-pci_id_t pci_vid_14B7[] = {
+static pci_id_t const pci_vid_14B7[] = {
{0x14B7, 0xFFFF, 0xFFFF, 0xFFFF, "PROXIM Inc(0x14B7)"},
{0x14B7, 0x0001, 0xFFFF, 0xFFFF, "Symphony 4110(0x0001)"},
}; /* pci_vid_14B7[] */
-pci_id_t pci_vid_14B8[] = {
+static pci_id_t const pci_vid_14B8[] = {
{0x14B8, 0xFFFF, 0xFFFF, 0xFFFF, "Techsoft Technology Co Ltd(0x14B8)"},
}; /* pci_vid_14B8[] */
-pci_id_t pci_vid_14B9[] = {
+static pci_id_t const pci_vid_14B9[] = {
{0x14B9, 0xFFFF, 0xFFFF, 0xFFFF, "Cisco Aironet Wireless Communications(0x14B9)"},
{0x14B9, 0x0001, 0xFFFF, 0xFFFF, "PC4800(0x0001)"},
{0x14B9, 0x0340, 0xFFFF, 0xFFFF, "PC4800(0x0340)"},
@@ -23356,39 +23443,39 @@ pci_id_t pci_vid_14B9[] = {
{0x14B9, 0xA506, 0xFFFF, 0xFFFF, "Cisco Aironet Mini PCI b/g(0xA506)"},
}; /* pci_vid_14B9[] */
-pci_id_t pci_vid_14BA[] = {
+static pci_id_t const pci_vid_14BA[] = {
{0x14BA, 0xFFFF, 0xFFFF, 0xFFFF, "INTERNIX Inc.(0x14BA)"},
{0x14BA, 0x0600, 0xFFFF, 0xFFFF, "ARC-PCI/22(0x0600)"},
}; /* pci_vid_14BA[] */
-pci_id_t pci_vid_14BB[] = {
+static pci_id_t const pci_vid_14BB[] = {
{0x14BB, 0xFFFF, 0xFFFF, 0xFFFF, "SEMTECH Corporation(0x14BB)"},
}; /* pci_vid_14BB[] */
-pci_id_t pci_vid_14BC[] = {
+static pci_id_t const pci_vid_14BC[] = {
{0x14BC, 0xFFFF, 0xFFFF, 0xFFFF, "Globespan Semiconductor Inc.(0x14BC)"},
{0x14BC, 0xD002, 0xFFFF, 0xFFFF, "Pulsar [PCI ADSL Card](0xD002)"},
{0x14BC, 0xD00F, 0xFFFF, 0xFFFF, "Pulsar [PCI ADSL Card](0xD00F)"},
}; /* pci_vid_14BC[] */
-pci_id_t pci_vid_14BD[] = {
+static pci_id_t const pci_vid_14BD[] = {
{0x14BD, 0xFFFF, 0xFFFF, 0xFFFF, "CARDIO Control N.V.(0x14BD)"},
}; /* pci_vid_14BD[] */
-pci_id_t pci_vid_14BE[] = {
+static pci_id_t const pci_vid_14BE[] = {
{0x14BE, 0xFFFF, 0xFFFF, 0xFFFF, "L3 Communications(0x14BE)"},
}; /* pci_vid_14BE[] */
-pci_id_t pci_vid_14BF[] = {
+static pci_id_t const pci_vid_14BF[] = {
{0x14BF, 0xFFFF, 0xFFFF, 0xFFFF, "SPIDER Communications Inc.(0x14BF)"},
}; /* pci_vid_14BF[] */
-pci_id_t pci_vid_14C0[] = {
+static pci_id_t const pci_vid_14C0[] = {
{0x14C0, 0xFFFF, 0xFFFF, 0xFFFF, "COMPAL Electronics Inc(0x14C0)"},
{0x14C0, 0x1201, 0xFFFF, 0xFFFF, "X550 10Gb 2P RJ45 OCP Mezz(0x1201)"},
}; /* pci_vid_14C0[] */
-pci_id_t pci_vid_14C1[] = {
+static pci_id_t const pci_vid_14C1[] = {
{0x14C1, 0xFFFF, 0xFFFF, 0xFFFF, "MYRICOM Inc.(0x14C1)"},
{0x14C1, 0x0008, 0xFFFF, 0xFFFF, "Myri-10G Dual-Protocol NIC(0x0008)"},
{0x14C1, 0x0008, 0x14C1, 0x0008, "10G-PCIE-8A(0x14C1-0x0008)"},
@@ -23398,14 +23485,15 @@ pci_id_t pci_vid_14C1[] = {
{0x14C1, 0x8043, 0x103C, 0x1240, "Myrinet M2L-PCI64/2-3.0 LANai 7.4 (HP OEM)(0x103C-0x1240)"},
}; /* pci_vid_14C1[] */
-pci_id_t pci_vid_14C2[] = {
+static pci_id_t const pci_vid_14C2[] = {
{0x14C2, 0xFFFF, 0xFFFF, 0xFFFF, "DTK Computer(0x14C2)"},
}; /* pci_vid_14C2[] */
-pci_id_t pci_vid_14C3[] = {
+static pci_id_t const pci_vid_14C3[] = {
{0x14C3, 0xFFFF, 0xFFFF, 0xFFFF, "MEDIATEK Corp.(0x14C3)"},
{0x14C3, 0x0608, 0xFFFF, 0xFFFF, "MT7921K (RZ608) Wi-Fi 6E 80MHz(0x0608)"},
{0x14C3, 0x0616, 0xFFFF, 0xFFFF, "MT7922 802.11ax PCI Express Wireless Network Adapter(0x0616)"},
+{0x14C3, 0x7603, 0xFFFF, 0xFFFF, "MT7603E 802.11bgn PCI Express Wireless Network Adapter(0x7603)"},
{0x14C3, 0x7612, 0xFFFF, 0xFFFF, "MT7612E 802.11acbgn PCI Express Wireless Network Adapter(0x7612)"},
{0x14C3, 0x7615, 0xFFFF, 0xFFFF, "MT7615E 802.11ac PCI Express Wireless Network Adapter(0x7615)"},
{0x14C3, 0x7630, 0xFFFF, 0xFFFF, "MT7630e 802.11bgn Wireless Network Adapter(0x7630)"},
@@ -23416,68 +23504,69 @@ pci_id_t pci_vid_14C3[] = {
{0x14C3, 0x7922, 0xFFFF, 0xFFFF, "MT7922 802.11ax PCI Express Wireless Network Adapter(0x7922)"},
{0x14C3, 0x7922, 0x1A3B, 0x5300, "ASUS PCE-AXE59BT(0x1A3B-0x5300)"},
{0x14C3, 0x7961, 0xFFFF, 0xFFFF, "MT7921 802.11ax PCI Express Wireless Network Adapter(0x7961)"},
+{0x14C3, 0x8650, 0xFFFF, 0xFFFF, "MT7650 Bluetooth(0x8650)"},
}; /* pci_vid_14C3[] */
-pci_id_t pci_vid_14C4[] = {
+static pci_id_t const pci_vid_14C4[] = {
{0x14C4, 0xFFFF, 0xFFFF, 0xFFFF, "IWASAKI Information Systems Co Ltd(0x14C4)"},
}; /* pci_vid_14C4[] */
-pci_id_t pci_vid_14C5[] = {
+static pci_id_t const pci_vid_14C5[] = {
{0x14C5, 0xFFFF, 0xFFFF, 0xFFFF, "Automation Products AB(0x14C5)"},
}; /* pci_vid_14C5[] */
-pci_id_t pci_vid_14C6[] = {
+static pci_id_t const pci_vid_14C6[] = {
{0x14C6, 0xFFFF, 0xFFFF, 0xFFFF, "Data Race Inc(0x14C6)"},
}; /* pci_vid_14C6[] */
-pci_id_t pci_vid_14C7[] = {
+static pci_id_t const pci_vid_14C7[] = {
{0x14C7, 0xFFFF, 0xFFFF, 0xFFFF, "Modular Technology Holdings Ltd(0x14C7)"},
}; /* pci_vid_14C7[] */
-pci_id_t pci_vid_14C8[] = {
+static pci_id_t const pci_vid_14C8[] = {
{0x14C8, 0xFFFF, 0xFFFF, 0xFFFF, "Turbocomm Tech. Inc.(0x14C8)"},
}; /* pci_vid_14C8[] */
-pci_id_t pci_vid_14C9[] = {
+static pci_id_t const pci_vid_14C9[] = {
{0x14C9, 0xFFFF, 0xFFFF, 0xFFFF, "ODIN Telesystems Inc(0x14C9)"},
}; /* pci_vid_14C9[] */
-pci_id_t pci_vid_14CA[] = {
+static pci_id_t const pci_vid_14CA[] = {
{0x14CA, 0xFFFF, 0xFFFF, 0xFFFF, "PE Logic Corp.(0x14CA)"},
}; /* pci_vid_14CA[] */
-pci_id_t pci_vid_14CB[] = {
+static pci_id_t const pci_vid_14CB[] = {
{0x14CB, 0xFFFF, 0xFFFF, 0xFFFF, "Billionton Systems Inc(0x14CB)"},
}; /* pci_vid_14CB[] */
-pci_id_t pci_vid_14CC[] = {
+static pci_id_t const pci_vid_14CC[] = {
{0x14CC, 0xFFFF, 0xFFFF, 0xFFFF, "NAKAYO Telecommunications Inc(0x14CC)"},
}; /* pci_vid_14CC[] */
-pci_id_t pci_vid_14CD[] = {
+static pci_id_t const pci_vid_14CD[] = {
{0x14CD, 0xFFFF, 0xFFFF, 0xFFFF, "Universal Global Scientific Industrial Co.,Ltd(0x14CD)"},
{0x14CD, 0x0001, 0xFFFF, 0xFFFF, "USI-1514-1GbaseT [OCP1](0x0001)"},
{0x14CD, 0x0002, 0xFFFF, 0xFFFF, "USI-4227-SFP [OCP2](0x0002)"},
{0x14CD, 0x0003, 0xFFFF, 0xFFFF, "USI-X557-10GbaseT [OCP3](0x0003)"},
}; /* pci_vid_14CD[] */
-pci_id_t pci_vid_14CE[] = {
+static pci_id_t const pci_vid_14CE[] = {
{0x14CE, 0xFFFF, 0xFFFF, 0xFFFF, "Whistle Communications(0x14CE)"},
}; /* pci_vid_14CE[] */
-pci_id_t pci_vid_14CF[] = {
+static pci_id_t const pci_vid_14CF[] = {
{0x14CF, 0xFFFF, 0xFFFF, 0xFFFF, "TEK Microsystems Inc.(0x14CF)"},
}; /* pci_vid_14CF[] */
-pci_id_t pci_vid_14D0[] = {
+static pci_id_t const pci_vid_14D0[] = {
{0x14D0, 0xFFFF, 0xFFFF, 0xFFFF, "Ericsson Axe R & D(0x14D0)"},
}; /* pci_vid_14D0[] */
-pci_id_t pci_vid_14D1[] = {
+static pci_id_t const pci_vid_14D1[] = {
{0x14D1, 0xFFFF, 0xFFFF, 0xFFFF, "Computer Hi-Tech Co Ltd(0x14D1)"},
}; /* pci_vid_14D1[] */
-pci_id_t pci_vid_14D2[] = {
+static pci_id_t const pci_vid_14D2[] = {
{0x14D2, 0xFFFF, 0xFFFF, 0xFFFF, "Titan Electronics Inc(0x14D2)"},
{0x14D2, 0x8001, 0xFFFF, 0xFFFF, "VScom 010L 1 port parallel adaptor(0x8001)"},
{0x14D2, 0x8002, 0xFFFF, 0xFFFF, "VScom 020L 2 port parallel adaptor(0x8002)"},
@@ -23504,52 +23593,52 @@ pci_id_t pci_vid_14D2[] = {
{0x14D2, 0xE020, 0xFFFF, 0xFFFF, "VScom 200HV2 2 port serial adaptor(0xE020)"},
}; /* pci_vid_14D2[] */
-pci_id_t pci_vid_14D3[] = {
+static pci_id_t const pci_vid_14D3[] = {
{0x14D3, 0xFFFF, 0xFFFF, 0xFFFF, "CIRTECH (UK) Ltd(0x14D3)"},
{0x14D3, 0x0002, 0xFFFF, 0xFFFF, "DTL-T14000 Rev. 1 [PS2 TOOL CD/DVD Emulator](0x0002)"},
{0x14D3, 0x0003, 0xFFFF, 0xFFFF, "DTL-T14000 Rev. 2 [PS2 TOOL CD/DVD Emulator](0x0003)"},
{0x14D3, 0x0004, 0xFFFF, 0xFFFF, "DTL-T14000 Rev. 3 [PS2 TOOL CD/DVD Emulator](0x0004)"},
}; /* pci_vid_14D3[] */
-pci_id_t pci_vid_14D4[] = {
+static pci_id_t const pci_vid_14D4[] = {
{0x14D4, 0xFFFF, 0xFFFF, 0xFFFF, "Panacom Technology Corp(0x14D4)"},
}; /* pci_vid_14D4[] */
-pci_id_t pci_vid_14D5[] = {
+static pci_id_t const pci_vid_14D5[] = {
{0x14D5, 0xFFFF, 0xFFFF, 0xFFFF, "Nitsuko Corporation(0x14D5)"},
}; /* pci_vid_14D5[] */
-pci_id_t pci_vid_14D6[] = {
+static pci_id_t const pci_vid_14D6[] = {
{0x14D6, 0xFFFF, 0xFFFF, 0xFFFF, "Accusys Inc(0x14D6)"},
{0x14D6, 0x6101, 0xFFFF, 0xFFFF, "ACS-61xxx, PCIe to SAS/SATA RAID HBA(0x6101)"},
{0x14D6, 0x6201, 0xFFFF, 0xFFFF, "ACS-62xxx, External PCIe to SAS/SATA RAID controller(0x6201)"},
}; /* pci_vid_14D6[] */
-pci_id_t pci_vid_14D7[] = {
+static pci_id_t const pci_vid_14D7[] = {
{0x14D7, 0xFFFF, 0xFFFF, 0xFFFF, "Hirakawa Hewtech Corp(0x14D7)"},
}; /* pci_vid_14D7[] */
-pci_id_t pci_vid_14D8[] = {
+static pci_id_t const pci_vid_14D8[] = {
{0x14D8, 0xFFFF, 0xFFFF, 0xFFFF, "HOPF Elektronik GmBH(0x14D8)"},
}; /* pci_vid_14D8[] */
-pci_id_t pci_vid_14D9[] = {
+static pci_id_t const pci_vid_14D9[] = {
{0x14D9, 0xFFFF, 0xFFFF, 0xFFFF, "Alliance Semiconductor Corporation(0x14D9)"},
{0x14D9, 0x0010, 0xFFFF, 0xFFFF, "AP1011/SP1011 HyperTransport-PCI Bridge [Sturgeon](0x0010)"},
{0x14D9, 0x9000, 0xFFFF, 0xFFFF, "AS90L10204/10208 HyperTransport to PCI-X Bridge(0x9000)"},
}; /* pci_vid_14D9[] */
-pci_id_t pci_vid_14DA[] = {
+static pci_id_t const pci_vid_14DA[] = {
{0x14DA, 0xFFFF, 0xFFFF, 0xFFFF, "National Aerospace Laboratories(0x14DA)"},
}; /* pci_vid_14DA[] */
-pci_id_t pci_vid_14DB[] = {
+static pci_id_t const pci_vid_14DB[] = {
{0x14DB, 0xFFFF, 0xFFFF, 0xFFFF, "AFAVLAB Technology Inc(0x14DB)"},
{0x14DB, 0x2120, 0xFFFF, 0xFFFF, "TK9902(0x2120)"},
{0x14DB, 0x2182, 0xFFFF, 0xFFFF, "AFAVLAB Technology Inc. 8-port serial card(0x2182)"},
}; /* pci_vid_14DB[] */
-pci_id_t pci_vid_14DC[] = {
+static pci_id_t const pci_vid_14DC[] = {
{0x14DC, 0xFFFF, 0xFFFF, 0xFFFF, "Amplicon Liveline Ltd(0x14DC)"},
{0x14DC, 0x0000, 0xFFFF, 0xFFFF, "PCI230(0x0000)"},
{0x14DC, 0x0001, 0xFFFF, 0xFFFF, "PCI242(0x0001)"},
@@ -23565,31 +23654,31 @@ pci_id_t pci_vid_14DC[] = {
{0x14DC, 0x000B, 0xFFFF, 0xFFFF, "PCI215(0x000B)"},
}; /* pci_vid_14DC[] */
-pci_id_t pci_vid_14DD[] = {
+static pci_id_t const pci_vid_14DD[] = {
{0x14DD, 0xFFFF, 0xFFFF, 0xFFFF, "Boulder Design Labs Inc(0x14DD)"},
}; /* pci_vid_14DD[] */
-pci_id_t pci_vid_14DE[] = {
+static pci_id_t const pci_vid_14DE[] = {
{0x14DE, 0xFFFF, 0xFFFF, 0xFFFF, "Applied Integration Corporation(0x14DE)"},
}; /* pci_vid_14DE[] */
-pci_id_t pci_vid_14DF[] = {
+static pci_id_t const pci_vid_14DF[] = {
{0x14DF, 0xFFFF, 0xFFFF, 0xFFFF, "ASIC Communications Corp(0x14DF)"},
}; /* pci_vid_14DF[] */
-pci_id_t pci_vid_14E1[] = {
+static pci_id_t const pci_vid_14E1[] = {
{0x14E1, 0xFFFF, 0xFFFF, 0xFFFF, "INVERTEX(0x14E1)"},
}; /* pci_vid_14E1[] */
-pci_id_t pci_vid_14E2[] = {
+static pci_id_t const pci_vid_14E2[] = {
{0x14E2, 0xFFFF, 0xFFFF, 0xFFFF, "INFOLIBRIA(0x14E2)"},
}; /* pci_vid_14E2[] */
-pci_id_t pci_vid_14E3[] = {
+static pci_id_t const pci_vid_14E3[] = {
{0x14E3, 0xFFFF, 0xFFFF, 0xFFFF, "AMTELCO(0x14E3)"},
}; /* pci_vid_14E3[] */
-pci_id_t pci_vid_14E4[] = {
+static pci_id_t const pci_vid_14E4[] = {
{0x14E4, 0xFFFF, 0xFFFF, 0xFFFF, "Broadcom Inc. and subsidiaries(0x14E4)"},
{0x14E4, 0x0576, 0xFFFF, 0xFFFF, "BCM43224 802.11a/b/g/n(0x0576)"},
{0x14E4, 0x0800, 0xFFFF, 0xFFFF, "Sentry5 Chipcommon I/O Controller(0x0800)"},
@@ -23758,6 +23847,7 @@ pci_id_t pci_vid_14E4[] = {
{0x14E4, 0x1657, 0x14E4, 0xD166, "BCM95719-P41 4x1GBT Ethernet NIC(0x14E4-0xD166)"},
{0x14E4, 0x1657, 0x14E4, 0xD366, "BCM95719-N41 4x1GBT Ethernet NIC(0x14E4-0xD366)"},
{0x14E4, 0x1657, 0x193D, 0x1025, "NIC-ETH330T-LP-4P(0x193D-0x1025)"},
+{0x14E4, 0x1657, 0x193D, 0x1086, "NIC-ETH330T-3S-4P(0x193D-0x1086)"},
{0x14E4, 0x1659, 0xFFFF, 0xFFFF, "NetXtreme BCM5721 Gigabit Ethernet PCI Express(0x1659)"},
{0x14E4, 0x1659, 0x1014, 0x02C6, "eServer xSeries server mainboard(0x1014-0x02C6)"},
{0x14E4, 0x1659, 0x1028, 0x01E6, "PowerEdge 860(0x1028-0x01E6)"},
@@ -24030,6 +24120,7 @@ pci_id_t pci_vid_14E4[] = {
{0x14E4, 0x16D6, 0x152D, 0x8B20, "BCM57412 NetXtreme-E 10Gb RDMA Ethernet Controller(0x152D-0x8B20)"},
{0x14E4, 0x16D6, 0x152D, 0x8B22, "BCM57412 NetXtreme-E 25Gb RDMA Ethernet Controller(0x152D-0x8B22)"},
{0x14E4, 0x16D6, 0x193D, 0x1024, "NIC-ETH531F-LP-2P(0x193D-0x1024)"},
+{0x14E4, 0x16D6, 0x193D, 0x1087, "NIC-ETH531F-3S-2P(0x193D-0x1087)"},
{0x14E4, 0x16D7, 0xFFFF, 0xFFFF, "BCM57414 NetXtreme-E 10Gb/25Gb RDMA Ethernet Controller(0x16D7)"},
{0x14E4, 0x16D7, 0x117C, 0x00CC, "FastFrame N422 Dual-port 25Gb Ethernet Adapter(0x117C-0x00CC)"},
{0x14E4, 0x16D7, 0x14E4, 0x1402, "BCM957414A4142CC 10Gb/25Gb Ethernet PCIe(0x14E4-0x1402)"},
@@ -24117,6 +24208,8 @@ pci_id_t pci_vid_14E4[] = {
{0x14E4, 0x1751, 0x14E4, 0x5425, "NetXtreme-E Quad-port 25G SFP28 Ethernet OCP 3.0 Adapter (BCM957504-N425G)(0x14E4-0x5425)"},
{0x14E4, 0x1751, 0x14E4, 0xD142, "NetXtreme-E P425D BCM57504 4x25G SFP28 PCIE(0x14E4-0xD142)"},
{0x14E4, 0x1752, 0xFFFF, 0xFFFF, "BCM57502 NetXtreme-E 10Gb/25Gb/40Gb/50Gb Ethernet(0x1752)"},
+{0x14E4, 0x1760, 0xFFFF, 0xFFFF, "BCM57608 NetXtreme-E 10Gb/25Gb/50Gb/100Gb/200Gb/400Gb Ethernet(0x1760)"},
+{0x14E4, 0x1760, 0x14E4, 0xD125, "BCM57608 2x200G PCIe Ethernet NIC(0x14E4-0xD125)"},
{0x14E4, 0x1800, 0xFFFF, 0xFFFF, "BCM57502 NetXtreme-E Ethernet Partition(0x1800)"},
{0x14E4, 0x1801, 0xFFFF, 0xFFFF, "BCM57504 NetXtreme-E Ethernet Partition(0x1801)"},
{0x14E4, 0x1802, 0xFFFF, 0xFFFF, "BCM57508 NetXtreme-E Ethernet Partition(0x1802)"},
@@ -24134,6 +24227,7 @@ pci_id_t pci_vid_14E4[] = {
{0x14E4, 0x1809, 0xFFFF, 0xFFFF, "BCM5750X NetXtreme-E RDMA Virtual Function(0x1809)"},
{0x14E4, 0x1809, 0x14E4, 0xDF24, "BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz RDMA Virtual Function(0x14E4-0xDF24)"},
{0x14E4, 0x2711, 0xFFFF, 0xFFFF, "BCM2711 PCIe Bridge(0x2711)"},
+{0x14E4, 0x2712, 0xFFFF, 0xFFFF, "BCM2712 PCIe Bridge(0x2712)"},
{0x14E4, 0x3352, 0xFFFF, 0xFFFF, "BCM3352(0x3352)"},
{0x14E4, 0x3360, 0xFFFF, 0xFFFF, "BCM3360(0x3360)"},
{0x14E4, 0x4210, 0xFFFF, 0xFFFF, "BCM4210 iLine10 HomePNA 2.0(0x4210)"},
@@ -24445,59 +24539,59 @@ pci_id_t pci_vid_14E4[] = {
{0x14E4, 0xF917, 0xFFFF, 0xFFFF, "BCM78917 Switch ASIC [Tomahawk6](0xF917)"},
}; /* pci_vid_14E4[] */
-pci_id_t pci_vid_14E5[] = {
+static pci_id_t const pci_vid_14E5[] = {
{0x14E5, 0xFFFF, 0xFFFF, 0xFFFF, "Pixelfusion Ltd(0x14E5)"},
}; /* pci_vid_14E5[] */
-pci_id_t pci_vid_14E6[] = {
+static pci_id_t const pci_vid_14E6[] = {
{0x14E6, 0xFFFF, 0xFFFF, 0xFFFF, "SHINING Technology Inc(0x14E6)"},
}; /* pci_vid_14E6[] */
-pci_id_t pci_vid_14E7[] = {
+static pci_id_t const pci_vid_14E7[] = {
{0x14E7, 0xFFFF, 0xFFFF, 0xFFFF, "3CX(0x14E7)"},
}; /* pci_vid_14E7[] */
-pci_id_t pci_vid_14E8[] = {
+static pci_id_t const pci_vid_14E8[] = {
{0x14E8, 0xFFFF, 0xFFFF, 0xFFFF, "RAYCER Inc(0x14E8)"},
}; /* pci_vid_14E8[] */
-pci_id_t pci_vid_14E9[] = {
+static pci_id_t const pci_vid_14E9[] = {
{0x14E9, 0xFFFF, 0xFFFF, 0xFFFF, "GARNETS System CO Ltd(0x14E9)"},
}; /* pci_vid_14E9[] */
-pci_id_t pci_vid_14EA[] = {
+static pci_id_t const pci_vid_14EA[] = {
{0x14EA, 0xFFFF, 0xFFFF, 0xFFFF, "Planex Communications, Inc(0x14EA)"},
{0x14EA, 0xAB06, 0xFFFF, 0xFFFF, "FNW-3603-TX CardBus Fast Ethernet(0xAB06)"},
{0x14EA, 0xAB07, 0xFFFF, 0xFFFF, "RTL81xx RealTek Ethernet(0xAB07)"},
{0x14EA, 0xAB08, 0xFFFF, 0xFFFF, "FNW-3602-TX CardBus Fast Ethernet(0xAB08)"},
}; /* pci_vid_14EA[] */
-pci_id_t pci_vid_14EB[] = {
+static pci_id_t const pci_vid_14EB[] = {
{0x14EB, 0xFFFF, 0xFFFF, 0xFFFF, "SEIKO EPSON Corp(0x14EB)"},
}; /* pci_vid_14EB[] */
-pci_id_t pci_vid_14EC[] = {
+static pci_id_t const pci_vid_14EC[] = {
{0x14EC, 0xFFFF, 0xFFFF, 0xFFFF, "Agilent Technologies(0x14EC)"},
{0x14EC, 0x0000, 0xFFFF, 0xFFFF, "Aciris Digitizer (malformed ID)(0x0000)"},
}; /* pci_vid_14EC[] */
-pci_id_t pci_vid_14ED[] = {
+static pci_id_t const pci_vid_14ED[] = {
{0x14ED, 0xFFFF, 0xFFFF, 0xFFFF, "DATAKINETICS Ltd(0x14ED)"},
}; /* pci_vid_14ED[] */
-pci_id_t pci_vid_14EE[] = {
+static pci_id_t const pci_vid_14EE[] = {
{0x14EE, 0xFFFF, 0xFFFF, 0xFFFF, "MASPRO KENKOH Corp(0x14EE)"},
}; /* pci_vid_14EE[] */
-pci_id_t pci_vid_14EF[] = {
+static pci_id_t const pci_vid_14EF[] = {
{0x14EF, 0xFFFF, 0xFFFF, 0xFFFF, "CARRY Computer ENG. CO Ltd(0x14EF)"},
}; /* pci_vid_14EF[] */
-pci_id_t pci_vid_14F0[] = {
+static pci_id_t const pci_vid_14F0[] = {
{0x14F0, 0xFFFF, 0xFFFF, 0xFFFF, "CANON RESEACH CENTRE FRANCE(0x14F0)"},
}; /* pci_vid_14F0[] */
-pci_id_t pci_vid_14F1[] = {
+static pci_id_t const pci_vid_14F1[] = {
{0x14F1, 0xFFFF, 0xFFFF, 0xFFFF, "Conexant Systems, Inc.(0x14F1)"},
{0x14F1, 0x1002, 0xFFFF, 0xFFFF, "HCF 56k Modem(0x1002)"},
{0x14F1, 0x1003, 0xFFFF, 0xFFFF, "HCF 56k Modem(0x1003)"},
@@ -24784,7 +24878,7 @@ pci_id_t pci_vid_14F1[] = {
{0x14F1, 0x8880, 0x5654, 0x2390, "GoTView X5 3D HYBRID PCI-E(0x5654-0x2390)"},
}; /* pci_vid_14F1[] */
-pci_id_t pci_vid_14F2[] = {
+static pci_id_t const pci_vid_14F2[] = {
{0x14F2, 0xFFFF, 0xFFFF, 0xFFFF, "MOBILITY Electronics(0x14F2)"},
{0x14F2, 0x0120, 0xFFFF, 0xFFFF, "EV1000 bridge(0x0120)"},
{0x14F2, 0x0121, 0xFFFF, 0xFFFF, "EV1000 Parallel port(0x0121)"},
@@ -24793,7 +24887,7 @@ pci_id_t pci_vid_14F2[] = {
{0x14F2, 0x0124, 0xFFFF, 0xFFFF, "EV1000 Mouse controller(0x0124)"},
}; /* pci_vid_14F2[] */
-pci_id_t pci_vid_14F3[] = {
+static pci_id_t const pci_vid_14F3[] = {
{0x14F3, 0xFFFF, 0xFFFF, 0xFFFF, "BroadLogic(0x14F3)"},
{0x14F3, 0x2030, 0xFFFF, 0xFFFF, "2030 DVB-S Satellite Receiver(0x2030)"},
{0x14F3, 0x2035, 0xFFFF, 0xFFFF, "2035 DVB-S Satellite Receiver(0x2035)"},
@@ -24801,88 +24895,88 @@ pci_id_t pci_vid_14F3[] = {
{0x14F3, 0x2060, 0xFFFF, 0xFFFF, "2060 ATSC Terrestrial (Cable) Receiver(0x2060)"},
}; /* pci_vid_14F3[] */
-pci_id_t pci_vid_14F4[] = {
+static pci_id_t const pci_vid_14F4[] = {
{0x14F4, 0xFFFF, 0xFFFF, 0xFFFF, "TOKYO Electronic Industry CO Ltd(0x14F4)"},
}; /* pci_vid_14F4[] */
-pci_id_t pci_vid_14F5[] = {
+static pci_id_t const pci_vid_14F5[] = {
{0x14F5, 0xFFFF, 0xFFFF, 0xFFFF, "SOPAC Ltd(0x14F5)"},
}; /* pci_vid_14F5[] */
-pci_id_t pci_vid_14F6[] = {
+static pci_id_t const pci_vid_14F6[] = {
{0x14F6, 0xFFFF, 0xFFFF, 0xFFFF, "COYOTE Technologies LLC(0x14F6)"},
}; /* pci_vid_14F6[] */
-pci_id_t pci_vid_14F7[] = {
+static pci_id_t const pci_vid_14F7[] = {
{0x14F7, 0xFFFF, 0xFFFF, 0xFFFF, "WOLF Technology Inc(0x14F7)"},
}; /* pci_vid_14F7[] */
-pci_id_t pci_vid_14F8[] = {
+static pci_id_t const pci_vid_14F8[] = {
{0x14F8, 0xFFFF, 0xFFFF, 0xFFFF, "AUDIOCODES Inc(0x14F8)"},
{0x14F8, 0x2077, 0xFFFF, 0xFFFF, "TP-240 dual span E1 VoIP PCI card(0x2077)"},
}; /* pci_vid_14F8[] */
-pci_id_t pci_vid_14F9[] = {
+static pci_id_t const pci_vid_14F9[] = {
{0x14F9, 0xFFFF, 0xFFFF, 0xFFFF, "AG COMMUNICATIONS(0x14F9)"},
}; /* pci_vid_14F9[] */
-pci_id_t pci_vid_14FA[] = {
+static pci_id_t const pci_vid_14FA[] = {
{0x14FA, 0xFFFF, 0xFFFF, 0xFFFF, "WANDEL & GOLTERMANN(0x14FA)"},
}; /* pci_vid_14FA[] */
-pci_id_t pci_vid_14FB[] = {
+static pci_id_t const pci_vid_14FB[] = {
{0x14FB, 0xFFFF, 0xFFFF, 0xFFFF, "TRANSAS MARINE (UK) Ltd(0x14FB)"},
}; /* pci_vid_14FB[] */
-pci_id_t pci_vid_14FC[] = {
+static pci_id_t const pci_vid_14FC[] = {
{0x14FC, 0xFFFF, 0xFFFF, 0xFFFF, "Quadrics Ltd(0x14FC)"},
{0x14FC, 0x0000, 0xFFFF, 0xFFFF, "QsNet Elan3 Network Adapter(0x0000)"},
{0x14FC, 0x0001, 0xFFFF, 0xFFFF, "QsNetII Elan4 Network Adapter(0x0001)"},
{0x14FC, 0x0002, 0xFFFF, 0xFFFF, "QsNetIII Elan5 Network Adapter(0x0002)"},
}; /* pci_vid_14FC[] */
-pci_id_t pci_vid_14FD[] = {
+static pci_id_t const pci_vid_14FD[] = {
{0x14FD, 0xFFFF, 0xFFFF, 0xFFFF, "JAPAN Computer Industry Inc(0x14FD)"},
}; /* pci_vid_14FD[] */
-pci_id_t pci_vid_14FE[] = {
+static pci_id_t const pci_vid_14FE[] = {
{0x14FE, 0xFFFF, 0xFFFF, 0xFFFF, "ARCHTEK TELECOM Corp(0x14FE)"},
}; /* pci_vid_14FE[] */
-pci_id_t pci_vid_14FF[] = {
+static pci_id_t const pci_vid_14FF[] = {
{0x14FF, 0xFFFF, 0xFFFF, 0xFFFF, "TWINHEAD INTERNATIONAL Corp(0x14FF)"},
}; /* pci_vid_14FF[] */
-pci_id_t pci_vid_1500[] = {
+static pci_id_t const pci_vid_1500[] = {
{0x1500, 0xFFFF, 0xFFFF, 0xFFFF, "DELTA Electronics, Inc(0x1500)"},
{0x1500, 0x1360, 0xFFFF, 0xFFFF, "RTL81xx RealTek Ethernet(0x1360)"},
}; /* pci_vid_1500[] */
-pci_id_t pci_vid_1501[] = {
+static pci_id_t const pci_vid_1501[] = {
{0x1501, 0xFFFF, 0xFFFF, 0xFFFF, "BANKSOFT CANADA Ltd(0x1501)"},
}; /* pci_vid_1501[] */
-pci_id_t pci_vid_1502[] = {
+static pci_id_t const pci_vid_1502[] = {
{0x1502, 0xFFFF, 0xFFFF, 0xFFFF, "MITSUBISHI ELECTRIC LOGISTICS SUPPORT Co Ltd(0x1502)"},
}; /* pci_vid_1502[] */
-pci_id_t pci_vid_1503[] = {
+static pci_id_t const pci_vid_1503[] = {
{0x1503, 0xFFFF, 0xFFFF, 0xFFFF, "KAWASAKI LSI USA Inc(0x1503)"},
}; /* pci_vid_1503[] */
-pci_id_t pci_vid_1504[] = {
+static pci_id_t const pci_vid_1504[] = {
{0x1504, 0xFFFF, 0xFFFF, 0xFFFF, "KAISER Electronics(0x1504)"},
}; /* pci_vid_1504[] */
-pci_id_t pci_vid_1505[] = {
+static pci_id_t const pci_vid_1505[] = {
{0x1505, 0xFFFF, 0xFFFF, 0xFFFF, "ITA INGENIEURBURO FUR TESTAUFGABEN GmbH(0x1505)"},
}; /* pci_vid_1505[] */
-pci_id_t pci_vid_1506[] = {
+static pci_id_t const pci_vid_1506[] = {
{0x1506, 0xFFFF, 0xFFFF, 0xFFFF, "CHAMELEON Systems Inc(0x1506)"},
}; /* pci_vid_1506[] */
-pci_id_t pci_vid_1507[] = {
+static pci_id_t const pci_vid_1507[] = {
{0x1507, 0xFFFF, 0xFFFF, 0xFFFF, "Motorola ?-?- / HTEC(0x1507)"},
{0x1507, 0x0001, 0xFFFF, 0xFFFF, "MPC105 [Eagle](0x0001)"},
{0x1507, 0x0002, 0xFFFF, 0xFFFF, "MPC106 [Grackle](0x0002)"},
@@ -24895,63 +24989,63 @@ pci_id_t pci_vid_1507[] = {
{0x1507, 0x4806, 0xFFFF, 0xFFFF, "CPX8216(0x4806)"},
}; /* pci_vid_1507[] */
-pci_id_t pci_vid_1508[] = {
+static pci_id_t const pci_vid_1508[] = {
{0x1508, 0xFFFF, 0xFFFF, 0xFFFF, "HONDA CONNECTORS/MHOTRONICS Inc(0x1508)"},
}; /* pci_vid_1508[] */
-pci_id_t pci_vid_1509[] = {
+static pci_id_t const pci_vid_1509[] = {
{0x1509, 0xFFFF, 0xFFFF, 0xFFFF, "FIRST INTERNATIONAL Computer Inc(0x1509)"},
}; /* pci_vid_1509[] */
-pci_id_t pci_vid_150A[] = {
+static pci_id_t const pci_vid_150A[] = {
{0x150A, 0xFFFF, 0xFFFF, 0xFFFF, "FORVUS RESEARCH Inc(0x150A)"},
}; /* pci_vid_150A[] */
-pci_id_t pci_vid_150B[] = {
+static pci_id_t const pci_vid_150B[] = {
{0x150B, 0xFFFF, 0xFFFF, 0xFFFF, "YAMASHITA Systems Corp(0x150B)"},
}; /* pci_vid_150B[] */
-pci_id_t pci_vid_150C[] = {
+static pci_id_t const pci_vid_150C[] = {
{0x150C, 0xFFFF, 0xFFFF, 0xFFFF, "KYOPAL CO Ltd(0x150C)"},
}; /* pci_vid_150C[] */
-pci_id_t pci_vid_150D[] = {
+static pci_id_t const pci_vid_150D[] = {
{0x150D, 0xFFFF, 0xFFFF, 0xFFFF, "WARPSPPED Inc(0x150D)"},
}; /* pci_vid_150D[] */
-pci_id_t pci_vid_150E[] = {
+static pci_id_t const pci_vid_150E[] = {
{0x150E, 0xFFFF, 0xFFFF, 0xFFFF, "C-PORT Corp(0x150E)"},
}; /* pci_vid_150E[] */
-pci_id_t pci_vid_150F[] = {
+static pci_id_t const pci_vid_150F[] = {
{0x150F, 0xFFFF, 0xFFFF, 0xFFFF, "INTEC GmbH(0x150F)"},
}; /* pci_vid_150F[] */
-pci_id_t pci_vid_1510[] = {
+static pci_id_t const pci_vid_1510[] = {
{0x1510, 0xFFFF, 0xFFFF, 0xFFFF, "BEHAVIOR TECH Computer Corp(0x1510)"},
}; /* pci_vid_1510[] */
-pci_id_t pci_vid_1511[] = {
+static pci_id_t const pci_vid_1511[] = {
{0x1511, 0xFFFF, 0xFFFF, 0xFFFF, "CENTILLIUM Technology Corp(0x1511)"},
}; /* pci_vid_1511[] */
-pci_id_t pci_vid_1512[] = {
+static pci_id_t const pci_vid_1512[] = {
{0x1512, 0xFFFF, 0xFFFF, 0xFFFF, "ROSUN Technologies Inc(0x1512)"},
}; /* pci_vid_1512[] */
-pci_id_t pci_vid_1513[] = {
+static pci_id_t const pci_vid_1513[] = {
{0x1513, 0xFFFF, 0xFFFF, 0xFFFF, "Raychem(0x1513)"},
}; /* pci_vid_1513[] */
-pci_id_t pci_vid_1514[] = {
+static pci_id_t const pci_vid_1514[] = {
{0x1514, 0xFFFF, 0xFFFF, 0xFFFF, "TFL LAN Inc(0x1514)"},
}; /* pci_vid_1514[] */
-pci_id_t pci_vid_1515[] = {
+static pci_id_t const pci_vid_1515[] = {
{0x1515, 0xFFFF, 0xFFFF, 0xFFFF, "Advent design(0x1515)"},
}; /* pci_vid_1515[] */
-pci_id_t pci_vid_1516[] = {
+static pci_id_t const pci_vid_1516[] = {
{0x1516, 0xFFFF, 0xFFFF, 0xFFFF, "MYSON Technology Inc(0x1516)"},
{0x1516, 0x0800, 0xFFFF, 0xFFFF, "MTD-8xx 100/10M Ethernet PCI Adapter(0x0800)"},
{0x1516, 0x0803, 0xFFFF, 0xFFFF, "SURECOM EP-320X-S 100/10M Ethernet PCI Adapter(0x0803)"},
@@ -24959,57 +25053,57 @@ pci_id_t pci_vid_1516[] = {
{0x1516, 0x0891, 0xFFFF, 0xFFFF, "MTD-8xx 100/10M Ethernet PCI Adapter(0x0891)"},
}; /* pci_vid_1516[] */
-pci_id_t pci_vid_1517[] = {
+static pci_id_t const pci_vid_1517[] = {
{0x1517, 0xFFFF, 0xFFFF, 0xFFFF, "ECHOTEK Corp(0x1517)"},
}; /* pci_vid_1517[] */
-pci_id_t pci_vid_1518[] = {
+static pci_id_t const pci_vid_1518[] = {
{0x1518, 0xFFFF, 0xFFFF, 0xFFFF, "Kontron(0x1518)"},
}; /* pci_vid_1518[] */
-pci_id_t pci_vid_1519[] = {
+static pci_id_t const pci_vid_1519[] = {
{0x1519, 0xFFFF, 0xFFFF, 0xFFFF, "TELEFON AKTIEBOLAGET LM Ericsson(0x1519)"},
}; /* pci_vid_1519[] */
-pci_id_t pci_vid_151A[] = {
+static pci_id_t const pci_vid_151A[] = {
{0x151A, 0xFFFF, 0xFFFF, 0xFFFF, "Globetek(0x151A)"},
{0x151A, 0x1002, 0xFFFF, 0xFFFF, "PCI-1002(0x1002)"},
{0x151A, 0x1004, 0xFFFF, 0xFFFF, "PCI-1004(0x1004)"},
{0x151A, 0x1008, 0xFFFF, 0xFFFF, "PCI-1008(0x1008)"},
}; /* pci_vid_151A[] */
-pci_id_t pci_vid_151B[] = {
+static pci_id_t const pci_vid_151B[] = {
{0x151B, 0xFFFF, 0xFFFF, 0xFFFF, "COMBOX Ltd(0x151B)"},
}; /* pci_vid_151B[] */
-pci_id_t pci_vid_151C[] = {
+static pci_id_t const pci_vid_151C[] = {
{0x151C, 0xFFFF, 0xFFFF, 0xFFFF, "DIGITAL AUDIO LABS Inc(0x151C)"},
{0x151C, 0x0003, 0xFFFF, 0xFFFF, "Prodif T 2496(0x0003)"},
{0x151C, 0x4000, 0xFFFF, 0xFFFF, "Prodif 88(0x4000)"},
}; /* pci_vid_151C[] */
-pci_id_t pci_vid_151D[] = {
+static pci_id_t const pci_vid_151D[] = {
{0x151D, 0xFFFF, 0xFFFF, 0xFFFF, "Fujitsu Computer Products Of America(0x151D)"},
}; /* pci_vid_151D[] */
-pci_id_t pci_vid_151E[] = {
+static pci_id_t const pci_vid_151E[] = {
{0x151E, 0xFFFF, 0xFFFF, 0xFFFF, "MATRIX Corp(0x151E)"},
}; /* pci_vid_151E[] */
-pci_id_t pci_vid_151F[] = {
+static pci_id_t const pci_vid_151F[] = {
{0x151F, 0xFFFF, 0xFFFF, 0xFFFF, "TOPIC SEMICONDUCTOR Corp(0x151F)"},
{0x151F, 0x0000, 0xFFFF, 0xFFFF, "TP560 Data/Fax/Voice 56k modem(0x0000)"},
}; /* pci_vid_151F[] */
-pci_id_t pci_vid_1520[] = {
+static pci_id_t const pci_vid_1520[] = {
{0x1520, 0xFFFF, 0xFFFF, 0xFFFF, "CHAPLET System Inc(0x1520)"},
}; /* pci_vid_1520[] */
-pci_id_t pci_vid_1521[] = {
+static pci_id_t const pci_vid_1521[] = {
{0x1521, 0xFFFF, 0xFFFF, 0xFFFF, "BELL Corp(0x1521)"},
}; /* pci_vid_1521[] */
-pci_id_t pci_vid_1522[] = {
+static pci_id_t const pci_vid_1522[] = {
{0x1522, 0xFFFF, 0xFFFF, 0xFFFF, "MainPine Ltd(0x1522)"},
{0x1522, 0x0100, 0xFFFF, 0xFFFF, "PCI <-> IOBus Bridge(0x0100)"},
{0x1522, 0x0100, 0x1522, 0x0200, "RockForceDUO 2 Port V.92/V.44 Data/Fax/Voice Modem(0x1522-0x0200)"},
@@ -25046,11 +25140,11 @@ pci_id_t pci_vid_1522[] = {
{0x1522, 0x4000, 0x1522, 0x4100, "IQ Express SideBand(0x1522-0x4100)"},
}; /* pci_vid_1522[] */
-pci_id_t pci_vid_1523[] = {
+static pci_id_t const pci_vid_1523[] = {
{0x1523, 0xFFFF, 0xFFFF, 0xFFFF, "MUSIC Semiconductors(0x1523)"},
}; /* pci_vid_1523[] */
-pci_id_t pci_vid_1524[] = {
+static pci_id_t const pci_vid_1524[] = {
{0x1524, 0xFFFF, 0xFFFF, 0xFFFF, "ENE Technology Inc(0x1524)"},
{0x1524, 0x0510, 0xFFFF, 0xFFFF, "CB710 Memory Card Reader Controller(0x0510)"},
{0x1524, 0x0510, 0x103C, 0x006A, "NX9500(0x103C-0x006A)"},
@@ -25077,129 +25171,129 @@ pci_id_t pci_vid_1524[] = {
{0x1524, 0x1422, 0xFFFF, 0xFFFF, "CB-722/4 Cardbus Controller(0x1422)"},
}; /* pci_vid_1524[] */
-pci_id_t pci_vid_1525[] = {
+static pci_id_t const pci_vid_1525[] = {
{0x1525, 0xFFFF, 0xFFFF, 0xFFFF, "IMPACT Technologies(0x1525)"},
}; /* pci_vid_1525[] */
-pci_id_t pci_vid_1526[] = {
+static pci_id_t const pci_vid_1526[] = {
{0x1526, 0xFFFF, 0xFFFF, 0xFFFF, "ISS, Inc(0x1526)"},
}; /* pci_vid_1526[] */
-pci_id_t pci_vid_1527[] = {
+static pci_id_t const pci_vid_1527[] = {
{0x1527, 0xFFFF, 0xFFFF, 0xFFFF, "SOLECTRON(0x1527)"},
}; /* pci_vid_1527[] */
-pci_id_t pci_vid_1528[] = {
+static pci_id_t const pci_vid_1528[] = {
{0x1528, 0xFFFF, 0xFFFF, 0xFFFF, "ACKSYS(0x1528)"},
}; /* pci_vid_1528[] */
-pci_id_t pci_vid_1529[] = {
+static pci_id_t const pci_vid_1529[] = {
{0x1529, 0xFFFF, 0xFFFF, 0xFFFF, "ON Semiconductor(0x1529)"},
}; /* pci_vid_1529[] */
-pci_id_t pci_vid_152A[] = {
+static pci_id_t const pci_vid_152A[] = {
{0x152A, 0xFFFF, 0xFFFF, 0xFFFF, "QUICKTURN DESIGN Systems(0x152A)"},
}; /* pci_vid_152A[] */
-pci_id_t pci_vid_152B[] = {
+static pci_id_t const pci_vid_152B[] = {
{0x152B, 0xFFFF, 0xFFFF, 0xFFFF, "FLYTECH Technology CO Ltd(0x152B)"},
}; /* pci_vid_152B[] */
-pci_id_t pci_vid_152C[] = {
+static pci_id_t const pci_vid_152C[] = {
{0x152C, 0xFFFF, 0xFFFF, 0xFFFF, "MACRAIGOR Systems LLC(0x152C)"},
}; /* pci_vid_152C[] */
-pci_id_t pci_vid_152D[] = {
+static pci_id_t const pci_vid_152D[] = {
{0x152D, 0xFFFF, 0xFFFF, 0xFFFF, "QUANTA Computer Inc(0x152D)"},
}; /* pci_vid_152D[] */
-pci_id_t pci_vid_152E[] = {
+static pci_id_t const pci_vid_152E[] = {
{0x152E, 0xFFFF, 0xFFFF, 0xFFFF, "MELEC Inc(0x152E)"},
}; /* pci_vid_152E[] */
-pci_id_t pci_vid_152F[] = {
+static pci_id_t const pci_vid_152F[] = {
{0x152F, 0xFFFF, 0xFFFF, 0xFFFF, "PHILIPS - CRYPTO(0x152F)"},
}; /* pci_vid_152F[] */
-pci_id_t pci_vid_1530[] = {
+static pci_id_t const pci_vid_1530[] = {
{0x1530, 0xFFFF, 0xFFFF, 0xFFFF, "ACQIS Technology Inc(0x1530)"},
}; /* pci_vid_1530[] */
-pci_id_t pci_vid_1531[] = {
+static pci_id_t const pci_vid_1531[] = {
{0x1531, 0xFFFF, 0xFFFF, 0xFFFF, "CHRYON Corp(0x1531)"},
}; /* pci_vid_1531[] */
-pci_id_t pci_vid_1532[] = {
+static pci_id_t const pci_vid_1532[] = {
{0x1532, 0xFFFF, 0xFFFF, 0xFFFF, "ECHELON Corp(0x1532)"},
{0x1532, 0x0020, 0xFFFF, 0xFFFF, "LonWorks PCLTA-20 PCI LonTalk Adapter(0x0020)"},
}; /* pci_vid_1532[] */
-pci_id_t pci_vid_1533[] = {
+static pci_id_t const pci_vid_1533[] = {
{0x1533, 0xFFFF, 0xFFFF, 0xFFFF, "BALTIMORE(0x1533)"},
}; /* pci_vid_1533[] */
-pci_id_t pci_vid_1534[] = {
+static pci_id_t const pci_vid_1534[] = {
{0x1534, 0xFFFF, 0xFFFF, 0xFFFF, "ROAD Corp(0x1534)"},
}; /* pci_vid_1534[] */
-pci_id_t pci_vid_1535[] = {
+static pci_id_t const pci_vid_1535[] = {
{0x1535, 0xFFFF, 0xFFFF, 0xFFFF, "EVERGREEN Technologies Inc(0x1535)"},
}; /* pci_vid_1535[] */
-pci_id_t pci_vid_1536[] = {
+static pci_id_t const pci_vid_1536[] = {
{0x1536, 0xFFFF, 0xFFFF, 0xFFFF, "ACTIS Computer(0x1536)"},
}; /* pci_vid_1536[] */
-pci_id_t pci_vid_1537[] = {
+static pci_id_t const pci_vid_1537[] = {
{0x1537, 0xFFFF, 0xFFFF, 0xFFFF, "DATALEX COMMUNCATIONS(0x1537)"},
}; /* pci_vid_1537[] */
-pci_id_t pci_vid_1538[] = {
+static pci_id_t const pci_vid_1538[] = {
{0x1538, 0xFFFF, 0xFFFF, 0xFFFF, "ARALION Inc(0x1538)"},
{0x1538, 0x0303, 0xFFFF, 0xFFFF, "ARS106S Ultra ATA 133/100/66 Host Controller(0x0303)"},
}; /* pci_vid_1538[] */
-pci_id_t pci_vid_1539[] = {
+static pci_id_t const pci_vid_1539[] = {
{0x1539, 0xFFFF, 0xFFFF, 0xFFFF, "ATELIER INFORMATIQUES et ELECTRONIQUE ETUDES S.A.(0x1539)"},
}; /* pci_vid_1539[] */
-pci_id_t pci_vid_153A[] = {
+static pci_id_t const pci_vid_153A[] = {
{0x153A, 0xFFFF, 0xFFFF, 0xFFFF, "ONO SOKKI(0x153A)"},
}; /* pci_vid_153A[] */
-pci_id_t pci_vid_153B[] = {
+static pci_id_t const pci_vid_153B[] = {
{0x153B, 0xFFFF, 0xFFFF, 0xFFFF, "TERRATEC Electronic GmbH(0x153B)"},
{0x153B, 0x1144, 0xFFFF, 0xFFFF, "Aureon 5.1(0x1144)"},
{0x153B, 0x1147, 0xFFFF, 0xFFFF, "Aureon 5.1 Sky(0x1147)"},
{0x153B, 0x1158, 0xFFFF, 0xFFFF, "Philips Semiconductors SAA7134 (rev 01) [Terratec Cinergy 600 TV](0x1158)"},
}; /* pci_vid_153B[] */
-pci_id_t pci_vid_153C[] = {
+static pci_id_t const pci_vid_153C[] = {
{0x153C, 0xFFFF, 0xFFFF, 0xFFFF, "ANTAL Electronic(0x153C)"},
}; /* pci_vid_153C[] */
-pci_id_t pci_vid_153D[] = {
+static pci_id_t const pci_vid_153D[] = {
{0x153D, 0xFFFF, 0xFFFF, 0xFFFF, "FILANET Corp(0x153D)"},
}; /* pci_vid_153D[] */
-pci_id_t pci_vid_153E[] = {
+static pci_id_t const pci_vid_153E[] = {
{0x153E, 0xFFFF, 0xFFFF, 0xFFFF, "TECHWELL Inc(0x153E)"},
}; /* pci_vid_153E[] */
-pci_id_t pci_vid_153F[] = {
+static pci_id_t const pci_vid_153F[] = {
{0x153F, 0xFFFF, 0xFFFF, 0xFFFF, "MIPS Technologies, Inc.(0x153F)"},
{0x153F, 0x0001, 0xFFFF, 0xFFFF, "SOC-it 101 System Controller(0x0001)"},
}; /* pci_vid_153F[] */
-pci_id_t pci_vid_1540[] = {
+static pci_id_t const pci_vid_1540[] = {
{0x1540, 0xFFFF, 0xFFFF, 0xFFFF, "PROVIDEO MULTIMEDIA Co Ltd(0x1540)"},
}; /* pci_vid_1540[] */
-pci_id_t pci_vid_1541[] = {
+static pci_id_t const pci_vid_1541[] = {
{0x1541, 0xFFFF, 0xFFFF, 0xFFFF, "MACHONE Communications(0x1541)"},
}; /* pci_vid_1541[] */
-pci_id_t pci_vid_1542[] = {
+static pci_id_t const pci_vid_1542[] = {
{0x1542, 0xFFFF, 0xFFFF, 0xFFFF, "Concurrent Real-Time(0x1542)"},
{0x1542, 0x9260, 0xFFFF, 0xFFFF, "RCIM-II Real-Time Clock & Interrupt Module(0x9260)"},
{0x1542, 0x9271, 0xFFFF, 0xFFFF, "RCIM-III Real-Time Clock & Interrupt Module (PCIe)(0x9271)"},
@@ -25214,85 +25308,85 @@ pci_id_t pci_vid_1542[] = {
{0x1542, 0x9350, 0xFFFF, 0xFFFF, "Analog Input Card(0x9350)"},
}; /* pci_vid_1542[] */
-pci_id_t pci_vid_1543[] = {
+static pci_id_t const pci_vid_1543[] = {
{0x1543, 0xFFFF, 0xFFFF, 0xFFFF, "SILICON Laboratories(0x1543)"},
{0x1543, 0x3052, 0xFFFF, 0xFFFF, "Intel 537 [Winmodem](0x3052)"},
{0x1543, 0x4C22, 0xFFFF, 0xFFFF, "Si3036 MC'97 DAA(0x4C22)"},
}; /* pci_vid_1543[] */
-pci_id_t pci_vid_1544[] = {
+static pci_id_t const pci_vid_1544[] = {
{0x1544, 0xFFFF, 0xFFFF, 0xFFFF, "DCM DATA Systems(0x1544)"},
}; /* pci_vid_1544[] */
-pci_id_t pci_vid_1545[] = {
+static pci_id_t const pci_vid_1545[] = {
{0x1545, 0xFFFF, 0xFFFF, 0xFFFF, "VISIONTEK(0x1545)"},
}; /* pci_vid_1545[] */
-pci_id_t pci_vid_1546[] = {
+static pci_id_t const pci_vid_1546[] = {
{0x1546, 0xFFFF, 0xFFFF, 0xFFFF, "IOI Technology Corp(0x1546)"},
}; /* pci_vid_1546[] */
-pci_id_t pci_vid_1547[] = {
+static pci_id_t const pci_vid_1547[] = {
{0x1547, 0xFFFF, 0xFFFF, 0xFFFF, "MITUTOYO Corp(0x1547)"},
}; /* pci_vid_1547[] */
-pci_id_t pci_vid_1548[] = {
+static pci_id_t const pci_vid_1548[] = {
{0x1548, 0xFFFF, 0xFFFF, 0xFFFF, "JET PROPULSION Laboratory(0x1548)"},
}; /* pci_vid_1548[] */
-pci_id_t pci_vid_1549[] = {
+static pci_id_t const pci_vid_1549[] = {
{0x1549, 0xFFFF, 0xFFFF, 0xFFFF, "INTERCONNECT Systems Solutions(0x1549)"},
}; /* pci_vid_1549[] */
-pci_id_t pci_vid_154A[] = {
+static pci_id_t const pci_vid_154A[] = {
{0x154A, 0xFFFF, 0xFFFF, 0xFFFF, "MAX Technologies Inc(0x154A)"},
}; /* pci_vid_154A[] */
-pci_id_t pci_vid_154B[] = {
+static pci_id_t const pci_vid_154B[] = {
{0x154B, 0xFFFF, 0xFFFF, 0xFFFF, "COMPUTEX Co Ltd(0x154B)"},
}; /* pci_vid_154B[] */
-pci_id_t pci_vid_154C[] = {
+static pci_id_t const pci_vid_154C[] = {
{0x154C, 0xFFFF, 0xFFFF, 0xFFFF, "VISUAL Technology Inc(0x154C)"},
}; /* pci_vid_154C[] */
-pci_id_t pci_vid_154D[] = {
+static pci_id_t const pci_vid_154D[] = {
{0x154D, 0xFFFF, 0xFFFF, 0xFFFF, "PAN INTERNATIONAL Industrial Corp(0x154D)"},
}; /* pci_vid_154D[] */
-pci_id_t pci_vid_154E[] = {
+static pci_id_t const pci_vid_154E[] = {
{0x154E, 0xFFFF, 0xFFFF, 0xFFFF, "SERVOTEST Ltd(0x154E)"},
}; /* pci_vid_154E[] */
-pci_id_t pci_vid_154F[] = {
+static pci_id_t const pci_vid_154F[] = {
{0x154F, 0xFFFF, 0xFFFF, 0xFFFF, "STRATABEAM Technology(0x154F)"},
}; /* pci_vid_154F[] */
-pci_id_t pci_vid_1550[] = {
+static pci_id_t const pci_vid_1550[] = {
{0x1550, 0xFFFF, 0xFFFF, 0xFFFF, "OPEN NETWORK Co Ltd(0x1550)"},
}; /* pci_vid_1550[] */
-pci_id_t pci_vid_1551[] = {
+static pci_id_t const pci_vid_1551[] = {
{0x1551, 0xFFFF, 0xFFFF, 0xFFFF, "SMART Electronic DEVELOPMENT GmBH(0x1551)"},
}; /* pci_vid_1551[] */
-pci_id_t pci_vid_1552[] = {
+static pci_id_t const pci_vid_1552[] = {
{0x1552, 0xFFFF, 0xFFFF, 0xFFFF, "RACAL AIRTECH Ltd(0x1552)"},
}; /* pci_vid_1552[] */
-pci_id_t pci_vid_1553[] = {
+static pci_id_t const pci_vid_1553[] = {
{0x1553, 0xFFFF, 0xFFFF, 0xFFFF, "CHICONY Electronics Co Ltd(0x1553)"},
}; /* pci_vid_1553[] */
-pci_id_t pci_vid_1554[] = {
+static pci_id_t const pci_vid_1554[] = {
{0x1554, 0xFFFF, 0xFFFF, 0xFFFF, "PROLINK Microsystems Corp(0x1554)"},
}; /* pci_vid_1554[] */
-pci_id_t pci_vid_1555[] = {
+static pci_id_t const pci_vid_1555[] = {
{0x1555, 0xFFFF, 0xFFFF, 0xFFFF, "GESYTEC GmBH(0x1555)"},
}; /* pci_vid_1555[] */
-pci_id_t pci_vid_1556[] = {
+static pci_id_t const pci_vid_1556[] = {
{0x1556, 0xFFFF, 0xFFFF, 0xFFFF, "PLDA(0x1556)"},
{0x1556, 0x1100, 0xFFFF, 0xFFFF, "PCI Express Core Reference Design(0x1100)"},
{0x1556, 0x110F, 0xFFFF, 0xFFFF, "PCI Express Core Reference Design Virtual Function(0x110F)"},
@@ -25306,111 +25400,112 @@ pci_id_t pci_vid_1556[] = {
{0x1556, 0xBE00, 0xFFFF, 0xFFFF, "PCI Express Bridge(0xBE00)"},
}; /* pci_vid_1556[] */
-pci_id_t pci_vid_1557[] = {
+static pci_id_t const pci_vid_1557[] = {
{0x1557, 0xFFFF, 0xFFFF, 0xFFFF, "MEDIASTAR Co Ltd(0x1557)"},
}; /* pci_vid_1557[] */
-pci_id_t pci_vid_1558[] = {
+static pci_id_t const pci_vid_1558[] = {
{0x1558, 0xFFFF, 0xFFFF, 0xFFFF, "CLEVO/KAPOK Computer(0x1558)"},
+{0x1558, 0x9602, 0xFFFF, 0xFFFF, "RS780/RS880 PCI to PCI bridge (int gfx)(0x9602)"},
}; /* pci_vid_1558[] */
-pci_id_t pci_vid_1559[] = {
+static pci_id_t const pci_vid_1559[] = {
{0x1559, 0xFFFF, 0xFFFF, 0xFFFF, "SI LOGIC Ltd(0x1559)"},
}; /* pci_vid_1559[] */
-pci_id_t pci_vid_155A[] = {
+static pci_id_t const pci_vid_155A[] = {
{0x155A, 0xFFFF, 0xFFFF, 0xFFFF, "INNOMEDIA Inc(0x155A)"},
}; /* pci_vid_155A[] */
-pci_id_t pci_vid_155B[] = {
+static pci_id_t const pci_vid_155B[] = {
{0x155B, 0xFFFF, 0xFFFF, 0xFFFF, "PROTAC INTERNATIONAL Corp(0x155B)"},
}; /* pci_vid_155B[] */
-pci_id_t pci_vid_155C[] = {
+static pci_id_t const pci_vid_155C[] = {
{0x155C, 0xFFFF, 0xFFFF, 0xFFFF, "Cemax-Icon Inc(0x155C)"},
}; /* pci_vid_155C[] */
-pci_id_t pci_vid_155D[] = {
+static pci_id_t const pci_vid_155D[] = {
{0x155D, 0xFFFF, 0xFFFF, 0xFFFF, "Mac System Co Ltd(0x155D)"},
}; /* pci_vid_155D[] */
-pci_id_t pci_vid_155E[] = {
+static pci_id_t const pci_vid_155E[] = {
{0x155E, 0xFFFF, 0xFFFF, 0xFFFF, "LP Elektronik GmbH(0x155E)"},
}; /* pci_vid_155E[] */
-pci_id_t pci_vid_155F[] = {
+static pci_id_t const pci_vid_155F[] = {
{0x155F, 0xFFFF, 0xFFFF, 0xFFFF, "Perle Systems Ltd(0x155F)"},
}; /* pci_vid_155F[] */
-pci_id_t pci_vid_1560[] = {
+static pci_id_t const pci_vid_1560[] = {
{0x1560, 0xFFFF, 0xFFFF, 0xFFFF, "Terayon Communications Systems(0x1560)"},
}; /* pci_vid_1560[] */
-pci_id_t pci_vid_1561[] = {
+static pci_id_t const pci_vid_1561[] = {
{0x1561, 0xFFFF, 0xFFFF, 0xFFFF, "Viewgraphics Inc(0x1561)"},
}; /* pci_vid_1561[] */
-pci_id_t pci_vid_1562[] = {
+static pci_id_t const pci_vid_1562[] = {
{0x1562, 0xFFFF, 0xFFFF, 0xFFFF, "Symbol Technologies(0x1562)"},
}; /* pci_vid_1562[] */
-pci_id_t pci_vid_1563[] = {
+static pci_id_t const pci_vid_1563[] = {
{0x1563, 0xFFFF, 0xFFFF, 0xFFFF, "A-Trend Technology Co Ltd(0x1563)"},
}; /* pci_vid_1563[] */
-pci_id_t pci_vid_1564[] = {
+static pci_id_t const pci_vid_1564[] = {
{0x1564, 0xFFFF, 0xFFFF, 0xFFFF, "Yamakatsu Electronics Industry Co Ltd(0x1564)"},
}; /* pci_vid_1564[] */
-pci_id_t pci_vid_1565[] = {
+static pci_id_t const pci_vid_1565[] = {
{0x1565, 0xFFFF, 0xFFFF, 0xFFFF, "Biostar Microtech Int'l Corp(0x1565)"},
}; /* pci_vid_1565[] */
-pci_id_t pci_vid_1566[] = {
+static pci_id_t const pci_vid_1566[] = {
{0x1566, 0xFFFF, 0xFFFF, 0xFFFF, "Ardent Technologies Inc(0x1566)"},
}; /* pci_vid_1566[] */
-pci_id_t pci_vid_1567[] = {
+static pci_id_t const pci_vid_1567[] = {
{0x1567, 0xFFFF, 0xFFFF, 0xFFFF, "Jungsoft(0x1567)"},
}; /* pci_vid_1567[] */
-pci_id_t pci_vid_1568[] = {
+static pci_id_t const pci_vid_1568[] = {
{0x1568, 0xFFFF, 0xFFFF, 0xFFFF, "DDK Electronics Inc(0x1568)"},
}; /* pci_vid_1568[] */
-pci_id_t pci_vid_1569[] = {
+static pci_id_t const pci_vid_1569[] = {
{0x1569, 0xFFFF, 0xFFFF, 0xFFFF, "Palit Microsystems Inc.(0x1569)"},
}; /* pci_vid_1569[] */
-pci_id_t pci_vid_156A[] = {
+static pci_id_t const pci_vid_156A[] = {
{0x156A, 0xFFFF, 0xFFFF, 0xFFFF, "Avtec Systems(0x156A)"},
}; /* pci_vid_156A[] */
-pci_id_t pci_vid_156B[] = {
+static pci_id_t const pci_vid_156B[] = {
{0x156B, 0xFFFF, 0xFFFF, 0xFFFF, "2wire Inc(0x156B)"},
}; /* pci_vid_156B[] */
-pci_id_t pci_vid_156C[] = {
+static pci_id_t const pci_vid_156C[] = {
{0x156C, 0xFFFF, 0xFFFF, 0xFFFF, "Vidac Electronics GmbH(0x156C)"},
}; /* pci_vid_156C[] */
-pci_id_t pci_vid_156D[] = {
+static pci_id_t const pci_vid_156D[] = {
{0x156D, 0xFFFF, 0xFFFF, 0xFFFF, "Alpha-Top Corp(0x156D)"},
}; /* pci_vid_156D[] */
-pci_id_t pci_vid_156E[] = {
+static pci_id_t const pci_vid_156E[] = {
{0x156E, 0xFFFF, 0xFFFF, 0xFFFF, "Alfa Inc(0x156E)"},
}; /* pci_vid_156E[] */
-pci_id_t pci_vid_156F[] = {
+static pci_id_t const pci_vid_156F[] = {
{0x156F, 0xFFFF, 0xFFFF, 0xFFFF, "M-Systems Flash Disk Pioneers Ltd(0x156F)"},
}; /* pci_vid_156F[] */
-pci_id_t pci_vid_1570[] = {
+static pci_id_t const pci_vid_1570[] = {
{0x1570, 0xFFFF, 0xFFFF, 0xFFFF, "Teledyne Lecroy(0x1570)"},
}; /* pci_vid_1570[] */
-pci_id_t pci_vid_1571[] = {
+static pci_id_t const pci_vid_1571[] = {
{0x1571, 0xFFFF, 0xFFFF, 0xFFFF, "Contemporary Controls(0x1571)"},
{0x1571, 0xA001, 0xFFFF, 0xFFFF, "CCSI PCI20-485 ARCnet(0xA001)"},
{0x1571, 0xA002, 0xFFFF, 0xFFFF, "CCSI PCI20-485D ARCnet(0xA002)"},
@@ -25433,128 +25528,128 @@ pci_id_t pci_vid_1571[] = {
{0x1571, 0xA206, 0xFFFF, 0xFFFF, "CCSI PCI22-THB 10Mbit ARCnet(0xA206)"},
}; /* pci_vid_1571[] */
-pci_id_t pci_vid_1572[] = {
+static pci_id_t const pci_vid_1572[] = {
{0x1572, 0xFFFF, 0xFFFF, 0xFFFF, "Otis Elevator Company(0x1572)"},
}; /* pci_vid_1572[] */
-pci_id_t pci_vid_1573[] = {
+static pci_id_t const pci_vid_1573[] = {
{0x1573, 0xFFFF, 0xFFFF, 0xFFFF, "Lattice - Vantis(0x1573)"},
}; /* pci_vid_1573[] */
-pci_id_t pci_vid_1574[] = {
+static pci_id_t const pci_vid_1574[] = {
{0x1574, 0xFFFF, 0xFFFF, 0xFFFF, "Fairchild Semiconductor(0x1574)"},
}; /* pci_vid_1574[] */
-pci_id_t pci_vid_1575[] = {
+static pci_id_t const pci_vid_1575[] = {
{0x1575, 0xFFFF, 0xFFFF, 0xFFFF, "Voltaire Advanced Data Security Ltd(0x1575)"},
}; /* pci_vid_1575[] */
-pci_id_t pci_vid_1576[] = {
+static pci_id_t const pci_vid_1576[] = {
{0x1576, 0xFFFF, 0xFFFF, 0xFFFF, "Viewcast COM(0x1576)"},
}; /* pci_vid_1576[] */
-pci_id_t pci_vid_1578[] = {
+static pci_id_t const pci_vid_1578[] = {
{0x1578, 0xFFFF, 0xFFFF, 0xFFFF, "HITT(0x1578)"},
{0x1578, 0x4D34, 0xFFFF, 0xFFFF, "VPMK4 [Video Processor Mk IV](0x4D34)"},
{0x1578, 0x5615, 0xFFFF, 0xFFFF, "VPMK3 [Video Processor Mk III](0x5615)"},
}; /* pci_vid_1578[] */
-pci_id_t pci_vid_1579[] = {
+static pci_id_t const pci_vid_1579[] = {
{0x1579, 0xFFFF, 0xFFFF, 0xFFFF, "Dual Technology Corp(0x1579)"},
}; /* pci_vid_1579[] */
-pci_id_t pci_vid_157A[] = {
+static pci_id_t const pci_vid_157A[] = {
{0x157A, 0xFFFF, 0xFFFF, 0xFFFF, "Japan Elecronics Ind Inc(0x157A)"},
}; /* pci_vid_157A[] */
-pci_id_t pci_vid_157B[] = {
+static pci_id_t const pci_vid_157B[] = {
{0x157B, 0xFFFF, 0xFFFF, 0xFFFF, "Star Multimedia Corp(0x157B)"},
}; /* pci_vid_157B[] */
-pci_id_t pci_vid_157C[] = {
+static pci_id_t const pci_vid_157C[] = {
{0x157C, 0xFFFF, 0xFFFF, 0xFFFF, "Eurosoft (UK)(0x157C)"},
{0x157C, 0x8001, 0xFFFF, 0xFFFF, "Fix2000 PCI Y2K Compliance Card(0x8001)"},
}; /* pci_vid_157C[] */
-pci_id_t pci_vid_157D[] = {
+static pci_id_t const pci_vid_157D[] = {
{0x157D, 0xFFFF, 0xFFFF, 0xFFFF, "Gemflex Networks(0x157D)"},
}; /* pci_vid_157D[] */
-pci_id_t pci_vid_157E[] = {
+static pci_id_t const pci_vid_157E[] = {
{0x157E, 0xFFFF, 0xFFFF, 0xFFFF, "Transition Networks(0x157E)"},
}; /* pci_vid_157E[] */
-pci_id_t pci_vid_157F[] = {
+static pci_id_t const pci_vid_157F[] = {
{0x157F, 0xFFFF, 0xFFFF, 0xFFFF, "PX Instruments Technology Ltd(0x157F)"},
}; /* pci_vid_157F[] */
-pci_id_t pci_vid_1580[] = {
+static pci_id_t const pci_vid_1580[] = {
{0x1580, 0xFFFF, 0xFFFF, 0xFFFF, "Primex Aerospace Co(0x1580)"},
}; /* pci_vid_1580[] */
-pci_id_t pci_vid_1581[] = {
+static pci_id_t const pci_vid_1581[] = {
{0x1581, 0xFFFF, 0xFFFF, 0xFFFF, "SEH Computertechnik GmbH(0x1581)"},
}; /* pci_vid_1581[] */
-pci_id_t pci_vid_1582[] = {
+static pci_id_t const pci_vid_1582[] = {
{0x1582, 0xFFFF, 0xFFFF, 0xFFFF, "Cytec Corp(0x1582)"},
}; /* pci_vid_1582[] */
-pci_id_t pci_vid_1583[] = {
+static pci_id_t const pci_vid_1583[] = {
{0x1583, 0xFFFF, 0xFFFF, 0xFFFF, "Inet Technologies Inc(0x1583)"},
}; /* pci_vid_1583[] */
-pci_id_t pci_vid_1584[] = {
+static pci_id_t const pci_vid_1584[] = {
{0x1584, 0xFFFF, 0xFFFF, 0xFFFF, "Uniwill Computer Corp(0x1584)"},
}; /* pci_vid_1584[] */
-pci_id_t pci_vid_1585[] = {
+static pci_id_t const pci_vid_1585[] = {
{0x1585, 0xFFFF, 0xFFFF, 0xFFFF, "Logitron(0x1585)"},
}; /* pci_vid_1585[] */
-pci_id_t pci_vid_1586[] = {
+static pci_id_t const pci_vid_1586[] = {
{0x1586, 0xFFFF, 0xFFFF, 0xFFFF, "Lancast Inc(0x1586)"},
}; /* pci_vid_1586[] */
-pci_id_t pci_vid_1587[] = {
+static pci_id_t const pci_vid_1587[] = {
{0x1587, 0xFFFF, 0xFFFF, 0xFFFF, "Konica Corp(0x1587)"},
}; /* pci_vid_1587[] */
-pci_id_t pci_vid_1588[] = {
+static pci_id_t const pci_vid_1588[] = {
{0x1588, 0xFFFF, 0xFFFF, 0xFFFF, "Solidum Systems Corp(0x1588)"},
}; /* pci_vid_1588[] */
-pci_id_t pci_vid_1589[] = {
+static pci_id_t const pci_vid_1589[] = {
{0x1589, 0xFFFF, 0xFFFF, 0xFFFF, "Atlantek Microsystems Pty Ltd(0x1589)"},
{0x1589, 0x0008, 0xFFFF, 0xFFFF, "Leutron Vision PicPortExpress CL(0x0008)"},
{0x1589, 0x0009, 0xFFFF, 0xFFFF, "Leutron Vision PicPortExpress CL Stereo(0x0009)"},
}; /* pci_vid_1589[] */
-pci_id_t pci_vid_158A[] = {
+static pci_id_t const pci_vid_158A[] = {
{0x158A, 0xFFFF, 0xFFFF, 0xFFFF, "Digalog Systems Inc(0x158A)"},
}; /* pci_vid_158A[] */
-pci_id_t pci_vid_158B[] = {
+static pci_id_t const pci_vid_158B[] = {
{0x158B, 0xFFFF, 0xFFFF, 0xFFFF, "Allied Data Technologies(0x158B)"},
}; /* pci_vid_158B[] */
-pci_id_t pci_vid_158C[] = {
+static pci_id_t const pci_vid_158C[] = {
{0x158C, 0xFFFF, 0xFFFF, 0xFFFF, "Hitachi Semiconductor & Devices Sales Co Ltd(0x158C)"},
}; /* pci_vid_158C[] */
-pci_id_t pci_vid_158D[] = {
+static pci_id_t const pci_vid_158D[] = {
{0x158D, 0xFFFF, 0xFFFF, 0xFFFF, "Point Multimedia Systems(0x158D)"},
}; /* pci_vid_158D[] */
-pci_id_t pci_vid_158E[] = {
+static pci_id_t const pci_vid_158E[] = {
{0x158E, 0xFFFF, 0xFFFF, 0xFFFF, "Lara Technology Inc(0x158E)"},
}; /* pci_vid_158E[] */
-pci_id_t pci_vid_158F[] = {
+static pci_id_t const pci_vid_158F[] = {
{0x158F, 0xFFFF, 0xFFFF, 0xFFFF, "Ditect Coop(0x158F)"},
}; /* pci_vid_158F[] */
-pci_id_t pci_vid_1590[] = {
+static pci_id_t const pci_vid_1590[] = {
{0x1590, 0xFFFF, 0xFFFF, 0xFFFF, "Hewlett Packard Enterprise(0x1590)"},
{0x1590, 0x0001, 0xFFFF, 0xFFFF, "Eagle Cluster Manager(0x0001)"},
{0x1590, 0x0002, 0xFFFF, 0xFFFF, "Osprey Cluster Manager(0x0002)"},
@@ -25564,11 +25659,11 @@ pci_id_t pci_vid_1590[] = {
{0x1590, 0xA01D, 0xFFFF, 0xFFFF, "FC044X Fibre Channel HBA(0xA01D)"},
}; /* pci_vid_1590[] */
-pci_id_t pci_vid_1591[] = {
+static pci_id_t const pci_vid_1591[] = {
{0x1591, 0xFFFF, 0xFFFF, 0xFFFF, "ARN(0x1591)"},
}; /* pci_vid_1591[] */
-pci_id_t pci_vid_1592[] = {
+static pci_id_t const pci_vid_1592[] = {
{0x1592, 0xFFFF, 0xFFFF, 0xFFFF, "Syba Tech Ltd(0x1592)"},
{0x1592, 0x0781, 0xFFFF, 0xFFFF, "Multi-IO Card(0x0781)"},
{0x1592, 0x0782, 0xFFFF, 0xFFFF, "Parallel Port Card 2xEPP(0x0782)"},
@@ -25580,110 +25675,110 @@ pci_id_t pci_vid_1592[] = {
{0x1592, 0x078A, 0xFFFF, 0xFFFF, "Multi-IO Card(0x078A)"},
}; /* pci_vid_1592[] */
-pci_id_t pci_vid_1593[] = {
+static pci_id_t const pci_vid_1593[] = {
{0x1593, 0xFFFF, 0xFFFF, 0xFFFF, "Bops Inc(0x1593)"},
}; /* pci_vid_1593[] */
-pci_id_t pci_vid_1594[] = {
+static pci_id_t const pci_vid_1594[] = {
{0x1594, 0xFFFF, 0xFFFF, 0xFFFF, "Netgame Ltd(0x1594)"},
}; /* pci_vid_1594[] */
-pci_id_t pci_vid_1595[] = {
+static pci_id_t const pci_vid_1595[] = {
{0x1595, 0xFFFF, 0xFFFF, 0xFFFF, "Diva Systems Corp(0x1595)"},
}; /* pci_vid_1595[] */
-pci_id_t pci_vid_1596[] = {
+static pci_id_t const pci_vid_1596[] = {
{0x1596, 0xFFFF, 0xFFFF, 0xFFFF, "Folsom Research Inc(0x1596)"},
}; /* pci_vid_1596[] */
-pci_id_t pci_vid_1597[] = {
+static pci_id_t const pci_vid_1597[] = {
{0x1597, 0xFFFF, 0xFFFF, 0xFFFF, "Memec Design Services(0x1597)"},
}; /* pci_vid_1597[] */
-pci_id_t pci_vid_1598[] = {
+static pci_id_t const pci_vid_1598[] = {
{0x1598, 0xFFFF, 0xFFFF, 0xFFFF, "Granite Microsystems(0x1598)"},
}; /* pci_vid_1598[] */
-pci_id_t pci_vid_1599[] = {
+static pci_id_t const pci_vid_1599[] = {
{0x1599, 0xFFFF, 0xFFFF, 0xFFFF, "Delta Electronics Inc(0x1599)"},
}; /* pci_vid_1599[] */
-pci_id_t pci_vid_159A[] = {
+static pci_id_t const pci_vid_159A[] = {
{0x159A, 0xFFFF, 0xFFFF, 0xFFFF, "General Instrument(0x159A)"},
}; /* pci_vid_159A[] */
-pci_id_t pci_vid_159B[] = {
+static pci_id_t const pci_vid_159B[] = {
{0x159B, 0xFFFF, 0xFFFF, 0xFFFF, "Faraday Technology Corp(0x159B)"},
{0x159B, 0x4321, 0xFFFF, 0xFFFF, "StorLink SL3516 (Gemini) Host Bridge(0x4321)"},
}; /* pci_vid_159B[] */
-pci_id_t pci_vid_159C[] = {
+static pci_id_t const pci_vid_159C[] = {
{0x159C, 0xFFFF, 0xFFFF, 0xFFFF, "Stratus Computer Systems(0x159C)"},
}; /* pci_vid_159C[] */
-pci_id_t pci_vid_159D[] = {
+static pci_id_t const pci_vid_159D[] = {
{0x159D, 0xFFFF, 0xFFFF, 0xFFFF, "Ningbo Harrison Electronics Co Ltd(0x159D)"},
}; /* pci_vid_159D[] */
-pci_id_t pci_vid_159E[] = {
+static pci_id_t const pci_vid_159E[] = {
{0x159E, 0xFFFF, 0xFFFF, 0xFFFF, "A-Max Technology Co Ltd(0x159E)"},
}; /* pci_vid_159E[] */
-pci_id_t pci_vid_159F[] = {
+static pci_id_t const pci_vid_159F[] = {
{0x159F, 0xFFFF, 0xFFFF, 0xFFFF, "Galea Network Security(0x159F)"},
}; /* pci_vid_159F[] */
-pci_id_t pci_vid_15A0[] = {
+static pci_id_t const pci_vid_15A0[] = {
{0x15A0, 0xFFFF, 0xFFFF, 0xFFFF, "Compumaster SRL(0x15A0)"},
}; /* pci_vid_15A0[] */
-pci_id_t pci_vid_15A1[] = {
+static pci_id_t const pci_vid_15A1[] = {
{0x15A1, 0xFFFF, 0xFFFF, 0xFFFF, "Geocast Network Systems(0x15A1)"},
}; /* pci_vid_15A1[] */
-pci_id_t pci_vid_15A2[] = {
+static pci_id_t const pci_vid_15A2[] = {
{0x15A2, 0xFFFF, 0xFFFF, 0xFFFF, "Catalyst Enterprises Inc(0x15A2)"},
{0x15A2, 0x0001, 0xFFFF, 0xFFFF, "TA700 PCI Bus Analyzer/Exerciser(0x0001)"},
}; /* pci_vid_15A2[] */
-pci_id_t pci_vid_15A3[] = {
+static pci_id_t const pci_vid_15A3[] = {
{0x15A3, 0xFFFF, 0xFFFF, 0xFFFF, "Italtel(0x15A3)"},
}; /* pci_vid_15A3[] */
-pci_id_t pci_vid_15A4[] = {
+static pci_id_t const pci_vid_15A4[] = {
{0x15A4, 0xFFFF, 0xFFFF, 0xFFFF, "X-Net OY(0x15A4)"},
}; /* pci_vid_15A4[] */
-pci_id_t pci_vid_15A5[] = {
+static pci_id_t const pci_vid_15A5[] = {
{0x15A5, 0xFFFF, 0xFFFF, 0xFFFF, "Toyota Macs Inc(0x15A5)"},
}; /* pci_vid_15A5[] */
-pci_id_t pci_vid_15A6[] = {
+static pci_id_t const pci_vid_15A6[] = {
{0x15A6, 0xFFFF, 0xFFFF, 0xFFFF, "Sunlight Ultrasound Technologies Ltd(0x15A6)"},
}; /* pci_vid_15A6[] */
-pci_id_t pci_vid_15A7[] = {
+static pci_id_t const pci_vid_15A7[] = {
{0x15A7, 0xFFFF, 0xFFFF, 0xFFFF, "SSE Telecom Inc(0x15A7)"},
}; /* pci_vid_15A7[] */
-pci_id_t pci_vid_15A8[] = {
+static pci_id_t const pci_vid_15A8[] = {
{0x15A8, 0xFFFF, 0xFFFF, 0xFFFF, "Shanghai Communications Technologies Center(0x15A8)"},
}; /* pci_vid_15A8[] */
-pci_id_t pci_vid_15AA[] = {
+static pci_id_t const pci_vid_15AA[] = {
{0x15AA, 0xFFFF, 0xFFFF, 0xFFFF, "Moreton Bay(0x15AA)"},
}; /* pci_vid_15AA[] */
-pci_id_t pci_vid_15AB[] = {
+static pci_id_t const pci_vid_15AB[] = {
{0x15AB, 0xFFFF, 0xFFFF, 0xFFFF, "Bluesteel Networks Inc(0x15AB)"},
}; /* pci_vid_15AB[] */
-pci_id_t pci_vid_15AC[] = {
+static pci_id_t const pci_vid_15AC[] = {
{0x15AC, 0xFFFF, 0xFFFF, 0xFFFF, "North Atlantic Instruments(0x15AC)"},
{0x15AC, 0x6893, 0xFFFF, 0xFFFF, "3U OpenVPX Multi-function I/O Board [Model 68C3](0x6893)"},
}; /* pci_vid_15AC[] */
-pci_id_t pci_vid_15AD[] = {
+static pci_id_t const pci_vid_15AD[] = {
{0x15AD, 0xFFFF, 0xFFFF, 0xFFFF, "VMware(0x15AD)"},
{0x15AD, 0x0405, 0xFFFF, 0xFFFF, "SVGA II Adapter(0x0405)"},
{0x15AD, 0x0710, 0xFFFF, 0xFFFF, "SVGA Adapter(0x0710)"},
@@ -25705,23 +25800,23 @@ pci_id_t pci_vid_15AD[] = {
{0x15AD, 0x1977, 0xFFFF, 0xFFFF, "HD Audio Controller(0x1977)"},
}; /* pci_vid_15AD[] */
-pci_id_t pci_vid_15AE[] = {
+static pci_id_t const pci_vid_15AE[] = {
{0x15AE, 0xFFFF, 0xFFFF, 0xFFFF, "Amersham Pharmacia Biotech(0x15AE)"},
}; /* pci_vid_15AE[] */
-pci_id_t pci_vid_15B0[] = {
+static pci_id_t const pci_vid_15B0[] = {
{0x15B0, 0xFFFF, 0xFFFF, 0xFFFF, "Zoltrix International Ltd(0x15B0)"},
}; /* pci_vid_15B0[] */
-pci_id_t pci_vid_15B1[] = {
+static pci_id_t const pci_vid_15B1[] = {
{0x15B1, 0xFFFF, 0xFFFF, 0xFFFF, "Source Technology Inc(0x15B1)"},
}; /* pci_vid_15B1[] */
-pci_id_t pci_vid_15B2[] = {
+static pci_id_t const pci_vid_15B2[] = {
{0x15B2, 0xFFFF, 0xFFFF, 0xFFFF, "Mosaid Technologies Inc(0x15B2)"},
}; /* pci_vid_15B2[] */
-pci_id_t pci_vid_15B3[] = {
+static pci_id_t const pci_vid_15B3[] = {
{0x15B3, 0xFFFF, 0xFFFF, 0xFFFF, "Mellanox Technologies(0x15B3)"},
{0x15B3, 0x0191, 0xFFFF, 0xFFFF, "MT25408 [ConnectX IB Flash Recovery](0x0191)"},
{0x15B3, 0x01F6, 0xFFFF, 0xFFFF, "MT27500 Family [ConnectX-3 Flash Recovery](0x01F6)"},
@@ -25778,6 +25873,8 @@ pci_id_t pci_vid_15B3[] = {
{0x15B3, 0x0283, 0xFFFF, 0xFFFF, "ArcusE RMA(0x0283)"},
{0x15B3, 0x0284, 0xFFFF, 0xFFFF, "Sagitta(0x0284)"},
{0x15B3, 0x0285, 0xFFFF, 0xFFFF, "Sagitta RMA(0x0285)"},
+{0x15B3, 0x0286, 0xFFFF, 0xFFFF, "LibraE Flash Recovery(0x0286)"},
+{0x15B3, 0x0287, 0xFFFF, 0xFFFF, "LibraE RMA(0x0287)"},
{0x15B3, 0x1002, 0xFFFF, 0xFFFF, "MT25400 Family [ConnectX-2 Virtual Function](0x1002)"},
{0x15B3, 0x1003, 0xFFFF, 0xFFFF, "MT27500 Family [ConnectX-3](0x1003)"},
{0x15B3, 0x1003, 0x1014, 0x04B5, "PCIe3 40GbE RoCE Converged Host Bus Adapter for Power(0x1014-0x04B5)"},
@@ -25952,6 +26049,7 @@ pci_id_t pci_vid_15B3[] = {
{0x15B3, 0xA2DE, 0xFFFF, 0xFFFF, "BF4 Family Crypto disabled [BlueField-4 SoC Crypto disabled](0xA2DE)"},
{0x15B3, 0xA2DF, 0xFFFF, 0xFFFF, "BF4 Family integrated network controller [BlueField-4 integrated network controller](0xA2DF)"},
{0x15B3, 0xB200, 0xFFFF, 0xFFFF, "ArcusE(0xB200)"},
+{0x15B3, 0xB201, 0xFFFF, 0xFFFF, "LibraE(0xB201)"},
{0x15B3, 0xC2D1, 0xFFFF, 0xFFFF, "BlueField DPU Family Auxiliary Communication Channel [BlueField Family](0xC2D1)"},
{0x15B3, 0xC2D2, 0xFFFF, 0xFFFF, "MT416842 BlueField SoC management interfac(0xC2D2)"},
{0x15B3, 0xC2D3, 0xFFFF, 0xFFFF, "MT42822 BlueField-2 SoC Management Interface(0xC2D3)"},
@@ -25976,15 +26074,15 @@ pci_id_t pci_vid_15B3[] = {
{0x15B3, 0xD2F6, 0xFFFF, 0xFFFF, "Quantum-3CPO(0xD2F6)"},
}; /* pci_vid_15B3[] */
-pci_id_t pci_vid_15B4[] = {
+static pci_id_t const pci_vid_15B4[] = {
{0x15B4, 0xFFFF, 0xFFFF, 0xFFFF, "CCI/TRIAD(0x15B4)"},
}; /* pci_vid_15B4[] */
-pci_id_t pci_vid_15B5[] = {
+static pci_id_t const pci_vid_15B5[] = {
{0x15B5, 0xFFFF, 0xFFFF, 0xFFFF, "Cimetrics Inc(0x15B5)"},
}; /* pci_vid_15B5[] */
-pci_id_t pci_vid_15B6[] = {
+static pci_id_t const pci_vid_15B6[] = {
{0x15B6, 0xFFFF, 0xFFFF, 0xFFFF, "Texas Memory Systems Inc(0x15B6)"},
{0x15B6, 0x0001, 0xFFFF, 0xFFFF, "XP15 DSP Accelerator(0x0001)"},
{0x15B6, 0x0002, 0xFFFF, 0xFFFF, "XP30 DSP Accelerator(0x0002)"},
@@ -26004,7 +26102,7 @@ pci_id_t pci_vid_15B6[] = {
{0x15B6, 0x0015, 0xFFFF, 0xFFFF, "ZBox(0x0015)"},
}; /* pci_vid_15B6[] */
-pci_id_t pci_vid_15B7[] = {
+static pci_id_t const pci_vid_15B7[] = {
{0x15B7, 0xFFFF, 0xFFFF, 0xFFFF, "Sandisk Corp(0x15B7)"},
{0x15B7, 0x2001, 0xFFFF, 0xFFFF, "Skyhawk Series NVME SSD(0x2001)"},
{0x15B7, 0x5001, 0xFFFF, 0xFFFF, "WD Black NVMe SSD(0x5001)"},
@@ -26035,9 +26133,10 @@ pci_id_t pci_vid_15B7[] = {
{0x15B7, 0x5028, 0xFFFF, 0xFFFF, "WD CH SN560 NVMe SSD(0x5028)"},
{0x15B7, 0x5030, 0xFFFF, 0xFFFF, "WD Black SN850X NVMe SSD(0x5030)"},
{0x15B7, 0x5041, 0xFFFF, 0xFFFF, "WD Blue SN580 NVMe SSD (DRAM-less)(0x5041)"},
+{0x15B7, 0x5042, 0xFFFF, 0xFFFF, "WD Black SN770M NVMe SSD (DRAM-less)(0x5042)"},
}; /* pci_vid_15B7[] */
-pci_id_t pci_vid_15B8[] = {
+static pci_id_t const pci_vid_15B8[] = {
{0x15B8, 0xFFFF, 0xFFFF, 0xFFFF, "ADDI-DATA GmbH(0x15B8)"},
{0x15B8, 0x1001, 0xFFFF, 0xFFFF, "APCI1516 SP controller (16 digi outputs)(0x1001)"},
{0x15B8, 0x1003, 0xFFFF, 0xFFFF, "APCI1032 SP controller (32 digi inputs w/ opto coupler)(0x1003)"},
@@ -26051,19 +26150,19 @@ pci_id_t pci_vid_15B8[] = {
{0x15B8, 0x7002, 0xFFFF, 0xFFFF, "APCI7300 Serial Controller(0x7002)"},
}; /* pci_vid_15B8[] */
-pci_id_t pci_vid_15B9[] = {
+static pci_id_t const pci_vid_15B9[] = {
{0x15B9, 0xFFFF, 0xFFFF, 0xFFFF, "Maestro Digital Communications(0x15B9)"},
}; /* pci_vid_15B9[] */
-pci_id_t pci_vid_15BA[] = {
+static pci_id_t const pci_vid_15BA[] = {
{0x15BA, 0xFFFF, 0xFFFF, 0xFFFF, "Impacct Technology Corp(0x15BA)"},
}; /* pci_vid_15BA[] */
-pci_id_t pci_vid_15BB[] = {
+static pci_id_t const pci_vid_15BB[] = {
{0x15BB, 0xFFFF, 0xFFFF, 0xFFFF, "Portwell Inc(0x15BB)"},
}; /* pci_vid_15BB[] */
-pci_id_t pci_vid_15BC[] = {
+static pci_id_t const pci_vid_15BC[] = {
{0x15BC, 0xFFFF, 0xFFFF, 0xFFFF, "Agilent Technologies(0x15BC)"},
{0x15BC, 0x0100, 0xFFFF, 0xFFFF, "HPFC-5600 Tachyon DX2+ FC(0x0100)"},
{0x15BC, 0x0103, 0xFFFF, 0xFFFF, "QX4 PCI Express quad 4-gigabit Fibre Channel controller(0x0103)"},
@@ -26071,6 +26170,10 @@ pci_id_t pci_vid_15BC[] = {
{0x15BC, 0x0105, 0x117C, 0x0022, "Celerity FC-42XS Fibre Channel Adapter(0x117C-0x0022)"},
{0x15BC, 0x0105, 0x117C, 0x0025, "Celerity FC-44ES Fibre Channel Adapter(0x117C-0x0025)"},
{0x15BC, 0x0105, 0x117C, 0x0026, "Celerity FC-42ES Fibre Channel Adapter(0x117C-0x0026)"},
+{0x15BC, 0x0500, 0xFFFF, 0xFFFF, "Infiniium Memory Controller Interface(0x0500)"},
+{0x15BC, 0x0501, 0xFFFF, 0xFFFF, "Infiniium Acquisition System Interface(0x0501)"},
+{0x15BC, 0x0507, 0xFFFF, 0xFFFF, "Infiniium Acquisition System (80000 series)(0x0507)"},
+{0x15BC, 0x0508, 0xFFFF, 0xFFFF, "Infiniium Acquisition Support(0x0508)"},
{0x15BC, 0x0B01, 0xFFFF, 0xFFFF, "82350B PCI GPIB(0x0B01)"},
{0x15BC, 0x1100, 0xFFFF, 0xFFFF, "E8001-66442 PCI Express CIC(0x1100)"},
{0x15BC, 0x1218, 0xFFFF, 0xFFFF, "82351A PCI Express GPIB(0x1218)"},
@@ -26081,329 +26184,328 @@ pci_id_t pci_vid_15BC[] = {
{0x15BC, 0x2929, 0xFFFF, 0xFFFF, "64 Bit, 133MHz PCI-X Analyzer & Exerciser(0x2929)"},
}; /* pci_vid_15BC[] */
-pci_id_t pci_vid_15BD[] = {
+static pci_id_t const pci_vid_15BD[] = {
{0x15BD, 0xFFFF, 0xFFFF, 0xFFFF, "DFI Inc(0x15BD)"},
}; /* pci_vid_15BD[] */
-pci_id_t pci_vid_15BE[] = {
+static pci_id_t const pci_vid_15BE[] = {
{0x15BE, 0xFFFF, 0xFFFF, 0xFFFF, "Sola Electronics(0x15BE)"},
}; /* pci_vid_15BE[] */
-pci_id_t pci_vid_15BF[] = {
+static pci_id_t const pci_vid_15BF[] = {
{0x15BF, 0xFFFF, 0xFFFF, 0xFFFF, "High Tech Computer Corp (HTC)(0x15BF)"},
}; /* pci_vid_15BF[] */
-pci_id_t pci_vid_15C0[] = {
+static pci_id_t const pci_vid_15C0[] = {
{0x15C0, 0xFFFF, 0xFFFF, 0xFFFF, "BVM Ltd(0x15C0)"},
}; /* pci_vid_15C0[] */
-pci_id_t pci_vid_15C1[] = {
+static pci_id_t const pci_vid_15C1[] = {
{0x15C1, 0xFFFF, 0xFFFF, 0xFFFF, "Quantel(0x15C1)"},
}; /* pci_vid_15C1[] */
-pci_id_t pci_vid_15C2[] = {
+static pci_id_t const pci_vid_15C2[] = {
{0x15C2, 0xFFFF, 0xFFFF, 0xFFFF, "Newer Technology Inc(0x15C2)"},
}; /* pci_vid_15C2[] */
-pci_id_t pci_vid_15C3[] = {
+static pci_id_t const pci_vid_15C3[] = {
{0x15C3, 0xFFFF, 0xFFFF, 0xFFFF, "Taiwan Mycomp Co Ltd(0x15C3)"},
}; /* pci_vid_15C3[] */
-pci_id_t pci_vid_15C4[] = {
+static pci_id_t const pci_vid_15C4[] = {
{0x15C4, 0xFFFF, 0xFFFF, 0xFFFF, "EVSX Inc(0x15C4)"},
}; /* pci_vid_15C4[] */
-pci_id_t pci_vid_15C5[] = {
+static pci_id_t const pci_vid_15C5[] = {
{0x15C5, 0xFFFF, 0xFFFF, 0xFFFF, "Procomp Informatics Ltd(0x15C5)"},
{0x15C5, 0x8010, 0xFFFF, 0xFFFF, "1394b - 1394 Firewire 3-Port Host Adapter Card(0x8010)"},
}; /* pci_vid_15C5[] */
-pci_id_t pci_vid_15C6[] = {
+static pci_id_t const pci_vid_15C6[] = {
{0x15C6, 0xFFFF, 0xFFFF, 0xFFFF, "Technical University of Budapest(0x15C6)"},
}; /* pci_vid_15C6[] */
-pci_id_t pci_vid_15C7[] = {
+static pci_id_t const pci_vid_15C7[] = {
{0x15C7, 0xFFFF, 0xFFFF, 0xFFFF, "Tateyama System Laboratory Co Ltd(0x15C7)"},
{0x15C7, 0x0349, 0xFFFF, 0xFFFF, "Tateyama C-PCI PLC/NC card Rev.01A(0x0349)"},
}; /* pci_vid_15C7[] */
-pci_id_t pci_vid_15C8[] = {
+static pci_id_t const pci_vid_15C8[] = {
{0x15C8, 0xFFFF, 0xFFFF, 0xFFFF, "Penta Media Co Ltd(0x15C8)"},
}; /* pci_vid_15C8[] */
-pci_id_t pci_vid_15C9[] = {
+static pci_id_t const pci_vid_15C9[] = {
{0x15C9, 0xFFFF, 0xFFFF, 0xFFFF, "Serome Technology Inc(0x15C9)"},
}; /* pci_vid_15C9[] */
-pci_id_t pci_vid_15CA[] = {
+static pci_id_t const pci_vid_15CA[] = {
{0x15CA, 0xFFFF, 0xFFFF, 0xFFFF, "Bitboys OY(0x15CA)"},
}; /* pci_vid_15CA[] */
-pci_id_t pci_vid_15CB[] = {
+static pci_id_t const pci_vid_15CB[] = {
{0x15CB, 0xFFFF, 0xFFFF, 0xFFFF, "AG Electronics Ltd(0x15CB)"},
}; /* pci_vid_15CB[] */
-pci_id_t pci_vid_15CC[] = {
+static pci_id_t const pci_vid_15CC[] = {
{0x15CC, 0xFFFF, 0xFFFF, 0xFFFF, "Hotrail Inc(0x15CC)"},
}; /* pci_vid_15CC[] */
-pci_id_t pci_vid_15CD[] = {
+static pci_id_t const pci_vid_15CD[] = {
{0x15CD, 0xFFFF, 0xFFFF, 0xFFFF, "Dreamtech Co Ltd(0x15CD)"},
}; /* pci_vid_15CD[] */
-pci_id_t pci_vid_15CE[] = {
+static pci_id_t const pci_vid_15CE[] = {
{0x15CE, 0xFFFF, 0xFFFF, 0xFFFF, "Genrad Inc(0x15CE)"},
}; /* pci_vid_15CE[] */
-pci_id_t pci_vid_15CF[] = {
+static pci_id_t const pci_vid_15CF[] = {
{0x15CF, 0xFFFF, 0xFFFF, 0xFFFF, "Hilscher Gesellschaft für Systemautomation mbH(0x15CF)"},
{0x15CF, 0x0000, 0xFFFF, 0xFFFF, "CIFX PCI/PCIe(0x0000)"},
}; /* pci_vid_15CF[] */
-pci_id_t pci_vid_15D1[] = {
+static pci_id_t const pci_vid_15D1[] = {
{0x15D1, 0xFFFF, 0xFFFF, 0xFFFF, "Infineon Technologies AG(0x15D1)"},
}; /* pci_vid_15D1[] */
-pci_id_t pci_vid_15D2[] = {
+static pci_id_t const pci_vid_15D2[] = {
{0x15D2, 0xFFFF, 0xFFFF, 0xFFFF, "FIC (First International Computer Inc)(0x15D2)"},
}; /* pci_vid_15D2[] */
-pci_id_t pci_vid_15D3[] = {
+static pci_id_t const pci_vid_15D3[] = {
{0x15D3, 0xFFFF, 0xFFFF, 0xFFFF, "NDS Technologies Israel Ltd(0x15D3)"},
}; /* pci_vid_15D3[] */
-pci_id_t pci_vid_15D4[] = {
+static pci_id_t const pci_vid_15D4[] = {
{0x15D4, 0xFFFF, 0xFFFF, 0xFFFF, "Iwill Corp(0x15D4)"},
}; /* pci_vid_15D4[] */
-pci_id_t pci_vid_15D5[] = {
+static pci_id_t const pci_vid_15D5[] = {
{0x15D5, 0xFFFF, 0xFFFF, 0xFFFF, "Tatung Co(0x15D5)"},
}; /* pci_vid_15D5[] */
-pci_id_t pci_vid_15D6[] = {
+static pci_id_t const pci_vid_15D6[] = {
{0x15D6, 0xFFFF, 0xFFFF, 0xFFFF, "Entridia Corp(0x15D6)"},
}; /* pci_vid_15D6[] */
-pci_id_t pci_vid_15D7[] = {
+static pci_id_t const pci_vid_15D7[] = {
{0x15D7, 0xFFFF, 0xFFFF, 0xFFFF, "Rockwell-Collins Inc(0x15D7)"},
}; /* pci_vid_15D7[] */
-pci_id_t pci_vid_15D8[] = {
+static pci_id_t const pci_vid_15D8[] = {
{0x15D8, 0xFFFF, 0xFFFF, 0xFFFF, "Cybernetics Technology Co Ltd(0x15D8)"},
}; /* pci_vid_15D8[] */
-pci_id_t pci_vid_15D9[] = {
+static pci_id_t const pci_vid_15D9[] = {
{0x15D9, 0xFFFF, 0xFFFF, 0xFFFF, "Super Micro Computer Inc(0x15D9)"},
{0x15D9, 0x1B64, 0xFFFF, 0xFFFF, "SCC-B8SB80-B1(0x1B64)"},
-{0x15D9, 0x1B67, 0xFFFF, 0xFFFF, "AOC-S3916L-H16iR-32DD(0x1B67)"},
{0x15D9, 0x1B9D, 0xFFFF, 0xFFFF, "Supermicro AOC-S3816L-L16IR(0x1B9D)"},
{0x15D9, 0x1C6E, 0xFFFF, 0xFFFF, "Supermicro AOC-SLG4-2H8M2(0x1C6E)"},
}; /* pci_vid_15D9[] */
-pci_id_t pci_vid_15DA[] = {
+static pci_id_t const pci_vid_15DA[] = {
{0x15DA, 0xFFFF, 0xFFFF, 0xFFFF, "Cyberfirm Inc(0x15DA)"},
}; /* pci_vid_15DA[] */
-pci_id_t pci_vid_15DB[] = {
+static pci_id_t const pci_vid_15DB[] = {
{0x15DB, 0xFFFF, 0xFFFF, 0xFFFF, "Applied Computing Systems Inc(0x15DB)"},
}; /* pci_vid_15DB[] */
-pci_id_t pci_vid_15DC[] = {
+static pci_id_t const pci_vid_15DC[] = {
{0x15DC, 0xFFFF, 0xFFFF, 0xFFFF, "Litronic Inc(0x15DC)"},
{0x15DC, 0x0001, 0xFFFF, 0xFFFF, "Argus 300 PCI Cryptography Module(0x0001)"},
}; /* pci_vid_15DC[] */
-pci_id_t pci_vid_15DD[] = {
+static pci_id_t const pci_vid_15DD[] = {
{0x15DD, 0xFFFF, 0xFFFF, 0xFFFF, "Sigmatel Inc(0x15DD)"},
}; /* pci_vid_15DD[] */
-pci_id_t pci_vid_15DE[] = {
+static pci_id_t const pci_vid_15DE[] = {
{0x15DE, 0xFFFF, 0xFFFF, 0xFFFF, "Malleable Technologies Inc(0x15DE)"},
}; /* pci_vid_15DE[] */
-pci_id_t pci_vid_15DF[] = {
+static pci_id_t const pci_vid_15DF[] = {
{0x15DF, 0xFFFF, 0xFFFF, 0xFFFF, "Infinilink Corp(0x15DF)"},
}; /* pci_vid_15DF[] */
-pci_id_t pci_vid_15E0[] = {
+static pci_id_t const pci_vid_15E0[] = {
{0x15E0, 0xFFFF, 0xFFFF, 0xFFFF, "Cacheflow Inc(0x15E0)"},
}; /* pci_vid_15E0[] */
-pci_id_t pci_vid_15E1[] = {
+static pci_id_t const pci_vid_15E1[] = {
{0x15E1, 0xFFFF, 0xFFFF, 0xFFFF, "Voice Technologies Group Inc(0x15E1)"},
}; /* pci_vid_15E1[] */
-pci_id_t pci_vid_15E2[] = {
+static pci_id_t const pci_vid_15E2[] = {
{0x15E2, 0xFFFF, 0xFFFF, 0xFFFF, "Quicknet Technologies Inc(0x15E2)"},
{0x15E2, 0x0500, 0xFFFF, 0xFFFF, "PhoneJack-PCI(0x0500)"},
}; /* pci_vid_15E2[] */
-pci_id_t pci_vid_15E3[] = {
+static pci_id_t const pci_vid_15E3[] = {
{0x15E3, 0xFFFF, 0xFFFF, 0xFFFF, "Networth Technologies Inc(0x15E3)"},
}; /* pci_vid_15E3[] */
-pci_id_t pci_vid_15E4[] = {
+static pci_id_t const pci_vid_15E4[] = {
{0x15E4, 0xFFFF, 0xFFFF, 0xFFFF, "VSN Systemen BV(0x15E4)"},
}; /* pci_vid_15E4[] */
-pci_id_t pci_vid_15E5[] = {
+static pci_id_t const pci_vid_15E5[] = {
{0x15E5, 0xFFFF, 0xFFFF, 0xFFFF, "Valley technologies Inc(0x15E5)"},
}; /* pci_vid_15E5[] */
-pci_id_t pci_vid_15E6[] = {
+static pci_id_t const pci_vid_15E6[] = {
{0x15E6, 0xFFFF, 0xFFFF, 0xFFFF, "Agere Inc(0x15E6)"},
}; /* pci_vid_15E6[] */
-pci_id_t pci_vid_15E7[] = {
+static pci_id_t const pci_vid_15E7[] = {
{0x15E7, 0xFFFF, 0xFFFF, 0xFFFF, "Get Engineering Corp(0x15E7)"},
}; /* pci_vid_15E7[] */
-pci_id_t pci_vid_15E8[] = {
+static pci_id_t const pci_vid_15E8[] = {
{0x15E8, 0xFFFF, 0xFFFF, 0xFFFF, "National Datacomm Corp(0x15E8)"},
{0x15E8, 0x0130, 0xFFFF, 0xFFFF, "Wireless PCI Card(0x0130)"},
{0x15E8, 0x0131, 0xFFFF, 0xFFFF, "NCP130A2 Wireless NIC(0x0131)"},
}; /* pci_vid_15E8[] */
-pci_id_t pci_vid_15E9[] = {
+static pci_id_t const pci_vid_15E9[] = {
{0x15E9, 0xFFFF, 0xFFFF, 0xFFFF, "Pacific Digital Corp(0x15E9)"},
{0x15E9, 0x1841, 0xFFFF, 0xFFFF, "ADMA-100 DiscStaQ ATA Controller(0x1841)"},
}; /* pci_vid_15E9[] */
-pci_id_t pci_vid_15EA[] = {
+static pci_id_t const pci_vid_15EA[] = {
{0x15EA, 0xFFFF, 0xFFFF, 0xFFFF, "Tokyo Denshi Sekei K.K.(0x15EA)"},
}; /* pci_vid_15EA[] */
-pci_id_t pci_vid_15EB[] = {
+static pci_id_t const pci_vid_15EB[] = {
{0x15EB, 0xFFFF, 0xFFFF, 0xFFFF, "DResearch Digital Media Systems GmbH(0x15EB)"},
}; /* pci_vid_15EB[] */
-pci_id_t pci_vid_15EC[] = {
+static pci_id_t const pci_vid_15EC[] = {
{0x15EC, 0xFFFF, 0xFFFF, 0xFFFF, "Beckhoff GmbH(0x15EC)"},
{0x15EC, 0x3101, 0xFFFF, 0xFFFF, "FC3101 Profibus DP 1 Channel PCI(0x3101)"},
{0x15EC, 0x5102, 0xFFFF, 0xFFFF, "FC5102(0x5102)"},
}; /* pci_vid_15EC[] */
-pci_id_t pci_vid_15ED[] = {
+static pci_id_t const pci_vid_15ED[] = {
{0x15ED, 0xFFFF, 0xFFFF, 0xFFFF, "Macrolink Inc(0x15ED)"},
}; /* pci_vid_15ED[] */
-pci_id_t pci_vid_15EE[] = {
+static pci_id_t const pci_vid_15EE[] = {
{0x15EE, 0xFFFF, 0xFFFF, 0xFFFF, "In Win Development Inc(0x15EE)"},
}; /* pci_vid_15EE[] */
-pci_id_t pci_vid_15EF[] = {
+static pci_id_t const pci_vid_15EF[] = {
{0x15EF, 0xFFFF, 0xFFFF, 0xFFFF, "Intelligent Paradigm Inc(0x15EF)"},
}; /* pci_vid_15EF[] */
-pci_id_t pci_vid_15F0[] = {
+static pci_id_t const pci_vid_15F0[] = {
{0x15F0, 0xFFFF, 0xFFFF, 0xFFFF, "B-Tree Systems Inc(0x15F0)"},
}; /* pci_vid_15F0[] */
-pci_id_t pci_vid_15F1[] = {
+static pci_id_t const pci_vid_15F1[] = {
{0x15F1, 0xFFFF, 0xFFFF, 0xFFFF, "Times N Systems Inc(0x15F1)"},
}; /* pci_vid_15F1[] */
-pci_id_t pci_vid_15F2[] = {
+static pci_id_t const pci_vid_15F2[] = {
{0x15F2, 0xFFFF, 0xFFFF, 0xFFFF, "Diagnostic Instruments Inc(0x15F2)"},
}; /* pci_vid_15F2[] */
-pci_id_t pci_vid_15F3[] = {
+static pci_id_t const pci_vid_15F3[] = {
{0x15F3, 0xFFFF, 0xFFFF, 0xFFFF, "Digitmedia Corp(0x15F3)"},
}; /* pci_vid_15F3[] */
-pci_id_t pci_vid_15F4[] = {
+static pci_id_t const pci_vid_15F4[] = {
{0x15F4, 0xFFFF, 0xFFFF, 0xFFFF, "Valuesoft(0x15F4)"},
}; /* pci_vid_15F4[] */
-pci_id_t pci_vid_15F5[] = {
+static pci_id_t const pci_vid_15F5[] = {
{0x15F5, 0xFFFF, 0xFFFF, 0xFFFF, "Power Micro Research(0x15F5)"},
}; /* pci_vid_15F5[] */
-pci_id_t pci_vid_15F6[] = {
+static pci_id_t const pci_vid_15F6[] = {
{0x15F6, 0xFFFF, 0xFFFF, 0xFFFF, "Extreme Packet Device Inc(0x15F6)"},
}; /* pci_vid_15F6[] */
-pci_id_t pci_vid_15F7[] = {
+static pci_id_t const pci_vid_15F7[] = {
{0x15F7, 0xFFFF, 0xFFFF, 0xFFFF, "Banctec(0x15F7)"},
}; /* pci_vid_15F7[] */
-pci_id_t pci_vid_15F8[] = {
+static pci_id_t const pci_vid_15F8[] = {
{0x15F8, 0xFFFF, 0xFFFF, 0xFFFF, "Koga Electronics Co(0x15F8)"},
}; /* pci_vid_15F8[] */
-pci_id_t pci_vid_15F9[] = {
+static pci_id_t const pci_vid_15F9[] = {
{0x15F9, 0xFFFF, 0xFFFF, 0xFFFF, "Zenith Electronics Corp(0x15F9)"},
}; /* pci_vid_15F9[] */
-pci_id_t pci_vid_15FA[] = {
+static pci_id_t const pci_vid_15FA[] = {
{0x15FA, 0xFFFF, 0xFFFF, 0xFFFF, "J.P. Axzam Corp(0x15FA)"},
}; /* pci_vid_15FA[] */
-pci_id_t pci_vid_15FB[] = {
+static pci_id_t const pci_vid_15FB[] = {
{0x15FB, 0xFFFF, 0xFFFF, 0xFFFF, "Zilog Inc(0x15FB)"},
}; /* pci_vid_15FB[] */
-pci_id_t pci_vid_15FC[] = {
+static pci_id_t const pci_vid_15FC[] = {
{0x15FC, 0xFFFF, 0xFFFF, 0xFFFF, "Techsan Electronics Co Ltd(0x15FC)"},
}; /* pci_vid_15FC[] */
-pci_id_t pci_vid_15FD[] = {
+static pci_id_t const pci_vid_15FD[] = {
{0x15FD, 0xFFFF, 0xFFFF, 0xFFFF, "N-CUBED.NET(0x15FD)"},
}; /* pci_vid_15FD[] */
-pci_id_t pci_vid_15FE[] = {
+static pci_id_t const pci_vid_15FE[] = {
{0x15FE, 0xFFFF, 0xFFFF, 0xFFFF, "Kinpo Electronics Inc(0x15FE)"},
}; /* pci_vid_15FE[] */
-pci_id_t pci_vid_15FF[] = {
+static pci_id_t const pci_vid_15FF[] = {
{0x15FF, 0xFFFF, 0xFFFF, 0xFFFF, "Fastpoint Technologies Inc(0x15FF)"},
}; /* pci_vid_15FF[] */
-pci_id_t pci_vid_1600[] = {
+static pci_id_t const pci_vid_1600[] = {
{0x1600, 0xFFFF, 0xFFFF, 0xFFFF, "Northrop Grumman - Canada Ltd(0x1600)"},
}; /* pci_vid_1600[] */
-pci_id_t pci_vid_1601[] = {
+static pci_id_t const pci_vid_1601[] = {
{0x1601, 0xFFFF, 0xFFFF, 0xFFFF, "Tenta Technology(0x1601)"},
}; /* pci_vid_1601[] */
-pci_id_t pci_vid_1602[] = {
+static pci_id_t const pci_vid_1602[] = {
{0x1602, 0xFFFF, 0xFFFF, 0xFFFF, "Prosys-tec Inc(0x1602)"},
}; /* pci_vid_1602[] */
-pci_id_t pci_vid_1603[] = {
+static pci_id_t const pci_vid_1603[] = {
{0x1603, 0xFFFF, 0xFFFF, 0xFFFF, "Nokia Wireless Communications(0x1603)"},
}; /* pci_vid_1603[] */
-pci_id_t pci_vid_1604[] = {
+static pci_id_t const pci_vid_1604[] = {
{0x1604, 0xFFFF, 0xFFFF, 0xFFFF, "Central System Research Co Ltd(0x1604)"},
}; /* pci_vid_1604[] */
-pci_id_t pci_vid_1605[] = {
+static pci_id_t const pci_vid_1605[] = {
{0x1605, 0xFFFF, 0xFFFF, 0xFFFF, "Pairgain Technologies(0x1605)"},
}; /* pci_vid_1605[] */
-pci_id_t pci_vid_1606[] = {
+static pci_id_t const pci_vid_1606[] = {
{0x1606, 0xFFFF, 0xFFFF, 0xFFFF, "Europop AG(0x1606)"},
}; /* pci_vid_1606[] */
-pci_id_t pci_vid_1607[] = {
+static pci_id_t const pci_vid_1607[] = {
{0x1607, 0xFFFF, 0xFFFF, 0xFFFF, "Lava Semiconductor Manufacturing Inc(0x1607)"},
}; /* pci_vid_1607[] */
-pci_id_t pci_vid_1608[] = {
+static pci_id_t const pci_vid_1608[] = {
{0x1608, 0xFFFF, 0xFFFF, 0xFFFF, "Automated Wagering International(0x1608)"},
}; /* pci_vid_1608[] */
-pci_id_t pci_vid_1609[] = {
+static pci_id_t const pci_vid_1609[] = {
{0x1609, 0xFFFF, 0xFFFF, 0xFFFF, "Scimetric Instruments Inc(0x1609)"},
}; /* pci_vid_1609[] */
-pci_id_t pci_vid_1612[] = {
+static pci_id_t const pci_vid_1612[] = {
{0x1612, 0xFFFF, 0xFFFF, 0xFFFF, "Telesynergy Research Inc.(0x1612)"},
}; /* pci_vid_1612[] */
-pci_id_t pci_vid_1618[] = {
+static pci_id_t const pci_vid_1618[] = {
{0x1618, 0xFFFF, 0xFFFF, 0xFFFF, "Stone Ridge Technology(0x1618)"},
{0x1618, 0x0001, 0xFFFF, 0xFFFF, "RDX 11(0x0001)"},
{0x1618, 0x0002, 0xFFFF, 0xFFFF, "HFT-01(0x0002)"},
@@ -26419,7 +26521,7 @@ pci_id_t pci_vid_1618[] = {
{0x1618, 0x4640, 0xFFFF, 0xFFFF, "FarSync T4Ue PCI Express (4-port X.21/V.35/V.24)(0x4640)"},
}; /* pci_vid_1618[] */
-pci_id_t pci_vid_1619[] = {
+static pci_id_t const pci_vid_1619[] = {
{0x1619, 0xFFFF, 0xFFFF, 0xFFFF, "FarSite Communications Ltd(0x1619)"},
{0x1619, 0x0400, 0xFFFF, 0xFFFF, "FarSync T2P (2 port X.21/V.35/V.24)(0x0400)"},
{0x1619, 0x0440, 0xFFFF, 0xFFFF, "FarSync T4P (4 port X.21/V.35/V.24)(0x0440)"},
@@ -26437,11 +26539,11 @@ pci_id_t pci_vid_1619[] = {
{0x1619, 0x6620, 0xFFFF, 0xFFFF, "FarSync T2U-PMC PCI Express (2 port X.21/V.35/V.24)(0x6620)"},
}; /* pci_vid_1619[] */
-pci_id_t pci_vid_161F[] = {
+static pci_id_t const pci_vid_161F[] = {
{0x161F, 0xFFFF, 0xFFFF, 0xFFFF, "Rioworks(0x161F)"},
}; /* pci_vid_161F[] */
-pci_id_t pci_vid_1621[] = {
+static pci_id_t const pci_vid_1621[] = {
{0x1621, 0xFFFF, 0xFFFF, 0xFFFF, "Lynx Studio Technology, Inc.(0x1621)"},
{0x1621, 0x0020, 0xFFFF, 0xFFFF, "LynxTWO-A(0x0020)"},
{0x1621, 0x0021, 0xFFFF, 0xFFFF, "LynxTWO-B(0x0021)"},
@@ -26452,12 +26554,12 @@ pci_id_t pci_vid_1621[] = {
{0x1621, 0x0028, 0xFFFF, 0xFFFF, "Lynx AES16e(0x0028)"},
}; /* pci_vid_1621[] */
-pci_id_t pci_vid_1626[] = {
+static pci_id_t const pci_vid_1626[] = {
{0x1626, 0xFFFF, 0xFFFF, 0xFFFF, "TDK Semiconductor Corp.(0x1626)"},
{0x1626, 0x8410, 0xFFFF, 0xFFFF, "RTL81xx Fast Ethernet(0x8410)"},
}; /* pci_vid_1626[] */
-pci_id_t pci_vid_1629[] = {
+static pci_id_t const pci_vid_1629[] = {
{0x1629, 0xFFFF, 0xFFFF, 0xFFFF, "Kongsberg Spacetec AS(0x1629)"},
{0x1629, 0x1003, 0xFFFF, 0xFFFF, "Format synchronizer v3.0(0x1003)"},
{0x1629, 0x1006, 0xFFFF, 0xFFFF, "Format synchronizer, model 10500(0x1006)"},
@@ -26470,30 +26572,30 @@ pci_id_t pci_vid_1629[] = {
{0x1629, 0x6001, 0xFFFF, 0xFFFF, "High Rate Demodulator and FEC(0x6001)"},
}; /* pci_vid_1629[] */
-pci_id_t pci_vid_1631[] = {
+static pci_id_t const pci_vid_1631[] = {
{0x1631, 0xFFFF, 0xFFFF, 0xFFFF, "Packard Bell B.V.(0x1631)"},
}; /* pci_vid_1631[] */
-pci_id_t pci_vid_1638[] = {
+static pci_id_t const pci_vid_1638[] = {
{0x1638, 0xFFFF, 0xFFFF, 0xFFFF, "Standard Microsystems Corp [SMC](0x1638)"},
{0x1638, 0x1100, 0xFFFF, 0xFFFF, "SMC2602W EZConnect / Addtron AWA-100 / Eumitcom PCI WL11000(0x1100)"},
}; /* pci_vid_1638[] */
-pci_id_t pci_vid_163C[] = {
+static pci_id_t const pci_vid_163C[] = {
{0x163C, 0xFFFF, 0xFFFF, 0xFFFF, "Smart Link Ltd.(0x163C)"},
{0x163C, 0x3052, 0xFFFF, 0xFFFF, "SmartLink SmartPCI562 56K Modem(0x3052)"},
{0x163C, 0x5449, 0xFFFF, 0xFFFF, "SmartPCI561 Modem(0x5449)"},
}; /* pci_vid_163C[] */
-pci_id_t pci_vid_1641[] = {
+static pci_id_t const pci_vid_1641[] = {
{0x1641, 0xFFFF, 0xFFFF, 0xFFFF, "MKNet Corp.(0x1641)"},
}; /* pci_vid_1641[] */
-pci_id_t pci_vid_1642[] = {
+static pci_id_t const pci_vid_1642[] = {
{0x1642, 0xFFFF, 0xFFFF, 0xFFFF, "Bitland(ShenZhen) Information Technology Co., Ltd.(0x1642)"},
}; /* pci_vid_1642[] */
-pci_id_t pci_vid_1657[] = {
+static pci_id_t const pci_vid_1657[] = {
{0x1657, 0xFFFF, 0xFFFF, 0xFFFF, "Cavium QLogic(0x1657)"},
{0x1657, 0x0013, 0xFFFF, 0xFFFF, "425/825/42B/82B 4Gbps/8Gbps PCIe dual port FC HBA(0x0013)"},
{0x1657, 0x0013, 0x103C, 0x1742, "82B 8Gbps dual port FC HBA(0x103C-0x1742)"},
@@ -26515,7 +26617,7 @@ pci_id_t pci_vid_1657[] = {
{0x1657, 0x0646, 0xFFFF, 0xFFFF, "400 4Gbps PCIe FC HBA(0x0646)"},
}; /* pci_vid_1657[] */
-pci_id_t pci_vid_165A[] = {
+static pci_id_t const pci_vid_165A[] = {
{0x165A, 0xFFFF, 0xFFFF, 0xFFFF, "Epix Inc(0x165A)"},
{0x165A, 0xC100, 0xFFFF, 0xFFFF, "PIXCI(R) CL1 Camera Link Video Capture Board [custom QL5232](0xC100)"},
{0x165A, 0xD200, 0xFFFF, 0xFFFF, "PIXCI(R) D2X Digital Video Capture Board [custom QL5232](0xD200)"},
@@ -26523,7 +26625,7 @@ pci_id_t pci_vid_165A[] = {
{0x165A, 0xEB01, 0xFFFF, 0xFFFF, "PIXCI(R) EB1 PCI Camera Link Video Capture Board(0xEB01)"},
}; /* pci_vid_165A[] */
-pci_id_t pci_vid_165C[] = {
+static pci_id_t const pci_vid_165C[] = {
{0x165C, 0xFFFF, 0xFFFF, 0xFFFF, "Gidel Ltd.(0x165C)"},
{0x165C, 0x5361, 0xFFFF, 0xFFFF, "PROCStarII60-1(0x5361)"},
{0x165C, 0x5362, 0xFFFF, 0xFFFF, "PROCStarII60-2(0x5362)"},
@@ -26596,31 +26698,31 @@ pci_id_t pci_vid_165C[] = {
{0x165C, 0x73B1, 0xFFFF, 0xFFFF, "Proc10s(0x73B1)"},
}; /* pci_vid_165C[] */
-pci_id_t pci_vid_165D[] = {
+static pci_id_t const pci_vid_165D[] = {
{0x165D, 0xFFFF, 0xFFFF, 0xFFFF, "Hsing Tech. Enterprise Co., Ltd.(0x165D)"},
}; /* pci_vid_165D[] */
-pci_id_t pci_vid_165F[] = {
+static pci_id_t const pci_vid_165F[] = {
{0x165F, 0xFFFF, 0xFFFF, 0xFFFF, "Linux Media Labs, LLC(0x165F)"},
{0x165F, 0x1020, 0xFFFF, 0xFFFF, "LMLM4 MPEG-4 encoder(0x1020)"},
}; /* pci_vid_165F[] */
-pci_id_t pci_vid_1661[] = {
+static pci_id_t const pci_vid_1661[] = {
{0x1661, 0xFFFF, 0xFFFF, 0xFFFF, "Worldspace Corp.(0x1661)"},
}; /* pci_vid_1661[] */
-pci_id_t pci_vid_1665[] = {
+static pci_id_t const pci_vid_1665[] = {
{0x1665, 0xFFFF, 0xFFFF, 0xFFFF, "EDAX Inc(0x1665)"},
{0x1665, 0x1973, 0xFFFF, 0xFFFF, "DPP-II FR2 Board(0x1973)"},
{0x1665, 0x2000, 0xFFFF, 0xFFFF, "SG-IIP Board(0x2000)"},
}; /* pci_vid_1665[] */
-pci_id_t pci_vid_1668[] = {
+static pci_id_t const pci_vid_1668[] = {
{0x1668, 0xFFFF, 0xFFFF, 0xFFFF, "Actiontec Electronics Inc(0x1668)"},
{0x1668, 0x0100, 0xFFFF, 0xFFFF, "Mini-PCI bridge(0x0100)"},
}; /* pci_vid_1668[] */
-pci_id_t pci_vid_166D[] = {
+static pci_id_t const pci_vid_166D[] = {
{0x166D, 0xFFFF, 0xFFFF, 0xFFFF, "Broadcom Corporation(0x166D)"},
{0x166D, 0x0001, 0xFFFF, 0xFFFF, "SiByte BCM1125/1125H/1250 System-on-a-Chip PCI(0x0001)"},
{0x166D, 0x0002, 0xFFFF, 0xFFFF, "SiByte BCM1125H/1250 System-on-a-Chip HyperTransport(0x0002)"},
@@ -26628,24 +26730,24 @@ pci_id_t pci_vid_166D[] = {
{0x166D, 0x0014, 0xFFFF, 0xFFFF, "Sibyte BCM1280/BCM1480 System-on-a-Chip HyperTransport(0x0014)"},
}; /* pci_vid_166D[] */
-pci_id_t pci_vid_1677[] = {
+static pci_id_t const pci_vid_1677[] = {
{0x1677, 0xFFFF, 0xFFFF, 0xFFFF, "B&R Industrial Automation GmbH(0x1677)"},
{0x1677, 0x104E, 0xFFFF, 0xFFFF, "5LS172.6 B&R Dual CAN Interface Card(0x104E)"},
{0x1677, 0x12D7, 0xFFFF, 0xFFFF, "5LS172.61 B&R Dual CAN Interface Card(0x12D7)"},
{0x1677, 0x20AD, 0xFFFF, 0xFFFF, "5ACPCI.MFIO-K01 Profibus DP / K-Feldbus / COM(0x20AD)"},
}; /* pci_vid_1677[] */
-pci_id_t pci_vid_1678[] = {
+static pci_id_t const pci_vid_1678[] = {
{0x1678, 0xFFFF, 0xFFFF, 0xFFFF, "NetEffect(0x1678)"},
{0x1678, 0x0100, 0xFFFF, 0xFFFF, "NE020 10Gb Accelerated Ethernet Adapter (iWARP RNIC)(0x0100)"},
}; /* pci_vid_1678[] */
-pci_id_t pci_vid_1679[] = {
+static pci_id_t const pci_vid_1679[] = {
{0x1679, 0xFFFF, 0xFFFF, 0xFFFF, "Tokyo Electron Device Ltd.(0x1679)"},
{0x1679, 0x3000, 0xFFFF, 0xFFFF, "SD Standard host controller [Ellen](0x3000)"},
}; /* pci_vid_1679[] */
-pci_id_t pci_vid_167B[] = {
+static pci_id_t const pci_vid_167B[] = {
{0x167B, 0xFFFF, 0xFFFF, 0xFFFF, "ZyDAS Technology Corp.(0x167B)"},
{0x167B, 0x2102, 0xFFFF, 0xFFFF, "ZyDAS ZD1202(0x2102)"},
{0x167B, 0x2102, 0x187E, 0x3406, "ZyAIR B-122 CardBus 11Mbs Wireless LAN Card(0x187E-0x3406)"},
@@ -26653,31 +26755,31 @@ pci_id_t pci_vid_167B[] = {
{0x167B, 0x2116, 0xFFFF, 0xFFFF, "ZD1212B Wireless Adapter(0x2116)"},
}; /* pci_vid_167B[] */
-pci_id_t pci_vid_167D[] = {
+static pci_id_t const pci_vid_167D[] = {
{0x167D, 0xFFFF, 0xFFFF, 0xFFFF, "Samsung Electro-Mechanics Co., Ltd.(0x167D)"},
{0x167D, 0xA000, 0xFFFF, 0xFFFF, "MagicLAN SWL-2210P 802.11b [Intersil ISL3874](0xA000)"},
}; /* pci_vid_167D[] */
-pci_id_t pci_vid_167E[] = {
+static pci_id_t const pci_vid_167E[] = {
{0x167E, 0xFFFF, 0xFFFF, 0xFFFF, "ONNTO Corp.(0x167E)"},
}; /* pci_vid_167E[] */
-pci_id_t pci_vid_1681[] = {
+static pci_id_t const pci_vid_1681[] = {
{0x1681, 0xFFFF, 0xFFFF, 0xFFFF, "Hercules(0x1681)"},
}; /* pci_vid_1681[] */
-pci_id_t pci_vid_1682[] = {
+static pci_id_t const pci_vid_1682[] = {
{0x1682, 0xFFFF, 0xFFFF, 0xFFFF, "XFX Pine Group Inc.(0x1682)"},
{0x1682, 0x5701, 0xFFFF, 0xFFFF, "Radeon 5700 XT Thicc III Ultra(0x5701)"},
{0x1682, 0xC580, 0xFFFF, 0xFFFF, "Radeon RX 580(0xC580)"},
}; /* pci_vid_1682[] */
-pci_id_t pci_vid_1688[] = {
+static pci_id_t const pci_vid_1688[] = {
{0x1688, 0xFFFF, 0xFFFF, 0xFFFF, "CastleNet Technology Inc.(0x1688)"},
{0x1688, 0x1170, 0xFFFF, 0xFFFF, "WLAN 802.11b card(0x1170)"},
}; /* pci_vid_1688[] */
-pci_id_t pci_vid_168A[] = {
+static pci_id_t const pci_vid_168A[] = {
{0x168A, 0xFFFF, 0xFFFF, 0xFFFF, "Utimaco IS GmbH(0x168A)"},
{0x168A, 0x2086, 0xFFFF, 0xFFFF, "CryptoServer Se-Series Hardware Security Module(0x2086)"},
{0x168A, 0xC040, 0xFFFF, 0xFFFF, "CryptoServer CSe-Series Hardware Security Module(0xC040)"},
@@ -26687,7 +26789,7 @@ pci_id_t pci_vid_168A[] = {
{0x168A, 0xC072, 0xFFFF, 0xFFFF, "u.trust Anchor Hardware Security Module cs7.3 Series Virtual Function(0xC072)"},
}; /* pci_vid_168A[] */
-pci_id_t pci_vid_168C[] = {
+static pci_id_t const pci_vid_168C[] = {
{0x168C, 0xFFFF, 0xFFFF, 0xFFFF, "Qualcomm Atheros(0x168C)"},
{0x168C, 0x0007, 0xFFFF, 0xFFFF, "AR5210 Wireless Network Adapter [AR5000 802.11a](0x0007)"},
{0x168C, 0x0007, 0x1737, 0x0007, "WPC54A Wireless PC Card(0x1737-0x0007)"},
@@ -26936,24 +27038,24 @@ pci_id_t pci_vid_168C[] = {
{0x168C, 0xFF1D, 0x168C, 0xEE1C, "AR9220-AC1A [AVM Fritz!Box FON WLAN 7270 v3](0x168C-0xEE1C)"},
}; /* pci_vid_168C[] */
-pci_id_t pci_vid_1695[] = {
+static pci_id_t const pci_vid_1695[] = {
{0x1695, 0xFFFF, 0xFFFF, 0xFFFF, "EPoX Computer Co., Ltd.(0x1695)"},
}; /* pci_vid_1695[] */
-pci_id_t pci_vid_169C[] = {
+static pci_id_t const pci_vid_169C[] = {
{0x169C, 0xFFFF, 0xFFFF, 0xFFFF, "Netcell Corporation(0x169C)"},
{0x169C, 0x0044, 0xFFFF, 0xFFFF, "Revolution Storage Processing Card(0x0044)"},
}; /* pci_vid_169C[] */
-pci_id_t pci_vid_169D[] = {
+static pci_id_t const pci_vid_169D[] = {
{0x169D, 0xFFFF, 0xFFFF, 0xFFFF, "Club-3D VB (Wrong ID)(0x169D)"},
}; /* pci_vid_169D[] */
-pci_id_t pci_vid_16A5[] = {
+static pci_id_t const pci_vid_16A5[] = {
{0x16A5, 0xFFFF, 0xFFFF, 0xFFFF, "Tekram Technology Co.,Ltd.(0x16A5)"},
}; /* pci_vid_16A5[] */
-pci_id_t pci_vid_16AB[] = {
+static pci_id_t const pci_vid_16AB[] = {
{0x16AB, 0xFFFF, 0xFFFF, 0xFFFF, "Global Sun Technology Inc(0x16AB)"},
{0x16AB, 0x1100, 0xFFFF, 0xFFFF, "GL24110P(0x1100)"},
{0x16AB, 0x1101, 0xFFFF, 0xFFFF, "PLX9052 PCMCIA-to-PCI Wireless LAN(0x1101)"},
@@ -26961,7 +27063,7 @@ pci_id_t pci_vid_16AB[] = {
{0x16AB, 0x8501, 0xFFFF, 0xFFFF, "WL-8305 Wireless LAN PCI Adapter(0x8501)"},
}; /* pci_vid_16AB[] */
-pci_id_t pci_vid_16AE[] = {
+static pci_id_t const pci_vid_16AE[] = {
{0x16AE, 0xFFFF, 0xFFFF, 0xFFFF, "SafeNet Inc(0x16AE)"},
{0x16AE, 0x0001, 0xFFFF, 0xFFFF, "SafeXcel 1140(0x0001)"},
{0x16AE, 0x000A, 0xFFFF, 0xFFFF, "SafeXcel 1841(0x000A)"},
@@ -26970,23 +27072,23 @@ pci_id_t pci_vid_16AE[] = {
{0x16AE, 0x1841, 0xFFFF, 0xFFFF, "SafeXcel 1842(0x1841)"},
}; /* pci_vid_16AE[] */
-pci_id_t pci_vid_16AF[] = {
+static pci_id_t const pci_vid_16AF[] = {
{0x16AF, 0xFFFF, 0xFFFF, 0xFFFF, "SparkLAN Communications, Inc.(0x16AF)"},
}; /* pci_vid_16AF[] */
-pci_id_t pci_vid_16B4[] = {
+static pci_id_t const pci_vid_16B4[] = {
{0x16B4, 0xFFFF, 0xFFFF, 0xFFFF, "Aspex Semiconductor Ltd(0x16B4)"},
}; /* pci_vid_16B4[] */
-pci_id_t pci_vid_16B8[] = {
+static pci_id_t const pci_vid_16B8[] = {
{0x16B8, 0xFFFF, 0xFFFF, 0xFFFF, "Sonnet Technologies, Inc.(0x16B8)"},
}; /* pci_vid_16B8[] */
-pci_id_t pci_vid_16BE[] = {
+static pci_id_t const pci_vid_16BE[] = {
{0x16BE, 0xFFFF, 0xFFFF, 0xFFFF, "Creatix Polymedia GmbH(0x16BE)"},
}; /* pci_vid_16BE[] */
-pci_id_t pci_vid_16C3[] = {
+static pci_id_t const pci_vid_16C3[] = {
{0x16C3, 0xFFFF, 0xFFFF, 0xFFFF, "Synopsys, Inc.(0x16C3)"},
{0x16C3, 0xABCD, 0xFFFF, 0xFFFF, "DWC_usb3 / PCIe bridge(0xABCD)"},
{0x16C3, 0xABCE, 0xFFFF, 0xFFFF, "DWC_usb3(0xABCE)"},
@@ -26994,26 +27096,26 @@ pci_id_t pci_vid_16C3[] = {
{0x16C3, 0xEDDA, 0xFFFF, 0xFFFF, "EPMockUp(0xEDDA)"},
}; /* pci_vid_16C3[] */
-pci_id_t pci_vid_16C6[] = {
+static pci_id_t const pci_vid_16C6[] = {
{0x16C6, 0xFFFF, 0xFFFF, 0xFFFF, "Micrel-Kendin(0x16C6)"},
{0x16C6, 0x8695, 0xFFFF, 0xFFFF, "Centaur KS8695 ARM processor(0x8695)"},
{0x16C6, 0x8842, 0xFFFF, 0xFFFF, "KSZ8842-PMQL 2-Port Ethernet Switch(0x8842)"},
}; /* pci_vid_16C6[] */
-pci_id_t pci_vid_16C8[] = {
+static pci_id_t const pci_vid_16C8[] = {
{0x16C8, 0xFFFF, 0xFFFF, 0xFFFF, "Octasic Inc.(0x16C8)"},
}; /* pci_vid_16C8[] */
-pci_id_t pci_vid_16C9[] = {
+static pci_id_t const pci_vid_16C9[] = {
{0x16C9, 0xFFFF, 0xFFFF, 0xFFFF, "EONIC B.V. The Netherlands(0x16C9)"},
}; /* pci_vid_16C9[] */
-pci_id_t pci_vid_16CA[] = {
+static pci_id_t const pci_vid_16CA[] = {
{0x16CA, 0xFFFF, 0xFFFF, 0xFFFF, "CENATEK Inc(0x16CA)"},
{0x16CA, 0x0001, 0xFFFF, 0xFFFF, "Rocket Drive DL(0x0001)"},
}; /* pci_vid_16CA[] */
-pci_id_t pci_vid_16CD[] = {
+static pci_id_t const pci_vid_16CD[] = {
{0x16CD, 0xFFFF, 0xFFFF, 0xFFFF, "Advantech Co. Ltd(0x16CD)"},
{0x16CD, 0x0101, 0xFFFF, 0xFFFF, "DirectPCI SRAM for DPX-11x series(0x0101)"},
{0x16CD, 0x0102, 0xFFFF, 0xFFFF, "DirectPCI SRAM for DPX-S/C/E-series(0x0102)"},
@@ -27028,11 +27130,11 @@ pci_id_t pci_vid_16CD[] = {
{0x16CD, 0x010B, 0xFFFF, 0xFFFF, "DirectPCI I/O for DPX-S series(0x010B)"},
}; /* pci_vid_16CD[] */
-pci_id_t pci_vid_16CE[] = {
+static pci_id_t const pci_vid_16CE[] = {
{0x16CE, 0xFFFF, 0xFFFF, 0xFFFF, "Roland Corp.(0x16CE)"},
}; /* pci_vid_16CE[] */
-pci_id_t pci_vid_16D5[] = {
+static pci_id_t const pci_vid_16D5[] = {
{0x16D5, 0xFFFF, 0xFFFF, 0xFFFF, "Acromag, Inc.(0x16D5)"},
{0x16D5, 0x0504, 0xFFFF, 0xFFFF, "PMC-DX504 Reconfigurable FPGA with LVDS I/O(0x0504)"},
{0x16D5, 0x0520, 0xFFFF, 0xFFFF, "PMC520 Serial Communication, 232 Octal(0x0520)"},
@@ -27132,18 +27234,21 @@ pci_id_t pci_vid_16D5[] = {
{0x16D5, 0x7054, 0xFFFF, 0xFFFF, "APA7-504 Reconfigurable Artix-7 52,160 Cell FPGA module 24 LVDS channels(0x7054)"},
{0x16D5, 0x7072, 0xFFFF, 0xFFFF, "AP731 Multi-function I/O Module with 12-bit DAC(0x7072)"},
{0x16D5, 0x7073, 0xFFFF, 0xFFFF, "AP730 Multi-function I/O Module 16 Digital I/O 8 Differential Analog In 4 Analog Out(0x7073)"},
+{0x16D5, 0x7731, 0xFFFF, 0xFFFF, "APZU-301 Zynq Ultrascale+ Module 28 TTL channels(0x7731)"},
+{0x16D5, 0x7733, 0xFFFF, 0xFFFF, "APZU-303 Zynq Ultrascale+ Module 20 TTL & 3 RS485/422 channels(0x7733)"},
+{0x16D5, 0x7734, 0xFFFF, 0xFFFF, "APZU-304 Zynq Ultrascale+ Module 14 LVDS channels(0x7734)"},
}; /* pci_vid_16D5[] */
-pci_id_t pci_vid_16DA[] = {
+static pci_id_t const pci_vid_16DA[] = {
{0x16DA, 0xFFFF, 0xFFFF, 0xFFFF, "Advantech Co., Ltd.(0x16DA)"},
{0x16DA, 0x0011, 0xFFFF, 0xFFFF, "INES GPIB-PCI(0x0011)"},
}; /* pci_vid_16DA[] */
-pci_id_t pci_vid_16DF[] = {
+static pci_id_t const pci_vid_16DF[] = {
{0x16DF, 0xFFFF, 0xFFFF, 0xFFFF, "PIKA Technologies Inc.(0x16DF)"},
}; /* pci_vid_16DF[] */
-pci_id_t pci_vid_16E2[] = {
+static pci_id_t const pci_vid_16E2[] = {
{0x16E2, 0xFFFF, 0xFFFF, 0xFFFF, "Marvin Test Solutions(0x16E2)"},
{0x16E2, 0x1034, 0xFFFF, 0xFFFF, "GX1034 Certification and Verification Module PXI Board(0x1034)"},
{0x16E2, 0x1100, 0xFFFF, 0xFFFF, "GX1100 Arbitrary Waveform and Function Generator PXI Board(0x1100)"},
@@ -27207,18 +27312,18 @@ pci_id_t pci_vid_16E2[] = {
{0x16E2, 0x7779, 0xFFFF, 0xFFFF, "GX7779 Backplane Tester PXI Board(0x7779)"},
}; /* pci_vid_16E2[] */
-pci_id_t pci_vid_16E3[] = {
+static pci_id_t const pci_vid_16E3[] = {
{0x16E3, 0xFFFF, 0xFFFF, 0xFFFF, "European Space Agency(0x16E3)"},
{0x16E3, 0x1E0F, 0xFFFF, 0xFFFF, "LEON2FT Processor(0x1E0F)"},
}; /* pci_vid_16E3[] */
-pci_id_t pci_vid_16E5[] = {
+static pci_id_t const pci_vid_16E5[] = {
{0x16E5, 0xFFFF, 0xFFFF, 0xFFFF, "Intellon Corp.(0x16E5)"},
{0x16E5, 0x6000, 0xFFFF, 0xFFFF, "INT6000 Ethernet-to-Powerline Bridge [HomePlug AV](0x6000)"},
{0x16E5, 0x6300, 0xFFFF, 0xFFFF, "INT6300 Ethernet-to-Powerline Bridge [HomePlug AV](0x6300)"},
}; /* pci_vid_16E5[] */
-pci_id_t pci_vid_16EC[] = {
+static pci_id_t const pci_vid_16EC[] = {
{0x16EC, 0xFFFF, 0xFFFF, 0xFFFF, "U.S. Robotics(0x16EC)"},
{0x16EC, 0x00ED, 0xFFFF, 0xFFFF, "USR997900(0x00ED)"},
{0x16EC, 0x0116, 0xFFFF, 0xFFFF, "USR997902 10/100/1000 Mbps PCI Network Card(0x0116)"},
@@ -27228,71 +27333,72 @@ pci_id_t pci_vid_16EC[] = {
{0x16EC, 0xAB06, 0xFFFF, 0xFFFF, "USR997901A 10/100 Cardbus NIC(0xAB06)"},
}; /* pci_vid_16EC[] */
-pci_id_t pci_vid_16ED[] = {
+static pci_id_t const pci_vid_16ED[] = {
{0x16ED, 0xFFFF, 0xFFFF, 0xFFFF, "Sycron N. V.(0x16ED)"},
{0x16ED, 0x1001, 0xFFFF, 0xFFFF, "UMIO communication card(0x1001)"},
}; /* pci_vid_16ED[] */
-pci_id_t pci_vid_16F2[] = {
+static pci_id_t const pci_vid_16F2[] = {
{0x16F2, 0xFFFF, 0xFFFF, 0xFFFF, "ETAS GmbH(0x16F2)"},
{0x16F2, 0x0200, 0xFFFF, 0xFFFF, "I/O board(0x0200)"},
{0x16F2, 0x0200, 0x16F2, 0x0010, "ES53xx I/O board(0x16F2-0x0010)"},
}; /* pci_vid_16F2[] */
-pci_id_t pci_vid_16F3[] = {
+static pci_id_t const pci_vid_16F3[] = {
{0x16F3, 0xFFFF, 0xFFFF, 0xFFFF, "Jetway Information Co., Ltd.(0x16F3)"},
}; /* pci_vid_16F3[] */
-pci_id_t pci_vid_16F4[] = {
+static pci_id_t const pci_vid_16F4[] = {
{0x16F4, 0xFFFF, 0xFFFF, 0xFFFF, "Vweb Corp(0x16F4)"},
{0x16F4, 0x8000, 0xFFFF, 0xFFFF, "VW2010(0x8000)"},
}; /* pci_vid_16F4[] */
-pci_id_t pci_vid_16F6[] = {
+static pci_id_t const pci_vid_16F6[] = {
{0x16F6, 0xFFFF, 0xFFFF, 0xFFFF, "VideoTele.com, Inc.(0x16F6)"},
}; /* pci_vid_16F6[] */
-pci_id_t pci_vid_1702[] = {
+static pci_id_t const pci_vid_1702[] = {
{0x1702, 0xFFFF, 0xFFFF, 0xFFFF, "Internet Machines Corporation (IMC)(0x1702)"},
}; /* pci_vid_1702[] */
-pci_id_t pci_vid_1705[] = {
+static pci_id_t const pci_vid_1705[] = {
{0x1705, 0xFFFF, 0xFFFF, 0xFFFF, "Digital First, Inc.(0x1705)"},
}; /* pci_vid_1705[] */
-pci_id_t pci_vid_170B[] = {
+static pci_id_t const pci_vid_170B[] = {
{0x170B, 0xFFFF, 0xFFFF, 0xFFFF, "NetOctave(0x170B)"},
{0x170B, 0x0100, 0xFFFF, 0xFFFF, "NSP2000-SSL crypto accelerator(0x0100)"},
}; /* pci_vid_170B[] */
-pci_id_t pci_vid_170C[] = {
+static pci_id_t const pci_vid_170C[] = {
{0x170C, 0xFFFF, 0xFFFF, 0xFFFF, "YottaYotta Inc.(0x170C)"},
}; /* pci_vid_170C[] */
-pci_id_t pci_vid_1719[] = {
+static pci_id_t const pci_vid_1719[] = {
{0x1719, 0xFFFF, 0xFFFF, 0xFFFF, "EZChip Technologies(0x1719)"},
{0x1719, 0x1000, 0xFFFF, 0xFFFF, "NPA Access Network Processor Family(0x1000)"},
}; /* pci_vid_1719[] */
-pci_id_t pci_vid_1725[] = {
+static pci_id_t const pci_vid_1725[] = {
{0x1725, 0xFFFF, 0xFFFF, 0xFFFF, "Vitesse Semiconductor(0x1725)"},
{0x1725, 0x7174, 0xFFFF, 0xFFFF, "VSC7174 PCI/PCI-X Serial ATA Host Bus Controller(0x7174)"},
}; /* pci_vid_1725[] */
-pci_id_t pci_vid_172A[] = {
+static pci_id_t const pci_vid_172A[] = {
{0x172A, 0xFFFF, 0xFFFF, 0xFFFF, "Accelerated Encryption(0x172A)"},
{0x172A, 0x13C8, 0xFFFF, 0xFFFF, "AEP SureWare Runner 1000V3(0x13C8)"},
}; /* pci_vid_172A[] */
-pci_id_t pci_vid_1734[] = {
+static pci_id_t const pci_vid_1734[] = {
{0x1734, 0xFFFF, 0xFFFF, 0xFFFF, "Fujitsu Technology Solutions(0x1734)"},
+{0x1734, 0x9602, 0xFFFF, 0xFFFF, "RS780/RS880 PCI to PCI bridge (int gfx)(0x9602)"},
}; /* pci_vid_1734[] */
-pci_id_t pci_vid_1735[] = {
+static pci_id_t const pci_vid_1735[] = {
{0x1735, 0xFFFF, 0xFFFF, 0xFFFF, "Aten International Co. Ltd.(0x1735)"},
}; /* pci_vid_1735[] */
-pci_id_t pci_vid_1737[] = {
+static pci_id_t const pci_vid_1737[] = {
{0x1737, 0xFFFF, 0xFFFF, 0xFFFF, "Linksys(0x1737)"},
{0x1737, 0x0029, 0xFFFF, 0xFFFF, "WPG54G ver. 4 PCI Card(0x0029)"},
{0x1737, 0x1032, 0xFFFF, 0xFFFF, "Gigabit Network Adapter(0x1032)"},
@@ -27304,7 +27410,7 @@ pci_id_t pci_vid_1737[] = {
{0x1737, 0xAB09, 0xFFFF, 0xFFFF, "21x4x DEC-Tulip compatible 10/100 Ethernet(0xAB09)"},
}; /* pci_vid_1737[] */
-pci_id_t pci_vid_173B[] = {
+static pci_id_t const pci_vid_173B[] = {
{0x173B, 0xFFFF, 0xFFFF, 0xFFFF, "Altima (nee Broadcom)(0x173B)"},
{0x173B, 0x0001, 0xFFFF, 0xFFFF, "AC1002 PCI Gigabit Ethernet controller(0x0001)"},
{0x173B, 0x03E8, 0xFFFF, 0xFFFF, "AC1000 Gigabit Ethernet(0x03E8)"},
@@ -27314,38 +27420,39 @@ pci_id_t pci_vid_173B[] = {
{0x173B, 0x03EB, 0xFFFF, 0xFFFF, "AC1003 Gigabit Ethernet(0x03EB)"},
}; /* pci_vid_173B[] */
-pci_id_t pci_vid_1743[] = {
+static pci_id_t const pci_vid_1743[] = {
{0x1743, 0xFFFF, 0xFFFF, 0xFFFF, "Peppercon AG(0x1743)"},
{0x1743, 0x8139, 0xFFFF, 0xFFFF, "ROL/F-100 Fast Ethernet Adapter with ROL(0x8139)"},
}; /* pci_vid_1743[] */
-pci_id_t pci_vid_1745[] = {
+static pci_id_t const pci_vid_1745[] = {
{0x1745, 0xFFFF, 0xFFFF, 0xFFFF, "ViXS Systems, Inc.(0x1745)"},
{0x1745, 0x2020, 0xFFFF, 0xFFFF, "XCode II Series(0x2020)"},
{0x1745, 0x2100, 0xFFFF, 0xFFFF, "XCode 2100 Series(0x2100)"},
+{0x1745, 0x2100, 0x1043, 0x48C9, "My Cinema PE6200 Analoog(0x1043-0x48C9)"},
}; /* pci_vid_1745[] */
-pci_id_t pci_vid_1749[] = {
+static pci_id_t const pci_vid_1749[] = {
{0x1749, 0xFFFF, 0xFFFF, 0xFFFF, "RLX Technologies(0x1749)"},
}; /* pci_vid_1749[] */
-pci_id_t pci_vid_174B[] = {
+static pci_id_t const pci_vid_174B[] = {
{0x174B, 0xFFFF, 0xFFFF, 0xFFFF, "PC Partner Limited / Sapphire Technology(0x174B)"},
}; /* pci_vid_174B[] */
-pci_id_t pci_vid_174D[] = {
+static pci_id_t const pci_vid_174D[] = {
{0x174D, 0xFFFF, 0xFFFF, 0xFFFF, "WellX Telecom SA(0x174D)"},
}; /* pci_vid_174D[] */
-pci_id_t pci_vid_175C[] = {
+static pci_id_t const pci_vid_175C[] = {
{0x175C, 0xFFFF, 0xFFFF, 0xFFFF, "AudioScience Inc(0x175C)"},
}; /* pci_vid_175C[] */
-pci_id_t pci_vid_175E[] = {
+static pci_id_t const pci_vid_175E[] = {
{0x175E, 0xFFFF, 0xFFFF, 0xFFFF, "Sanera Systems, Inc.(0x175E)"},
}; /* pci_vid_175E[] */
-pci_id_t pci_vid_1760[] = {
+static pci_id_t const pci_vid_1760[] = {
{0x1760, 0xFFFF, 0xFFFF, 0xFFFF, "TEDIA spol. s r. o.(0x1760)"},
{0x1760, 0x0101, 0xFFFF, 0xFFFF, "PCD-7004 Digital Bi-Directional Ports PCI Card(0x0101)"},
{0x1760, 0x0102, 0xFFFF, 0xFFFF, "PCD-7104 Digital Input & Output PCI Card(0x0102)"},
@@ -27385,19 +27492,19 @@ pci_id_t pci_vid_1760[] = {
{0x1760, 0xFF00, 0xFFFF, 0xFFFF, "CTU CAN FD PCIe Card(0xFF00)"},
}; /* pci_vid_1760[] */
-pci_id_t pci_vid_1761[] = {
+static pci_id_t const pci_vid_1761[] = {
{0x1761, 0xFFFF, 0xFFFF, 0xFFFF, "Pickering Interfaces Ltd(0x1761)"},
}; /* pci_vid_1761[] */
-pci_id_t pci_vid_1771[] = {
+static pci_id_t const pci_vid_1771[] = {
{0x1771, 0xFFFF, 0xFFFF, 0xFFFF, "InnoVISION Multimedia Ltd.(0x1771)"},
}; /* pci_vid_1771[] */
-pci_id_t pci_vid_1775[] = {
+static pci_id_t const pci_vid_1775[] = {
{0x1775, 0xFFFF, 0xFFFF, 0xFFFF, "General Electric(0x1775)"},
}; /* pci_vid_1775[] */
-pci_id_t pci_vid_177D[] = {
+static pci_id_t const pci_vid_177D[] = {
{0x177D, 0xFFFF, 0xFFFF, 0xFFFF, "Cavium, Inc.(0x177D)"},
{0x177D, 0x0001, 0xFFFF, 0xFFFF, "Nitrox XL N1(0x0001)"},
{0x177D, 0x0003, 0xFFFF, 0xFFFF, "Nitrox XL N1 Lite(0x0003)"},
@@ -27514,15 +27621,15 @@ pci_id_t pci_vid_177D[] = {
{0x177D, 0xAF84, 0xFFFF, 0xFFFF, "CN99xx [ThunderX2] Integrated PCI Express RP Bridge(0xAF84)"},
}; /* pci_vid_177D[] */
-pci_id_t pci_vid_1787[] = {
+static pci_id_t const pci_vid_1787[] = {
{0x1787, 0xFFFF, 0xFFFF, 0xFFFF, "Hightech Information System Ltd.(0x1787)"},
}; /* pci_vid_1787[] */
-pci_id_t pci_vid_1789[] = {
+static pci_id_t const pci_vid_1789[] = {
{0x1789, 0xFFFF, 0xFFFF, 0xFFFF, "Ennyah Technologies Corp.(0x1789)"},
}; /* pci_vid_1789[] */
-pci_id_t pci_vid_1796[] = {
+static pci_id_t const pci_vid_1796[] = {
{0x1796, 0xFFFF, 0xFFFF, 0xFFFF, "Research Centre Juelich(0x1796)"},
{0x1796, 0x0001, 0xFFFF, 0xFFFF, "SIS1100 [Gigabit link](0x0001)"},
{0x1796, 0x0002, 0xFFFF, 0xFFFF, "HOTlink(0x0002)"},
@@ -27554,7 +27661,7 @@ pci_id_t pci_vid_1796[] = {
{0x1796, 0x0031, 0xFFFF, 0xFFFF, "200MHz 64bit Sequence Generator based on Spartan7(0x0031)"},
}; /* pci_vid_1796[] */
-pci_id_t pci_vid_1797[] = {
+static pci_id_t const pci_vid_1797[] = {
{0x1797, 0xFFFF, 0xFFFF, 0xFFFF, "Intersil Techwell(0x1797)"},
{0x1797, 0x5864, 0xFFFF, 0xFFFF, "TW5864 multimedia video controller(0x5864)"},
{0x1797, 0x6801, 0xFFFF, 0xFFFF, "TW6802 multimedia video card(0x6801)"},
@@ -27570,7 +27677,7 @@ pci_id_t pci_vid_1797[] = {
{0x1797, 0x6864, 0xFFFF, 0xFFFF, "TW6864 multimedia video controller(0x6864)"},
}; /* pci_vid_1797[] */
-pci_id_t pci_vid_1799[] = {
+static pci_id_t const pci_vid_1799[] = {
{0x1799, 0xFFFF, 0xFFFF, 0xFFFF, "Belkin(0x1799)"},
{0x1799, 0x6001, 0xFFFF, 0xFFFF, "F5D6001 Wireless PCI Card [Realtek RTL8180](0x6001)"},
{0x1799, 0x6020, 0xFFFF, 0xFFFF, "F5D6020 v3000 Wireless PCMCIA Card [Realtek RTL8180](0x6020)"},
@@ -27579,12 +27686,12 @@ pci_id_t pci_vid_1799[] = {
{0x1799, 0x701F, 0xFFFF, 0xFFFF, "F5D7010 v7000 Wireless G Notebook Card [Realtek RTL8185](0x701F)"},
}; /* pci_vid_1799[] */
-pci_id_t pci_vid_179A[] = {
+static pci_id_t const pci_vid_179A[] = {
{0x179A, 0xFFFF, 0xFFFF, 0xFFFF, "id Quantique(0x179A)"},
{0x179A, 0x0001, 0xFFFF, 0xFFFF, "Quantis PCI 16Mbps(0x0001)"},
}; /* pci_vid_179A[] */
-pci_id_t pci_vid_179C[] = {
+static pci_id_t const pci_vid_179C[] = {
{0x179C, 0xFFFF, 0xFFFF, 0xFFFF, "Data Patterns(0x179C)"},
{0x179C, 0x0557, 0xFFFF, 0xFFFF, "DP-PCI-557 [PCI 1553B](0x0557)"},
{0x179C, 0x0566, 0xFFFF, 0xFFFF, "DP-PCI-566 [Intelligent PCI 1553B](0x0566)"},
@@ -27596,7 +27703,7 @@ pci_id_t pci_vid_179C[] = {
{0x179C, 0x5679, 0xFFFF, 0xFFFF, "AGE Display Module(0x5679)"},
}; /* pci_vid_179C[] */
-pci_id_t pci_vid_17A0[] = {
+static pci_id_t const pci_vid_17A0[] = {
{0x17A0, 0xFFFF, 0xFFFF, 0xFFFF, "Genesys Logic, Inc(0x17A0)"},
{0x17A0, 0x7163, 0xFFFF, 0xFFFF, "GL9701 PCIe to PCI Bridge(0x7163)"},
{0x17A0, 0x8083, 0xFFFF, 0xFFFF, "GL880 USB 1.1 UHCI controller(0x8083)"},
@@ -27606,7 +27713,7 @@ pci_id_t pci_vid_17A0[] = {
{0x17A0, 0xE763, 0xFFFF, 0xFFFF, "GL9763E eMMC Controller(0xE763)"},
}; /* pci_vid_17A0[] */
-pci_id_t pci_vid_17AA[] = {
+static pci_id_t const pci_vid_17AA[] = {
{0x17AA, 0xFFFF, 0xFFFF, 0xFFFF, "Lenovo(0x17AA)"},
{0x17AA, 0x0003, 0xFFFF, 0xFFFF, "LENSE20256GMSP34MEAT2TA(0x0003)"},
{0x17AA, 0x0004, 0xFFFF, 0xFFFF, "LENSE20512GMSP34MEAT2TA(0x0004)"},
@@ -27614,22 +27721,23 @@ pci_id_t pci_vid_17AA[] = {
{0x17AA, 0x0006, 0xFFFF, 0xFFFF, "LENSE30512GMSP34MEAT3TA(0x0006)"},
{0x17AA, 0x3181, 0xFFFF, 0xFFFF, "ThinkCentre M75n IoT(0x3181)"},
{0x17AA, 0x402B, 0xFFFF, 0xFFFF, "Intel 82599ES 10Gb 2-port Server Adapter X520-2(0x402B)"},
+{0x17AA, 0x9602, 0xFFFF, 0xFFFF, "RS780/RS880 PCI to PCI bridge (int gfx)(0x9602)"},
}; /* pci_vid_17AA[] */
-pci_id_t pci_vid_17AB[] = {
+static pci_id_t const pci_vid_17AB[] = {
{0x17AB, 0xFFFF, 0xFFFF, 0xFFFF, "Phillips Components(0x17AB)"},
}; /* pci_vid_17AB[] */
-pci_id_t pci_vid_17AF[] = {
+static pci_id_t const pci_vid_17AF[] = {
{0x17AF, 0xFFFF, 0xFFFF, 0xFFFF, "Hightech Information System Ltd.(0x17AF)"},
}; /* pci_vid_17AF[] */
-pci_id_t pci_vid_17B3[] = {
+static pci_id_t const pci_vid_17B3[] = {
{0x17B3, 0xFFFF, 0xFFFF, 0xFFFF, "Hawking Technologies(0x17B3)"},
{0x17B3, 0xAB08, 0xFFFF, 0xFFFF, "PN672TX 10/100 Ethernet(0xAB08)"},
}; /* pci_vid_17B3[] */
-pci_id_t pci_vid_17B4[] = {
+static pci_id_t const pci_vid_17B4[] = {
{0x17B4, 0xFFFF, 0xFFFF, 0xFFFF, "Indra Networks, Inc.(0x17B4)"},
{0x17B4, 0x0011, 0xFFFF, 0xFFFF, "WebEnhance 100 GZIP Compression Card(0x0011)"},
{0x17B4, 0x0012, 0xFFFF, 0xFFFF, "WebEnhance 200 GZIP Compression Card(0x0012)"},
@@ -27638,19 +27746,19 @@ pci_id_t pci_vid_17B4[] = {
{0x17B4, 0x0017, 0xFFFF, 0xFFFF, "StorSecure 300 GZIP Compression and AES Encryption Card(0x0017)"},
}; /* pci_vid_17B4[] */
-pci_id_t pci_vid_17C0[] = {
+static pci_id_t const pci_vid_17C0[] = {
{0x17C0, 0xFFFF, 0xFFFF, 0xFFFF, "Wistron Corp.(0x17C0)"},
}; /* pci_vid_17C0[] */
-pci_id_t pci_vid_17C2[] = {
+static pci_id_t const pci_vid_17C2[] = {
{0x17C2, 0xFFFF, 0xFFFF, 0xFFFF, "Newisys, Inc.(0x17C2)"},
}; /* pci_vid_17C2[] */
-pci_id_t pci_vid_17C3[] = {
+static pci_id_t const pci_vid_17C3[] = {
{0x17C3, 0xFFFF, 0xFFFF, 0xFFFF, "Protogate, Inc.(0x17C3)"},
}; /* pci_vid_17C3[] */
-pci_id_t pci_vid_17CB[] = {
+static pci_id_t const pci_vid_17CB[] = {
{0x17CB, 0xFFFF, 0xFFFF, 0xFFFF, "Qualcomm Technologies, Inc(0x17CB)"},
{0x17CB, 0x0001, 0xFFFF, 0xFFFF, "AGN100 802.11 a/b/g True MIMO Wireless Card(0x0001)"},
{0x17CB, 0x0001, 0x1385, 0x5C00, "WGM511 Pre-N 802.11g Wireless CardBus Adapter(0x1385-0x5C00)"},
@@ -27658,37 +27766,47 @@ pci_id_t pci_vid_17CB[] = {
{0x17CB, 0x0002, 0xFFFF, 0xFFFF, "AGN300 802.11 a/b/g True MIMO Wireless Card(0x0002)"},
{0x17CB, 0x0002, 0x1385, 0x6D00, "WPNT511 RangeMax 240 Mbps Wireless CardBus Adapter(0x1385-0x6D00)"},
{0x17CB, 0x0002, 0x1737, 0x0054, "WPC54GX4 v1 802.11g Wireless-G Notebook Adapter with SRX400(0x1737-0x0054)"},
+{0x17CB, 0x0104, 0xFFFF, 0xFFFF, "APQ8096 PCIe Root Complex [Snapdragon 820](0x0104)"},
{0x17CB, 0x0105, 0xFFFF, 0xFFFF, "MSM8998 PCIe Root Complex(0x0105)"},
+{0x17CB, 0x0106, 0xFFFF, 0xFFFF, "SDM850 PCIe Root Complex [Snapdragon 850](0x0106)"},
+{0x17CB, 0x0107, 0xFFFF, 0xFFFF, "SDM850 PCIe Root Port [Snapdragon 850](0x0107)"},
{0x17CB, 0x0108, 0xFFFF, 0xFFFF, "SM8150 PCIe Root Complex(0x0108)"},
{0x17CB, 0x0109, 0xFFFF, 0xFFFF, "SA8195P PCIe Root Complex(0x0109)"},
+{0x17CB, 0x010B, 0xFFFF, 0xFFFF, "SM8250 PCIe Root Complex [Snapdragon 865/870 5G](0x010B)"},
+{0x17CB, 0x010C, 0xFFFF, 0xFFFF, "SM8350 PCIe Root Complex [Snapdragon 888](0x010C)"},
{0x17CB, 0x010E, 0xFFFF, 0xFFFF, "SC8280XP PCI Express Root Port(0x010E)"},
+{0x17CB, 0x0110, 0xFFFF, 0xFFFF, "SM8475 PCIe Root Complex [Snapdragon 8+ Gen 1](0x0110)"},
{0x17CB, 0x0300, 0xFFFF, 0xFFFF, "MDM9x35 LTE Modem [Snapdragon X7](0x0300)"},
{0x17CB, 0x0301, 0xFFFF, 0xFFFF, "MDM9x45 LTE Modem [Snapdragon X12](0x0301)"},
{0x17CB, 0x0302, 0xFFFF, 0xFFFF, "MDM9x55 LTE Modem [Snapdragon X16](0x0302)"},
+{0x17CB, 0x0304, 0xFFFF, 0xFFFF, "SDX24 [Snapdragon X24 4G](0x0304)"},
+{0x17CB, 0x0306, 0xFFFF, 0xFFFF, "SDX55 [Snapdragon X55 5G](0x0306)"},
{0x17CB, 0x0400, 0xFFFF, 0xFFFF, "Datacenter Technologies QDF2432 PCI Express Root Port(0x0400)"},
{0x17CB, 0x0401, 0xFFFF, 0xFFFF, "Datacenter Technologies QDF2400 PCI Express Root Port(0x0401)"},
{0x17CB, 0x1000, 0xFFFF, 0xFFFF, "QCS405 PCIe Root Complex(0x1000)"},
{0x17CB, 0x1101, 0xFFFF, 0xFFFF, "QCA6390 Wireless Network Adapter(0x1101)"},
{0x17CB, 0x1103, 0xFFFF, 0xFFFF, "QCNFA765 Wireless Network Adapter(0x1103)"},
{0x17CB, 0x1104, 0xFFFF, 0xFFFF, "QCN6024/9024/9074 Wireless Network Adapter(0x1104)"},
-{0x17CB, 0x1108, 0xFFFF, 0xFFFF, "IPQ95xx/97xx PCI Express Root Port(0x1108)"},
+{0x17CB, 0x1107, 0xFFFF, 0xFFFF, "WCN785x Wi-Fi 7(802.11be) 320MHz 2x2 [FastConnect 7800](0x1107)"},
+{0x17CB, 0x1107, 0x105B, 0xE0F7, "High Band Simultaneous Wireless Network Adapter(0x105B-0xE0F7)"},
+{0x17CB, 0x1108, 0xFFFF, 0xFFFF, "IPQ95xx/97xx PCIe Root Port(0x1108)"},
{0x17CB, 0x1109, 0xFFFF, 0xFFFF, "QCN62xx/92xx Wireless Network Adapter(0x1109)"},
}; /* pci_vid_17CB[] */
-pci_id_t pci_vid_17CC[] = {
+static pci_id_t const pci_vid_17CC[] = {
{0x17CC, 0xFFFF, 0xFFFF, 0xFFFF, "NetChip Technology, Inc(0x17CC)"},
{0x17CC, 0x2280, 0xFFFF, 0xFFFF, "USB 2.0(0x2280)"},
}; /* pci_vid_17CC[] */
-pci_id_t pci_vid_17CD[] = {
+static pci_id_t const pci_vid_17CD[] = {
{0x17CD, 0xFFFF, 0xFFFF, 0xFFFF, "Cadence Design Systems, Inc.(0x17CD)"},
}; /* pci_vid_17CD[] */
-pci_id_t pci_vid_17CF[] = {
+static pci_id_t const pci_vid_17CF[] = {
{0x17CF, 0xFFFF, 0xFFFF, 0xFFFF, "Z-Com, Inc.(0x17CF)"},
}; /* pci_vid_17CF[] */
-pci_id_t pci_vid_17D3[] = {
+static pci_id_t const pci_vid_17D3[] = {
{0x17D3, 0xFFFF, 0xFFFF, 0xFFFF, "Areca Technology Corp.(0x17D3)"},
{0x17D3, 0x1110, 0xFFFF, 0xFFFF, "ARC-1110 4-Port PCI-X to SATA RAID Controller(0x1110)"},
{0x17D3, 0x1120, 0xFFFF, 0xFFFF, "ARC-1120 8-Port PCI-X to SATA RAID Controller(0x1120)"},
@@ -27738,7 +27856,7 @@ pci_id_t pci_vid_17D3[] = {
{0x17D3, 0x188A, 0x17D3, 0x1886, "ARC-1886 PCIe 4.0 to NVMe/SAS/SATA 16/12/6Gb RAID Controller(0x17D3-0x1886)"},
}; /* pci_vid_17D3[] */
-pci_id_t pci_vid_17D5[] = {
+static pci_id_t const pci_vid_17D5[] = {
{0x17D5, 0xFFFF, 0xFFFF, 0xFFFF, "Exar Corp.(0x17D5)"},
{0x17D5, 0x5731, 0xFFFF, 0xFFFF, "Xframe 10-Gigabit Ethernet PCI-X(0x5731)"},
{0x17D5, 0x5732, 0xFFFF, 0xFFFF, "Xframe II 10-Gigabit Ethernet PCI-X 2.0(0x5732)"},
@@ -27771,17 +27889,17 @@ pci_id_t pci_vid_17D5[] = {
{0x17D5, 0x5833, 0x17D5, 0x7831, "X3120 Dual Port 10GBase-CR(0x17D5-0x7831)"},
}; /* pci_vid_17D5[] */
-pci_id_t pci_vid_17DB[] = {
+static pci_id_t const pci_vid_17DB[] = {
{0x17DB, 0xFFFF, 0xFFFF, 0xFFFF, "Cray Inc(0x17DB)"},
{0x17DB, 0x0101, 0xFFFF, 0xFFFF, "XT Series [Seastar] 3D Toroidal Router(0x0101)"},
{0x17DB, 0x0501, 0xFFFF, 0xFFFF, "Cassini 1 [Slingshot 200Gb](0x0501)"},
}; /* pci_vid_17DB[] */
-pci_id_t pci_vid_17DE[] = {
+static pci_id_t const pci_vid_17DE[] = {
{0x17DE, 0xFFFF, 0xFFFF, 0xFFFF, "KWorld Computer Co. Ltd.(0x17DE)"},
}; /* pci_vid_17DE[] */
-pci_id_t pci_vid_17DF[] = {
+static pci_id_t const pci_vid_17DF[] = {
{0x17DF, 0xFFFF, 0xFFFF, 0xFFFF, "Dini Group(0x17DF)"},
{0x17DF, 0x1864, 0xFFFF, 0xFFFF, "Virtex4 PCI Board w/ QL5064 Bridge [DN7000K10PCI/DN8000K10PCI/DN8000K10PSX/NOTUS](0x1864)"},
{0x17DF, 0x1865, 0xFFFF, 0xFFFF, "Virtex4 ASIC Emulator [DN8000K10PCIe](0x1865)"},
@@ -27830,13 +27948,13 @@ pci_id_t pci_vid_17DF[] = {
{0x17DF, 0x1A0E, 0xFFFF, 0xFFFF, "UltrascalePlus PCIe Darklite Design [DNPCIe_400G_VUP_HBM_LL](0x1A0E)"},
}; /* pci_vid_17DF[] */
-pci_id_t pci_vid_17E4[] = {
+static pci_id_t const pci_vid_17E4[] = {
{0x17E4, 0xFFFF, 0xFFFF, 0xFFFF, "Sectra AB(0x17E4)"},
{0x17E4, 0x0001, 0xFFFF, 0xFFFF, "KK671 Cardbus encryption board(0x0001)"},
{0x17E4, 0x0002, 0xFFFF, 0xFFFF, "KK672 Cardbus encryption board(0x0002)"},
}; /* pci_vid_17E4[] */
-pci_id_t pci_vid_17E6[] = {
+static pci_id_t const pci_vid_17E6[] = {
{0x17E6, 0xFFFF, 0xFFFF, 0xFFFF, "MaxLinear(0x17E6)"},
{0x17E6, 0x0010, 0xFFFF, 0xFFFF, "EN2010 [c.Link] MoCA Network Controller (Coax, PCI interface)(0x0010)"},
{0x17E6, 0x0011, 0xFFFF, 0xFFFF, "EN2010 [c.Link] MoCA Network Controller (Coax, MPEG interface)(0x0011)"},
@@ -27847,15 +27965,15 @@ pci_id_t pci_vid_17E6[] = {
{0x17E6, 0x3710, 0xFFFF, 0xFFFF, "MoCA 2.5 Network Controller (Coax, PCIe interface)(0x3710)"},
}; /* pci_vid_17E6[] */
-pci_id_t pci_vid_17EE[] = {
+static pci_id_t const pci_vid_17EE[] = {
{0x17EE, 0xFFFF, 0xFFFF, 0xFFFF, "Connect Components Ltd(0x17EE)"},
}; /* pci_vid_17EE[] */
-pci_id_t pci_vid_17F2[] = {
+static pci_id_t const pci_vid_17F2[] = {
{0x17F2, 0xFFFF, 0xFFFF, 0xFFFF, "Albatron Corp.(0x17F2)"},
}; /* pci_vid_17F2[] */
-pci_id_t pci_vid_17F3[] = {
+static pci_id_t const pci_vid_17F3[] = {
{0x17F3, 0xFFFF, 0xFFFF, 0xFFFF, "RDC Semiconductor, Inc.(0x17F3)"},
{0x17F3, 0x1010, 0xFFFF, 0xFFFF, "R1010 IDE Controller(0x1010)"},
{0x17F3, 0x1011, 0xFFFF, 0xFFFF, "R1011 IDE Controller(0x1011)"},
@@ -27885,19 +28003,19 @@ pci_id_t pci_vid_17F3[] = {
{0x17F3, 0x6061, 0xFFFF, 0xFFFF, "R6061 USB 2.0 Controller(0x6061)"},
}; /* pci_vid_17F3[] */
-pci_id_t pci_vid_17F7[] = {
+static pci_id_t const pci_vid_17F7[] = {
{0x17F7, 0xFFFF, 0xFFFF, 0xFFFF, "Topdek Semiconductor Inc.(0x17F7)"},
}; /* pci_vid_17F7[] */
-pci_id_t pci_vid_17F9[] = {
+static pci_id_t const pci_vid_17F9[] = {
{0x17F9, 0xFFFF, 0xFFFF, 0xFFFF, "Gemtek Technology Co., Ltd(0x17F9)"},
}; /* pci_vid_17F9[] */
-pci_id_t pci_vid_17FC[] = {
+static pci_id_t const pci_vid_17FC[] = {
{0x17FC, 0xFFFF, 0xFFFF, 0xFFFF, "IOGEAR, Inc.(0x17FC)"},
}; /* pci_vid_17FC[] */
-pci_id_t pci_vid_17FE[] = {
+static pci_id_t const pci_vid_17FE[] = {
{0x17FE, 0xFFFF, 0xFFFF, 0xFFFF, "InProComm Inc.(0x17FE)"},
{0x17FE, 0x2120, 0xFFFF, 0xFFFF, "IPN 2120 802.11b(0x2120)"},
{0x17FE, 0x2120, 0x1737, 0x0020, "WMP11 v4 802.11b Wireless-B PCI Adapter(0x1737-0x0020)"},
@@ -27906,25 +28024,25 @@ pci_id_t pci_vid_17FE[] = {
{0x17FE, 0x2220, 0x1737, 0x0029, "WPC54G v4 802.11g Wireless-G Notebook Adapter(0x1737-0x0029)"},
}; /* pci_vid_17FE[] */
-pci_id_t pci_vid_17FF[] = {
+static pci_id_t const pci_vid_17FF[] = {
{0x17FF, 0xFFFF, 0xFFFF, 0xFFFF, "Benq Corporation(0x17FF)"},
}; /* pci_vid_17FF[] */
-pci_id_t pci_vid_1800[] = {
+static pci_id_t const pci_vid_1800[] = {
{0x1800, 0xFFFF, 0xFFFF, 0xFFFF, "Qualcore Logic Inc.(0x1800)"},
{0x1800, 0x1100, 0xFFFF, 0xFFFF, "Nanospeed Trading Gateway(0x1100)"},
}; /* pci_vid_1800[] */
-pci_id_t pci_vid_1803[] = {
+static pci_id_t const pci_vid_1803[] = {
{0x1803, 0xFFFF, 0xFFFF, 0xFFFF, "ProdaSafe GmbH(0x1803)"},
}; /* pci_vid_1803[] */
-pci_id_t pci_vid_1804[] = {
+static pci_id_t const pci_vid_1804[] = {
{0x1804, 0xFFFF, 0xFFFF, 0xFFFF, "Ralink corp. (wrong ID)(0x1804)"},
{0x1804, 0x3060, 0xFFFF, 0xFFFF, "RT3060 Wireless 802.11n 1T/1R(0x3060)"},
}; /* pci_vid_1804[] */
-pci_id_t pci_vid_1805[] = {
+static pci_id_t const pci_vid_1805[] = {
{0x1805, 0xFFFF, 0xFFFF, 0xFFFF, "Euresys S.A.(0x1805)"},
{0x1805, 0x0201, 0xFFFF, 0xFFFF, "PICOLO Alert PCI(0x0201)"},
{0x1805, 0x0202, 0xFFFF, 0xFFFF, "PICOLO Diligent(0x0202)"},
@@ -27957,15 +28075,15 @@ pci_id_t pci_vid_1805[] = {
{0x1805, 0x0408, 0xFFFF, 0xFFFF, "DOMINO Symphony PCIe(0x0408)"},
}; /* pci_vid_1805[] */
-pci_id_t pci_vid_1809[] = {
+static pci_id_t const pci_vid_1809[] = {
{0x1809, 0xFFFF, 0xFFFF, 0xFFFF, "Lumanate, Inc.(0x1809)"},
}; /* pci_vid_1809[] */
-pci_id_t pci_vid_180C[] = {
+static pci_id_t const pci_vid_180C[] = {
{0x180C, 0xFFFF, 0xFFFF, 0xFFFF, "IEI Integration Corp(0x180C)"},
}; /* pci_vid_180C[] */
-pci_id_t pci_vid_1813[] = {
+static pci_id_t const pci_vid_1813[] = {
{0x1813, 0xFFFF, 0xFFFF, 0xFFFF, "Ambient Technologies Inc(0x1813)"},
{0x1813, 0x4000, 0xFFFF, 0xFFFF, "HaM controllerless modem(0x4000)"},
{0x1813, 0x4000, 0x16BE, 0x0001, "V9x HAM Data Fax Modem(0x16BE-0x0001)"},
@@ -27973,7 +28091,7 @@ pci_id_t pci_vid_1813[] = {
{0x1813, 0x4100, 0x16BE, 0x0002, "V9x HAM 1394(0x16BE-0x0002)"},
}; /* pci_vid_1813[] */
-pci_id_t pci_vid_1814[] = {
+static pci_id_t const pci_vid_1814[] = {
{0x1814, 0xFFFF, 0xFFFF, 0xFFFF, "Ralink corp.(0x1814)"},
{0x1814, 0x0101, 0xFFFF, 0xFFFF, "Wireless PCI Adapter RT2400 / RT2460(0x0101)"},
{0x1814, 0x0101, 0x1043, 0x0127, "WiFi-b add-on Card(0x1043-0x0127)"},
@@ -28031,6 +28149,7 @@ pci_id_t pci_vid_1814[] = {
{0x1814, 0x0701, 0xFFFF, 0xFFFF, "RT2760 Wireless 802.11n 1T/2R(0x0701)"},
{0x1814, 0x0701, 0x1737, 0x0074, "WMP110 v2 802.11n RangePlus Wireless PCI Adapter(0x1737-0x0074)"},
{0x1814, 0x0781, 0xFFFF, 0xFFFF, "RT2790 Wireless 802.11n 1T/2R PCIe(0x0781)"},
+{0x1814, 0x0781, 0x11AD, 0x7600, "HP WN7600R(0x11AD-0x7600)"},
{0x1814, 0x0781, 0x1814, 0x2790, "RT2790 Wireless 802.11n 1T/2R PCIe(0x1814-0x2790)"},
{0x1814, 0x3060, 0xFFFF, 0xFFFF, "RT3060 Wireless 802.11n 1T/1R(0x3060)"},
{0x1814, 0x3060, 0x1186, 0x3C04, "DWA-525 Wireless N 150 Desktop Adapter (rev.A1)(0x1186-0x3C04)"},
@@ -28059,36 +28178,36 @@ pci_id_t pci_vid_1814[] = {
{0x1814, 0xE932, 0xFFFF, 0xFFFF, "RT2560F 802.11 b/g PCI(0xE932)"},
}; /* pci_vid_1814[] */
-pci_id_t pci_vid_1815[] = {
+static pci_id_t const pci_vid_1815[] = {
{0x1815, 0xFFFF, 0xFFFF, 0xFFFF, "Devolo AG(0x1815)"},
}; /* pci_vid_1815[] */
-pci_id_t pci_vid_1820[] = {
+static pci_id_t const pci_vid_1820[] = {
{0x1820, 0xFFFF, 0xFFFF, 0xFFFF, "InfiniCon Systems Inc.(0x1820)"},
}; /* pci_vid_1820[] */
-pci_id_t pci_vid_1822[] = {
+static pci_id_t const pci_vid_1822[] = {
{0x1822, 0xFFFF, 0xFFFF, 0xFFFF, "Twinhan Technology Co. Ltd(0x1822)"},
{0x1822, 0x4E35, 0xFFFF, 0xFFFF, "Mantis DTV PCI Bridge Controller [Ver 1.0](0x4E35)"},
}; /* pci_vid_1822[] */
-pci_id_t pci_vid_182D[] = {
+static pci_id_t const pci_vid_182D[] = {
{0x182D, 0xFFFF, 0xFFFF, 0xFFFF, "SiteCom Europe BV(0x182D)"},
{0x182D, 0x3069, 0xFFFF, 0xFFFF, "ISDN PCI DC-105V2(0x3069)"},
{0x182D, 0x9790, 0xFFFF, 0xFFFF, "WL-121 Wireless Network Adapter 100g+ [Ver.3](0x9790)"},
}; /* pci_vid_182D[] */
-pci_id_t pci_vid_182E[] = {
+static pci_id_t const pci_vid_182E[] = {
{0x182E, 0xFFFF, 0xFFFF, 0xFFFF, "Raza Microelectronics, Inc.(0x182E)"},
{0x182E, 0x0008, 0xFFFF, 0xFFFF, "XLR516 Processor(0x0008)"},
}; /* pci_vid_182E[] */
-pci_id_t pci_vid_182F[] = {
+static pci_id_t const pci_vid_182F[] = {
{0x182F, 0xFFFF, 0xFFFF, 0xFFFF, "Broadcom(0x182F)"},
{0x182F, 0x000B, 0xFFFF, 0xFFFF, "BCM5785 [HT1000] SATA (RAID Mode)(0x000B)"},
}; /* pci_vid_182F[] */
-pci_id_t pci_vid_1830[] = {
+static pci_id_t const pci_vid_1830[] = {
{0x1830, 0xFFFF, 0xFFFF, 0xFFFF, "Credence Systems Corporation(0x1830)"},
{0x1830, 0x8000, 0xFFFF, 0xFFFF, "CPIn(0x8000)"},
{0x1830, 0x8001, 0xFFFF, 0xFFFF, "CPId(0x8001)"},
@@ -28096,7 +28215,7 @@ pci_id_t pci_vid_1830[] = {
{0x1830, 0x8003, 0xFFFF, 0xFFFF, "CPIq(0x8003)"},
}; /* pci_vid_1830[] */
-pci_id_t pci_vid_183B[] = {
+static pci_id_t const pci_vid_183B[] = {
{0x183B, 0xFFFF, 0xFFFF, 0xFFFF, "MikroM GmbH(0x183B)"},
{0x183B, 0x08A7, 0xFFFF, 0xFFFF, "MVC100 DVI(0x08A7)"},
{0x183B, 0x08A8, 0xFFFF, 0xFFFF, "MVC101 SDI(0x08A8)"},
@@ -28104,55 +28223,56 @@ pci_id_t pci_vid_183B[] = {
{0x183B, 0x08B0, 0xFFFF, 0xFFFF, "MVC200-DC(0x08B0)"},
}; /* pci_vid_183B[] */
-pci_id_t pci_vid_1846[] = {
+static pci_id_t const pci_vid_1846[] = {
{0x1846, 0xFFFF, 0xFFFF, 0xFFFF, "Alcatel-Lucent(0x1846)"},
}; /* pci_vid_1846[] */
-pci_id_t pci_vid_1849[] = {
+static pci_id_t const pci_vid_1849[] = {
{0x1849, 0xFFFF, 0xFFFF, 0xFFFF, "ASRock Incorporation(0x1849)"},
+{0x1849, 0x9602, 0xFFFF, 0xFFFF, "RS780/RS880 PCI to PCI bridge (int gfx)(0x9602)"},
}; /* pci_vid_1849[] */
-pci_id_t pci_vid_184A[] = {
+static pci_id_t const pci_vid_184A[] = {
{0x184A, 0xFFFF, 0xFFFF, 0xFFFF, "Thales Computers(0x184A)"},
{0x184A, 0x1100, 0xFFFF, 0xFFFF, "MAX II cPLD(0x1100)"},
}; /* pci_vid_184A[] */
-pci_id_t pci_vid_1850[] = {
+static pci_id_t const pci_vid_1850[] = {
{0x1850, 0xFFFF, 0xFFFF, 0xFFFF, "Advantest Corporation(0x1850)"},
{0x1850, 0x0048, 0xFFFF, 0xFFFF, "EK220-66401 Computer Interface Card(0x0048)"},
}; /* pci_vid_1850[] */
-pci_id_t pci_vid_1851[] = {
+static pci_id_t const pci_vid_1851[] = {
{0x1851, 0xFFFF, 0xFFFF, 0xFFFF, "Microtune, Inc.(0x1851)"},
}; /* pci_vid_1851[] */
-pci_id_t pci_vid_1852[] = {
+static pci_id_t const pci_vid_1852[] = {
{0x1852, 0xFFFF, 0xFFFF, 0xFFFF, "Anritsu Corp.(0x1852)"},
}; /* pci_vid_1852[] */
-pci_id_t pci_vid_1853[] = {
+static pci_id_t const pci_vid_1853[] = {
{0x1853, 0xFFFF, 0xFFFF, 0xFFFF, "SMSC Automotive Infotainment System Group(0x1853)"},
}; /* pci_vid_1853[] */
-pci_id_t pci_vid_1854[] = {
+static pci_id_t const pci_vid_1854[] = {
{0x1854, 0xFFFF, 0xFFFF, 0xFFFF, "LG Electronics, Inc.(0x1854)"},
}; /* pci_vid_1854[] */
-pci_id_t pci_vid_185B[] = {
+static pci_id_t const pci_vid_185B[] = {
{0x185B, 0xFFFF, 0xFFFF, 0xFFFF, "Compro Technology, Inc.(0x185B)"},
{0x185B, 0x1489, 0xFFFF, 0xFFFF, "VideoMate Vista T100(0x1489)"},
}; /* pci_vid_185B[] */
-pci_id_t pci_vid_185F[] = {
+static pci_id_t const pci_vid_185F[] = {
{0x185F, 0xFFFF, 0xFFFF, 0xFFFF, "Wistron NeWeb Corp.(0x185F)"},
}; /* pci_vid_185F[] */
-pci_id_t pci_vid_1864[] = {
+static pci_id_t const pci_vid_1864[] = {
{0x1864, 0xFFFF, 0xFFFF, 0xFFFF, "SilverBack(0x1864)"},
{0x1864, 0x2110, 0xFFFF, 0xFFFF, "ISNAP 2110(0x2110)"},
}; /* pci_vid_1864[] */
-pci_id_t pci_vid_1867[] = {
+static pci_id_t const pci_vid_1867[] = {
{0x1867, 0xFFFF, 0xFFFF, 0xFFFF, "Topspin Communications(0x1867)"},
{0x1867, 0x5A44, 0xFFFF, 0xFFFF, "MT23108 InfiniHost HCA(0x5A44)"},
{0x1867, 0x5A45, 0xFFFF, 0xFFFF, "MT23108 InfiniHost HCA flash recovery(0x5A45)"},
@@ -28161,7 +28281,7 @@ pci_id_t pci_vid_1867[] = {
{0x1867, 0x6282, 0xFFFF, 0xFFFF, "MT25208 InfiniHost III Ex(0x6282)"},
}; /* pci_vid_1867[] */
-pci_id_t pci_vid_186C[] = {
+static pci_id_t const pci_vid_186C[] = {
{0x186C, 0xFFFF, 0xFFFF, 0xFFFF, "Humusoft, s.r.o.(0x186C)"},
{0x186C, 0x0612, 0xFFFF, 0xFFFF, "AD612 Data Acquisition Device(0x0612)"},
{0x186C, 0x0614, 0xFFFF, 0xFFFF, "MF614 Multifunction I/O Card(0x0614)"},
@@ -28172,28 +28292,28 @@ pci_id_t pci_vid_186C[] = {
{0x186C, 0x0644, 0xFFFF, 0xFFFF, "MF644 Multifunction I/O Thb Card(0x0644)"},
}; /* pci_vid_186C[] */
-pci_id_t pci_vid_186F[] = {
+static pci_id_t const pci_vid_186F[] = {
{0x186F, 0xFFFF, 0xFFFF, 0xFFFF, "WiNRADiO Communications(0x186F)"},
}; /* pci_vid_186F[] */
-pci_id_t pci_vid_1876[] = {
+static pci_id_t const pci_vid_1876[] = {
{0x1876, 0xFFFF, 0xFFFF, 0xFFFF, "L-3 Communications(0x1876)"},
{0x1876, 0xA101, 0xFFFF, 0xFFFF, "VigraWATCH PCI(0xA101)"},
{0x1876, 0xA102, 0xFFFF, 0xFFFF, "VigraWATCH PMC(0xA102)"},
{0x1876, 0xA103, 0xFFFF, 0xFFFF, "Vigra I/O(0xA103)"},
}; /* pci_vid_1876[] */
-pci_id_t pci_vid_187E[] = {
+static pci_id_t const pci_vid_187E[] = {
{0x187E, 0xFFFF, 0xFFFF, 0xFFFF, "ZyXEL Communications Corporation(0x187E)"},
{0x187E, 0x3403, 0xFFFF, 0xFFFF, "ZyAir G-110 802.11g(0x3403)"},
{0x187E, 0x340E, 0xFFFF, 0xFFFF, "M-302 802.11g XtremeMIMO(0x340E)"},
}; /* pci_vid_187E[] */
-pci_id_t pci_vid_1885[] = {
+static pci_id_t const pci_vid_1885[] = {
{0x1885, 0xFFFF, 0xFFFF, 0xFFFF, "Avvida Systems Inc.(0x1885)"},
}; /* pci_vid_1885[] */
-pci_id_t pci_vid_1888[] = {
+static pci_id_t const pci_vid_1888[] = {
{0x1888, 0xFFFF, 0xFFFF, 0xFFFF, "Varisys Ltd(0x1888)"},
{0x1888, 0x0301, 0xFFFF, 0xFFFF, "VMFX1 FPGA PMC module(0x0301)"},
{0x1888, 0x0601, 0xFFFF, 0xFFFF, "VSM2 dual PMC carrier(0x0601)"},
@@ -28201,19 +28321,19 @@ pci_id_t pci_vid_1888[] = {
{0x1888, 0x0720, 0xFFFF, 0xFFFF, "VS24x series PowerPC PCI board(0x0720)"},
}; /* pci_vid_1888[] */
-pci_id_t pci_vid_188A[] = {
+static pci_id_t const pci_vid_188A[] = {
{0x188A, 0xFFFF, 0xFFFF, 0xFFFF, "Ample Communications, Inc(0x188A)"},
}; /* pci_vid_188A[] */
-pci_id_t pci_vid_1890[] = {
+static pci_id_t const pci_vid_1890[] = {
{0x1890, 0xFFFF, 0xFFFF, 0xFFFF, "Egenera, Inc.(0x1890)"},
}; /* pci_vid_1890[] */
-pci_id_t pci_vid_1894[] = {
+static pci_id_t const pci_vid_1894[] = {
{0x1894, 0xFFFF, 0xFFFF, 0xFFFF, "KNC One(0x1894)"},
}; /* pci_vid_1894[] */
-pci_id_t pci_vid_1896[] = {
+static pci_id_t const pci_vid_1896[] = {
{0x1896, 0xFFFF, 0xFFFF, 0xFFFF, "B&B Electronics Manufacturing Company, Inc.(0x1896)"},
{0x1896, 0x4202, 0xFFFF, 0xFFFF, "MIport 3PCIU2 2-port Serial(0x4202)"},
{0x1896, 0x4204, 0xFFFF, 0xFFFF, "MIport 3PCIU4 4-port Serial(0x4204)"},
@@ -28225,24 +28345,24 @@ pci_id_t pci_vid_1896[] = {
{0x1896, 0xBB11, 0xFFFF, 0xFFFF, "3PCIO1 1-Port Isolated Serial(0xBB11)"},
}; /* pci_vid_1896[] */
-pci_id_t pci_vid_1897[] = {
+static pci_id_t const pci_vid_1897[] = {
{0x1897, 0xFFFF, 0xFFFF, 0xFFFF, "AMtek(0x1897)"},
}; /* pci_vid_1897[] */
-pci_id_t pci_vid_18A1[] = {
+static pci_id_t const pci_vid_18A1[] = {
{0x18A1, 0xFFFF, 0xFFFF, 0xFFFF, "Astute Networks Inc.(0x18A1)"},
}; /* pci_vid_18A1[] */
-pci_id_t pci_vid_18A2[] = {
+static pci_id_t const pci_vid_18A2[] = {
{0x18A2, 0xFFFF, 0xFFFF, 0xFFFF, "Stretch Inc.(0x18A2)"},
{0x18A2, 0x0002, 0xFFFF, 0xFFFF, "VRC6016 16-Channel PCIe DVR Card(0x0002)"},
}; /* pci_vid_18A2[] */
-pci_id_t pci_vid_18A3[] = {
+static pci_id_t const pci_vid_18A3[] = {
{0x18A3, 0xFFFF, 0xFFFF, 0xFFFF, "AT&T(0x18A3)"},
}; /* pci_vid_18A3[] */
-pci_id_t pci_vid_18AC[] = {
+static pci_id_t const pci_vid_18AC[] = {
{0x18AC, 0xFFFF, 0xFFFF, 0xFFFF, "DViCO Corporation(0x18AC)"},
{0x18AC, 0xD500, 0xFFFF, 0xFFFF, "FusionHDTV 5(0xD500)"},
{0x18AC, 0xD800, 0xFFFF, 0xFFFF, "FusionHDTV 3 Gold(0xD800)"},
@@ -28253,30 +28373,30 @@ pci_id_t pci_vid_18AC[] = {
{0x18AC, 0xDB78, 0xFFFF, 0xFFFF, "FusionHDTV DVB-T Dual Express(0xDB78)"},
}; /* pci_vid_18AC[] */
-pci_id_t pci_vid_18B8[] = {
+static pci_id_t const pci_vid_18B8[] = {
{0x18B8, 0xFFFF, 0xFFFF, 0xFFFF, "Ammasso(0x18B8)"},
{0x18B8, 0xB001, 0xFFFF, 0xFFFF, "AMSO 1100 iWARP/RDMA Gigabit Ethernet Coprocessor(0xB001)"},
}; /* pci_vid_18B8[] */
-pci_id_t pci_vid_18BC[] = {
+static pci_id_t const pci_vid_18BC[] = {
{0x18BC, 0xFFFF, 0xFFFF, 0xFFFF, "GeCube Technologies, Inc.(0x18BC)"},
}; /* pci_vid_18BC[] */
-pci_id_t pci_vid_18C3[] = {
+static pci_id_t const pci_vid_18C3[] = {
{0x18C3, 0xFFFF, 0xFFFF, 0xFFFF, "Micronas Semiconductor Holding AG(0x18C3)"},
{0x18C3, 0x0720, 0xFFFF, 0xFFFF, "nGene PCI-Express Multimedia Controller(0x0720)"},
{0x18C3, 0x0720, 0x1461, 0x032E, "Hybrid M779 PCI-E(0x1461-0x032E)"},
}; /* pci_vid_18C3[] */
-pci_id_t pci_vid_18C8[] = {
+static pci_id_t const pci_vid_18C8[] = {
{0x18C8, 0xFFFF, 0xFFFF, 0xFFFF, "Cray Inc(0x18C8)"},
}; /* pci_vid_18C8[] */
-pci_id_t pci_vid_18C9[] = {
+static pci_id_t const pci_vid_18C9[] = {
{0x18C9, 0xFFFF, 0xFFFF, 0xFFFF, "ARVOO Engineering BV(0x18C9)"},
}; /* pci_vid_18C9[] */
-pci_id_t pci_vid_18CA[] = {
+static pci_id_t const pci_vid_18CA[] = {
{0x18CA, 0xFFFF, 0xFFFF, 0xFFFF, "XGI Technology Inc. (eXtreme Graphics Innovation)(0x18CA)"},
{0x18CA, 0x0020, 0xFFFF, 0xFFFF, "Z7/Z9 (XG20 core)(0x0020)"},
{0x18CA, 0x0021, 0xFFFF, 0xFFFF, "Z9s/Z9m (XG21 core)(0x0021)"},
@@ -28285,38 +28405,38 @@ pci_id_t pci_vid_18CA[] = {
{0x18CA, 0x0047, 0xFFFF, 0xFFFF, "Volari 8300 (chip: XP10, codename: XG47)(0x0047)"},
}; /* pci_vid_18CA[] */
-pci_id_t pci_vid_18D2[] = {
+static pci_id_t const pci_vid_18D2[] = {
{0x18D2, 0xFFFF, 0xFFFF, 0xFFFF, "Sitecom Europe BV (Wrong ID)(0x18D2)"},
{0x18D2, 0x3069, 0xFFFF, 0xFFFF, "DC-105v2 ISDN controller(0x3069)"},
}; /* pci_vid_18D2[] */
-pci_id_t pci_vid_18D4[] = {
+static pci_id_t const pci_vid_18D4[] = {
{0x18D4, 0xFFFF, 0xFFFF, 0xFFFF, "Celestica(0x18D4)"},
}; /* pci_vid_18D4[] */
-pci_id_t pci_vid_18D8[] = {
+static pci_id_t const pci_vid_18D8[] = {
{0x18D8, 0xFFFF, 0xFFFF, 0xFFFF, "Dialogue Technology Corp.(0x18D8)"},
}; /* pci_vid_18D8[] */
-pci_id_t pci_vid_18DD[] = {
+static pci_id_t const pci_vid_18DD[] = {
{0x18DD, 0xFFFF, 0xFFFF, 0xFFFF, "Artimi Inc(0x18DD)"},
{0x18DD, 0x4C6F, 0xFFFF, 0xFFFF, "Artimi RTMI-100 UWB adapter(0x4C6F)"},
}; /* pci_vid_18DD[] */
-pci_id_t pci_vid_18DF[] = {
+static pci_id_t const pci_vid_18DF[] = {
{0x18DF, 0xFFFF, 0xFFFF, 0xFFFF, "LeWiz Communications(0x18DF)"},
}; /* pci_vid_18DF[] */
-pci_id_t pci_vid_18E6[] = {
+static pci_id_t const pci_vid_18E6[] = {
{0x18E6, 0xFFFF, 0xFFFF, 0xFFFF, "MPL AG(0x18E6)"},
{0x18E6, 0x0001, 0xFFFF, 0xFFFF, "OSCI [Octal Serial Communication Interface](0x0001)"},
}; /* pci_vid_18E6[] */
-pci_id_t pci_vid_18EB[] = {
+static pci_id_t const pci_vid_18EB[] = {
{0x18EB, 0xFFFF, 0xFFFF, 0xFFFF, "Advance Multimedia Internet Technology, Inc.(0x18EB)"},
}; /* pci_vid_18EB[] */
-pci_id_t pci_vid_18EC[] = {
+static pci_id_t const pci_vid_18EC[] = {
{0x18EC, 0xFFFF, 0xFFFF, 0xFFFF, "Cesnet, z.s.p.o.(0x18EC)"},
{0x18EC, 0x6D05, 0xFFFF, 0xFFFF, "ML555(0x6D05)"},
{0x18EC, 0x6D05, 0x18EC, 0x0100, "NIC (ethernet interfaces)(0x18EC-0x0100)"},
@@ -28369,15 +28489,15 @@ pci_id_t pci_vid_18EC[] = {
{0x18EC, 0xC400, 0xFFFF, 0xFFFF, "COMBO-400G1(0xC400)"},
}; /* pci_vid_18EC[] */
-pci_id_t pci_vid_18EE[] = {
+static pci_id_t const pci_vid_18EE[] = {
{0x18EE, 0xFFFF, 0xFFFF, 0xFFFF, "Chenming Mold Ind. Corp.(0x18EE)"},
}; /* pci_vid_18EE[] */
-pci_id_t pci_vid_18F1[] = {
+static pci_id_t const pci_vid_18F1[] = {
{0x18F1, 0xFFFF, 0xFFFF, 0xFFFF, "Spectrum GmbH(0x18F1)"},
}; /* pci_vid_18F1[] */
-pci_id_t pci_vid_18F4[] = {
+static pci_id_t const pci_vid_18F4[] = {
{0x18F4, 0xFFFF, 0xFFFF, 0xFFFF, "Napatech A/S(0x18F4)"},
{0x18F4, 0x0031, 0xFFFF, 0xFFFF, "NT20X Network Adapter(0x0031)"},
{0x18F4, 0x0051, 0xFFFF, 0xFFFF, "NT20X Capture Card(0x0051)"},
@@ -28411,7 +28531,7 @@ pci_id_t pci_vid_18F4[] = {
{0x18F4, 0x0225, 0xFFFF, 0xFFFF, "NT40A11 Network Adapter(0x0225)"},
}; /* pci_vid_18F4[] */
-pci_id_t pci_vid_18F6[] = {
+static pci_id_t const pci_vid_18F6[] = {
{0x18F6, 0xFFFF, 0xFFFF, 0xFFFF, "NextIO(0x18F6)"},
{0x18F6, 0x1000, 0xFFFF, 0xFFFF, "[Nexsis] Switch Virtual P2P PCIe Bridge(0x1000)"},
{0x18F6, 0x1001, 0xFFFF, 0xFFFF, "[Texsis] Switch Virtual P2P PCIe Bridge(0x1001)"},
@@ -28421,7 +28541,7 @@ pci_id_t pci_vid_18F6[] = {
{0x18F6, 0x2001, 0xFFFF, 0xFFFF, "[Texsis] Switch Integrated Mgmt. Endpoint(0x2001)"},
}; /* pci_vid_18F6[] */
-pci_id_t pci_vid_18F7[] = {
+static pci_id_t const pci_vid_18F7[] = {
{0x18F7, 0xFFFF, 0xFFFF, 0xFFFF, "Commtech, Inc.(0x18F7)"},
{0x18F7, 0x0001, 0xFFFF, 0xFFFF, "ESCC-PCI-335 Serial PCI Adapter [Fastcom](0x0001)"},
{0x18F7, 0x0002, 0xFFFF, 0xFFFF, "422/4-PCI-335 Serial PCI Adapter [Fastcom](0x0002)"},
@@ -28454,21 +28574,21 @@ pci_id_t pci_vid_18F7[] = {
{0x18F7, 0x0027, 0xFFFF, 0xFFFF, "FSCC/4 Serial PCIe Adapter [Fastcom](0x0027)"},
}; /* pci_vid_18F7[] */
-pci_id_t pci_vid_18FB[] = {
+static pci_id_t const pci_vid_18FB[] = {
{0x18FB, 0xFFFF, 0xFFFF, 0xFFFF, "Resilience Corporation(0x18FB)"},
}; /* pci_vid_18FB[] */
-pci_id_t pci_vid_1904[] = {
+static pci_id_t const pci_vid_1904[] = {
{0x1904, 0xFFFF, 0xFFFF, 0xFFFF, "Hangzhou Silan Microelectronics Co., Ltd.(0x1904)"},
{0x1904, 0x2031, 0xFFFF, 0xFFFF, "SC92031 PCI Fast Ethernet Adapter(0x2031)"},
{0x1904, 0x8139, 0xFFFF, 0xFFFF, "RTL8139D [Realtek] PCI 10/100BaseTX ethernet adaptor(0x8139)"},
}; /* pci_vid_1904[] */
-pci_id_t pci_vid_1905[] = {
+static pci_id_t const pci_vid_1905[] = {
{0x1905, 0xFFFF, 0xFFFF, 0xFFFF, "Micronas USA, Inc.(0x1905)"},
}; /* pci_vid_1905[] */
-pci_id_t pci_vid_1912[] = {
+static pci_id_t const pci_vid_1912[] = {
{0x1912, 0xFFFF, 0xFFFF, 0xFFFF, "Renesas Technology Corp.(0x1912)"},
{0x1912, 0x0002, 0xFFFF, 0xFFFF, "SH7780 PCI Controller (PCIC)(0x0002)"},
{0x1912, 0x0011, 0xFFFF, 0xFFFF, "SH7757 PCIe End-Point [PBI](0x0011)"},
@@ -28481,11 +28601,11 @@ pci_id_t pci_vid_1912[] = {
{0x1912, 0x001D, 0xFFFF, 0xFFFF, "SH7758 PCIe Switch [PS](0x001D)"},
}; /* pci_vid_1912[] */
-pci_id_t pci_vid_1919[] = {
+static pci_id_t const pci_vid_1919[] = {
{0x1919, 0xFFFF, 0xFFFF, 0xFFFF, "Soltek Computer Inc.(0x1919)"},
}; /* pci_vid_1919[] */
-pci_id_t pci_vid_1923[] = {
+static pci_id_t const pci_vid_1923[] = {
{0x1923, 0xFFFF, 0xFFFF, 0xFFFF, "Sangoma Technologies Corp.(0x1923)"},
{0x1923, 0x0040, 0xFFFF, 0xFFFF, "A200/Remora FXO/FXS Analog AFT card(0x0040)"},
{0x1923, 0x0100, 0xFFFF, 0xFFFF, "A104d QUAD T1/E1 AFT card(0x0100)"},
@@ -28493,7 +28613,7 @@ pci_id_t pci_vid_1923[] = {
{0x1923, 0x0400, 0xFFFF, 0xFFFF, "A104u Quad T1/E1 AFT(0x0400)"},
}; /* pci_vid_1923[] */
-pci_id_t pci_vid_1924[] = {
+static pci_id_t const pci_vid_1924[] = {
{0x1924, 0xFFFF, 0xFFFF, 0xFFFF, "Solarflare Communications(0x1924)"},
{0x1924, 0x0703, 0xFFFF, 0xFFFF, "SFC4000 rev A net [Solarstorm](0x0703)"},
{0x1924, 0x0703, 0x10B8, 0x0102, "SMC10GPCIe-10BT (A2) [TigerCard](0x10B8-0x0102)"},
@@ -28625,33 +28745,33 @@ pci_id_t pci_vid_1924[] = {
{0x1924, 0xC101, 0xFFFF, 0xFFFF, "EF1-21022T [EtherFabric](0xC101)"},
}; /* pci_vid_1924[] */
-pci_id_t pci_vid_192A[] = {
+static pci_id_t const pci_vid_192A[] = {
{0x192A, 0xFFFF, 0xFFFF, 0xFFFF, "BiTMICRO Networks Inc.(0x192A)"},
{0x192A, 0x0008, 0xFFFF, 0xFFFF, "RAMPART(0x0008)"},
}; /* pci_vid_192A[] */
-pci_id_t pci_vid_192E[] = {
+static pci_id_t const pci_vid_192E[] = {
{0x192E, 0xFFFF, 0xFFFF, 0xFFFF, "TransDimension(0x192E)"},
}; /* pci_vid_192E[] */
-pci_id_t pci_vid_1931[] = {
+static pci_id_t const pci_vid_1931[] = {
{0x1931, 0xFFFF, 0xFFFF, 0xFFFF, "Option N.V.(0x1931)"},
{0x1931, 0x000C, 0xFFFF, 0xFFFF, "Qualcomm MSM6275 UMTS chip(0x000C)"},
}; /* pci_vid_1931[] */
-pci_id_t pci_vid_1932[] = {
+static pci_id_t const pci_vid_1932[] = {
{0x1932, 0xFFFF, 0xFFFF, 0xFFFF, "DiBcom(0x1932)"},
}; /* pci_vid_1932[] */
-pci_id_t pci_vid_193C[] = {
+static pci_id_t const pci_vid_193C[] = {
{0x193C, 0xFFFF, 0xFFFF, 0xFFFF, "MAXIM Integrated Products(0x193C)"},
}; /* pci_vid_193C[] */
-pci_id_t pci_vid_193D[] = {
+static pci_id_t const pci_vid_193D[] = {
{0x193D, 0xFFFF, 0xFFFF, 0xFFFF, "New H3C Technologies Co., Ltd.(0x193D)"},
}; /* pci_vid_193D[] */
-pci_id_t pci_vid_193F[] = {
+static pci_id_t const pci_vid_193F[] = {
{0x193F, 0xFFFF, 0xFFFF, 0xFFFF, "AHA Products Group(0x193F)"},
{0x193F, 0x0001, 0xFFFF, 0xFFFF, "AHA36x-PCIX(0x0001)"},
{0x193F, 0x0360, 0xFFFF, 0xFFFF, "AHA360-PCIe(0x0360)"},
@@ -28667,22 +28787,22 @@ pci_id_t pci_vid_193F[] = {
{0x193F, 0x6102, 0xFFFF, 0xFFFF, "AHA6102(0x6102)"},
}; /* pci_vid_193F[] */
-pci_id_t pci_vid_1942[] = {
+static pci_id_t const pci_vid_1942[] = {
{0x1942, 0xFFFF, 0xFFFF, 0xFFFF, "ClearSpeed Technology plc(0x1942)"},
{0x1942, 0xE511, 0xFFFF, 0xFFFF, "Advance X620 accelerator card(0xE511)"},
{0x1942, 0xE521, 0xFFFF, 0xFFFF, "Advance e620 accelerator card(0xE521)"},
}; /* pci_vid_1942[] */
-pci_id_t pci_vid_1947[] = {
+static pci_id_t const pci_vid_1947[] = {
{0x1947, 0xFFFF, 0xFFFF, 0xFFFF, "C-guys, Inc.(0x1947)"},
{0x1947, 0x4743, 0xFFFF, 0xFFFF, "CG200 Dual SD/SDIO Host controller device(0x4743)"},
}; /* pci_vid_1947[] */
-pci_id_t pci_vid_1948[] = {
+static pci_id_t const pci_vid_1948[] = {
{0x1948, 0xFFFF, 0xFFFF, 0xFFFF, "Alpha Networks Inc.(0x1948)"},
}; /* pci_vid_1948[] */
-pci_id_t pci_vid_194A[] = {
+static pci_id_t const pci_vid_194A[] = {
{0x194A, 0xFFFF, 0xFFFF, 0xFFFF, "DapTechnology B.V.(0x194A)"},
{0x194A, 0x1111, 0xFFFF, 0xFFFF, "FireSpy3850(0x1111)"},
{0x194A, 0x1112, 0xFFFF, 0xFFFF, "FireSpy450b(0x1112)"},
@@ -28695,11 +28815,11 @@ pci_id_t pci_vid_194A[] = {
{0x194A, 0x1203, 0xFFFF, 0xFFFF, "FireTrac 3460bT (fallback firmware)(0x1203)"},
}; /* pci_vid_194A[] */
-pci_id_t pci_vid_1954[] = {
+static pci_id_t const pci_vid_1954[] = {
{0x1954, 0xFFFF, 0xFFFF, 0xFFFF, "One Stop Systems, Inc.(0x1954)"},
}; /* pci_vid_1954[] */
-pci_id_t pci_vid_1957[] = {
+static pci_id_t const pci_vid_1957[] = {
{0x1957, 0xFFFF, 0xFFFF, 0xFFFF, "Freescale Semiconductor Inc(0x1957)"},
{0x1957, 0x0012, 0xFFFF, 0xFFFF, "MPC8548E(0x0012)"},
{0x1957, 0x0013, 0xFFFF, 0xFFFF, "MPC8548(0x0013)"},
@@ -28788,11 +28908,11 @@ pci_id_t pci_vid_1957[] = {
{0x1957, 0xFC03, 0xFFFF, 0xFFFF, "CFI(0xFC03)"},
}; /* pci_vid_1957[] */
-pci_id_t pci_vid_1958[] = {
+static pci_id_t const pci_vid_1958[] = {
{0x1958, 0xFFFF, 0xFFFF, 0xFFFF, "Faster Technology, LLC.(0x1958)"},
}; /* pci_vid_1958[] */
-pci_id_t pci_vid_1959[] = {
+static pci_id_t const pci_vid_1959[] = {
{0x1959, 0xFFFF, 0xFFFF, 0xFFFF, "PA Semi, Inc(0x1959)"},
{0x1959, 0xA000, 0xFFFF, 0xFFFF, "PA6T Core(0xA000)"},
{0x1959, 0xA001, 0xFFFF, 0xFFFF, "PWRficient Host Bridge(0xA001)"},
@@ -28810,7 +28930,7 @@ pci_id_t pci_vid_1959[] = {
{0x1959, 0xA00D, 0xFFFF, 0xFFFF, "PWRficient PCI-Express Internal Endpoint(0xA00D)"},
}; /* pci_vid_1959[] */
-pci_id_t pci_vid_1966[] = {
+static pci_id_t const pci_vid_1966[] = {
{0x1966, 0xFFFF, 0xFFFF, 0xFFFF, "Orad Hi-Tec Systems(0x1966)"},
{0x1966, 0x1975, 0xFFFF, 0xFFFF, "DVG64 family(0x1975)"},
{0x1966, 0x1977, 0xFFFF, 0xFFFF, "DVG128 family(0x1977)"},
@@ -28821,7 +28941,7 @@ pci_id_t pci_vid_1966[] = {
{0x1966, 0x1980, 0x1234, 0x3410, "UHD2(0x1234-0x3410)"},
}; /* pci_vid_1966[] */
-pci_id_t pci_vid_1969[] = {
+static pci_id_t const pci_vid_1969[] = {
{0x1969, 0xFFFF, 0xFFFF, 0xFFFF, "Qualcomm Atheros(0x1969)"},
{0x1969, 0x1026, 0xFFFF, 0xFFFF, "AR8121/AR8113/AR8114 Gigabit or Fast Ethernet(0x1026)"},
{0x1969, 0x1026, 0x1043, 0x8304, "P5KPL-CM Motherboard(0x1043-0x8304)"},
@@ -28841,37 +28961,39 @@ pci_id_t pci_vid_1969[] = {
{0x1969, 0x1091, 0x1043, 0x1477, "N56VZ(0x1043-0x1477)"},
{0x1969, 0x10A0, 0xFFFF, 0xFFFF, "QCA8172 Fast Ethernet(0x10A0)"},
{0x1969, 0x10A1, 0xFFFF, 0xFFFF, "QCA8171 Gigabit Ethernet(0x10A1)"},
+{0x1969, 0x2010, 0xFFFF, 0xFFFF, "QCA8175 card reader controller(0x2010)"},
{0x1969, 0x2048, 0xFFFF, 0xFFFF, "Attansic L2 Fast Ethernet(0x2048)"},
{0x1969, 0x2060, 0xFFFF, 0xFFFF, "AR8152 v1.1 Fast Ethernet(0x2060)"},
{0x1969, 0x2062, 0xFFFF, 0xFFFF, "AR8152 v2.0 Fast Ethernet(0x2062)"},
{0x1969, 0x2062, 0x1043, 0x8468, "Eee PC 1015PX(0x1043-0x8468)"},
+{0x1969, 0x3010, 0xFFFF, 0xFFFF, "QCA8175 SD controller(0x3010)"},
{0x1969, 0xE091, 0xFFFF, 0xFFFF, "Killer E220x Gigabit Ethernet Controller(0xE091)"},
{0x1969, 0xE0A1, 0xFFFF, 0xFFFF, "Killer E2400 Gigabit Ethernet Controller(0xE0A1)"},
{0x1969, 0xE0B1, 0xFFFF, 0xFFFF, "Killer E2500 Gigabit Ethernet Controller(0xE0B1)"},
}; /* pci_vid_1969[] */
-pci_id_t pci_vid_196A[] = {
+static pci_id_t const pci_vid_196A[] = {
{0x196A, 0xFFFF, 0xFFFF, 0xFFFF, "Sensory Networks Inc.(0x196A)"},
{0x196A, 0x0101, 0xFFFF, 0xFFFF, "NodalCore C-1000 Content Classification Accelerator(0x0101)"},
{0x196A, 0x0102, 0xFFFF, 0xFFFF, "NodalCore C-2000 Content Classification Accelerator(0x0102)"},
{0x196A, 0x0105, 0xFFFF, 0xFFFF, "NodalCore C-3000 Content Classification Accelerator(0x0105)"},
}; /* pci_vid_196A[] */
-pci_id_t pci_vid_196D[] = {
+static pci_id_t const pci_vid_196D[] = {
{0x196D, 0xFFFF, 0xFFFF, 0xFFFF, "Club-3D BV(0x196D)"},
}; /* pci_vid_196D[] */
-pci_id_t pci_vid_196E[] = {
+static pci_id_t const pci_vid_196E[] = {
{0x196E, 0xFFFF, 0xFFFF, 0xFFFF, "PNY(0x196E)"},
}; /* pci_vid_196E[] */
-pci_id_t pci_vid_1971[] = {
+static pci_id_t const pci_vid_1971[] = {
{0x1971, 0xFFFF, 0xFFFF, 0xFFFF, "AGEIA Technologies, Inc.(0x1971)"},
{0x1971, 0x1011, 0xFFFF, 0xFFFF, "Physics Processing Unit [PhysX](0x1011)"},
{0x1971, 0x1011, 0x1043, 0x0001, "PhysX P1(0x1043-0x0001)"},
}; /* pci_vid_1971[] */
-pci_id_t pci_vid_1974[] = {
+static pci_id_t const pci_vid_1974[] = {
{0x1974, 0xFFFF, 0xFFFF, 0xFFFF, "Star Electronics GmbH & Co. KG(0x1974)"},
{0x1974, 0x0009, 0xFFFF, 0xFFFF, "FlexCard PMC-II(0x0009)"},
{0x1974, 0x0011, 0xFFFF, 0xFFFF, "FlexCard PMC-II Ethernet(0x0011)"},
@@ -28881,15 +29003,15 @@ pci_id_t pci_vid_1974[] = {
{0x1974, 0x001B, 0xFFFF, 0xFFFF, "FlexCard PCIe Ethernet(0x001B)"},
}; /* pci_vid_1974[] */
-pci_id_t pci_vid_1976[] = {
+static pci_id_t const pci_vid_1976[] = {
{0x1976, 0xFFFF, 0xFFFF, 0xFFFF, "TRENDnet(0x1976)"},
}; /* pci_vid_1976[] */
-pci_id_t pci_vid_1977[] = {
+static pci_id_t const pci_vid_1977[] = {
{0x1977, 0xFFFF, 0xFFFF, 0xFFFF, "Parsec(0x1977)"},
}; /* pci_vid_1977[] */
-pci_id_t pci_vid_197B[] = {
+static pci_id_t const pci_vid_197B[] = {
{0x197B, 0xFFFF, 0xFFFF, 0xFFFF, "JMicron Technology Corp.(0x197B)"},
{0x197B, 0x0250, 0xFFFF, 0xFFFF, "JMC250 PCI Express Gigabit Ethernet Controller(0x0250)"},
{0x197B, 0x0260, 0xFFFF, 0xFFFF, "JMC260 PCI Express Fast Ethernet Controller(0x0260)"},
@@ -28924,16 +29046,16 @@ pci_id_t pci_vid_197B[] = {
{0x197B, 0x2394, 0xFFFF, 0xFFFF, "xD Host Controller(0x2394)"},
}; /* pci_vid_197B[] */
-pci_id_t pci_vid_1982[] = {
+static pci_id_t const pci_vid_1982[] = {
{0x1982, 0xFFFF, 0xFFFF, 0xFFFF, "Distant Early Warning Communications Inc(0x1982)"},
{0x1982, 0x1600, 0xFFFF, 0xFFFF, "OX16C954 HOST-A(0x1600)"},
{0x1982, 0x16FF, 0xFFFF, 0xFFFF, "OX16C954 HOST-B(0x16FF)"},
}; /* pci_vid_1982[] */
-pci_id_t pci_vid_1987[] = {
+static pci_id_t const pci_vid_1987[] = {
{0x1987, 0xFFFF, 0xFFFF, 0xFFFF, "Phison Electronics Corporation(0x1987)"},
{0x1987, 0x5007, 0xFFFF, 0xFFFF, "E7 NVMe Controller(0x5007)"},
-{0x1987, 0x5008, 0xFFFF, 0xFFFF, "E8 PCIe3 NVMe Controller(0x5008)"},
+{0x1987, 0x5008, 0xFFFF, 0xFFFF, "E8 PCIe3 x2 NVMe Controller(0x5008)"},
{0x1987, 0x5012, 0xFFFF, 0xFFFF, "E12 NVMe Controller(0x5012)"},
{0x1987, 0x5013, 0xFFFF, 0xFFFF, "PS5013-E13 PCIe3 NVMe Controller (DRAM-less)(0x5013)"},
{0x1987, 0x5015, 0xFFFF, 0xFFFF, "PS5015-E15 PCIe3 NVMe Controller (DRAM-less)(0x5015)"},
@@ -28942,44 +29064,45 @@ pci_id_t pci_vid_1987[] = {
{0x1987, 0x5019, 0xFFFF, 0xFFFF, "PS5019-E19 PCIe4 NVMe Controller (DRAM-less)(0x5019)"},
{0x1987, 0x5021, 0xFFFF, 0xFFFF, "PS5021-E21 PCIe4 NVMe Controller (DRAM-less)(0x5021)"},
{0x1987, 0x5026, 0xFFFF, 0xFFFF, "PS5026-E26 PCIe5 NVMe Controller(0x5026)"},
+{0x1987, 0x5027, 0xFFFF, 0xFFFF, "PS5027-E27T PCIe4 NVMe Controller (DRAM-less)(0x5027)"},
}; /* pci_vid_1987[] */
-pci_id_t pci_vid_1989[] = {
+static pci_id_t const pci_vid_1989[] = {
{0x1989, 0xFFFF, 0xFFFF, 0xFFFF, "Montilio Inc.(0x1989)"},
{0x1989, 0x0001, 0xFFFF, 0xFFFF, "RapidFile Bridge(0x0001)"},
{0x1989, 0x8001, 0xFFFF, 0xFFFF, "RapidFile(0x8001)"},
}; /* pci_vid_1989[] */
-pci_id_t pci_vid_198A[] = {
+static pci_id_t const pci_vid_198A[] = {
{0x198A, 0xFFFF, 0xFFFF, 0xFFFF, "Nallatech Ltd.(0x198A)"},
}; /* pci_vid_198A[] */
-pci_id_t pci_vid_1993[] = {
+static pci_id_t const pci_vid_1993[] = {
{0x1993, 0xFFFF, 0xFFFF, 0xFFFF, "Innominate Security Technologies AG(0x1993)"},
}; /* pci_vid_1993[] */
-pci_id_t pci_vid_1999[] = {
+static pci_id_t const pci_vid_1999[] = {
{0x1999, 0xFFFF, 0xFFFF, 0xFFFF, "A-Logics(0x1999)"},
{0x1999, 0xA900, 0xFFFF, 0xFFFF, "AM-7209 Video Processor(0xA900)"},
}; /* pci_vid_1999[] */
-pci_id_t pci_vid_199A[] = {
+static pci_id_t const pci_vid_199A[] = {
{0x199A, 0xFFFF, 0xFFFF, 0xFFFF, "Pulse-LINK, Inc.(0x199A)"},
}; /* pci_vid_199A[] */
-pci_id_t pci_vid_199D[] = {
+static pci_id_t const pci_vid_199D[] = {
{0x199D, 0xFFFF, 0xFFFF, 0xFFFF, "Xsigo Systems(0x199D)"},
{0x199D, 0x8209, 0xFFFF, 0xFFFF, "Virtual NIC Device(0x8209)"},
{0x199D, 0x890A, 0xFFFF, 0xFFFF, "Virtual HBA Device(0x890A)"},
}; /* pci_vid_199D[] */
-pci_id_t pci_vid_199F[] = {
+static pci_id_t const pci_vid_199F[] = {
{0x199F, 0xFFFF, 0xFFFF, 0xFFFF, "Auvitek(0x199F)"},
{0x199F, 0x8501, 0xFFFF, 0xFFFF, "AU85X1 PCI REV1.1(0x8501)"},
{0x199F, 0x8521, 0xFFFF, 0xFFFF, "AU8521 TV card(0x8521)"},
}; /* pci_vid_199F[] */
-pci_id_t pci_vid_19A2[] = {
+static pci_id_t const pci_vid_19A2[] = {
{0x19A2, 0xFFFF, 0xFFFF, 0xFFFF, "Emulex Corporation(0x19A2)"},
{0x19A2, 0x0120, 0xFFFF, 0xFFFF, "x1 PCIe Gen2 Bridge[Pilot4](0x0120)"},
{0x19A2, 0x0200, 0xFFFF, 0xFFFF, "BladeEngine 10Gb PCI-E iSCSI adapter(0x0200)"},
@@ -29016,62 +29139,62 @@ pci_id_t pci_vid_19A2[] = {
{0x19A2, 0x0800, 0xFFFF, 0xFFFF, "ServerView iRMC HTI(0x0800)"},
}; /* pci_vid_19A2[] */
-pci_id_t pci_vid_19A4[] = {
+static pci_id_t const pci_vid_19A4[] = {
{0x19A4, 0xFFFF, 0xFFFF, 0xFFFF, "Owl Cyber Defense Solutions(0x19A4)"},
}; /* pci_vid_19A4[] */
-pci_id_t pci_vid_19A8[] = {
+static pci_id_t const pci_vid_19A8[] = {
{0x19A8, 0xFFFF, 0xFFFF, 0xFFFF, "DAQDATA GmbH(0x19A8)"},
}; /* pci_vid_19A8[] */
-pci_id_t pci_vid_19AC[] = {
+static pci_id_t const pci_vid_19AC[] = {
{0x19AC, 0xFFFF, 0xFFFF, 0xFFFF, "Kasten Chase Applied Research(0x19AC)"},
{0x19AC, 0x0001, 0xFFFF, 0xFFFF, "ACA2400 Crypto Accelerator(0x0001)"},
}; /* pci_vid_19AC[] */
-pci_id_t pci_vid_19AE[] = {
+static pci_id_t const pci_vid_19AE[] = {
{0x19AE, 0xFFFF, 0xFFFF, 0xFFFF, "Progeny Systems Corporation(0x19AE)"},
{0x19AE, 0x0520, 0xFFFF, 0xFFFF, "4135 HFT Interface Controller(0x0520)"},
{0x19AE, 0x0521, 0xFFFF, 0xFFFF, "Decimator(0x0521)"},
}; /* pci_vid_19AE[] */
-pci_id_t pci_vid_19BA[] = {
+static pci_id_t const pci_vid_19BA[] = {
{0x19BA, 0xFFFF, 0xFFFF, 0xFFFF, "ZyXEL Communications Corp.(0x19BA)"},
{0x19BA, 0x2330, 0xFFFF, 0xFFFF, "ZyWALL Turbo Card(0x2330)"},
}; /* pci_vid_19BA[] */
-pci_id_t pci_vid_19C1[] = {
+static pci_id_t const pci_vid_19C1[] = {
{0x19C1, 0xFFFF, 0xFFFF, 0xFFFF, "Exegy Inc.(0x19C1)"},
}; /* pci_vid_19C1[] */
-pci_id_t pci_vid_19D1[] = {
+static pci_id_t const pci_vid_19D1[] = {
{0x19D1, 0xFFFF, 0xFFFF, 0xFFFF, "Motorola Expedience(0x19D1)"},
}; /* pci_vid_19D1[] */
-pci_id_t pci_vid_19D4[] = {
+static pci_id_t const pci_vid_19D4[] = {
{0x19D4, 0xFFFF, 0xFFFF, 0xFFFF, "Quixant Limited(0x19D4)"},
}; /* pci_vid_19D4[] */
-pci_id_t pci_vid_19DA[] = {
+static pci_id_t const pci_vid_19DA[] = {
{0x19DA, 0xFFFF, 0xFFFF, 0xFFFF, "ZOTAC International (MCO) Ltd.(0x19DA)"},
}; /* pci_vid_19DA[] */
-pci_id_t pci_vid_19DE[] = {
+static pci_id_t const pci_vid_19DE[] = {
{0x19DE, 0xFFFF, 0xFFFF, 0xFFFF, "Pico Computing(0x19DE)"},
}; /* pci_vid_19DE[] */
-pci_id_t pci_vid_19E2[] = {
+static pci_id_t const pci_vid_19E2[] = {
{0x19E2, 0xFFFF, 0xFFFF, 0xFFFF, "Vector Informatik GmbH(0x19E2)"},
}; /* pci_vid_19E2[] */
-pci_id_t pci_vid_19E3[] = {
+static pci_id_t const pci_vid_19E3[] = {
{0x19E3, 0xFFFF, 0xFFFF, 0xFFFF, "DDRdrive LLC(0x19E3)"},
{0x19E3, 0x5801, 0xFFFF, 0xFFFF, "DDRdrive X1(0x5801)"},
{0x19E3, 0x5808, 0xFFFF, 0xFFFF, "DDRdrive X8(0x5808)"},
{0x19E3, 0xDD52, 0xFFFF, 0xFFFF, "DDRdrive X1-30(0xDD52)"},
}; /* pci_vid_19E3[] */
-pci_id_t pci_vid_19E5[] = {
+static pci_id_t const pci_vid_19E5[] = {
{0x19E5, 0xFFFF, 0xFFFF, 0xFFFF, "Huawei Technologies Co., Ltd.(0x19E5)"},
{0x19E5, 0x0123, 0xFFFF, 0xFFFF, "ES3000 V3 NVMe PCIe SSD(0x0123)"},
{0x19E5, 0x0123, 0x19E5, 0x3022, "NVMe SSD ES3600P V3 800GB 2.5\" U.2(0x19E5-0x3022)"},
@@ -29173,7 +29296,7 @@ pci_id_t pci_vid_19E5[] = {
{0x19E5, 0xA25B, 0xFFFF, 0xFFFF, "HiSilicon RDE Engine(Virtual Function)(0xA25B)"},
}; /* pci_vid_19E5[] */
-pci_id_t pci_vid_19E7[] = {
+static pci_id_t const pci_vid_19E7[] = {
{0x19E7, 0xFFFF, 0xFFFF, 0xFFFF, "NET (Network Equipment Technologies)(0x19E7)"},
{0x19E7, 0x1001, 0xFFFF, 0xFFFF, "STIX DSP Card(0x1001)"},
{0x19E7, 0x1002, 0xFFFF, 0xFFFF, "STIX - 1 Port T1/E1 Card(0x1002)"},
@@ -29182,19 +29305,19 @@ pci_id_t pci_vid_19E7[] = {
{0x19E7, 0x1005, 0xFFFF, 0xFFFF, "STIX - 4 Port FXS Card(0x1005)"},
}; /* pci_vid_19E7[] */
-pci_id_t pci_vid_19EE[] = {
+static pci_id_t const pci_vid_19EE[] = {
{0x19EE, 0xFFFF, 0xFFFF, 0xFFFF, "Netronome Systems, Inc.(0x19EE)"},
}; /* pci_vid_19EE[] */
-pci_id_t pci_vid_19F1[] = {
+static pci_id_t const pci_vid_19F1[] = {
{0x19F1, 0xFFFF, 0xFFFF, 0xFFFF, "BFG Tech(0x19F1)"},
}; /* pci_vid_19F1[] */
-pci_id_t pci_vid_19FF[] = {
+static pci_id_t const pci_vid_19FF[] = {
{0x19FF, 0xFFFF, 0xFFFF, 0xFFFF, "Eclipse Electronic Systems, Inc.(0x19FF)"},
}; /* pci_vid_19FF[] */
-pci_id_t pci_vid_1A03[] = {
+static pci_id_t const pci_vid_1A03[] = {
{0x1A03, 0xFFFF, 0xFFFF, 0xFFFF, "ASPEED Technology, Inc.(0x1A03)"},
{0x1A03, 0x1150, 0xFFFF, 0xFFFF, "AST1150 PCI-to-PCI Bridge(0x1150)"},
{0x1A03, 0x2000, 0xFFFF, 0xFFFF, "ASPEED Graphics Family(0x2000)"},
@@ -29202,11 +29325,11 @@ pci_id_t pci_vid_1A03[] = {
{0x1A03, 0x2000, 0x15D9, 0x1B95, "H12SSL-i(0x15D9-0x1B95)"},
}; /* pci_vid_1A03[] */
-pci_id_t pci_vid_1A05[] = {
+static pci_id_t const pci_vid_1A05[] = {
{0x1A05, 0xFFFF, 0xFFFF, 0xFFFF, "deltaww(0x1A05)"},
}; /* pci_vid_1A05[] */
-pci_id_t pci_vid_1A07[] = {
+static pci_id_t const pci_vid_1A07[] = {
{0x1A07, 0xFFFF, 0xFFFF, 0xFFFF, "Kvaser AB(0x1A07)"},
{0x1A07, 0x0006, 0xFFFF, 0xFFFF, "CAN interface PC104+ HS/HS(0x0006)"},
{0x1A07, 0x0007, 0xFFFF, 0xFFFF, "CAN interface PCIcanx II HS or HS/HS(0x0007)"},
@@ -29214,16 +29337,16 @@ pci_id_t pci_vid_1A07[] = {
{0x1A07, 0x0009, 0xFFFF, 0xFFFF, "CAN interface PCI104 HS/HS(0x0009)"},
}; /* pci_vid_1A07[] */
-pci_id_t pci_vid_1A08[] = {
+static pci_id_t const pci_vid_1A08[] = {
{0x1A08, 0xFFFF, 0xFFFF, 0xFFFF, "Sierra semiconductor(0x1A08)"},
{0x1A08, 0x0000, 0xFFFF, 0xFFFF, "SC15064(0x0000)"},
}; /* pci_vid_1A08[] */
-pci_id_t pci_vid_1A0D[] = {
+static pci_id_t const pci_vid_1A0D[] = {
{0x1A0D, 0xFFFF, 0xFFFF, 0xFFFF, "SEAKR Engineering(0x1A0D)"},
}; /* pci_vid_1A0D[] */
-pci_id_t pci_vid_1A0E[] = {
+static pci_id_t const pci_vid_1A0E[] = {
{0x1A0E, 0xFFFF, 0xFFFF, 0xFFFF, "DekTec Digital Video B.V.(0x1A0E)"},
{0x1A0E, 0x083F, 0xFFFF, 0xFFFF, "DTA-2111 VHF/UHF Modulator(0x083F)"},
{0x1A0E, 0x0860, 0xFFFF, 0xFFFF, "DTA-2144(B) Quad ASI/SDI in+out(0x0860)"},
@@ -29236,25 +29359,25 @@ pci_id_t pci_vid_1A0E[] = {
{0x1A0E, 0xB87E, 0xFFFF, 0xFFFF, "DTA-2174B Quad 3G-SDI/ASI ports (1x12G) with genlock(0xB87E)"},
}; /* pci_vid_1A0E[] */
-pci_id_t pci_vid_1A17[] = {
+static pci_id_t const pci_vid_1A17[] = {
{0x1A17, 0xFFFF, 0xFFFF, 0xFFFF, "Force10 Networks, Inc.(0x1A17)"},
{0x1A17, 0x8002, 0xFFFF, 0xFFFF, "PB-10GE-2P 10GbE Security Card(0x8002)"},
}; /* pci_vid_1A17[] */
-pci_id_t pci_vid_1A1D[] = {
+static pci_id_t const pci_vid_1A1D[] = {
{0x1A1D, 0xFFFF, 0xFFFF, 0xFFFF, "GFaI e.V.(0x1A1D)"},
{0x1A1D, 0x1A17, 0xFFFF, 0xFFFF, "Meta Networks MTP-1G IDPS NIC(0x1A17)"},
}; /* pci_vid_1A1D[] */
-pci_id_t pci_vid_1A1E[] = {
+static pci_id_t const pci_vid_1A1E[] = {
{0x1A1E, 0xFFFF, 0xFFFF, 0xFFFF, "3Leaf Systems, Inc.(0x1A1E)"},
}; /* pci_vid_1A1E[] */
-pci_id_t pci_vid_1A22[] = {
+static pci_id_t const pci_vid_1A22[] = {
{0x1A22, 0xFFFF, 0xFFFF, 0xFFFF, "Ambric Inc.(0x1A22)"},
}; /* pci_vid_1A22[] */
-pci_id_t pci_vid_1A29[] = {
+static pci_id_t const pci_vid_1A29[] = {
{0x1A29, 0xFFFF, 0xFFFF, 0xFFFF, "Fortinet, Inc.(0x1A29)"},
{0x1A29, 0x4338, 0xFFFF, 0xFFFF, "CP8 Content Processor ASIC(0x4338)"},
{0x1A29, 0x43A0, 0xFFFF, 0xFFFF, "CP9 Content Processor ASIC(0x43A0)"},
@@ -29262,7 +29385,7 @@ pci_id_t pci_vid_1A29[] = {
{0x1A29, 0x4E37, 0xFFFF, 0xFFFF, "NP7 Network Processor(0x4E37)"},
}; /* pci_vid_1A29[] */
-pci_id_t pci_vid_1A2B[] = {
+static pci_id_t const pci_vid_1A2B[] = {
{0x1A2B, 0xFFFF, 0xFFFF, 0xFFFF, "Ascom AG(0x1A2B)"},
{0x1A2B, 0x0000, 0xFFFF, 0xFFFF, "GESP v1.2(0x0000)"},
{0x1A2B, 0x0001, 0xFFFF, 0xFFFF, "GESP v1.3(0x0001)"},
@@ -29272,23 +29395,23 @@ pci_id_t pci_vid_1A2B[] = {
{0x1A2B, 0x000E, 0xFFFF, 0xFFFF, "DSLP-104 v1.1(0x000E)"},
}; /* pci_vid_1A2B[] */
-pci_id_t pci_vid_1A30[] = {
+static pci_id_t const pci_vid_1A30[] = {
{0x1A30, 0xFFFF, 0xFFFF, 0xFFFF, "Lantiq(0x1A30)"},
{0x1A30, 0x0680, 0xFFFF, 0xFFFF, "MtW8171 [Hyperion II](0x0680)"},
{0x1A30, 0x0700, 0xFFFF, 0xFFFF, "Wave300 PSB8224 [Hyperion III](0x0700)"},
{0x1A30, 0x0710, 0xFFFF, 0xFFFF, "Wave300 PSB8231 [Hyperion III](0x0710)"},
}; /* pci_vid_1A30[] */
-pci_id_t pci_vid_1A32[] = {
+static pci_id_t const pci_vid_1A32[] = {
{0x1A32, 0xFFFF, 0xFFFF, 0xFFFF, "Quanta Microsystems, Inc(0x1A32)"},
}; /* pci_vid_1A32[] */
-pci_id_t pci_vid_1A3B[] = {
+static pci_id_t const pci_vid_1A3B[] = {
{0x1A3B, 0xFFFF, 0xFFFF, 0xFFFF, "AzureWave(0x1A3B)"},
{0x1A3B, 0x1112, 0xFFFF, 0xFFFF, "AR9285 Wireless Network Adapter (PCI-Express)(0x1112)"},
}; /* pci_vid_1A3B[] */
-pci_id_t pci_vid_1A41[] = {
+static pci_id_t const pci_vid_1A41[] = {
{0x1A41, 0xFFFF, 0xFFFF, 0xFFFF, "Tilera Corp.(0x1A41)"},
{0x1A41, 0x0001, 0xFFFF, 0xFFFF, "TILE64 processor(0x0001)"},
{0x1A41, 0x0002, 0xFFFF, 0xFFFF, "TILEPro processor(0x0002)"},
@@ -29297,7 +29420,7 @@ pci_id_t pci_vid_1A41[] = {
{0x1A41, 0x2000, 0xFFFF, 0xFFFF, "TILE-Gx PCI Express Root Port(0x2000)"},
}; /* pci_vid_1A41[] */
-pci_id_t pci_vid_1A4A[] = {
+static pci_id_t const pci_vid_1A4A[] = {
{0x1A4A, 0xFFFF, 0xFFFF, 0xFFFF, "SLAC National Accelerator Lab TID-AIR(0x1A4A)"},
{0x1A4A, 0x1000, 0xFFFF, 0xFFFF, "MCOR Power Supply Controller(0x1000)"},
{0x1A4A, 0x1010, 0xFFFF, 0xFFFF, "AMC EVR - Stockholm Timing Board(0x1010)"},
@@ -29314,11 +29437,11 @@ pci_id_t pci_vid_1A4A[] = {
{0x1A4A, 0x3001, 0xFFFF, 0xFFFF, "COB DTM V2(0x3001)"},
}; /* pci_vid_1A4A[] */
-pci_id_t pci_vid_1A51[] = {
+static pci_id_t const pci_vid_1A51[] = {
{0x1A51, 0xFFFF, 0xFFFF, 0xFFFF, "Hectronic AB(0x1A51)"},
}; /* pci_vid_1A51[] */
-pci_id_t pci_vid_1A55[] = {
+static pci_id_t const pci_vid_1A55[] = {
{0x1A55, 0xFFFF, 0xFFFF, 0xFFFF, "Rohde & Schwarz DVS GmbH(0x1A55)"},
{0x1A55, 0x0010, 0xFFFF, 0xFFFF, "SDStationOEM(0x0010)"},
{0x1A55, 0x0011, 0xFFFF, 0xFFFF, "SDStationOEM II(0x0011)"},
@@ -29338,52 +29461,52 @@ pci_id_t pci_vid_1A55[] = {
{0x1A55, 0x0090, 0xFFFF, 0xFFFF, "CinePlay(0x0090)"},
}; /* pci_vid_1A55[] */
-pci_id_t pci_vid_1A56[] = {
+static pci_id_t const pci_vid_1A56[] = {
{0x1A56, 0xFFFF, 0xFFFF, 0xFFFF, "Rivet Networks(0x1A56)"},
}; /* pci_vid_1A56[] */
-pci_id_t pci_vid_1A57[] = {
+static pci_id_t const pci_vid_1A57[] = {
{0x1A57, 0xFFFF, 0xFFFF, 0xFFFF, "Highly Reliable Systems(0x1A57)"},
}; /* pci_vid_1A57[] */
-pci_id_t pci_vid_1A58[] = {
+static pci_id_t const pci_vid_1A58[] = {
{0x1A58, 0xFFFF, 0xFFFF, 0xFFFF, "Razer USA Ltd.(0x1A58)"},
}; /* pci_vid_1A58[] */
-pci_id_t pci_vid_1A5D[] = {
+static pci_id_t const pci_vid_1A5D[] = {
{0x1A5D, 0xFFFF, 0xFFFF, 0xFFFF, "Celoxica(0x1A5D)"},
}; /* pci_vid_1A5D[] */
-pci_id_t pci_vid_1A5E[] = {
+static pci_id_t const pci_vid_1A5E[] = {
{0x1A5E, 0xFFFF, 0xFFFF, 0xFFFF, "Aprius Inc.(0x1A5E)"},
}; /* pci_vid_1A5E[] */
-pci_id_t pci_vid_1A5F[] = {
+static pci_id_t const pci_vid_1A5F[] = {
{0x1A5F, 0xFFFF, 0xFFFF, 0xFFFF, "System TALKS Inc.(0x1A5F)"},
}; /* pci_vid_1A5F[] */
-pci_id_t pci_vid_1A68[] = {
+static pci_id_t const pci_vid_1A68[] = {
{0x1A68, 0xFFFF, 0xFFFF, 0xFFFF, "VirtenSys Limited(0x1A68)"},
}; /* pci_vid_1A68[] */
-pci_id_t pci_vid_1A71[] = {
+static pci_id_t const pci_vid_1A71[] = {
{0x1A71, 0xFFFF, 0xFFFF, 0xFFFF, "XenSource, Inc.(0x1A71)"},
}; /* pci_vid_1A71[] */
-pci_id_t pci_vid_1A73[] = {
+static pci_id_t const pci_vid_1A73[] = {
{0x1A73, 0xFFFF, 0xFFFF, 0xFFFF, "Violin Memory, Inc(0x1A73)"},
{0x1A73, 0x0001, 0xFFFF, 0xFFFF, "Mozart [Memory Appliance 1010](0x0001)"},
}; /* pci_vid_1A73[] */
-pci_id_t pci_vid_1A76[] = {
+static pci_id_t const pci_vid_1A76[] = {
{0x1A76, 0xFFFF, 0xFFFF, 0xFFFF, "Wavesat(0x1A76)"},
}; /* pci_vid_1A76[] */
-pci_id_t pci_vid_1A77[] = {
+static pci_id_t const pci_vid_1A77[] = {
{0x1A77, 0xFFFF, 0xFFFF, 0xFFFF, "Lightfleet Corporation(0x1A77)"},
}; /* pci_vid_1A77[] */
-pci_id_t pci_vid_1A78[] = {
+static pci_id_t const pci_vid_1A78[] = {
{0x1A78, 0xFFFF, 0xFFFF, 0xFFFF, "Virident Systems Inc.(0x1A78)"},
{0x1A78, 0x0031, 0xFFFF, 0xFFFF, "FlashMAX Drive(0x0031)"},
{0x1A78, 0x0031, 0x1A78, 0x0034, "FlashMAX PCIe SSD [rev 3](0x1A78-0x0034)"},
@@ -29396,37 +29519,37 @@ pci_id_t pci_vid_1A78[] = {
{0x1A78, 0x0050, 0xFFFF, 0xFFFF, "FlashMAX III(0x0050)"},
}; /* pci_vid_1A78[] */
-pci_id_t pci_vid_1A84[] = {
+static pci_id_t const pci_vid_1A84[] = {
{0x1A84, 0xFFFF, 0xFFFF, 0xFFFF, "Commex Technologies(0x1A84)"},
{0x1A84, 0x0001, 0xFFFF, 0xFFFF, "Vulcan SP HT6210 10-Gigabit Ethernet (rev 02)(0x0001)"},
}; /* pci_vid_1A84[] */
-pci_id_t pci_vid_1A88[] = {
+static pci_id_t const pci_vid_1A88[] = {
{0x1A88, 0xFFFF, 0xFFFF, 0xFFFF, "Duagon AG(0x1A88)"},
{0x1A88, 0x4D45, 0xFFFF, 0xFFFF, "Multifunction IP core(0x4D45)"},
}; /* pci_vid_1A88[] */
-pci_id_t pci_vid_1A8A[] = {
+static pci_id_t const pci_vid_1A8A[] = {
{0x1A8A, 0xFFFF, 0xFFFF, 0xFFFF, "StarBridge, Inc.(0x1A8A)"},
}; /* pci_vid_1A8A[] */
-pci_id_t pci_vid_1A8C[] = {
+static pci_id_t const pci_vid_1A8C[] = {
{0x1A8C, 0xFFFF, 0xFFFF, 0xFFFF, "Verigy Pte. Ltd.(0x1A8C)"},
{0x1A8C, 0x1100, 0xFFFF, 0xFFFF, "E8001-66443 PCI Express CIC(0x1100)"},
}; /* pci_vid_1A8C[] */
-pci_id_t pci_vid_1A8E[] = {
+static pci_id_t const pci_vid_1A8E[] = {
{0x1A8E, 0xFFFF, 0xFFFF, 0xFFFF, "DRS Technologies(0x1A8E)"},
{0x1A8E, 0x2090, 0xFFFF, 0xFFFF, "Model 2090 PCI Express(0x2090)"},
}; /* pci_vid_1A8E[] */
-pci_id_t pci_vid_1AA8[] = {
+static pci_id_t const pci_vid_1AA8[] = {
{0x1AA8, 0xFFFF, 0xFFFF, 0xFFFF, "Ciprico, Inc.(0x1AA8)"},
{0x1AA8, 0x0009, 0xFFFF, 0xFFFF, "RAIDCore Controller(0x0009)"},
{0x1AA8, 0x000A, 0xFFFF, 0xFFFF, "RAIDCore Controller(0x000A)"},
}; /* pci_vid_1AA8[] */
-pci_id_t pci_vid_1AA9[] = {
+static pci_id_t const pci_vid_1AA9[] = {
{0x1AA9, 0xFFFF, 0xFFFF, 0xFFFF, "Schweitzer Engineering Laboratories(0x1AA9)"},
{0x1AA9, 0x000D, 0xFFFF, 0xFFFF, "SEL-3390S8 Serial Adapter(0x000D)"},
{0x1AA9, 0x000E, 0xFFFF, 0xFFFF, "SEL-3390E4 Ethernet Adapter(0x000E)"},
@@ -29438,55 +29561,55 @@ pci_id_t pci_vid_1AA9[] = {
{0x1AA9, 0x001C, 0xFFFF, 0xFFFF, "SEL-3390E4 Ethernet Adapter(0x001C)"},
}; /* pci_vid_1AA9[] */
-pci_id_t pci_vid_1AAB[] = {
+static pci_id_t const pci_vid_1AAB[] = {
{0x1AAB, 0xFFFF, 0xFFFF, 0xFFFF, "Silver Creations AG(0x1AAB)"},
{0x1AAB, 0x7750, 0xFFFF, 0xFFFF, "Sceye 10L(0x7750)"},
}; /* pci_vid_1AAB[] */
-pci_id_t pci_vid_1AAE[] = {
+static pci_id_t const pci_vid_1AAE[] = {
{0x1AAE, 0xFFFF, 0xFFFF, 0xFFFF, "Global Velocity, Inc.(0x1AAE)"},
}; /* pci_vid_1AAE[] */
-pci_id_t pci_vid_1AB4[] = {
+static pci_id_t const pci_vid_1AB4[] = {
{0x1AB4, 0xFFFF, 0xFFFF, 0xFFFF, "Distributed Management Task Force, Inc. (DMTF)(0x1AB4)"},
}; /* pci_vid_1AB4[] */
-pci_id_t pci_vid_1AB6[] = {
+static pci_id_t const pci_vid_1AB6[] = {
{0x1AB6, 0xFFFF, 0xFFFF, 0xFFFF, "CalDigit, Inc.(0x1AB6)"},
{0x1AB6, 0x6201, 0xFFFF, 0xFFFF, "RAID Card(0x6201)"},
}; /* pci_vid_1AB6[] */
-pci_id_t pci_vid_1AB8[] = {
+static pci_id_t const pci_vid_1AB8[] = {
{0x1AB8, 0xFFFF, 0xFFFF, 0xFFFF, "Parallels, Inc.(0x1AB8)"},
{0x1AB8, 0x4000, 0xFFFF, 0xFFFF, "Virtual Machine Communication Interface(0x4000)"},
{0x1AB8, 0x4005, 0xFFFF, 0xFFFF, "Accelerated Virtual Video Adapter(0x4005)"},
{0x1AB8, 0x4006, 0xFFFF, 0xFFFF, "Memory Ballooning Controller(0x4006)"},
}; /* pci_vid_1AB8[] */
-pci_id_t pci_vid_1AB9[] = {
+static pci_id_t const pci_vid_1AB9[] = {
{0x1AB9, 0xFFFF, 0xFFFF, 0xFFFF, "Espia Srl(0x1AB9)"},
}; /* pci_vid_1AB9[] */
-pci_id_t pci_vid_1AC1[] = {
+static pci_id_t const pci_vid_1AC1[] = {
{0x1AC1, 0xFFFF, 0xFFFF, 0xFFFF, "Global Unichip Corp.(0x1AC1)"},
{0x1AC1, 0x089A, 0xFFFF, 0xFFFF, "Coral Edge TPU(0x089A)"},
}; /* pci_vid_1AC1[] */
-pci_id_t pci_vid_1AC8[] = {
+static pci_id_t const pci_vid_1AC8[] = {
{0x1AC8, 0xFFFF, 0xFFFF, 0xFFFF, "Aeroflex Gaisler(0x1AC8)"},
}; /* pci_vid_1AC8[] */
-pci_id_t pci_vid_1ACC[] = {
+static pci_id_t const pci_vid_1ACC[] = {
{0x1ACC, 0xFFFF, 0xFFFF, 0xFFFF, "Point of View BV(0x1ACC)"},
}; /* pci_vid_1ACC[] */
-pci_id_t pci_vid_1AD7[] = {
+static pci_id_t const pci_vid_1AD7[] = {
{0x1AD7, 0xFFFF, 0xFFFF, 0xFFFF, "Spectracom Corporation(0x1AD7)"},
{0x1AD7, 0x8000, 0xFFFF, 0xFFFF, "TSync-PCIe Time Code Processor(0x8000)"},
{0x1AD7, 0x9100, 0xFFFF, 0xFFFF, "TPRO-PCI-66U Timecode Reader/Generator(0x9100)"},
}; /* pci_vid_1AD7[] */
-pci_id_t pci_vid_1ADE[] = {
+static pci_id_t const pci_vid_1ADE[] = {
{0x1ADE, 0xFFFF, 0xFFFF, 0xFFFF, "Spin Master Ltd.(0x1ADE)"},
{0x1ADE, 0x1501, 0xFFFF, 0xFFFF, "Swipetech barcode scanner(0x1501)"},
{0x1ADE, 0x3038, 0xFFFF, 0xFFFF, "PCIe Video Bridge(0x3038)"},
@@ -29494,23 +29617,23 @@ pci_id_t pci_vid_1ADE[] = {
{0x1ADE, 0x3038, 0x4254, 0x0552, "S952 v3(0x4254-0x0552)"},
}; /* pci_vid_1ADE[] */
-pci_id_t pci_vid_1AE0[] = {
+static pci_id_t const pci_vid_1AE0[] = {
{0x1AE0, 0xFFFF, 0xFFFF, 0xFFFF, "Google, Inc.(0x1AE0)"},
{0x1AE0, 0x001F, 0xFFFF, 0xFFFF, "NVMe device(0x001F)"},
{0x1AE0, 0x0042, 0xFFFF, 0xFFFF, "Compute Engine Virtual Ethernet [gVNIC](0x0042)"},
{0x1AE0, 0xABCD, 0xFFFF, 0xFFFF, "Airbrush Combined Paintbox IPU/Oscar Edge TPU [Pixel Neural Core](0xABCD)"},
}; /* pci_vid_1AE0[] */
-pci_id_t pci_vid_1AE3[] = {
+static pci_id_t const pci_vid_1AE3[] = {
{0x1AE3, 0xFFFF, 0xFFFF, 0xFFFF, "SANBlaze Technology, Inc.(0x1AE3)"},
}; /* pci_vid_1AE3[] */
-pci_id_t pci_vid_1AE7[] = {
+static pci_id_t const pci_vid_1AE7[] = {
{0x1AE7, 0xFFFF, 0xFFFF, 0xFFFF, "First Wise Media GmbH(0x1AE7)"},
{0x1AE7, 0x0520, 0xFFFF, 0xFFFF, "HFC-S PCI A [X-TENSIONS XC-520](0x0520)"},
}; /* pci_vid_1AE7[] */
-pci_id_t pci_vid_1AE8[] = {
+static pci_id_t const pci_vid_1AE8[] = {
{0x1AE8, 0xFFFF, 0xFFFF, 0xFFFF, "Basler AG(0x1AE8)"},
{0x1AE8, 0x0751, 0xFFFF, 0xFFFF, "mE5 marathon VCL(0x0751)"},
{0x1AE8, 0x0752, 0xFFFF, 0xFFFF, "mE5 marathon AF2(0x0752)"},
@@ -29544,7 +29667,7 @@ pci_id_t pci_vid_1AE8[] = {
{0x1AE8, 0x0E44, 0xFFFF, 0xFFFF, "microEnable IV VQ4-GE(0x0E44)"},
}; /* pci_vid_1AE8[] */
-pci_id_t pci_vid_1AE9[] = {
+static pci_id_t const pci_vid_1AE9[] = {
{0x1AE9, 0xFFFF, 0xFFFF, 0xFFFF, "Wilocity Ltd.(0x1AE9)"},
{0x1AE9, 0x0101, 0xFFFF, 0xFFFF, "Wil6200 PCI Express Upstream Port(0x0101)"},
{0x1AE9, 0x0200, 0xFFFF, 0xFFFF, "Wil6200 PCI Express Port(0x0200)"},
@@ -29554,18 +29677,18 @@ pci_id_t pci_vid_1AE9[] = {
{0x1AE9, 0x0310, 0xFFFF, 0xFFFF, "Wil6200 802.11ad Wireless Network Adapter(0x0310)"},
}; /* pci_vid_1AE9[] */
-pci_id_t pci_vid_1AEA[] = {
+static pci_id_t const pci_vid_1AEA[] = {
{0x1AEA, 0xFFFF, 0xFFFF, 0xFFFF, "Alcor Micro(0x1AEA)"},
{0x1AEA, 0x6601, 0xFFFF, 0xFFFF, "AU6601 PCI-E Flash card reader controller(0x6601)"},
{0x1AEA, 0x6621, 0xFFFF, 0xFFFF, "AU6621 PCI-E Flash card reader controller(0x6621)"},
{0x1AEA, 0x6625, 0xFFFF, 0xFFFF, "AU6625 PCI-E Flash card reader controller(0x6625)"},
}; /* pci_vid_1AEA[] */
-pci_id_t pci_vid_1AEC[] = {
+static pci_id_t const pci_vid_1AEC[] = {
{0x1AEC, 0xFFFF, 0xFFFF, 0xFFFF, "Wolfson Microelectronics(0x1AEC)"},
}; /* pci_vid_1AEC[] */
-pci_id_t pci_vid_1AED[] = {
+static pci_id_t const pci_vid_1AED[] = {
{0x1AED, 0xFFFF, 0xFFFF, 0xFFFF, "SanDisk(0x1AED)"},
{0x1AED, 0x1003, 0xFFFF, 0xFFFF, "ioDimm3 (v1.2)(0x1003)"},
{0x1AED, 0x1005, 0xFFFF, 0xFFFF, "ioDimm3(0x1005)"},
@@ -29585,11 +29708,11 @@ pci_id_t pci_vid_1AED[] = {
{0x1AED, 0x3003, 0xFFFF, 0xFFFF, "ioMemory Mezzanine(0x3003)"},
}; /* pci_vid_1AED[] */
-pci_id_t pci_vid_1AEE[] = {
+static pci_id_t const pci_vid_1AEE[] = {
{0x1AEE, 0xFFFF, 0xFFFF, 0xFFFF, "Caustic Graphics Inc.(0x1AEE)"},
}; /* pci_vid_1AEE[] */
-pci_id_t pci_vid_1AF4[] = {
+static pci_id_t const pci_vid_1AF4[] = {
{0x1AF4, 0xFFFF, 0xFFFF, 0xFFFF, "Red Hat, Inc.(0x1AF4)"},
{0x1AF4, 0x1000, 0xFFFF, 0xFFFF, "Virtio network device(0x1000)"},
{0x1AF4, 0x1000, 0x01DE, 0xFFFB, "Propolis Virtio network device(0x01DE-0xFFFB)"},
@@ -29615,76 +29738,92 @@ pci_id_t pci_vid_1AF4[] = {
{0x1AF4, 0x1110, 0x1AF4, 0x1100, "QEMU Virtual Machine(0x1AF4-0x1100)"},
}; /* pci_vid_1AF4[] */
-pci_id_t pci_vid_1AF5[] = {
+static pci_id_t const pci_vid_1AF5[] = {
{0x1AF5, 0xFFFF, 0xFFFF, 0xFFFF, "Netezza Corp.(0x1AF5)"},
}; /* pci_vid_1AF5[] */
-pci_id_t pci_vid_1AFA[] = {
+static pci_id_t const pci_vid_1AFA[] = {
{0x1AFA, 0xFFFF, 0xFFFF, 0xFFFF, "J & W Electronics Co., Ltd.(0x1AFA)"},
}; /* pci_vid_1AFA[] */
-pci_id_t pci_vid_1B00[] = {
+static pci_id_t const pci_vid_1B00[] = {
{0x1B00, 0xFFFF, 0xFFFF, 0xFFFF, "Montage Technology Co., Ltd.(0x1B00)"},
+{0x1B00, 0xC001, 0xFFFF, 0xFFFF, "CXL Memory Expander Controller M88MX5891(0xC001)"},
+{0x1B00, 0xC001, 0x1FF9, 0x00A2, "CXL Memory Expander(0x1FF9-0x00A2)"},
+{0x1B00, 0xC001, 0x1FF9, 0x00A4, "CXL Memory Expander(0x1FF9-0x00A4)"},
}; /* pci_vid_1B00[] */
-pci_id_t pci_vid_1B03[] = {
+static pci_id_t const pci_vid_1B03[] = {
{0x1B03, 0xFFFF, 0xFFFF, 0xFFFF, "Magnum Semiconductor, Inc,(0x1B03)"},
{0x1B03, 0x6100, 0xFFFF, 0xFFFF, "DXT/DXTPro Multiformat Broadcast HD/SD Encoder/Decoder/Transcoder(0x6100)"},
{0x1B03, 0x7000, 0xFFFF, 0xFFFF, "D7 Multiformat Broadcast HD/SD Encoder/Decoder/Transcoder(0x7000)"},
}; /* pci_vid_1B03[] */
-pci_id_t pci_vid_1B08[] = {
+static pci_id_t const pci_vid_1B08[] = {
{0x1B08, 0xFFFF, 0xFFFF, 0xFFFF, "MSC Technologies GmbH(0x1B08)"},
}; /* pci_vid_1B08[] */
-pci_id_t pci_vid_1B0A[] = {
+static pci_id_t const pci_vid_1B0A[] = {
{0x1B0A, 0xFFFF, 0xFFFF, 0xFFFF, "Pegatron(0x1B0A)"},
+{0x1B0A, 0x9602, 0xFFFF, 0xFFFF, "RS780/RS880 PCI to PCI bridge (int gfx)(0x9602)"},
}; /* pci_vid_1B0A[] */
-pci_id_t pci_vid_1B13[] = {
+static pci_id_t const pci_vid_1B13[] = {
{0x1B13, 0xFFFF, 0xFFFF, 0xFFFF, "Jaton Corp(0x1B13)"},
}; /* pci_vid_1B13[] */
-pci_id_t pci_vid_1B1A[] = {
+static pci_id_t const pci_vid_1B1A[] = {
{0x1B1A, 0xFFFF, 0xFFFF, 0xFFFF, "K&F Computing Research Co.(0x1B1A)"},
{0x1B1A, 0x0E70, 0xFFFF, 0xFFFF, "GRAPE(0x0E70)"},
}; /* pci_vid_1B1A[] */
-pci_id_t pci_vid_1B1C[] = {
+static pci_id_t const pci_vid_1B1C[] = {
{0x1B1C, 0xFFFF, 0xFFFF, 0xFFFF, "Corsair(0x1B1C)"},
}; /* pci_vid_1B1C[] */
-pci_id_t pci_vid_1B21[] = {
+static pci_id_t const pci_vid_1B21[] = {
{0x1B21, 0xFFFF, 0xFFFF, 0xFFFF, "ASMedia Technology Inc.(0x1B21)"},
-{0x1B21, 0x0611, 0xFFFF, 0xFFFF, "ASM1061 SATA IDE Controller(0x0611)"},
-{0x1B21, 0x0612, 0xFFFF, 0xFFFF, "ASM1062 Serial ATA Controller(0x0612)"},
+{0x1B21, 0x0611, 0xFFFF, 0xFFFF, "ASM1061 Serial ATA Controller(0x0611)"},
+{0x1B21, 0x0612, 0xFFFF, 0xFFFF, "ASM1061/ASM1062 Serial ATA Controller(0x0612)"},
{0x1B21, 0x0612, 0x1849, 0x0612, "Motherboard(0x1849-0x0612)"},
+{0x1B21, 0x0622, 0xFFFF, 0xFFFF, "ASM106x Serial ATA AHCI Controller(0x0622)"},
+{0x1B21, 0x0624, 0xFFFF, 0xFFFF, "ASM106x SATA/RAID Controller(0x0624)"},
{0x1B21, 0x0625, 0xFFFF, 0xFFFF, "106x SATA/RAID Controller(0x0625)"},
-{0x1B21, 0x1040, 0xFFFF, 0xFFFF, "ASM1040 XHCI Controller(0x1040)"},
+{0x1B21, 0x1040, 0xFFFF, 0xFFFF, "ASM1040 SuperSpeed USB Host Controller(0x1040)"},
+{0x1B21, 0x1041, 0xFFFF, 0xFFFF, "ASM1041 SuperSpeed USB Host Controller(0x1041)"},
{0x1B21, 0x1042, 0xFFFF, 0xFFFF, "ASM1042 SuperSpeed USB Host Controller(0x1042)"},
{0x1B21, 0x1042, 0x1043, 0x1059, "K53SM motherboard(0x1043-0x1059)"},
{0x1B21, 0x1042, 0x1043, 0x8488, "P8B WS Motherboard(0x1043-0x8488)"},
{0x1B21, 0x1042, 0x1849, 0x1042, "Motherboard(0x1849-0x1042)"},
+{0x1B21, 0x1064, 0xFFFF, 0xFFFF, "ASM1064 Serial ATA Controller(0x1064)"},
{0x1B21, 0x1080, 0xFFFF, 0xFFFF, "ASM1083/1085 PCIe to PCI Bridge(0x1080)"},
{0x1B21, 0x1080, 0x1849, 0x1080, "Motherboard(0x1849-0x1080)"},
{0x1B21, 0x1142, 0xFFFF, 0xFFFF, "ASM1042A USB 3.0 Host Controller(0x1142)"},
+{0x1B21, 0x1164, 0xFFFF, 0xFFFF, "ASM1164 Serial ATA AHCI Controller(0x1164)"},
{0x1B21, 0x1166, 0xFFFF, 0xFFFF, "ASM1166 Serial ATA Controller(0x1166)"},
{0x1B21, 0x1182, 0xFFFF, 0xFFFF, "ASM1182e 2-Port PCIe x1 Gen2 Packet Switch(0x1182)"},
{0x1B21, 0x1182, 0x1B21, 0x118F, "ASM1182e 2-Port PCIe x1 Gen2 Packet Switch(0x1B21-0x118F)"},
{0x1B21, 0x1184, 0xFFFF, 0xFFFF, "ASM1184e 4-Port PCIe x1 Gen2 Packet Switch(0x1184)"},
{0x1B21, 0x1184, 0x1849, 0x1184, "ASM1184e 4-Port PCIe x1 Gen2 Packet Switch(0x1849-0x1184)"},
{0x1B21, 0x1187, 0xFFFF, 0xFFFF, "ASM1187e 7-Port PCIe x1 Gen2 Packet Switch(0x1187)"},
+{0x1B21, 0x118F, 0xFFFF, 0xFFFF, "ASM1187e 7-Port PCIe x1 Gen2 Packet Switch(0x118F)"},
{0x1B21, 0x1242, 0xFFFF, 0xFFFF, "ASM1142 USB 3.1 Host Controller(0x1242)"},
{0x1B21, 0x1343, 0xFFFF, 0xFFFF, "ASM1143 USB 3.1 Host Controller(0x1343)"},
+{0x1B21, 0x1806, 0xFFFF, 0xFFFF, "ASM1806 4-Port PCIe x2 Gen2 Packet Switch(0x1806)"},
{0x1B21, 0x1812, 0xFFFF, 0xFFFF, "ASM1812 6-Port PCIe x4 Gen2 Packet Switch(0x1812)"},
+{0x1B21, 0x1824, 0xFFFF, 0xFFFF, "ASM1824 12-Port PCIe x8 Gen2 Packet Switch(0x1824)"},
{0x1B21, 0x2142, 0xFFFF, 0xFFFF, "ASM2142/ASM3142 USB 3.1 Host Controller(0x2142)"},
{0x1B21, 0x2142, 0x1462, 0x7A72, "H270 PC MATE(0x1462-0x7A72)"},
+{0x1B21, 0x2806, 0xFFFF, 0xFFFF, "ASM2806 4-Port PCIe x2 Gen3 Packet Switch(0x2806)"},
+{0x1B21, 0x2812, 0xFFFF, 0xFFFF, "ASM2812 6-Port PCIe x4 Gen3 Packet Switch(0x2812)"},
{0x1B21, 0x2824, 0xFFFF, 0xFFFF, "ASM2824 PCIe Gen3 Packet Switch(0x2824)"},
{0x1B21, 0x3042, 0xFFFF, 0xFFFF, "ASM3042 USB 3.2 Gen 1 xHCI Controller(0x3042)"},
+{0x1B21, 0x3142, 0xFFFF, 0xFFFF, "ASM3142 USB 3.2 Gen 2x1 xHCI Controller(0x3142)"},
+{0x1B21, 0x3241, 0xFFFF, 0xFFFF, "ASM3241 USB 3.2 Gen 2 Host Controller(0x3241)"},
{0x1B21, 0x3242, 0xFFFF, 0xFFFF, "ASM3242 USB 3.2 Host Controller(0x3242)"},
}; /* pci_vid_1B21[] */
-pci_id_t pci_vid_1B26[] = {
+static pci_id_t const pci_vid_1B26[] = {
{0x1B26, 0xFFFF, 0xFFFF, 0xFFFF, "Netcope Technologies, a.s.(0x1B26)"},
{0x1B26, 0xC132, 0xFFFF, 0xFFFF, "COMBO-LXT155(0xC132)"},
{0x1B26, 0xC1C0, 0xFFFF, 0xFFFF, "NFB-100G1-e0(0xC1C0)"},
@@ -29698,11 +29837,11 @@ pci_id_t pci_vid_1B26[] = {
{0x1B26, 0xCB80, 0xFFFF, 0xFFFF, "NFB-40G2(0xCB80)"},
}; /* pci_vid_1B26[] */
-pci_id_t pci_vid_1B2C[] = {
+static pci_id_t const pci_vid_1B2C[] = {
{0x1B2C, 0xFFFF, 0xFFFF, 0xFFFF, "Opal-RT Technologies Inc.(0x1B2C)"},
}; /* pci_vid_1B2C[] */
-pci_id_t pci_vid_1B36[] = {
+static pci_id_t const pci_vid_1B36[] = {
{0x1B36, 0xFFFF, 0xFFFF, 0xFFFF, "Red Hat, Inc.(0x1B36)"},
{0x1B36, 0x0001, 0xFFFF, 0xFFFF, "QEMU PCI-PCI bridge(0x0001)"},
{0x1B36, 0x0002, 0xFFFF, 0xFFFF, "QEMU PCI 16550A Adapter(0x0002)"},
@@ -29728,7 +29867,7 @@ pci_id_t pci_vid_1B36[] = {
{0x1B36, 0x0100, 0x1AF4, 0x1100, "QEMU Virtual Machine(0x1AF4-0x1100)"},
}; /* pci_vid_1B36[] */
-pci_id_t pci_vid_1B37[] = {
+static pci_id_t const pci_vid_1B37[] = {
{0x1B37, 0xFFFF, 0xFFFF, 0xFFFF, "Signal Processing Devices Sweden AB(0x1B37)"},
{0x1B37, 0x0001, 0xFFFF, 0xFFFF, "ADQ214(0x0001)"},
{0x1B37, 0x0003, 0xFFFF, 0xFFFF, "ADQ114(0x0003)"},
@@ -29749,34 +29888,34 @@ pci_id_t pci_vid_1B37[] = {
{0x1B37, 0x2019, 0xFFFF, 0xFFFF, "S6000(0x2019)"},
}; /* pci_vid_1B37[] */
-pci_id_t pci_vid_1B39[] = {
+static pci_id_t const pci_vid_1B39[] = {
{0x1B39, 0xFFFF, 0xFFFF, 0xFFFF, "sTec, Inc.(0x1B39)"},
{0x1B39, 0x0001, 0xFFFF, 0xFFFF, "S1120 PCIe Accelerator SSD(0x0001)"},
}; /* pci_vid_1B39[] */
-pci_id_t pci_vid_1B3A[] = {
+static pci_id_t const pci_vid_1B3A[] = {
{0x1B3A, 0xFFFF, 0xFFFF, 0xFFFF, "Westar Display Technologies(0x1B3A)"},
{0x1B3A, 0x7589, 0xFFFF, 0xFFFF, "HRED J2000 - JPEG 2000 Video Codec Device(0x7589)"},
}; /* pci_vid_1B3A[] */
-pci_id_t pci_vid_1B3E[] = {
+static pci_id_t const pci_vid_1B3E[] = {
{0x1B3E, 0xFFFF, 0xFFFF, 0xFFFF, "Teradata Corp.(0x1B3E)"},
{0x1B3E, 0x1FA8, 0xFFFF, 0xFFFF, "BYNET BIC2SE/X(0x1FA8)"},
{0x1B3E, 0x1FA8, 0x1B3E, 0x00A3, "BYNET BIC2SX(0x1B3E-0x00A3)"},
{0x1B3E, 0x1FA8, 0x1B3E, 0x00C3, "BYNET BIC2SE(0x1B3E-0x00C3)"},
}; /* pci_vid_1B3E[] */
-pci_id_t pci_vid_1B40[] = {
+static pci_id_t const pci_vid_1B40[] = {
{0x1B40, 0xFFFF, 0xFFFF, 0xFFFF, "Schooner Information Technology, Inc.(0x1B40)"},
}; /* pci_vid_1B40[] */
-pci_id_t pci_vid_1B47[] = {
+static pci_id_t const pci_vid_1B47[] = {
{0x1B47, 0xFFFF, 0xFFFF, 0xFFFF, "Numascale AS(0x1B47)"},
{0x1B47, 0x0601, 0xFFFF, 0xFFFF, "NumaChip N601(0x0601)"},
{0x1B47, 0x0602, 0xFFFF, 0xFFFF, "NumaChip N602(0x0602)"},
}; /* pci_vid_1B47[] */
-pci_id_t pci_vid_1B4B[] = {
+static pci_id_t const pci_vid_1B4B[] = {
{0x1B4B, 0xFFFF, 0xFFFF, 0xFFFF, "Marvell Technology Group Ltd.(0x1B4B)"},
{0x1B4B, 0x0100, 0xFFFF, 0xFFFF, "88F3700 [Armada 3700 Family] ARM SoC(0x0100)"},
{0x1B4B, 0x0640, 0xFFFF, 0xFFFF, "88SE9128 SATA III 6Gb/s RAID Controller(0x0640)"},
@@ -29830,11 +29969,11 @@ pci_id_t pci_vid_1B4B[] = {
{0x1B4B, 0x9485, 0xFFFF, 0xFFFF, "88SE9485 SAS/SATA 6Gb/s controller(0x9485)"},
}; /* pci_vid_1B4B[] */
-pci_id_t pci_vid_1B4C[] = {
+static pci_id_t const pci_vid_1B4C[] = {
{0x1B4C, 0xFFFF, 0xFFFF, 0xFFFF, "GALAX(0x1B4C)"},
}; /* pci_vid_1B4C[] */
-pci_id_t pci_vid_1B55[] = {
+static pci_id_t const pci_vid_1B55[] = {
{0x1B55, 0xFFFF, 0xFFFF, 0xFFFF, "NetUP Inc.(0x1B55)"},
{0x1B55, 0x18F6, 0xFFFF, 0xFFFF, "Dual DVB Universal CI card(0x18F6)"},
{0x1B55, 0x18F7, 0xFFFF, 0xFFFF, "Dual DVB Universal CI card rev 1.4(0x18F7)"},
@@ -29844,12 +29983,12 @@ pci_id_t pci_vid_1B55[] = {
{0x1B55, 0xF1C4, 0xFFFF, 0xFFFF, "Dual ASI-RX/TX-CI card(0xF1C4)"},
}; /* pci_vid_1B55[] */
-pci_id_t pci_vid_1B66[] = {
+static pci_id_t const pci_vid_1B66[] = {
{0x1B66, 0xFFFF, 0xFFFF, 0xFFFF, "DELTACAST(0x1B66)"},
{0x1B66, 0x0007, 0xFFFF, 0xFFFF, "DELTA-3G-elp-d(0x0007)"},
}; /* pci_vid_1B66[] */
-pci_id_t pci_vid_1B6F[] = {
+static pci_id_t const pci_vid_1B6F[] = {
{0x1B6F, 0xFFFF, 0xFFFF, 0xFFFF, "Etron Technology, Inc.(0x1B6F)"},
{0x1B6F, 0x7023, 0xFFFF, 0xFFFF, "EJ168 USB 3.0 Host Controller(0x7023)"},
{0x1B6F, 0x7023, 0x1458, 0x5007, "GA-880GMA-USB3(0x1458-0x5007)"},
@@ -29857,7 +29996,7 @@ pci_id_t pci_vid_1B6F[] = {
{0x1B6F, 0x7052, 0x1849, 0x7052, "QC5000-ITX/PH(0x1849-0x7052)"},
}; /* pci_vid_1B6F[] */
-pci_id_t pci_vid_1B73[] = {
+static pci_id_t const pci_vid_1B73[] = {
{0x1B73, 0xFFFF, 0xFFFF, 0xFFFF, "Fresco Logic(0x1B73)"},
{0x1B73, 0x1000, 0xFFFF, 0xFFFF, "FL1000G USB 3.0 Host Controller(0x1000)"},
{0x1B73, 0x1000, 0x1D5C, 0x1000, "Anker USB 3.0 Express Card(0x1D5C-0x1000)"},
@@ -29866,7 +30005,7 @@ pci_id_t pci_vid_1B73[] = {
{0x1B73, 0x1100, 0x16B8, 0x6E31, "Allegro Pro USB 3.0 PCIe(0x16B8-0x6E31)"},
}; /* pci_vid_1B73[] */
-pci_id_t pci_vid_1B74[] = {
+static pci_id_t const pci_vid_1B74[] = {
{0x1B74, 0xFFFF, 0xFFFF, 0xFFFF, "OpenVox Communication Co. Ltd.(0x1B74)"},
{0x1B74, 0x0115, 0xFFFF, 0xFFFF, "D115P/D115E Single-port E1/T1 card(0x0115)"},
{0x1B74, 0xD130, 0xFFFF, 0xFFFF, "D130P/D130E Single-port E1/T1 card (3rd GEN)(0xD130)"},
@@ -29876,11 +30015,11 @@ pci_id_t pci_vid_1B74[] = {
{0x1B74, 0xD430, 0xFFFF, 0xFFFF, "D410/430 Quad-port E1/T1 card(0xD430)"},
}; /* pci_vid_1B74[] */
-pci_id_t pci_vid_1B79[] = {
+static pci_id_t const pci_vid_1B79[] = {
{0x1B79, 0xFFFF, 0xFFFF, 0xFFFF, "Absolute Analysis(0x1B79)"},
}; /* pci_vid_1B79[] */
-pci_id_t pci_vid_1B85[] = {
+static pci_id_t const pci_vid_1B85[] = {
{0x1B85, 0xFFFF, 0xFFFF, 0xFFFF, "OCZ Technology Group, Inc.(0x1B85)"},
{0x1B85, 0x1021, 0xFFFF, 0xFFFF, "RevoDrive 3 X2 PCIe SSD 240 GB (Marvell SAS Controller)(0x1021)"},
{0x1B85, 0x1041, 0xFFFF, 0xFFFF, "RevoDrive 3 X2 PCIe SSD 240 GB (Marvell SAS Controller)(0x1041)"},
@@ -29889,12 +30028,12 @@ pci_id_t pci_vid_1B85[] = {
{0x1B85, 0x8788, 0xFFFF, 0xFFFF, "RevoDrive Hybrid(0x8788)"},
}; /* pci_vid_1B85[] */
-pci_id_t pci_vid_1B94[] = {
+static pci_id_t const pci_vid_1B94[] = {
{0x1B94, 0xFFFF, 0xFFFF, 0xFFFF, "Signatec / Dynamic Signals Corp(0x1B94)"},
{0x1B94, 0xE400, 0xFFFF, 0xFFFF, "PX14400 Dual Xilinx Virtex5 based Digitizer(0xE400)"},
}; /* pci_vid_1B94[] */
-pci_id_t pci_vid_1B96[] = {
+static pci_id_t const pci_vid_1B96[] = {
{0x1B96, 0xFFFF, 0xFFFF, 0xFFFF, "Western Digital(0x1B96)"},
{0x1B96, 0x2200, 0xFFFF, 0xFFFF, "Ultrastar DC SN630 NVMe SSD(0x2200)"},
{0x1B96, 0x2201, 0xFFFF, 0xFFFF, "Ultrastar DC SN630 NVMe SSD(0x2201)"},
@@ -29916,27 +30055,27 @@ pci_id_t pci_vid_1B96[] = {
{0x1B96, 0x3734, 0xFFFF, 0xFFFF, "PC SN730 NVMe SSD(0x3734)"},
}; /* pci_vid_1B96[] */
-pci_id_t pci_vid_1B9A[] = {
+static pci_id_t const pci_vid_1B9A[] = {
{0x1B9A, 0xFFFF, 0xFFFF, 0xFFFF, "XAVi Technologies Corp.(0x1B9A)"},
}; /* pci_vid_1B9A[] */
-pci_id_t pci_vid_1BAA[] = {
+static pci_id_t const pci_vid_1BAA[] = {
{0x1BAA, 0xFFFF, 0xFFFF, 0xFFFF, "QNAP Systems, Inc.(0x1BAA)"},
}; /* pci_vid_1BAA[] */
-pci_id_t pci_vid_1BAD[] = {
+static pci_id_t const pci_vid_1BAD[] = {
{0x1BAD, 0xFFFF, 0xFFFF, 0xFFFF, "ReFLEX CES(0x1BAD)"},
{0x1BAD, 0xC001, 0xFFFF, 0xFFFF, "XpressGXA10-LP1150(0xC001)"},
{0x1BAD, 0xC002, 0xFFFF, 0xFFFF, "XpressGXA10-LP1151(0xC002)"},
}; /* pci_vid_1BAD[] */
-pci_id_t pci_vid_1BB0[] = {
+static pci_id_t const pci_vid_1BB0[] = {
{0x1BB0, 0xFFFF, 0xFFFF, 0xFFFF, "SimpliVity Corporation(0x1BB0)"},
{0x1BB0, 0x0002, 0xFFFF, 0xFFFF, "OmniCube Accelerator OA-3000(0x0002)"},
{0x1BB0, 0x0010, 0xFFFF, 0xFFFF, "OmniCube Accelerator OA-3000-2(0x0010)"},
}; /* pci_vid_1BB0[] */
-pci_id_t pci_vid_1BB1[] = {
+static pci_id_t const pci_vid_1BB1[] = {
{0x1BB1, 0xFFFF, 0xFFFF, 0xFFFF, "Seagate Technology PLC(0x1BB1)"},
{0x1BB1, 0x005D, 0xFFFF, 0xFFFF, "Nytro PCIe Flash Storage(0x005D)"},
{0x1BB1, 0x005D, 0x1BB1, 0x6501, "Nytro XP6500-8A1536 1.5TB(0x1BB1-0x6501)"},
@@ -30003,7 +30142,7 @@ pci_id_t pci_vid_1BB1[] = {
{0x1BB1, 0x5026, 0xFFFF, 0xFFFF, "FireCuda 540 SSD(0x5026)"},
}; /* pci_vid_1BB1[] */
-pci_id_t pci_vid_1BB3[] = {
+static pci_id_t const pci_vid_1BB3[] = {
{0x1BB3, 0xFFFF, 0xFFFF, 0xFFFF, "Bluecherry(0x1BB3)"},
{0x1BB3, 0x4304, 0xFFFF, 0xFFFF, "BC-04120A MPEG4 4 port video encoder / decoder(0x4304)"},
{0x1BB3, 0x4309, 0xFFFF, 0xFFFF, "BC-08240A MPEG4 4 port video encoder / decoder(0x4309)"},
@@ -30016,17 +30155,17 @@ pci_id_t pci_vid_1BB3[] = {
{0x1BB3, 0x5310, 0xFFFF, 0xFFFF, "BC-H16480A 16 port H.264 video and audio encoder / decoder(0x5310)"},
}; /* pci_vid_1BB3[] */
-pci_id_t pci_vid_1BB5[] = {
+static pci_id_t const pci_vid_1BB5[] = {
{0x1BB5, 0xFFFF, 0xFFFF, 0xFFFF, "Quantenna Communications, Inc.(0x1BB5)"},
}; /* pci_vid_1BB5[] */
-pci_id_t pci_vid_1BBF[] = {
+static pci_id_t const pci_vid_1BBF[] = {
{0x1BBF, 0xFFFF, 0xFFFF, 0xFFFF, "Maxeler Technologies Ltd.(0x1BBF)"},
{0x1BBF, 0x0003, 0xFFFF, 0xFFFF, "MAX3(0x0003)"},
{0x1BBF, 0x0004, 0xFFFF, 0xFFFF, "MAX4(0x0004)"},
}; /* pci_vid_1BBF[] */
-pci_id_t pci_vid_1BC0[] = {
+static pci_id_t const pci_vid_1BC0[] = {
{0x1BC0, 0xFFFF, 0xFFFF, 0xFFFF, "Innodisk Corporation(0x1BC0)"},
{0x1BC0, 0x1001, 0xFFFF, 0xFFFF, "PCIe 3TG6-P Controller(0x1001)"},
{0x1BC0, 0x1002, 0xFFFF, 0xFFFF, "PCIe 3TE6 Controller (DRAM-less)(0x1002)"},
@@ -30039,17 +30178,17 @@ pci_id_t pci_vid_1BC0[] = {
{0x1BC0, 0x5236, 0xFFFF, 0xFFFF, "PCIe 4TG2-P Controller(0x5236)"},
}; /* pci_vid_1BC0[] */
-pci_id_t pci_vid_1BCD[] = {
+static pci_id_t const pci_vid_1BCD[] = {
{0x1BCD, 0xFFFF, 0xFFFF, 0xFFFF, "Apacer Technology(0x1BCD)"},
{0x1BCD, 0x0120, 0xFFFF, 0xFFFF, "NVMe SSD Drive 960GB(0x0120)"},
}; /* pci_vid_1BCD[] */
-pci_id_t pci_vid_1BCF[] = {
+static pci_id_t const pci_vid_1BCF[] = {
{0x1BCF, 0xFFFF, 0xFFFF, 0xFFFF, "NEC Corporation(0x1BCF)"},
{0x1BCF, 0x001C, 0xFFFF, 0xFFFF, "Vector Engine 1.0(0x001C)"},
}; /* pci_vid_1BCF[] */
-pci_id_t pci_vid_1BD0[] = {
+static pci_id_t const pci_vid_1BD0[] = {
{0x1BD0, 0xFFFF, 0xFFFF, 0xFFFF, "Astronics Corporation(0x1BD0)"},
{0x1BD0, 0x1001, 0xFFFF, 0xFFFF, "Mx5 PMC/XMC Databus Interface Card(0x1001)"},
{0x1BD0, 0x1002, 0xFFFF, 0xFFFF, "PM1553-5 (PC/104+ MIL-STD-1553 Interface Card)(0x1002)"},
@@ -30070,7 +30209,7 @@ pci_id_t pci_vid_1BD0[] = {
{0x1BD0, 0x1203, 0xFFFF, 0xFFFF, "NG3 Series Avionics Discrete Interface(0x1203)"},
}; /* pci_vid_1BD0[] */
-pci_id_t pci_vid_1BD4[] = {
+static pci_id_t const pci_vid_1BD4[] = {
{0x1BD4, 0xFFFF, 0xFFFF, 0xFFFF, "Inspur Electronic Information Industry Co., Ltd.(0x1BD4)"},
{0x1BD4, 0x0911, 0xFFFF, 0xFFFF, "Arria10_PCIe_F10A1150(0x0911)"},
{0x1BD4, 0x1000, 0xFFFF, 0xFFFF, "NS8600G1U160 NVME SSD(0x1000)"},
@@ -30085,42 +30224,47 @@ pci_id_t pci_vid_1BD4[] = {
{0x1BD4, 0x100E, 0xFFFF, 0xFFFF, "NS8500G2Uxxxx, NS8600G2Uxxxx NVME SSD(0x100E)"},
}; /* pci_vid_1BD4[] */
-pci_id_t pci_vid_1BEE[] = {
+static pci_id_t const pci_vid_1BEE[] = {
{0x1BEE, 0xFFFF, 0xFFFF, 0xFFFF, "IXXAT Automation GmbH(0x1BEE)"},
{0x1BEE, 0x0002, 0xFFFF, 0xFFFF, "CAN-IB100/PCIe(0x0002)"},
{0x1BEE, 0x0003, 0xFFFF, 0xFFFF, "CAN-IB200/PCIe(0x0003)"},
}; /* pci_vid_1BEE[] */
-pci_id_t pci_vid_1BEF[] = {
+static pci_id_t const pci_vid_1BEF[] = {
{0x1BEF, 0xFFFF, 0xFFFF, 0xFFFF, "Lantiq(0x1BEF)"},
{0x1BEF, 0x0011, 0xFFFF, 0xFFFF, "MIPS SoC PCI Express Port(0x0011)"},
}; /* pci_vid_1BEF[] */
-pci_id_t pci_vid_1BF4[] = {
+static pci_id_t const pci_vid_1BF4[] = {
{0x1BF4, 0xFFFF, 0xFFFF, 0xFFFF, "VTI Instruments Corporation(0x1BF4)"},
{0x1BF4, 0x0001, 0xFFFF, 0xFFFF, "SentinelEX(0x0001)"},
{0x1BF4, 0x7011, 0xFFFF, 0xFFFF, "RX0xxx(0x7011)"},
}; /* pci_vid_1BF4[] */
-pci_id_t pci_vid_1BF5[] = {
+static pci_id_t const pci_vid_1BF5[] = {
{0x1BF5, 0xFFFF, 0xFFFF, 0xFFFF, "Greenliant(0x1BF5)"},
{0x1BF5, 0x1000, 0xFFFF, 0xFFFF, "G7200 series U.2 NVMe SSD(0x1000)"},
}; /* pci_vid_1BF5[] */
-pci_id_t pci_vid_1BFC[] = {
+static pci_id_t const pci_vid_1BFC[] = {
{0x1BFC, 0xFFFF, 0xFFFF, 0xFFFF, "Duagon AG(0x1BFC)"},
}; /* pci_vid_1BFC[] */
-pci_id_t pci_vid_1BFD[] = {
+static pci_id_t const pci_vid_1BFD[] = {
{0x1BFD, 0xFFFF, 0xFFFF, 0xFFFF, "EeeTOP(0x1BFD)"},
}; /* pci_vid_1BFD[] */
-pci_id_t pci_vid_1C00[] = {
+static pci_id_t const pci_vid_1C00[] = {
{0x1C00, 0xFFFF, 0xFFFF, 0xFFFF, "Nanjing Qinheng Microelectronics Co., Ltd.(0x1C00)"},
+{0x1C00, 0x2170, 0xFFFF, 0xFFFF, "CH351 PCIe Parallel Port Adapter(0x2170)"},
+{0x1C00, 0x2273, 0xFFFF, 0xFFFF, "CH351 PCIe Dual Port Serial Adapter(0x2273)"},
+{0x1C00, 0x3050, 0xFFFF, 0xFFFF, "CH382L PCIe Parallel Port Adapter(0x3050)"},
+{0x1C00, 0x3250, 0xFFFF, 0xFFFF, "CH384 Dual Port Serial and Parallel Port Adapter(0x3250)"},
{0x1C00, 0x3252, 0xFFFF, 0xFFFF, "CH382 PCIe Dual Port Serial Adapter(0x3252)"},
+{0x1C00, 0x3253, 0xFFFF, 0xFFFF, "CH352/CH382 PCI/PCIe Dual Port Serial Adapter(0x3253)"},
}; /* pci_vid_1C00[] */
-pci_id_t pci_vid_1C09[] = {
+static pci_id_t const pci_vid_1C09[] = {
{0x1C09, 0xFFFF, 0xFFFF, 0xFFFF, "CSP, Inc.(0x1C09)"},
{0x1C09, 0x4254, 0xFFFF, 0xFFFF, "10G-PCIE3-8D-2S(0x4254)"},
{0x1C09, 0x4255, 0xFFFF, 0xFFFF, "10G-PCIE3-8D-Q(0x4255)"},
@@ -30136,12 +30280,12 @@ pci_id_t pci_vid_1C09[] = {
{0x1C09, 0x5001, 0xFFFF, 0xFFFF, "25G-PCIE3-8B-2S Security Intelligent Adapter(0x5001)"},
}; /* pci_vid_1C09[] */
-pci_id_t pci_vid_1C1C[] = {
+static pci_id_t const pci_vid_1C1C[] = {
{0x1C1C, 0xFFFF, 0xFFFF, 0xFFFF, "Symphony(0x1C1C)"},
{0x1C1C, 0x0001, 0xFFFF, 0xFFFF, "82C101(0x0001)"},
}; /* pci_vid_1C1C[] */
-pci_id_t pci_vid_1C1F[] = {
+static pci_id_t const pci_vid_1C1F[] = {
{0x1C1F, 0xFFFF, 0xFFFF, 0xFFFF, "SoftLab-NSK(0x1C1F)"},
{0x1C1F, 0x0015, 0xFFFF, 0xFFFF, "FD842(0x0015)"},
{0x1C1F, 0x0019, 0xFFFF, 0xFFFF, "FD722(0x0019)"},
@@ -30153,14 +30297,15 @@ pci_id_t pci_vid_1C1F[] = {
{0x1C1F, 0x0020, 0xFFFF, 0xFFFF, "FD2110(0x0020)"},
{0x1C1F, 0x0021, 0xFFFF, 0xFFFF, "FD722(0x0021)"},
{0x1C1F, 0x0022, 0xFFFF, 0xFFFF, "FD788(0x0022)"},
+{0x1C1F, 0x0023, 0xFFFF, 0xFFFF, "FD722-M2(0x0023)"},
}; /* pci_vid_1C1F[] */
-pci_id_t pci_vid_1C28[] = {
+static pci_id_t const pci_vid_1C28[] = {
{0x1C28, 0xFFFF, 0xFFFF, 0xFFFF, "Lite-On IT Corp. / Plextor(0x1C28)"},
{0x1C28, 0x0122, 0xFFFF, 0xFFFF, "M6e PCI Express SSD [Marvell 88SS9183](0x0122)"},
}; /* pci_vid_1C28[] */
-pci_id_t pci_vid_1C2C[] = {
+static pci_id_t const pci_vid_1C2C[] = {
{0x1C2C, 0xFFFF, 0xFFFF, 0xFFFF, "Silicom Denmark(0x1C2C)"},
{0x1C2C, 0x000A, 0xFFFF, 0xFFFF, "Capture(0x000A)"},
{0x1C2C, 0x000F, 0xFFFF, 0xFFFF, "SmartNIC(0x000F)"},
@@ -30186,6 +30331,7 @@ pci_id_t pci_vid_1C2C[] = {
{0x1C2C, 0xA000, 0xFFFF, 0xFFFF, "FBC2CGG3 Capture 2x40Gb [Mango_02](0xA000)"},
{0x1C2C, 0xA001, 0xFFFF, 0xFFFF, "FBC2CGG3 Capture 2x100Gb [Mango_02](0xA001)"},
{0x1C2C, 0xA003, 0xFFFF, 0xFFFF, "FBC2CGG3 Capture 16x10Gb [Mango](0xA003)"},
+{0x1C2C, 0xA006, 0xFFFF, 0xFFFF, "FBC2CGG3 Capture 2x100Gb [Mango](0xA006)"},
{0x1C2C, 0xA007, 0xFFFF, 0xFFFF, "FBC2CGG3 Capture 2x40Gb [Mango](0xA007)"},
{0x1C2C, 0xA008, 0xFFFF, 0xFFFF, "FBC2CGG3 Capture 2x25Gb [Mango](0xA008)"},
{0x1C2C, 0xA009, 0xFFFF, 0xFFFF, "FBC2CGG3 Capture 16x10Gb [Mango](0xA009)"},
@@ -30198,35 +30344,37 @@ pci_id_t pci_vid_1C2C[] = {
{0x1C2C, 0xA013, 0xFFFF, 0xFFFF, "FB2CGHH Capture 2x25Gb [Tivoli](0xA013)"},
{0x1C2C, 0xA014, 0xFFFF, 0xFFFF, "FB2CGHH Capture 8x10Gb [Tivoli](0xA014)"},
{0x1C2C, 0xA015, 0xFFFF, 0xFFFF, "FB2CGHH Capture 2x100Gb [Tivoli](0xA015)"},
+{0x1C2C, 0xA016, 0xFFFF, 0xFFFF, "FB2CG Capture 8x25Gb [Savona](0xA016)"},
+{0x1C2C, 0xA017, 0xFFFF, 0xFFFF, "FB2CGHH Capture 8x25Gb [Tivoli] a017(0xA017)"},
}; /* pci_vid_1C2C[] */
-pci_id_t pci_vid_1C32[] = {
+static pci_id_t const pci_vid_1C32[] = {
{0x1C32, 0xFFFF, 0xFFFF, 0xFFFF, "Highland Technology, Inc.(0x1C32)"},
}; /* pci_vid_1C32[] */
-pci_id_t pci_vid_1C33[] = {
+static pci_id_t const pci_vid_1C33[] = {
{0x1C33, 0xFFFF, 0xFFFF, 0xFFFF, "Daktronics, Inc(0x1C33)"},
}; /* pci_vid_1C33[] */
-pci_id_t pci_vid_1C36[] = {
+static pci_id_t const pci_vid_1C36[] = {
{0x1C36, 0xFFFF, 0xFFFF, 0xFFFF, "Annapurna Labs Ltd.(0x1C36)"},
{0x1C36, 0x0001, 0xFFFF, 0xFFFF, "Gigabit Ethernet Adapter(0x0001)"},
{0x1C36, 0x0002, 0xFFFF, 0xFFFF, "SFP+ 10G Ethernet Adapter(0x0002)"},
}; /* pci_vid_1C36[] */
-pci_id_t pci_vid_1C3B[] = {
+static pci_id_t const pci_vid_1C3B[] = {
{0x1C3B, 0xFFFF, 0xFFFF, 0xFFFF, "Accensus, LLC(0x1C3B)"},
{0x1C3B, 0x0200, 0xFFFF, 0xFFFF, "Telas2(0x0200)"},
{0x1C3B, 0x0300, 0xFFFF, 0xFFFF, "Telas 2.V(0x0300)"},
}; /* pci_vid_1C3B[] */
-pci_id_t pci_vid_1C44[] = {
+static pci_id_t const pci_vid_1C44[] = {
{0x1C44, 0xFFFF, 0xFFFF, 0xFFFF, "Enmotus Inc(0x1C44)"},
{0x1C44, 0x1100, 0xFFFF, 0xFFFF, "Fuzedrive NVMe SSD(0x1100)"},
{0x1C44, 0x8000, 0xFFFF, 0xFFFF, "8000 Storage IO Controller(0x8000)"},
}; /* pci_vid_1C44[] */
-pci_id_t pci_vid_1C58[] = {
+static pci_id_t const pci_vid_1C58[] = {
{0x1C58, 0xFFFF, 0xFFFF, 0xFFFF, "HGST, Inc.(0x1C58)"},
{0x1C58, 0x0003, 0xFFFF, 0xFFFF, "Ultrastar SN100 Series NVMe SSD(0x0003)"},
{0x1C58, 0x0003, 0x1014, 0x04F5, "PCIe3 1.6TB NVMe Flash Adapter(0x1014-0x04F5)"},
@@ -30236,7 +30384,7 @@ pci_id_t pci_vid_1C58[] = {
{0x1C58, 0x0023, 0x1C58, 0x8823, "Ultrastar Memory (ME200)(0x1C58-0x8823)"},
}; /* pci_vid_1C58[] */
-pci_id_t pci_vid_1C5C[] = {
+static pci_id_t const pci_vid_1C5C[] = {
{0x1C5C, 0xFFFF, 0xFFFF, 0xFFFF, "SK hynix(0x1C5C)"},
{0x1C5C, 0x1282, 0xFFFF, 0xFFFF, "PC300 NVMe Solid State Drive 128GB(0x1282)"},
{0x1C5C, 0x1283, 0xFFFF, 0xFFFF, "PC300 NVMe Solid State Drive 256GB(0x1283)"},
@@ -30283,7 +30431,7 @@ pci_id_t pci_vid_1C5C[] = {
{0x1C5C, 0x2B59, 0xFFFF, 0xFFFF, "PS10x0 Series NVMe Solid State Drives(0x2B59)"},
}; /* pci_vid_1C5C[] */
-pci_id_t pci_vid_1C5F[] = {
+static pci_id_t const pci_vid_1C5F[] = {
{0x1C5F, 0xFFFF, 0xFFFF, 0xFFFF, "Beijing Memblaze Technology Co. Ltd.(0x1C5F)"},
{0x1C5F, 0x000D, 0xFFFF, 0xFFFF, "PBlaze5 520/526(0x000D)"},
{0x1C5F, 0x000D, 0x1C5F, 0x0220, "NVMe SSD PBlaze5 520 1920G AIC(0x1C5F-0x0220)"},
@@ -30392,31 +30540,31 @@ pci_id_t pci_vid_1C5F[] = {
{0x1C5F, 0x0557, 0xFFFF, 0xFFFF, "PBlaze5 910/916(0x0557)"},
}; /* pci_vid_1C5F[] */
-pci_id_t pci_vid_1C63[] = {
+static pci_id_t const pci_vid_1C63[] = {
{0x1C63, 0xFFFF, 0xFFFF, 0xFFFF, "Science and Research Centre of Computer Technology (JSC \"NICEVT\")(0x1C63)"},
{0x1C63, 0x0008, 0xFFFF, 0xFFFF, "K1927BB1Ya [EC8430] Angara Interconnection Network Adapter(0x0008)"},
}; /* pci_vid_1C63[] */
-pci_id_t pci_vid_1C7E[] = {
+static pci_id_t const pci_vid_1C7E[] = {
{0x1C7E, 0xFFFF, 0xFFFF, 0xFFFF, "TTTech Computertechnik AG(0x1C7E)"},
{0x1C7E, 0x0200, 0xFFFF, 0xFFFF, "zFAS Debug Port(0x0200)"},
}; /* pci_vid_1C7E[] */
-pci_id_t pci_vid_1C7F[] = {
+static pci_id_t const pci_vid_1C7F[] = {
{0x1C7F, 0xFFFF, 0xFFFF, 0xFFFF, "Elektrobit Austria GmbH(0x1C7F)"},
{0x1C7F, 0x5100, 0xFFFF, 0xFFFF, "EB5100(0x5100)"},
}; /* pci_vid_1C7F[] */
-pci_id_t pci_vid_1C8A[] = {
+static pci_id_t const pci_vid_1C8A[] = {
{0x1C8A, 0xFFFF, 0xFFFF, 0xFFFF, "TSF5 Corporation(0x1C8A)"},
{0x1C8A, 0x0001, 0xFFFF, 0xFFFF, "Hunter PCI Express(0x0001)"},
}; /* pci_vid_1C8A[] */
-pci_id_t pci_vid_1C8C[] = {
+static pci_id_t const pci_vid_1C8C[] = {
{0x1C8C, 0xFFFF, 0xFFFF, 0xFFFF, "Mobiveil, Inc.(0x1C8C)"},
}; /* pci_vid_1C8C[] */
-pci_id_t pci_vid_1CB0[] = {
+static pci_id_t const pci_vid_1CB0[] = {
{0x1CB0, 0xFFFF, 0xFFFF, 0xFFFF, "Shannon Systems(0x1CB0)"},
{0x1CB0, 0x8266, 0xFFFF, 0xFFFF, "SP4 Series SSD(0x8266)"},
{0x1CB0, 0x8266, 0x1CB0, 0x2021, "SP4 Series OCS U.2 SSD(0x1CB0-0x2021)"},
@@ -30436,20 +30584,20 @@ pci_id_t pci_vid_1CB0[] = {
{0x1CB0, 0xD000, 0x1CB0, 0xAF12, "Venice-X Series NVMe AIC(0x1CB0-0xAF12)"},
}; /* pci_vid_1CB0[] */
-pci_id_t pci_vid_1CB1[] = {
+static pci_id_t const pci_vid_1CB1[] = {
{0x1CB1, 0xFFFF, 0xFFFF, 0xFFFF, "Collion UG & Co.KG(0x1CB1)"},
}; /* pci_vid_1CB1[] */
-pci_id_t pci_vid_1CB5[] = {
+static pci_id_t const pci_vid_1CB5[] = {
{0x1CB5, 0xFFFF, 0xFFFF, 0xFFFF, "Focusrite Audio Engineering Ltd(0x1CB5)"},
{0x1CB5, 0x0002, 0xFFFF, 0xFFFF, "Clarett(0x0002)"},
}; /* pci_vid_1CB5[] */
-pci_id_t pci_vid_1CB8[] = {
+static pci_id_t const pci_vid_1CB8[] = {
{0x1CB8, 0xFFFF, 0xFFFF, 0xFFFF, "Dawning Information Industry Co., Ltd.(0x1CB8)"},
}; /* pci_vid_1CB8[] */
-pci_id_t pci_vid_1CC1[] = {
+static pci_id_t const pci_vid_1CC1[] = {
{0x1CC1, 0xFFFF, 0xFFFF, 0xFFFF, "ADATA Technology Co., Ltd.(0x1CC1)"},
{0x1CC1, 0x1202, 0xFFFF, 0xFFFF, "IM2P32A8 NVMe SSD (DRAM-less)(0x1202)"},
{0x1CC1, 0x2263, 0xFFFF, 0xFFFF, "XPG SX6000 Lite NVMe SSD (DRAM-less)(0x2263)"},
@@ -30458,22 +30606,24 @@ pci_id_t pci_vid_1CC1[] = {
{0x1CC1, 0x33F4, 0xFFFF, 0xFFFF, "IM2P33F4 NVMe SSD (DRAM-less)(0x33F4)"},
{0x1CC1, 0x33F8, 0xFFFF, 0xFFFF, "IM2P33F8 series NVMe SSD (DRAM-less)(0x33F8)"},
{0x1CC1, 0x41C3, 0xFFFF, 0xFFFF, "SM2P41C3 NVMe SSD (DRAM-less)(0x41C3)"},
+{0x1CC1, 0x41C8, 0xFFFF, 0xFFFF, "SM2P41C8 NVMe SSD (DRAM-less)(0x41C8)"},
{0x1CC1, 0x5236, 0xFFFF, 0xFFFF, "XPG GAMMIX S70 BLADE NVMe SSD(0x5236)"},
-{0x1CC1, 0x5350, 0xFFFF, 0xFFFF, "XPG GAMMIX S50 NVMe SSD(0x5350)"},
-{0x1CC1, 0x5762, 0xFFFF, 0xFFFF, "FALCON NVMe SSD(0x5762)"},
+{0x1CC1, 0x5350, 0xFFFF, 0xFFFF, "XPG GAMMIX S50, S50 Lite NVMe SSD(0x5350)"},
+{0x1CC1, 0x5370, 0xFFFF, 0xFFFF, "GAMMIX S70 BLADE, PS5 PREMIUM NVMe SSD(0x5370)"},
+{0x1CC1, 0x5762, 0xFFFF, 0xFFFF, "FALCON, GAMMIX S41, SPECTRIX S40G NVMe SSD (DRAM-less)(0x5762)"},
{0x1CC1, 0x5763, 0xFFFF, 0xFFFF, "XPG GAMMIX S5 NVMe SSD (DRAM-less)(0x5763)"},
-{0x1CC1, 0x5766, 0xFFFF, 0xFFFF, "ADATA XPG GAMMIXS1 1L Media (256 GB SSD)(0x5766)"},
+{0x1CC1, 0x5766, 0xFFFF, 0xFFFF, "XPG GAMMIXS1 1L, XPG GAMMIX S5, LEGEND 710 / 740, SWORDFISH NVMe SSD (DRAM-less)(0x5766)"},
{0x1CC1, 0x612A, 0xFFFF, 0xFFFF, "LEGEND 750 NVMe SSD (DRAM-less)(0x612A)"},
-{0x1CC1, 0x613A, 0xFFFF, 0xFFFF, "LEGEND 840 NVMe SSD (DRAM-less)(0x613A)"},
+{0x1CC1, 0x613A, 0xFFFF, 0xFFFF, "ATOM 50, LEGEND 840 NVMe SSD (DRAM-less)(0x613A)"},
{0x1CC1, 0x621A, 0xFFFF, 0xFFFF, "LEGEND 850 NVMe SSD (DRAM-less)(0x621A)"},
{0x1CC1, 0x622A, 0xFFFF, 0xFFFF, "LEGEND 960 NVMe SSD(0x622A)"},
-{0x1CC1, 0x624A, 0xFFFF, 0xFFFF, "LEGEND 700 NVMe SSD (DRAM-less)(0x624A)"},
+{0x1CC1, 0x624A, 0xFFFF, 0xFFFF, "LEGEND 700, XPG GAMMIX S20 NVMe SSD (DRAM-less)(0x624A)"},
{0x1CC1, 0x627A, 0xFFFF, 0xFFFF, "LEGEND 800 NVMe SSD (DRAM-less)(0x627A)"},
{0x1CC1, 0x628A, 0xFFFF, 0xFFFF, "LEGEND 800 NVMe SSD (DRAM-less)(0x628A)"},
{0x1CC1, 0x8201, 0xFFFF, 0xFFFF, "XPG SX8200 Pro PCIe Gen3x4 M.2 2280 Solid State Drive(0x8201)"},
}; /* pci_vid_1CC1[] */
-pci_id_t pci_vid_1CC4[] = {
+static pci_id_t const pci_vid_1CC4[] = {
{0x1CC4, 0xFFFF, 0xFFFF, 0xFFFF, "Shenzhen Unionmemory Information System Ltd.(0x1CC4)"},
{0x1CC4, 0x1203, 0xFFFF, 0xFFFF, "NVMe SSD Controller UHXXXa series(0x1203)"},
{0x1CC4, 0x1203, 0x1CC4, 0xA121, "NVMe SSD UHXXXa series U.2 960GB(0x1CC4-0xA121)"},
@@ -30524,24 +30674,24 @@ pci_id_t pci_vid_1CC4[] = {
{0x1CC4, 0x8030, 0x1CC4, 0x2215, "NVMe SSD UH832a E3.S 12.8TB(0x1CC4-0x2215)"},
}; /* pci_vid_1CC4[] */
-pci_id_t pci_vid_1CC5[] = {
+static pci_id_t const pci_vid_1CC5[] = {
{0x1CC5, 0xFFFF, 0xFFFF, 0xFFFF, "Embedded Intelligence, Inc.(0x1CC5)"},
{0x1CC5, 0x0100, 0xFFFF, 0xFFFF, "PCIe-CAN-02 Dual CAN bus (9-pin male). PCI Express x1.(0x0100)"},
{0x1CC5, 0x0101, 0xFFFF, 0xFFFF, "PCIe-CAN-01 Single CAN bus (9-pin male). PCI Express x1.(0x0101)"},
}; /* pci_vid_1CC5[] */
-pci_id_t pci_vid_1CC7[] = {
+static pci_id_t const pci_vid_1CC7[] = {
{0x1CC7, 0xFFFF, 0xFFFF, 0xFFFF, "Radian Memory Systems Inc.(0x1CC7)"},
{0x1CC7, 0x0200, 0xFFFF, 0xFFFF, "RMS-200 PCIe NVMe SSD(0x0200)"},
{0x1CC7, 0x0250, 0xFFFF, 0xFFFF, "RMS-250 U.2 NVMe SSD(0x0250)"},
}; /* pci_vid_1CC7[] */
-pci_id_t pci_vid_1CCF[] = {
+static pci_id_t const pci_vid_1CCF[] = {
{0x1CCF, 0xFFFF, 0xFFFF, 0xFFFF, "Zoom Corporation(0x1CCF)"},
{0x1CCF, 0x0001, 0xFFFF, 0xFFFF, "TAC-2 Thunderbolt Audio Converter(0x0001)"},
}; /* pci_vid_1CCF[] */
-pci_id_t pci_vid_1CD2[] = {
+static pci_id_t const pci_vid_1CD2[] = {
{0x1CD2, 0xFFFF, 0xFFFF, 0xFFFF, "SesKion GmbH(0x1CD2)"},
{0x1CD2, 0x0301, 0xFFFF, 0xFFFF, "Simulyzer-RT CompactPCI Serial DIO-1 card(0x0301)"},
{0x1CD2, 0x0302, 0xFFFF, 0xFFFF, "Simulyzer-RT CompactPCI Serial PSI5-ECU-1 card(0x0302)"},
@@ -30552,7 +30702,7 @@ pci_id_t pci_vid_1CD2[] = {
{0x1CD2, 0x0307, 0xFFFF, 0xFFFF, "Simulyzer-RT CompactPCI Serial DIO-2 card [Xilinx Zynq UltraScale+](0x0307)"},
}; /* pci_vid_1CD2[] */
-pci_id_t pci_vid_1CD7[] = {
+static pci_id_t const pci_vid_1CD7[] = {
{0x1CD7, 0xFFFF, 0xFFFF, 0xFFFF, "Nanjing Magewell Electronics Co., Ltd.(0x1CD7)"},
{0x1CD7, 0x0002, 0xFFFF, 0xFFFF, "Pro Capture AIO(0x0002)"},
{0x1CD7, 0x0010, 0xFFFF, 0xFFFF, "Pro Capture Endpoint(0x0010)"},
@@ -30564,11 +30714,11 @@ pci_id_t pci_vid_1CD7[] = {
{0x1CD7, 0x0054, 0xFFFF, 0xFFFF, "Eco Capture Quad SDI M.2(0x0054)"},
}; /* pci_vid_1CD7[] */
-pci_id_t pci_vid_1CDD[] = {
+static pci_id_t const pci_vid_1CDD[] = {
{0x1CDD, 0xFFFF, 0xFFFF, 0xFFFF, "secunet Security Networks AG(0x1CDD)"},
}; /* pci_vid_1CDD[] */
-pci_id_t pci_vid_1CE4[] = {
+static pci_id_t const pci_vid_1CE4[] = {
{0x1CE4, 0xFFFF, 0xFFFF, 0xFFFF, "Exablaze(0x1CE4)"},
{0x1CE4, 0x0001, 0xFFFF, 0xFFFF, "ExaNIC X4(0x0001)"},
{0x1CE4, 0x0002, 0xFFFF, 0xFFFF, "ExaNIC X2(0x0002)"},
@@ -30585,37 +30735,38 @@ pci_id_t pci_vid_1CE4[] = {
{0x1CE4, 0x0100, 0xFFFF, 0xFFFF, "ExaDISK FX1(0x0100)"},
}; /* pci_vid_1CE4[] */
-pci_id_t pci_vid_1CF0[] = {
+static pci_id_t const pci_vid_1CF0[] = {
{0x1CF0, 0xFFFF, 0xFFFF, 0xFFFF, "Akitio(0x1CF0)"},
}; /* pci_vid_1CF0[] */
-pci_id_t pci_vid_1CF7[] = {
+static pci_id_t const pci_vid_1CF7[] = {
{0x1CF7, 0xFFFF, 0xFFFF, 0xFFFF, "Subspace Dynamics(0x1CF7)"},
}; /* pci_vid_1CF7[] */
-pci_id_t pci_vid_1CFA[] = {
+static pci_id_t const pci_vid_1CFA[] = {
{0x1CFA, 0xFFFF, 0xFFFF, 0xFFFF, "Corsair Memory, Inc(0x1CFA)"},
}; /* pci_vid_1CFA[] */
-pci_id_t pci_vid_1CFD[] = {
+static pci_id_t const pci_vid_1CFD[] = {
{0x1CFD, 0xFFFF, 0xFFFF, 0xFFFF, "Mangstor(0x1CFD)"},
{0x1CFD, 0x6300, 0xFFFF, 0xFFFF, "MX6300 series PCIe x8 NVMe SSD(0x6300)"},
}; /* pci_vid_1CFD[] */
-pci_id_t pci_vid_1D00[] = {
+static pci_id_t const pci_vid_1D00[] = {
{0x1D00, 0xFFFF, 0xFFFF, 0xFFFF, "Pure Storage(0x1D00)"},
}; /* pci_vid_1D00[] */
-pci_id_t pci_vid_1D05[] = {
+static pci_id_t const pci_vid_1D05[] = {
{0x1D05, 0xFFFF, 0xFFFF, 0xFFFF, "Tongfang Hongkong Limited(0x1D05)"},
}; /* pci_vid_1D05[] */
-pci_id_t pci_vid_1D0F[] = {
+static pci_id_t const pci_vid_1D0F[] = {
{0x1D0F, 0xFFFF, 0xFFFF, 0xFFFF, "Amazon.com, Inc.(0x1D0F)"},
{0x1D0F, 0x7064, 0xFFFF, 0xFFFF, "NeuronDevice (Inferentia)(0x7064)"},
{0x1D0F, 0x7164, 0xFFFF, 0xFFFF, "NeuronDevice (Trainium)(0x7164)"},
{0x1D0F, 0x7164, 0x1D0F, 0x0000, "Trainium(0x1D0F-0x0000)"},
{0x1D0F, 0x7264, 0xFFFF, 0xFFFF, "NeuronDevice (Inferentia2)(0x7264)"},
+{0x1D0F, 0x7364, 0xFFFF, 0xFFFF, "NeuronDevice (Trainium2)(0x7364)"},
{0x1D0F, 0x8061, 0xFFFF, 0xFFFF, "NVMe EBS Controller(0x8061)"},
{0x1D0F, 0xCD01, 0xFFFF, 0xFFFF, "NVMe SSD Controller(0xCD01)"},
{0x1D0F, 0xEC20, 0xFFFF, 0xFFFF, "Elastic Network Adapter (ENA)(0xEC20)"},
@@ -30624,7 +30775,7 @@ pci_id_t pci_vid_1D0F[] = {
{0x1D0F, 0xEFA2, 0xFFFF, 0xFFFF, "Elastic Fabric Adapter (EFA)(0xEFA2)"},
}; /* pci_vid_1D0F[] */
-pci_id_t pci_vid_1D17[] = {
+static pci_id_t const pci_vid_1D17[] = {
{0x1D17, 0xFFFF, 0xFFFF, 0xFFFF, "Zhaoxin(0x1D17)"},
{0x1D17, 0x070F, 0xFFFF, 0xFFFF, "ZX-100 PCI Express Root Port(0x070F)"},
{0x1D17, 0x0710, 0xFFFF, 0xFFFF, "ZX-100/ZX-200 PCI Express Root Port(0x0710)"},
@@ -30634,55 +30785,67 @@ pci_id_t pci_vid_1D17[] = {
{0x1D17, 0x0714, 0xFFFF, 0xFFFF, "ZX-100/ZX-200 PCI Express Root Port(0x0714)"},
{0x1D17, 0x0715, 0xFFFF, 0xFFFF, "ZX-100/ZX-200 PCI Express Root Port(0x0715)"},
{0x1D17, 0x0716, 0xFFFF, 0xFFFF, "ZX-D PCI Express Root Port(0x0716)"},
-{0x1D17, 0x0717, 0xFFFF, 0xFFFF, "KX-5000/KX-6000/KX-6000G/KH-40000 PCI Express Root Port(0x0717)"},
-{0x1D17, 0x0718, 0xFFFF, 0xFFFF, "KX-5000/KX-6000/KX-6000G/KH-40000 PCI Express Root Port(0x0718)"},
-{0x1D17, 0x0719, 0xFFFF, 0xFFFF, "KX-5000/KX-6000/KX-6000G/KH-40000 PCI Express Root Port(0x0719)"},
+{0x1D17, 0x0717, 0xFFFF, 0xFFFF, "KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 PCI Express Root Port(0x0717)"},
+{0x1D17, 0x0718, 0xFFFF, 0xFFFF, "KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 PCI Express Root Port(0x0718)"},
+{0x1D17, 0x0719, 0xFFFF, 0xFFFF, "KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 PCI Express Root Port(0x0719)"},
{0x1D17, 0x071A, 0xFFFF, 0xFFFF, "KX-5000/KX-6000/KX-6000G/KH-40000 PCI Express Root Port(0x071A)"},
-{0x1D17, 0x071B, 0xFFFF, 0xFFFF, "KX-5000/KX-6000/KX-6000G/KH-40000 PCI Express Root Port(0x071B)"},
-{0x1D17, 0x071C, 0xFFFF, 0xFFFF, "KX-5000/KX-6000/KX-6000G/KH-40000 PCI Express Root Port(0x071C)"},
+{0x1D17, 0x071B, 0xFFFF, 0xFFFF, "KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 PCI Express Root Port(0x071B)"},
+{0x1D17, 0x071C, 0xFFFF, 0xFFFF, "KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 PCI Express Root Port(0x071C)"},
{0x1D17, 0x071D, 0xFFFF, 0xFFFF, "KX-5000/KX-6000/KX-6000G/KH-40000 PCI Express Root Port(0x071D)"},
-{0x1D17, 0x071E, 0xFFFF, 0xFFFF, "KX-5000/KX-6000/KX-6000G/KH-40000 PCI Express Root Port(0x071E)"},
+{0x1D17, 0x071E, 0xFFFF, 0xFFFF, "KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 PCI Express Root Port(0x071E)"},
{0x1D17, 0x071F, 0xFFFF, 0xFFFF, "ZX-200 Upstream Port of PCI Express Switch(0x071F)"},
{0x1D17, 0x0720, 0xFFFF, 0xFFFF, "ZX-200 PCIE RC6 controller(0x0720)"},
{0x1D17, 0x0721, 0xFFFF, 0xFFFF, "ZX-200 Downstream Port of PCI Express Switch(0x0721)"},
{0x1D17, 0x0722, 0xFFFF, 0xFFFF, "ZX-200 PCIE P2C bridge(0x0722)"},
{0x1D17, 0x0731, 0xFFFF, 0xFFFF, "KH-40000 PCI Express Root Port(0x0731)"},
-{0x1D17, 0x0732, 0xFFFF, 0xFFFF, "KH-40000 PCI Express Root Port(0x0732)"},
+{0x1D17, 0x0732, 0xFFFF, 0xFFFF, "KH-40000/KX-7000 PCI Express Root Port(0x0732)"},
+{0x1D17, 0x0733, 0xFFFF, 0xFFFF, "KX-7000 PCIE Express Root Port(0x0733)"},
+{0x1D17, 0x0734, 0xFFFF, 0xFFFF, "KX-7000 PCIE Express Root Port(0x0734)"},
+{0x1D17, 0x0735, 0xFFFF, 0xFFFF, "KX-7000 PCIE Express Root Port(0x0735)"},
+{0x1D17, 0x0736, 0xFFFF, 0xFFFF, "KX-7000 PCIE Express Root Port(0x0736)"},
+{0x1D17, 0x0737, 0xFFFF, 0xFFFF, "KX-7000 PCIE Express Root Port(0x0737)"},
+{0x1D17, 0x0738, 0xFFFF, 0xFFFF, "KX-7000 PCIE Express Root Port(0x0738)"},
+{0x1D17, 0x0739, 0xFFFF, 0xFFFF, "KX-7000 PCIE Express Root Port(0x0739)"},
+{0x1D17, 0x073A, 0xFFFF, 0xFFFF, "KX-7000 PCIE Express Root Port(0x073A)"},
+{0x1D17, 0x073B, 0xFFFF, 0xFFFF, "KX-7000 PCIE Express Root Port(0x073B)"},
{0x1D17, 0x1000, 0xFFFF, 0xFFFF, "ZX-D Standard Host Bridge(0x1000)"},
-{0x1D17, 0x1001, 0xFFFF, 0xFFFF, "ZX-D/ZX-E/KH-40000 Miscellaneous Bus(0x1001)"},
+{0x1D17, 0x1001, 0xFFFF, 0xFFFF, "ZX-D/ZX-E/KH-40000/KX-7000 Miscellaneous Bus(0x1001)"},
{0x1D17, 0x1003, 0xFFFF, 0xFFFF, "ZX-E Standard Host Bridge(0x1003)"},
{0x1D17, 0x1005, 0xFFFF, 0xFFFF, "KH-40000 Standard Host Bridge(0x1005)"},
{0x1D17, 0x1006, 0xFFFF, 0xFFFF, "KX-6000G Standard Host Bridge(0x1006)"},
+{0x1D17, 0x1007, 0xFFFF, 0xFFFF, "KX-7000 Standard Host Bridge(0x1007)"},
{0x1D17, 0x3001, 0xFFFF, 0xFFFF, "ZX-100 Standard Host Bridge(0x3001)"},
{0x1D17, 0x300A, 0xFFFF, 0xFFFF, "ZX-100 Miscellaneous Bus(0x300A)"},
-{0x1D17, 0x3038, 0xFFFF, 0xFFFF, "ZX-100/ZX-200/KX-6000/KX-6000G/KH-40000 Standard Universal PCI to USB Host Controller(0x3038)"},
-{0x1D17, 0x3104, 0xFFFF, 0xFFFF, "ZX-100/ZX-200/KX-6000/KX-6000G/KH-40000 Standard Enhanced PCI to USB Host Controller(0x3104)"},
-{0x1D17, 0x31B0, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000 Standard Host Bridge(0x31B0)"},
-{0x1D17, 0x31B1, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000 Standard Host Bridge(0x31B1)"},
-{0x1D17, 0x31B2, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000 DRAM Controller(0x31B2)"},
-{0x1D17, 0x31B3, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000 Power Management Controller(0x31B3)"},
-{0x1D17, 0x31B4, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000 I/O APIC(0x31B4)"},
-{0x1D17, 0x31B5, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000 Scratch Device(0x31B5)"},
-{0x1D17, 0x31B7, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000 Standard Host Bridge(0x31B7)"},
+{0x1D17, 0x3038, 0xFFFF, 0xFFFF, "ZX-100/ZX-200/KX-6000/KX-6000G/KH-40000/KX-7000 Standard Universal PCI to USB Host Controller(0x3038)"},
+{0x1D17, 0x3104, 0xFFFF, 0xFFFF, "ZX-100/ZX-200/KX-6000/KX-6000G/KH-40000/KX-7000 Standard Enhanced PCI to USB Host Controller(0x3104)"},
+{0x1D17, 0x31B0, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 Standard Host Bridge(0x31B0)"},
+{0x1D17, 0x31B1, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 Standard Host Bridge(0x31B1)"},
+{0x1D17, 0x31B2, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 DRAM Controller(0x31B2)"},
+{0x1D17, 0x31B3, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 Power Management Controller(0x31B3)"},
+{0x1D17, 0x31B4, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 I/O APIC(0x31B4)"},
+{0x1D17, 0x31B5, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 Scratch Device(0x31B5)"},
+{0x1D17, 0x31B7, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 Standard Host Bridge(0x31B7)"},
{0x1D17, 0x31B8, 0xFFFF, 0xFFFF, "ZX-100/ZX-D PCI to PCI Bridge(0x31B8)"},
-{0x1D17, 0x3288, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000 High Definition Audio Controller(0x3288)"},
+{0x1D17, 0x3200, 0xFFFF, 0xFFFF, "KX-7000 Host Bridge(0x3200)"},
+{0x1D17, 0x3288, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 High Definition Audio Controller(0x3288)"},
{0x1D17, 0x345B, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000 Miscellaneous Bus(0x345B)"},
{0x1D17, 0x3A02, 0xFFFF, 0xFFFF, "ZX-100 C-320 GPU(0x3A02)"},
{0x1D17, 0x3A03, 0xFFFF, 0xFFFF, "ZX-D C-860 GPU(0x3A03)"},
-{0x1D17, 0x3A04, 0xFFFF, 0xFFFF, "ZX-E C-960 GPU(0x3A04)"},
+{0x1D17, 0x3A04, 0xFFFF, 0xFFFF, "KX-6000 C-960 GPU(0x3A04)"},
+{0x1D17, 0x3A05, 0xFFFF, 0xFFFF, "KX-7000 C-1190 GPU(0x3A05)"},
{0x1D17, 0x3B01, 0xFFFF, 0xFFFF, "KH-40000 OPI Controller(0x3B01)"},
{0x1D17, 0x3B02, 0xFFFF, 0xFFFF, "KH-40000 OPI Controller(0x3B02)"},
{0x1D17, 0x3B03, 0xFFFF, 0xFFFF, "KH-40000 OPI Controller(0x3B03)"},
{0x1D17, 0x3B04, 0xFFFF, 0xFFFF, "KH-40000 OPI Controller(0x3B04)"},
-{0x1D17, 0x3C00, 0xFFFF, 0xFFFF, "KH-40000 DRAM Controller(0x3C00)"},
+{0x1D17, 0x3C00, 0xFFFF, 0xFFFF, "KH-40000/KX-7000 DRAM Controller(0x3C00)"},
{0x1D17, 0x3C02, 0xFFFF, 0xFFFF, "KX-6000G DRAM Controller(0x3C02)"},
{0x1D17, 0x3D01, 0xFFFF, 0xFFFF, "KX-6000G C-1080 GPU(0x3D01)"},
-{0x1D17, 0x9002, 0xFFFF, 0xFFFF, "ZX-100/ZX-200/KH-40000 EIDE Controller(0x9002)"},
+{0x1D17, 0x9002, 0xFFFF, 0xFFFF, "ZX-100/ZX-200/KH-40000/KX-7000 EIDE Controller(0x9002)"},
{0x1D17, 0x9003, 0xFFFF, 0xFFFF, "ZX-100/KX-6000/KX-6000G EIDE Controller(0x9003)"},
-{0x1D17, 0x9043, 0xFFFF, 0xFFFF, "KX-6000G/KH-40000 RAID Controller(0x9043)"},
+{0x1D17, 0x9043, 0xFFFF, 0xFFFF, "KX-6000G/KH-40000/KX-7000 RAID Controller(0x9043)"},
{0x1D17, 0x9045, 0xFFFF, 0xFFFF, "ZX-100/ZX-D/ZX-E RAID Accelerator 0(0x9045)"},
{0x1D17, 0x9046, 0xFFFF, 0xFFFF, "ZX-D/ZX-E RAID Accelerator 1(0x9046)"},
-{0x1D17, 0x9083, 0xFFFF, 0xFFFF, "ZX-100/ZX-200/KX-6000/KX-6000G/KH-40000 StorX AHCI Controller(0x9083)"},
+{0x1D17, 0x9083, 0xFFFF, 0xFFFF, "ZX-100/ZX-200/KX-6000/KX-6000G/KH-40000/KX-7000 StorX AHCI Controller(0x9083)"},
{0x1D17, 0x9084, 0xFFFF, 0xFFFF, "ZX-100 StorX AHCI Controller(0x9084)"},
{0x1D17, 0x9100, 0xFFFF, 0xFFFF, "ZX-200 Cross bus(0x9100)"},
{0x1D17, 0x9101, 0xFFFF, 0xFFFF, "ZX-200 Traffic Controller(0x9101)"},
@@ -30690,25 +30853,29 @@ pci_id_t pci_vid_1D17[] = {
{0x1D17, 0x9142, 0xFFFF, 0xFFFF, "ZX-D High Definition Audio Controller(0x9142)"},
{0x1D17, 0x9144, 0xFFFF, 0xFFFF, "ZX-E High Definition Audio Controller(0x9144)"},
{0x1D17, 0x9145, 0xFFFF, 0xFFFF, "KX-6000G High Definition Audio Controller(0x9145)"},
+{0x1D17, 0x9146, 0xFFFF, 0xFFFF, "KX-7000 High Definition Audio Controller(0x9146)"},
{0x1D17, 0x9180, 0xFFFF, 0xFFFF, "ZX-200 Networking Gigabit Ethernet Adapter(0x9180)"},
{0x1D17, 0x91C1, 0xFFFF, 0xFFFF, "KH-40000 ZPI Controller(0x91C1)"},
{0x1D17, 0x91C2, 0xFFFF, 0xFFFF, "KH-40000 ZPI Controller(0x91C2)"},
{0x1D17, 0x9202, 0xFFFF, 0xFFFF, "ZX-100 USB eXtensible Host Controller(0x9202)"},
{0x1D17, 0x9203, 0xFFFF, 0xFFFF, "ZX-200 USB eXtensible Host Controller(0x9203)"},
-{0x1D17, 0x9204, 0xFFFF, 0xFFFF, "KX-6000/KX-6000G USB eXtensible Host Controller(0x9204)"},
+{0x1D17, 0x9204, 0xFFFF, 0xFFFF, "KX-6000/KX-6000G/KX-7000 USB3 xHCI Host Controller(0x9204)"},
{0x1D17, 0x9205, 0xFFFF, 0xFFFF, "KH-40000 USB eXtensible Host Controller(0x9205)"},
+{0x1D17, 0x9206, 0xFFFF, 0xFFFF, "KX-7000 USB4 Contoller(0x9206)"},
{0x1D17, 0x9286, 0xFFFF, 0xFFFF, "ZX-D eMMC Host Controller(0x9286)"},
-{0x1D17, 0x9300, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000 eSPI Host Controller(0x9300)"},
+{0x1D17, 0x9300, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 eSPI Host Controller(0x9300)"},
+{0x1D17, 0x9500, 0xFFFF, 0xFFFF, "KX-7000 I2S Controller(0x9500)"},
+{0x1D17, 0x9501, 0xFFFF, 0xFFFF, "KX-7000 I2S Controller(0x9501)"},
{0x1D17, 0x95D0, 0xFFFF, 0xFFFF, "ZX-100 Universal SD Host Controller(0x95D0)"},
-{0x1D17, 0xF410, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000 PCI Com Port(0xF410)"},
+{0x1D17, 0xF410, 0xFFFF, 0xFFFF, "ZX-100/KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 PCI Com Port(0xF410)"},
}; /* pci_vid_1D17[] */
-pci_id_t pci_vid_1D18[] = {
+static pci_id_t const pci_vid_1D18[] = {
{0x1D18, 0xFFFF, 0xFFFF, 0xFFFF, "RME(0x1D18)"},
{0x1D18, 0x0001, 0xFFFF, 0xFFFF, "Fireface UFX+(0x0001)"},
}; /* pci_vid_1D18[] */
-pci_id_t pci_vid_1D1C[] = {
+static pci_id_t const pci_vid_1D1C[] = {
{0x1D1C, 0xFFFF, 0xFFFF, 0xFFFF, "Barefoot Networks, Inc.(0x1D1C)"},
{0x1D1C, 0x0001, 0xFFFF, 0xFFFF, "Tofino 1(0x0001)"},
{0x1D1C, 0x0010, 0xFFFF, 0xFFFF, "Tofino 1(0x0010)"},
@@ -30716,24 +30883,24 @@ pci_id_t pci_vid_1D1C[] = {
{0x1D1C, 0x0110, 0xFFFF, 0xFFFF, "Tofino 2(0x0110)"},
}; /* pci_vid_1D1C[] */
-pci_id_t pci_vid_1D1D[] = {
+static pci_id_t const pci_vid_1D1D[] = {
{0x1D1D, 0xFFFF, 0xFFFF, 0xFFFF, "CNEX Labs(0x1D1D)"},
{0x1D1D, 0x1F1F, 0xFFFF, 0xFFFF, "QEMU NVM Express LightNVM Controller(0x1F1F)"},
{0x1D1D, 0x2807, 0xFFFF, 0xFFFF, "8800 series NVMe SSD(0x2807)"},
}; /* pci_vid_1D1D[] */
-pci_id_t pci_vid_1D21[] = {
+static pci_id_t const pci_vid_1D21[] = {
{0x1D21, 0xFFFF, 0xFFFF, 0xFFFF, "Allo(0x1D21)"},
}; /* pci_vid_1D21[] */
-pci_id_t pci_vid_1D22[] = {
+static pci_id_t const pci_vid_1D22[] = {
{0x1D22, 0xFFFF, 0xFFFF, 0xFFFF, "Baidu Technology(0x1D22)"},
{0x1D22, 0x1380, 0xFFFF, 0xFFFF, "Cloud Storage Device(0x1380)"},
{0x1D22, 0x3684, 0xFFFF, 0xFFFF, "Kunlun AI Accelerator(0x3684)"},
{0x1D22, 0x3685, 0xFFFF, 0xFFFF, "Kunlun2 AI Accelerator [VF](0x3685)"},
}; /* pci_vid_1D22[] */
-pci_id_t pci_vid_1D26[] = {
+static pci_id_t const pci_vid_1D26[] = {
{0x1D26, 0xFFFF, 0xFFFF, 0xFFFF, "Kalray Inc.(0x1D26)"},
{0x1D26, 0x0040, 0xFFFF, 0xFFFF, "Turbocard2 Accelerator(0x0040)"},
{0x1D26, 0x0080, 0xFFFF, 0xFFFF, "Open Network Interface Card 80G(0x0080)"},
@@ -30742,7 +30909,7 @@ pci_id_t pci_vid_1D26[] = {
{0x1D26, 0xE004, 0xFFFF, 0xFFFF, "AB01/EMB01 Development Board(0xE004)"},
}; /* pci_vid_1D26[] */
-pci_id_t pci_vid_1D37[] = {
+static pci_id_t const pci_vid_1D37[] = {
{0x1D37, 0xFFFF, 0xFFFF, 0xFFFF, "NovaSparks(0x1D37)"},
{0x1D37, 0x0013, 0xFFFF, 0xFFFF, "PM3(0x0013)"},
{0x1D37, 0x0014, 0xFFFF, 0xFFFF, "PM4(0x0014)"},
@@ -30750,70 +30917,74 @@ pci_id_t pci_vid_1D37[] = {
{0x1D37, 0x0016, 0xFFFF, 0xFFFF, "PM4edge User Device(0x0016)"},
}; /* pci_vid_1D37[] */
-pci_id_t pci_vid_1D40[] = {
+static pci_id_t const pci_vid_1D40[] = {
{0x1D40, 0xFFFF, 0xFFFF, 0xFFFF, "Techman Electronics (Changshu) Co., Ltd.(0x1D40)"},
{0x1D40, 0x5501, 0xFFFF, 0xFFFF, "XC100C55-xxxx NVME SSD(0x5501)"},
{0x1D40, 0x5C01, 0xFFFF, 0xFFFF, "XC100C5C-xxxx, XC100E5C-xxxx NVME SSD(0x5C01)"},
{0x1D40, 0xB100, 0xFFFF, 0xFFFF, "PV100C55-xxxx NVME SSD(0xB100)"},
}; /* pci_vid_1D40[] */
-pci_id_t pci_vid_1D44[] = {
+static pci_id_t const pci_vid_1D44[] = {
{0x1D44, 0xFFFF, 0xFFFF, 0xFFFF, "DPT(0x1D44)"},
{0x1D44, 0xA400, 0xFFFF, 0xFFFF, "PM2x24/PM3224(0xA400)"},
}; /* pci_vid_1D44[] */
-pci_id_t pci_vid_1D49[] = {
+static pci_id_t const pci_vid_1D49[] = {
{0x1D49, 0xFFFF, 0xFFFF, 0xFFFF, "Lenovo(0x1D49)"},
-{0x1D49, 0x0522, 0xFFFF, 0xFFFF, "ThinkSystem RAID 5350-8i PCIe 12Gb Internal Adapter(0x0522)"},
}; /* pci_vid_1D49[] */
-pci_id_t pci_vid_1D4C[] = {
+static pci_id_t const pci_vid_1D4C[] = {
{0x1D4C, 0xFFFF, 0xFFFF, 0xFFFF, "Diamanti, Inc.(0x1D4C)"},
}; /* pci_vid_1D4C[] */
-pci_id_t pci_vid_1D5C[] = {
+static pci_id_t const pci_vid_1D5C[] = {
{0x1D5C, 0xFFFF, 0xFFFF, 0xFFFF, "Fantasia Trading LLC(0x1D5C)"},
}; /* pci_vid_1D5C[] */
-pci_id_t pci_vid_1D61[] = {
+static pci_id_t const pci_vid_1D61[] = {
{0x1D61, 0xFFFF, 0xFFFF, 0xFFFF, "Technobox, Inc.(0x1D61)"},
}; /* pci_vid_1D61[] */
-pci_id_t pci_vid_1D62[] = {
+static pci_id_t const pci_vid_1D62[] = {
{0x1D62, 0xFFFF, 0xFFFF, 0xFFFF, "Nebbiolo Technologies(0x1D62)"},
}; /* pci_vid_1D62[] */
-pci_id_t pci_vid_1D65[] = {
+static pci_id_t const pci_vid_1D65[] = {
{0x1D65, 0xFFFF, 0xFFFF, 0xFFFF, "Imagine Communications Corp.(0x1D65)"},
{0x1D65, 0x04DE, 0xFFFF, 0xFFFF, "Taurus/McKinley(0x04DE)"},
}; /* pci_vid_1D65[] */
-pci_id_t pci_vid_1D69[] = {
+static pci_id_t const pci_vid_1D69[] = {
{0x1D69, 0xFFFF, 0xFFFF, 0xFFFF, "Celeno Communications(0x1D69)"},
{0x1D69, 0x2432, 0xFFFF, 0xFFFF, "CL2432(0x2432)"},
{0x1D69, 0x2440, 0xFFFF, 0xFFFF, "CL2440(0x2440)"},
}; /* pci_vid_1D69[] */
-pci_id_t pci_vid_1D6A[] = {
+static pci_id_t const pci_vid_1D6A[] = {
{0x1D6A, 0xFFFF, 0xFFFF, 0xFFFF, "Aquantia Corp.(0x1D6A)"},
{0x1D6A, 0x0001, 0xFFFF, 0xFFFF, "AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion](0x0001)"},
-{0x1D6A, 0x00B1, 0xFFFF, 0xFFFF, "AQC100 10G Ethernet MAC controller [AQtion](0x00B1)"},
-{0x1D6A, 0x07B1, 0xFFFF, 0xFFFF, "AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion](0x07B1)"},
+{0x1D6A, 0x00B1, 0xFFFF, 0xFFFF, "AQtion AQC100 NBase-T/IEEE 802.3an Ethernet Controller [Atlantic 10G](0x00B1)"},
+{0x1D6A, 0x00C0, 0xFFFF, 0xFFFF, "Antigua NBase-T/IEEE 802.3an Ethernet Controller - Engineering Sample(0x00C0)"},
+{0x1D6A, 0x04C0, 0xFFFF, 0xFFFF, "AQtion AQC113 NBase-T/IEEE 802.3an Ethernet Controller [Antigua 10G](0x04C0)"},
+{0x1D6A, 0x07B1, 0xFFFF, 0xFFFF, "AQtion AQC107 NBase-T/IEEE 802.3an Ethernet Controller [Atlantic 10G](0x07B1)"},
{0x1D6A, 0x07B1, 0x1BAA, 0x07B1, "QM2-2P10G1TA [QXG 10GbE Network Adapter](0x1BAA-0x07B1)"},
{0x1D6A, 0x07B1, 0x1BAA, 0x07B2, "QM2-2P10G1TA [QM2 Expansion Adapter](0x1BAA-0x07B2)"},
{0x1D6A, 0x08B1, 0xFFFF, 0xFFFF, "AQC108 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion](0x08B1)"},
{0x1D6A, 0x11B1, 0xFFFF, 0xFFFF, "AQC111 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion](0x11B1)"},
{0x1D6A, 0x12B1, 0xFFFF, 0xFFFF, "AQC112 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion](0x12B1)"},
-{0x1D6A, 0x14C0, 0xFFFF, 0xFFFF, "AQC113C NBase-T/IEEE 802.3bz Ethernet Controller [AQtion](0x14C0)"},
-{0x1D6A, 0x87B1, 0xFFFF, 0xFFFF, "AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion](0x87B1)"},
-{0x1D6A, 0x94C0, 0xFFFF, 0xFFFF, "AQC113CS NBase-T/IEEE 802.3bz Ethernet Controller [AQtion](0x94C0)"},
+{0x1D6A, 0x12C0, 0xFFFF, 0xFFFF, "AQtion AQC115C NBase-T/IEEE 802.3bz Ethernet Controller [Antigua 2.5G](0x12C0)"},
+{0x1D6A, 0x14C0, 0xFFFF, 0xFFFF, "AQC113C NBase-T/IEEE 802.3an Ethernet Controller [Marvell Scalable mGig](0x14C0)"},
+{0x1D6A, 0x80B1, 0xFFFF, 0xFFFF, "AQtion AQC100S NBase-T/IEEE 802.3an Ethernet Controller [Atlantic 10G](0x80B1)"},
+{0x1D6A, 0x87B1, 0xFFFF, 0xFFFF, "AQtion AQC107S NBase-T/IEEE 802.3an Ethernet Controller [Atlantic 10G](0x87B1)"},
+{0x1D6A, 0x93C0, 0xFFFF, 0xFFFF, "AQtion AQC114CS NBase-T/IEEE 802.3bz Ethernet Controller [Antigua 5G](0x93C0)"},
+{0x1D6A, 0x94C0, 0xFFFF, 0xFFFF, "AQtion AQC113CS NBase-T/IEEE 802.3an Ethernet Controller [Antigua 10G](0x94C0)"},
{0x1D6A, 0x94C0, 0x1043, 0x87F5, "ProArt X570-CREATOR WIFI(0x1043-0x87F5)"},
-{0x1D6A, 0xD107, 0xFFFF, 0xFFFF, "AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion](0xD107)"},
+{0x1D6A, 0xD107, 0xFFFF, 0xFFFF, "AQtion AQC107 NBase-T/IEEE 802.3an Ethernet Controller [Atlantic 10G](0xD107)"},
{0x1D6A, 0xD107, 0x1043, 0x8741, "XG-C100C(0x1043-0x8741)"},
{0x1D6A, 0xD108, 0xFFFF, 0xFFFF, "AQC108 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion](0xD108)"},
}; /* pci_vid_1D6A[] */
-pci_id_t pci_vid_1D6C[] = {
+static pci_id_t const pci_vid_1D6C[] = {
{0x1D6C, 0xFFFF, 0xFFFF, 0xFFFF, "Atomic Rules LLC(0x1D6C)"},
{0x1D6C, 0x1001, 0xFFFF, 0xFFFF, "A5PL-E1(0x1001)"},
{0x1D6C, 0x1002, 0xFFFF, 0xFFFF, "A5PL-E7(0x1002)"},
@@ -30852,14 +31023,17 @@ pci_id_t pci_vid_1D6C[] = {
{0x1D6C, 0x1021, 0xFFFF, 0xFFFF, "AR-MGMT-PF [Board-Generic Management Physical Function](0x1021)"},
{0x1D6C, 0x1022, 0xFFFF, 0xFFFF, "AR-ARKA-FX2 [Arkville 128B DPDK Data Mover for Agilex](0x1022)"},
{0x1D6C, 0x1023, 0xFFFF, 0xFFFF, "AR-BD-FX1 [BufferDirect Zero-Bounce Data Motion Endpoint](0x1023)"},
+{0x1D6C, 0x1024, 0xFFFF, 0xFFFF, "AR-TK242 [2x10GbE Packet Capture Device](0x1024)"},
+{0x1D6C, 0x1025, 0xFFFF, 0xFFFF, "AR-TK242-FX2 [2x100GbE Gen5 Packet Capture Device](0x1025)"},
+{0x1D6C, 0x1026, 0xFFFF, 0xFFFF, "AR-TK242-FX2 [1x200GbE Gen5 Packet Capture Device](0x1026)"},
{0x1D6C, 0x4200, 0xFFFF, 0xFFFF, "A5PL-E1-10GETI [10 GbE Ethernet Traffic Instrument](0x4200)"},
}; /* pci_vid_1D6C[] */
-pci_id_t pci_vid_1D72[] = {
+static pci_id_t const pci_vid_1D72[] = {
{0x1D72, 0xFFFF, 0xFFFF, 0xFFFF, "Xiaomi(0x1D72)"},
}; /* pci_vid_1D72[] */
-pci_id_t pci_vid_1D78[] = {
+static pci_id_t const pci_vid_1D78[] = {
{0x1D78, 0xFFFF, 0xFFFF, 0xFFFF, "DERA Storage(0x1D78)"},
{0x1D78, 0x1512, 0xFFFF, 0xFFFF, "TAI NVMe Controller(0x1512)"},
{0x1D78, 0x1512, 0x1D78, 0x2004, "D5437 HHHL 2TB NVMe SSD(0x1D78-0x2004)"},
@@ -30924,7 +31098,7 @@ pci_id_t pci_vid_1D78[] = {
{0x1D78, 0x1515, 0x1D78, 0x7208, "Aliflash V2 U.2 15mm 7.68TB NVMe SSD(0x1D78-0x7208)"},
}; /* pci_vid_1D78[] */
-pci_id_t pci_vid_1D79[] = {
+static pci_id_t const pci_vid_1D79[] = {
{0x1D79, 0xFFFF, 0xFFFF, 0xFFFF, "Transcend Information, Inc.(0x1D79)"},
{0x1D79, 0x2262, 0xFFFF, 0xFFFF, "NVMe PCIe SSD 220S/MTE662T2(0x2262)"},
{0x1D79, 0x2263, 0xFFFF, 0xFFFF, "NVMe PCIe SSD 110S/112S/120S/MTE300S/MTE400S/MTE652T2 (DRAM-less)(0x2263)"},
@@ -30933,12 +31107,12 @@ pci_id_t pci_vid_1D79[] = {
{0x1D79, 0x5766, 0xFFFF, 0xFFFF, "NVMe PCIe SSD 110Q (DRAM-less)(0x5766)"},
}; /* pci_vid_1D79[] */
-pci_id_t pci_vid_1D7C[] = {
+static pci_id_t const pci_vid_1D7C[] = {
{0x1D7C, 0xFFFF, 0xFFFF, 0xFFFF, "Aerotech, Inc.(0x1D7C)"},
{0x1D7C, 0x0001, 0xFFFF, 0xFFFF, "HyperWire Adapter(0x0001)"},
}; /* pci_vid_1D7C[] */
-pci_id_t pci_vid_1D82[] = {
+static pci_id_t const pci_vid_1D82[] = {
{0x1D82, 0xFFFF, 0xFFFF, 0xFFFF, "NETINT Technologies Inc.(0x1D82)"},
{0x1D82, 0x0101, 0xFFFF, 0xFFFF, "Codensity D400 SSD(0x0101)"},
{0x1D82, 0x0102, 0xFFFF, 0xFFFF, "Codensity D408 PCIe Gen4 NVMe SSD(0x0102)"},
@@ -30946,7 +31120,7 @@ pci_id_t pci_vid_1D82[] = {
{0x1D82, 0x0401, 0xFFFF, 0xFFFF, "Quadra Video Processing Unit (VPU)(0x0401)"},
}; /* pci_vid_1D82[] */
-pci_id_t pci_vid_1D87[] = {
+static pci_id_t const pci_vid_1D87[] = {
{0x1D87, 0xFFFF, 0xFFFF, 0xFFFF, "Rockchip Electronics Co., Ltd(0x1D87)"},
{0x1D87, 0x0100, 0xFFFF, 0xFFFF, "RK3399 PCI Express Root Port(0x0100)"},
{0x1D87, 0x1808, 0xFFFF, 0xFFFF, "RK1808 Neural Network Processor Card(0x1808)"},
@@ -30956,24 +31130,24 @@ pci_id_t pci_vid_1D87[] = {
{0x1D87, 0x3588, 0xFFFF, 0xFFFF, "RK3588(0x3588)"},
}; /* pci_vid_1D87[] */
-pci_id_t pci_vid_1D89[] = {
+static pci_id_t const pci_vid_1D89[] = {
{0x1D89, 0xFFFF, 0xFFFF, 0xFFFF, "YEESTOR Microelectronics Co., Ltd(0x1D89)"},
{0x1D89, 0x0280, 0xFFFF, 0xFFFF, "PCIe NVMe SSD(0x0280)"},
}; /* pci_vid_1D89[] */
-pci_id_t pci_vid_1D8F[] = {
+static pci_id_t const pci_vid_1D8F[] = {
{0x1D8F, 0xFFFF, 0xFFFF, 0xFFFF, "Enyx(0x1D8F)"},
}; /* pci_vid_1D8F[] */
-pci_id_t pci_vid_1D92[] = {
+static pci_id_t const pci_vid_1D92[] = {
{0x1D92, 0xFFFF, 0xFFFF, 0xFFFF, "Abaco Systems Inc.(0x1D92)"},
}; /* pci_vid_1D92[] */
-pci_id_t pci_vid_1D93[] = {
+static pci_id_t const pci_vid_1D93[] = {
{0x1D93, 0xFFFF, 0xFFFF, 0xFFFF, "YADRO(0x1D93)"},
}; /* pci_vid_1D93[] */
-pci_id_t pci_vid_1D94[] = {
+static pci_id_t const pci_vid_1D94[] = {
{0x1D94, 0xFFFF, 0xFFFF, 0xFFFF, "Chengdu Haiguang IC Design Co., Ltd.(0x1D94)"},
{0x1D94, 0x1450, 0xFFFF, 0xFFFF, "Root Complex(0x1450)"},
{0x1D94, 0x1451, 0xFFFF, 0xFFFF, "I/O Memory Management Unit(0x1451)"},
@@ -31006,41 +31180,43 @@ pci_id_t pci_vid_1D94[] = {
{0x1D94, 0x790E, 0xFFFF, 0xFFFF, "FCH LPC Bridge(0x790E)"},
}; /* pci_vid_1D94[] */
-pci_id_t pci_vid_1D95[] = {
+static pci_id_t const pci_vid_1D95[] = {
{0x1D95, 0xFFFF, 0xFFFF, 0xFFFF, "Graphcore Ltd(0x1D95)"},
{0x1D95, 0x0001, 0xFFFF, 0xFFFF, "Colossus GC2 [C2](0x0001)"},
{0x1D95, 0x0002, 0xFFFF, 0xFFFF, "Colossus GC1 [S1](0x0002)"},
}; /* pci_vid_1D95[] */
-pci_id_t pci_vid_1D97[] = {
+static pci_id_t const pci_vid_1D97[] = {
{0x1D97, 0xFFFF, 0xFFFF, 0xFFFF, "Shenzhen Longsys Electronics Co., Ltd.(0x1D97)"},
{0x1D97, 0x1062, 0xFFFF, 0xFFFF, "Lexar NM710 NVME SSD(0x1062)"},
{0x1D97, 0x1160, 0xFFFF, 0xFFFF, "FORESEE P900 BGA NVMe SSD (DRAM-less)(0x1160)"},
{0x1D97, 0x1202, 0xFFFF, 0xFFFF, "Lexar NM610 PRO NVME SSD (DRAM-less)(0x1202)"},
+{0x1D97, 0x1602, 0xFFFF, 0xFFFF, "Lexar NM790 NVME SSD (DRAM-less)(0x1602)"},
{0x1D97, 0x1D97, 0xFFFF, 0xFFFF, "Lexar NM620 NVME SSD (DRAM-less)(0x1D97)"},
{0x1D97, 0x2263, 0xFFFF, 0xFFFF, "SM2263EN/SM2263XT-based OEM NVME SSD (DRAM-less)(0x2263)"},
-{0x1D97, 0x2269, 0xFFFF, 0xFFFF, "Lexar NM760 NVME SSD (DRAM-less)(0x2269)"},
-{0x1D97, 0x5216, 0xFFFF, 0xFFFF, "Lexar NM620 NVME SSD (DRAM-less)(0x5216)"},
+{0x1D97, 0x2269, 0xFFFF, 0xFFFF, "FORESEE XP2000, Lexar NM760 NVME SSD (DRAM-less)(0x2269)"},
+{0x1D97, 0x5216, 0xFFFF, 0xFFFF, "FORESEE XP1000 / Lexar Professional CFexpress Type B Gold series, NM620 PCIe NVME SSD (DRAM-less)(0x5216)"},
+{0x1D97, 0x5220, 0xFFFF, 0xFFFF, "FORESEE XP2100 NVMe SSD (DRAM-less)(0x5220)"},
{0x1D97, 0x5236, 0xFFFF, 0xFFFF, "Lexar NM800 PRO NVME SSD(0x5236)"},
}; /* pci_vid_1D97[] */
-pci_id_t pci_vid_1D9B[] = {
+static pci_id_t const pci_vid_1D9B[] = {
{0x1D9B, 0xFFFF, 0xFFFF, 0xFFFF, "Meta Platforms, Inc.(0x1D9B)"},
{0x1D9B, 0x0010, 0xFFFF, 0xFFFF, "Networking DOM Engine(0x0010)"},
{0x1D9B, 0x0011, 0xFFFF, 0xFFFF, "IO Bridge(0x0011)"},
}; /* pci_vid_1D9B[] */
-pci_id_t pci_vid_1DA1[] = {
+static pci_id_t const pci_vid_1DA1[] = {
{0x1DA1, 0xFFFF, 0xFFFF, 0xFFFF, "Teko Telecom S.r.l.(0x1DA1)"},
}; /* pci_vid_1DA1[] */
-pci_id_t pci_vid_1DA2[] = {
+static pci_id_t const pci_vid_1DA2[] = {
{0x1DA2, 0xFFFF, 0xFFFF, 0xFFFF, "Sapphire Technology Limited(0x1DA2)"},
{0x1DA2, 0xE26A, 0xFFFF, 0xFFFF, "Radeon R7 250(0xE26A)"},
{0x1DA2, 0xE445, 0xFFFF, 0xFFFF, "Sapphire Radeon RX 6700(0xE445)"},
}; /* pci_vid_1DA2[] */
-pci_id_t pci_vid_1DA3[] = {
+static pci_id_t const pci_vid_1DA3[] = {
{0x1DA3, 0xFFFF, 0xFFFF, 0xFFFF, "Habana Labs Ltd.(0x1DA3)"},
{0x1DA3, 0x0001, 0xFFFF, 0xFFFF, "HL-1000 AI Inference Accelerator [Goya](0x0001)"},
{0x1DA3, 0x0030, 0xFFFF, 0xFFFF, "Greco AI Inference Accelerator(0x0030)"},
@@ -31049,21 +31225,22 @@ pci_id_t pci_vid_1DA3[] = {
{0x1DA3, 0x1020, 0xFFFF, 0xFFFF, "Gaudi2 AI Training Accelerator(0x1020)"},
}; /* pci_vid_1DA3[] */
-pci_id_t pci_vid_1DA8[] = {
+static pci_id_t const pci_vid_1DA8[] = {
{0x1DA8, 0xFFFF, 0xFFFF, 0xFFFF, "Corigine, Inc.(0x1DA8)"},
{0x1DA8, 0x3800, 0xFFFF, 0xFFFF, "Network Flow Processor 3800(0x3800)"},
{0x1DA8, 0x3803, 0xFFFF, 0xFFFF, "Network Flow Processor 3800 Virtual Function(0x3803)"},
}; /* pci_vid_1DA8[] */
-pci_id_t pci_vid_1DAD[] = {
+static pci_id_t const pci_vid_1DAD[] = {
{0x1DAD, 0xFFFF, 0xFFFF, 0xFFFF, "Fungible(0x1DAD)"},
+{0x1DAD, 0x0108, 0xFFFF, 0xFFFF, "FC50, FC100, FC200 DPU NVMeoF Adapters(0x0108)"},
}; /* pci_vid_1DAD[] */
-pci_id_t pci_vid_1DB2[] = {
+static pci_id_t const pci_vid_1DB2[] = {
{0x1DB2, 0xFFFF, 0xFFFF, 0xFFFF, "ATP ELECTRONICS INC(0x1DB2)"},
}; /* pci_vid_1DB2[] */
-pci_id_t pci_vid_1DB7[] = {
+static pci_id_t const pci_vid_1DB7[] = {
{0x1DB7, 0xFFFF, 0xFFFF, 0xFFFF, "Phytium Technology Co., Ltd.(0x1DB7)"},
{0x1DB7, 0xDC20, 0xFFFF, 0xFFFF, "[X100 Series](0xDC20)"},
{0x1DB7, 0xDC21, 0xFFFF, 0xFFFF, "VPU Controller [X100 Series](0xDC21)"},
@@ -31089,15 +31266,17 @@ pci_id_t pci_vid_1DB7[] = {
{0x1DB7, 0xDC3C, 0xFFFF, 0xFFFF, "GPU_DMA Controller [X100 Series](0xDC3C)"},
}; /* pci_vid_1DB7[] */
-pci_id_t pci_vid_1DBB[] = {
+static pci_id_t const pci_vid_1DBB[] = {
{0x1DBB, 0xFFFF, 0xFFFF, 0xFFFF, "NGD Systems, Inc.(0x1DBB)"},
}; /* pci_vid_1DBB[] */
-pci_id_t pci_vid_1DBE[] = {
+static pci_id_t const pci_vid_1DBE[] = {
{0x1DBE, 0xFFFF, 0xFFFF, 0xFFFF, "INNOGRIT Corporation(0x1DBE)"},
{0x1DBE, 0x5216, 0xFFFF, 0xFFFF, "NVMe SSD Controller IG5216 (DRAM-less)(0x5216)"},
{0x1DBE, 0x5220, 0xFFFF, 0xFFFF, "NVMe SSD Controller IG5220 (DRAM-less)(0x5220)"},
{0x1DBE, 0x5236, 0xFFFF, 0xFFFF, "NVMe SSD Controller IG5236(0x5236)"},
+{0x1DBE, 0x5236, 0x1DBE, 0x4001, "Dongting-B1 DC SSD M.2 480GB(0x1DBE-0x4001)"},
+{0x1DBE, 0x5236, 0x1DBE, 0x4002, "Dongting-B1 DC SSD M.2 960GB(0x1DBE-0x4002)"},
{0x1DBE, 0x5636, 0xFFFF, 0xFFFF, "NVMe DC SSD IG5636(0x5636)"},
{0x1DBE, 0x5636, 0x1DBE, 0x0001, "Dongting-N1 DC SSD U.2 1600GB(0x1DBE-0x0001)"},
{0x1DBE, 0x5636, 0x1DBE, 0x0002, "Dongting-N1 DC SSD U.2 1920GB(0x1DBE-0x0002)"},
@@ -31118,41 +31297,41 @@ pci_id_t pci_vid_1DBE[] = {
{0x1DBE, 0x5638, 0x1DBE, 0x3002, "Donghu-Z2 DC ZNS SSD U.2 8000GB(0x1DBE-0x3002)"},
}; /* pci_vid_1DBE[] */
-pci_id_t pci_vid_1DBF[] = {
+static pci_id_t const pci_vid_1DBF[] = {
{0x1DBF, 0xFFFF, 0xFFFF, 0xFFFF, "Guizhou Huaxintong Semiconductor Technology Co., Ltd(0x1DBF)"},
{0x1DBF, 0x0401, 0xFFFF, 0xFFFF, "StarDragon4800 PCI Express Root Port(0x0401)"},
}; /* pci_vid_1DBF[] */
-pci_id_t pci_vid_1DC2[] = {
+static pci_id_t const pci_vid_1DC2[] = {
{0x1DC2, 0xFFFF, 0xFFFF, 0xFFFF, "Alco Digital Devices Limited(0x1DC2)"},
}; /* pci_vid_1DC2[] */
-pci_id_t pci_vid_1DC5[] = {
+static pci_id_t const pci_vid_1DC5[] = {
{0x1DC5, 0xFFFF, 0xFFFF, 0xFFFF, "FADU Inc.(0x1DC5)"},
{0x1DC5, 0x4081, 0xFFFF, 0xFFFF, "FC4121 PCIe 4.0 NVMe controller [DELTA](0x4081)"},
{0x1DC5, 0x6150, 0xFFFF, 0xFFFF, "FC3081 PCIe 3.0 NVMe controller [BRAVO](0x6150)"},
}; /* pci_vid_1DC5[] */
-pci_id_t pci_vid_1DCD[] = {
+static pci_id_t const pci_vid_1DCD[] = {
{0x1DCD, 0xFFFF, 0xFFFF, 0xFFFF, "Liqid Inc.(0x1DCD)"},
}; /* pci_vid_1DCD[] */
-pci_id_t pci_vid_1DCF[] = {
+static pci_id_t const pci_vid_1DCF[] = {
{0x1DCF, 0xFFFF, 0xFFFF, 0xFFFF, "Beijing Sinead Technology Co., Ltd.(0x1DCF)"},
}; /* pci_vid_1DCF[] */
-pci_id_t pci_vid_1DD3[] = {
+static pci_id_t const pci_vid_1DD3[] = {
{0x1DD3, 0xFFFF, 0xFFFF, 0xFFFF, "Sage Microelectronics Corp.(0x1DD3)"},
}; /* pci_vid_1DD3[] */
-pci_id_t pci_vid_1DD4[] = {
+static pci_id_t const pci_vid_1DD4[] = {
{0x1DD4, 0xFFFF, 0xFFFF, 0xFFFF, "Swissbit AG(0x1DD4)"},
{0x1DD4, 0x0010, 0xFFFF, 0xFFFF, "N-10m2 NVMe SSD(0x0010)"},
{0x1DD4, 0x0016, 0xFFFF, 0xFFFF, "N-16(0x0016)"},
{0x1DD4, 0x0020, 0xFFFF, 0xFFFF, "EN-20 BGA NVMe SSD (DRAM-less)(0x0020)"},
}; /* pci_vid_1DD4[] */
-pci_id_t pci_vid_1DD8[] = {
+static pci_id_t const pci_vid_1DD8[] = {
{0x1DD8, 0xFFFF, 0xFFFF, 0xFFFF, "AMD Pensando Systems(0x1DD8)"},
{0x1DD8, 0x0002, 0xFFFF, 0xFFFF, "DSC2 Elba Upstream Port(0x0002)"},
{0x1DD8, 0x0002, 0x1DD8, 0x100E, "Distributed Services Card(0x1DD8-0x100E)"},
@@ -31373,11 +31552,11 @@ pci_id_t pci_vid_1DD8[] = {
{0x1DD8, 0x100D, 0x1DD8, 0x500F, "DSC2-200 50/100/200G 2-port 32G RAM 64G eMMC G2 DPU R4-T(0x1DD8-0x500F)"},
}; /* pci_vid_1DD8[] */
-pci_id_t pci_vid_1DDD[] = {
+static pci_id_t const pci_vid_1DDD[] = {
{0x1DDD, 0xFFFF, 0xFFFF, 0xFFFF, "Thorlabs(0x1DDD)"},
}; /* pci_vid_1DDD[] */
-pci_id_t pci_vid_1DE0[] = {
+static pci_id_t const pci_vid_1DE0[] = {
{0x1DE0, 0xFFFF, 0xFFFF, 0xFFFF, "Groq(0x1DE0)"},
{0x1DE0, 0x0000, 0xFFFF, 0xFFFF, "TSP [GroqChip](0x0000)"},
{0x1DE0, 0x0000, 0x1DE0, 0x0000, "GC1-010X-ES [GroqCard](0x1DE0-0x0000)"},
@@ -31386,7 +31565,7 @@ pci_id_t pci_vid_1DE0[] = {
{0x1DE0, 0x0000, 0x1DE0, 0xC007, "GC1-0100 [GroqCard](0x1DE0-0xC007)"},
}; /* pci_vid_1DE0[] */
-pci_id_t pci_vid_1DE1[] = {
+static pci_id_t const pci_vid_1DE1[] = {
{0x1DE1, 0xFFFF, 0xFFFF, 0xFFFF, "Tekram Technology Co.,Ltd.(0x1DE1)"},
{0x1DE1, 0x0391, 0xFFFF, 0xFFFF, "TRM-S1040 [DC-315 / DC-395 series](0x0391)"},
{0x1DE1, 0x2020, 0xFFFF, 0xFFFF, "DC-390 Series SCSI Adapter [AMD Am53C974](0x2020)"},
@@ -31394,14 +31573,19 @@ pci_id_t pci_vid_1DE1[] = {
{0x1DE1, 0xDC29, 0xFFFF, 0xFFFF, "DC290(0xDC29)"},
}; /* pci_vid_1DE1[] */
-pci_id_t pci_vid_1DE5[] = {
+static pci_id_t const pci_vid_1DE4[] = {
+{0x1DE4, 0xFFFF, 0xFFFF, 0xFFFF, "Raspberry Pi Ltd(0x1DE4)"},
+{0x1DE4, 0x0001, 0xFFFF, 0xFFFF, "RP1 PCIe 2.0 South Bridge(0x0001)"},
+}; /* pci_vid_1DE4[] */
+
+static pci_id_t const pci_vid_1DE5[] = {
{0x1DE5, 0xFFFF, 0xFFFF, 0xFFFF, "Eideticom, Inc(0x1DE5)"},
{0x1DE5, 0x1000, 0xFFFF, 0xFFFF, "IO Memory Controller(0x1000)"},
{0x1DE5, 0x2000, 0xFFFF, 0xFFFF, "NoLoad Hardware Development Kit(0x2000)"},
{0x1DE5, 0x3000, 0xFFFF, 0xFFFF, "eBPF-based PCIe Accelerator(0x3000)"},
}; /* pci_vid_1DE5[] */
-pci_id_t pci_vid_1DED[] = {
+static pci_id_t const pci_vid_1DED[] = {
{0x1DED, 0xFFFF, 0xFFFF, 0xFFFF, "Alibaba (China) Co., Ltd.(0x1DED)"},
{0x1DED, 0x107F, 0xFFFF, 0xFFFF, "Elastic RDMA Adapter(0x107F)"},
{0x1DED, 0x5007, 0xFFFF, 0xFFFF, "Elastic RDMA Adapter(0x5007)"},
@@ -31412,13 +31596,14 @@ pci_id_t pci_vid_1DED[] = {
{0x1DED, 0x8004, 0xFFFF, 0xFFFF, "RCEC VF(0x8004)"},
}; /* pci_vid_1DED[] */
-pci_id_t pci_vid_1DEE[] = {
+static pci_id_t const pci_vid_1DEE[] = {
{0x1DEE, 0xFFFF, 0xFFFF, 0xFFFF, "Biwin Storage Technology Co., Ltd.(0x1DEE)"},
{0x1DEE, 0x2262, 0xFFFF, 0xFFFF, "HP EX950 NVMe SSD(0x2262)"},
{0x1DEE, 0x2263, 0xFFFF, 0xFFFF, "HP EX900 NVMe SSD (DRAM-less)(0x2263)"},
+{0x1DEE, 0x5216, 0xFFFF, 0xFFFF, "KingSpec NX series NVMe SSD (DRAM-less)(0x5216)"},
}; /* pci_vid_1DEE[] */
-pci_id_t pci_vid_1DEF[] = {
+static pci_id_t const pci_vid_1DEF[] = {
{0x1DEF, 0xFFFF, 0xFFFF, 0xFFFF, "Ampere Computing, LLC(0x1DEF)"},
{0x1DEF, 0xE005, 0xFFFF, 0xFFFF, "eMAG PCI Express Root Port 0(0xE005)"},
{0x1DEF, 0xE006, 0xFFFF, 0xFFFF, "eMAG PCI Express Root Port 1(0xE006)"},
@@ -31448,7 +31633,7 @@ pci_id_t pci_vid_1DEF[] = {
{0x1DEF, 0xE118, 0xFFFF, 0xFFFF, "Altra PCI Express Root Port b7(0xE118)"},
}; /* pci_vid_1DEF[] */
-pci_id_t pci_vid_1DF3[] = {
+static pci_id_t const pci_vid_1DF3[] = {
{0x1DF3, 0xFFFF, 0xFFFF, 0xFFFF, "Ethernity Networks(0x1DF3)"},
{0x1DF3, 0x0201, 0xFFFF, 0xFFFF, "ACE-NIC40 Programmable Network Accelerator(0x0201)"},
{0x1DF3, 0x0201, 0x1DF3, 0x0001, "ENA1040(0x1DF3-0x0001)"},
@@ -31480,19 +31665,19 @@ pci_id_t pci_vid_1DF3[] = {
{0x1DF3, 0x0208, 0x1DF3, 0x0001, "ENA2100RN(0x1DF3-0x0001)"},
}; /* pci_vid_1DF3[] */
-pci_id_t pci_vid_1DF5[] = {
+static pci_id_t const pci_vid_1DF5[] = {
{0x1DF5, 0xFFFF, 0xFFFF, 0xFFFF, "Shenzhen TIGO Semiconductor(0x1DF5)"},
{0x1DF5, 0x1202, 0xFFFF, 0xFFFF, "kimtigo NVMe SSD (DRAM-less)(0x1202)"},
}; /* pci_vid_1DF5[] */
-pci_id_t pci_vid_1DF7[] = {
+static pci_id_t const pci_vid_1DF7[] = {
{0x1DF7, 0xFFFF, 0xFFFF, 0xFFFF, "opencpi.org(0x1DF7)"},
{0x1DF7, 0x0001, 0xFFFF, 0xFFFF, "ml605(0x0001)"},
{0x1DF7, 0x0002, 0xFFFF, 0xFFFF, "alst4(0x0002)"},
{0x1DF7, 0x0003, 0xFFFF, 0xFFFF, "alst4x(0x0003)"},
}; /* pci_vid_1DF7[] */
-pci_id_t pci_vid_1DF8[] = {
+static pci_id_t const pci_vid_1DF8[] = {
{0x1DF8, 0xFFFF, 0xFFFF, 0xFFFF, "V&G Information System Co.,Ltd(0x1DF8)"},
{0x1DF8, 0x3000, 0xFFFF, 0xFFFF, "PC NVMe SSD(0x3000)"},
{0x1DF8, 0x3000, 0x1DF8, 0x3100, "M.2 NVMe Gen3*4 SSD(0x1DF8-0x3100)"},
@@ -31504,16 +31689,16 @@ pci_id_t pci_vid_1DF8[] = {
{0x1DF8, 0xD000, 0x1DF8, 0xD600, "M.2 NVMe SSD(0x1DF8-0xD600)"},
}; /* pci_vid_1DF8[] */
-pci_id_t pci_vid_1DFC[] = {
+static pci_id_t const pci_vid_1DFC[] = {
{0x1DFC, 0xFFFF, 0xFFFF, 0xFFFF, "JSC NT-COM(0x1DFC)"},
{0x1DFC, 0x1181, 0xFFFF, 0xFFFF, "TDM 8 Port E1/T1/J1 Adapter(0x1181)"},
}; /* pci_vid_1DFC[] */
-pci_id_t pci_vid_1E0D[] = {
+static pci_id_t const pci_vid_1E0D[] = {
{0x1E0D, 0xFFFF, 0xFFFF, 0xFFFF, "SambaNova Systems, Inc(0x1E0D)"},
}; /* pci_vid_1E0D[] */
-pci_id_t pci_vid_1E0F[] = {
+static pci_id_t const pci_vid_1E0F[] = {
{0x1E0F, 0xFFFF, 0xFFFF, 0xFFFF, "KIOXIA Corporation(0x1E0F)"},
{0x1E0F, 0x0001, 0xFFFF, 0xFFFF, "NVMe SSD Controller BG4 (DRAM-less)(0x0001)"},
{0x1E0F, 0x0007, 0xFFFF, 0xFFFF, "NVMe SSD Controller Cx6(0x0007)"},
@@ -31606,17 +31791,26 @@ pci_id_t pci_vid_1E0F[] = {
{0x1E0F, 0x0025, 0x1028, 0x223C, "Ent NVMe CM7 U.2 MU 6.4TB(0x1028-0x223C)"},
{0x1E0F, 0x0025, 0x1028, 0x223D, "Ent NVMe CM7 U.2 MU 3.2TB(0x1028-0x223D)"},
{0x1E0F, 0x0025, 0x1028, 0x223E, "Ent NVMe CM7 U.2 MU 1.6TB(0x1028-0x223E)"},
+{0x1E0F, 0x002C, 0xFFFF, 0xFFFF, "NVMe SSD Controller CD8P EDSFF(0x002C)"},
+{0x1E0F, 0x002C, 0x1028, 0x22BF, "DC NVMe CD8P E3.S 15.36TB(0x1028-0x22BF)"},
+{0x1E0F, 0x002C, 0x1028, 0x22C0, "DC NVMe CD8P E3.S 7.68TB(0x1028-0x22C0)"},
+{0x1E0F, 0x002C, 0x1028, 0x22C1, "DC NVMe CD8P E3.S 3.84TB(0x1028-0x22C1)"},
+{0x1E0F, 0x002C, 0x1028, 0x22C2, "DC NVMe CD8P E3.S 1.92TB(0x1028-0x22C2)"},
+{0x1E0F, 0x002C, 0x1028, 0x22C7, "DC NVMe CD8P E3.S MU 12.8TB(0x1028-0x22C7)"},
+{0x1E0F, 0x002C, 0x1028, 0x22C8, "DC NVMe CD8P E3.S MU 6.4TB(0x1028-0x22C8)"},
+{0x1E0F, 0x002C, 0x1028, 0x22C9, "DC NVMe CD8P E3.S MU 3.2TB(0x1028-0x22C9)"},
+{0x1E0F, 0x002C, 0x1028, 0x22CA, "DC NVMe CD8P E3.S MU 1.6TB(0x1028-0x22CA)"},
}; /* pci_vid_1E0F[] */
-pci_id_t pci_vid_1E17[] = {
+static pci_id_t const pci_vid_1E17[] = {
{0x1E17, 0xFFFF, 0xFFFF, 0xFFFF, "Arnold & Richter Cine Technik GmbH & Co. Betriebs KG(0x1E17)"},
}; /* pci_vid_1E17[] */
-pci_id_t pci_vid_1E18[] = {
+static pci_id_t const pci_vid_1E18[] = {
{0x1E18, 0xFFFF, 0xFFFF, 0xFFFF, "Beijing GuangRunTong Technology Development Co.,Ltd(0x1E18)"},
}; /* pci_vid_1E18[] */
-pci_id_t pci_vid_1E24[] = {
+static pci_id_t const pci_vid_1E24[] = {
{0x1E24, 0xFFFF, 0xFFFF, 0xFFFF, "Squirrels Research Labs(0x1E24)"},
{0x1E24, 0x0101, 0xFFFF, 0xFFFF, "Acorn CLE-101(0x0101)"},
{0x1E24, 0x0215, 0xFFFF, 0xFFFF, "Acorn CLE-215(0x0215)"},
@@ -31627,11 +31821,11 @@ pci_id_t pci_vid_1E24[] = {
{0x1E24, 0x1635, 0xFFFF, 0xFFFF, "JCM35(0x1635)"},
}; /* pci_vid_1E24[] */
-pci_id_t pci_vid_1E26[] = {
+static pci_id_t const pci_vid_1E26[] = {
{0x1E26, 0xFFFF, 0xFFFF, 0xFFFF, "Fujitsu Client Computing Limited(0x1E26)"},
}; /* pci_vid_1E26[] */
-pci_id_t pci_vid_1E36[] = {
+static pci_id_t const pci_vid_1E36[] = {
{0x1E36, 0xFFFF, 0xFFFF, 0xFFFF, "Shanghai Enflame Technology Co. Ltd(0x1E36)"},
{0x1E36, 0x0001, 0xFFFF, 0xFFFF, "T10 [CloudBlazer](0x0001)"},
{0x1E36, 0x0002, 0xFFFF, 0xFFFF, "T11 [CloudBlazer](0x0002)"},
@@ -31650,22 +31844,24 @@ pci_id_t pci_vid_1E36[] = {
{0x1E36, 0xC033, 0xFFFF, 0xFFFF, "S60 [Enflame](0xC033)"},
}; /* pci_vid_1E36[] */
-pci_id_t pci_vid_1E38[] = {
+static pci_id_t const pci_vid_1E38[] = {
{0x1E38, 0xFFFF, 0xFFFF, 0xFFFF, "Blaize, Inc(0x1E38)"},
{0x1E38, 0x0102, 0xFFFF, 0xFFFF, "Xplorer X1600(0x0102)"},
}; /* pci_vid_1E38[] */
-pci_id_t pci_vid_1E39[] = {
+static pci_id_t const pci_vid_1E39[] = {
{0x1E39, 0xFFFF, 0xFFFF, 0xFFFF, "MEDION AG(0x1E39)"},
}; /* pci_vid_1E39[] */
-pci_id_t pci_vid_1E3A[] = {
+static pci_id_t const pci_vid_1E3A[] = {
{0x1E3A, 0xFFFF, 0xFFFF, 0xFFFF, "Cactus Technologies Limited(0x1E3A)"},
+{0x1E3A, 0x2263, 0xFFFF, 0xFFFF, "270PM6, 270PM7 series NVMe SSD(0x2263)"},
}; /* pci_vid_1E3A[] */
-pci_id_t pci_vid_1E3B[] = {
+static pci_id_t const pci_vid_1E3B[] = {
{0x1E3B, 0xFFFF, 0xFFFF, 0xFFFF, "DapuStor Corporation(0x1E3B)"},
{0x1E3B, 0x0600, 0xFFFF, 0xFFFF, "NVMe SSD Controller DP600(0x0600)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x0006, "Enterprise NVMe SSD U.2 QDP 7.68TB (J5000)(0x1E3B-0x0006)"},
{0x1E3B, 0x0600, 0x1E3B, 0x0010, "Enterprise NVMe SSD U.2 3.84TB (R5102)(0x1E3B-0x0010)"},
{0x1E3B, 0x0600, 0x1E3B, 0x0013, "Enterprise NVMe SSD U.2 3.20TB (R5302)(0x1E3B-0x0013)"},
{0x1E3B, 0x0600, 0x1E3B, 0x0030, "Enterprise NVMe SSD U.2 3.84TB (J5100)(0x1E3B-0x0030)"},
@@ -31700,6 +31896,21 @@ pci_id_t pci_vid_1E3B[] = {
{0x1E3B, 0x0600, 0x1E3B, 0x0069, "Enterprise NVMe SSD U.2 3.20TB (R5301D)(0x1E3B-0x0069)"},
{0x1E3B, 0x0600, 0x1E3B, 0x006C, "Enterprise NVMe SSD U.2 1.92TB (R5101)(0x1E3B-0x006C)"},
{0x1E3B, 0x0600, 0x1E3B, 0x006D, "Enterprise NVMe SSD U.2 1.60TB (J5301)(0x1E3B-0x006D)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00B9, "Enterprise NVMe SSD U.2 QDP 25.60TB (R5300)(0x1E3B-0x00B9)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00BE, "Enterprise NVMe SSD U.2 QDP 30.72TB (R5100)(0x1E3B-0x00BE)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00C1, "Enterprise NVMe SSD U.2 QDP 25.60TB (R5300D)(0x1E3B-0x00C1)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00C4, "Enterprise NVMe SSD U.2 QDP 30.72TB (R5100D)(0x1E3B-0x00C4)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00C9, "Enterprise NVMe SSD U.2 15.36TB (J5000)(0x1E3B-0x00C9)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00CA, "Enterprise NVMe SSD U.2 3.84TB (J5102)(0x1E3B-0x00CA)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00CB, "Enterprise NVMe SSD U.2 7.68TB (J5102)(0x1E3B-0x00CB)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00CC, "Enterprise NVMe SSD U.2 3.84TB (J5101)(0x1E3B-0x00CC)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00CD, "Enterprise NVMe SSD U.2 7.68TB (J5101)(0x1E3B-0x00CD)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00CE, "Enterprise NVMe SSD U.2 3.84TB (J5101D)(0x1E3B-0x00CE)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00CF, "Enterprise NVMe SSD U.2 7.68TB (J5101D)(0x1E3B-0x00CF)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00E8, "Enterprise NVMe SSD U.2 3.20TB (J5301)(0x1E3B-0x00E8)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00E9, "Enterprise NVMe SSD U.2 6.40TB (J5301)(0x1E3B-0x00E9)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00EA, "Enterprise NVMe SSD U.2 3.20TB (J5301D)(0x1E3B-0x00EA)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00EB, "Enterprise NVMe SSD U.2 6.40TB (J5301D)(0x1E3B-0x00EB)"},
{0x1E3B, 0x0600, 0x1E3B, 0x00F0, "Enterprise NVMe SSD U.2 0.40TB (X2900)(0x1E3B-0x00F0)"},
{0x1E3B, 0x0600, 0x1E3B, 0x00F1, "Enterprise NVMe SSD U.2 0.80TB (X2900)(0x1E3B-0x00F1)"},
{0x1E3B, 0x0600, 0x1E3B, 0x00F2, "Enterprise NVMe SSD U.2 1.60TB (X2900)(0x1E3B-0x00F2)"},
@@ -31744,22 +31955,22 @@ pci_id_t pci_vid_1E3B[] = {
{0x1E3B, 0x1333, 0x1E3B, 0x0085, "Enterprise NVMe SSD U.2 6.4TB (H5300)(0x1E3B-0x0085)"},
}; /* pci_vid_1E3B[] */
-pci_id_t pci_vid_1E3D[] = {
+static pci_id_t const pci_vid_1E3D[] = {
{0x1E3D, 0xFFFF, 0xFFFF, 0xFFFF, "Burlywood, Inc(0x1E3D)"},
}; /* pci_vid_1E3D[] */
-pci_id_t pci_vid_1E43[] = {
+static pci_id_t const pci_vid_1E43[] = {
{0x1E43, 0xFFFF, 0xFFFF, 0xFFFF, "MaxLinear Inc(0x1E43)"},
{0x1E43, 0x8904, 0xFFFF, 0xFFFF, "MxL8904(0x8904)"},
{0x1E43, 0x8906, 0xFFFF, 0xFFFF, "MxL8906(0x8906)"},
{0x1E43, 0x8908, 0xFFFF, 0xFFFF, "MxL8908(0x8908)"},
}; /* pci_vid_1E43[] */
-pci_id_t pci_vid_1E44[] = {
+static pci_id_t const pci_vid_1E44[] = {
{0x1E44, 0xFFFF, 0xFFFF, 0xFFFF, "Valve Software(0x1E44)"},
}; /* pci_vid_1E44[] */
-pci_id_t pci_vid_1E49[] = {
+static pci_id_t const pci_vid_1E49[] = {
{0x1E49, 0xFFFF, 0xFFFF, 0xFFFF, "Yangtze Memory Technologies Co.,Ltd(0x1E49)"},
{0x1E49, 0x0001, 0xFFFF, 0xFFFF, "ZHITAI PC005 NVMe SSD(0x0001)"},
{0x1E49, 0x0021, 0xFFFF, 0xFFFF, "ZHITAI TiPro5000 NVMe SSD(0x0021)"},
@@ -31771,91 +31982,92 @@ pci_id_t pci_vid_1E49[] = {
{0x1E49, 0x1031, 0xFFFF, 0xFFFF, "PC300 NVMe SSD (DRAM-less)(0x1031)"},
}; /* pci_vid_1E49[] */
-pci_id_t pci_vid_1E4B[] = {
+static pci_id_t const pci_vid_1E4B[] = {
{0x1E4B, 0xFFFF, 0xFFFF, 0xFFFF, "MAXIO Technology (Hangzhou) Ltd.(0x1E4B)"},
{0x1E4B, 0x1001, 0xFFFF, 0xFFFF, "NVMe SSD Controller MAP1001(0x1001)"},
-{0x1E4B, 0x1002, 0xFFFF, 0xFFFF, "NVMe SSD Controller MAP1002(0x1002)"},
+{0x1E4B, 0x1002, 0xFFFF, 0xFFFF, "NVMe SSD Controller MAP1002 (DRAM-less)(0x1002)"},
{0x1E4B, 0x1003, 0xFFFF, 0xFFFF, "NVMe SSD Controller MAP1003(0x1003)"},
{0x1E4B, 0x1201, 0xFFFF, 0xFFFF, "NVMe SSD Controller MAP1201(0x1201)"},
-{0x1E4B, 0x1202, 0xFFFF, 0xFFFF, "NVMe SSD Controller MAP1202(0x1202)"},
+{0x1E4B, 0x1202, 0xFFFF, 0xFFFF, "NVMe SSD Controller MAP1202 (DRAM-less)(0x1202)"},
{0x1E4B, 0x1601, 0xFFFF, 0xFFFF, "NVMe SSD Controller MAP1601(0x1601)"},
-{0x1E4B, 0x1602, 0xFFFF, 0xFFFF, "NVMe SSD Controller MAP1602(0x1602)"},
+{0x1E4B, 0x1602, 0xFFFF, 0xFFFF, "NVMe SSD Controller MAP1602 (DRAM-less)(0x1602)"},
+{0x1E4B, 0x1608, 0xFFFF, 0xFFFF, "NVMe SSD Controller MAP1608 (DRAM-less)(0x1608)"},
}; /* pci_vid_1E4B[] */
-pci_id_t pci_vid_1E4C[] = {
+static pci_id_t const pci_vid_1E4C[] = {
{0x1E4C, 0xFFFF, 0xFFFF, 0xFFFF, "GSI Technology(0x1E4C)"},
{0x1E4C, 0x0010, 0xFFFF, 0xFFFF, "Associative Processing Unit [Leda](0x0010)"},
{0x1E4C, 0x0010, 0x1E4C, 0x0120, "SE120(0x1E4C-0x0120)"},
}; /* pci_vid_1E4C[] */
-pci_id_t pci_vid_1E50[] = {
+static pci_id_t const pci_vid_1E50[] = {
{0x1E50, 0xFFFF, 0xFFFF, 0xFFFF, "IP3 Tech (HK) Limited(0x1E50)"},
}; /* pci_vid_1E50[] */
-pci_id_t pci_vid_1E52[] = {
+static pci_id_t const pci_vid_1E52[] = {
{0x1E52, 0xFFFF, 0xFFFF, 0xFFFF, "Tenstorrent Inc(0x1E52)"},
{0x1E52, 0x401E, 0xFFFF, 0xFFFF, "Wormhole(0x401E)"},
{0x1E52, 0xB140, 0xFFFF, 0xFFFF, "Blackhole(0xB140)"},
{0x1E52, 0xFACA, 0xFFFF, 0xFFFF, "Grayskull(0xFACA)"},
}; /* pci_vid_1E52[] */
-pci_id_t pci_vid_1E57[] = {
+static pci_id_t const pci_vid_1E57[] = {
{0x1E57, 0xFFFF, 0xFFFF, 0xFFFF, "Beijing Panyi Technology Co., Ltd(0x1E57)"},
{0x1E57, 0x0100, 0xFFFF, 0xFFFF, "The device has already been deleted.(0x0100)"},
{0x1E57, 0x0100, 0x0000, 0x0100, "PY8800 64GB Accelerator(0x0000-0x0100)"},
}; /* pci_vid_1E57[] */
-pci_id_t pci_vid_1E59[] = {
+static pci_id_t const pci_vid_1E59[] = {
{0x1E59, 0xFFFF, 0xFFFF, 0xFFFF, "Oxford Nanopore Technologies(0x1E59)"},
{0x1E59, 0x0001, 0xFFFF, 0xFFFF, "MinION Mk1C(0x0001)"},
}; /* pci_vid_1E59[] */
-pci_id_t pci_vid_1E5D[] = {
+static pci_id_t const pci_vid_1E5D[] = {
{0x1E5D, 0xFFFF, 0xFFFF, 0xFFFF, "ASR Microelectronics(0x1E5D)"},
{0x1E5D, 0x7000, 0xFFFF, 0xFFFF, "AI controller A7000(0x7000)"},
{0x1E5D, 0x7010, 0xFFFF, 0xFFFF, "AI controller A7010(0x7010)"},
}; /* pci_vid_1E5D[] */
-pci_id_t pci_vid_1E60[] = {
+static pci_id_t const pci_vid_1E60[] = {
{0x1E60, 0xFFFF, 0xFFFF, 0xFFFF, "Hailo Technologies Ltd.(0x1E60)"},
{0x1E60, 0x2864, 0xFFFF, 0xFFFF, "Hailo-8 AI Processor(0x2864)"},
}; /* pci_vid_1E60[] */
-pci_id_t pci_vid_1E67[] = {
+static pci_id_t const pci_vid_1E67[] = {
{0x1E67, 0xFFFF, 0xFFFF, 0xFFFF, "Untether AI(0x1E67)"},
{0x1E67, 0x0002, 0xFFFF, 0xFFFF, "runAI200 AI Inference Accelerator(0x0002)"},
}; /* pci_vid_1E67[] */
-pci_id_t pci_vid_1E68[] = {
+static pci_id_t const pci_vid_1E68[] = {
{0x1E68, 0xFFFF, 0xFFFF, 0xFFFF, "Jiangsu Xinsheng Intelligent Technology Co., Ltd(0x1E68)"},
{0x1E68, 0x8111, 0xFFFF, 0xFFFF, "EP2000Pro PCIe 3 NVMe SSD (DRAM-less)(0x8111)"},
}; /* pci_vid_1E68[] */
-pci_id_t pci_vid_1E6B[] = {
+static pci_id_t const pci_vid_1E6B[] = {
{0x1E6B, 0xFFFF, 0xFFFF, 0xFFFF, "Axiado Corp.(0x1E6B)"},
}; /* pci_vid_1E6B[] */
-pci_id_t pci_vid_1E7B[] = {
+static pci_id_t const pci_vid_1E7B[] = {
{0x1E7B, 0xFFFF, 0xFFFF, 0xFFFF, "Dataland(0x1E7B)"},
}; /* pci_vid_1E7B[] */
-pci_id_t pci_vid_1E7C[] = {
+static pci_id_t const pci_vid_1E7C[] = {
{0x1E7C, 0xFFFF, 0xFFFF, 0xFFFF, "Brainchip Inc(0x1E7C)"},
{0x1E7C, 0xBCA1, 0xFFFF, 0xFFFF, "AKD1000 Neural Network Coprocessor [Akida](0xBCA1)"},
}; /* pci_vid_1E7C[] */
-pci_id_t pci_vid_1E7E[] = {
+static pci_id_t const pci_vid_1E7E[] = {
{0x1E7E, 0xFFFF, 0xFFFF, 0xFFFF, "Pliops(0x1E7E)"},
{0x1E7E, 0x9034, 0xFFFF, 0xFFFF, "Pliops Extreme Data Processor [XDP1.0](0x9034)"},
}; /* pci_vid_1E7E[] */
-pci_id_t pci_vid_1E7F[] = {
+static pci_id_t const pci_vid_1E7F[] = {
{0x1E7F, 0xFFFF, 0xFFFF, 0xFFFF, "Jiangsu Huacun Elec. Tech. Co., Ltd.(0x1E7F)"},
{0x1E7F, 0x6002, 0xFFFF, 0xFFFF, "MMY MMSP350 PCIe 3 NVMe SSD (DRAM-less)(0x6002)"},
{0x1E7F, 0x6003, 0xFFFF, 0xFFFF, "MMY HC512GP3KH2T PCIe 3 NVMe SSD (DRAM-less)(0x6003)"},
}; /* pci_vid_1E7F[] */
-pci_id_t pci_vid_1E81[] = {
+static pci_id_t const pci_vid_1E81[] = {
{0x1E81, 0xFFFF, 0xFFFF, 0xFFFF, "Ramaxel Technology(Shenzhen) Limited(0x1E81)"},
{0x1E81, 0x1203, 0xFFFF, 0xFFFF, "NVMe SSD Controller UHXXXa series(0x1203)"},
{0x1E81, 0x1203, 0x1E81, 0xA121, "NVMe SSD UHXXXa series U.2 960GB(0x1E81-0xA121)"},
@@ -31871,91 +32083,102 @@ pci_id_t pci_vid_1E81[] = {
{0x1E81, 0x6206, 0xFFFF, 0xFFFF, "AM620 NVMe SSD(0x6206)"},
}; /* pci_vid_1E81[] */
-pci_id_t pci_vid_1E83[] = {
+static pci_id_t const pci_vid_1E83[] = {
{0x1E83, 0xFFFF, 0xFFFF, 0xFFFF, "Huaqin Technology Co.Ltd(0x1E83)"},
}; /* pci_vid_1E83[] */
-pci_id_t pci_vid_1E85[] = {
+static pci_id_t const pci_vid_1E85[] = {
{0x1E85, 0xFFFF, 0xFFFF, 0xFFFF, "Heitec AG(0x1E85)"},
}; /* pci_vid_1E85[] */
-pci_id_t pci_vid_1E89[] = {
+static pci_id_t const pci_vid_1E89[] = {
{0x1E89, 0xFFFF, 0xFFFF, 0xFFFF, "ID Quantique SA(0x1E89)"},
{0x1E89, 0x0002, 0xFFFF, 0xFFFF, "Quantis-PCIe-40M(0x0002)"},
{0x1E89, 0x0003, 0xFFFF, 0xFFFF, "Quantis-PCIe-240M(0x0003)"},
}; /* pci_vid_1E89[] */
-pci_id_t pci_vid_1E93[] = {
+static pci_id_t const pci_vid_1E93[] = {
{0x1E93, 0xFFFF, 0xFFFF, 0xFFFF, "Beijing Bytedance Network Technology Co., Ltd.(0x1E93)"},
}; /* pci_vid_1E93[] */
-pci_id_t pci_vid_1E94[] = {
+static pci_id_t const pci_vid_1E94[] = {
{0x1E94, 0xFFFF, 0xFFFF, 0xFFFF, "Calian SED(0x1E94)"},
}; /* pci_vid_1E94[] */
-pci_id_t pci_vid_1E95[] = {
+static pci_id_t const pci_vid_1E95[] = {
{0x1E95, 0xFFFF, 0xFFFF, 0xFFFF, "Solid State Storage Technology Corporation(0x1E95)"},
+{0x1E95, 0x1000, 0xFFFF, 0xFFFF, "XA1-311024 NVMe SSD M.2(0x1000)"},
+{0x1E95, 0x1001, 0xFFFF, 0xFFFF, "CA6-8D512 NVMe SSD M.2(0x1001)"},
{0x1E95, 0x1002, 0xFFFF, 0xFFFF, "NVMe SSD [3DNAND] 2.5\" U.2 (LJ1)(0x1002)"},
{0x1E95, 0x1002, 0x1E95, 0x1101, "NVMe SSD [3DNAND] 2.5\" U.2 (LJ1)(0x1E95-0x1101)"},
{0x1E95, 0x1002, 0x1EA0, 0x5636, "TP1500 Series U.2 NVMe Datacenter SSD(0x1EA0-0x5636)"},
{0x1E95, 0x1003, 0xFFFF, 0xFFFF, "CLR-8W512 NVMe SSD M.2 (DRAM-less)(0x1003)"},
+{0x1E95, 0x1005, 0xFFFF, 0xFFFF, "PLEXTOR M10P(GN) NVMe SSD M.2(0x1005)"},
{0x1E95, 0x1007, 0xFFFF, 0xFFFF, "CL4-8D512 NVMe SSD M.2 (DRAM-less)(0x1007)"},
+{0x1E95, 0x1008, 0xFFFF, 0xFFFF, "CL5-8D512 NVMe SSD M.2 (DRAM-less)(0x1008)"},
+{0x1E95, 0x3500, 0xFFFF, 0xFFFF, "CA5-8D256 NVMe SSD M.2(0x3500)"},
+{0x1E95, 0x35F1, 0xFFFF, 0xFFFF, "PLEXTOR M9PGN Plus NVMe SSD M.2(0x35F1)"},
{0x1E95, 0x9100, 0xFFFF, 0xFFFF, "CL1-3D256-Q11 NVMe SSD M.2(0x9100)"},
}; /* pci_vid_1E95[] */
-pci_id_t pci_vid_1E96[] = {
+static pci_id_t const pci_vid_1E96[] = {
{0x1E96, 0xFFFF, 0xFFFF, 0xFFFF, "Drut Technologies Inc.(0x1E96)"},
}; /* pci_vid_1E96[] */
-pci_id_t pci_vid_1E9F[] = {
+static pci_id_t const pci_vid_1E9F[] = {
{0x1E9F, 0xFFFF, 0xFFFF, 0xFFFF, "Lynxi Technologies Co., Ltd.(0x1E9F)"},
}; /* pci_vid_1E9F[] */
-pci_id_t pci_vid_1EA0[] = {
+static pci_id_t const pci_vid_1EA0[] = {
{0x1EA0, 0xFFFF, 0xFFFF, 0xFFFF, "Tencent Technology (Shenzhen) Company Limited(0x1EA0)"},
{0x1EA0, 0x2A16, 0xFFFF, 0xFFFF, "Cloud Intelligent Inference Controller(0x2A16)"},
{0x1EA0, 0x2A18, 0xFFFF, 0xFFFF, "Video Transcode Controller(0x2A18)"},
{0x1EA0, 0x2A20, 0xFFFF, 0xFFFF, "Cloud Intelligent Inference and Training Controller(0x2A20)"},
}; /* pci_vid_1EA0[] */
-pci_id_t pci_vid_1EA7[] = {
+static pci_id_t const pci_vid_1EA7[] = {
{0x1EA7, 0xFFFF, 0xFFFF, 0xFFFF, "Intelliprop, Inc(0x1EA7)"},
{0x1EA7, 0x223A, 0xFFFF, 0xFFFF, "Typhon+ PCIe to Gen-Z Bridge(0x223A)"},
{0x1EA7, 0x224A, 0xFFFF, 0xFFFF, "IPA-PE224A CXL to Gen-Z Bridge [Sphinx](0x224A)"},
}; /* pci_vid_1EA7[] */
-pci_id_t pci_vid_1EAB[] = {
+static pci_id_t const pci_vid_1EAB[] = {
{0x1EAB, 0xFFFF, 0xFFFF, 0xFFFF, "Hefei DATANG Storage Technology Co.,LTD.(0x1EAB)"},
{0x1EAB, 0x300A, 0xFFFF, 0xFFFF, "NVMe SSD Controller 300A(0x300A)"},
{0x1EAB, 0x300B, 0xFFFF, 0xFFFF, "NVMe SSD Controller 300B (DRAM-less)(0x300B)"},
}; /* pci_vid_1EAB[] */
-pci_id_t pci_vid_1EAC[] = {
+static pci_id_t const pci_vid_1EAC[] = {
{0x1EAC, 0xFFFF, 0xFFFF, 0xFFFF, "Quectel Wireless Solutions Co., Ltd.(0x1EAC)"},
{0x1EAC, 0x1001, 0xFFFF, 0xFFFF, "EM120R-GL LTE Modem(0x1001)"},
{0x1EAC, 0x1002, 0xFFFF, 0xFFFF, "EM160R-GL LTE Modem(0x1002)"},
}; /* pci_vid_1EAC[] */
-pci_id_t pci_vid_1EAE[] = {
+static pci_id_t const pci_vid_1EAE[] = {
{0x1EAE, 0xFFFF, 0xFFFF, 0xFFFF, "XFX Limited(0x1EAE)"},
}; /* pci_vid_1EAE[] */
-pci_id_t pci_vid_1EB1[] = {
+static pci_id_t const pci_vid_1EB1[] = {
{0x1EB1, 0xFFFF, 0xFFFF, 0xFFFF, "VeriSilicon Inc(0x1EB1)"},
{0x1EB1, 0x1001, 0xFFFF, 0xFFFF, "Video Accelerator(0x1001)"},
}; /* pci_vid_1EB1[] */
-pci_id_t pci_vid_1EB4[] = {
+static pci_id_t const pci_vid_1EB4[] = {
{0x1EB4, 0xFFFF, 0xFFFF, 0xFFFF, "Quantum Nebula Microelectronics Technology Co.,Ltd.(0x1EB4)"},
{0x1EB4, 0x3401, 0xFFFF, 0xFFFF, "SSD Contoller(0x3401)"},
}; /* pci_vid_1EB4[] */
-pci_id_t pci_vid_1EBD[] = {
+static pci_id_t const pci_vid_1EB9[] = {
+{0x1EB9, 0xFFFF, 0xFFFF, 0xFFFF, "Senscomm Semiconductor, Inc(0x1EB9)"},
+{0x1EB9, 0x2020, 0xFFFF, 0xFFFF, "SCM2625 Wi-Fi6 Network Adapter(0x2020)"},
+}; /* pci_vid_1EB9[] */
+
+static pci_id_t const pci_vid_1EBD[] = {
{0x1EBD, 0xFFFF, 0xFFFF, 0xFFFF, "EMERGETECH Company Ltd.(0x1EBD)"},
{0x1EBD, 0x0101, 0xFFFF, 0xFFFF, "Seirios 2063 Video Codec(0x0101)"},
}; /* pci_vid_1EBD[] */
-pci_id_t pci_vid_1EC6[] = {
+static pci_id_t const pci_vid_1EC6[] = {
{0x1EC6, 0xFFFF, 0xFFFF, 0xFFFF, "Vastai Technologies(0x1EC6)"},
{0x1EC6, 0x0100, 0xFFFF, 0xFFFF, "SV100(0x0100)"},
{0x1EC6, 0x0100, 0x1EC6, 0x0010, "VA1V(0x1EC6-0x0010)"},
@@ -31980,7 +32203,7 @@ pci_id_t pci_vid_1EC6[] = {
{0x1EC6, 0x020F, 0xFFFF, 0xFFFF, "SG100 vGPU(0x020F)"},
}; /* pci_vid_1EC6[] */
-pci_id_t pci_vid_1EC8[] = {
+static pci_id_t const pci_vid_1EC8[] = {
{0x1EC8, 0xFFFF, 0xFFFF, 0xFFFF, "Innosilicon Co Ltd(0x1EC8)"},
{0x1EC8, 0x8800, 0xFFFF, 0xFFFF, "Fantasy I(0x8800)"},
{0x1EC8, 0x8800, 0x1EC8, 0x12A2, "Fantasy I Device(0x1EC8-0x12A2)"},
@@ -31996,25 +32219,29 @@ pci_id_t pci_vid_1EC8[] = {
{0x1EC8, 0x9810, 0x1EC8, 0x12A2, "Fantasy II Device(0x1EC8-0x12A2)"},
}; /* pci_vid_1EC8[] */
-pci_id_t pci_vid_1EC9[] = {
+static pci_id_t const pci_vid_1EC9[] = {
{0x1EC9, 0xFFFF, 0xFFFF, 0xFFFF, "Wingtech Group(HongKong)Limited(0x1EC9)"},
}; /* pci_vid_1EC9[] */
-pci_id_t pci_vid_1ECA[] = {
+static pci_id_t const pci_vid_1ECA[] = {
{0x1ECA, 0xFFFF, 0xFFFF, 0xFFFF, "Lightmatter(0x1ECA)"},
{0x1ECA, 0x0000, 0xFFFF, 0xFFFF, "Envise-B(0x0000)"},
}; /* pci_vid_1ECA[] */
-pci_id_t pci_vid_1ED2[] = {
+static pci_id_t const pci_vid_1ED0[] = {
+{0x1ED0, 0xFFFF, 0xFFFF, 0xFFFF, "Hosin Global Electronics(0x1ED0)"},
+}; /* pci_vid_1ED0[] */
+
+static pci_id_t const pci_vid_1ED2[] = {
{0x1ED2, 0xFFFF, 0xFFFF, 0xFFFF, "FuriosaAI, Inc.(0x1ED2)"},
{0x1ED2, 0x0000, 0xFFFF, 0xFFFF, "Warboy(0x0000)"},
}; /* pci_vid_1ED2[] */
-pci_id_t pci_vid_1ED3[] = {
+static pci_id_t const pci_vid_1ED3[] = {
{0x1ED3, 0xFFFF, 0xFFFF, 0xFFFF, "Yeston(0x1ED3)"},
}; /* pci_vid_1ED3[] */
-pci_id_t pci_vid_1ED5[] = {
+static pci_id_t const pci_vid_1ED5[] = {
{0x1ED5, 0xFFFF, 0xFFFF, 0xFFFF, "Moore Threads Technology Co.,Ltd(0x1ED5)"},
{0x1ED5, 0x0100, 0xFFFF, 0xFFFF, "MTT S10(0x0100)"},
{0x1ED5, 0x0101, 0xFFFF, 0xFFFF, "MTT S10(0x0101)"},
@@ -32030,7 +32257,7 @@ pci_id_t pci_vid_1ED5[] = {
{0x1ED5, 0x0201, 0xFFFF, 0xFFFF, "MTT S80(0x0201)"},
{0x1ED5, 0x0202, 0xFFFF, 0xFFFF, "MTT S70(0x0202)"},
{0x1ED5, 0x0203, 0xFFFF, 0xFFFF, "MTT S60(0x0203)"},
-{0x1ED5, 0x0211, 0xFFFF, 0xFFFF, "MTT X200(0x0211)"},
+{0x1ED5, 0x0211, 0xFFFF, 0xFFFF, "MTT X300(0x0211)"},
{0x1ED5, 0x0221, 0xFFFF, 0xFFFF, "G2S80(0x0221)"},
{0x1ED5, 0x0222, 0xFFFF, 0xFFFF, "MTT S3000(0x0222)"},
{0x1ED5, 0x0223, 0xFFFF, 0xFFFF, "G2S4(0x0223)"},
@@ -32043,16 +32270,17 @@ pci_id_t pci_vid_1ED5[] = {
{0x1ED5, 0x03FF, 0xFFFF, 0xFFFF, "MTT HDMI/DP Audio(0x03FF)"},
}; /* pci_vid_1ED5[] */
-pci_id_t pci_vid_1ED8[] = {
+static pci_id_t const pci_vid_1ED8[] = {
{0x1ED8, 0xFFFF, 0xFFFF, 0xFFFF, "Digiteq Automotive(0x1ED8)"},
-{0x1ED8, 0x0101, 0xFFFF, 0xFFFF, "FG4 PCIe Frame Grabber(0x0101)"},
+{0x1ED8, 0x0101, 0xFFFF, 0xFFFF, "FG4 PCIe Frame Grabber (T100)(0x0101)"},
+{0x1ED8, 0x0201, 0xFFFF, 0xFFFF, "FG4 PCIe Frame Grabber (T200)(0x0201)"},
}; /* pci_vid_1ED8[] */
-pci_id_t pci_vid_1ED9[] = {
+static pci_id_t const pci_vid_1ED9[] = {
{0x1ED9, 0xFFFF, 0xFFFF, 0xFFFF, "Myrtle.ai(0x1ED9)"},
}; /* pci_vid_1ED9[] */
-pci_id_t pci_vid_1EE1[] = {
+static pci_id_t const pci_vid_1EE1[] = {
{0x1EE1, 0xFFFF, 0xFFFF, 0xFFFF, "Suzhou Kuhan Information Technologies(0x1EE1)"},
{0x1EE1, 0x0050, 0xFFFF, 0xFFFF, "Aurora NVMe SSD Controller(0x0050)"},
{0x1EE1, 0x0050, 0x1EE1, 0x0009, "Airglow A430 NVMe SSD U.2 1.6TB(0x1EE1-0x0009)"},
@@ -32061,22 +32289,22 @@ pci_id_t pci_vid_1EE1[] = {
{0x1EE1, 0x0050, 0x1EE1, 0x0012, "Airglow Z400 NVMe ZNS SSD U.2 5.76TB(0x1EE1-0x0012)"},
}; /* pci_vid_1EE1[] */
-pci_id_t pci_vid_1EE4[] = {
+static pci_id_t const pci_vid_1EE4[] = {
{0x1EE4, 0xFFFF, 0xFFFF, 0xFFFF, "PETAIO INC(0x1EE4)"},
{0x1EE4, 0x1180, 0xFFFF, 0xFFFF, "P8118 U.2 Single Port SSD(0x1180)"},
}; /* pci_vid_1EE4[] */
-pci_id_t pci_vid_1EE9[] = {
+static pci_id_t const pci_vid_1EE9[] = {
{0x1EE9, 0xFFFF, 0xFFFF, 0xFFFF, "SUSE LLC(0x1EE9)"},
}; /* pci_vid_1EE9[] */
-pci_id_t pci_vid_1EEC[] = {
+static pci_id_t const pci_vid_1EEC[] = {
{0x1EEC, 0xFFFF, 0xFFFF, 0xFFFF, "Viscore Technologies Ltd(0x1EEC)"},
{0x1EEC, 0x0102, 0xFFFF, 0xFFFF, "VSE250231S Dual-port 10Gb/25Gb Ethernet PCIe(0x0102)"},
{0x1EEC, 0x1EEC, 0xFFFF, 0xFFFF, "VSE250231S Dual-port 10Gb/25Gb Ethernet PCIe(0x1EEC)"},
}; /* pci_vid_1EEC[] */
-pci_id_t pci_vid_1EED[] = {
+static pci_id_t const pci_vid_1EED[] = {
{0x1EED, 0xFFFF, 0xFFFF, 0xFFFF, "XDX Computing Technology Ltd.(0x1EED)"},
{0x1EED, 0x10A0, 0xFFFF, 0xFFFF, "XDX110 Graphic/VGA Controller(0x10A0)"},
{0x1EED, 0x10A1, 0xFFFF, 0xFFFF, "XDX110 Audio Controller(0x10A1)"},
@@ -32115,23 +32343,23 @@ pci_id_t pci_vid_1EED[] = {
{0x1EED, 0x1830, 0xFFFF, 0xFFFF, "XDX TJ03 Audio(0x1830)"},
}; /* pci_vid_1EED[] */
-pci_id_t pci_vid_1EF6[] = {
+static pci_id_t const pci_vid_1EF6[] = {
{0x1EF6, 0xFFFF, 0xFFFF, 0xFFFF, "GrAI Matter Labs(0x1EF6)"},
}; /* pci_vid_1EF6[] */
-pci_id_t pci_vid_1EF7[] = {
+static pci_id_t const pci_vid_1EF7[] = {
{0x1EF7, 0xFFFF, 0xFFFF, 0xFFFF, "Shenzhen Gunnir Technology Development Co., Ltd(0x1EF7)"},
}; /* pci_vid_1EF7[] */
-pci_id_t pci_vid_1EFB[] = {
+static pci_id_t const pci_vid_1EFB[] = {
{0x1EFB, 0xFFFF, 0xFFFF, 0xFFFF, "Flexxon Pte Ltd(0x1EFB)"},
}; /* pci_vid_1EFB[] */
-pci_id_t pci_vid_1F02[] = {
+static pci_id_t const pci_vid_1F02[] = {
{0x1F02, 0xFFFF, 0xFFFF, 0xFFFF, "Beijing Dayu Technology(0x1F02)"},
}; /* pci_vid_1F02[] */
-pci_id_t pci_vid_1F03[] = {
+static pci_id_t const pci_vid_1F03[] = {
{0x1F03, 0xFFFF, 0xFFFF, 0xFFFF, "Shenzhen Shichuangyi Electronics Co., Ltd(0x1F03)"},
{0x1F03, 0x1202, 0xFFFF, 0xFFFF, "MAP1202-Based NVMe SSD (DRAM-less)(0x1202)"},
{0x1F03, 0x2262, 0xFFFF, 0xFFFF, "SM2262EN-based OEM SSD(0x2262)"},
@@ -32142,12 +32370,12 @@ pci_id_t pci_vid_1F03[] = {
{0x1F03, 0x5636, 0xFFFF, 0xFFFF, "IG5636-Based NVMe SSD(0x5636)"},
}; /* pci_vid_1F03[] */
-pci_id_t pci_vid_1F0A[] = {
+static pci_id_t const pci_vid_1F0A[] = {
{0x1F0A, 0xFFFF, 0xFFFF, 0xFFFF, "Motorcomm Microelectronics.(0x1F0A)"},
{0x1F0A, 0x6801, 0xFFFF, 0xFFFF, "YT6801 Gigabit Ethernet Controller(0x6801)"},
}; /* pci_vid_1F0A[] */
-pci_id_t pci_vid_1F0F[] = {
+static pci_id_t const pci_vid_1F0F[] = {
{0x1F0F, 0xFFFF, 0xFFFF, 0xFFFF, "NebulaMatrix Technology(0x1F0F)"},
{0x1F0F, 0x1041, 0xFFFF, 0xFFFF, "D1055AS vDPA Ethernet Controller(0x1041)"},
{0x1F0F, 0x1041, 0x1F0F, 0x0001, "D1055AS vDPA Ethernet Controller(0x1F0F-0x0001)"},
@@ -32169,18 +32397,18 @@ pci_id_t pci_vid_1F0F[] = {
{0x1F0F, 0x9088, 0xFFFF, 0xFFFF, "D1055AS PCI Express Switch Downstream Port(0x9088)"},
}; /* pci_vid_1F0F[] */
-pci_id_t pci_vid_1F17[] = {
+static pci_id_t const pci_vid_1F17[] = {
{0x1F17, 0xFFFF, 0xFFFF, 0xFFFF, "Zettastone Technology(0x1F17)"},
}; /* pci_vid_1F17[] */
-pci_id_t pci_vid_1F24[] = {
+static pci_id_t const pci_vid_1F24[] = {
{0x1F24, 0xFFFF, 0xFFFF, 0xFFFF, "xFusion Digital Technologies Co., Ltd.(0x1F24)"},
{0x1F24, 0x1058, 0xFFFF, 0xFFFF, "EP500/EP600 NVMe SSD(0x1058)"},
{0x1F24, 0x1058, 0x1F24, 0x1114, "EP500 NVMe SSD(RI)(0x1F24-0x1114)"},
{0x1F24, 0x1058, 0x1F24, 0x1115, "EP600 NVMe SSD(MU)(0x1F24-0x1115)"},
}; /* pci_vid_1F24[] */
-pci_id_t pci_vid_1F2F[] = {
+static pci_id_t const pci_vid_1F2F[] = {
{0x1F2F, 0xFFFF, 0xFFFF, 0xFFFF, "China Mobile (Hangzhou) Information Technology Co.Ltd.(0x1F2F)"},
{0x1F2F, 0x1513, 0xFFFF, 0xFFFF, "DERA MENG NVMe Controller(0x1513)"},
{0x1F2F, 0x1513, 0x1F2F, 0x6113, "KM660 U.2 1.6TB NVMe SSD(0x1F2F-0x6113)"},
@@ -32190,12 +32418,12 @@ pci_id_t pci_vid_1F2F[] = {
{0x1F2F, 0x1513, 0x1F2F, 0x6118, "KM560 U.2 7.68TB NVMe SSD(0x1F2F-0x6118)"},
}; /* pci_vid_1F2F[] */
-pci_id_t pci_vid_1F31[] = {
+static pci_id_t const pci_vid_1F31[] = {
{0x1F31, 0xFFFF, 0xFFFF, 0xFFFF, "Nextorage(0x1F31)"},
{0x1F31, 0x4512, 0xFFFF, 0xFFFF, "Nextorage NE1N NVMe SSD(0x4512)"},
}; /* pci_vid_1F31[] */
-pci_id_t pci_vid_1F3F[] = {
+static pci_id_t const pci_vid_1F3F[] = {
{0x1F3F, 0xFFFF, 0xFFFF, 0xFFFF, "3SNIC Ltd(0x1F3F)"},
{0x1F3F, 0x2100, 0xFFFF, 0xFFFF, "SSSHBA SAS/SATA HBA(0x2100)"},
{0x1F3F, 0x2100, 0x1F3F, 0x0120, "HBA 32 Ports(0x1F3F-0x0120)"},
@@ -32236,7 +32464,7 @@ pci_id_t pci_vid_1F3F[] = {
{0x1F3F, 0x9032, 0x1F3F, 0x00A1, "Dual Port 100GE SDI5.1(0x1F3F-0x00A1)"},
}; /* pci_vid_1F3F[] */
-pci_id_t pci_vid_1F40[] = {
+static pci_id_t const pci_vid_1F40[] = {
{0x1F40, 0xFFFF, 0xFFFF, 0xFFFF, "Netac Technology Co.,Ltd(0x1F40)"},
{0x1F40, 0x0001, 0xFFFF, 0xFFFF, "PCIe 4 NVMe SSD (DRAM-less)(0x0001)"},
{0x1F40, 0x1202, 0xFFFF, 0xFFFF, "PCIe 3 NVMe SSD (DRAM-less)(0x1202)"},
@@ -32248,33 +32476,35 @@ pci_id_t pci_vid_1F40[] = {
{0x1F40, 0x5765, 0xFFFF, 0xFFFF, "PCIe 3 NVMe SSD (DRAM-less)(0x5765)"},
}; /* pci_vid_1F40[] */
-pci_id_t pci_vid_1F44[] = {
+static pci_id_t const pci_vid_1F44[] = {
{0x1F44, 0xFFFF, 0xFFFF, 0xFFFF, "VVDN Technologies Private Limited(0x1F44)"},
}; /* pci_vid_1F44[] */
-pci_id_t pci_vid_1F47[] = {
+static pci_id_t const pci_vid_1F47[] = {
{0x1F47, 0xFFFF, 0xFFFF, 0xFFFF, "YUSUR Tech(0x1F47)"},
+{0x1F47, 0x2018, 0xFFFF, 0xFFFF, "DPU Card(0x2018)"},
+{0x1F47, 0x2020, 0xFFFF, 0xFFFF, "DPU(0x2020)"},
}; /* pci_vid_1F47[] */
-pci_id_t pci_vid_1F4B[] = {
+static pci_id_t const pci_vid_1F4B[] = {
{0x1F4B, 0xFFFF, 0xFFFF, 0xFFFF, "Axera Semiconductor Co., Ltd(0x1F4B)"},
}; /* pci_vid_1F4B[] */
-pci_id_t pci_vid_1F52[] = {
+static pci_id_t const pci_vid_1F52[] = {
{0x1F52, 0xFFFF, 0xFFFF, 0xFFFF, "MangoBoost Inc.(0x1F52)"},
}; /* pci_vid_1F52[] */
-pci_id_t pci_vid_1F56[] = {
+static pci_id_t const pci_vid_1F56[] = {
{0x1F56, 0xFFFF, 0xFFFF, 0xFFFF, "SAPEON Inc.(0x1F56)"},
}; /* pci_vid_1F56[] */
-pci_id_t pci_vid_1F60[] = {
+static pci_id_t const pci_vid_1F60[] = {
{0x1F60, 0xFFFF, 0xFFFF, 0xFFFF, "Accelecom(0x1F60)"},
{0x1F60, 0x0001, 0xFFFF, 0xFFFF, "XELE-NIC 25K5(0x0001)"},
{0x1F60, 0x0054, 0xFFFF, 0xFFFF, "XELE-NIC 25K5(0x0054)"},
}; /* pci_vid_1F60[] */
-pci_id_t pci_vid_1F67[] = {
+static pci_id_t const pci_vid_1F67[] = {
{0x1F67, 0xFFFF, 0xFFFF, 0xFFFF, "Yunsilicon Technology(0x1F67)"},
{0x1F67, 0x1011, 0xFFFF, 0xFFFF, "metaConnect SmartNIC Physical Function(0x1011)"},
{0x1F67, 0x1012, 0xFFFF, 0xFFFF, "metaConnect SmartNIC Virtual Function(0x1012)"},
@@ -32287,21 +32517,23 @@ pci_id_t pci_vid_1F67[] = {
{0x1F67, 0x1152, 0xFFFF, 0xFFFF, "metaVisor DPU Virtual Function(0x1152)"},
}; /* pci_vid_1F67[] */
-pci_id_t pci_vid_1FAA[] = {
+static pci_id_t const pci_vid_1FAA[] = {
{0x1FAA, 0xFFFF, 0xFFFF, 0xFFFF, "Hexaflake (Shanghai) Information Technology Co., Ltd.(0x1FAA)"},
{0x1FAA, 0x0C10, 0xFFFF, 0xFFFF, "Compass C10 PF(0x0C10)"},
{0x1FAA, 0x0C11, 0xFFFF, 0xFFFF, "Compass C10 VF(0x0C11)"},
}; /* pci_vid_1FAA[] */
-pci_id_t pci_vid_1FAB[] = {
+static pci_id_t const pci_vid_1FAB[] = {
{0x1FAB, 0xFFFF, 0xFFFF, 0xFFFF, "Unifabrix Ltd.(0x1FAB)"},
{0x1FAB, 0x0000, 0xFFFF, 0xFFFF, "Nexus Alpha IVPU(0x0000)"},
{0x1FAB, 0x0100, 0xFFFF, 0xFFFF, "NoX Gamma(0x0100)"},
+{0x1FAB, 0x01FD, 0xFFFF, 0xFFFF, "Smart Memory Node Generic CXL Port (T1)(0x01FD)"},
{0x1FAB, 0x01FE, 0xFFFF, 0xFFFF, "Smart Memory Node Generic CXL Port (T2)(0x01FE)"},
{0x1FAB, 0x01FF, 0xFFFF, 0xFFFF, "Smart Memory Node Generic CXL Port (T3)(0x01FF)"},
+{0x1FAB, 0x1B00, 0xFFFF, 0xFFFF, "MAX Host Device(0x1B00)"},
}; /* pci_vid_1FAB[] */
-pci_id_t pci_vid_1FB0[] = {
+static pci_id_t const pci_vid_1FB0[] = {
{0x1FB0, 0xFFFF, 0xFFFF, 0xFFFF, "ICube Corporation Limited(0x1FB0)"},
{0x1FB0, 0x1000, 0xFFFF, 0xFFFF, "NF1000 Series GPU(0x1000)"},
{0x1FB0, 0x1000, 0x1FB0, 0x1001, "NF1001(0x1FB0-0x1001)"},
@@ -32329,19 +32561,19 @@ pci_id_t pci_vid_1FB0[] = {
{0x1FB0, 0x5000, 0x1FB0, 0x5003, "NF5003(0x1FB0-0x5003)"},
}; /* pci_vid_1FB0[] */
-pci_id_t pci_vid_1FC0[] = {
+static pci_id_t const pci_vid_1FC0[] = {
{0x1FC0, 0xFFFF, 0xFFFF, 0xFFFF, "Ascom (Finland) Oy(0x1FC0)"},
{0x1FC0, 0x0300, 0xFFFF, 0xFFFF, "E2200 Dual E1/Rawpipe Card(0x0300)"},
{0x1FC0, 0x0301, 0xFFFF, 0xFFFF, "C5400 SHDSL/E1 Card(0x0301)"},
}; /* pci_vid_1FC0[] */
-pci_id_t pci_vid_1FC1[] = {
+static pci_id_t const pci_vid_1FC1[] = {
{0x1FC1, 0xFFFF, 0xFFFF, 0xFFFF, "QLogic, Corp.(0x1FC1)"},
{0x1FC1, 0x000D, 0xFFFF, 0xFFFF, "IBA6110 InfiniBand HCA(0x000D)"},
{0x1FC1, 0x0010, 0xFFFF, 0xFFFF, "IBA6120 InfiniBand HCA(0x0010)"},
}; /* pci_vid_1FC1[] */
-pci_id_t pci_vid_1FC9[] = {
+static pci_id_t const pci_vid_1FC9[] = {
{0x1FC9, 0xFFFF, 0xFFFF, 0xFFFF, "Tehuti Networks Ltd.(0x1FC9)"},
{0x1FC9, 0x3009, 0xFFFF, 0xFFFF, "10-Giga TOE SmartNIC(0x3009)"},
{0x1FC9, 0x3010, 0xFFFF, 0xFFFF, "10-Giga TOE SmartNIC(0x3010)"},
@@ -32392,37 +32624,37 @@ pci_id_t pci_vid_1FC9[] = {
{0x1FC9, 0x4527, 0xFFFF, 0xFFFF, "TN9710Q 5GBase-T/NBASE-T Ethernet Adapter(0x4527)"},
}; /* pci_vid_1FC9[] */
-pci_id_t pci_vid_1FCC[] = {
+static pci_id_t const pci_vid_1FCC[] = {
{0x1FCC, 0xFFFF, 0xFFFF, 0xFFFF, "StreamLabs(0x1FCC)"},
{0x1FCC, 0xF416, 0xFFFF, 0xFFFF, "MS416(0xF416)"},
{0x1FCC, 0xFB01, 0xFFFF, 0xFFFF, "MH4LM(0xFB01)"},
}; /* pci_vid_1FCC[] */
-pci_id_t pci_vid_1FCE[] = {
+static pci_id_t const pci_vid_1FCE[] = {
{0x1FCE, 0xFFFF, 0xFFFF, 0xFFFF, "Cognio Inc.(0x1FCE)"},
{0x1FCE, 0x0001, 0xFFFF, 0xFFFF, "Spectrum Analyzer PC Card (SAgE)(0x0001)"},
}; /* pci_vid_1FCE[] */
-pci_id_t pci_vid_1FD4[] = {
+static pci_id_t const pci_vid_1FD4[] = {
{0x1FD4, 0xFFFF, 0xFFFF, 0xFFFF, "SUNIX Co., Ltd.(0x1FD4)"},
{0x1FD4, 0x0001, 0xFFFF, 0xFFFF, "Matrix multiport serial adapter(0x0001)"},
{0x1FD4, 0x1999, 0xFFFF, 0xFFFF, "Multiport serial controller(0x1999)"},
}; /* pci_vid_1FD4[] */
-pci_id_t pci_vid_1FDE[] = {
+static pci_id_t const pci_vid_1FDE[] = {
{0x1FDE, 0xFFFF, 0xFFFF, 0xFFFF, "Kratos Defense & Security Solutions, Inc.(0x1FDE)"},
{0x1FDE, 0x1125, 0xFFFF, 0xFFFF, "OpenEdge 1125P(0x1125)"},
{0x1FDE, 0x2500, 0xFFFF, 0xFFFF, "OpenEdge 2500P(0x2500)"},
}; /* pci_vid_1FDE[] */
-pci_id_t pci_vid_1FE0[] = {
+static pci_id_t const pci_vid_1FE0[] = {
{0x1FE0, 0xFFFF, 0xFFFF, 0xFFFF, "Allwinmeta Co., Ltd.(0x1FE0)"},
{0x1FE0, 0x1010, 0xFFFF, 0xFFFF, "AWM 1(0x1010)"},
{0x1FE0, 0x2000, 0xFFFF, 0xFFFF, "AWM 2(0x2000)"},
{0x1FE0, 0x2010, 0xFFFF, 0xFFFF, "AWM 2-M(0x2010)"},
}; /* pci_vid_1FE0[] */
-pci_id_t pci_vid_1FE4[] = {
+static pci_id_t const pci_vid_1FE4[] = {
{0x1FE4, 0xFFFF, 0xFFFF, 0xFFFF, "HippStor Technology(0x1FE4)"},
{0x1FE4, 0x1600, 0xFFFF, 0xFFFF, "HP600 Series NVMe SSD(0x1600)"},
{0x1FE4, 0x1600, 0x1FE4, 0x0075, "Enterprise NVMe SSD U.2 3.84TB(HP610)(0x1FE4-0x0075)"},
@@ -32431,70 +32663,93 @@ pci_id_t pci_vid_1FE4[] = {
{0x1FE4, 0x1600, 0x1FE4, 0x0078, "Enterprise NVMe SSD U.2 3.20TB(HP630)(0x1FE4-0x0078)"},
}; /* pci_vid_1FE4[] */
-pci_id_t pci_vid_1FF4[] = {
+static pci_id_t const pci_vid_1FF4[] = {
{0x1FF4, 0xFFFF, 0xFFFF, 0xFFFF, "DEEPX Co., Ltd.(0x1FF4)"},
{0x1FF4, 0x0000, 0xFFFF, 0xFFFF, "DX_M1(0x0000)"},
{0x1FF4, 0x0001, 0xFFFF, 0xFFFF, "DX_M1A(0x0001)"},
{0x1FF4, 0x1000, 0xFFFF, 0xFFFF, "DX_H1(0x1000)"},
}; /* pci_vid_1FF4[] */
-pci_id_t pci_vid_2000[] = {
+static pci_id_t const pci_vid_1FF8[] = {
+{0x1FF8, 0xFFFF, 0xFFFF, 0xFFFF, "Beijing Gengtu Technology Co.Ltd(0x1FF8)"},
+{0x1FF8, 0x2000, 0xFFFF, 0xFFFF, "GT6910(0x2000)"},
+{0x1FF8, 0x2010, 0xFFFF, 0xFFFF, "GT6908(0x2010)"},
+}; /* pci_vid_1FF8[] */
+
+static pci_id_t const pci_vid_1FF9[] = {
+{0x1FF9, 0xFFFF, 0xFFFF, 0xFFFF, "Inagile Electronic Technology Co., LTD(0x1FF9)"},
+}; /* pci_vid_1FF9[] */
+
+static pci_id_t const pci_vid_2000[] = {
{0x2000, 0xFFFF, 0xFFFF, 0xFFFF, "Smart Link Ltd.(0x2000)"},
{0x2000, 0x2800, 0xFFFF, 0xFFFF, "SmartPCI2800 V.92 PCI Soft DFT(0x2800)"},
}; /* pci_vid_2000[] */
-pci_id_t pci_vid_2001[] = {
+static pci_id_t const pci_vid_2001[] = {
{0x2001, 0xFFFF, 0xFFFF, 0xFFFF, "Temporal Research Ltd(0x2001)"},
}; /* pci_vid_2001[] */
-pci_id_t pci_vid_2003[] = {
+static pci_id_t const pci_vid_2003[] = {
{0x2003, 0xFFFF, 0xFFFF, 0xFFFF, "Smart Link Ltd.(0x2003)"},
{0x2003, 0x8800, 0xFFFF, 0xFFFF, "LM-I56N(0x8800)"},
}; /* pci_vid_2003[] */
-pci_id_t pci_vid_2004[] = {
+static pci_id_t const pci_vid_2004[] = {
{0x2004, 0xFFFF, 0xFFFF, 0xFFFF, "Smart Link Ltd.(0x2004)"},
}; /* pci_vid_2004[] */
-pci_id_t pci_vid_2048[] = {
+static pci_id_t const pci_vid_2046[] = {
+{0x2046, 0xFFFF, 0xFFFF, 0xFFFF, "Shenzhen Inovance Technology Co., Ltd.(0x2046)"},
+}; /* pci_vid_2046[] */
+
+static pci_id_t const pci_vid_2048[] = {
{0x2048, 0xFFFF, 0xFFFF, 0xFFFF, "Beijing SpaceControl Technology Co.Ltd(0x2048)"},
}; /* pci_vid_2048[] */
-pci_id_t pci_vid_20F4[] = {
+static pci_id_t const pci_vid_20F4[] = {
{0x20F4, 0xFFFF, 0xFFFF, 0xFFFF, "TRENDnet(0x20F4)"},
}; /* pci_vid_20F4[] */
-pci_id_t pci_vid_2116[] = {
+static pci_id_t const pci_vid_2116[] = {
{0x2116, 0xFFFF, 0xFFFF, 0xFFFF, "ZyDAS Technology Corp.(0x2116)"},
}; /* pci_vid_2116[] */
-pci_id_t pci_vid_21B4[] = {
+static pci_id_t const pci_vid_21B4[] = {
{0x21B4, 0xFFFF, 0xFFFF, 0xFFFF, "Hunan Goke Microelectronics Co., Ltd(0x21B4)"},
}; /* pci_vid_21B4[] */
-pci_id_t pci_vid_21C3[] = {
+static pci_id_t const pci_vid_21C3[] = {
{0x21C3, 0xFFFF, 0xFFFF, 0xFFFF, "21st Century Computer Corp.(0x21C3)"},
}; /* pci_vid_21C3[] */
-pci_id_t pci_vid_22B8[] = {
+static pci_id_t const pci_vid_22B8[] = {
{0x22B8, 0xFFFF, 0xFFFF, 0xFFFF, "Flex-Logix Technologies(0x22B8)"},
{0x22B8, 0x22A0, 0xFFFF, 0xFFFF, "Flex Logix InferX X1 Inference Accelerator(0x22A0)"},
}; /* pci_vid_22B8[] */
-pci_id_t pci_vid_22DB[] = {
+static pci_id_t const pci_vid_22DB[] = {
{0x22DB, 0xFFFF, 0xFFFF, 0xFFFF, "Missing Link Electronics, Inc.(0x22DB)"},
}; /* pci_vid_22DB[] */
-pci_id_t pci_vid_2304[] = {
+static pci_id_t const pci_vid_2304[] = {
{0x2304, 0xFFFF, 0xFFFF, 0xFFFF, "Colorgraphic Communications Corp.(0x2304)"},
}; /* pci_vid_2304[] */
-pci_id_t pci_vid_2348[] = {
+static pci_id_t const pci_vid_2321[] = {
+{0x2321, 0xFFFF, 0xFFFF, 0xFFFF, "Bruker AXS Inc.(0x2321)"},
+}; /* pci_vid_2321[] */
+
+static pci_id_t const pci_vid_2348[] = {
{0x2348, 0xFFFF, 0xFFFF, 0xFFFF, "Racore(0x2348)"},
{0x2348, 0x2010, 0xFFFF, 0xFFFF, "8142 100VG/AnyLAN(0x2010)"},
}; /* pci_vid_2348[] */
-pci_id_t pci_vid_2646[] = {
+static pci_id_t const pci_vid_256C[] = {
+{0x256C, 0xFFFF, 0xFFFF, 0xFFFF, "Graphics Technology (HK) Co., Ltd.(0x256C)"},
+{0x256C, 0x006D, 0xFFFF, 0xFFFF, "HS610(0x006D)"},
+}; /* pci_vid_256C[] */
+
+static pci_id_t const pci_vid_2646[] = {
{0x2646, 0xFFFF, 0xFFFF, 0xFFFF, "Kingston Technology Company, Inc.(0x2646)"},
{0x2646, 0x0010, 0xFFFF, 0xFFFF, "HyperX Predator PCIe AHCI SSD(0x0010)"},
{0x2646, 0x2262, 0xFFFF, 0xFFFF, "KC2000/KC2500 NVMe SSD SM2262EN(0x2262)"},
@@ -32504,87 +32759,89 @@ pci_id_t pci_vid_2646[] = {
{0x2646, 0x500B, 0xFFFF, 0xFFFF, "DC1000M NVMe SSD SM2270(0x500B)"},
{0x2646, 0x500C, 0xFFFF, 0xFFFF, "OM8PCP Design-In PCIe 3 NVMe SSD (DRAM-less)(0x500C)"},
{0x2646, 0x500D, 0xFFFF, 0xFFFF, "OM3PDP3 NVMe SSD(0x500D)"},
-{0x2646, 0x500E, 0xFFFF, 0xFFFF, "NV1 NVMe SSD E13T(0x500E)"},
-{0x2646, 0x500F, 0xFFFF, 0xFFFF, "NV1 NVMe SSD SM2263XT(0x500F)"},
+{0x2646, 0x500E, 0xFFFF, 0xFFFF, "NV1 NVMe SSD E13T (DRAM-less)(0x500E)"},
+{0x2646, 0x500F, 0xFFFF, 0xFFFF, "NV1 NVMe SSD SM2263XT (DRAM-less)(0x500F)"},
{0x2646, 0x5010, 0xFFFF, 0xFFFF, "OM8SBP NVMe PCIe SSD (DRAM-less)(0x5010)"},
{0x2646, 0x5012, 0xFFFF, 0xFFFF, "DC1500M NVMe SSD SM2270(0x5012)"},
{0x2646, 0x5013, 0xFFFF, 0xFFFF, "KC3000/FURY Renegade NVMe SSD E18(0x5013)"},
-{0x2646, 0x5014, 0xFFFF, 0xFFFF, "Design-In PCIe 4 NVMe SSD (TLC)(0x5014)"},
+{0x2646, 0x5014, 0xFFFF, 0xFFFF, "OM8SEP4 Design-In PCIe 4 NVMe SSD (TLC) (DRAM-less)(0x5014)"},
{0x2646, 0x5016, 0xFFFF, 0xFFFF, "OM3PGP4 NVMe SSD(0x5016)"},
-{0x2646, 0x5017, 0xFFFF, 0xFFFF, "NV2 NVMe SSD SM2267XT(0x5017)"},
-{0x2646, 0x5019, 0xFFFF, 0xFFFF, "NV2 NVMe SSD E21T(0x5019)"},
+{0x2646, 0x5017, 0xFFFF, 0xFFFF, "NV2 NVMe SSD SM2267XT (DRAM-less)(0x5017)"},
+{0x2646, 0x5019, 0xFFFF, 0xFFFF, "NV2 NVMe SSD E21T (DRAM-less)(0x5019)"},
+{0x2646, 0x501A, 0xFFFF, 0xFFFF, "OM8PGP4 Design-In PCIe 4 NVMe SSD (TLC) (DRAM-less)(0x501A)"},
{0x2646, 0x501B, 0xFFFF, 0xFFFF, "OM8PGP4 NVMe PCIe SSD (DRAM-less)(0x501B)"},
{0x2646, 0x501C, 0xFFFF, 0xFFFF, "NV2 NVMe SSD E19T(0x501C)"},
-{0x2646, 0x501D, 0xFFFF, 0xFFFF, "NV2 NVMe SSD TC2200(0x501D)"},
+{0x2646, 0x501D, 0xFFFF, 0xFFFF, "NV2 NVMe SSD TC2200 (DRAM-less)(0x501D)"},
{0x2646, 0x501F, 0xFFFF, 0xFFFF, "FURY Renegade NVMe SSD with heatsink(0x501F)"},
-{0x2646, 0x5021, 0xFFFF, 0xFFFF, "Design-In PCIe 4 NVMe SSD (QLC)(0x5021)"},
+{0x2646, 0x5021, 0xFFFF, 0xFFFF, "OM8SEP4 Design-In PCIe 4 NVMe SSD (QLC) (DRAM-less)(0x5021)"},
{0x2646, 0x5023, 0xFFFF, 0xFFFF, "NV2 NVMe SSD SM2269XT(0x5023)"},
}; /* pci_vid_2646[] */
-pci_id_t pci_vid_270B[] = {
+static pci_id_t const pci_vid_270B[] = {
{0x270B, 0xFFFF, 0xFFFF, 0xFFFF, "Xantel Corporation(0x270B)"},
}; /* pci_vid_270B[] */
-pci_id_t pci_vid_270F[] = {
+static pci_id_t const pci_vid_270F[] = {
{0x270F, 0xFFFF, 0xFFFF, 0xFFFF, "Chaintech Computer Co. Ltd(0x270F)"},
}; /* pci_vid_270F[] */
-pci_id_t pci_vid_2711[] = {
+static pci_id_t const pci_vid_2711[] = {
{0x2711, 0xFFFF, 0xFFFF, 0xFFFF, "AVID Technology Inc.(0x2711)"},
}; /* pci_vid_2711[] */
-pci_id_t pci_vid_2782[] = {
+static pci_id_t const pci_vid_2782[] = {
{0x2782, 0xFFFF, 0xFFFF, 0xFFFF, "Emdoor Digital Technology Co., Ltd(0x2782)"},
}; /* pci_vid_2782[] */
-pci_id_t pci_vid_2955[] = {
+static pci_id_t const pci_vid_2955[] = {
{0x2955, 0xFFFF, 0xFFFF, 0xFFFF, "Connectix Virtual PC(0x2955)"},
{0x2955, 0x6E61, 0xFFFF, 0xFFFF, "OHCI USB 1.1 controller(0x6E61)"},
}; /* pci_vid_2955[] */
-pci_id_t pci_vid_2A15[] = {
+static pci_id_t const pci_vid_2A15[] = {
{0x2A15, 0xFFFF, 0xFFFF, 0xFFFF, "3D Vision(?-?-?-)(0x2A15)"},
}; /* pci_vid_2A15[] */
-pci_id_t pci_vid_2A18[] = {
+static pci_id_t const pci_vid_2A18[] = {
{0x2A18, 0xFFFF, 0xFFFF, 0xFFFF, "Video Transcode Controller(0x2A18)"},
}; /* pci_vid_2A18[] */
-pci_id_t pci_vid_2BD8[] = {
+static pci_id_t const pci_vid_2BD8[] = {
{0x2BD8, 0xFFFF, 0xFFFF, 0xFFFF, "ROPEX Industrie-Elektronik GmbH(0x2BD8)"},
}; /* pci_vid_2BD8[] */
-pci_id_t pci_vid_3000[] = {
+static pci_id_t const pci_vid_3000[] = {
{0x3000, 0xFFFF, 0xFFFF, 0xFFFF, "Hansol Electronics Inc.(0x3000)"},
}; /* pci_vid_3000[] */
-pci_id_t pci_vid_3100[] = {
+static pci_id_t const pci_vid_3100[] = {
{0x3100, 0xFFFF, 0xFFFF, 0xFFFF, "Dynabook Inc.(0x3100)"},
}; /* pci_vid_3100[] */
-pci_id_t pci_vid_3112[] = {
+static pci_id_t const pci_vid_3112[] = {
{0x3112, 0xFFFF, 0xFFFF, 0xFFFF, "Satelco Ingenieria S.A.(0x3112)"},
}; /* pci_vid_3112[] */
-pci_id_t pci_vid_3130[] = {
+static pci_id_t const pci_vid_3130[] = {
{0x3130, 0xFFFF, 0xFFFF, 0xFFFF, "AUDIOTRAK(0x3130)"},
}; /* pci_vid_3130[] */
-pci_id_t pci_vid_3142[] = {
+static pci_id_t const pci_vid_3142[] = {
{0x3142, 0xFFFF, 0xFFFF, 0xFFFF, "Post Impression Systems.(0x3142)"},
}; /* pci_vid_3142[] */
-pci_id_t pci_vid_31AB[] = {
+static pci_id_t const pci_vid_31AB[] = {
{0x31AB, 0xFFFF, 0xFFFF, 0xFFFF, "Zonet(0x31AB)"},
{0x31AB, 0x1FAA, 0xFFFF, 0xFFFF, "ZEW1602 802.11b/g Wireless Adapter(0x1FAA)"},
}; /* pci_vid_31AB[] */
-pci_id_t pci_vid_328F[] = {
+static pci_id_t const pci_vid_328F[] = {
{0x328F, 0xFFFF, 0xFFFF, 0xFFFF, "Shenzhen EMEET Technology Co., Ltd.(0x328F)"},
{0x328F, 0x004C, 0xFFFF, 0xFFFF, "OfficeCore M1A(0x004C)"},
+{0x328F, 0x2019, 0xFFFF, 0xFFFF, "REC 600 HD Webcam(0x2019)"},
}; /* pci_vid_328F[] */
-pci_id_t pci_vid_3388[] = {
+static pci_id_t const pci_vid_3388[] = {
{0x3388, 0xFFFF, 0xFFFF, 0xFFFF, "Hint Corp(0x3388)"},
{0x3388, 0x0013, 0xFFFF, 0xFFFF, "HiNT HC4 PCI to ISDN bridge, Multimedia audio controller(0x0013)"},
{0x3388, 0x0014, 0xFFFF, 0xFFFF, "HiNT HC4 PCI to ISDN bridge, Network controller(0x0014)"},
@@ -32615,29 +32872,33 @@ pci_id_t pci_vid_3388[] = {
{0x3388, 0xA103, 0xFFFF, 0xFFFF, "Blackmagic Design DeckLink HD Pro(0xA103)"},
}; /* pci_vid_3388[] */
-pci_id_t pci_vid_3411[] = {
+static pci_id_t const pci_vid_3411[] = {
{0x3411, 0xFFFF, 0xFFFF, 0xFFFF, "Quantum Designs (H.K.) Inc(0x3411)"},
}; /* pci_vid_3411[] */
-pci_id_t pci_vid_3442[] = {
+static pci_id_t const pci_vid_3442[] = {
{0x3442, 0xFFFF, 0xFFFF, 0xFFFF, "Bihl+Wiedemann GmbH(0x3442)"},
{0x3442, 0x1783, 0xFFFF, 0xFFFF, "AS-i 3.0 cPCI Master(0x1783)"},
{0x3442, 0x1922, 0xFFFF, 0xFFFF, "AS-i 3.0 PCI Master(0x1922)"},
}; /* pci_vid_3442[] */
-pci_id_t pci_vid_3475[] = {
+static pci_id_t const pci_vid_3475[] = {
{0x3475, 0xFFFF, 0xFFFF, 0xFFFF, "Arista Networks, Inc.(0x3475)"},
}; /* pci_vid_3475[] */
-pci_id_t pci_vid_34BA[] = {
+static pci_id_t const pci_vid_34BA[] = {
{0x34BA, 0xFFFF, 0xFFFF, 0xFFFF, "Ice Lake-LP PCI Express Root Port #3(0x34BA)"},
}; /* pci_vid_34BA[] */
-pci_id_t pci_vid_3513[] = {
+static pci_id_t const pci_vid_3513[] = {
{0x3513, 0xFFFF, 0xFFFF, 0xFFFF, "ARCOM Control Systems Ltd(0x3513)"},
}; /* pci_vid_3513[] */
-pci_id_t pci_vid_37D9[] = {
+static pci_id_t const pci_vid_369A[] = {
+{0x369A, 0xFFFF, 0xFFFF, 0xFFFF, "HighSecLabs, Ltd.(0x369A)"},
+}; /* pci_vid_369A[] */
+
+static pci_id_t const pci_vid_37D9[] = {
{0x37D9, 0xFFFF, 0xFFFF, 0xFFFF, "ITD Firm ltd.(0x37D9)"},
{0x37D9, 0x1138, 0xFFFF, 0xFFFF, "SCHD-PH-8 Phase detector(0x1138)"},
{0x37D9, 0x1140, 0xFFFF, 0xFFFF, "VR-12-PCI 12-ch Relay Actuator Card(0x1140)"},
@@ -32645,15 +32906,19 @@ pci_id_t pci_vid_37D9[] = {
{0x37D9, 0x1142, 0xFFFF, 0xFFFF, "PCI-CAN2(0x1142)"},
}; /* pci_vid_37D9[] */
-pci_id_t pci_vid_3842[] = {
+static pci_id_t const pci_vid_3842[] = {
{0x3842, 0xFFFF, 0xFFFF, 0xFFFF, "eVga.com. Corp.(0x3842)"},
}; /* pci_vid_3842[] */
-pci_id_t pci_vid_38EF[] = {
+static pci_id_t const pci_vid_38EF[] = {
{0x38EF, 0xFFFF, 0xFFFF, 0xFFFF, "4Links(0x38EF)"},
}; /* pci_vid_38EF[] */
-pci_id_t pci_vid_3D3D[] = {
+static pci_id_t const pci_vid_393E[] = {
+{0x393E, 0xFFFF, 0xFFFF, 0xFFFF, "Lenovo (wrong ID)(0x393E)"},
+}; /* pci_vid_393E[] */
+
+static pci_id_t const pci_vid_3D3D[] = {
{0x3D3D, 0xFFFF, 0xFFFF, 0xFFFF, "3DLabs(0x3D3D)"},
{0x3D3D, 0x0001, 0xFFFF, 0xFFFF, "GLINT 300SX(0x0001)"},
{0x3D3D, 0x0002, 0xFFFF, 0xFFFF, "GLINT 500TX(0x0002)"},
@@ -32705,7 +32970,7 @@ pci_id_t pci_vid_3D3D[] = {
{0x3D3D, 0xFFFF, 0xFFFF, 0xFFFF, "Glint VGA(0xFFFF)"},
}; /* pci_vid_3D3D[] */
-pci_id_t pci_vid_4005[] = {
+static pci_id_t const pci_vid_4005[] = {
{0x4005, 0xFFFF, 0xFFFF, 0xFFFF, "Avance Logic Inc.(0x4005)"},
{0x4005, 0x0300, 0xFFFF, 0xFFFF, "ALS300 PCI Audio Device(0x0300)"},
{0x4005, 0x0308, 0xFFFF, 0xFFFF, "ALS300+ PCI Audio Device(0x0308)"},
@@ -32724,12 +32989,12 @@ pci_id_t pci_vid_4005[] = {
{0x4005, 0x4710, 0xFFFF, 0xFFFF, "ALC200/200P(0x4710)"},
}; /* pci_vid_4005[] */
-pci_id_t pci_vid_4033[] = {
+static pci_id_t const pci_vid_4033[] = {
{0x4033, 0xFFFF, 0xFFFF, 0xFFFF, "Addtron Technology Co, Inc.(0x4033)"},
{0x4033, 0x1360, 0xFFFF, 0xFFFF, "RTL8139 Ethernet(0x1360)"},
}; /* pci_vid_4033[] */
-pci_id_t pci_vid_4040[] = {
+static pci_id_t const pci_vid_4040[] = {
{0x4040, 0xFFFF, 0xFFFF, 0xFFFF, "NetXen Incorporated(0x4040)"},
{0x4040, 0x0001, 0xFFFF, 0xFFFF, "NXB-10GXSR 10-Gigabit Ethernet PCIe Adapter with SR-XFP optical interface(0x0001)"},
{0x4040, 0x0001, 0x103C, 0x7047, "NC510F PCIe 10-Gigabit Server Adapter(0x103C-0x7047)"},
@@ -32752,45 +33017,45 @@ pci_id_t pci_vid_4040[] = {
{0x4040, 0x0100, 0x4040, 0x0126, "Dual Port SFP+ 10GbE Server Adapter(0x4040-0x0126)"},
}; /* pci_vid_4040[] */
-pci_id_t pci_vid_4143[] = {
+static pci_id_t const pci_vid_4143[] = {
{0x4143, 0xFFFF, 0xFFFF, 0xFFFF, "Digital Equipment Corp(0x4143)"},
}; /* pci_vid_4143[] */
-pci_id_t pci_vid_4144[] = {
+static pci_id_t const pci_vid_4144[] = {
{0x4144, 0xFFFF, 0xFFFF, 0xFFFF, "Alpha Data(0x4144)"},
{0x4144, 0x0044, 0xFFFF, 0xFFFF, "ADM-XRCIIPro(0x0044)"},
}; /* pci_vid_4144[] */
-pci_id_t pci_vid_4150[] = {
+static pci_id_t const pci_vid_4150[] = {
{0x4150, 0xFFFF, 0xFFFF, 0xFFFF, "ONA Electroerosion(0x4150)"},
{0x4150, 0x0001, 0xFFFF, 0xFFFF, "PCI32TLITE FILSTRUP1 PCI to VME Bridge Controller(0x0001)"},
{0x4150, 0x0006, 0xFFFF, 0xFFFF, "PCI32TLITE UART 16550 Opencores(0x0006)"},
{0x4150, 0x0007, 0xFFFF, 0xFFFF, "PCI32TLITE CAN Controller Opencores(0x0007)"},
}; /* pci_vid_4150[] */
-pci_id_t pci_vid_415A[] = {
+static pci_id_t const pci_vid_415A[] = {
{0x415A, 0xFFFF, 0xFFFF, 0xFFFF, "Auzentech, Inc.(0x415A)"},
}; /* pci_vid_415A[] */
-pci_id_t pci_vid_416C[] = {
+static pci_id_t const pci_vid_416C[] = {
{0x416C, 0xFFFF, 0xFFFF, 0xFFFF, "Aladdin Knowledge Systems(0x416C)"},
{0x416C, 0x0100, 0xFFFF, 0xFFFF, "AladdinCARD(0x0100)"},
{0x416C, 0x0200, 0xFFFF, 0xFFFF, "CPC(0x0200)"},
}; /* pci_vid_416C[] */
-pci_id_t pci_vid_4242[] = {
+static pci_id_t const pci_vid_4242[] = {
{0x4242, 0xFFFF, 0xFFFF, 0xFFFF, "Universall Answer Generators(0x4242)"},
}; /* pci_vid_4242[] */
-pci_id_t pci_vid_4254[] = {
+static pci_id_t const pci_vid_4254[] = {
{0x4254, 0xFFFF, 0xFFFF, 0xFFFF, "DVBSky(0x4254)"},
}; /* pci_vid_4254[] */
-pci_id_t pci_vid_4321[] = {
+static pci_id_t const pci_vid_4321[] = {
{0x4321, 0xFFFF, 0xFFFF, 0xFFFF, "Tata Power Strategic Electronics Division(0x4321)"},
}; /* pci_vid_4321[] */
-pci_id_t pci_vid_4348[] = {
+static pci_id_t const pci_vid_4348[] = {
{0x4348, 0xFFFF, 0xFFFF, 0xFFFF, "WCH.CN(0x4348)"},
{0x4348, 0x2273, 0xFFFF, 0xFFFF, "CH351 PCI Dual Serial Port Controller(0x2273)"},
{0x4348, 0x3253, 0xFFFF, 0xFFFF, "CH352 PCI Dual Serial Port Controller(0x3253)"},
@@ -32801,11 +33066,11 @@ pci_id_t pci_vid_4348[] = {
{0x4348, 0x7173, 0xFFFF, 0xFFFF, "CH355 PCI Quad Serial Port Controller(0x7173)"},
}; /* pci_vid_4348[] */
-pci_id_t pci_vid_434E[] = {
+static pci_id_t const pci_vid_434E[] = {
{0x434E, 0xFFFF, 0xFFFF, 0xFFFF, "Cornelis Networks(0x434E)"},
}; /* pci_vid_434E[] */
-pci_id_t pci_vid_4444[] = {
+static pci_id_t const pci_vid_4444[] = {
{0x4444, 0xFFFF, 0xFFFF, 0xFFFF, "Internext Compression Inc(0x4444)"},
{0x4444, 0x0016, 0xFFFF, 0xFFFF, "iTVC16 (CX23416) Video Decoder(0x0016)"},
{0x4444, 0x0016, 0x0070, 0x0003, "WinTV PVR 250(0x0070-0x0003)"},
@@ -32872,47 +33137,47 @@ pci_id_t pci_vid_4444[] = {
{0x4444, 0x0803, 0x1461, 0xA3CF, "M179(0x1461-0xA3CF)"},
}; /* pci_vid_4444[] */
-pci_id_t pci_vid_4468[] = {
+static pci_id_t const pci_vid_4468[] = {
{0x4468, 0xFFFF, 0xFFFF, 0xFFFF, "Bridgeport machines(0x4468)"},
}; /* pci_vid_4468[] */
-pci_id_t pci_vid_4594[] = {
+static pci_id_t const pci_vid_4594[] = {
{0x4594, 0xFFFF, 0xFFFF, 0xFFFF, "Cogetec Informatique Inc(0x4594)"},
}; /* pci_vid_4594[] */
-pci_id_t pci_vid_45FB[] = {
+static pci_id_t const pci_vid_45FB[] = {
{0x45FB, 0xFFFF, 0xFFFF, 0xFFFF, "Baldor Electric Company(0x45FB)"},
}; /* pci_vid_45FB[] */
-pci_id_t pci_vid_4624[] = {
+static pci_id_t const pci_vid_4624[] = {
{0x4624, 0xFFFF, 0xFFFF, 0xFFFF, "Budker Institute of Nuclear Physics(0x4624)"},
{0x4624, 0xADC1, 0xFFFF, 0xFFFF, "ADC200ME High speed ADC(0xADC1)"},
{0x4624, 0xDE01, 0xFFFF, 0xFFFF, "DL200ME High resolution delay line PCI based card(0xDE01)"},
{0x4624, 0xDE02, 0xFFFF, 0xFFFF, "DL200ME Middle resolution delay line PCI based card(0xDE02)"},
}; /* pci_vid_4624[] */
-pci_id_t pci_vid_4651[] = {
+static pci_id_t const pci_vid_4651[] = {
{0x4651, 0xFFFF, 0xFFFF, 0xFFFF, "TXIC(0x4651)"},
}; /* pci_vid_4651[] */
-pci_id_t pci_vid_4680[] = {
+static pci_id_t const pci_vid_4680[] = {
{0x4680, 0xFFFF, 0xFFFF, 0xFFFF, "Umax Computer Corp(0x4680)"},
}; /* pci_vid_4680[] */
-pci_id_t pci_vid_4843[] = {
+static pci_id_t const pci_vid_4843[] = {
{0x4843, 0xFFFF, 0xFFFF, 0xFFFF, "Hercules Computer Technology Inc(0x4843)"},
}; /* pci_vid_4843[] */
-pci_id_t pci_vid_4916[] = {
+static pci_id_t const pci_vid_4916[] = {
{0x4916, 0xFFFF, 0xFFFF, 0xFFFF, "RedCreek Communications Inc(0x4916)"},
{0x4916, 0x1960, 0xFFFF, 0xFFFF, "RedCreek PCI adapter(0x1960)"},
}; /* pci_vid_4916[] */
-pci_id_t pci_vid_4943[] = {
+static pci_id_t const pci_vid_4943[] = {
{0x4943, 0xFFFF, 0xFFFF, 0xFFFF, "Growth Networks(0x4943)"},
}; /* pci_vid_4943[] */
-pci_id_t pci_vid_494F[] = {
+static pci_id_t const pci_vid_494F[] = {
{0x494F, 0xFFFF, 0xFFFF, 0xFFFF, "ACCES I/O Products, Inc.(0x494F)"},
{0x494F, 0x0508, 0xFFFF, 0xFFFF, "PCI-IDO-16A FET Output Card(0x0508)"},
{0x494F, 0x0518, 0xFFFF, 0xFFFF, "PCI-IDO-32A FET Output Card(0x0518)"},
@@ -33038,33 +33303,47 @@ pci_id_t pci_vid_494F[] = {
{0x494F, 0xECE9, 0xFFFF, 0xFFFF, "LPCI-AIO16A 16-bit 500kHz Analog Input low-profile Card(0xECE9)"},
}; /* pci_vid_494F[] */
-pci_id_t pci_vid_4978[] = {
+static pci_id_t const pci_vid_4978[] = {
{0x4978, 0xFFFF, 0xFFFF, 0xFFFF, "Axil Computer Inc(0x4978)"},
}; /* pci_vid_4978[] */
-pci_id_t pci_vid_4A14[] = {
+static pci_id_t const pci_vid_4A14[] = {
{0x4A14, 0xFFFF, 0xFFFF, 0xFFFF, "NetVin(0x4A14)"},
{0x4A14, 0x5000, 0xFFFF, 0xFFFF, "NV5000SC(0x5000)"},
{0x4A14, 0x5000, 0x4A14, 0x5000, "RT8029-Based Ethernet Adapter(0x4A14-0x5000)"},
}; /* pci_vid_4A14[] */
-pci_id_t pci_vid_4B10[] = {
+static pci_id_t const pci_vid_4B10[] = {
{0x4B10, 0xFFFF, 0xFFFF, 0xFFFF, "Buslogic Inc.(0x4B10)"},
}; /* pci_vid_4B10[] */
-pci_id_t pci_vid_4C48[] = {
+static pci_id_t const pci_vid_4B43[] = {
+{0x4B43, 0xFFFF, 0xFFFF, 0xFFFF, "KonteX Inc.(0x4B43)"},
+}; /* pci_vid_4B43[] */
+
+static pci_id_t const pci_vid_4C48[] = {
{0x4C48, 0xFFFF, 0xFFFF, 0xFFFF, "LUNG HWA Electronics(0x4C48)"},
}; /* pci_vid_4C48[] */
-pci_id_t pci_vid_4C4D[] = {
+static pci_id_t const pci_vid_4C4D[] = {
{0x4C4D, 0xFFFF, 0xFFFF, 0xFFFF, "Liquid-Markets GmbH(0x4C4D)"},
+{0x4C4D, 0x9998, 0xFFFF, 0xFFFF, "TaSR(0x9998)"},
+{0x4C4D, 0x9999, 0xFFFF, 0xFFFF, "UberNIC PoC/testing/dev(0x9999)"},
}; /* pci_vid_4C4D[] */
-pci_id_t pci_vid_4C52[] = {
-{0x4C52, 0xFFFF, 0xFFFF, 0xFFFF, "LR-Link(0x4C52)"},
+static pci_id_t const pci_vid_4C52[] = {
+{0x4C52, 0xFFFF, 0xFFFF, 0xFFFF, "LR-LINK(0x4C52)"},
+{0x4C52, 0x1001, 0xFFFF, 0xFFFF, "Smart Network Adapter(0x1001)"},
+{0x4C52, 0x1001, 0x4C52, 0xA006, "LREG1006PT Single-port 1.2Gb Network Security Isolation Adapter(0x4C52-0xA006)"},
+{0x4C52, 0x1001, 0x4C52, 0xA008, "LREG1008PT Single-port 1Gb Smart Ethernet Network Adapter(0x4C52-0xA008)"},
+{0x4C52, 0x1001, 0x4C52, 0xA009, "LREG1009PT Single-port 2.5Gb Smart Ethernet Network Adapter(0x4C52-0xA009)"},
+{0x4C52, 0x1002, 0xFFFF, 0xFFFF, "Smart Network Adapter(0x1002)"},
+{0x4C52, 0x1002, 0x4C52, 0xA007, "LREG1007PT Quad-port 10Gb Smart Ethernet Network Adapter(0x4C52-0xA007)"},
+{0x4C52, 0x1003, 0xFFFF, 0xFFFF, "Smart Network Adapter(0x1003)"},
+{0x4C52, 0x1003, 0x4C52, 0xB010, "LREG1010PF Single-port 10Gb FPGA Network Security Isolation Adapter(0x4C52-0xB010)"},
}; /* pci_vid_4C52[] */
-pci_id_t pci_vid_4C53[] = {
+static pci_id_t const pci_vid_4C53[] = {
{0x4C53, 0xFFFF, 0xFFFF, 0xFFFF, "SBS Technologies(0x4C53)"},
{0x4C53, 0x0000, 0xFFFF, 0xFFFF, "PLUSTEST device(0x0000)"},
{0x4C53, 0x0000, 0x4C53, 0x3000, "PLUSTEST card (PC104+)(0x4C53-0x3000)"},
@@ -33073,20 +33352,20 @@ pci_id_t pci_vid_4C53[] = {
{0x4C53, 0x0001, 0x4C53, 0x3002, "PLUSTEST-MM card (PMC)(0x4C53-0x3002)"},
}; /* pci_vid_4C53[] */
-pci_id_t pci_vid_4CA1[] = {
+static pci_id_t const pci_vid_4CA1[] = {
{0x4CA1, 0xFFFF, 0xFFFF, 0xFFFF, "Seanix Technology Inc(0x4CA1)"},
}; /* pci_vid_4CA1[] */
-pci_id_t pci_vid_4D51[] = {
+static pci_id_t const pci_vid_4D51[] = {
{0x4D51, 0xFFFF, 0xFFFF, 0xFFFF, "MediaQ Inc.(0x4D51)"},
{0x4D51, 0x0200, 0xFFFF, 0xFFFF, "MQ-200(0x0200)"},
}; /* pci_vid_4D51[] */
-pci_id_t pci_vid_4D54[] = {
+static pci_id_t const pci_vid_4D54[] = {
{0x4D54, 0xFFFF, 0xFFFF, 0xFFFF, "Microtechnica Co Ltd(0x4D54)"},
}; /* pci_vid_4D54[] */
-pci_id_t pci_vid_4D56[] = {
+static pci_id_t const pci_vid_4D56[] = {
{0x4D56, 0xFFFF, 0xFFFF, 0xFFFF, "Balluff MV GmbH(0x4D56)"},
{0x4D56, 0x0000, 0xFFFF, 0xFFFF, "[mvHYPERION-CLe/CLb] CameraLink PCI Express x1 Frame Grabber(0x0000)"},
{0x4D56, 0x0001, 0xFFFF, 0xFFFF, "[mvHYPERION-CLf/CLm] CameraLink PCI Express x4 Frame Grabber(0x0001)"},
@@ -33099,7 +33378,7 @@ pci_id_t pci_vid_4D56[] = {
{0x4D56, 0x7024, 0xFFFF, 0xFFFF, "[mvBlueNAOS BVS CA-BN] PCIe Gen2 x4 Camera(0x7024)"},
}; /* pci_vid_4D56[] */
-pci_id_t pci_vid_4DDC[] = {
+static pci_id_t const pci_vid_4DDC[] = {
{0x4DDC, 0xFFFF, 0xFFFF, 0xFFFF, "ILC Data Device Corp(0x4DDC)"},
{0x4DDC, 0x0100, 0xFFFF, 0xFFFF, "DD-42924I5-300 (ARINC 429 Data Bus)(0x0100)"},
{0x4DDC, 0x0300, 0xFFFF, 0xFFFF, "SB-3620 Motion Feedback Device(0x0300)"},
@@ -33129,60 +33408,64 @@ pci_id_t pci_vid_4DDC[] = {
{0x4DDC, 0x3000, 0xFFFF, 0xFFFF, "SB-3644 Motion Feedback Device(0x3000)"},
}; /* pci_vid_4DDC[] */
-pci_id_t pci_vid_4E58[] = {
+static pci_id_t const pci_vid_4E4C[] = {
+{0x4E4C, 0xFFFF, 0xFFFF, 0xFFFF, "NieL TechSolution(0x4E4C)"},
+}; /* pci_vid_4E4C[] */
+
+static pci_id_t const pci_vid_4E58[] = {
{0x4E58, 0xFFFF, 0xFFFF, 0xFFFF, "Nutanix, Inc.(0x4E58)"},
{0x4E58, 0x0001, 0xFFFF, 0xFFFF, "Virtual NVMe Controller(0x0001)"},
}; /* pci_vid_4E58[] */
-pci_id_t pci_vid_5045[] = {
+static pci_id_t const pci_vid_5045[] = {
{0x5045, 0xFFFF, 0xFFFF, 0xFFFF, "University of Toronto(0x5045)"},
{0x5045, 0x4243, 0xFFFF, 0xFFFF, "BLASTbus PCI Interface Card v1(0x4243)"},
}; /* pci_vid_5045[] */
-pci_id_t pci_vid_5046[] = {
+static pci_id_t const pci_vid_5046[] = {
{0x5046, 0xFFFF, 0xFFFF, 0xFFFF, "GemTek Technology Corporation(0x5046)"},
{0x5046, 0x1001, 0xFFFF, 0xFFFF, "PCI Radio(0x1001)"},
}; /* pci_vid_5046[] */
-pci_id_t pci_vid_5053[] = {
+static pci_id_t const pci_vid_5053[] = {
{0x5053, 0xFFFF, 0xFFFF, 0xFFFF, "Voyetra Technologies(0x5053)"},
{0x5053, 0x2010, 0xFFFF, 0xFFFF, "Daytona Audio Adapter(0x2010)"},
}; /* pci_vid_5053[] */
-pci_id_t pci_vid_50B2[] = {
+static pci_id_t const pci_vid_50B2[] = {
{0x50B2, 0xFFFF, 0xFFFF, 0xFFFF, "TerraTec Electronic GmbH(0x50B2)"},
}; /* pci_vid_50B2[] */
-pci_id_t pci_vid_50CE[] = {
+static pci_id_t const pci_vid_50CE[] = {
{0x50CE, 0xFFFF, 0xFFFF, 0xFFFF, "System-on-Chip Engineering S.L.(0x50CE)"},
{0x50CE, 0x0001, 0xFFFF, 0xFFFF, "RELY-MIL-XMC-TSN-SWITCH(0x0001)"},
}; /* pci_vid_50CE[] */
-pci_id_t pci_vid_5136[] = {
+static pci_id_t const pci_vid_5136[] = {
{0x5136, 0xFFFF, 0xFFFF, 0xFFFF, "S S Technologies(0x5136)"},
}; /* pci_vid_5136[] */
-pci_id_t pci_vid_5143[] = {
+static pci_id_t const pci_vid_5143[] = {
{0x5143, 0xFFFF, 0xFFFF, 0xFFFF, "Qualcomm Inc(0x5143)"},
}; /* pci_vid_5143[] */
-pci_id_t pci_vid_5145[] = {
+static pci_id_t const pci_vid_5145[] = {
{0x5145, 0xFFFF, 0xFFFF, 0xFFFF, "Ensoniq (Old)(0x5145)"},
{0x5145, 0x3031, 0xFFFF, 0xFFFF, "Concert AudioPCI(0x3031)"},
}; /* pci_vid_5145[] */
-pci_id_t pci_vid_5168[] = {
+static pci_id_t const pci_vid_5168[] = {
{0x5168, 0xFFFF, 0xFFFF, 0xFFFF, "Animation Technologies Inc.(0x5168)"},
{0x5168, 0x0300, 0xFFFF, 0xFFFF, "FlyDVB-S(0x0300)"},
{0x5168, 0x0301, 0xFFFF, 0xFFFF, "FlyDVB-T(0x0301)"},
}; /* pci_vid_5168[] */
-pci_id_t pci_vid_5301[] = {
+static pci_id_t const pci_vid_5301[] = {
{0x5301, 0xFFFF, 0xFFFF, 0xFFFF, "Alliance Semiconductor Corp.(0x5301)"},
{0x5301, 0x0001, 0xFFFF, 0xFFFF, "ProMotion aT3D(0x0001)"},
}; /* pci_vid_5301[] */
-pci_id_t pci_vid_5333[] = {
+static pci_id_t const pci_vid_5333[] = {
{0x5333, 0xFFFF, 0xFFFF, 0xFFFF, "S3 Graphics Ltd.(0x5333)"},
{0x5333, 0x0551, 0xFFFF, 0xFFFF, "Plato/PX (system)(0x0551)"},
{0x5333, 0x5631, 0xFFFF, 0xFFFF, "86c325 [ViRGE](0x5631)"},
@@ -33331,16 +33614,16 @@ pci_id_t pci_vid_5333[] = {
{0x5333, 0xCA00, 0xFFFF, 0xFFFF, "SonicVibes(0xCA00)"},
}; /* pci_vid_5333[] */
-pci_id_t pci_vid_5431[] = {
+static pci_id_t const pci_vid_5431[] = {
{0x5431, 0xFFFF, 0xFFFF, 0xFFFF, "AuzenTech, Inc.(0x5431)"},
}; /* pci_vid_5431[] */
-pci_id_t pci_vid_544C[] = {
+static pci_id_t const pci_vid_544C[] = {
{0x544C, 0xFFFF, 0xFFFF, 0xFFFF, "Teralogic Inc(0x544C)"},
{0x544C, 0x0350, 0xFFFF, 0xFFFF, "TL880-based HDTV/ATSC tuner(0x0350)"},
}; /* pci_vid_544C[] */
-pci_id_t pci_vid_544D[] = {
+static pci_id_t const pci_vid_544D[] = {
{0x544D, 0xFFFF, 0xFFFF, 0xFFFF, "TBS Technologies(0x544D)"},
{0x544D, 0x6178, 0xFFFF, 0xFFFF, "DVB Tuner PCIe Card(0x6178)"},
{0x544D, 0x6178, 0x544D, 0x6904, "TBS6904 DVB-S2 Quad Tuner PCIe Card(0x544D-0x6904)"},
@@ -33360,67 +33643,68 @@ pci_id_t pci_vid_544D[] = {
{0x544D, 0x6178, 0x6910, 0x0002, "TBS6910SE DVB-S/S2/S2x + 2xCI(0x6910-0x0002)"},
}; /* pci_vid_544D[] */
-pci_id_t pci_vid_5452[] = {
+static pci_id_t const pci_vid_5452[] = {
{0x5452, 0xFFFF, 0xFFFF, 0xFFFF, "SCANLAB AG(0x5452)"},
{0x5452, 0x3443, 0xFFFF, 0xFFFF, "RTC4(0x3443)"},
}; /* pci_vid_5452[] */
-pci_id_t pci_vid_5455[] = {
+static pci_id_t const pci_vid_5455[] = {
{0x5455, 0xFFFF, 0xFFFF, 0xFFFF, "Technische Universitaet Berlin(0x5455)"},
{0x5455, 0x4458, 0xFFFF, 0xFFFF, "S5933(0x4458)"},
}; /* pci_vid_5455[] */
-pci_id_t pci_vid_5456[] = {
+static pci_id_t const pci_vid_5456[] = {
{0x5456, 0xFFFF, 0xFFFF, 0xFFFF, "GoTView(0x5456)"},
}; /* pci_vid_5456[] */
-pci_id_t pci_vid_5519[] = {
+static pci_id_t const pci_vid_5519[] = {
{0x5519, 0xFFFF, 0xFFFF, 0xFFFF, "Cnet Technologies, Inc.(0x5519)"},
}; /* pci_vid_5519[] */
-pci_id_t pci_vid_5544[] = {
+static pci_id_t const pci_vid_5544[] = {
{0x5544, 0xFFFF, 0xFFFF, 0xFFFF, "Dunord Technologies(0x5544)"},
{0x5544, 0x0001, 0xFFFF, 0xFFFF, "I-30xx Scanner Interface(0x0001)"},
}; /* pci_vid_5544[] */
-pci_id_t pci_vid_5555[] = {
+static pci_id_t const pci_vid_5555[] = {
{0x5555, 0xFFFF, 0xFFFF, 0xFFFF, "Genroco, Inc(0x5555)"},
{0x5555, 0x0003, 0xFFFF, 0xFFFF, "TURBOstor HFP-832 [HiPPI NIC](0x0003)"},
+{0x5555, 0x0004, 0xFFFF, 0xFFFF, "Torrent QN16e [16-128 Channel MPEG QAM Modulator for DVB-C](0x0004)"},
{0x5555, 0x3B00, 0xFFFF, 0xFFFF, "Epiphan DVI2PCIe video capture card(0x3B00)"},
}; /* pci_vid_5555[] */
-pci_id_t pci_vid_5646[] = {
+static pci_id_t const pci_vid_5646[] = {
{0x5646, 0xFFFF, 0xFFFF, 0xFFFF, "Vector Fabrics BV(0x5646)"},
}; /* pci_vid_5646[] */
-pci_id_t pci_vid_5654[] = {
+static pci_id_t const pci_vid_5654[] = {
{0x5654, 0xFFFF, 0xFFFF, 0xFFFF, "VoiceTronix Pty Ltd(0x5654)"},
}; /* pci_vid_5654[] */
-pci_id_t pci_vid_5678[] = {
+static pci_id_t const pci_vid_5678[] = {
{0x5678, 0xFFFF, 0xFFFF, 0xFFFF, "Dawicontrol Computersysteme GmbH(0x5678)"},
}; /* pci_vid_5678[] */
-pci_id_t pci_vid_5700[] = {
+static pci_id_t const pci_vid_5700[] = {
{0x5700, 0xFFFF, 0xFFFF, 0xFFFF, "Netpower(0x5700)"},
}; /* pci_vid_5700[] */
-pci_id_t pci_vid_5845[] = {
+static pci_id_t const pci_vid_5845[] = {
{0x5845, 0xFFFF, 0xFFFF, 0xFFFF, "X-ES, Inc.(0x5845)"},
}; /* pci_vid_5845[] */
-pci_id_t pci_vid_584D[] = {
+static pci_id_t const pci_vid_584D[] = {
{0x584D, 0xFFFF, 0xFFFF, 0xFFFF, "AuzenTech Co., Ltd.(0x584D)"},
}; /* pci_vid_584D[] */
-pci_id_t pci_vid_5851[] = {
+static pci_id_t const pci_vid_5851[] = {
{0x5851, 0xFFFF, 0xFFFF, 0xFFFF, "Exacq Technologies(0x5851)"},
{0x5851, 0x8008, 0xFFFF, 0xFFFF, "tDVR8008 8-port video capture card(0x8008)"},
{0x5851, 0x8016, 0xFFFF, 0xFFFF, "tDVR8016 16-chan video capture card(0x8016)"},
{0x5851, 0x8032, 0xFFFF, 0xFFFF, "tDVR8032 32-chan video capture card(0x8032)"},
}; /* pci_vid_5851[] */
-pci_id_t pci_vid_5853[] = {
+static pci_id_t const pci_vid_5853[] = {
{0x5853, 0xFFFF, 0xFFFF, 0xFFFF, "XenSource, Inc.(0x5853)"},
{0x5853, 0x0001, 0xFFFF, 0xFFFF, "Xen Platform Device(0x0001)"},
{0x5853, 0xC000, 0xFFFF, 0xFFFF, "Citrix XenServer PCI Device for Windows Update(0xC000)"},
@@ -33429,51 +33713,51 @@ pci_id_t pci_vid_5853[] = {
{0x5853, 0xC200, 0xFFFF, 0xFFFF, "XCP-ng Project PCI Device for Windows Update(0xC200)"},
}; /* pci_vid_5853[] */
-pci_id_t pci_vid_5854[] = {
+static pci_id_t const pci_vid_5854[] = {
{0x5854, 0xFFFF, 0xFFFF, 0xFFFF, "GoTView(0x5854)"},
}; /* pci_vid_5854[] */
-pci_id_t pci_vid_5ACE[] = {
+static pci_id_t const pci_vid_5ACE[] = {
{0x5ACE, 0xFFFF, 0xFFFF, 0xFFFF, "Beholder International Ltd.(0x5ACE)"},
}; /* pci_vid_5ACE[] */
-pci_id_t pci_vid_6205[] = {
+static pci_id_t const pci_vid_6205[] = {
{0x6205, 0xFFFF, 0xFFFF, 0xFFFF, "TBS Technologies (wrong ID)(0x6205)"},
}; /* pci_vid_6205[] */
-pci_id_t pci_vid_6209[] = {
+static pci_id_t const pci_vid_6209[] = {
{0x6209, 0xFFFF, 0xFFFF, 0xFFFF, "TBS Technologies (wrong ID)(0x6209)"},
}; /* pci_vid_6209[] */
-pci_id_t pci_vid_631C[] = {
+static pci_id_t const pci_vid_631C[] = {
{0x631C, 0xFFFF, 0xFFFF, 0xFFFF, "SmartInfra Ltd(0x631C)"},
{0x631C, 0x1652, 0xFFFF, 0xFFFF, "PXI-1652 Signal Generator(0x1652)"},
{0x631C, 0x2504, 0xFFFF, 0xFFFF, "PXI-2504 Signal Interrogator(0x2504)"},
}; /* pci_vid_631C[] */
-pci_id_t pci_vid_6356[] = {
+static pci_id_t const pci_vid_6356[] = {
{0x6356, 0xFFFF, 0xFFFF, 0xFFFF, "UltraStor(0x6356)"},
}; /* pci_vid_6356[] */
-pci_id_t pci_vid_6374[] = {
+static pci_id_t const pci_vid_6374[] = {
{0x6374, 0xFFFF, 0xFFFF, 0xFFFF, "c't Magazin fuer Computertechnik(0x6374)"},
{0x6374, 0x6773, 0xFFFF, 0xFFFF, "GPPCI(0x6773)"},
}; /* pci_vid_6374[] */
-pci_id_t pci_vid_6409[] = {
+static pci_id_t const pci_vid_6409[] = {
{0x6409, 0xFFFF, 0xFFFF, 0xFFFF, "Logitec Corp.(0x6409)"},
}; /* pci_vid_6409[] */
-pci_id_t pci_vid_6549[] = {
+static pci_id_t const pci_vid_6549[] = {
{0x6549, 0xFFFF, 0xFFFF, 0xFFFF, "Teradici Corp.(0x6549)"},
{0x6549, 0x1200, 0xFFFF, 0xFFFF, "TERA1200 PC-over-IP Host(0x1200)"},
}; /* pci_vid_6549[] */
-pci_id_t pci_vid_6590[] = {
+static pci_id_t const pci_vid_6590[] = {
{0x6590, 0xFFFF, 0xFFFF, 0xFFFF, "TBS Technologies (wrong ID)(0x6590)"},
}; /* pci_vid_6590[] */
-pci_id_t pci_vid_6666[] = {
+static pci_id_t const pci_vid_6666[] = {
{0x6666, 0xFFFF, 0xFFFF, 0xFFFF, "Decision Computer International Co.(0x6666)"},
{0x6666, 0x0001, 0xFFFF, 0xFFFF, "PCCOM4(0x0001)"},
{0x6666, 0x0002, 0xFFFF, 0xFFFF, "PCCOM8(0x0002)"},
@@ -33488,7 +33772,7 @@ pci_id_t pci_vid_6666[] = {
{0x6666, 0x4000, 0xFFFF, 0xFFFF, "WatchDog Card(0x4000)"},
}; /* pci_vid_6666[] */
-pci_id_t pci_vid_6688[] = {
+static pci_id_t const pci_vid_6688[] = {
{0x6688, 0xFFFF, 0xFFFF, 0xFFFF, "Zycoo Co., Ltd(0x6688)"},
{0x6688, 0x1200, 0xFFFF, 0xFFFF, "CooVox TDM Analog Module(0x1200)"},
{0x6688, 0x1400, 0xFFFF, 0xFFFF, "CooVOX TDM GSM Module(0x1400)"},
@@ -33496,11 +33780,11 @@ pci_id_t pci_vid_6688[] = {
{0x6688, 0x1800, 0xFFFF, 0xFFFF, "CooVOX TDM BRI Module(0x1800)"},
}; /* pci_vid_6688[] */
-pci_id_t pci_vid_6704[] = {
+static pci_id_t const pci_vid_6704[] = {
{0x6704, 0xFFFF, 0xFFFF, 0xFFFF, "TBS Technologies (wrong ID)(0x6704)"},
}; /* pci_vid_6704[] */
-pci_id_t pci_vid_6766[] = {
+static pci_id_t const pci_vid_6766[] = {
{0x6766, 0xFFFF, 0xFFFF, 0xFFFF, "Glenfly Tech Co., Ltd.(0x6766)"},
{0x6766, 0x3D00, 0xFFFF, 0xFFFF, "Arise-GT-10C0(0x3D00)"},
{0x6766, 0x3D02, 0xFFFF, 0xFFFF, "Arise1020(0x3D02)"},
@@ -33514,91 +33798,95 @@ pci_id_t pci_vid_6766[] = {
{0x6766, 0x3D43, 0xFFFF, 0xFFFF, "GLF HDMI/DP Audio(0x3D43)"},
}; /* pci_vid_6766[] */
-pci_id_t pci_vid_6899[] = {
+static pci_id_t const pci_vid_6899[] = {
{0x6899, 0xFFFF, 0xFFFF, 0xFFFF, "ZT Systems(0x6899)"},
}; /* pci_vid_6899[] */
-pci_id_t pci_vid_6900[] = {
+static pci_id_t const pci_vid_6900[] = {
{0x6900, 0xFFFF, 0xFFFF, 0xFFFF, "Red Hat, Inc.(0x6900)"},
}; /* pci_vid_6900[] */
-pci_id_t pci_vid_6903[] = {
+static pci_id_t const pci_vid_6903[] = {
{0x6903, 0xFFFF, 0xFFFF, 0xFFFF, "TBS Technologies (wrong ID)(0x6903)"},
}; /* pci_vid_6903[] */
-pci_id_t pci_vid_6909[] = {
+static pci_id_t const pci_vid_6909[] = {
{0x6909, 0xFFFF, 0xFFFF, 0xFFFF, "TBS Technologies (wrong ID)(0x6909)"},
}; /* pci_vid_6909[] */
-pci_id_t pci_vid_6910[] = {
+static pci_id_t const pci_vid_6910[] = {
{0x6910, 0xFFFF, 0xFFFF, 0xFFFF, "TBS Technologies (wrong ID)(0x6910)"},
}; /* pci_vid_6910[] */
-pci_id_t pci_vid_7063[] = {
+static pci_id_t const pci_vid_6F67[] = {
+{0x6F67, 0xFFFF, 0xFFFF, 0xFFFF, "NOVAIUM Technology(0x6F67)"},
+}; /* pci_vid_6F67[] */
+
+static pci_id_t const pci_vid_7063[] = {
{0x7063, 0xFFFF, 0xFFFF, 0xFFFF, "pcHDTV(0x7063)"},
{0x7063, 0x2000, 0xFFFF, 0xFFFF, "HD-2000(0x2000)"},
{0x7063, 0x3000, 0xFFFF, 0xFFFF, "HD-3000(0x3000)"},
{0x7063, 0x5500, 0xFFFF, 0xFFFF, "HD5500 HDTV(0x5500)"},
}; /* pci_vid_7063[] */
-pci_id_t pci_vid_7284[] = {
+static pci_id_t const pci_vid_7284[] = {
{0x7284, 0xFFFF, 0xFFFF, 0xFFFF, "HT OMEGA Inc.(0x7284)"},
}; /* pci_vid_7284[] */
-pci_id_t pci_vid_7357[] = {
+static pci_id_t const pci_vid_7357[] = {
{0x7357, 0xFFFF, 0xFFFF, 0xFFFF, "IOxOS Technologies SA(0x7357)"},
{0x7357, 0x7910, 0xFFFF, 0xFFFF, "7910 [Althea](0x7910)"},
}; /* pci_vid_7357[] */
-pci_id_t pci_vid_7377[] = {
+static pci_id_t const pci_vid_7377[] = {
{0x7377, 0xFFFF, 0xFFFF, 0xFFFF, "Shenzhen Colorful Yugong Technology and Development Co.(0x7377)"},
}; /* pci_vid_7377[] */
-pci_id_t pci_vid_7401[] = {
+static pci_id_t const pci_vid_7401[] = {
{0x7401, 0xFFFF, 0xFFFF, 0xFFFF, "EndRun Technologies(0x7401)"},
{0x7401, 0xE100, 0xFFFF, 0xFFFF, "PTP3100 PCIe PTP Slave Clock(0xE100)"},
}; /* pci_vid_7401[] */
-pci_id_t pci_vid_7470[] = {
+static pci_id_t const pci_vid_7470[] = {
{0x7470, 0xFFFF, 0xFFFF, 0xFFFF, "TP-LINK Technologies Co., Ltd.(0x7470)"},
}; /* pci_vid_7470[] */
-pci_id_t pci_vid_7526[] = {
+static pci_id_t const pci_vid_7526[] = {
{0x7526, 0xFFFF, 0xFFFF, 0xFFFF, "HongQin (Beijing) Technology Co., Ltd.(0x7526)"},
-{0x7526, 0x0082, 0xFFFF, 0xFFFF, "HQ SSD 1TB(0x0082)"},
+{0x7526, 0x0082, 0xFFFF, 0xFFFF, "HQ SSD M.2(0x0082)"},
{0x7526, 0x0083, 0xFFFF, 0xFFFF, "HQ SSD 2TB M.2 NVMe(0x0083)"},
}; /* pci_vid_7526[] */
-pci_id_t pci_vid_7604[] = {
+static pci_id_t const pci_vid_7604[] = {
{0x7604, 0xFFFF, 0xFFFF, 0xFFFF, "O.N. Electronic Co Ltd.(0x7604)"},
}; /* pci_vid_7604[] */
-pci_id_t pci_vid_78C0[] = {
+static pci_id_t const pci_vid_78C0[] = {
{0x78C0, 0xFFFF, 0xFFFF, 0xFFFF, "Herrick Technology Laboratories, Inc. [HTL](0x78C0)"},
{0x78C0, 0x0000, 0xFFFF, 0xFFFF, "HTLv-1 / HTLv-2 / HTLv-13 / HTLv-23(0x0000)"},
{0x78C0, 0x0011, 0xFFFF, 0xFFFF, "HTLv-53(0x0011)"},
}; /* pci_vid_78C0[] */
-pci_id_t pci_vid_7BDE[] = {
+static pci_id_t const pci_vid_7BDE[] = {
{0x7BDE, 0xFFFF, 0xFFFF, 0xFFFF, "MIDAC Corporation(0x7BDE)"},
}; /* pci_vid_7BDE[] */
-pci_id_t pci_vid_7FED[] = {
+static pci_id_t const pci_vid_7FED[] = {
{0x7FED, 0xFFFF, 0xFFFF, 0xFFFF, "PowerTV(0x7FED)"},
}; /* pci_vid_7FED[] */
-pci_id_t pci_vid_8008[] = {
+static pci_id_t const pci_vid_8008[] = {
{0x8008, 0xFFFF, 0xFFFF, 0xFFFF, "Quancom Electronic GmbH(0x8008)"},
{0x8008, 0x0010, 0xFFFF, 0xFFFF, "WDOG1 [PCI-Watchdog 1](0x0010)"},
{0x8008, 0x0011, 0xFFFF, 0xFFFF, "PWDOG2 [PCI-Watchdog 2](0x0011)"},
{0x8008, 0x0015, 0xFFFF, 0xFFFF, "Clock77/PCI & Clock77/PCIe (DCF-77 receiver)(0x0015)"},
}; /* pci_vid_8008[] */
-pci_id_t pci_vid_807D[] = {
+static pci_id_t const pci_vid_807D[] = {
{0x807D, 0xFFFF, 0xFFFF, 0xFFFF, "Asustek Computer, Inc.(0x807D)"},
}; /* pci_vid_807D[] */
-pci_id_t pci_vid_8086[] = {
+static pci_id_t const pci_vid_8086[] = {
{0x8086, 0xFFFF, 0xFFFF, 0xFFFF, "Intel Corporation(0x8086)"},
{0x8086, 0x0007, 0xFFFF, 0xFFFF, "82379AB(0x0007)"},
{0x8086, 0x0008, 0xFFFF, 0xFFFF, "Extended Express System Support Controller(0x0008)"},
@@ -33682,6 +33970,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x0100, 0xFFFF, 0xFFFF, "2nd Generation Core Processor Family DRAM Controller(0x0100)"},
{0x8086, 0x0100, 0x1028, 0x04AA, "XPS 8300(0x1028-0x04AA)"},
{0x8086, 0x0100, 0x1043, 0x844D, "P8P67/P8H67 Series Motherboard(0x1043-0x844D)"},
+{0x8086, 0x0100, 0x1734, 0x11B9, "Esprimo P510 D3171 motherboard(0x1734-0x11B9)"},
{0x8086, 0x0100, 0x8086, 0x200D, "DH61CR motherboard(0x8086-0x200D)"},
{0x8086, 0x0101, 0xFFFF, 0xFFFF, "Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port(0x0101)"},
{0x8086, 0x0101, 0x1028, 0x04B2, "Vostro 3350(0x1028-0x04B2)"},
@@ -33690,6 +33979,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x0102, 0xFFFF, 0xFFFF, "2nd Generation Core Processor Family Integrated Graphics Controller(0x0102)"},
{0x8086, 0x0102, 0x1028, 0x04AA, "XPS 8300(0x1028-0x04AA)"},
{0x8086, 0x0102, 0x1043, 0x0102, "P8H67 Series Motherboard(0x1043-0x0102)"},
+{0x8086, 0x0102, 0x1734, 0x11B9, "G640 [Sandy Bridge, HD Graphics] on Esprimo P510 D3171 motherboard(0x1734-0x11B9)"},
{0x8086, 0x0104, 0xFFFF, 0xFFFF, "2nd Generation Core Processor Family DRAM Controller(0x0104)"},
{0x8086, 0x0104, 0x1028, 0x04A3, "Precision M4600(0x1028-0x04A3)"},
{0x8086, 0x0104, 0x1028, 0x04B2, "Vostro 3350(0x1028-0x04B2)"},
@@ -33774,6 +34064,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x02B1, 0xFFFF, 0xFFFF, "Comet Lake PCI Express Root Port #10(0x02B1)"},
{0x8086, 0x02B3, 0xFFFF, 0xFFFF, "Comet Lake PCI Express Root Port #12(0x02B3)"},
{0x8086, 0x02B4, 0xFFFF, 0xFFFF, "Comet Lake PCI Express Root Port #13(0x02B4)"},
+{0x8086, 0x02B5, 0xFFFF, 0xFFFF, "Comet Lake PCI Express Root Port #14(0x02B5)"},
{0x8086, 0x02B8, 0xFFFF, 0xFFFF, "Comet Lake PCI Express Root Port #1(0x02B8)"},
{0x8086, 0x02BC, 0xFFFF, 0xFFFF, "Comet Lake PCI Express Root Port #5(0x02BC)"},
{0x8086, 0x02BF, 0xFFFF, 0xFFFF, "Comet Lake PCI Express Root Port #8(0x02BF)"},
@@ -33796,10 +34087,13 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x02EF, 0xFFFF, 0xFFFF, "Comet Lake PCH-LP Shared SRAM(0x02EF)"},
{0x8086, 0x02EF, 0x1028, 0x09BE, "Latitude 7410(0x1028-0x09BE)"},
{0x8086, 0x02F0, 0xFFFF, 0xFFFF, "Comet Lake PCH-LP CNVi WiFi(0x02F0)"},
-{0x8086, 0x02F0, 0x8086, 0x0034, "Wireless-AC 9560 160MHz(0x8086-0x0034)"},
-{0x8086, 0x02F0, 0x8086, 0x0070, "Wi-Fi 6 AX201 160MHz(0x8086-0x0070)"},
-{0x8086, 0x02F0, 0x8086, 0x0074, "Wi-Fi 6 AX201 160MHz(0x8086-0x0074)"},
-{0x8086, 0x02F0, 0x8086, 0x4070, "Wi-Fi 6 AX201 160MHz(0x8086-0x4070)"},
+{0x8086, 0x02F0, 0x8086, 0x0034, "Dual Band Wi-Fi 5(802.11ac) Wireless-AC 9560 160MHz 2x2 [Jefferson Peak](0x8086-0x0034)"},
+{0x8086, 0x02F0, 0x8086, 0x0070, "Dual Band Wi-Fi 6(802.11ax) AX201 160MHz 2x2 [Harrison Peak](0x8086-0x0070)"},
+{0x8086, 0x02F0, 0x8086, 0x0074, "Dual Band Wi-Fi 6(802.11ax) AX201 160MHz 2x2 [Harrison Peak](0x8086-0x0074)"},
+{0x8086, 0x02F0, 0x8086, 0x0234, "Dual Band Wi-Fi 5(802.11ac) Wireless-AC 9560 80MHz 2x2 [Jefferson Peak](0x8086-0x0234)"},
+{0x8086, 0x02F0, 0x8086, 0x0264, "Dual Band Wi-Fi 5(802.11ac) Wireless-AC 9461 80MHz 1x1 [Jefferson Peak](0x8086-0x0264)"},
+{0x8086, 0x02F0, 0x8086, 0x02A4, "Dual Band Wi-Fi 5(802.11ac) Wireless-AC 9462 80MHz 1x1 [Jefferson Peak](0x8086-0x02A4)"},
+{0x8086, 0x02F0, 0x8086, 0x4070, "Dual Band Wi-Fi 6(802.11ax) AX201 160MHz 2x2 [Harrison Peak](0x8086-0x4070)"},
{0x8086, 0x02F5, 0xFFFF, 0xFFFF, "Comet Lake PCH-LP SCS3(0x02F5)"},
{0x8086, 0x02F9, 0xFFFF, 0xFFFF, "Comet Lake Thermal Subsytem(0x02F9)"},
{0x8086, 0x02F9, 0x1028, 0x09BE, "Latitude 7410(0x1028-0x09BE)"},
@@ -33912,10 +34206,12 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x06ED, 0xFFFF, 0xFFFF, "Comet Lake USB 3.1 xHCI Host Controller(0x06ED)"},
{0x8086, 0x06EF, 0xFFFF, 0xFFFF, "Comet Lake PCH Shared SRAM(0x06EF)"},
{0x8086, 0x06F0, 0xFFFF, 0xFFFF, "Comet Lake PCH CNVi WiFi(0x06F0)"},
-{0x8086, 0x06F0, 0x1A56, 0x1651, "Wi-Fi 6 AX1650s 160MHz (201D2W) [Killer](0x1A56-0x1651)"},
-{0x8086, 0x06F0, 0x8086, 0x0034, "Wireless-AC 9560(0x8086-0x0034)"},
-{0x8086, 0x06F0, 0x8086, 0x0074, "Wi-Fi 6 AX201 160MHz(0x8086-0x0074)"},
-{0x8086, 0x06F0, 0x8086, 0x02A4, "Wireless-AC 9462(0x8086-0x02A4)"},
+{0x8086, 0x06F0, 0x1A56, 0x1651, "Dual Band Wi-Fi 6(802.11ax) Killer AX1650s 160MHz 2x2 [Cyclone Peak](0x1A56-0x1651)"},
+{0x8086, 0x06F0, 0x1A56, 0x1652, "Dual Band Wi-Fi 6(802.11ax) Killer AX1650i 160MHz 2x2 [Cyclone Peak](0x1A56-0x1652)"},
+{0x8086, 0x06F0, 0x8086, 0x0034, "Dual Band Wi-Fi 5(802.11ac) Wireless-AC 9560 160MHz 2x2 [Jefferson Peak](0x8086-0x0034)"},
+{0x8086, 0x06F0, 0x8086, 0x0074, "Dual Band Wi-Fi 6(802.11ax) AX201 160MHz 2x2 [Harrison Peak](0x8086-0x0074)"},
+{0x8086, 0x06F0, 0x8086, 0x02A4, "Dual Band Wi-Fi 5(802.11ac) Wireless-AC 9462 80MHz 1x1 [Jefferson Peak](0x8086-0x02A4)"},
+{0x8086, 0x06F0, 0x8086, 0x42A4, "Dual Band Wi-Fi 5(802.11ac) Wireless-AC 9462 80MHz 1x1 [Jefferson Peak](0x8086-0x42A4)"},
{0x8086, 0x06F9, 0xFFFF, 0xFFFF, "Comet Lake PCH Thermal Controller(0x06F9)"},
{0x8086, 0x06FB, 0xFFFF, 0xFFFF, "Comet Lake PCH Serial IO SPI Controller #2(0x06FB)"},
{0x8086, 0x0700, 0xFFFF, 0xFFFF, "CE Media Processor A/V Bridge(0x0700)"},
@@ -35110,6 +35406,10 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x10FB, 0x1BD4, 0x002F, "10G SFP+ DP EP102Fi4A Adapter(0x1BD4-0x002F)"},
{0x8086, 0x10FB, 0x1BD4, 0x0032, "10G SFP+ DP EP102Fi4 Adapter(0x1BD4-0x0032)"},
{0x8086, 0x10FB, 0x1BD4, 0x0067, "F102I82599(0x1BD4-0x0067)"},
+{0x8086, 0x10FB, 0x4C52, 0x3002, "LRES3002PF Dual-port 10Gb Ethernet Server Adapter for OCP(0x4C52-0x3002)"},
+{0x8086, 0x10FB, 0x4C52, 0x3012, "LRES3012PF Dual-port 10Gb Ethernet Server Adapter for OCP(0x4C52-0x3012)"},
+{0x8086, 0x10FB, 0x4C52, 0x9801, "LREC9801BF Single-port 10Gb Ethernet Server Adapter(0x4C52-0x9801)"},
+{0x8086, 0x10FB, 0x4C52, 0x9802, "LREC9802BF Dual-port 10Gb Ethernet Server Adapter(0x4C52-0x9802)"},
{0x8086, 0x10FB, 0x8086, 0x0002, "Ethernet Server Adapter X520-DA2(0x8086-0x0002)"},
{0x8086, 0x10FB, 0x8086, 0x0003, "Ethernet Server Adapter X520-2(0x8086-0x0003)"},
{0x8086, 0x10FB, 0x8086, 0x0006, "Ethernet Server Adapter X520-1(0x8086-0x0006)"},
@@ -35359,10 +35659,16 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x125B, 0xFFFF, 0xFFFF, "Ethernet Controller I226-LM(0x125B)"},
{0x8086, 0x125C, 0xFFFF, 0xFFFF, "Ethernet Controller I226-V(0x125C)"},
{0x8086, 0x125D, 0xFFFF, 0xFFFF, "Ethernet Controller I226-IT(0x125D)"},
+{0x8086, 0x12D1, 0xFFFF, 0xFFFF, "Ethernet Controller E830-CC for backplane(0x12D1)"},
+{0x8086, 0x12D2, 0xFFFF, 0xFFFF, "Ethernet Controller E830-CC for QSFP(0x12D2)"},
+{0x8086, 0x12D3, 0xFFFF, 0xFFFF, "Ethernet Controller E830-CC for SFP(0x12D3)"},
+{0x8086, 0x12D4, 0xFFFF, 0xFFFF, "Ethernet Controller E830-CC for SFP-DD(0x12D4)"},
{0x8086, 0x1360, 0xFFFF, 0xFFFF, "82806AA PCI64 Hub PCI Bridge(0x1360)"},
{0x8086, 0x1361, 0xFFFF, 0xFFFF, "82806AA PCI64 Hub Controller (HRes)(0x1361)"},
{0x8086, 0x1361, 0x8086, 0x1361, "82806AA PCI64 Hub Controller (HRes)(0x8086-0x1361)"},
{0x8086, 0x1361, 0x8086, 0x8000, "82806AA PCI64 Hub Controller (HRes)(0x8086-0x8000)"},
+{0x8086, 0x1452, 0xFFFF, 0xFFFF, "Infrastructure Data Path Function(0x1452)"},
+{0x8086, 0x145C, 0xFFFF, 0xFFFF, "Infrastructure Data Path Function(0x145C)"},
{0x8086, 0x1460, 0xFFFF, 0xFFFF, "82870P2 P64H2 Hub PCI Bridge(0x1460)"},
{0x8086, 0x1461, 0xFFFF, 0xFFFF, "82870P2 P64H2 I/OxAPIC(0x1461)"},
{0x8086, 0x1461, 0x15D9, 0x3480, "P4DP6(0x15D9-0x3480)"},
@@ -35452,6 +35758,12 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1521, 0x1BD4, 0x0066, "F014I350(0x1BD4-0x0066)"},
{0x8086, 0x1521, 0x1BD4, 0x008A, "F012I350(0x1BD4-0x008A)"},
{0x8086, 0x1521, 0x1BD4, 0x008D, "ENFI1100-T4(0x1BD4-0x008D)"},
+{0x8086, 0x1521, 0x4C52, 0x0350, "I350 1Gb 2-port Ethernet Network Adapter(0x4C52-0x0350)"},
+{0x8086, 0x1521, 0x4C52, 0x1350, "LREC9222HT Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x1350)"},
+{0x8086, 0x1521, 0x4C52, 0x3010, "LRES3010PF Dual-port 1Gb Ethernet Server Adapter for OCP(0x4C52-0x3010)"},
+{0x8086, 0x1521, 0x4C52, 0x3023, "LRES3023PT Quad-port 1Gb Ethernet Server Adapter for OCP(0x4C52-0x3023)"},
+{0x8086, 0x1521, 0x4C52, 0x3041, "LRES3041PT Dual-port 1Gb Ethernet Server Adapter for OCP(0x4C52-0x3041)"},
+{0x8086, 0x1521, 0x4C52, 0x4006, "LRES4006MT Quad-port 1Gb Ethernet Netwaork Adapter(0x4C52-0x4006)"},
{0x8086, 0x1521, 0x8086, 0x0001, "Ethernet Server Adapter I350-T4(0x8086-0x0001)"},
{0x8086, 0x1521, 0x8086, 0x0002, "Ethernet Server Adapter I350-T2(0x8086-0x0002)"},
{0x8086, 0x1521, 0x8086, 0x0003, "Ethernet Network Adapter I350-T4 for OCP NIC 3.0(0x8086-0x0003)"},
@@ -35530,6 +35842,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1533, 0x17AA, 0x1509, "I210 Gigabit Network Connection(0x17AA-0x1509)"},
{0x8086, 0x1533, 0x17AA, 0x404D, "I210 PCIe 1Gb 1-Port RJ45 LOM(0x17AA-0x404D)"},
{0x8086, 0x1533, 0x17AA, 0x407A, "I210 PCIe 1Gb 1-Port RJ45 LOM(0x17AA-0x407A)"},
+{0x8086, 0x1533, 0x4C52, 0x1210, "LREC9204CT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x1210)"},
{0x8086, 0x1533, 0x8086, 0x0001, "Ethernet Server Adapter I210-T1(0x8086-0x0001)"},
{0x8086, 0x1533, 0x8086, 0x0002, "Ethernet Server Adapter I210-T1(0x8086-0x0002)"},
{0x8086, 0x1536, 0xFFFF, 0xFFFF, "I210 Gigabit Fiber Network Connection(0x1536)"},
@@ -35636,12 +35949,15 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1572, 0x1BD4, 0x0065, "F102IX710(0x1BD4-0x0065)"},
{0x8086, 0x1572, 0x1BD4, 0x0074, "Ethernet Network Adapter X710-BM2 for lldp(0x1BD4-0x0074)"},
{0x8086, 0x1572, 0x1BD4, 0x008B, "F102IX710(0x1BD4-0x008B)"},
+{0x8086, 0x1572, 0x4C52, 0x3003, "LRES3003PF Quad-port 10Gb Ethernet Server Adapter for OCP(0x4C52-0x3003)"},
+{0x8086, 0x1572, 0x4C52, 0x3007, "LRES3007PF Quad-port 10Gb Ethernet Server Adapter for OCP(0x4C52-0x3007)"},
+{0x8086, 0x1572, 0x4C52, 0x3039, "LRES3039PF Dual-port 10Gb Ethernet Server Adapter for OCP(0x4C52-0x3039)"},
{0x8086, 0x1572, 0x8086, 0x0000, "Ethernet Converged Network Adapter X710(0x8086-0x0000)"},
{0x8086, 0x1572, 0x8086, 0x0001, "Ethernet Converged Network Adapter X710-4(0x8086-0x0001)"},
{0x8086, 0x1572, 0x8086, 0x0002, "Ethernet Converged Network Adapter X710-4(0x8086-0x0002)"},
{0x8086, 0x1572, 0x8086, 0x0004, "Ethernet Converged Network Adapter X710-4(0x8086-0x0004)"},
-{0x8086, 0x1572, 0x8086, 0x0005, "Ethernet 10G 4P X710 Adapter(0x8086-0x0005)"},
-{0x8086, 0x1572, 0x8086, 0x0006, "Ethernet 10G 2P X710 Adapter(0x8086-0x0006)"},
+{0x8086, 0x1572, 0x8086, 0x0005, "Ethernet Converged Network Adapter X710(0x8086-0x0005)"},
+{0x8086, 0x1572, 0x8086, 0x0006, "Ethernet Converged Network Adapter X710(0x8086-0x0006)"},
{0x8086, 0x1572, 0x8086, 0x0007, "Ethernet Converged Network Adapter X710-2(0x8086-0x0007)"},
{0x8086, 0x1572, 0x8086, 0x0008, "Ethernet Converged Network Adapter X710-2(0x8086-0x0008)"},
{0x8086, 0x1572, 0x8086, 0x0009, "Ethernet Controller X710 for 10GbE SFP+(0x8086-0x0009)"},
@@ -35690,6 +36006,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1583, 0x108E, 0x7B1D, "10Gb/40Gb Ethernet Adapter(0x108E-0x7B1D)"},
{0x8086, 0x1583, 0x1137, 0x0000, "Ethernet Converged NIC XL710-QDA2(0x1137-0x0000)"},
{0x8086, 0x1583, 0x1137, 0x013C, "Ethernet Converged NIC XL710-QDA2(0x1137-0x013C)"},
+{0x8086, 0x1583, 0x4C52, 0x3042, "LRES3042PF Dual-port 40Gb Ethernet Server Adapter for OCP(0x4C52-0x3042)"},
{0x8086, 0x1583, 0x8086, 0x0000, "Ethernet Converged Network Adapter XL710-Q2(0x8086-0x0000)"},
{0x8086, 0x1583, 0x8086, 0x0001, "Ethernet Converged Network Adapter XL710-Q2(0x8086-0x0001)"},
{0x8086, 0x1583, 0x8086, 0x0002, "Ethernet Converged Network Adapter XL710-Q2(0x8086-0x0002)"},
@@ -35742,6 +36059,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x158B, 0x1374, 0x023B, "Quad Port 25 Gigabit Ethernet PCI Express Server Adapter (PE31625G4I71LEU)(0x1374-0x023B)"},
{0x8086, 0x158B, 0x1590, 0x0000, "Ethernet Network Adapter XXV710-2(0x1590-0x0000)"},
{0x8086, 0x158B, 0x1590, 0x0253, "Ethernet 10/25/Gb 2-port 661SFP28 Adapter(0x1590-0x0253)"},
+{0x8086, 0x158B, 0x4C52, 0x3017, "LRES3017PF Dual-port 25Gb Ethernet Server Adapter for OCP(0x4C52-0x3017)"},
{0x8086, 0x158B, 0x8086, 0x0000, "Ethernet Network Adapter XXV710(0x8086-0x0000)"},
{0x8086, 0x158B, 0x8086, 0x0001, "Ethernet Network Adapter XXV710-2(0x8086-0x0001)"},
{0x8086, 0x158B, 0x8086, 0x0002, "Ethernet Network Adapter XXV710-2(0x8086-0x0002)"},
@@ -35761,6 +36079,8 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1592, 0xFFFF, 0xFFFF, "Ethernet Controller E810-C for QSFP(0x1592)"},
{0x8086, 0x1592, 0x1137, 0x02BF, "E810CQDA2 2x100 GbE QSFP28 PCIe NIC(0x1137-0x02BF)"},
{0x8086, 0x1592, 0x193D, 0x1050, "NIC-ETH1060F-LP-2P 2x100GbE Ethernet PCIe Card(0x193D-0x1050)"},
+{0x8086, 0x1592, 0x4C52, 0x1014, "LRES1014PF Dual-port 100Gb Ethernet Server Adapter(0x4C52-0x1014)"},
+{0x8086, 0x1592, 0x4C52, 0x3026, "LRES3026PF Dual-port 100Gb Ethernet Server Adapter for OCP(0x4C52-0x3026)"},
{0x8086, 0x1592, 0x8086, 0x0001, "Ethernet Network Adapter E810-C-Q1(0x8086-0x0001)"},
{0x8086, 0x1592, 0x8086, 0x0002, "Ethernet Network Adapter E810-C-Q2(0x8086-0x0002)"},
{0x8086, 0x1592, 0x8086, 0x0004, "Ethernet Network Adapter E810-C-Q2(0x8086-0x0004)"},
@@ -35782,6 +36102,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1593, 0x1137, 0x02C3, "E810XXVDA4 4x25/10 GbE SFP28 PCIe NIC(0x1137-0x02C3)"},
{0x8086, 0x1593, 0x1137, 0x02E9, "E810XXVDA4TG 4x25/10 GbE SFP28 PCIe NIC(0x1137-0x02E9)"},
{0x8086, 0x1593, 0x1137, 0x02EA, "E810XXVDA4T 4x25/10 GbE SFP28 PCIe NIC(0x1137-0x02EA)"},
+{0x8086, 0x1593, 0x4C52, 0x3027, "LRES3027PF Quad-port 25Gb Ethernet Server Adapter for OCP(0x4C52-0x3027)"},
{0x8086, 0x1593, 0x8086, 0x0002, "Ethernet Network Adapter E810-L-2(0x8086-0x0002)"},
{0x8086, 0x1593, 0x8086, 0x0005, "Ethernet Network Adapter E810-XXV-4(0x8086-0x0005)"},
{0x8086, 0x1593, 0x8086, 0x0006, "Ethernet Network Adapter E810-XXV-4(0x8086-0x0006)"},
@@ -35796,6 +36117,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1593, 0x8086, 0x0010, "Ethernet 25G 4P E810-XXV-st Adapter(0x8086-0x0010)"},
{0x8086, 0x1593, 0x8086, 0x4010, "Ethernet Network Adapter E810-XXV-4(0x8086-0x4010)"},
{0x8086, 0x1593, 0x8086, 0x4013, "Ethernet Network Adapter E810-XXV-4 for OCP 3.0(0x8086-0x4013)"},
+{0x8086, 0x1593, 0x8086, 0x401C, "Ethernet Network Adapter E810-XXV-4 for OCP 3.0(0x8086-0x401C)"},
{0x8086, 0x1599, 0xFFFF, 0xFFFF, "Ethernet Controller E810-XXV for backplane(0x1599)"},
{0x8086, 0x1599, 0x8086, 0x0001, "Ethernet 25G 2P E810-XXV-k Mezz(0x8086-0x0001)"},
{0x8086, 0x159A, 0xFFFF, 0xFFFF, "Ethernet Controller E810-XXV for QSFP(0x159A)"},
@@ -35808,6 +36130,8 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x159B, 0x1BD4, 0x0083, "Ethernet Network Adapter E810-XXVAM2 for lldp(0x1BD4-0x0083)"},
{0x8086, 0x159B, 0x1BD4, 0x00A0, "S252IE810(0x1BD4-0x00A0)"},
{0x8086, 0x159B, 0x1EEC, 0x0102, "VSE-225-41E Dual-port 10Gb/25Gb Etherent PCIe(0x1EEC-0x0102)"},
+{0x8086, 0x159B, 0x4C52, 0x0003, "LRES1021PF Dual-port 25Gb Ethernet Server Adapter(0x4C52-0x0003)"},
+{0x8086, 0x159B, 0x4C52, 0x3029, "LRES3029PF Dual-port 25Gb Ethernet Server Adapter for OCP(0x4C52-0x3029)"},
{0x8086, 0x159B, 0x8086, 0x0001, "Ethernet 25G 2P E810-XXV OCP(0x8086-0x0001)"},
{0x8086, 0x159B, 0x8086, 0x0002, "Ethernet 25G 2P E810-XXV Adapter(0x8086-0x0002)"},
{0x8086, 0x159B, 0x8086, 0x0003, "Ethernet Network Adapter E810-XXV-2(0x8086-0x0003)"},
@@ -35915,6 +36239,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x15FF, 0x1137, 0x02D9, "Ethernet Network Adapter X710-T2L OCP 3.0(0x1137-0x02D9)"},
{0x8086, 0x15FF, 0x1137, 0x02DA, "Ethernet Network Adapter X710-T4L OCP 3.0(0x1137-0x02DA)"},
{0x8086, 0x15FF, 0x193D, 0x1082, "NIC-ETH565T-3S-2P(0x193D-0x1082)"},
+{0x8086, 0x15FF, 0x4C52, 0x3021, "LRES3021PT Dual-port 10Gb Ethernet Server Adapter for OCP(0x4C52-0x3021)"},
{0x8086, 0x15FF, 0x8086, 0x0000, "Ethernet Network Adapter X710-TL(0x8086-0x0000)"},
{0x8086, 0x15FF, 0x8086, 0x0001, "Ethernet Network Adapter X710-T4L(0x8086-0x0001)"},
{0x8086, 0x15FF, 0x8086, 0x0002, "Ethernet Network Adapter X710-T4L(0x8086-0x0002)"},
@@ -36391,10 +36716,12 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1D74, 0xFFFF, 0xFFFF, "C608/C606/X79 series chipset PCI Express Upstream Port(0x1D74)"},
{0x8086, 0x1D76, 0xFFFF, 0xFFFF, "C600/X79 series chipset Multi-Function Glue(0x1D76)"},
{0x8086, 0x1E00, 0xFFFF, 0xFFFF, "7 Series/C210 Series Chipset Family 4-port SATA Controller [IDE mode](0x1E00)"},
+{0x8086, 0x1E00, 0x1734, 0x11D6, "B75 [Ivy Bridge] chipset on Esprimo P510 D3171 motherboard(0x1734-0x11D6)"},
{0x8086, 0x1E01, 0xFFFF, 0xFFFF, "7 Series Chipset Family 4-port SATA Controller [IDE mode](0x1E01)"},
{0x8086, 0x1E01, 0x144D, 0xC652, "NP300E5C series laptop(0x144D-0xC652)"},
{0x8086, 0x1E02, 0xFFFF, 0xFFFF, "7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode](0x1E02)"},
{0x8086, 0x1E02, 0x1043, 0x84CA, "P8 series motherboard(0x1043-0x84CA)"},
+{0x8086, 0x1E02, 0x1734, 0x11D6, "B75 [Ivy Bridge] chipset on Esprimo P510 D3171 motherboard(0x1734-0x11D6)"},
{0x8086, 0x1E02, 0x1849, 0x1E02, "Motherboard(0x1849-0x1E02)"},
{0x8086, 0x1E03, 0xFFFF, 0xFFFF, "7 Series Chipset Family 6-port SATA Controller [AHCI mode](0x1E03)"},
{0x8086, 0x1E03, 0x1043, 0x108D, "VivoBook X202EV(0x1043-0x108D)"},
@@ -36417,6 +36744,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1E10, 0x1043, 0x84CA, "P8H77-I Motherboard(0x1043-0x84CA)"},
{0x8086, 0x1E10, 0x10CF, 0x16E9, "LIFEBOOK E752(0x10CF-0x16E9)"},
{0x8086, 0x1E10, 0x144D, 0xC652, "NP300E5C series laptop(0x144D-0xC652)"},
+{0x8086, 0x1E10, 0x1734, 0x11D6, "B75 [Ivy Bridge] chipset on Esprimo P510 D3171 motherboard(0x1734-0x11D6)"},
{0x8086, 0x1E10, 0x1849, 0x1E10, "Motherboard(0x1849-0x1E10)"},
{0x8086, 0x1E12, 0xFFFF, 0xFFFF, "7 Series/C210 Series Chipset Family PCI Express Root Port 2(0x1E12)"},
{0x8086, 0x1E12, 0x1043, 0x108D, "VivoBook X202EV(0x1043-0x108D)"},
@@ -36433,6 +36761,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1E18, 0x1043, 0x84CA, "P8H77-I Motherboard(0x1043-0x84CA)"},
{0x8086, 0x1E18, 0x1849, 0x1E18, "Motherboard(0x1849-0x1E18)"},
{0x8086, 0x1E1A, 0xFFFF, 0xFFFF, "7 Series/C210 Series Chipset Family PCI Express Root Port 6(0x1E1A)"},
+{0x8086, 0x1E1A, 0x1734, 0x11D6, "B75 [Ivy Bridge] chipset on Esprimo P510 D3171 motherboard(0x1734-0x11D6)"},
{0x8086, 0x1E1A, 0x1849, 0x1E1A, "Motherboard(0x1849-0x1E1A)"},
{0x8086, 0x1E1C, 0xFFFF, 0xFFFF, "7 Series/C210 Series Chipset Family PCI Express Root Port 7(0x1E1C)"},
{0x8086, 0x1E1E, 0xFFFF, 0xFFFF, "7 Series/C210 Series Chipset Family PCI Express Root Port 8(0x1E1E)"},
@@ -36447,6 +36776,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1E20, 0x1043, 0x8445, "P8Z77-V LX Motherboard(0x1043-0x8445)"},
{0x8086, 0x1E20, 0x10CF, 0x1757, "LIFEBOOK E752(0x10CF-0x1757)"},
{0x8086, 0x1E20, 0x144D, 0xC652, "NP300E5C series laptop(0x144D-0xC652)"},
+{0x8086, 0x1E20, 0x1734, 0x11D8, "B75 [Ivy Bridge] chipset CX20642 audio controller on Esprimo P510 D3171 motherboard(0x1734-0x11D8)"},
{0x8086, 0x1E20, 0x1849, 0x1898, "Z77 Extreme4 motherboard(0x1849-0x1898)"},
{0x8086, 0x1E22, 0xFFFF, 0xFFFF, "7 Series/C216 Chipset Family SMBus Controller(0x1E22)"},
{0x8086, 0x1E22, 0x1043, 0x108D, "VivoBook X202EV(0x1043-0x108D)"},
@@ -36455,6 +36785,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1E22, 0x1043, 0x84CA, "P8 series motherboard(0x1043-0x84CA)"},
{0x8086, 0x1E22, 0x10CF, 0x16E6, "LIFEBOOK E752(0x10CF-0x16E6)"},
{0x8086, 0x1E22, 0x144D, 0xC652, "NP300E5C series laptop(0x144D-0xC652)"},
+{0x8086, 0x1E22, 0x1734, 0x11D6, "B75 [Ivy Bridge] chipset on Esprimo P510 D3171 motherboard(0x1734-0x11D6)"},
{0x8086, 0x1E22, 0x1849, 0x1E22, "Motherboard(0x1849-0x1E22)"},
{0x8086, 0x1E24, 0xFFFF, 0xFFFF, "7 Series/C210 Series Chipset Family Thermal Management Controller(0x1E24)"},
{0x8086, 0x1E24, 0x1043, 0x1517, "Zenbook Prime UX31A(0x1043-0x1517)"},
@@ -36466,6 +36797,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1E26, 0x1043, 0x84CA, "P8 series motherboard(0x1043-0x84CA)"},
{0x8086, 0x1E26, 0x10CF, 0x16E8, "LIFEBOOK E752(0x10CF-0x16E8)"},
{0x8086, 0x1E26, 0x144D, 0xC652, "NP300E5C series laptop(0x144D-0xC652)"},
+{0x8086, 0x1E26, 0x1734, 0x11D6, "B75 [Ivy Bridge] chipset USB 2.0 controller on Esprimo P510 D3171 motherboard(0x1734-0x11D6)"},
{0x8086, 0x1E26, 0x1849, 0x1E26, "Motherboard(0x1849-0x1E26)"},
{0x8086, 0x1E2D, 0xFFFF, 0xFFFF, "7 Series/C216 Chipset Family USB Enhanced Host Controller #2(0x1E2D)"},
{0x8086, 0x1E2D, 0x1043, 0x108D, "VivoBook X202EV(0x1043-0x108D)"},
@@ -36474,6 +36806,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1E2D, 0x1043, 0x84CA, "P8 series motherboard(0x1043-0x84CA)"},
{0x8086, 0x1E2D, 0x10CF, 0x16E8, "LIFEBOOK E752(0x10CF-0x16E8)"},
{0x8086, 0x1E2D, 0x144D, 0xC652, "NP300E5C series laptop(0x144D-0xC652)"},
+{0x8086, 0x1E2D, 0x1734, 0x11D6, "B75 [Ivy Bridge] chipset USB 2.0 controller on Esprimo P510 D3171 motherboard(0x1734-0x11D6)"},
{0x8086, 0x1E2D, 0x1849, 0x1E2D, "Motherboard(0x1849-0x1E2D)"},
{0x8086, 0x1E31, 0xFFFF, 0xFFFF, "7 Series/C210 Series Chipset Family USB xHCI Host Controller(0x1E31)"},
{0x8086, 0x1E31, 0x103C, 0x179B, "Elitebook 8470p(0x103C-0x179B)"},
@@ -36483,6 +36816,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1E31, 0x1043, 0x1517, "Zenbook Prime UX31A(0x1043-0x1517)"},
{0x8086, 0x1E31, 0x1043, 0x84CA, "P8 series motherboard(0x1043-0x84CA)"},
{0x8086, 0x1E31, 0x10CF, 0x16EE, "LIFEBOOK E752(0x10CF-0x16EE)"},
+{0x8086, 0x1E31, 0x1734, 0x11D6, "B75 [Ivy Bridge] chipset USB 3.0 controller on Esprimo P510 D3171 motherboard(0x1734-0x11D6)"},
{0x8086, 0x1E31, 0x17AA, 0x21F3, "ThinkPad T430(0x17AA-0x21F3)"},
{0x8086, 0x1E31, 0x1849, 0x1E31, "Motherboard(0x1849-0x1E31)"},
{0x8086, 0x1E33, 0xFFFF, 0xFFFF, "7 Series/C210 Series Chipset Family LAN Controller(0x1E33)"},
@@ -36493,6 +36827,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1E3A, 0x1043, 0x84CA, "P8 series motherboard(0x1043-0x84CA)"},
{0x8086, 0x1E3A, 0x10CF, 0x16EA, "LIFEBOOK E752(0x10CF-0x16EA)"},
{0x8086, 0x1E3A, 0x144D, 0xC652, "NP300E5C series laptop(0x144D-0xC652)"},
+{0x8086, 0x1E3A, 0x1734, 0x11D6, "B75 [Ivy Bridge] chipset on Esprimo P510 D3171 motherboard(0x1734-0x11D6)"},
{0x8086, 0x1E3A, 0x1849, 0x1E3A, "Motherboard(0x1849-0x1E3A)"},
{0x8086, 0x1E3B, 0xFFFF, 0xFFFF, "7 Series/C210 Series Chipset Family MEI Controller #2(0x1E3B)"},
{0x8086, 0x1E3C, 0xFFFF, 0xFFFF, "7 Series/C210 Series Chipset Family IDE-r Controller(0x1E3C)"},
@@ -36508,6 +36843,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1E47, 0xFFFF, 0xFFFF, "Q77 Express Chipset LPC Controller(0x1E47)"},
{0x8086, 0x1E48, 0xFFFF, 0xFFFF, "Q75 Express Chipset LPC Controller(0x1E48)"},
{0x8086, 0x1E49, 0xFFFF, 0xFFFF, "B75 Express Chipset LPC Controller(0x1E49)"},
+{0x8086, 0x1E49, 0x1734, 0x11D6, "Esprimo P510 D3171 motherboard(0x1734-0x11D6)"},
{0x8086, 0x1E4A, 0xFFFF, 0xFFFF, "H77 Express Chipset LPC Controller(0x1E4A)"},
{0x8086, 0x1E4A, 0x1043, 0x84CA, "P8H77-I Motherboard(0x1043-0x84CA)"},
{0x8086, 0x1E4B, 0xFFFF, 0xFFFF, "7 Series Chipset Family LPC Controller(0x1E4B)"},
@@ -36900,6 +37236,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x244E, 0x103C, 0x2A6F, "Asus IPIBL-LB Motherboard(0x103C-0x2A6F)"},
{0x8086, 0x244E, 0x103C, 0x31FE, "ProLiant DL140 G3(0x103C-0x31FE)"},
{0x8086, 0x244E, 0x103C, 0x330B, "ProLiant ML150 G6 Server(0x103C-0x330B)"},
+{0x8086, 0x244E, 0x1043, 0x81EC, "P5B Motherboard(0x1043-0x81EC)"},
{0x8086, 0x244E, 0x1043, 0x8277, "P5K PRO Motherboard(0x1043-0x8277)"},
{0x8086, 0x244E, 0x1043, 0x844D, "P8 series motherboard(0x1043-0x844D)"},
{0x8086, 0x244E, 0x1043, 0x8534, "ASUS B85-PLUS(0x1043-0x8534)"},
@@ -36908,6 +37245,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x244E, 0x1462, 0x7418, "Wind PC MS-7418(0x1462-0x7418)"},
{0x8086, 0x244E, 0x15D9, 0x060D, "C7SIM-Q Motherboard(0x15D9-0x060D)"},
{0x8086, 0x244E, 0x15D9, 0x9680, "X7DBN Motherboard(0x15D9-0x9680)"},
+{0x8086, 0x244E, 0x1734, 0x11D6, "B75 [Ivy Bridge] chipset on Esprimo P510 D3171 motherboard(0x1734-0x11D6)"},
{0x8086, 0x244E, 0x1775, 0x11CC, "CC11/CL11(0x1775-0x11CC)"},
{0x8086, 0x244E, 0x8086, 0x7270, "Server Board S1200BTS(0x8086-0x7270)"},
{0x8086, 0x2450, 0xFFFF, 0xFFFF, "82801E ISA Bridge (LPC)(0x2450)"},
@@ -37419,7 +37757,18 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x2522, 0x8086, 0x3806, "Optane Memory 16GB(0x8086-0x3806)"},
{0x8086, 0x2522, 0x8086, 0x3810, "Optane Memory M10 16GB(0x8086-0x3810)"},
{0x8086, 0x2525, 0xFFFF, 0xFFFF, "Optane NVME SSD P1600X Series(0x2525)"},
-{0x8086, 0x2526, 0xFFFF, 0xFFFF, "Wireless-AC 9260(0x2526)"},
+{0x8086, 0x2526, 0xFFFF, 0xFFFF, "Wi-Fi 5(802.11ac) Wireless-AC 9x6x [Thunder Peak](0x2526)"},
+{0x8086, 0x2526, 0x8086, 0x0014, "Dual Band Wi-Fi 5 Wireless-AC 9260 160MHz 2x2(0x8086-0x0014)"},
+{0x8086, 0x2526, 0x8086, 0x0210, "Dual Band Wi-Fi 5 Wireless-AC 9260 80MHz 2x2(0x8086-0x0210)"},
+{0x8086, 0x2526, 0x8086, 0x0214, "Dual Band Wi-Fi 5 Wireless-AC 9260 80MHz 2x2(0x8086-0x0214)"},
+{0x8086, 0x2526, 0x8086, 0x0230, "Dual Band Wi-Fi 5 Wireless-AC 9560 80MHz 2x2(0x8086-0x0230)"},
+{0x8086, 0x2526, 0x8086, 0x0234, "Dual Band Wi-Fi 5 Wireless-AC 9560 80MHz 2x2(0x8086-0x0234)"},
+{0x8086, 0x2526, 0x8086, 0x0238, "Dual Band Wi-Fi 5 Wireless-AC 9560 80MHz 2x2(0x8086-0x0238)"},
+{0x8086, 0x2526, 0x8086, 0x023C, "Dual Band Wi-Fi 5 Wireless-AC 9560 80MHz 2x2(0x8086-0x023C)"},
+{0x8086, 0x2526, 0x8086, 0x0260, "Dual Band Wi-Fi 5 Wireless-AC 9461 80MHz 1x1(0x8086-0x0260)"},
+{0x8086, 0x2526, 0x8086, 0x0264, "Dual Band Wi-Fi 5 Wireless-AC 9461 80MHz 1x1(0x8086-0x0264)"},
+{0x8086, 0x2526, 0x8086, 0x02A0, "Dual Band Wi-Fi 5 Wireless-AC 9462 80MHz 1x1(0x8086-0x02A0)"},
+{0x8086, 0x2526, 0x8086, 0x02A4, "Dual Band Wi-Fi 5 Wireless-AC 9462 80MHz 1x1(0x8086-0x02A4)"},
{0x8086, 0x2530, 0xFFFF, 0xFFFF, "82850 850 (Tehama) Chipset Host Bridge (MCH)(0x2530)"},
{0x8086, 0x2530, 0x1028, 0x00C7, "Dimension 8100(0x1028-0x00C7)"},
{0x8086, 0x2530, 0x147B, 0x0507, "TH7II-RAID(0x147B-0x0507)"},
@@ -37928,11 +38277,11 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x2723, 0xFFFF, 0xFFFF, "Wi-Fi 6 AX200(0x2723)"},
{0x8086, 0x2723, 0x1A56, 0x1654, "Killer Wi-Fi 6 AX1650x (AX200NGW)(0x1A56-0x1654)"},
{0x8086, 0x2723, 0x8086, 0x0084, "Wi-Fi 6 AX200NGW(0x8086-0x0084)"},
-{0x8086, 0x2725, 0xFFFF, 0xFFFF, "Wi-Fi 6 AX210/AX211/AX411 160MHz(0x2725)"},
+{0x8086, 0x2725, 0xFFFF, 0xFFFF, "Wi-Fi 6E(802.11ax) AX210/AX1675* 2x2 [Typhoon Peak](0x2725)"},
+{0x8086, 0x2725, 0x1A56, 0x1673, "Killer AX1675w 160MHz(0x1A56-0x1673)"},
+{0x8086, 0x2725, 0x1A56, 0x1674, "Killer Wi-Fi 6E AX1675x 160MHz(0x1A56-0x1674)"},
{0x8086, 0x2725, 0x8086, 0x0020, "Wi-Fi 6 AX210 160MHz(0x8086-0x0020)"},
{0x8086, 0x2725, 0x8086, 0x0024, "Wi-Fi 6 AX210 160MHz(0x8086-0x0024)"},
-{0x8086, 0x2725, 0x8086, 0x0090, "Wi-Fi 6 AX211 160MHz(0x8086-0x0090)"},
-{0x8086, 0x2725, 0x8086, 0x00B0, "Wi-Fi 6 AX411 160MHz(0x8086-0x00B0)"},
{0x8086, 0x2725, 0x8086, 0x0310, "Wi-Fi 6 AX210 160MHz(0x8086-0x0310)"},
{0x8086, 0x2725, 0x8086, 0x0510, "Wi-Fi 6 AX210 160MHz(0x8086-0x0510)"},
{0x8086, 0x2725, 0x8086, 0x0A10, "Wi-Fi 6 AX210 160MHz(0x8086-0x0A10)"},
@@ -37942,6 +38291,13 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x2725, 0x8086, 0x6024, "Wi-Fi 6 AX210 160MHz(0x8086-0x6024)"},
{0x8086, 0x2725, 0x8086, 0xE020, "Wi-Fi 6 AX210 160MHz(0x8086-0xE020)"},
{0x8086, 0x2725, 0x8086, 0xE024, "Wi-Fi 6 AX210 160MHz(0x8086-0xE024)"},
+{0x8086, 0x272B, 0xFFFF, 0xFFFF, "Wi-Fi 7(802.11be) AX1775*/AX1790*/BE20*/BE401/BE1750* 2x2(0x272B)"},
+{0x8086, 0x272B, 0x8086, 0x00F0, "BE200 320MHz [Gale Peak](0x8086-0x00F0)"},
+{0x8086, 0x272B, 0x8086, 0x00F4, "BE200 320MHz [Gale Peak](0x8086-0x00F4)"},
+{0x8086, 0x272B, 0x8086, 0x02F4, "BE202 160MHz [Misty Peak](0x8086-0x02F4)"},
+{0x8086, 0x272B, 0x8086, 0x40F0, "BE200 320MHz [Gale Peak](0x8086-0x40F0)"},
+{0x8086, 0x272B, 0x8086, 0x42F4, "BE202 160MHz [Misty Peak](0x8086-0x42F4)"},
+{0x8086, 0x272B, 0x8086, 0xE0F4, "BE200 320MHz [Gale Peak](0x8086-0xE0F4)"},
{0x8086, 0x2770, 0xFFFF, 0xFFFF, "82945G/GZ/P/PL Memory Controller Hub(0x2770)"},
{0x8086, 0x2770, 0x1028, 0x01AD, "OptiPlex GX620(0x1028-0x01AD)"},
{0x8086, 0x2770, 0x103C, 0x2A3B, "Pavilion A1512X(0x103C-0x2A3B)"},
@@ -38347,20 +38703,20 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x2822, 0x103C, 0x2A6F, "Asus IPIBL-LB Motherboard(0x103C-0x2A6F)"},
{0x8086, 0x2822, 0x1043, 0x8277, "P5K PRO Motherboard: 82801IR [ICH9R](0x1043-0x8277)"},
{0x8086, 0x2822, 0x1462, 0x7345, "MS-7345 Motherboard: Intel 82801I/IR [ICH9/ICH9R](0x1462-0x7345)"},
-{0x8086, 0x2823, 0xFFFF, 0xFFFF, "C610/X99 series chipset sSATA Controller [RAID mode](0x2823)"},
+{0x8086, 0x2823, 0xFFFF, 0xFFFF, "sSATA Controller [RAID Mode](0x2823)"},
{0x8086, 0x2824, 0xFFFF, 0xFFFF, "82801HB (ICH8) 4 port SATA Controller [AHCI mode](0x2824)"},
{0x8086, 0x2824, 0x1043, 0x81EC, "P5B(0x1043-0x81EC)"},
{0x8086, 0x2825, 0xFFFF, 0xFFFF, "82801HR/HO/HH (ICH8R/DO/DH) 2 port SATA Controller [IDE mode](0x2825)"},
{0x8086, 0x2825, 0x1028, 0x01DA, "OptiPlex 745(0x1028-0x01DA)"},
{0x8086, 0x2825, 0x1462, 0x7235, "P965 Neo MS-7235 mainboard(0x1462-0x7235)"},
-{0x8086, 0x2826, 0xFFFF, 0xFFFF, "C600/X79 series chipset SATA RAID Controller(0x2826)"},
+{0x8086, 0x2826, 0xFFFF, 0xFFFF, "SATA Controller [RAID Mode](0x2826)"},
{0x8086, 0x2826, 0x1D49, 0x0100, "Intel RSTe SATA Software RAID(0x1D49-0x0100)"},
{0x8086, 0x2826, 0x1D49, 0x0101, "Intel RSTe SATA Software RAID(0x1D49-0x0101)"},
{0x8086, 0x2826, 0x1D49, 0x0102, "Intel RSTe SATA Software RAID(0x1D49-0x0102)"},
{0x8086, 0x2826, 0x1D49, 0x0103, "Intel RSTe SATA Software RAID(0x1D49-0x0103)"},
{0x8086, 0x2826, 0x1D49, 0x0104, "Intel RSTe SATA Software RAID(0x1D49-0x0104)"},
{0x8086, 0x2826, 0x1D49, 0x0105, "Intel RSTe SATA Software RAID(0x1D49-0x0105)"},
-{0x8086, 0x2827, 0xFFFF, 0xFFFF, "C610/X99 series chipset sSATA Controller [RAID mode](0x2827)"},
+{0x8086, 0x2827, 0xFFFF, 0xFFFF, "sSATA Controller [RAID Mode](0x2827)"},
{0x8086, 0x2828, 0xFFFF, 0xFFFF, "82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode](0x2828)"},
{0x8086, 0x2828, 0x1028, 0x01F3, "Inspiron 1420(0x1028-0x01F3)"},
{0x8086, 0x2828, 0x103C, 0x30C0, "Compaq 6710b(0x103C-0x30C0)"},
@@ -38382,6 +38738,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x282A, 0xFFFF, 0xFFFF, "82801 Mobile SATA Controller [RAID mode](0x282A)"},
{0x8086, 0x282A, 0x1028, 0x040B, "Latitude E6510(0x1028-0x040B)"},
{0x8086, 0x282A, 0xE4BF, 0x50C1, "PC1-GROOVE(0xE4BF-0x50C1)"},
+{0x8086, 0x282F, 0xFFFF, 0xFFFF, "tSATA Controller [RAID Mode](0x282F)"},
{0x8086, 0x2830, 0xFFFF, 0xFFFF, "82801H (ICH8 Family) USB UHCI Controller #1(0x2830)"},
{0x8086, 0x2830, 0x1025, 0x0121, "Aspire 5920G(0x1025-0x0121)"},
{0x8086, 0x2830, 0x1028, 0x01DA, "OptiPlex 745(0x1028-0x01DA)"},
@@ -38516,27 +38873,32 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x283F, 0x1028, 0x01DA, "OptiPlex 745(0x1028-0x01DA)"},
{0x8086, 0x283F, 0x103C, 0x30C1, "Compaq 6910p(0x103C-0x30C1)"},
{0x8086, 0x283F, 0x1043, 0x1017, "X58LE(0x1043-0x1017)"},
+{0x8086, 0x283F, 0x1043, 0x81EC, "P5B(0x1043-0x81EC)"},
{0x8086, 0x283F, 0x104D, 0x902D, "VAIO VGN-NR120E(0x104D-0x902D)"},
{0x8086, 0x283F, 0x17AA, 0x20AD, "ThinkPad T61/R61(0x17AA-0x20AD)"},
{0x8086, 0x283F, 0x17C0, 0x4083, "Medion WIM 2210 Notebook PC [MD96850](0x17C0-0x4083)"},
{0x8086, 0x2841, 0xFFFF, 0xFFFF, "82801H (ICH8 Family) PCI Express Port 2(0x2841)"},
{0x8086, 0x2841, 0x103C, 0x30C1, "Compaq 6910p(0x103C-0x30C1)"},
{0x8086, 0x2841, 0x1043, 0x1017, "X58LE(0x1043-0x1017)"},
+{0x8086, 0x2841, 0x1043, 0x81EC, "P5B(0x1043-0x81EC)"},
{0x8086, 0x2841, 0x104D, 0x902D, "VAIO VGN-NR120E(0x104D-0x902D)"},
{0x8086, 0x2841, 0x17AA, 0x20AD, "ThinkPad T61/R61(0x17AA-0x20AD)"},
{0x8086, 0x2841, 0x17C0, 0x4083, "Medion WIM 2210 Notebook PC [MD96850](0x17C0-0x4083)"},
{0x8086, 0x2843, 0xFFFF, 0xFFFF, "82801H (ICH8 Family) PCI Express Port 3(0x2843)"},
{0x8086, 0x2843, 0x1043, 0x1017, "X58LE(0x1043-0x1017)"},
+{0x8086, 0x2843, 0x1043, 0x81EC, "P5B(0x1043-0x81EC)"},
{0x8086, 0x2843, 0x104D, 0x902D, "VAIO VGN-NR120E(0x104D-0x902D)"},
{0x8086, 0x2843, 0x17AA, 0x20AD, "ThinkPad T61/R61(0x17AA-0x20AD)"},
{0x8086, 0x2843, 0x17C0, 0x4083, "Medion WIM 2210 Notebook PC [MD96850](0x17C0-0x4083)"},
{0x8086, 0x2845, 0xFFFF, 0xFFFF, "82801H (ICH8 Family) PCI Express Port 4(0x2845)"},
{0x8086, 0x2845, 0x1043, 0x1017, "X58LE(0x1043-0x1017)"},
+{0x8086, 0x2845, 0x1043, 0x81EC, "P5B(0x1043-0x81EC)"},
{0x8086, 0x2845, 0x17AA, 0x20AD, "ThinkPad T61/R61(0x17AA-0x20AD)"},
{0x8086, 0x2845, 0x17C0, 0x4083, "Medion WIM 2210 Notebook PC [MD96850](0x17C0-0x4083)"},
{0x8086, 0x2847, 0xFFFF, 0xFFFF, "82801H (ICH8 Family) PCI Express Port 5(0x2847)"},
{0x8086, 0x2847, 0x1028, 0x01DA, "OptiPlex 745(0x1028-0x01DA)"},
{0x8086, 0x2847, 0x103C, 0x30C1, "Compaq 6910p(0x103C-0x30C1)"},
+{0x8086, 0x2847, 0x1043, 0x81EC, "P5B(0x1043-0x81EC)"},
{0x8086, 0x2847, 0x17AA, 0x20AD, "ThinkPad T61/R61(0x17AA-0x20AD)"},
{0x8086, 0x2847, 0x17C0, 0x4083, "Medion WIM 2210 Notebook PC [MD96850](0x17C0-0x4083)"},
{0x8086, 0x2849, 0xFFFF, 0xFFFF, "82801H (ICH8 Family) PCI Express Port 6(0x2849)"},
@@ -39401,6 +39763,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x2FFC, 0xFFFF, 0xFFFF, "Xeon E7 v3/Xeon E5 v3/Core i7 System Address Decoder & Broadcast Registers(0x2FFC)"},
{0x8086, 0x2FFD, 0xFFFF, 0xFFFF, "Xeon E7 v3/Xeon E5 v3/Core i7 System Address Decoder & Broadcast Registers(0x2FFD)"},
{0x8086, 0x2FFE, 0xFFFF, 0xFFFF, "Xeon E7 v3/Xeon E5 v3/Core i7 System Address Decoder & Broadcast Registers(0x2FFE)"},
+{0x8086, 0x3101, 0xFFFF, 0xFFFF, "Killer E3100X 2.5 Gigabit Ethernet Controller(0x3101)"},
{0x8086, 0x3140, 0xFFFF, 0xFFFF, "Easel/Monette Hill Image Processor [Pixel Visual Core](0x3140)"},
{0x8086, 0x3165, 0xFFFF, 0xFFFF, "Wireless 3165(0x3165)"},
{0x8086, 0x3165, 0x8086, 0x4010, "Dual Band Wireless AC 3165 [Stone Peak 1x1](0x8086-0x4010)"},
@@ -40402,6 +40765,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x464D, 0xFFFF, 0xFFFF, "12th Gen Core Processor PCI Express x4 Controller #0(0x464D)"},
{0x8086, 0x464F, 0xFFFF, 0xFFFF, "12th Gen Core Processor Gaussian & Neural Accelerator(0x464F)"},
{0x8086, 0x464F, 0x1028, 0x0B10, "Precision 3571(0x1028-0x0B10)"},
+{0x8086, 0x4650, 0xFFFF, 0xFFFF, "12th Gen Core Processor Host Bridge(0x4650)"},
{0x8086, 0x465D, 0xFFFF, 0xFFFF, "Alder Lake Imaging Signal Processor(0x465D)"},
{0x8086, 0x4660, 0xFFFF, 0xFFFF, "12th Gen Core Processor Host Bridge/DRAM Registers(0x4660)"},
{0x8086, 0x4668, 0xFFFF, 0xFFFF, "12th Gen Core Processor Host Bridge/DRAM Registers(0x4668)"},
@@ -40463,21 +40827,45 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x4C8B, 0xFFFF, 0xFFFF, "RocketLake-S GT1 [UHD Graphics 730](0x4C8B)"},
{0x8086, 0x4C90, 0xFFFF, 0xFFFF, "RocketLake-S GT1 [UHD Graphics P750](0x4C90)"},
{0x8086, 0x4C9A, 0xFFFF, 0xFFFF, "RocketLake-S [UHD Graphics](0x4C9A)"},
+{0x8086, 0x4D87, 0xFFFF, 0xFFFF, "Jasper Lake eSPI Controller(0x4D87)"},
{0x8086, 0x4DA3, 0xFFFF, 0xFFFF, "Jasper Lake SMBus(0x4DA3)"},
{0x8086, 0x4DA4, 0xFFFF, 0xFFFF, "Jasper Lake SPI Controller(0x4DA4)"},
+{0x8086, 0x4DA8, 0xFFFF, 0xFFFF, "Jasper Lake Serial IO UART Controller #0(0x4DA8)"},
+{0x8086, 0x4DAB, 0xFFFF, 0xFFFF, "Jasper Lake Serial IO SPI Controller #1(0x4DAB)"},
+{0x8086, 0x4DB8, 0xFFFF, 0xFFFF, "Jasper Lake PCIe Root Port #1(0x4DB8)"},
+{0x8086, 0x4DB9, 0xFFFF, 0xFFFF, "Jasper Lake PCIe Root Port #2(0x4DB9)"},
+{0x8086, 0x4DBC, 0xFFFF, 0xFFFF, "Jasper Lake PCIe Root Port #5(0x4DBC)"},
+{0x8086, 0x4DBE, 0xFFFF, 0xFFFF, "Jasper Lake PCIe Root Port #7(0x4DBE)"},
+{0x8086, 0x4DC4, 0xFFFF, 0xFFFF, "Jasper Lake eMMC Controller(0x4DC4)"},
+{0x8086, 0x4DC5, 0xFFFF, 0xFFFF, "Jasper Lake Serial IO I2C Host Controller #4(0x4DC5)"},
+{0x8086, 0x4DC6, 0xFFFF, 0xFFFF, "Jasper Lake Serial IO I2C Host Controller #5(0x4DC6)"},
{0x8086, 0x4DC8, 0xFFFF, 0xFFFF, "Jasper Lake HD Audio(0x4DC8)"},
+{0x8086, 0x4DD3, 0xFFFF, 0xFFFF, "Jasper Lake SATA AHCI Controller(0x4DD3)"},
{0x8086, 0x4DE0, 0xFFFF, 0xFFFF, "Management Engine Interface(0x4DE0)"},
-{0x8086, 0x4DE8, 0xFFFF, 0xFFFF, "Serial IO I2C Host Controller(0x4DE8)"},
-{0x8086, 0x4DE9, 0xFFFF, 0xFFFF, "Serial IO I2C Host Controller(0x4DE9)"},
+{0x8086, 0x4DE8, 0xFFFF, 0xFFFF, "Jasper Lake Serial IO I2C Host Controller #0(0x4DE8)"},
+{0x8086, 0x4DE9, 0xFFFF, 0xFFFF, "Jasper Lake Serial IO I2C Host Controller #1(0x4DE9)"},
+{0x8086, 0x4DEA, 0xFFFF, 0xFFFF, "Jasper Lake Serial IO I2C Host Controller #2(0x4DEA)"},
+{0x8086, 0x4DEB, 0xFFFF, 0xFFFF, "Jasper Lake Serial IO I2C Host Controller #3(0x4DEB)"},
+{0x8086, 0x4DED, 0xFFFF, 0xFFFF, "Jasper Lake USB 3.1 xHCI Host Controller(0x4DED)"},
+{0x8086, 0x4DEF, 0xFFFF, 0xFFFF, "Jasper Lake Shared SRAM(0x4DEF)"},
{0x8086, 0x4DF0, 0xFFFF, 0xFFFF, "Wi-Fi 6 AX201 160MHz(0x4DF0)"},
+{0x8086, 0x4DF8, 0xFFFF, 0xFFFF, "Jasper Lake SD Controller(0x4DF8)"},
{0x8086, 0x4E03, 0xFFFF, 0xFFFF, "Dynamic Tuning service(0x4E03)"},
{0x8086, 0x4E19, 0xFFFF, 0xFFFF, "JasperLake IPU(0x4E19)"},
{0x8086, 0x4E55, 0xFFFF, 0xFFFF, "JasperLake [UHD Graphics](0x4E55)"},
{0x8086, 0x4E61, 0xFFFF, 0xFFFF, "JasperLake [UHD Graphics](0x4E61)"},
{0x8086, 0x4E71, 0xFFFF, 0xFFFF, "JasperLake [UHD Graphics](0x4E71)"},
-{0x8086, 0x4F80, 0xFFFF, 0xFFFF, "DG2(0x4F80)"},
-{0x8086, 0x4F81, 0xFFFF, 0xFFFF, "DG2(0x4F81)"},
-{0x8086, 0x4F82, 0xFFFF, 0xFFFF, "DG2(0x4F82)"},
+{0x8086, 0x4F80, 0xFFFF, 0xFFFF, "DG2 [Intel Xe Graphics](0x4F80)"},
+{0x8086, 0x4F81, 0xFFFF, 0xFFFF, "DG2 [Intel Xe Graphics](0x4F81)"},
+{0x8086, 0x4F82, 0xFFFF, 0xFFFF, "DG2 [Intel Xe Graphics](0x4F82)"},
+{0x8086, 0x4F83, 0xFFFF, 0xFFFF, "DG2 [Intel Xe Graphics](0x4F83)"},
+{0x8086, 0x4F84, 0xFFFF, 0xFFFF, "DG2 [Intel Xe Graphics](0x4F84)"},
+{0x8086, 0x4F85, 0xFFFF, 0xFFFF, "DG2 [Intel Xe Graphics](0x4F85)"},
+{0x8086, 0x4F86, 0xFFFF, 0xFFFF, "DG2 [Intel Xe Graphics](0x4F86)"},
+{0x8086, 0x4F87, 0xFFFF, 0xFFFF, "DG2 [Intel Xe Graphics](0x4F87)"},
+{0x8086, 0x4F88, 0xFFFF, 0xFFFF, "DG2 [Intel Xe Graphics](0x4F88)"},
+{0x8086, 0x4F89, 0xFFFF, 0xFFFF, "ACMP [Xe Graphics](0x4F89)"},
+{0x8086, 0x4F8C, 0xFFFF, 0xFFFF, "ACMP [Xe Graphics](0x4F8C)"},
{0x8086, 0x4F90, 0xFFFF, 0xFFFF, "DG2 Audio Controller(0x4F90)"},
{0x8086, 0x4F91, 0xFFFF, 0xFFFF, "DG2 Audio Controller(0x4F91)"},
{0x8086, 0x4F92, 0xFFFF, 0xFFFF, "DG2 Audio Controller(0x4F92)"},
@@ -40533,10 +40921,13 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x5182, 0x1028, 0x0B10, "Precision 3571(0x1028-0x0B10)"},
{0x8086, 0x5187, 0xFFFF, 0xFFFF, "Alder Lake LPC Controller(0x5187)"},
{0x8086, 0x519D, 0xFFFF, 0xFFFF, "Raptor Lake LPC/eSPI Controller(0x519D)"},
+{0x8086, 0x519D, 0x1028, 0x0C06, "Precision 3580(0x1028-0x0C06)"},
{0x8086, 0x51A3, 0xFFFF, 0xFFFF, "Alder Lake PCH-P SMBus Host Controller(0x51A3)"},
{0x8086, 0x51A3, 0x1028, 0x0B10, "Precision 3571(0x1028-0x0B10)"},
+{0x8086, 0x51A3, 0x1028, 0x0C06, "Precision 3580(0x1028-0x0C06)"},
{0x8086, 0x51A4, 0xFFFF, 0xFFFF, "Alder Lake-P PCH SPI Controller(0x51A4)"},
{0x8086, 0x51A4, 0x1028, 0x0B10, "Precision 3571(0x1028-0x0B10)"},
+{0x8086, 0x51A4, 0x1028, 0x0C06, "Precision 3580(0x1028-0x0C06)"},
{0x8086, 0x51A8, 0xFFFF, 0xFFFF, "Alder Lake PCH UART #0(0x51A8)"},
{0x8086, 0x51A9, 0xFFFF, 0xFFFF, "Alder Lake PCH UART #1(0x51A9)"},
{0x8086, 0x51AA, 0xFFFF, 0xFFFF, "Alder Lake SPI Controller(0x51AA)"},
@@ -40550,6 +40941,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x51C8, 0xFFFF, 0xFFFF, "Alder Lake PCH-P High Definition Audio Controller(0x51C8)"},
{0x8086, 0x51C8, 0x1028, 0x0B10, "Precision 3571(0x1028-0x0B10)"},
{0x8086, 0x51CA, 0xFFFF, 0xFFFF, "Raptor Lake-P/U/H cAVS(0x51CA)"},
+{0x8086, 0x51CA, 0x1028, 0x0C06, "Precision 3580(0x1028-0x0C06)"},
{0x8086, 0x51CC, 0xFFFF, 0xFFFF, "Alder Lake Smart Sound Technology Audio Controller(0x51CC)"},
{0x8086, 0x51D3, 0xFFFF, 0xFFFF, "Alder Lake-P SATA AHCI Controller(0x51D3)"},
{0x8086, 0x51D3, 0x1028, 0x0B10, "Precision 3571(0x1028-0x0B10)"},
@@ -40557,33 +40949,57 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x51D9, 0xFFFF, 0xFFFF, "Alder Lake-P Serial IO I2C Controller #3(0x51D9)"},
{0x8086, 0x51E0, 0xFFFF, 0xFFFF, "Alder Lake PCH HECI Controller(0x51E0)"},
{0x8086, 0x51E0, 0x1028, 0x0B10, "Precision 3571(0x1028-0x0B10)"},
+{0x8086, 0x51E0, 0x1028, 0x0C06, "Precision 3580(0x1028-0x0C06)"},
{0x8086, 0x51E3, 0xFFFF, 0xFFFF, "Alder Lake AMT SOL Redirection(0x51E3)"},
{0x8086, 0x51E3, 0x1028, 0x0B10, "Precision 3571(0x1028-0x0B10)"},
{0x8086, 0x51E8, 0xFFFF, 0xFFFF, "Alder Lake PCH Serial IO I2C Controller #0(0x51E8)"},
{0x8086, 0x51E8, 0x1028, 0x0B10, "Precision 3571(0x1028-0x0B10)"},
+{0x8086, 0x51E8, 0x1028, 0x0C06, "Precision 3580(0x1028-0x0C06)"},
{0x8086, 0x51E9, 0xFFFF, 0xFFFF, "Alder Lake PCH Serial IO I2C Controller #1(0x51E9)"},
{0x8086, 0x51E9, 0x1028, 0x0B10, "Precision 3571(0x1028-0x0B10)"},
+{0x8086, 0x51E9, 0x1028, 0x0C06, "Precision 3580(0x1028-0x0C06)"},
{0x8086, 0x51EA, 0xFFFF, 0xFFFF, "Alder Lake PCH Serial IO I2C Controller #2(0x51EA)"},
{0x8086, 0x51EB, 0xFFFF, 0xFFFF, "Alder Lake PCH Serial IO I2C Controller #3(0x51EB)"},
{0x8086, 0x51ED, 0xFFFF, 0xFFFF, "Alder Lake PCH USB 3.2 xHCI Host Controller(0x51ED)"},
{0x8086, 0x51ED, 0x1028, 0x0B10, "Precision 3571(0x1028-0x0B10)"},
+{0x8086, 0x51ED, 0x1028, 0x0C06, "Precision 3580(0x1028-0x0C06)"},
{0x8086, 0x51EF, 0xFFFF, 0xFFFF, "Alder Lake PCH Shared SRAM(0x51EF)"},
{0x8086, 0x51EF, 0x1028, 0x0B10, "Precision 3571(0x1028-0x0B10)"},
+{0x8086, 0x51EF, 0x1028, 0x0C06, "Precision 3580(0x1028-0x0C06)"},
{0x8086, 0x51F0, 0xFFFF, 0xFFFF, "Alder Lake-P PCH CNVi WiFi(0x51F0)"},
-{0x8086, 0x51F0, 0x8086, 0x0034, "Wireless-AC 9560 160MHz(0x8086-0x0034)"},
-{0x8086, 0x51F0, 0x8086, 0x0070, "Wi-Fi 6 AX201 160MHz(0x8086-0x0070)"},
-{0x8086, 0x51F0, 0x8086, 0x0074, "Wi-Fi 6 AX201 160MHz(0x8086-0x0074)"},
-{0x8086, 0x51F0, 0x8086, 0x0094, "Wi-Fi 6E AX211 160MHz(0x8086-0x0094)"},
-{0x8086, 0x51F0, 0x8086, 0x4070, "Wi-Fi 6 AX201 160MHz(0x8086-0x4070)"},
-{0x8086, 0x51F0, 0x8086, 0x4090, "Wi-Fi 6E AX211 160MHz(0x8086-0x4090)"},
+{0x8086, 0x51F0, 0x1A56, 0x1652, "Dual Band Wi-Fi 6(802.11ax) Killer AX1650i 160MHz 2x2 [Cyclone Peak](0x1A56-0x1652)"},
+{0x8086, 0x51F0, 0x1A56, 0x1671, "Dual Band Wi-Fi 6E(802.11ax) AX1675s 160MHz 2x2 [Garfield Peak](0x1A56-0x1671)"},
+{0x8086, 0x51F0, 0x1A56, 0x1672, "Dual Band Wi-Fi 6E(802.11ax) AX1675i 160MHz 2x2 [Garfield Peak](0x1A56-0x1672)"},
+{0x8086, 0x51F0, 0x1A56, 0x1692, "Simultaneous Dual Band(Double Connect) Wi-Fi 6E AX1690i 160MHz 2x2 [Garfield Peak](0x1A56-0x1692)"},
+{0x8086, 0x51F0, 0x8086, 0x0034, "Dual Band Wi-Fi 5(802.11ac) Wireless-AC 9560 160MHz 2x2 [Jefferson Peak](0x8086-0x0034)"},
+{0x8086, 0x51F0, 0x8086, 0x0070, "Dual Band Wi-Fi 6(802.11ax) AX201 160MHz 2x2 [Harrison Peak](0x8086-0x0070)"},
+{0x8086, 0x51F0, 0x8086, 0x0074, "Dual Band Wi-Fi 6(802.11ax) AX201 160MHz 2x2 [Harrison Peak](0x8086-0x0074)"},
+{0x8086, 0x51F0, 0x8086, 0x0094, "Dual Band Wi-Fi 6E(802.11ax) AX211 160MHz 2x2 [Garfield Peak](0x8086-0x0094)"},
+{0x8086, 0x51F0, 0x8086, 0x00B4, "Simultaneous Dual Band(Double Connect) Wi-Fi 6E AX411 160MHz 2x2 [Garfield Peak](0x8086-0x00B4)"},
+{0x8086, 0x51F0, 0x8086, 0x0234, "Dual Band Wi-Fi 5(802.11ac) Wireless-AC 9560 80MHz 2x2 [Jefferson Peak](0x8086-0x0234)"},
+{0x8086, 0x51F0, 0x8086, 0x0244, "Single Band Wi-Fi 6(802.11ax) AX101 80MHz 1x1 [Harrison Peak](0x8086-0x0244)"},
+{0x8086, 0x51F0, 0x8086, 0x0264, "Dual Band Wi-Fi 5(802.11ac) Wireless-AC 9461 80MHz 1x1 [Jefferson Peak](0x8086-0x0264)"},
+{0x8086, 0x51F0, 0x8086, 0x0274, "Dual Band Wi-Fi E(802.11ax) AX203 80MHz 2x2 [Johnson Peak](0x8086-0x0274)"},
+{0x8086, 0x51F0, 0x8086, 0x02A4, "Dual Band Wi-Fi 5(802.11ac) Wireless-AC 9462 80MHz 1x1 [Jefferson Peak](0x8086-0x02A4)"},
+{0x8086, 0x51F0, 0x8086, 0x4070, "Dual Band Wi-Fi 6(802.11ax) AX201 160MHz 2x2 [Harrison Peak](0x8086-0x4070)"},
+{0x8086, 0x51F0, 0x8086, 0x4090, "Dual Band Wi-Fi 6E(802.11ax) AX211 160MHz 2x2 [Garfield Peak](0x8086-0x4090)"},
+{0x8086, 0x51F0, 0x8086, 0x42A4, "Dual Band Wi-Fi 5(802.11ac) Wireless-AC 9462 80MHz 1x1 [Jefferson Peak](0x8086-0x42A4)"},
{0x8086, 0x51F1, 0xFFFF, 0xFFFF, "Raptor Lake PCH CNVi WiFi(0x51F1)"},
+{0x8086, 0x51F1, 0x8086, 0x4090, "Wi-Fi 6E AX211 160MHz(0x8086-0x4090)"},
{0x8086, 0x51FC, 0xFFFF, 0xFFFF, "Alder Lake-P Integrated Sensor Hub(0x51FC)"},
{0x8086, 0x51FC, 0x1028, 0x0B10, "Precision 3571(0x1028-0x0B10)"},
+{0x8086, 0x51FC, 0x1028, 0x0C06, "Precision 3580(0x1028-0x0C06)"},
{0x8086, 0x5200, 0xFFFF, 0xFFFF, "EtherExpress PRO/100 Intelligent Server PCI Bridge(0x5200)"},
{0x8086, 0x5201, 0xFFFF, 0xFFFF, "EtherExpress PRO/100 Intelligent Server Fast Ethernet Controller(0x5201)"},
{0x8086, 0x5201, 0x8086, 0x0001, "EtherExpress PRO/100 Server Ethernet Adapter(0x8086-0x0001)"},
{0x8086, 0x530D, 0xFFFF, 0xFFFF, "80310 (IOP) IO Processor(0x530D)"},
+{0x8086, 0x5481, 0xFFFF, 0xFFFF, "Alder Lake-N PCH eSPI Controller(0x5481)"},
+{0x8086, 0x54C8, 0xFFFF, 0xFFFF, "Alder Lake-N PCH High Definition Audio Controller(0x54C8)"},
+{0x8086, 0x54E0, 0xFFFF, 0xFFFF, "Alder Lake-N PCH HECI Controller(0x54E0)"},
+{0x8086, 0x54ED, 0xFFFF, 0xFFFF, "Alder Lake-N PCH USB 3.2 xHCI Host Controller(0x54ED)"},
+{0x8086, 0x54EF, 0xFFFF, 0xFFFF, "Alder Lake-N PCH Shared SRAM(0x54EF)"},
{0x8086, 0x54F0, 0xFFFF, 0xFFFF, "CNVi: Wi-Fi(0x54F0)"},
+{0x8086, 0x54F0, 0x8086, 0x0244, "Wi-Fi 6 AX101NGW(0x8086-0x0244)"},
{0x8086, 0x5502, 0xFFFF, 0xFFFF, "Ethernet Controller (2) I225-LMvP(0x5502)"},
{0x8086, 0x5502, 0x1AB6, 0x0225, "TS4 On-Board 2.5GbE Ethernet Adaptor(0x1AB6-0x0225)"},
{0x8086, 0x5690, 0xFFFF, 0xFFFF, "DG2 [Arc A770M](0x5690)"},
@@ -40609,6 +41025,10 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x56B1, 0xFFFF, 0xFFFF, "DG2 [Arc Pro A40/A50](0x56B1)"},
{0x8086, 0x56B2, 0xFFFF, 0xFFFF, "DG2 [Arc Pro A60M](0x56B2)"},
{0x8086, 0x56B3, 0xFFFF, 0xFFFF, "DG2 [Arc Pro A60](0x56B3)"},
+{0x8086, 0x56BA, 0xFFFF, 0xFFFF, "DG2 [Intel Graphics](0x56BA)"},
+{0x8086, 0x56BB, 0xFFFF, 0xFFFF, "DG2 [Intel Graphics](0x56BB)"},
+{0x8086, 0x56BC, 0xFFFF, 0xFFFF, "DG2 [Intel Graphics](0x56BC)"},
+{0x8086, 0x56BD, 0xFFFF, 0xFFFF, "DG2 [Intel Graphics](0x56BD)"},
{0x8086, 0x56C0, 0xFFFF, 0xFFFF, "ATS-M [Data Center GPU Flex 170](0x56C0)"},
{0x8086, 0x56C1, 0xFFFF, 0xFFFF, "ATS-M [Data Center GPU Flex 140](0x56C1)"},
{0x8086, 0x5780, 0xFFFF, 0xFFFF, "Thunderbolt 80/120G Bridge [Barlow Ridge Host 80G 2023](0x5780)"},
@@ -40701,6 +41121,10 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x5AE8, 0xFFFF, 0xFFFF, "Celeron N3350/Pentium N4200/Atom E3900 Series Low Pin Count Interface(0x5AE8)"},
{0x8086, 0x5AEE, 0xFFFF, 0xFFFF, "Celeron N3350/Pentium N4200/Atom E3900 Series HSUART Controller #4(0x5AEE)"},
{0x8086, 0x5AF0, 0xFFFF, 0xFFFF, "Celeron N3350/Pentium N4200/Atom E3900 Series Host Bridge(0x5AF0)"},
+{0x8086, 0x6420, 0xFFFF, 0xFFFF, "Lunar Lake [Intel Graphics](0x6420)"},
+{0x8086, 0x643E, 0xFFFF, 0xFFFF, "Lunar Lake NPU(0x643E)"},
+{0x8086, 0x64A0, 0xFFFF, 0xFFFF, "Lunar Lake [Intel Graphics](0x64A0)"},
+{0x8086, 0x64B0, 0xFFFF, 0xFFFF, "Lunar Lake [Intel Graphics](0x64B0)"},
{0x8086, 0x65C0, 0xFFFF, 0xFFFF, "5100 Chipset Memory Controller Hub(0x65C0)"},
{0x8086, 0x65E2, 0xFFFF, 0xFFFF, "5100 Chipset PCI Express x4 Port 2(0x65E2)"},
{0x8086, 0x65E3, 0xFFFF, 0xFFFF, "5100 Chipset PCI Express x4 Port 3(0x65E3)"},
@@ -40990,7 +41414,28 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x7800, 0x10B4, 0x202F, "Lightspeed 740(0x10B4-0x202F)"},
{0x8086, 0x7800, 0x8086, 0x0000, "Terminator 2x/i(0x8086-0x0000)"},
{0x8086, 0x7800, 0x8086, 0x0100, "Intel740 Graphics Accelerator(0x8086-0x0100)"},
+{0x8086, 0x7A04, 0xFFFF, 0xFFFF, "Raptor Lake LPC/eSPI Controller(0x7A04)"},
+{0x8086, 0x7A23, 0xFFFF, 0xFFFF, "Raptor Lake-S PCH SMBus Controller(0x7A23)"},
+{0x8086, 0x7A24, 0xFFFF, 0xFFFF, "Raptor Lake SPI (flash) Controller(0x7A24)"},
+{0x8086, 0x7A27, 0xFFFF, 0xFFFF, "Raptor Lake-S PCH Shared SRAM(0x7A27)"},
+{0x8086, 0x7A30, 0xFFFF, 0xFFFF, "Raptor Lake PCI Express Root Port #9(0x7A30)"},
+{0x8086, 0x7A38, 0xFFFF, 0xFFFF, "Raptor Lake PCI Express Root Port #1(0x7A38)"},
+{0x8086, 0x7A3B, 0xFFFF, 0xFFFF, "Raptor Lake PCI Express Root Port #4(0x7A3B)"},
+{0x8086, 0x7A40, 0xFFFF, 0xFFFF, "Raptor Lake PCI Express Root Port #17(0x7A40)"},
+{0x8086, 0x7A44, 0xFFFF, 0xFFFF, "Raptor Lake PCI Express Root Port #21(0x7A44)"},
+{0x8086, 0x7A48, 0xFFFF, 0xFFFF, "Raptor Lake PCI Express Root Port #25(0x7A48)"},
+{0x8086, 0x7A4C, 0xFFFF, 0xFFFF, "Raptor Lake Serial IO I2C Host Controller #0(0x7A4C)"},
+{0x8086, 0x7A4D, 0xFFFF, 0xFFFF, "Raptor Lake Serial IO I2C Host Controller #1(0x7A4D)"},
+{0x8086, 0x7A4E, 0xFFFF, 0xFFFF, "Raptor Lake Serial IO I2C Host Controller #2(0x7A4E)"},
+{0x8086, 0x7A50, 0xFFFF, 0xFFFF, "Raptor Lake High Definition Audio Controller(0x7A50)"},
+{0x8086, 0x7A60, 0xFFFF, 0xFFFF, "Raptor Lake USB 3.2 Gen 2x2 (20 Gb/s) XHCI Host Controller(0x7A60)"},
+{0x8086, 0x7A62, 0xFFFF, 0xFFFF, "Raptor Lake SATA AHCI Controller(0x7A62)"},
+{0x8086, 0x7A68, 0xFFFF, 0xFFFF, "Raptor Lake CSME HECI #1(0x7A68)"},
+{0x8086, 0x7A69, 0xFFFF, 0xFFFF, "Raptor Lake CSME HECI #2(0x7A69)"},
+{0x8086, 0x7A70, 0xFFFF, 0xFFFF, "Raptor Lake-S PCH CNVi WiFi(0x7A70)"},
+{0x8086, 0x7A70, 0x8086, 0x0090, "WiFi 6E AX211 160MHz(0x8086-0x0090)"},
{0x8086, 0x7A84, 0xFFFF, 0xFFFF, "Z690 Chipset LPC/eSPI Controller(0x7A84)"},
+{0x8086, 0x7A85, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #?-?-?-?-?-(0x7A85)"},
{0x8086, 0x7AA3, 0xFFFF, 0xFFFF, "Alder Lake-S PCH SMBus Controller(0x7AA3)"},
{0x8086, 0x7AA4, 0xFFFF, 0xFFFF, "Alder Lake-S PCH SPI Controller(0x7AA4)"},
{0x8086, 0x7AA7, 0xFFFF, 0xFFFF, "Alder Lake-S PCH Shared SRAM(0x7AA7)"},
@@ -41000,9 +41445,11 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x7AB4, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #13(0x7AB4)"},
{0x8086, 0x7AB8, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #1(0x7AB8)"},
{0x8086, 0x7AB9, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #2(0x7AB9)"},
+{0x8086, 0x7ABA, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #?-?-?-?-(0x7ABA)"},
{0x8086, 0x7ABC, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #5(0x7ABC)"},
{0x8086, 0x7ABD, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #6(0x7ABD)"},
{0x8086, 0x7ABF, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #8(0x7ABF)"},
+{0x8086, 0x7AC4, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #?-?-?-?-(0x7AC4)"},
{0x8086, 0x7AC8, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #25(0x7AC8)"},
{0x8086, 0x7ACC, 0xFFFF, 0xFFFF, "Alder Lake-S PCH Serial IO I2C Controller #0(0x7ACC)"},
{0x8086, 0x7ACD, 0xFFFF, 0xFFFF, "Alder Lake-S PCH Serial IO I2C Controller #1(0x7ACD)"},
@@ -41019,10 +41466,14 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x7AFC, 0xFFFF, 0xFFFF, "Alder Lake-S PCH Serial IO I2C Controller #4(0x7AFC)"},
{0x8086, 0x7AFD, 0xFFFF, 0xFFFF, "Alder Lake-S PCH Serial IO I2C Controller #5(0x7AFD)"},
{0x8086, 0x7D0B, 0xFFFF, 0xFFFF, "Volume Management Device NVMe RAID Controller Intel Corporation(0x7D0B)"},
+{0x8086, 0x7D1D, 0xFFFF, 0xFFFF, "Meteor Lake NPU(0x7D1D)"},
{0x8086, 0x7D40, 0xFFFF, 0xFFFF, "Meteor Lake-M [Intel Graphics](0x7D40)"},
{0x8086, 0x7D45, 0xFFFF, 0xFFFF, "Meteor Lake-P [Intel Graphics](0x7D45)"},
+{0x8086, 0x7D51, 0xFFFF, 0xFFFF, "Arrow Lake-P [Intel Graphics](0x7D51)"},
{0x8086, 0x7D55, 0xFFFF, 0xFFFF, "Meteor Lake-P [Intel Arc Graphics](0x7D55)"},
{0x8086, 0x7D60, 0xFFFF, 0xFFFF, "Meteor Lake-M [Intel Graphics](0x7D60)"},
+{0x8086, 0x7D67, 0xFFFF, 0xFFFF, "Arrow Lake [Intel Graphics](0x7D67)"},
+{0x8086, 0x7DD1, 0xFFFF, 0xFFFF, "Arrow Lake-P [Intel Graphics](0x7DD1)"},
{0x8086, 0x7DD5, 0xFFFF, 0xFFFF, "Meteor Lake-P [Intel Graphics](0x7DD5)"},
{0x8086, 0x7E01, 0xFFFF, 0xFFFF, "Meteor Lake-P LPC/eSPI Controller(0x7E01)"},
{0x8086, 0x7E22, 0xFFFF, 0xFFFF, "Meteor Lake-P SMBus Controller(0x7E22)"},
@@ -41425,6 +41876,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x9B41, 0x1028, 0x09BE, "Latitude 7410(0x1028-0x09BE)"},
{0x8086, 0x9B43, 0xFFFF, 0xFFFF, "10th Gen Core Processor Host Bridge/DRAM Registers(0x9B43)"},
{0x8086, 0x9B44, 0xFFFF, 0xFFFF, "10th Gen Core Processor Host Bridge/DRAM Registers(0x9B44)"},
+{0x8086, 0x9B51, 0xFFFF, 0xFFFF, "10th Gen Core Processor Host Bridge/DRAM Registers(0x9B51)"},
{0x8086, 0x9B53, 0xFFFF, 0xFFFF, "Comet Lake-S 6c Host Bridge/DRAM Controller(0x9B53)"},
{0x8086, 0x9B54, 0xFFFF, 0xFFFF, "10th Gen Core Processor Host Bridge/DRAM Registers(0x9B54)"},
{0x8086, 0x9B61, 0xFFFF, 0xFFFF, "Comet Lake-U v1 4c Host Bridge/DRAM Controller(0x9B61)"},
@@ -41985,6 +42437,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0xA2BA, 0xFFFF, 0xFFFF, "200 Series PCH CSME HECI #1(0xA2BA)"},
{0x8086, 0xA2BA, 0x1462, 0x7A72, "H270 PC MATE(0x1462-0x7A72)"},
{0x8086, 0xA2BB, 0xFFFF, 0xFFFF, "200 Series PCH CSME HECI #2(0xA2BB)"},
+{0x8086, 0xA2BD, 0xFFFF, 0xFFFF, "200 Series Chipset Family KT Redirection(0xA2BD)"},
{0x8086, 0xA2C4, 0xFFFF, 0xFFFF, "200 Series PCH LPC Controller (H270)(0xA2C4)"},
{0x8086, 0xA2C4, 0x1462, 0x7A72, "H270 PC MATE(0x1462-0x7A72)"},
{0x8086, 0xA2C5, 0xFFFF, 0xFFFF, "200 Series PCH LPC Controller (Z270)(0xA2C5)"},
@@ -42085,19 +42538,26 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0xA3EB, 0xFFFF, 0xFFFF, "Comet Lake PCI Express Root Port #21(0xA3EB)"},
{0x8086, 0xA3F0, 0xFFFF, 0xFFFF, "Comet Lake PCH-V cAVS(0xA3F0)"},
{0x8086, 0xA620, 0xFFFF, 0xFFFF, "6400/6402 Advanced Memory Buffer (AMB)(0xA620)"},
+{0x8086, 0xA706, 0xFFFF, 0xFFFF, "Raptor Lake-P 6p+8e cores Host Bridge/DRAM Controller(0xA706)"},
+{0x8086, 0xA706, 0x1028, 0x0C06, "Precision 3580(0x1028-0x0C06)"},
{0x8086, 0xA707, 0xFFFF, 0xFFFF, "Raptor Lake-P/U 4p+8e cores Host Bridge/DRAM Controller(0xA707)"},
{0x8086, 0xA708, 0xFFFF, 0xFFFF, "Raptor Lake-P/U 2p+8e cores Host Bridge/DRAM Controller(0xA708)"},
{0x8086, 0xA71D, 0xFFFF, 0xFFFF, "Raptor Lake Dynamic Platform and Thermal Framework Processor Participant(0xA71D)"},
+{0x8086, 0xA71D, 0x1028, 0x0C06, "Precision 3580(0x1028-0x0C06)"},
{0x8086, 0xA71E, 0xFFFF, 0xFFFF, "Raptor Lake-P Thunderbolt 4 USB Controller(0xA71E)"},
+{0x8086, 0xA71E, 0x1028, 0x0C06, "Precision 3580(0x1028-0x0C06)"},
{0x8086, 0xA720, 0xFFFF, 0xFFFF, "Raptor Lake-P [UHD Graphics](0xA720)"},
{0x8086, 0xA721, 0xFFFF, 0xFFFF, "Raptor Lake-P [UHD Graphics](0xA721)"},
{0x8086, 0xA72F, 0xFFFF, 0xFFFF, "Raptor Lake-P Thunderbolt 4 PCI Express Root Port #2(0xA72F)"},
{0x8086, 0xA73E, 0xFFFF, 0xFFFF, "Raptor Lake-P Thunderbolt 4 NHI #0(0xA73E)"},
+{0x8086, 0xA73E, 0x1028, 0x0C06, "Precision 3580(0x1028-0x0C06)"},
{0x8086, 0xA74D, 0xFFFF, 0xFFFF, "Raptor Lake PCIe 4.0 Graphics Port(0xA74D)"},
{0x8086, 0xA74F, 0xFFFF, 0xFFFF, "GNA Scoring Accelerator module(0xA74F)"},
+{0x8086, 0xA74F, 0x1028, 0x0C06, "Precision 3580(0x1028-0x0C06)"},
{0x8086, 0xA76D, 0xFFFF, 0xFFFF, "Raptor Lake-P Thunderbolt 4 NHI #1(0xA76D)"},
{0x8086, 0xA76E, 0xFFFF, 0xFFFF, "Raptor Lake-P Thunderbolt 4 PCI Express Root Port #0(0xA76E)"},
{0x8086, 0xA77D, 0xFFFF, 0xFFFF, "Raptor Lake Crashlog and Telemetry(0xA77D)"},
+{0x8086, 0xA77D, 0x1028, 0x0C06, "Precision 3580(0x1028-0x0C06)"},
{0x8086, 0xA77F, 0xFFFF, 0xFFFF, "Volume Management Device NVMe RAID Controller Intel Corporation(0xA77F)"},
{0x8086, 0xA780, 0xFFFF, 0xFFFF, "Raptor Lake-S GT1 [UHD Graphics 770](0xA780)"},
{0x8086, 0xA781, 0xFFFF, 0xFFFF, "Raptor Lake-S UHD Graphics(0xA781)"},
@@ -42108,6 +42568,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0xA78A, 0xFFFF, 0xFFFF, "Raptor Lake-S UHD Graphics(0xA78A)"},
{0x8086, 0xA78B, 0xFFFF, 0xFFFF, "Raptor Lake-S UHD Graphics(0xA78B)"},
{0x8086, 0xA7A0, 0xFFFF, 0xFFFF, "Raptor Lake-P [Iris Xe Graphics](0xA7A0)"},
+{0x8086, 0xA7A0, 0x1028, 0x0C06, "Precision 3580(0x1028-0x0C06)"},
{0x8086, 0xA7A1, 0xFFFF, 0xFFFF, "Raptor Lake-P [Iris Xe Graphics](0xA7A1)"},
{0x8086, 0xA7A8, 0xFFFF, 0xFFFF, "Raptor Lake-P [UHD Graphics](0xA7A8)"},
{0x8086, 0xA7A9, 0xFFFF, 0xFFFF, "Raptor Lake-P [UHD Graphics](0xA7A9)"},
@@ -42115,8 +42576,37 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0xA7AB, 0xFFFF, 0xFFFF, "Raptor Lake-P [Intel Graphics](0xA7AB)"},
{0x8086, 0xA7AC, 0xFFFF, 0xFFFF, "Raptor Lake-U [Intel Graphics](0xA7AC)"},
{0x8086, 0xA7AD, 0xFFFF, 0xFFFF, "Raptor Lake-U [Intel Graphics](0xA7AD)"},
+{0x8086, 0xA806, 0xFFFF, 0xFFFF, "Lunar Lake-M LPC/eSPI Controller(0xA806)"},
+{0x8086, 0xA822, 0xFFFF, 0xFFFF, "Lunar Lake-M SMbus Controller(0xA822)"},
+{0x8086, 0xA823, 0xFFFF, 0xFFFF, "Lunar Lake-M SPI Controller(0xA823)"},
+{0x8086, 0xA824, 0xFFFF, 0xFFFF, "Lunar Lake-M Trace Hub(0xA824)"},
+{0x8086, 0xA825, 0xFFFF, 0xFFFF, "Lunar Lake-M Serial IO UART Controller #0(0xA825)"},
+{0x8086, 0xA826, 0xFFFF, 0xFFFF, "Lunar Lake-M Serial IO UART Controller #1(0xA826)"},
+{0x8086, 0xA827, 0xFFFF, 0xFFFF, "Lunar Lake-M Serial IO SPI Controller #0(0xA827)"},
+{0x8086, 0xA828, 0xFFFF, 0xFFFF, "Lunar Lake-M HD Audio Controller(0xA828)"},
+{0x8086, 0xA830, 0xFFFF, 0xFFFF, "Lunar Lake-M Serial IO SPI Controller #1(0xA830)"},
+{0x8086, 0xA831, 0xFFFF, 0xFFFF, "Lunar Lake-M Thunderbolt 4 USB Controller(0xA831)"},
+{0x8086, 0xA833, 0xFFFF, 0xFFFF, "Lunar Lake-M Thunderbolt 4 NHI #0(0xA833)"},
+{0x8086, 0xA834, 0xFFFF, 0xFFFF, "Lunar Lake-M Thunderbolt 4 NHI #1(0xA834)"},
+{0x8086, 0xA838, 0xFFFF, 0xFFFF, "Lunar Lake-M PCI Express Root Port #1(0xA838)"},
+{0x8086, 0xA839, 0xFFFF, 0xFFFF, "Lunar Lake-M PCI Express Root Port #2(0xA839)"},
+{0x8086, 0xA83A, 0xFFFF, 0xFFFF, "Lunar Lake-M PCI Express Root Port #3(0xA83A)"},
+{0x8086, 0xA83B, 0xFFFF, 0xFFFF, "Lunar Lake-M PCI Express Root Port #4(0xA83B)"},
+{0x8086, 0xA83C, 0xFFFF, 0xFFFF, "Lunar Lake-M PCI Express Root Port #5(0xA83C)"},
+{0x8086, 0xA83D, 0xFFFF, 0xFFFF, "Lunar Lake-M PCI Express Root Port #6(0xA83D)"},
+{0x8086, 0xA845, 0xFFFF, 0xFFFF, "Lunar Lake-M Integrated Sensor Hub(0xA845)"},
+{0x8086, 0xA847, 0xFFFF, 0xFFFF, "Lunar Lake-M UFS Controller(0xA847)"},
+{0x8086, 0xA84E, 0xFFFF, 0xFFFF, "Lunar Lake-M Thunderbolt 4 PCI Express Root Port #0(0xA84E)"},
+{0x8086, 0xA84F, 0xFFFF, 0xFFFF, "Lunar Lake-M Thunderbolt 4 PCI Express Root Port #1(0xA84F)"},
+{0x8086, 0xA860, 0xFFFF, 0xFFFF, "Lunar Lake-M Thunderbolt 4 PCI Express Root Port #2(0xA860)"},
+{0x8086, 0xA878, 0xFFFF, 0xFFFF, "Lunar Lake-M Serial IO I2C Controller #0(0xA878)"},
+{0x8086, 0xA879, 0xFFFF, 0xFFFF, "Lunar Lake-M Serial IO I2C Controller #1(0xA879)"},
+{0x8086, 0xA87A, 0xFFFF, 0xFFFF, "Lunar Lake-M Serial IO I2C Controller #2(0xA87A)"},
+{0x8086, 0xA87B, 0xFFFF, 0xFFFF, "Lunar Lake-M Serial IO I2C Controller #3(0xA87B)"},
+{0x8086, 0xA87D, 0xFFFF, 0xFFFF, "Lunar Lake-M USB 3.2 Gen 2x1 xHCI Host Controller(0xA87D)"},
{0x8086, 0xABC0, 0xFFFF, 0xFFFF, "Omni-Path Fabric Switch Silicon 100 Series(0xABC0)"},
{0x8086, 0xAD0B, 0xFFFF, 0xFFFF, "Volume Management Device NVMe RAID Controller Intel Corporation(0xAD0B)"},
+{0x8086, 0xAD1D, 0xFFFF, 0xFFFF, "Arrow Lake NPU(0xAD1D)"},
{0x8086, 0xB152, 0xFFFF, 0xFFFF, "21152 PCI-to-PCI Bridge(0xB152)"},
{0x8086, 0xB152, 0x8086, 0xB152, "21152 PCI-to-PCI Bridge(0x8086-0xB152)"},
{0x8086, 0xB154, 0xFFFF, 0xFFFF, "21154 PCI-to-PCI Bridge(0xB154)"},
@@ -42162,11 +42652,18 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0xFAF0, 0xFFFF, 0xFFFF, "SSD 665p Series [Neptune Harbor Refresh](0xFAF0)"},
}; /* pci_vid_8086[] */
-pci_id_t pci_vid_8088[] = {
+static pci_id_t const pci_vid_8088[] = {
{0x8088, 0xFFFF, 0xFFFF, 0xFFFF, "Beijing Wangxun Technology Co., Ltd.(0x8088)"},
{0x8088, 0x0100, 0xFFFF, 0xFFFF, "WX1860AL-W Gigabit Ethernet Controller(0x0100)"},
{0x8088, 0x0101, 0xFFFF, 0xFFFF, "WX1860A2 Gigabit Ethernet Controller(0x0101)"},
+{0x8088, 0x0101, 0x4C52, 0x2024, "LRES2024PT Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x2024)"},
+{0x8088, 0x0101, 0x4C52, 0x2025, "LRES2025PT Quad-port 1Gb Ethernet Network Adapter(0x4C52-0x2025)"},
+{0x8088, 0x0101, 0x4C52, 0x2027, "LRES2027PF Dual-port 1Gb Ethernet Server Adapter(0x4C52-0x2027)"},
+{0x8088, 0x0101, 0x4C52, 0x3018, "LRES3018PT Dual-port 1Gb Ethernet Server Adapter for OCP(0x4C52-0x3018)"},
{0x8088, 0x0101, 0x8088, 0x0201, "Dual-Port Ethernet Network Adaptor SF200T(0x8088-0x0201)"},
+{0x8088, 0x0101, 0x8088, 0x0501, "Dual-Port Ethernet Network Adapter SF200T-C101(0x8088-0x0501)"},
+{0x8088, 0x0101, 0x8088, 0x0901, "Dual-Port Ethernet Network Adapter SF200T-B401(0x8088-0x0901)"},
+{0x8088, 0x0101, 0x8088, 0x0B01, "Dual-Port Ethernet Network Adapter SF200T-B402(0x8088-0x0B01)"},
{0x8088, 0x0101, 0x8088, 0x4201, "Dual-Port Ethernet Network Adaptor SF200T (WOL)(0x8088-0x4201)"},
{0x8088, 0x0101, 0x8088, 0x8201, "Dual-Port Ethernet Network Adaptor SF200T (NCSI)(0x8088-0x8201)"},
{0x8088, 0x0101, 0x8088, 0xC201, "Dual-Port Ethernet Network Adaptor SF200T (WOL, NCSI)(0x8088-0xC201)"},
@@ -42174,8 +42671,12 @@ pci_id_t pci_vid_8088[] = {
{0x8088, 0x0102, 0x8088, 0x0210, "Dual-Port Ethernet Network Adaptor SF200T-S(0x8088-0x0210)"},
{0x8088, 0x0103, 0xFFFF, 0xFFFF, "WX1860A4 Gigabit Ethernet Controller(0x0103)"},
{0x8088, 0x0103, 0x1BD4, 0x009E, "ENPW2100-T4(0x1BD4-0x009E)"},
+{0x8088, 0x0103, 0x4C52, 0x2028, "LRES2028PF Quad-port 1Gb Ethernet Server Adapter(0x4C52-0x2028)"},
+{0x8088, 0x0103, 0x4C52, 0x3019, "LRES3019PT Quad-port 1Gb Ethernet Server Adapter for OCP(0x4C52-0x3019)"},
{0x8088, 0x0103, 0x8088, 0x0401, "Qual-Port Ethernet Network Adaptor SF400T(0x8088-0x0401)"},
{0x8088, 0x0103, 0x8088, 0x0440, "Qual-Port Ethernet Network Adaptor SF400-OCP(0x8088-0x0440)"},
+{0x8088, 0x0103, 0x8088, 0x0A01, "Quad-Port Ethernet Network Adapter SF400T-B401(0x8088-0x0A01)"},
+{0x8088, 0x0103, 0x8088, 0x0C01, "Quad-Port Ethernet Network Adapter SF400T-B402(0x8088-0x0C01)"},
{0x8088, 0x0103, 0x8088, 0x4401, "Quad-Port Ethernet Network Adapter SF400T (WOL)(0x8088-0x4401)"},
{0x8088, 0x0103, 0x8088, 0x8103, "Quad-Port Ethernet Network Adaptor SF400T (NCSI)(0x8088-0x8103)"},
{0x8088, 0x0103, 0x8088, 0x8401, "Quad-Port Ethernet Network Adapter SF400T (NCSI)(0x8088-0x8401)"},
@@ -42199,6 +42700,8 @@ pci_id_t pci_vid_8088[] = {
{0x8088, 0x0108, 0x8088, 0x0420, "Qual-Port Ethernet Network Adaptor SF400HT-S(0x8088-0x0420)"},
{0x8088, 0x0109, 0xFFFF, 0xFFFF, "WX1860-LC Gigabit Ethernet Controller(0x0109)"},
{0x8088, 0x010A, 0xFFFF, 0xFFFF, "WX1860A1 Gigabit Ethernet Controller(0x010A)"},
+{0x8088, 0x010A, 0x4C52, 0x2023, "LRES2034PT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2023)"},
+{0x8088, 0x010A, 0x4C52, 0x2026, "LRES2026PF Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2026)"},
{0x8088, 0x010B, 0xFFFF, 0xFFFF, "WX1860AL1 Gigabit Ethernet Controller(0x010B)"},
{0x8088, 0x010B, 0x8088, 0x0102, "Single-Port Ethernet Network Adaptor SF100HT(0x8088-0x0102)"},
{0x8088, 0x010B, 0x8088, 0x4102, "Single-Port Ethernet Network Adaptor SF100HT (WOL)(0x8088-0x4102)"},
@@ -42215,6 +42718,9 @@ pci_id_t pci_vid_8088[] = {
{0x8088, 0x1001, 0xFFFF, 0xFFFF, "Ethernet Controller RP1000 for 10GbE SFP+(0x1001)"},
{0x8088, 0x1001, 0x1BD4, 0x0084, "Ethernet Controller SP1000A for 10GbE SFP+(lldp)(0x1BD4-0x0084)"},
{0x8088, 0x1001, 0x1BD4, 0x0085, "Ethernet Controller SP1000A for 10GBASE-T(0x1BD4-0x0085)"},
+{0x8088, 0x1001, 0x4C52, 0x1002, "LRES1002PF Dual-port 10Gb Ethernet Server Adapter(0x4C52-0x1002)"},
+{0x8088, 0x1001, 0x4C52, 0x1003, "LRES1003PF Single-port 10Gb Ethernet Server Adapter(0x4C52-0x1003)"},
+{0x8088, 0x1001, 0x4C52, 0x3001, "LRES3001PF Dual-port 10Gb Ethernet Server Adapter for OCP(0x4C52-0x3001)"},
{0x8088, 0x1001, 0x8088, 0x0000, "Ethernet Network Adaptor RP1000 for 10GbE SFP+(0x8088-0x0000)"},
{0x8088, 0x1001, 0x8088, 0x0300, "Ethernet Network Adaptor RP1000-A03 for 10GbE SFP+(0x8088-0x0300)"},
{0x8088, 0x1001, 0x8088, 0x0400, "Ethernet Network Adaptor RP1000-A04 for 10GbE SFP+(0x8088-0x0400)"},
@@ -42225,90 +42731,98 @@ pci_id_t pci_vid_8088[] = {
{0x8088, 0x2001, 0x8088, 0x2400, "Ethernet Network Adaptor RP2000-A04 for 10GbE SFP+(0x8088-0x2400)"},
}; /* pci_vid_8088[] */
-pci_id_t pci_vid_80EE[] = {
+static pci_id_t const pci_vid_80EE[] = {
{0x80EE, 0xFFFF, 0xFFFF, 0xFFFF, "InnoTek Systemberatung GmbH(0x80EE)"},
{0x80EE, 0xBEEF, 0xFFFF, 0xFFFF, "VirtualBox Graphics Adapter(0xBEEF)"},
{0x80EE, 0xCAFE, 0xFFFF, 0xFFFF, "VirtualBox Guest Service(0xCAFE)"},
}; /* pci_vid_80EE[] */
-pci_id_t pci_vid_8322[] = {
+static pci_id_t const pci_vid_8322[] = {
{0x8322, 0xFFFF, 0xFFFF, 0xFFFF, "Sodick America Corp.(0x8322)"},
}; /* pci_vid_8322[] */
-pci_id_t pci_vid_8384[] = {
+static pci_id_t const pci_vid_8384[] = {
{0x8384, 0xFFFF, 0xFFFF, 0xFFFF, "SigmaTel(0x8384)"},
}; /* pci_vid_8384[] */
-pci_id_t pci_vid_8401[] = {
+static pci_id_t const pci_vid_8401[] = {
{0x8401, 0xFFFF, 0xFFFF, 0xFFFF, "TRENDware International Inc.(0x8401)"},
}; /* pci_vid_8401[] */
-pci_id_t pci_vid_8510[] = {
+static pci_id_t const pci_vid_8510[] = {
{0x8510, 0xFFFF, 0xFFFF, 0xFFFF, "Sietium Semiconductor Co., Ltd.(0x8510)"},
{0x8510, 0x0201, 0xFFFF, 0xFFFF, "GenBu02 [GB2062-PCIe-C0](0x0201)"},
}; /* pci_vid_8510[] */
-pci_id_t pci_vid_8686[] = {
+static pci_id_t const pci_vid_8686[] = {
{0x8686, 0xFFFF, 0xFFFF, 0xFFFF, "SAP(0x8686)"},
{0x8686, 0x1010, 0xFFFF, 0xFFFF, "vSMP Foundation controller [vSMP CTL](0x1010)"},
{0x8686, 0x1011, 0xFFFF, 0xFFFF, "vSMP Foundation MEX/FLX controller [vSMP CTL](0x1011)"},
}; /* pci_vid_8686[] */
-pci_id_t pci_vid_8800[] = {
+static pci_id_t const pci_vid_8800[] = {
{0x8800, 0xFFFF, 0xFFFF, 0xFFFF, "Trigem Computer Inc.(0x8800)"},
{0x8800, 0x2008, 0xFFFF, 0xFFFF, "Video assistant component(0x2008)"},
}; /* pci_vid_8800[] */
-pci_id_t pci_vid_8820[] = {
+static pci_id_t const pci_vid_8820[] = {
{0x8820, 0xFFFF, 0xFFFF, 0xFFFF, "Stryker Corporation(0x8820)"},
{0x8820, 0x2724, 0xFFFF, 0xFFFF, "Mako Front Side Motor Controller [cPCI](0x2724)"},
}; /* pci_vid_8820[] */
-pci_id_t pci_vid_8848[] = {
+static pci_id_t const pci_vid_8848[] = {
{0x8848, 0xFFFF, 0xFFFF, 0xFFFF, "MUCSE(0x8848)"},
{0x8848, 0x1000, 0xFFFF, 0xFFFF, "Ethernet Controller N10 Series for 10GbE or 40GbE (Dual-port)(0x1000)"},
{0x8848, 0x1000, 0x8848, 0x8410, "Ethernet Network Adapter N10G-X2-DC for 10GbE SFP+ 2-port(0x8848-0x8410)"},
{0x8848, 0x1001, 0xFFFF, 0xFFFF, "Ethernet Controller N400 Series for 1GbE (Dual-port)(0x1001)"},
{0x8848, 0x1003, 0xFFFF, 0xFFFF, "Ethernet Controller N400 Series for 10GbE (Single-port)(0x1003)"},
+{0x8848, 0x1003, 0x4C52, 0x1050, "LRES1050PF Single-port 10Gb Ethernet Network Adapter(0x4C52-0x1050)"},
{0x8848, 0x1020, 0xFFFF, 0xFFFF, "Ethernet Controller N10 Series for 10GbE (Quad-port)(0x1020)"},
+{0x8848, 0x1020, 0x4C52, 0x1030, "LRES1030PF Quad-port 10Gb Ethernet Server Adapter(0x4C52-0x1030)"},
+{0x8848, 0x1020, 0x4C52, 0x1031, "LRES1031PF Dual-port 10Gb Ethernet Server Adapter(0x4C52-0x1031)"},
+{0x8848, 0x1020, 0x4C52, 0x3031, "LRES3031PF Quad-port 10Gb Ethernet Server Adapter for OCP(0x4C52-0x3031)"},
{0x8848, 0x1020, 0x8848, 0x8451, "Ethernet Network Adapter N10G-X4-QC for 10GbE SFP+ 4-port(0x8848-0x8451)"},
{0x8848, 0x1021, 0xFFFF, 0xFFFF, "Ethernet Controller N400 Series for 1GbE (Quad-port)(0x1021)"},
+{0x8848, 0x1021, 0x4C52, 0x1032, "LRES1032PF Quad-port 1Gb Ethernet Network Adapter(0x4C52-0x1032)"},
+{0x8848, 0x1021, 0x4C52, 0x1039, "LRES1039PT Quad-port 1Gb Ethernet Network Adapter(0x4C52-0x1039)"},
{0x8848, 0x1060, 0xFFFF, 0xFFFF, "Ethernet Controller N10 Series for 1GbE or 10GbE (8-port)(0x1060)"},
{0x8848, 0x1080, 0xFFFF, 0xFFFF, "Ethernet Controller N10 Series Virtual Function(0x1080)"},
{0x8848, 0x1081, 0xFFFF, 0xFFFF, "Ethernet Controller N400 Series Virtual Function(0x1081)"},
{0x8848, 0x1083, 0xFFFF, 0xFFFF, "Ethernet Controller N400 Series Virtual Function(0x1083)"},
{0x8848, 0x8308, 0xFFFF, 0xFFFF, "Ethernet Controller N500 Series for 1GbE (Quad-port, Copper RJ45)(0x8308)"},
+{0x8848, 0x8308, 0x4C52, 0x1048, "LRES1048PT Quad-port 1Gb Ethernet Network Adapter(0x4C52-0x1048)"},
{0x8848, 0x8309, 0xFFFF, 0xFFFF, "Ethernet Controller N500 Series Virtual Function(0x8309)"},
{0x8848, 0x8318, 0xFFFF, 0xFFFF, "Ethernet Controller N500 Series for 1GbE (Dual-port, Copper RJ45)(0x8318)"},
+{0x8848, 0x8318, 0x4C52, 0x1049, "LRES1049PT Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x1049)"},
}; /* pci_vid_8848[] */
-pci_id_t pci_vid_8866[] = {
+static pci_id_t const pci_vid_8866[] = {
{0x8866, 0xFFFF, 0xFFFF, 0xFFFF, "T-Square Design Inc.(0x8866)"},
}; /* pci_vid_8866[] */
-pci_id_t pci_vid_8888[] = {
+static pci_id_t const pci_vid_8888[] = {
{0x8888, 0xFFFF, 0xFFFF, 0xFFFF, "Silicon Magic(0x8888)"},
}; /* pci_vid_8888[] */
-pci_id_t pci_vid_8912[] = {
+static pci_id_t const pci_vid_8912[] = {
{0x8912, 0xFFFF, 0xFFFF, 0xFFFF, "TRX(0x8912)"},
}; /* pci_vid_8912[] */
-pci_id_t pci_vid_8C4A[] = {
+static pci_id_t const pci_vid_8C4A[] = {
{0x8C4A, 0xFFFF, 0xFFFF, 0xFFFF, "Winbond(0x8C4A)"},
{0x8C4A, 0x1980, 0xFFFF, 0xFFFF, "W89C940 misprogrammed [ne2k](0x1980)"},
}; /* pci_vid_8C4A[] */
-pci_id_t pci_vid_8E0E[] = {
+static pci_id_t const pci_vid_8E0E[] = {
{0x8E0E, 0xFFFF, 0xFFFF, 0xFFFF, "Computone Corporation(0x8E0E)"},
}; /* pci_vid_8E0E[] */
-pci_id_t pci_vid_8E2E[] = {
+static pci_id_t const pci_vid_8E2E[] = {
{0x8E2E, 0xFFFF, 0xFFFF, 0xFFFF, "KTI(0x8E2E)"},
{0x8E2E, 0x3000, 0xFFFF, 0xFFFF, "ET32P2(0x3000)"},
}; /* pci_vid_8E2E[] */
-pci_id_t pci_vid_9004[] = {
+static pci_id_t const pci_vid_9004[] = {
{0x9004, 0xFFFF, 0xFFFF, 0xFFFF, "Adaptec(0x9004)"},
{0x9004, 0x0078, 0xFFFF, 0xFFFF, "AHA-2940U_CN(0x0078)"},
{0x9004, 0x1078, 0xFFFF, 0xFFFF, "AIC-7810(0x1078)"},
@@ -42421,7 +42935,7 @@ pci_id_t pci_vid_9004[] = {
{0x9004, 0xEC78, 0xFFFF, 0xFFFF, "AHA-4944W/UW(0xEC78)"},
}; /* pci_vid_9004[] */
-pci_id_t pci_vid_9005[] = {
+static pci_id_t const pci_vid_9005[] = {
{0x9005, 0xFFFF, 0xFFFF, 0xFFFF, "Adaptec(0x9005)"},
{0x9005, 0x0010, 0xFFFF, 0xFFFF, "AHA-2940U2/U2W(0x0010)"},
{0x9005, 0x0010, 0x9005, 0x2180, "AHA-2940U2 SCSI Controller(0x9005-0x2180)"},
@@ -42685,6 +43199,7 @@ pci_id_t pci_vid_9005[] = {
{0x9005, 0x028F, 0x1D49, 0x0220, "ThinkSystem 4350-8i SAS/SATA 12Gb HBA(0x1D49-0x0220)"},
{0x9005, 0x028F, 0x1D49, 0x0221, "ThinkSystem 4350-16i SAS/SATA 12Gb HBA(0x1D49-0x0221)"},
{0x9005, 0x028F, 0x1D49, 0x0520, "ThinkSystem RAID 5350-8i PCIe 12Gb Adapter(0x1D49-0x0520)"},
+{0x9005, 0x028F, 0x1D49, 0x0522, "ThinkSystem RAID 5350-8i PCIe 12Gb Internal Adapter(0x1D49-0x0522)"},
{0x9005, 0x028F, 0x1D49, 0x0620, "ThinkSystem RAID 9350-8i 2GB Flash PCIe 12Gb Adapter(0x1D49-0x0620)"},
{0x9005, 0x028F, 0x1D49, 0x0621, "ThinkSystem RAID 9350-8i 2GB Flash PCIe 12Gb Internal Adapter(0x1D49-0x0621)"},
{0x9005, 0x028F, 0x1D49, 0x0622, "ThinkSystem RAID 9350-16i 4GB Flash PCIe 12Gb Adapter(0x1D49-0x0622)"},
@@ -42791,7 +43306,13 @@ pci_id_t pci_vid_9005[] = {
{0x9005, 0x801F, 0x1734, 0x1011, "PRIMERGY RX300 onboard SCSI(0x1734-0x1011)"},
{0x9005, 0x8080, 0xFFFF, 0xFFFF, "ASC-29320A U320 w/HostRAID(0x8080)"},
{0x9005, 0x8081, 0xFFFF, 0xFFFF, "PMC-Sierra PM8001 SAS HBA [Series 6H](0x8081)"},
+{0x9005, 0x8081, 0x9005, 0x0400, "Adaptec SAS HBA 6405H(0x9005-0x0400)"},
+{0x9005, 0x8081, 0x9005, 0x0800, "Adaptec SAS HBA 6805H(0x9005-0x0800)"},
{0x9005, 0x8088, 0xFFFF, 0xFFFF, "PMC-Sierra PM8018 SAS HBA [Series 7H](0x8088)"},
+{0x9005, 0x8088, 0x9005, 0x0008, "Adaptec SAS HBA 7085H(0x9005-0x0008)"},
+{0x9005, 0x8088, 0x9005, 0x0016, "Adaptec SAS HBA 70165H(0x9005-0x0016)"},
+{0x9005, 0x8088, 0x9005, 0x0800, "Adaptec SAS HBA 7805H(0x9005-0x0800)"},
+{0x9005, 0x8088, 0x9005, 0x1600, "Adaptec SAS HBA 71605H(0x9005-0x1600)"},
{0x9005, 0x8089, 0xFFFF, 0xFFFF, "PMC-Sierra PM8019 SAS encryption HBA [Series 7He](0x8089)"},
{0x9005, 0x808F, 0xFFFF, 0xFFFF, "AIC-7901 U320 w/HostRAID(0x808F)"},
{0x9005, 0x808F, 0x1028, 0x0168, "Precision Workstation 670 Mainboard(0x1028-0x0168)"},
@@ -42810,37 +43331,37 @@ pci_id_t pci_vid_9005[] = {
{0x9005, 0x809F, 0xFFFF, 0xFFFF, "AIC-7902 U320 w/HostRAID(0x809F)"},
}; /* pci_vid_9005[] */
-pci_id_t pci_vid_907F[] = {
+static pci_id_t const pci_vid_907F[] = {
{0x907F, 0xFFFF, 0xFFFF, 0xFFFF, "Atronics(0x907F)"},
{0x907F, 0x2015, 0xFFFF, 0xFFFF, "IDE-2015PL(0x2015)"},
}; /* pci_vid_907F[] */
-pci_id_t pci_vid_919A[] = {
+static pci_id_t const pci_vid_919A[] = {
{0x919A, 0xFFFF, 0xFFFF, 0xFFFF, "Gigapixel Corp(0x919A)"},
}; /* pci_vid_919A[] */
-pci_id_t pci_vid_9412[] = {
+static pci_id_t const pci_vid_9412[] = {
{0x9412, 0xFFFF, 0xFFFF, 0xFFFF, "Holtek(0x9412)"},
{0x9412, 0x6565, 0xFFFF, 0xFFFF, "6565(0x6565)"},
}; /* pci_vid_9412[] */
-pci_id_t pci_vid_9413[] = {
+static pci_id_t const pci_vid_9413[] = {
{0x9413, 0xFFFF, 0xFFFF, 0xFFFF, "Softlogic Co., Ltd.(0x9413)"},
{0x9413, 0x6010, 0xFFFF, 0xFFFF, "SOLO6010 MPEG-4 Video encoder/decoder(0x6010)"},
{0x9413, 0x6110, 0xFFFF, 0xFFFF, "SOLO6110 H.264 Video encoder/decoder(0x6110)"},
}; /* pci_vid_9413[] */
-pci_id_t pci_vid_9618[] = {
+static pci_id_t const pci_vid_9618[] = {
{0x9618, 0xFFFF, 0xFFFF, 0xFFFF, "JusonTech Corporation(0x9618)"},
{0x9618, 0x0001, 0xFFFF, 0xFFFF, "JusonTech Gigabit Ethernet Controller(0x0001)"},
}; /* pci_vid_9618[] */
-pci_id_t pci_vid_9699[] = {
+static pci_id_t const pci_vid_9699[] = {
{0x9699, 0xFFFF, 0xFFFF, 0xFFFF, "Omni Media Technology Inc(0x9699)"},
{0x9699, 0x6565, 0xFFFF, 0xFFFF, "6565(0x6565)"},
}; /* pci_vid_9699[] */
-pci_id_t pci_vid_9710[] = {
+static pci_id_t const pci_vid_9710[] = {
{0x9710, 0xFFFF, 0xFFFF, 0xFFFF, "MosChip Semiconductor Technology Ltd.(0x9710)"},
{0x9710, 0x9250, 0xFFFF, 0xFFFF, "PCI-to-PCI bridge [MCS9250](0x9250)"},
{0x9710, 0x9805, 0xFFFF, 0xFFFF, "PCI 1 port parallel adapter(0x9805)"},
@@ -42866,22 +43387,22 @@ pci_id_t pci_vid_9710[] = {
{0x9710, 0x9990, 0xFFFF, 0xFFFF, "MCS9990 PCIe to 4-Port USB 2.0 Host Controller(0x9990)"},
}; /* pci_vid_9710[] */
-pci_id_t pci_vid_9850[] = {
+static pci_id_t const pci_vid_9850[] = {
{0x9850, 0xFFFF, 0xFFFF, 0xFFFF, "3Com (wrong ID)(0x9850)"},
}; /* pci_vid_9850[] */
-pci_id_t pci_vid_9902[] = {
+static pci_id_t const pci_vid_9902[] = {
{0x9902, 0xFFFF, 0xFFFF, 0xFFFF, "Stargen Inc.(0x9902)"},
{0x9902, 0x0001, 0xFFFF, 0xFFFF, "SG2010 PCI over Starfabric Bridge(0x0001)"},
{0x9902, 0x0002, 0xFFFF, 0xFFFF, "SG2010 PCI to Starfabric Gateway(0x0002)"},
{0x9902, 0x0003, 0xFFFF, 0xFFFF, "SG1010 Starfabric Switch and PCI Bridge(0x0003)"},
}; /* pci_vid_9902[] */
-pci_id_t pci_vid_9A11[] = {
+static pci_id_t const pci_vid_9A11[] = {
{0x9A11, 0xFFFF, 0xFFFF, 0xFFFF, "Tiger Lake-H Gaussian & Neural Accelerator(0x9A11)"},
}; /* pci_vid_9A11[] */
-pci_id_t pci_vid_9D32[] = {
+static pci_id_t const pci_vid_9D32[] = {
{0x9D32, 0xFFFF, 0xFFFF, 0xFFFF, "Beijing Starblaze Technology Co. Ltd.(0x9D32)"},
{0x9D32, 0x0000, 0xFFFF, 0xFFFF, "STAR1000 PCIe NVMe SSD Controller(0x0000)"},
{0x9D32, 0x1000, 0xFFFF, 0xFFFF, "STAR1000 PCIe NVMe SSD Controller(0x1000)"},
@@ -42902,140 +43423,140 @@ pci_id_t pci_vid_9D32[] = {
{0x9D32, 0xFC22, 0xFFFF, 0xFFFF, "Asgard AN3+ NVMe SSD(0xFC22)"},
}; /* pci_vid_9D32[] */
-pci_id_t pci_vid_A000[] = {
+static pci_id_t const pci_vid_A000[] = {
{0xA000, 0xFFFF, 0xFFFF, 0xFFFF, "Asix Electronics Corporation (Wrong ID)(0xA000)"},
}; /* pci_vid_A000[] */
-pci_id_t pci_vid_A0A0[] = {
+static pci_id_t const pci_vid_A0A0[] = {
{0xA0A0, 0xFFFF, 0xFFFF, 0xFFFF, "AOPEN Inc.(0xA0A0)"},
}; /* pci_vid_A0A0[] */
-pci_id_t pci_vid_A0F1[] = {
+static pci_id_t const pci_vid_A0F1[] = {
{0xA0F1, 0xFFFF, 0xFFFF, 0xFFFF, "UNISYS Corporation(0xA0F1)"},
}; /* pci_vid_A0F1[] */
-pci_id_t pci_vid_A200[] = {
+static pci_id_t const pci_vid_A200[] = {
{0xA200, 0xFFFF, 0xFFFF, 0xFFFF, "NEC Corporation(0xA200)"},
}; /* pci_vid_A200[] */
-pci_id_t pci_vid_A259[] = {
+static pci_id_t const pci_vid_A259[] = {
{0xA259, 0xFFFF, 0xFFFF, 0xFFFF, "Hewlett Packard(0xA259)"},
}; /* pci_vid_A259[] */
-pci_id_t pci_vid_A25B[] = {
+static pci_id_t const pci_vid_A25B[] = {
{0xA25B, 0xFFFF, 0xFFFF, 0xFFFF, "Hewlett Packard GmbH PL24-MKT(0xA25B)"},
}; /* pci_vid_A25B[] */
-pci_id_t pci_vid_A304[] = {
+static pci_id_t const pci_vid_A304[] = {
{0xA304, 0xFFFF, 0xFFFF, 0xFFFF, "Sony(0xA304)"},
}; /* pci_vid_A304[] */
-pci_id_t pci_vid_A727[] = {
+static pci_id_t const pci_vid_A727[] = {
{0xA727, 0xFFFF, 0xFFFF, 0xFFFF, "3Com Corporation(0xA727)"},
{0xA727, 0x0013, 0xFFFF, 0xFFFF, "3CRPAG175 Wireless PC Card(0x0013)"},
{0xA727, 0x6803, 0xFFFF, 0xFFFF, "3CRDAG675B Wireless 11a/b/g Adapter(0x6803)"},
}; /* pci_vid_A727[] */
-pci_id_t pci_vid_AA00[] = {
+static pci_id_t const pci_vid_AA00[] = {
{0xAA00, 0xFFFF, 0xFFFF, 0xFFFF, "iTuner(0xAA00)"},
}; /* pci_vid_AA00[] */
-pci_id_t pci_vid_AA01[] = {
+static pci_id_t const pci_vid_AA01[] = {
{0xAA01, 0xFFFF, 0xFFFF, 0xFFFF, "iTuner(0xAA01)"},
}; /* pci_vid_AA01[] */
-pci_id_t pci_vid_AA02[] = {
+static pci_id_t const pci_vid_AA02[] = {
{0xAA02, 0xFFFF, 0xFFFF, 0xFFFF, "iTuner(0xAA02)"},
}; /* pci_vid_AA02[] */
-pci_id_t pci_vid_AA03[] = {
+static pci_id_t const pci_vid_AA03[] = {
{0xAA03, 0xFFFF, 0xFFFF, 0xFFFF, "iTuner(0xAA03)"},
}; /* pci_vid_AA03[] */
-pci_id_t pci_vid_AA04[] = {
+static pci_id_t const pci_vid_AA04[] = {
{0xAA04, 0xFFFF, 0xFFFF, 0xFFFF, "iTuner(0xAA04)"},
}; /* pci_vid_AA04[] */
-pci_id_t pci_vid_AA05[] = {
+static pci_id_t const pci_vid_AA05[] = {
{0xAA05, 0xFFFF, 0xFFFF, 0xFFFF, "iTuner(0xAA05)"},
}; /* pci_vid_AA05[] */
-pci_id_t pci_vid_AA06[] = {
+static pci_id_t const pci_vid_AA06[] = {
{0xAA06, 0xFFFF, 0xFFFF, 0xFFFF, "iTuner(0xAA06)"},
}; /* pci_vid_AA06[] */
-pci_id_t pci_vid_AA07[] = {
+static pci_id_t const pci_vid_AA07[] = {
{0xAA07, 0xFFFF, 0xFFFF, 0xFFFF, "iTuner(0xAA07)"},
}; /* pci_vid_AA07[] */
-pci_id_t pci_vid_AA08[] = {
+static pci_id_t const pci_vid_AA08[] = {
{0xAA08, 0xFFFF, 0xFFFF, 0xFFFF, "iTuner(0xAA08)"},
}; /* pci_vid_AA08[] */
-pci_id_t pci_vid_AA09[] = {
+static pci_id_t const pci_vid_AA09[] = {
{0xAA09, 0xFFFF, 0xFFFF, 0xFFFF, "iTuner(0xAA09)"},
}; /* pci_vid_AA09[] */
-pci_id_t pci_vid_AA0A[] = {
+static pci_id_t const pci_vid_AA0A[] = {
{0xAA0A, 0xFFFF, 0xFFFF, 0xFFFF, "iTuner(0xAA0A)"},
}; /* pci_vid_AA0A[] */
-pci_id_t pci_vid_AA0B[] = {
+static pci_id_t const pci_vid_AA0B[] = {
{0xAA0B, 0xFFFF, 0xFFFF, 0xFFFF, "iTuner(0xAA0B)"},
}; /* pci_vid_AA0B[] */
-pci_id_t pci_vid_AA0C[] = {
+static pci_id_t const pci_vid_AA0C[] = {
{0xAA0C, 0xFFFF, 0xFFFF, 0xFFFF, "iTuner(0xAA0C)"},
}; /* pci_vid_AA0C[] */
-pci_id_t pci_vid_AA0D[] = {
+static pci_id_t const pci_vid_AA0D[] = {
{0xAA0D, 0xFFFF, 0xFFFF, 0xFFFF, "iTuner(0xAA0D)"},
}; /* pci_vid_AA0D[] */
-pci_id_t pci_vid_AA0E[] = {
+static pci_id_t const pci_vid_AA0E[] = {
{0xAA0E, 0xFFFF, 0xFFFF, 0xFFFF, "iTuner(0xAA0E)"},
}; /* pci_vid_AA0E[] */
-pci_id_t pci_vid_AA0F[] = {
+static pci_id_t const pci_vid_AA0F[] = {
{0xAA0F, 0xFFFF, 0xFFFF, 0xFFFF, "iTuner(0xAA0F)"},
}; /* pci_vid_AA0F[] */
-pci_id_t pci_vid_AA42[] = {
+static pci_id_t const pci_vid_AA42[] = {
{0xAA42, 0xFFFF, 0xFFFF, 0xFFFF, "Scitex Digital Video(0xAA42)"},
}; /* pci_vid_AA42[] */
-pci_id_t pci_vid_AA55[] = {
+static pci_id_t const pci_vid_AA55[] = {
{0xAA55, 0xFFFF, 0xFFFF, 0xFFFF, "Ncomputing X300 PCI-Engine(0xAA55)"},
}; /* pci_vid_AA55[] */
-pci_id_t pci_vid_AAAA[] = {
+static pci_id_t const pci_vid_AAAA[] = {
{0xAAAA, 0xFFFF, 0xFFFF, 0xFFFF, "Adnaco Technology Inc.(0xAAAA)"},
{0xAAAA, 0x0001, 0xFFFF, 0xFFFF, "H1 PCIe over fiber optic host controller(0x0001)"},
{0xAAAA, 0x0002, 0xFFFF, 0xFFFF, "R1BP1 PCIe over fiber optic expansion chassis(0x0002)"},
}; /* pci_vid_AAAA[] */
-pci_id_t pci_vid_ABCD[] = {
+static pci_id_t const pci_vid_ABCD[] = {
{0xABCD, 0xFFFF, 0xFFFF, 0xFFFF, "Vadatech Inc.(0xABCD)"},
}; /* pci_vid_ABCD[] */
-pci_id_t pci_vid_AC1E[] = {
+static pci_id_t const pci_vid_AC1E[] = {
{0xAC1E, 0xFFFF, 0xFFFF, 0xFFFF, "Digital Receiver Technology Inc(0xAC1E)"},
}; /* pci_vid_AC1E[] */
-pci_id_t pci_vid_AC3D[] = {
+static pci_id_t const pci_vid_AC3D[] = {
{0xAC3D, 0xFFFF, 0xFFFF, 0xFFFF, "Actuality Systems(0xAC3D)"},
}; /* pci_vid_AC3D[] */
-pci_id_t pci_vid_AD00[] = {
+static pci_id_t const pci_vid_AD00[] = {
{0xAD00, 0xFFFF, 0xFFFF, 0xFFFF, "Alta Data Technologies LLC(0xAD00)"},
}; /* pci_vid_AD00[] */
-pci_id_t pci_vid_AECB[] = {
+static pci_id_t const pci_vid_AECB[] = {
{0xAECB, 0xFFFF, 0xFFFF, 0xFFFF, "Adrienne Electronics Corporation(0xAECB)"},
{0xAECB, 0x6250, 0xFFFF, 0xFFFF, "VITC/LTC Timecode Reader card [PCI-VLTC/RDR](0x6250)"},
}; /* pci_vid_AECB[] */
-pci_id_t pci_vid_AFFE[] = {
+static pci_id_t const pci_vid_AFFE[] = {
{0xAFFE, 0xFFFF, 0xFFFF, 0xFFFF, "Sirrix AG security technologies(0xAFFE)"},
{0xAFFE, 0x01E1, 0xFFFF, 0xFFFF, "PCI1E1 1-port ISDN E1 interface(0x01E1)"},
{0xAFFE, 0x02E1, 0xFFFF, 0xFFFF, "PCI2E1 2-port ISDN E1 interface(0x02E1)"},
@@ -43043,27 +43564,27 @@ pci_id_t pci_vid_AFFE[] = {
{0xAFFE, 0xDEAD, 0xFFFF, 0xFFFF, "Sirrix.PCI4S0 4-port ISDN S0 interface(0xDEAD)"},
}; /* pci_vid_AFFE[] */
-pci_id_t pci_vid_B100[] = {
+static pci_id_t const pci_vid_B100[] = {
{0xB100, 0xFFFF, 0xFFFF, 0xFFFF, "OpenVox Communication Co. Ltd.(0xB100)"},
}; /* pci_vid_B100[] */
-pci_id_t pci_vid_B10B[] = {
+static pci_id_t const pci_vid_B10B[] = {
{0xB10B, 0xFFFF, 0xFFFF, 0xFFFF, "Uakron PCI Project(0xB10B)"},
}; /* pci_vid_B10B[] */
-pci_id_t pci_vid_B1B3[] = {
+static pci_id_t const pci_vid_B1B3[] = {
{0xB1B3, 0xFFFF, 0xFFFF, 0xFFFF, "Shiva Europe Limited(0xB1B3)"},
}; /* pci_vid_B1B3[] */
-pci_id_t pci_vid_B1D9[] = {
+static pci_id_t const pci_vid_B1D9[] = {
{0xB1D9, 0xFFFF, 0xFFFF, 0xFFFF, "ATCOM Technology co., LTD.(0xB1D9)"},
}; /* pci_vid_B1D9[] */
-pci_id_t pci_vid_BD11[] = {
+static pci_id_t const pci_vid_BD11[] = {
{0xBD11, 0xFFFF, 0xFFFF, 0xFFFF, "Pinnacle Systems, Inc. (Wrong ID)(0xBD11)"},
}; /* pci_vid_BD11[] */
-pci_id_t pci_vid_BDBD[] = {
+static pci_id_t const pci_vid_BDBD[] = {
{0xBDBD, 0xFFFF, 0xFFFF, 0xFFFF, "Blackmagic Design(0xBDBD)"},
{0xBDBD, 0xA106, 0xFFFF, 0xFFFF, "Multibridge Extreme(0xA106)"},
{0xBDBD, 0xA117, 0xFFFF, 0xFFFF, "Intensity Pro(0xA117)"},
@@ -43103,57 +43624,59 @@ pci_id_t pci_vid_BDBD[] = {
{0xBDBD, 0xA1FF, 0xFFFF, 0xFFFF, "eGPU RX580(0xA1FF)"},
}; /* pci_vid_BDBD[] */
-pci_id_t pci_vid_C001[] = {
+static pci_id_t const pci_vid_C001[] = {
{0xC001, 0xFFFF, 0xFFFF, 0xFFFF, "TSI Telsys(0xC001)"},
}; /* pci_vid_C001[] */
-pci_id_t pci_vid_C0A9[] = {
+static pci_id_t const pci_vid_C0A9[] = {
{0xC0A9, 0xFFFF, 0xFFFF, 0xFFFF, "Micron/Crucial Technology(0xC0A9)"},
{0xC0A9, 0x2263, 0xFFFF, 0xFFFF, "P1 NVMe PCIe SSD[Frampton](0x2263)"},
{0xC0A9, 0x5403, 0xFFFF, 0xFFFF, "P1 NVMe PCIe SSD[Frampton2](0x5403)"},
{0xC0A9, 0x5407, 0xFFFF, 0xFFFF, "P5 Plus NVMe PCIe SSD(0x5407)"},
{0xC0A9, 0x540A, 0xFFFF, 0xFFFF, "P2 [Nick P2] / P3 / P3 Plus NVMe PCIe SSD (DRAM-less)(0x540A)"},
{0xC0A9, 0x5412, 0xFFFF, 0xFFFF, "P5 NVMe PCIe SSD[SlashP5](0x5412)"},
+{0xC0A9, 0x5415, 0xFFFF, 0xFFFF, "T500 NVMe PCIe SSD(0x5415)"},
+{0xC0A9, 0x5419, 0xFFFF, 0xFFFF, "T700 NVMe PCIe SSD(0x5419)"},
}; /* pci_vid_C0A9[] */
-pci_id_t pci_vid_C0DE[] = {
+static pci_id_t const pci_vid_C0DE[] = {
{0xC0DE, 0xFFFF, 0xFFFF, 0xFFFF, "Motorola(0xC0DE)"},
}; /* pci_vid_C0DE[] */
-pci_id_t pci_vid_C0FE[] = {
+static pci_id_t const pci_vid_C0FE[] = {
{0xC0FE, 0xFFFF, 0xFFFF, 0xFFFF, "Motion Engineering, Inc.(0xC0FE)"},
}; /* pci_vid_C0FE[] */
-pci_id_t pci_vid_CA01[] = {
+static pci_id_t const pci_vid_CA01[] = {
{0xCA01, 0xFFFF, 0xFFFF, 0xFFFF, "I-TEK OptoElectronics Co., LTD.(0xCA01)"},
{0xCA01, 0x0212, 0xFFFF, 0xFFFF, "Vulcan-CL CameraLink Frame Grabber(0x0212)"},
}; /* pci_vid_CA01[] */
-pci_id_t pci_vid_CA02[] = {
+static pci_id_t const pci_vid_CA02[] = {
{0xCA02, 0xFFFF, 0xFFFF, 0xFFFF, "I-TEK OptoElectronics Co., LTD.(0xCA02)"},
{0xCA02, 0x0213, 0xFFFF, 0xFFFF, "Vulcan-CXP Frame Grabber(0x0213)"},
}; /* pci_vid_CA02[] */
-pci_id_t pci_vid_CA3B[] = {
+static pci_id_t const pci_vid_CA3B[] = {
{0xCA3B, 0xFFFF, 0xFFFF, 0xFFFF, "Cambrionix Ltd.(0xCA3B)"},
}; /* pci_vid_CA3B[] */
-pci_id_t pci_vid_CA50[] = {
+static pci_id_t const pci_vid_CA50[] = {
{0xCA50, 0xFFFF, 0xFFFF, 0xFFFF, "Varian Australia Pty Ltd(0xCA50)"},
}; /* pci_vid_CA50[] */
-pci_id_t pci_vid_CACE[] = {
+static pci_id_t const pci_vid_CACE[] = {
{0xCACE, 0xFFFF, 0xFFFF, 0xFFFF, "CACE Technologies, Inc.(0xCACE)"},
{0xCACE, 0x0001, 0xFFFF, 0xFFFF, "TurboCap Port A(0x0001)"},
{0xCACE, 0x0002, 0xFFFF, 0xFFFF, "TurboCap Port B(0x0002)"},
{0xCACE, 0x0023, 0xFFFF, 0xFFFF, "AirPcap N(0x0023)"},
}; /* pci_vid_CACE[] */
-pci_id_t pci_vid_CAED[] = {
+static pci_id_t const pci_vid_CAED[] = {
{0xCAED, 0xFFFF, 0xFFFF, 0xFFFF, "Canny Edge(0xCAED)"},
}; /* pci_vid_CAED[] */
-pci_id_t pci_vid_CAFE[] = {
+static pci_id_t const pci_vid_CAFE[] = {
{0xCAFE, 0xFFFF, 0xFFFF, 0xFFFF, "Chrysalis-ITS(0xCAFE)"},
{0xCAFE, 0x0003, 0xFFFF, 0xFFFF, "Luna K3 Hardware Security Module(0x0003)"},
{0xCAFE, 0x0006, 0xFFFF, 0xFFFF, "Luna PCI-e 3000 Hardware Security Module(0x0006)"},
@@ -43161,47 +43684,47 @@ pci_id_t pci_vid_CAFE[] = {
{0xCAFE, 0x0008, 0xFFFF, 0xFFFF, "Luna K7 Hardware Security Module(0x0008)"},
}; /* pci_vid_CAFE[] */
-pci_id_t pci_vid_CC53[] = {
+static pci_id_t const pci_vid_CC53[] = {
{0xCC53, 0xFFFF, 0xFFFF, 0xFFFF, "ScaleFlux Inc.(0xCC53)"},
{0xCC53, 0x0001, 0xFFFF, 0xFFFF, "CSS 1000(0x0001)"},
{0xCC53, 0x0010, 0xFFFF, 0xFFFF, "CSD 3310(0x0010)"},
}; /* pci_vid_CC53[] */
-pci_id_t pci_vid_CCCC[] = {
+static pci_id_t const pci_vid_CCCC[] = {
{0xCCCC, 0xFFFF, 0xFFFF, 0xFFFF, "Catapult Communications(0xCCCC)"},
}; /* pci_vid_CCCC[] */
-pci_id_t pci_vid_CCEC[] = {
+static pci_id_t const pci_vid_CCEC[] = {
{0xCCEC, 0xFFFF, 0xFFFF, 0xFFFF, "Curtiss-Wright Controls Embedded Computing(0xCCEC)"},
}; /* pci_vid_CCEC[] */
-pci_id_t pci_vid_CDDD[] = {
+static pci_id_t const pci_vid_CDDD[] = {
{0xCDDD, 0xFFFF, 0xFFFF, 0xFFFF, "Tyzx, Inc.(0xCDDD)"},
{0xCDDD, 0x0101, 0xFFFF, 0xFFFF, "DeepSea 1 High Speed Stereo Vision Frame Grabber(0x0101)"},
{0xCDDD, 0x0200, 0xFFFF, 0xFFFF, "DeepSea 2 High Speed Stereo Vision Frame Grabber(0x0200)"},
}; /* pci_vid_CDDD[] */
-pci_id_t pci_vid_CDFA[] = {
+static pci_id_t const pci_vid_CDFA[] = {
{0xCDFA, 0xFFFF, 0xFFFF, 0xFFFF, "NextSilicon Ltd(0xCDFA)"},
{0xCDFA, 0x0007, 0xFFFF, 0xFFFF, "Maverick(0x0007)"},
}; /* pci_vid_CDFA[] */
-pci_id_t pci_vid_CEBA[] = {
+static pci_id_t const pci_vid_CEBA[] = {
{0xCEBA, 0xFFFF, 0xFFFF, 0xFFFF, "KEBA AG(0xCEBA)"},
}; /* pci_vid_CEBA[] */
-pci_id_t pci_vid_CF86[] = {
+static pci_id_t const pci_vid_CF86[] = {
{0xCF86, 0xFFFF, 0xFFFF, 0xFFFF, "Spectrum-4TOR(0xCF86)"},
{0xCF86, 0x0276, 0xFFFF, 0xFFFF, "Spectrum-4TOR in Flash Recovery Mode(0x0276)"},
}; /* pci_vid_CF86[] */
-pci_id_t pci_vid_D063[] = {
+static pci_id_t const pci_vid_D063[] = {
{0xD063, 0xFFFF, 0xFFFF, 0xFFFF, "SolidRun(0xD063)"},
{0xD063, 0x1000, 0xFFFF, 0xFFFF, "SolidNET DPU(0x1000)"},
{0xD063, 0x1500, 0xFFFF, 0xFFFF, "Emulated NVMe(0x1500)"},
}; /* pci_vid_D063[] */
-pci_id_t pci_vid_D161[] = {
+static pci_id_t const pci_vid_D161[] = {
{0xD161, 0xFFFF, 0xFFFF, 0xFFFF, "Digium, Inc.(0xD161)"},
{0xD161, 0x0120, 0xFFFF, 0xFFFF, "Wildcard TE120P single-span T1/E1/J1 card(0x0120)"},
{0xD161, 0x0205, 0xFFFF, 0xFFFF, "Wildcard TE205P/TE207P dual-span T1/E1/J1 card 5.0V(0x0205)"},
@@ -43239,14 +43762,14 @@ pci_id_t pci_vid_D161[] = {
{0xD161, 0xB410, 0xFFFF, 0xFFFF, "Wildcard B410 quad-BRI card(0xB410)"},
}; /* pci_vid_D161[] */
-pci_id_t pci_vid_D209[] = {
+static pci_id_t const pci_vid_D209[] = {
{0xD209, 0xFFFF, 0xFFFF, 0xFFFF, "Ultimarc(0xD209)"},
{0xD209, 0x1500, 0xFFFF, 0xFFFF, "PAC Drive(0x1500)"},
{0xD209, 0x15A2, 0xFFFF, 0xFFFF, "SpinTrak(0x15A2)"},
{0xD209, 0x1601, 0xFFFF, 0xFFFF, "AimTrak(0x1601)"},
}; /* pci_vid_D209[] */
-pci_id_t pci_vid_D20C[] = {
+static pci_id_t const pci_vid_D20C[] = {
{0xD20C, 0xFFFF, 0xFFFF, 0xFFFF, "Chengdu BeiZhongWangXin Technology Co., Ltd.(0xD20C)"},
{0xD20C, 0x5010, 0xFFFF, 0xFFFF, "NE5000 Ethernet Controller(0x5010)"},
{0xD20C, 0x5011, 0xFFFF, 0xFFFF, "NE5000 Ethernet Controller(0x5011)"},
@@ -43269,20 +43792,20 @@ pci_id_t pci_vid_D20C[] = {
{0xD20C, 0x6011, 0xD20C, 0xEA2D, "N6S Series 2-port 100GbE Network Adapter for OCP(0xD20C-0xEA2D)"},
}; /* pci_vid_D20C[] */
-pci_id_t pci_vid_D4D4[] = {
+static pci_id_t const pci_vid_D4D4[] = {
{0xD4D4, 0xFFFF, 0xFFFF, 0xFFFF, "Dy4 Systems Inc(0xD4D4)"},
{0xD4D4, 0x0601, 0xFFFF, 0xFFFF, "PCI Mezzanine Card(0x0601)"},
}; /* pci_vid_D4D4[] */
-pci_id_t pci_vid_D531[] = {
+static pci_id_t const pci_vid_D531[] = {
{0xD531, 0xFFFF, 0xFFFF, 0xFFFF, "I+ME ACTIA GmbH(0xD531)"},
}; /* pci_vid_D531[] */
-pci_id_t pci_vid_D84D[] = {
+static pci_id_t const pci_vid_D84D[] = {
{0xD84D, 0xFFFF, 0xFFFF, 0xFFFF, "Exsys(0xD84D)"},
}; /* pci_vid_D84D[] */
-pci_id_t pci_vid_DADA[] = {
+static pci_id_t const pci_vid_DADA[] = {
{0xDADA, 0xFFFF, 0xFFFF, 0xFFFF, "Datapath Limited(0xDADA)"},
{0xDADA, 0x0133, 0xFFFF, 0xFFFF, "VisionRGB-X2(0x0133)"},
{0xDADA, 0x0139, 0xFFFF, 0xFFFF, "VisionRGB-E1(0x0139)"},
@@ -43301,15 +43824,15 @@ pci_id_t pci_vid_DADA[] = {
{0xDADA, 0x1154, 0xFFFF, 0xFFFF, "VisionSDI2(0x1154)"},
}; /* pci_vid_DADA[] */
-pci_id_t pci_vid_DB10[] = {
+static pci_id_t const pci_vid_DB10[] = {
{0xDB10, 0xFFFF, 0xFFFF, 0xFFFF, "Diablo Technologies(0xDB10)"},
}; /* pci_vid_DB10[] */
-pci_id_t pci_vid_DC93[] = {
+static pci_id_t const pci_vid_DC93[] = {
{0xDC93, 0xFFFF, 0xFFFF, 0xFFFF, "Dawicontrol GmbH(0xDC93)"},
}; /* pci_vid_DC93[] */
-pci_id_t pci_vid_DCBA[] = {
+static pci_id_t const pci_vid_DCBA[] = {
{0xDCBA, 0xFFFF, 0xFFFF, 0xFFFF, "Dynamic Engineering(0xDCBA)"},
{0xDCBA, 0x0046, 0xFFFF, 0xFFFF, "PCIe Altera Cyclone IV(0x0046)"},
{0xDCBA, 0x0047, 0xFFFF, 0xFFFF, "VPX-RCB(0x0047)"},
@@ -43320,7 +43843,7 @@ pci_id_t pci_vid_DCBA[] = {
{0xDCBA, 0x0066, 0xFFFF, 0xFFFF, "PMC-OctalUART-232(0x0066)"},
}; /* pci_vid_DCBA[] */
-pci_id_t pci_vid_DD01[] = {
+static pci_id_t const pci_vid_DD01[] = {
{0xDD01, 0xFFFF, 0xFFFF, 0xFFFF, "Digital Devices GmbH(0xDD01)"},
{0xDD01, 0x0003, 0xFFFF, 0xFFFF, "Octopus DVB Adapter(0x0003)"},
{0xDD01, 0x0003, 0xDD01, 0x0001, "Octopus DVB adapter(0xDD01-0x0001)"},
@@ -43342,29 +43865,29 @@ pci_id_t pci_vid_DD01[] = {
{0xDD01, 0x0201, 0xDD01, 0x0001, "Resi DVB-C Modulator(0xDD01-0x0001)"},
}; /* pci_vid_DD01[] */
-pci_id_t pci_vid_DEAD[] = {
+static pci_id_t const pci_vid_DEAD[] = {
{0xDEAD, 0xFFFF, 0xFFFF, 0xFFFF, "Indigita Corporation(0xDEAD)"},
}; /* pci_vid_DEAD[] */
-pci_id_t pci_vid_DEAF[] = {
+static pci_id_t const pci_vid_DEAF[] = {
{0xDEAF, 0xFFFF, 0xFFFF, 0xFFFF, "Middle Digital Inc.(0xDEAF)"},
{0xDEAF, 0x9050, 0xFFFF, 0xFFFF, "PC Weasel Virtual VGA(0x9050)"},
{0xDEAF, 0x9051, 0xFFFF, 0xFFFF, "PC Weasel Serial Port(0x9051)"},
{0xDEAF, 0x9052, 0xFFFF, 0xFFFF, "PC Weasel Watchdog Timer(0x9052)"},
}; /* pci_vid_DEAF[] */
-pci_id_t pci_vid_DEDA[] = {
+static pci_id_t const pci_vid_DEDA[] = {
{0xDEDA, 0xFFFF, 0xFFFF, 0xFFFF, "XIMEA(0xDEDA)"},
{0xDEDA, 0x4001, 0xFFFF, 0xFFFF, "CB or MX camera(0x4001)"},
{0xDEDA, 0x4021, 0xFFFF, 0xFFFF, "MT camera(0x4021)"},
}; /* pci_vid_DEDA[] */
-pci_id_t pci_vid_E000[] = {
+static pci_id_t const pci_vid_E000[] = {
{0xE000, 0xFFFF, 0xFFFF, 0xFFFF, "Winbond(0xE000)"},
{0xE000, 0xE000, 0xFFFF, 0xFFFF, "W89C940(0xE000)"},
}; /* pci_vid_E000[] */
-pci_id_t pci_vid_E159[] = {
+static pci_id_t const pci_vid_E159[] = {
{0xE159, 0xFFFF, 0xFFFF, 0xFFFF, "Tiger Jet Network Inc. / ICP DAS(0xE159)"},
{0xE159, 0x0001, 0xFFFF, 0xFFFF, "Tiger3XX Modem/ISDN interface(0x0001)"},
{0xE159, 0x0001, 0x0059, 0x0001, "128k ISDN-S/T Adapter(0x0059-0x0001)"},
@@ -43376,11 +43899,11 @@ pci_id_t pci_vid_E159[] = {
{0xE159, 0x0002, 0xFFFF, 0xFFFF, "Tiger100APC ISDN chipset(0x0002)"},
}; /* pci_vid_E159[] */
-pci_id_t pci_vid_E1C5[] = {
+static pci_id_t const pci_vid_E1C5[] = {
{0xE1C5, 0xFFFF, 0xFFFF, 0xFFFF, "Elcus(0xE1C5)"},
}; /* pci_vid_E1C5[] */
-pci_id_t pci_vid_E4BF[] = {
+static pci_id_t const pci_vid_E4BF[] = {
{0xE4BF, 0xFFFF, 0xFFFF, 0xFFFF, "EKF Elektronik GmbH(0xE4BF)"},
{0xE4BF, 0x0CCD, 0xFFFF, 0xFFFF, "CCD-CALYPSO(0x0CCD)"},
{0xE4BF, 0x0CD1, 0xFFFF, 0xFFFF, "CD1-OPERA(0x0CD1)"},
@@ -43393,15 +43916,15 @@ pci_id_t pci_vid_E4BF[] = {
{0xE4BF, 0xCC4D, 0xFFFF, 0xFFFF, "CCM-BOOGIE(0xCC4D)"},
}; /* pci_vid_E4BF[] */
-pci_id_t pci_vid_E4E4[] = {
+static pci_id_t const pci_vid_E4E4[] = {
{0xE4E4, 0xFFFF, 0xFFFF, 0xFFFF, "Xorcom(0xE4E4)"},
}; /* pci_vid_E4E4[] */
-pci_id_t pci_vid_E55E[] = {
+static pci_id_t const pci_vid_E55E[] = {
{0xE55E, 0xFFFF, 0xFFFF, 0xFFFF, "Essence Technology, Inc.(0xE55E)"},
}; /* pci_vid_E55E[] */
-pci_id_t pci_vid_EA01[] = {
+static pci_id_t const pci_vid_EA01[] = {
{0xEA01, 0xFFFF, 0xFFFF, 0xFFFF, "Eagle Technology(0xEA01)"},
{0xEA01, 0x000A, 0xFFFF, 0xFFFF, "PCI-773 Temperature Card(0x000A)"},
{0xEA01, 0x0032, 0xFFFF, 0xFFFF, "PCI-730 & PC104P-30 Card(0x0032)"},
@@ -43413,22 +43936,22 @@ pci_id_t pci_vid_EA01[] = {
{0xEA01, 0x0800, 0xFFFF, 0xFFFF, "PCI-800 Digital I/O Card(0x0800)"},
}; /* pci_vid_EA01[] */
-pci_id_t pci_vid_EA50[] = {
+static pci_id_t const pci_vid_EA50[] = {
{0xEA50, 0xFFFF, 0xFFFF, 0xFFFF, "Emerson Automation Solutions(0xEA50)"},
}; /* pci_vid_EA50[] */
-pci_id_t pci_vid_EA60[] = {
+static pci_id_t const pci_vid_EA60[] = {
{0xEA60, 0xFFFF, 0xFFFF, 0xFFFF, "RME(0xEA60)"},
{0xEA60, 0x9896, 0xFFFF, 0xFFFF, "Digi32(0x9896)"},
{0xEA60, 0x9897, 0xFFFF, 0xFFFF, "Digi32 Pro(0x9897)"},
{0xEA60, 0x9898, 0xFFFF, 0xFFFF, "Digi32/8(0x9898)"},
}; /* pci_vid_EA60[] */
-pci_id_t pci_vid_EABB[] = {
+static pci_id_t const pci_vid_EABB[] = {
{0xEABB, 0xFFFF, 0xFFFF, 0xFFFF, "Aashima Technology B.V.(0xEABB)"},
}; /* pci_vid_EABB[] */
-pci_id_t pci_vid_EACE[] = {
+static pci_id_t const pci_vid_EACE[] = {
{0xEACE, 0xFFFF, 0xFFFF, 0xFFFF, "Endace Measurement Systems, Ltd(0xEACE)"},
{0xEACE, 0x3100, 0xFFFF, 0xFFFF, "DAG 3.10 OC-3/OC-12(0x3100)"},
{0xEACE, 0x3200, 0xFFFF, 0xFFFF, "DAG 3.2x OC-3/OC-12(0x3200)"},
@@ -43489,16 +44012,16 @@ pci_id_t pci_vid_EACE[] = {
{0xEACE, 0xEACE, 0xFFFF, 0xFFFF, "vDAG virtual device(0xEACE)"},
}; /* pci_vid_EACE[] */
-pci_id_t pci_vid_EC80[] = {
+static pci_id_t const pci_vid_EC80[] = {
{0xEC80, 0xFFFF, 0xFFFF, 0xFFFF, "Belkin Corporation(0xEC80)"},
{0xEC80, 0xEC00, 0xFFFF, 0xFFFF, "F5D6000(0xEC00)"},
}; /* pci_vid_EC80[] */
-pci_id_t pci_vid_ECC0[] = {
+static pci_id_t const pci_vid_ECC0[] = {
{0xECC0, 0xFFFF, 0xFFFF, 0xFFFF, "Echo Digital Audio Corporation(0xECC0)"},
}; /* pci_vid_ECC0[] */
-pci_id_t pci_vid_EDD8[] = {
+static pci_id_t const pci_vid_EDD8[] = {
{0xEDD8, 0xFFFF, 0xFFFF, 0xFFFF, "ARK Logic Inc(0xEDD8)"},
{0xEDD8, 0xA091, 0xFFFF, 0xFFFF, "1000PV [Stingray](0xA091)"},
{0xEDD8, 0xA099, 0xFFFF, 0xFFFF, "2000PV [Stingray](0xA099)"},
@@ -43506,24 +44029,24 @@ pci_id_t pci_vid_EDD8[] = {
{0xEDD8, 0xA0A9, 0xFFFF, 0xFFFF, "2000MI(0xA0A9)"},
}; /* pci_vid_EDD8[] */
-pci_id_t pci_vid_F043[] = {
+static pci_id_t const pci_vid_F043[] = {
{0xF043, 0xFFFF, 0xFFFF, 0xFFFF, "ASUSTeK Computer Inc. (Wrong ID)(0xF043)"},
}; /* pci_vid_F043[] */
-pci_id_t pci_vid_F05B[] = {
+static pci_id_t const pci_vid_F05B[] = {
{0xF05B, 0xFFFF, 0xFFFF, 0xFFFF, "Foxconn International, Inc. (Wrong ID)(0xF05B)"},
}; /* pci_vid_F05B[] */
-pci_id_t pci_vid_F111[] = {
+static pci_id_t const pci_vid_F111[] = {
{0xF111, 0xFFFF, 0xFFFF, 0xFFFF, "Framework Computer Inc.(0xF111)"},
}; /* pci_vid_F111[] */
-pci_id_t pci_vid_F15E[] = {
+static pci_id_t const pci_vid_F15E[] = {
{0xF15E, 0xFFFF, 0xFFFF, 0xFFFF, "SiFive, Inc.(0xF15E)"},
{0xF15E, 0x0000, 0xFFFF, 0xFFFF, "FU740-C000 RISC-V SoC PCI Express x8 to AXI4 Bridge(0x0000)"},
}; /* pci_vid_F15E[] */
-pci_id_t pci_vid_F1D0[] = {
+static pci_id_t const pci_vid_F1D0[] = {
{0xF1D0, 0xFFFF, 0xFFFF, 0xFFFF, "AJA Video(0xF1D0)"},
{0xF1D0, 0xC0FE, 0xFFFF, 0xFFFF, "Xena HS/HD-R(0xC0FE)"},
{0xF1D0, 0xC0FF, 0xFFFF, 0xFFFF, "Kona/Xena 2(0xC0FF)"},
@@ -43567,66 +44090,66 @@ pci_id_t pci_vid_F1D0[] = {
{0xF1D0, 0xFACD, 0xFFFF, 0xFFFF, "Xena HD-MM(0xFACD)"},
}; /* pci_vid_F1D0[] */
-pci_id_t pci_vid_F5F5[] = {
+static pci_id_t const pci_vid_F5F5[] = {
{0xF5F5, 0xFFFF, 0xFFFF, 0xFFFF, "F5 Networks, Inc.(0xF5F5)"},
}; /* pci_vid_F5F5[] */
-pci_id_t pci_vid_F849[] = {
+static pci_id_t const pci_vid_F849[] = {
{0xF849, 0xFFFF, 0xFFFF, 0xFFFF, "ASRock Incorporation (Wrong ID)(0xF849)"},
}; /* pci_vid_F849[] */
-pci_id_t pci_vid_FA57[] = {
+static pci_id_t const pci_vid_FA57[] = {
{0xFA57, 0xFFFF, 0xFFFF, 0xFFFF, "Interagon AS(0xFA57)"},
{0xFA57, 0x0001, 0xFFFF, 0xFFFF, "PMC [Pattern Matching Chip](0x0001)"},
}; /* pci_vid_FA57[] */
-pci_id_t pci_vid_FAB7[] = {
+static pci_id_t const pci_vid_FAB7[] = {
{0xFAB7, 0xFFFF, 0xFFFF, 0xFFFF, "Fabric7 Systems, Inc.(0xFAB7)"},
}; /* pci_vid_FAB7[] */
-pci_id_t pci_vid_FE19[] = {
+static pci_id_t const pci_vid_FE19[] = {
{0xFE19, 0xFFFF, 0xFFFF, 0xFFFF, "TenaFe, Inc.(0xFE19)"},
{0xFE19, 0x0001, 0xFFFF, 0xFFFF, "TC2200/TC2201 NVMe Controller (DRAM-less)(0x0001)"},
}; /* pci_vid_FE19[] */
-pci_id_t pci_vid_FEBD[] = {
+static pci_id_t const pci_vid_FEBD[] = {
{0xFEBD, 0xFFFF, 0xFFFF, 0xFFFF, "Ultraview Corp.(0xFEBD)"},
}; /* pci_vid_FEBD[] */
-pci_id_t pci_vid_FEDA[] = {
+static pci_id_t const pci_vid_FEDA[] = {
{0xFEDA, 0xFFFF, 0xFFFF, 0xFFFF, "Broadcom Inc(0xFEDA)"},
{0xFEDA, 0xA0FA, 0xFFFF, 0xFFFF, "BCM4210 iLine10 HomePNA 2.0(0xA0FA)"},
{0xFEDA, 0xA10E, 0xFFFF, 0xFFFF, "BCM4230 iLine10 HomePNA 2.0(0xA10E)"},
}; /* pci_vid_FEDA[] */
-pci_id_t pci_vid_FEDE[] = {
+static pci_id_t const pci_vid_FEDE[] = {
{0xFEDE, 0xFFFF, 0xFFFF, 0xFFFF, "Fedetec Inc.(0xFEDE)"},
{0xFEDE, 0x0003, 0xFFFF, 0xFFFF, "TABIC PCI v3(0x0003)"},
}; /* pci_vid_FEDE[] */
-pci_id_t pci_vid_FFE1[] = {
+static pci_id_t const pci_vid_FFE1[] = {
{0xFFE1, 0xFFFF, 0xFFFF, 0xFFFF, "Suzhou XiongLi Technology Inc.(0xFFE1)"},
{0xFFE1, 0xD200, 0xFFFF, 0xFFFF, "XL82101/82102 PCI Express Gigabit Ethernet Controller(0xD200)"},
}; /* pci_vid_FFE1[] */
-pci_id_t pci_vid_FFFD[] = {
+static pci_id_t const pci_vid_FFFD[] = {
{0xFFFD, 0xFFFF, 0xFFFF, 0xFFFF, "XenSource, Inc.(0xFFFD)"},
{0xFFFD, 0x0101, 0xFFFF, 0xFFFF, "PCI Event Channel Controller(0x0101)"},
}; /* pci_vid_FFFD[] */
-pci_id_t pci_vid_FFFE[] = {
+static pci_id_t const pci_vid_FFFE[] = {
{0xFFFE, 0xFFFF, 0xFFFF, 0xFFFF, "VMWare Inc (temporary ID)(0xFFFE)"},
{0xFFFE, 0x0710, 0xFFFF, 0xFFFF, "Virtual SVGA(0x0710)"},
}; /* pci_vid_FFFE[] */
-pci_id_t pci_vid_FFFF[] = {
+static pci_id_t const pci_vid_FFFF[] = {
{0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, "Illegal Vendor ID(0xFFFF)"},
}; /* pci_vid_FFFF[] */
-pci_vid_index_t pci_vid_index[] = {
+static pci_vid_index_t const pci_vid_index[] = {
{0x0001, 1, pci_vid_0001 },
{0x0010, 2, pci_vid_0010 },
-{0x0014, 19, pci_vid_0014 },
+{0x0014, 21, pci_vid_0014 },
{0x0018, 2, pci_vid_0018 },
{0x001C, 4, pci_vid_001C },
{0x003D, 1, pci_vid_003D },
@@ -43642,7 +44165,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x01DE, 4, pci_vid_01DE },
{0x0200, 1, pci_vid_0200 },
{0x021B, 2, pci_vid_021B },
-{0x025E, 12, pci_vid_025E },
+{0x025E, 22, pci_vid_025E },
{0x0270, 1, pci_vid_0270 },
{0x0291, 1, pci_vid_0291 },
{0x02AC, 2, pci_vid_02AC },
@@ -43665,14 +44188,14 @@ pci_vid_index_t pci_vid_index[] = {
{0x0A89, 1, pci_vid_0A89 },
{0x0B0B, 15, pci_vid_0B0B },
{0x0BAE, 1, pci_vid_0BAE },
-{0x0CCD, 1, pci_vid_0CCD },
+{0x0CCD, 7, pci_vid_0CCD },
{0x0E11, 109, pci_vid_0E11 },
{0x0E55, 1, pci_vid_0E55 },
{0x0EAC, 2, pci_vid_0EAC },
{0x0F62, 1, pci_vid_0F62 },
-{0x1000, 785, pci_vid_1000 },
+{0x1000, 797, pci_vid_1000 },
{0x1001, 10, pci_vid_1001 },
-{0x1002, 3236, pci_vid_1002 },
+{0x1002, 3246, pci_vid_1002 },
{0x1003, 2, pci_vid_1003 },
{0x1004, 34, pci_vid_1004 },
{0x1005, 8, pci_vid_1005 },
@@ -43693,7 +44216,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x1016, 1, pci_vid_1016 },
{0x1017, 2, pci_vid_1017 },
{0x1018, 1, pci_vid_1018 },
-{0x1019, 1, pci_vid_1019 },
+{0x1019, 2, pci_vid_1019 },
{0x101A, 17, pci_vid_101A },
{0x101B, 2, pci_vid_101B },
{0x101C, 12, pci_vid_101C },
@@ -43702,7 +44225,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x101F, 1, pci_vid_101F },
{0x1020, 1, pci_vid_1020 },
{0x1021, 1, pci_vid_1021 },
-{0x1022, 684, pci_vid_1022 },
+{0x1022, 688, pci_vid_1022 },
{0x1023, 56, pci_vid_1023 },
{0x1024, 4, pci_vid_1024 },
{0x1025, 59, pci_vid_1025 },
@@ -43726,13 +44249,13 @@ pci_vid_index_t pci_vid_index[] = {
{0x1039, 187, pci_vid_1039 },
{0x103A, 1, pci_vid_103A },
{0x103B, 1, pci_vid_103B },
-{0x103C, 146, pci_vid_103C },
+{0x103C, 147, pci_vid_103C },
{0x103E, 1, pci_vid_103E },
{0x103F, 1, pci_vid_103F },
{0x1040, 1, pci_vid_1040 },
{0x1041, 1, pci_vid_1041 },
{0x1042, 6, pci_vid_1042 },
-{0x1043, 9, pci_vid_1043 },
+{0x1043, 7, pci_vid_1043 },
{0x1044, 44, pci_vid_1044 },
{0x1045, 24, pci_vid_1045 },
{0x1046, 1, pci_vid_1046 },
@@ -43742,7 +44265,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x104A, 30, pci_vid_104A },
{0x104B, 4, pci_vid_104B },
{0x104C, 290, pci_vid_104C },
-{0x104D, 46, pci_vid_104D },
+{0x104D, 47, pci_vid_104D },
{0x104E, 7, pci_vid_104E },
{0x104F, 1, pci_vid_104F },
{0x1050, 20, pci_vid_1050 },
@@ -43756,7 +44279,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x1058, 1, pci_vid_1058 },
{0x1059, 3, pci_vid_1059 },
{0x105A, 81, pci_vid_105A },
-{0x105B, 2, pci_vid_105B },
+{0x105B, 3, pci_vid_105B },
{0x105C, 1, pci_vid_105C },
{0x105D, 37, pci_vid_105D },
{0x105E, 1, pci_vid_105E },
@@ -43884,7 +44407,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x10DB, 1, pci_vid_10DB },
{0x10DC, 6, pci_vid_10DC },
{0x10DD, 3, pci_vid_10DD },
-{0x10DE, 3243, pci_vid_10DE },
+{0x10DE, 3259, pci_vid_10DE },
{0x10DF, 127, pci_vid_10DF },
{0x10E0, 7, pci_vid_10E0 },
{0x10E1, 5, pci_vid_10E1 },
@@ -43898,7 +44421,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x10E9, 1, pci_vid_10E9 },
{0x10EA, 10, pci_vid_10EA },
{0x10EB, 3, pci_vid_10EB },
-{0x10EC, 240, pci_vid_10EC },
+{0x10EC, 243, pci_vid_10EC },
{0x10ED, 2, pci_vid_10ED },
{0x10EE, 47, pci_vid_10EE },
{0x10EF, 2, pci_vid_10EF },
@@ -43921,14 +44444,14 @@ pci_vid_index_t pci_vid_index[] = {
{0x1100, 1, pci_vid_1100 },
{0x1101, 9, pci_vid_1101 },
{0x1102, 148, pci_vid_1102 },
-{0x1103, 41, pci_vid_1103 },
+{0x1103, 53, pci_vid_1103 },
{0x1104, 1, pci_vid_1104 },
{0x1105, 15, pci_vid_1105 },
-{0x1106, 577, pci_vid_1106 },
+{0x1106, 579, pci_vid_1106 },
{0x1107, 2, pci_vid_1107 },
{0x1108, 9, pci_vid_1108 },
{0x1109, 2, pci_vid_1109 },
-{0x110A, 32, pci_vid_110A },
+{0x110A, 33, pci_vid_110A },
{0x110B, 3, pci_vid_110B },
{0x110C, 1, pci_vid_110C },
{0x110D, 1, pci_vid_110D },
@@ -44038,7 +44561,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x1176, 1, pci_vid_1176 },
{0x1177, 1, pci_vid_1177 },
{0x1178, 2, pci_vid_1178 },
-{0x1179, 40, pci_vid_1179 },
+{0x1179, 41, pci_vid_1179 },
{0x117A, 1, pci_vid_117A },
{0x117B, 1, pci_vid_117B },
{0x117C, 66, pci_vid_117C },
@@ -44318,7 +44841,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x1294, 1, pci_vid_1294 },
{0x1295, 3, pci_vid_1295 },
{0x1296, 1, pci_vid_1296 },
-{0x1297, 1, pci_vid_1297 },
+{0x1297, 2, pci_vid_1297 },
{0x1298, 1, pci_vid_1298 },
{0x1299, 1, pci_vid_1299 },
{0x129A, 8, pci_vid_129A },
@@ -44377,13 +44900,13 @@ pci_vid_index_t pci_vid_index[] = {
{0x12CF, 1, pci_vid_12CF },
{0x12D0, 1, pci_vid_12D0 },
{0x12D1, 1, pci_vid_12D1 },
-{0x12D2, 28, pci_vid_12D2 },
+{0x12D2, 29, pci_vid_12D2 },
{0x12D3, 1, pci_vid_12D3 },
{0x12D4, 2, pci_vid_12D4 },
{0x12D5, 3, pci_vid_12D5 },
{0x12D6, 1, pci_vid_12D6 },
{0x12D7, 1, pci_vid_12D7 },
-{0x12D8, 24, pci_vid_12D8 },
+{0x12D8, 27, pci_vid_12D8 },
{0x12D9, 7, pci_vid_12D9 },
{0x12DA, 1, pci_vid_12DA },
{0x12DB, 1, pci_vid_12DB },
@@ -44482,7 +45005,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x1341, 1, pci_vid_1341 },
{0x1342, 1, pci_vid_1342 },
{0x1343, 1, pci_vid_1343 },
-{0x1344, 88, pci_vid_1344 },
+{0x1344, 89, pci_vid_1344 },
{0x1345, 1, pci_vid_1345 },
{0x1347, 1, pci_vid_1347 },
{0x1349, 1, pci_vid_1349 },
@@ -44853,7 +45376,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x14C0, 2, pci_vid_14C0 },
{0x14C1, 7, pci_vid_14C1 },
{0x14C2, 1, pci_vid_14C2 },
-{0x14C3, 13, pci_vid_14C3 },
+{0x14C3, 15, pci_vid_14C3 },
{0x14C4, 1, pci_vid_14C4 },
{0x14C5, 1, pci_vid_14C5 },
{0x14C6, 1, pci_vid_14C6 },
@@ -44885,7 +45408,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x14E1, 1, pci_vid_14E1 },
{0x14E2, 1, pci_vid_14E2 },
{0x14E3, 1, pci_vid_14E3 },
-{0x14E4, 853, pci_vid_14E4 },
+{0x14E4, 858, pci_vid_14E4 },
{0x14E5, 1, pci_vid_14E5 },
{0x14E6, 1, pci_vid_14E6 },
{0x14E7, 1, pci_vid_14E7 },
@@ -45001,7 +45524,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x1555, 1, pci_vid_1555 },
{0x1556, 11, pci_vid_1556 },
{0x1557, 1, pci_vid_1557 },
-{0x1558, 1, pci_vid_1558 },
+{0x1558, 2, pci_vid_1558 },
{0x1559, 1, pci_vid_1559 },
{0x155A, 1, pci_vid_155A },
{0x155B, 1, pci_vid_155B },
@@ -45089,16 +45612,16 @@ pci_vid_index_t pci_vid_index[] = {
{0x15B0, 1, pci_vid_15B0 },
{0x15B1, 1, pci_vid_15B1 },
{0x15B2, 1, pci_vid_15B2 },
-{0x15B3, 252, pci_vid_15B3 },
+{0x15B3, 255, pci_vid_15B3 },
{0x15B4, 1, pci_vid_15B4 },
{0x15B5, 1, pci_vid_15B5 },
{0x15B6, 17, pci_vid_15B6 },
-{0x15B7, 30, pci_vid_15B7 },
+{0x15B7, 31, pci_vid_15B7 },
{0x15B8, 11, pci_vid_15B8 },
{0x15B9, 1, pci_vid_15B9 },
{0x15BA, 1, pci_vid_15BA },
{0x15BB, 1, pci_vid_15BB },
-{0x15BC, 15, pci_vid_15BC },
+{0x15BC, 19, pci_vid_15BC },
{0x15BD, 1, pci_vid_15BD },
{0x15BE, 1, pci_vid_15BE },
{0x15BF, 1, pci_vid_15BF },
@@ -45126,7 +45649,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x15D6, 1, pci_vid_15D6 },
{0x15D7, 1, pci_vid_15D7 },
{0x15D8, 1, pci_vid_15D8 },
-{0x15D9, 5, pci_vid_15D9 },
+{0x15D9, 4, pci_vid_15D9 },
{0x15DA, 1, pci_vid_15DA },
{0x15DB, 1, pci_vid_15DB },
{0x15DC, 2, pci_vid_15DC },
@@ -45224,7 +45747,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x16CA, 2, pci_vid_16CA },
{0x16CD, 12, pci_vid_16CD },
{0x16CE, 1, pci_vid_16CE },
-{0x16D5, 99, pci_vid_16D5 },
+{0x16D5, 102, pci_vid_16D5 },
{0x16DA, 2, pci_vid_16DA },
{0x16DF, 1, pci_vid_16DF },
{0x16E2, 61, pci_vid_16E2 },
@@ -45243,12 +45766,12 @@ pci_vid_index_t pci_vid_index[] = {
{0x1719, 2, pci_vid_1719 },
{0x1725, 2, pci_vid_1725 },
{0x172A, 2, pci_vid_172A },
-{0x1734, 1, pci_vid_1734 },
+{0x1734, 2, pci_vid_1734 },
{0x1735, 1, pci_vid_1735 },
{0x1737, 9, pci_vid_1737 },
{0x173B, 7, pci_vid_173B },
{0x1743, 2, pci_vid_1743 },
-{0x1745, 3, pci_vid_1745 },
+{0x1745, 4, pci_vid_1745 },
{0x1749, 1, pci_vid_1749 },
{0x174B, 1, pci_vid_174B },
{0x174D, 1, pci_vid_174D },
@@ -45267,7 +45790,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x179A, 2, pci_vid_179A },
{0x179C, 9, pci_vid_179C },
{0x17A0, 7, pci_vid_17A0 },
-{0x17AA, 7, pci_vid_17AA },
+{0x17AA, 8, pci_vid_17AA },
{0x17AB, 1, pci_vid_17AB },
{0x17AF, 1, pci_vid_17AF },
{0x17B3, 2, pci_vid_17B3 },
@@ -45275,7 +45798,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x17C0, 1, pci_vid_17C0 },
{0x17C2, 1, pci_vid_17C2 },
{0x17C3, 1, pci_vid_17C3 },
-{0x17CB, 22, pci_vid_17CB },
+{0x17CB, 32, pci_vid_17CB },
{0x17CC, 2, pci_vid_17CC },
{0x17CD, 1, pci_vid_17CD },
{0x17CF, 1, pci_vid_17CF },
@@ -45301,7 +45824,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x1809, 1, pci_vid_1809 },
{0x180C, 1, pci_vid_180C },
{0x1813, 5, pci_vid_1813 },
-{0x1814, 83, pci_vid_1814 },
+{0x1814, 84, pci_vid_1814 },
{0x1815, 1, pci_vid_1815 },
{0x1820, 1, pci_vid_1820 },
{0x1822, 2, pci_vid_1822 },
@@ -45311,7 +45834,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x1830, 5, pci_vid_1830 },
{0x183B, 5, pci_vid_183B },
{0x1846, 1, pci_vid_1846 },
-{0x1849, 1, pci_vid_1849 },
+{0x1849, 2, pci_vid_1849 },
{0x184A, 2, pci_vid_184A },
{0x1850, 2, pci_vid_1850 },
{0x1851, 1, pci_vid_1851 },
@@ -45379,7 +45902,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x1958, 1, pci_vid_1958 },
{0x1959, 15, pci_vid_1959 },
{0x1966, 8, pci_vid_1966 },
-{0x1969, 26, pci_vid_1969 },
+{0x1969, 28, pci_vid_1969 },
{0x196A, 4, pci_vid_196A },
{0x196D, 1, pci_vid_196D },
{0x196E, 1, pci_vid_196E },
@@ -45389,7 +45912,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x1977, 1, pci_vid_1977 },
{0x197B, 32, pci_vid_197B },
{0x1982, 3, pci_vid_1982 },
-{0x1987, 11, pci_vid_1987 },
+{0x1987, 12, pci_vid_1987 },
{0x1989, 3, pci_vid_1989 },
{0x198A, 1, pci_vid_198A },
{0x1993, 1, pci_vid_1993 },
@@ -45476,14 +45999,14 @@ pci_vid_index_t pci_vid_index[] = {
{0x1AF4, 23, pci_vid_1AF4 },
{0x1AF5, 1, pci_vid_1AF5 },
{0x1AFA, 1, pci_vid_1AFA },
-{0x1B00, 1, pci_vid_1B00 },
+{0x1B00, 4, pci_vid_1B00 },
{0x1B03, 3, pci_vid_1B03 },
{0x1B08, 1, pci_vid_1B08 },
-{0x1B0A, 1, pci_vid_1B0A },
+{0x1B0A, 2, pci_vid_1B0A },
{0x1B13, 1, pci_vid_1B13 },
{0x1B1A, 2, pci_vid_1B1A },
{0x1B1C, 1, pci_vid_1B1C },
-{0x1B21, 27, pci_vid_1B21 },
+{0x1B21, 39, pci_vid_1B21 },
{0x1B26, 11, pci_vid_1B26 },
{0x1B2C, 1, pci_vid_1B2C },
{0x1B36, 23, pci_vid_1B36 },
@@ -45523,12 +46046,12 @@ pci_vid_index_t pci_vid_index[] = {
{0x1BF5, 2, pci_vid_1BF5 },
{0x1BFC, 1, pci_vid_1BFC },
{0x1BFD, 1, pci_vid_1BFD },
-{0x1C00, 2, pci_vid_1C00 },
+{0x1C00, 7, pci_vid_1C00 },
{0x1C09, 13, pci_vid_1C09 },
{0x1C1C, 2, pci_vid_1C1C },
-{0x1C1F, 11, pci_vid_1C1F },
+{0x1C1F, 12, pci_vid_1C1F },
{0x1C28, 2, pci_vid_1C28 },
-{0x1C2C, 37, pci_vid_1C2C },
+{0x1C2C, 40, pci_vid_1C2C },
{0x1C32, 1, pci_vid_1C32 },
{0x1C33, 1, pci_vid_1C33 },
{0x1C36, 3, pci_vid_1C36 },
@@ -45546,7 +46069,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x1CB1, 1, pci_vid_1CB1 },
{0x1CB5, 2, pci_vid_1CB5 },
{0x1CB8, 1, pci_vid_1CB8 },
-{0x1CC1, 21, pci_vid_1CC1 },
+{0x1CC1, 23, pci_vid_1CC1 },
{0x1CC4, 48, pci_vid_1CC4 },
{0x1CC5, 3, pci_vid_1CC5 },
{0x1CC7, 3, pci_vid_1CC7 },
@@ -45561,8 +46084,8 @@ pci_vid_index_t pci_vid_index[] = {
{0x1CFD, 2, pci_vid_1CFD },
{0x1D00, 1, pci_vid_1D00 },
{0x1D05, 1, pci_vid_1D05 },
-{0x1D0F, 11, pci_vid_1D0F },
-{0x1D17, 76, pci_vid_1D17 },
+{0x1D0F, 12, pci_vid_1D0F },
+{0x1D17, 92, pci_vid_1D17 },
{0x1D18, 2, pci_vid_1D18 },
{0x1D1C, 5, pci_vid_1D1C },
{0x1D1D, 3, pci_vid_1D1D },
@@ -45572,15 +46095,15 @@ pci_vid_index_t pci_vid_index[] = {
{0x1D37, 5, pci_vid_1D37 },
{0x1D40, 4, pci_vid_1D40 },
{0x1D44, 2, pci_vid_1D44 },
-{0x1D49, 2, pci_vid_1D49 },
+{0x1D49, 1, pci_vid_1D49 },
{0x1D4C, 1, pci_vid_1D4C },
{0x1D5C, 1, pci_vid_1D5C },
{0x1D61, 1, pci_vid_1D61 },
{0x1D62, 1, pci_vid_1D62 },
{0x1D65, 2, pci_vid_1D65 },
{0x1D69, 3, pci_vid_1D69 },
-{0x1D6A, 16, pci_vid_1D6A },
-{0x1D6C, 39, pci_vid_1D6C },
+{0x1D6A, 21, pci_vid_1D6A },
+{0x1D6C, 42, pci_vid_1D6C },
{0x1D72, 1, pci_vid_1D72 },
{0x1D78, 62, pci_vid_1D78 },
{0x1D79, 6, pci_vid_1D79 },
@@ -45593,17 +46116,17 @@ pci_vid_index_t pci_vid_index[] = {
{0x1D93, 1, pci_vid_1D93 },
{0x1D94, 30, pci_vid_1D94 },
{0x1D95, 3, pci_vid_1D95 },
-{0x1D97, 9, pci_vid_1D97 },
+{0x1D97, 11, pci_vid_1D97 },
{0x1D9B, 3, pci_vid_1D9B },
{0x1DA1, 1, pci_vid_1DA1 },
{0x1DA2, 3, pci_vid_1DA2 },
{0x1DA3, 6, pci_vid_1DA3 },
{0x1DA8, 3, pci_vid_1DA8 },
-{0x1DAD, 1, pci_vid_1DAD },
+{0x1DAD, 2, pci_vid_1DAD },
{0x1DB2, 1, pci_vid_1DB2 },
{0x1DB7, 23, pci_vid_1DB7 },
{0x1DBB, 1, pci_vid_1DBB },
-{0x1DBE, 22, pci_vid_1DBE },
+{0x1DBE, 24, pci_vid_1DBE },
{0x1DBF, 2, pci_vid_1DBF },
{0x1DC2, 1, pci_vid_1DC2 },
{0x1DC5, 3, pci_vid_1DC5 },
@@ -45615,9 +46138,10 @@ pci_vid_index_t pci_vid_index[] = {
{0x1DDD, 1, pci_vid_1DDD },
{0x1DE0, 6, pci_vid_1DE0 },
{0x1DE1, 5, pci_vid_1DE1 },
+{0x1DE4, 2, pci_vid_1DE4 },
{0x1DE5, 4, pci_vid_1DE5 },
{0x1DED, 8, pci_vid_1DED },
-{0x1DEE, 3, pci_vid_1DEE },
+{0x1DEE, 4, pci_vid_1DEE },
{0x1DEF, 27, pci_vid_1DEF },
{0x1DF3, 29, pci_vid_1DF3 },
{0x1DF5, 2, pci_vid_1DF5 },
@@ -45625,7 +46149,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x1DF8, 9, pci_vid_1DF8 },
{0x1DFC, 2, pci_vid_1DFC },
{0x1E0D, 1, pci_vid_1E0D },
-{0x1E0F, 92, pci_vid_1E0F },
+{0x1E0F, 101, pci_vid_1E0F },
{0x1E17, 1, pci_vid_1E17 },
{0x1E18, 1, pci_vid_1E18 },
{0x1E24, 8, pci_vid_1E24 },
@@ -45633,13 +46157,13 @@ pci_vid_index_t pci_vid_index[] = {
{0x1E36, 16, pci_vid_1E36 },
{0x1E38, 2, pci_vid_1E38 },
{0x1E39, 1, pci_vid_1E39 },
-{0x1E3A, 1, pci_vid_1E3A },
-{0x1E3B, 78, pci_vid_1E3B },
+{0x1E3A, 2, pci_vid_1E3A },
+{0x1E3B, 94, pci_vid_1E3B },
{0x1E3D, 1, pci_vid_1E3D },
{0x1E43, 4, pci_vid_1E43 },
{0x1E44, 1, pci_vid_1E44 },
{0x1E49, 9, pci_vid_1E49 },
-{0x1E4B, 8, pci_vid_1E4B },
+{0x1E4B, 9, pci_vid_1E4B },
{0x1E4C, 3, pci_vid_1E4C },
{0x1E50, 1, pci_vid_1E50 },
{0x1E52, 4, pci_vid_1E52 },
@@ -45660,7 +46184,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x1E89, 3, pci_vid_1E89 },
{0x1E93, 1, pci_vid_1E93 },
{0x1E94, 1, pci_vid_1E94 },
-{0x1E95, 7, pci_vid_1E95 },
+{0x1E95, 13, pci_vid_1E95 },
{0x1E96, 1, pci_vid_1E96 },
{0x1E9F, 1, pci_vid_1E9F },
{0x1EA0, 4, pci_vid_1EA0 },
@@ -45670,15 +46194,17 @@ pci_vid_index_t pci_vid_index[] = {
{0x1EAE, 1, pci_vid_1EAE },
{0x1EB1, 2, pci_vid_1EB1 },
{0x1EB4, 2, pci_vid_1EB4 },
+{0x1EB9, 2, pci_vid_1EB9 },
{0x1EBD, 2, pci_vid_1EBD },
{0x1EC6, 22, pci_vid_1EC6 },
{0x1EC8, 13, pci_vid_1EC8 },
{0x1EC9, 1, pci_vid_1EC9 },
{0x1ECA, 2, pci_vid_1ECA },
+{0x1ED0, 1, pci_vid_1ED0 },
{0x1ED2, 2, pci_vid_1ED2 },
{0x1ED3, 1, pci_vid_1ED3 },
{0x1ED5, 26, pci_vid_1ED5 },
-{0x1ED8, 2, pci_vid_1ED8 },
+{0x1ED8, 3, pci_vid_1ED8 },
{0x1ED9, 1, pci_vid_1ED9 },
{0x1EE1, 6, pci_vid_1EE1 },
{0x1EE4, 2, pci_vid_1EE4 },
@@ -45699,14 +46225,14 @@ pci_vid_index_t pci_vid_index[] = {
{0x1F3F, 38, pci_vid_1F3F },
{0x1F40, 9, pci_vid_1F40 },
{0x1F44, 1, pci_vid_1F44 },
-{0x1F47, 1, pci_vid_1F47 },
+{0x1F47, 3, pci_vid_1F47 },
{0x1F4B, 1, pci_vid_1F4B },
{0x1F52, 1, pci_vid_1F52 },
{0x1F56, 1, pci_vid_1F56 },
{0x1F60, 3, pci_vid_1F60 },
{0x1F67, 10, pci_vid_1F67 },
{0x1FAA, 3, pci_vid_1FAA },
-{0x1FAB, 5, pci_vid_1FAB },
+{0x1FAB, 7, pci_vid_1FAB },
{0x1FB0, 25, pci_vid_1FB0 },
{0x1FC0, 3, pci_vid_1FC0 },
{0x1FC1, 3, pci_vid_1FC1 },
@@ -45718,10 +46244,13 @@ pci_vid_index_t pci_vid_index[] = {
{0x1FE0, 4, pci_vid_1FE0 },
{0x1FE4, 6, pci_vid_1FE4 },
{0x1FF4, 4, pci_vid_1FF4 },
+{0x1FF8, 3, pci_vid_1FF8 },
+{0x1FF9, 1, pci_vid_1FF9 },
{0x2000, 2, pci_vid_2000 },
{0x2001, 1, pci_vid_2001 },
{0x2003, 2, pci_vid_2003 },
{0x2004, 1, pci_vid_2004 },
+{0x2046, 1, pci_vid_2046 },
{0x2048, 1, pci_vid_2048 },
{0x20F4, 1, pci_vid_20F4 },
{0x2116, 1, pci_vid_2116 },
@@ -45730,8 +46259,10 @@ pci_vid_index_t pci_vid_index[] = {
{0x22B8, 2, pci_vid_22B8 },
{0x22DB, 1, pci_vid_22DB },
{0x2304, 1, pci_vid_2304 },
+{0x2321, 1, pci_vid_2321 },
{0x2348, 2, pci_vid_2348 },
-{0x2646, 24, pci_vid_2646 },
+{0x256C, 2, pci_vid_256C },
+{0x2646, 25, pci_vid_2646 },
{0x270B, 1, pci_vid_270B },
{0x270F, 1, pci_vid_270F },
{0x2711, 1, pci_vid_2711 },
@@ -45746,16 +46277,18 @@ pci_vid_index_t pci_vid_index[] = {
{0x3130, 1, pci_vid_3130 },
{0x3142, 1, pci_vid_3142 },
{0x31AB, 2, pci_vid_31AB },
-{0x328F, 2, pci_vid_328F },
+{0x328F, 3, pci_vid_328F },
{0x3388, 28, pci_vid_3388 },
{0x3411, 1, pci_vid_3411 },
{0x3442, 3, pci_vid_3442 },
{0x3475, 1, pci_vid_3475 },
{0x34BA, 1, pci_vid_34BA },
{0x3513, 1, pci_vid_3513 },
+{0x369A, 1, pci_vid_369A },
{0x37D9, 5, pci_vid_37D9 },
{0x3842, 1, pci_vid_3842 },
{0x38EF, 1, pci_vid_38EF },
+{0x393E, 1, pci_vid_393E },
{0x3D3D, 49, pci_vid_3D3D },
{0x4005, 16, pci_vid_4005 },
{0x4033, 2, pci_vid_4033 },
@@ -45784,15 +46317,17 @@ pci_vid_index_t pci_vid_index[] = {
{0x4978, 1, pci_vid_4978 },
{0x4A14, 3, pci_vid_4A14 },
{0x4B10, 1, pci_vid_4B10 },
+{0x4B43, 1, pci_vid_4B43 },
{0x4C48, 1, pci_vid_4C48 },
-{0x4C4D, 1, pci_vid_4C4D },
-{0x4C52, 1, pci_vid_4C52 },
+{0x4C4D, 3, pci_vid_4C4D },
+{0x4C52, 9, pci_vid_4C52 },
{0x4C53, 6, pci_vid_4C53 },
{0x4CA1, 1, pci_vid_4CA1 },
{0x4D51, 2, pci_vid_4D51 },
{0x4D54, 1, pci_vid_4D54 },
{0x4D56, 10, pci_vid_4D56 },
{0x4DDC, 27, pci_vid_4DDC },
+{0x4E4C, 1, pci_vid_4E4C },
{0x4E58, 2, pci_vid_4E58 },
{0x5045, 2, pci_vid_5045 },
{0x5046, 2, pci_vid_5046 },
@@ -45813,7 +46348,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x5456, 1, pci_vid_5456 },
{0x5519, 1, pci_vid_5519 },
{0x5544, 2, pci_vid_5544 },
-{0x5555, 3, pci_vid_5555 },
+{0x5555, 4, pci_vid_5555 },
{0x5646, 1, pci_vid_5646 },
{0x5654, 1, pci_vid_5654 },
{0x5678, 1, pci_vid_5678 },
@@ -45841,6 +46376,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x6903, 1, pci_vid_6903 },
{0x6909, 1, pci_vid_6909 },
{0x6910, 1, pci_vid_6910 },
+{0x6F67, 1, pci_vid_6F67 },
{0x7063, 4, pci_vid_7063 },
{0x7284, 1, pci_vid_7284 },
{0x7357, 2, pci_vid_7357 },
@@ -45854,8 +46390,8 @@ pci_vid_index_t pci_vid_index[] = {
{0x7FED, 1, pci_vid_7FED },
{0x8008, 4, pci_vid_8008 },
{0x807D, 1, pci_vid_807D },
-{0x8086, 8561, pci_vid_8086 },
-{0x8088, 60, pci_vid_8088 },
+{0x8086, 8763, pci_vid_8086 },
+{0x8088, 76, pci_vid_8088 },
{0x80EE, 3, pci_vid_80EE },
{0x8322, 1, pci_vid_8322 },
{0x8384, 1, pci_vid_8384 },
@@ -45864,7 +46400,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x8686, 3, pci_vid_8686 },
{0x8800, 2, pci_vid_8800 },
{0x8820, 2, pci_vid_8820 },
-{0x8848, 15, pci_vid_8848 },
+{0x8848, 23, pci_vid_8848 },
{0x8866, 1, pci_vid_8866 },
{0x8888, 1, pci_vid_8888 },
{0x8912, 1, pci_vid_8912 },
@@ -45872,7 +46408,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x8E0E, 1, pci_vid_8E0E },
{0x8E2E, 2, pci_vid_8E2E },
{0x9004, 110, pci_vid_9004 },
-{0x9005, 386, pci_vid_9005 },
+{0x9005, 393, pci_vid_9005 },
{0x907F, 2, pci_vid_907F },
{0x919A, 1, pci_vid_919A },
{0x9412, 2, pci_vid_9412 },
@@ -45924,7 +46460,7 @@ pci_vid_index_t pci_vid_index[] = {
{0xBD11, 1, pci_vid_BD11 },
{0xBDBD, 37, pci_vid_BDBD },
{0xC001, 1, pci_vid_C001 },
-{0xC0A9, 6, pci_vid_C0A9 },
+{0xC0A9, 8, pci_vid_C0A9 },
{0xC0DE, 1, pci_vid_C0DE },
{0xC0FE, 1, pci_vid_C0FE },
{0xCA01, 2, pci_vid_CA01 },
@@ -45987,9 +46523,9 @@ pci_vid_index_t pci_vid_index[] = {
{0xFFFD, 2, pci_vid_FFFD },
{0xFFFE, 2, pci_vid_FFFE },
{0xFFFF, 1, pci_vid_FFFF },
-}; /* We have 2363 VIDs */
+}; /* We have 2376 VIDs */
-static pci_vid_index_t *get_vid_index(uint16_t vid)
+static pci_vid_index_t const *get_vid_index(uint16_t vid)
{
uint32_t start_index = 0;
uint32_t end_index = 0;
@@ -46026,9 +46562,9 @@ static pci_vid_index_t *get_vid_index(uint16_t vid)
const char *pci_id_str(uint16_t vid, uint16_t did, uint16_t svid, uint16_t ssid)
{
unsigned int i;
- static char *not_found = "Not found";
- pci_vid_index_t *index_ptr;
- pci_id_t *ids_ptr;
+ static const char *not_found = "Not found";
+ pci_vid_index_t const *index_ptr;
+ pci_id_t const *ids_ptr;
index_ptr = get_vid_index(vid);
diff --git a/epan/prefs.c b/epan/prefs.c
index 4625ec3d..0d3f0532 100644
--- a/epan/prefs.c
+++ b/epan/prefs.c
@@ -1705,7 +1705,11 @@ range_t* prefs_get_range_value_real(pref_t *pref, pref_source_t source)
range_t* prefs_get_range_value(const char *module_name, const char* pref_name)
{
- return prefs_get_range_value_real(prefs_find_preference(prefs_find_module(module_name), pref_name), pref_current);
+ pref_t *pref = prefs_find_preference(prefs_find_module(module_name), pref_name);
+ if (pref == NULL) {
+ return NULL;
+ }
+ return prefs_get_range_value_real(pref, pref_current);
}
void
@@ -2323,17 +2327,6 @@ pref_clean_stash(pref_t *pref, gpointer unused _U_)
return 0;
}
-#if 0
-/* Return the value assigned to the given uint preference. */
-guint
-prefs_get_uint_preference(pref_t *pref)
-{
- if (pref && pref->type == PREF_UINT)
- return *pref->varp.uint;
- return 0;
-}
-#endif
-
/*
* Call a callback function, with a specified argument, for each preference
* in a given module.
@@ -3369,9 +3362,13 @@ prefs_register_modules(void)
"The maximum number of items that can be added to the dissection tree (Increase with caution)",
10,
&prefs.gui_max_tree_items);
+ /*
+ * Used independently by proto_tree_add_node, call_dissector*, dissector_try_heuristic,
+ * and increment_dissection_depth.
+ */
prefs_register_uint_preference(gui_module, "max_tree_depth",
- "Maximum tree depth",
- "The maximum depth of the dissection tree (Increase with caution)",
+ "Maximum dissection depth",
+ "The maximum depth for dissection tree and protocol layer checks. (Increase with caution)",
10,
&prefs.gui_max_tree_depth);
@@ -4827,7 +4824,11 @@ guint prefs_get_uint_value_real(pref_t *pref, pref_source_t source)
guint prefs_get_uint_value(const char *module_name, const char* pref_name)
{
- return prefs_get_uint_value_real(prefs_find_preference(prefs_find_module(module_name), pref_name), pref_current);
+ pref_t *pref = prefs_find_preference(prefs_find_module(module_name), pref_name);
+ if (pref == NULL) {
+ return 0;
+ }
+ return prefs_get_uint_value_real(pref, pref_current);
}
char* prefs_get_password_value(pref_t *pref, pref_source_t source)
diff --git a/epan/print.c b/epan/print.c
index fc68b69d..531c9d64 100644
--- a/epan/print.c
+++ b/epan/print.c
@@ -1635,13 +1635,17 @@ static gchar *csv_massage_str(const gchar *source, const gchar *exceptions)
return csv_str;
}
-static void csv_write_str(const char *str, char sep, FILE *fh)
+static void csv_write_str(const char *str, char sep, FILE *fh, gboolean print_separator)
{
gchar *csv_str;
/* Do not escape the UTF-8 right arrow character */
csv_str = csv_massage_str(str, UTF8_RIGHTWARDS_ARROW);
- fprintf(fh, "\"%s\"%c", csv_str, sep);
+ if (print_separator) {
+ fprintf(fh, "%c\"%s\"", sep, csv_str);
+ } else {
+ fprintf(fh, "\"%s\"", csv_str);
+ }
g_free(csv_str);
}
@@ -1649,26 +1653,36 @@ void
write_csv_column_titles(column_info *cinfo, FILE *fh)
{
gint i;
+ gboolean print_separator = FALSE;
+ // Avoid printing separator for first column
- for (i = 0; i < cinfo->num_cols - 1; i++) {
+ for (i = 0; i < cinfo->num_cols; i++) {
if (!get_column_visible(i))
continue;
- csv_write_str(cinfo->columns[i].col_title, ',', fh);
+ csv_write_str(cinfo->columns[i].col_title, ',', fh, print_separator);
+ print_separator = TRUE;
+ }
+ if (print_separator) { // Only add line break if anything was output
+ fprintf(fh, "\n");
}
- csv_write_str(cinfo->columns[i].col_title, '\n', fh);
}
void
write_csv_columns(epan_dissect_t *edt, FILE *fh)
{
gint i;
+ gboolean print_separator = FALSE;
+ // Avoid printing separator for first column
- for (i = 0; i < edt->pi.cinfo->num_cols - 1; i++) {
+ for (i = 0; i < edt->pi.cinfo->num_cols; i++) {
if (!get_column_visible(i))
continue;
- csv_write_str(get_column_text(edt->pi.cinfo, i), ',', fh);
+ csv_write_str(get_column_text(edt->pi.cinfo, i), ',', fh, print_separator);
+ print_separator = TRUE;
+ }
+ if (print_separator) { // Only add line break if anything was output
+ fprintf(fh, "\n");
}
- csv_write_str(get_column_text(edt->pi.cinfo,i), '\n', fh);
}
void
diff --git a/epan/proto.c b/epan/proto.c
index f87ede38..c744485d 100644
--- a/epan/proto.c
+++ b/epan/proto.c
@@ -7104,10 +7104,10 @@ proto_custom_set(proto_tree* tree, GSList *field_ids, gint occurrence,
offset_e = (int)strlen(expr);
} else if (hfinfo->type == FT_NONE || hfinfo->type == FT_PROTOCOL) {
/* Prevent multiple check marks */
- if (strstr(result, UTF8_CHECK_MARK ",") == NULL) {
- offset_e += proto_item_fill_display_label(finfo, result+offset_e, size-offset_e);
+ if (strstr(expr, UTF8_CHECK_MARK ",") == NULL) {
+ offset_e += proto_item_fill_display_label(finfo, expr+offset_e, size-offset_e);
} else {
- result[--offset_e] = '\0'; /* Remove the added trailing ',' again */
+ expr[--offset_e] = '\0'; /* Remove the added trailing ',' again */
}
} else {
str = fvalue_to_string_repr(NULL, finfo->value, FTREPR_DISPLAY, finfo->hfinfo->display);
diff --git a/epan/protobuf_lang_tree.c b/epan/protobuf_lang_tree.c
index 0a27df6c..ba1475fc 100644
--- a/epan/protobuf_lang_tree.c
+++ b/epan/protobuf_lang_tree.c
@@ -11,12 +11,27 @@
*/
#include <string.h>
+#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include "protobuf_lang_tree.h"
#include "protobuf-helper.h" /* only for PROTOBUF_TYPE_XXX enumeration */
+#define MAX_PROTOBUF_NODE_DEPTH 100
+static bool
+check_node_depth(const pbl_node_t *node)
+{
+ int depth = 1;
+ for (const pbl_node_t *parent = node; parent ; parent = parent->parent) {
+ depth++;
+ }
+ if (depth > MAX_PROTOBUF_NODE_DEPTH) {
+ return false;
+ }
+ return true;
+}
+
extern void
pbl_parser_error(protobuf_lang_state_t *state, const char *fmt, ...);
@@ -277,6 +292,7 @@ pbl_find_node_in_pool(const pbl_descriptor_pool_t* pool, const char* full_name,
/* get the full name of node. if it is NULL, it will be built. */
const char*
+// NOLINTNEXTLINE(misc-no-recursion)
pbl_get_node_full_name(pbl_node_t* node)
{
const char* parent_full_name;
@@ -292,6 +308,9 @@ pbl_get_node_full_name(pbl_node_t* node)
}
if (node->nodetype == PBL_ONEOF) {
+ if (!check_node_depth(node)) {
+ return NULL;
+ }
return pbl_get_node_full_name(node->parent);
}
@@ -745,6 +764,7 @@ pbl_enum_value_descriptor_number(const pbl_enum_value_descriptor_t* enumValue)
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
pbl_traverse_sub_tree(const pbl_node_t* node, void (*cb)(const pbl_message_descriptor_t*, void*), void* userdata)
{
GList* it;
@@ -757,6 +777,9 @@ pbl_traverse_sub_tree(const pbl_node_t* node, void (*cb)(const pbl_message_descr
}
if (node->children) {
+ if (!check_node_depth(node)) {
+ return;
+ }
for (it = g_queue_peek_head_link(node->children); it; it = it->next) {
pbl_traverse_sub_tree((const pbl_node_t*) it->data, cb, userdata);
}
@@ -985,6 +1008,7 @@ pbl_node_t* pbl_create_option_node(pbl_file_descriptor_t* file, int lineno,
/* add a node as a child of parent node, and return the parent pointer */
pbl_node_t*
+// NOLINTNEXTLINE(misc-no-recursion)
pbl_add_child(pbl_node_t* parent, pbl_node_t* child)
{
pbl_node_t* node = NULL;
@@ -992,6 +1016,10 @@ pbl_add_child(pbl_node_t* parent, pbl_node_t* child)
return parent;
}
+ if (!check_node_depth(parent)) {
+ return NULL;
+ }
+
/* add a message node for mapField first */
if (child->nodetype == PBL_MAP_FIELD) {
node = pbl_create_node(child->file, child->lineno, PBL_MESSAGE, ((pbl_field_descriptor_t*)child)->type_name);
@@ -1070,6 +1098,7 @@ pbl_add_child(pbl_node_t* parent, pbl_node_t* child)
/* merge one('from') node's children to another('to') node, and return the 'to' pointer */
pbl_node_t*
+// NOLINTNEXTLINE(misc-no-recursion)
pbl_merge_children(pbl_node_t* to, pbl_node_t* from)
{
GList* it;
@@ -1120,6 +1149,7 @@ pbl_merge_children(pbl_node_t* to, pbl_node_t* from)
/* free a pbl_node_t and its children. */
void
+// NOLINTNEXTLINE(misc-no-recursion)
pbl_free_node(gpointer anode)
{
pbl_method_descriptor_t* method_node;
@@ -1158,6 +1188,7 @@ pbl_free_node(gpointer anode)
g_free(field_node->default_value.s);
}
if (field_node->options_node) {
+ // We recurse here, but we're limited by depth checks at allocation time
pbl_free_node(field_node->options_node);
}
break;
diff --git a/epan/services-data.c b/epan/services-data.c
index 47766eea..a5f42924 100644
--- a/epan/services-data.c
+++ b/epan/services-data.c
@@ -2736,7 +2736,7 @@ static ws_services_entry_t global_tcp_udp_services_table[] = {
{ 3154, "ccmrmi", "ON RMI Registry" },
{ 3155, "jpegmpeg", "JpegMpeg Port" },
{ 3156, "indura", "Indura Collector" },
- { 3157, "e3consultants", "CCC Listener Port" },
+ { 3157, "lsa-comm", "LSA Communicator" },
{ 3158, "stvp", "SmashTV Protocol" },
{ 3159, "navegaweb-port", "NavegaWeb Tarification" },
{ 3160, "tip-app-server", "TIP Application Server" },
@@ -4242,6 +4242,68 @@ static ws_services_entry_t global_tcp_udp_services_table[] = {
{ 5992, "consul-insight", "Consul InSight Security" },
{ 5999, "cvsup", "CVSup" },
{ 6000, "x11", "X Window System" },
+ { 6001, "x11", "X Window System" },
+ { 6002, "x11", "X Window System" },
+ { 6003, "x11", "X Window System" },
+ { 6004, "x11", "X Window System" },
+ { 6005, "x11", "X Window System" },
+ { 6006, "x11", "X Window System" },
+ { 6007, "x11", "X Window System" },
+ { 6008, "x11", "X Window System" },
+ { 6009, "x11", "X Window System" },
+ { 6010, "x11", "X Window System" },
+ { 6011, "x11", "X Window System" },
+ { 6012, "x11", "X Window System" },
+ { 6013, "x11", "X Window System" },
+ { 6014, "x11", "X Window System" },
+ { 6015, "x11", "X Window System" },
+ { 6016, "x11", "X Window System" },
+ { 6017, "x11", "X Window System" },
+ { 6018, "x11", "X Window System" },
+ { 6019, "x11", "X Window System" },
+ { 6020, "x11", "X Window System" },
+ { 6021, "x11", "X Window System" },
+ { 6022, "x11", "X Window System" },
+ { 6023, "x11", "X Window System" },
+ { 6024, "x11", "X Window System" },
+ { 6025, "x11", "X Window System" },
+ { 6026, "x11", "X Window System" },
+ { 6027, "x11", "X Window System" },
+ { 6028, "x11", "X Window System" },
+ { 6029, "x11", "X Window System" },
+ { 6030, "x11", "X Window System" },
+ { 6031, "x11", "X Window System" },
+ { 6032, "x11", "X Window System" },
+ { 6033, "x11", "X Window System" },
+ { 6034, "x11", "X Window System" },
+ { 6035, "x11", "X Window System" },
+ { 6036, "x11", "X Window System" },
+ { 6037, "x11", "X Window System" },
+ { 6038, "x11", "X Window System" },
+ { 6039, "x11", "X Window System" },
+ { 6040, "x11", "X Window System" },
+ { 6041, "x11", "X Window System" },
+ { 6042, "x11", "X Window System" },
+ { 6043, "x11", "X Window System" },
+ { 6044, "x11", "X Window System" },
+ { 6045, "x11", "X Window System" },
+ { 6046, "x11", "X Window System" },
+ { 6047, "x11", "X Window System" },
+ { 6048, "x11", "X Window System" },
+ { 6049, "x11", "X Window System" },
+ { 6050, "x11", "X Window System" },
+ { 6051, "x11", "X Window System" },
+ { 6052, "x11", "X Window System" },
+ { 6053, "x11", "X Window System" },
+ { 6054, "x11", "X Window System" },
+ { 6055, "x11", "X Window System" },
+ { 6056, "x11", "X Window System" },
+ { 6057, "x11", "X Window System" },
+ { 6058, "x11", "X Window System" },
+ { 6059, "x11", "X Window System" },
+ { 6060, "x11", "X Window System" },
+ { 6061, "x11", "X Window System" },
+ { 6062, "x11", "X Window System" },
{ 6063, "x11", "X Window System" },
{ 6064, "ndl-ahp-svc", "NDL-AHP-SVC" },
{ 6065, "winpharaoh", "WinPharaoh" },
@@ -5467,6 +5529,7 @@ static ws_services_entry_t global_tcp_services_table[] = {
{ 5473, "apsolab-tags", "The Apsolab company's secure dynamic tag protocol" },
{ 5475, "apsolab-data", "The Apsolab company's data retrieval protocol" },
{ 5507, "psl-management", "PowerSysLab Electrical Management" },
+ { 5543, "qftest-licserve", "QF-Test License Server" },
{ 5550, "cbus", "Model Railway control using the CBUS message protocol" },
{ 5557, "farenet", "Sandlab FARENET" },
{ 5565, "dp-bura", "Data Protector BURA" },
@@ -5548,6 +5611,9 @@ static ws_services_entry_t global_tcp_services_table[] = {
{ 6655, "pcs-sf-ui-man", "PC SOFT - Software factory UI/manager" },
{ 6656, "emgmsg", "Emergency Message Control Service" },
{ 6665, "ircu", "IRCU" },
+ { 6666, "ircu", "IRCU" },
+ { 6667, "ircu", "IRCU" },
+ { 6668, "ircu", "IRCU" },
{ 6669, "ircu", "IRCU" },
{ 6678, "vfbp", "Viscount Freedom Bridge Protocol" },
{ 6687, "clever-ctrace", "CleverView for cTrace Message Service" },
@@ -5627,7 +5693,6 @@ static ws_services_entry_t global_tcp_services_table[] = {
{ 8066, "toad-bi-appsrvr", "Toad BI Application Server" },
{ 8067, "infi-async", "Infinidat async replication" },
{ 8070, "ucs-isc", "Oracle Unified Communication Suite's Indexed Search Converter" },
- { 8077, "mles", "Mles is a client-server data distribution protocol targeted to serve as a lightweight and reliable distributed publish/subscribe database service." },
{ 8084, "websnp", "Snarl Network Protocol over HTTP" },
{ 8090, "opsmessaging", "Vehicle to station messaging" },
{ 8091, "jamlink", "Jam Link Framework" },
@@ -5820,6 +5885,7 @@ static ws_services_entry_t global_tcp_services_table[] = {
{ 24577, "bilobit", "bilobit Service" },
{ 24666, "sdtvwcam", "Service used by SmarDTV to communicate between a CAM and a second screen application" },
{ 24754, "cslg", "Citrix StorageLink Gateway" },
+ { 25100, "db2c-tls", "IBM Db2 Client Interface - Encrypted" },
{ 25576, "sauterdongle", "Sauter Dongle" },
{ 25604, "idtp", "Identifier Tracing Protocol" },
{ 26257, "cockroach", "CockroachDB" },
@@ -5922,8 +5988,8 @@ static ws_services_entry_t global_udp_services_table[] = {
{ 775, "acmaint-transd", "" },
{ 861, "owamp-test", "OWAMP-Test" },
{ 862, "twamp-test", "TWAMP-Test Receiver Port" },
- { 914, "rift-lies", "Routing in Fat Trees Link Information Elements (TEMPORARY - registered 2023-02-17, expires 2024-02-17)" },
- { 915, "rift-ties", "Routing in Fat Trees Topology Information Elements (TEMPORARY - registered 2023-02-17, expires 2024-02-17)" },
+ { 914, "rift-lies", "Routing in Fat Trees Link Information Elements (TEMPORARY - registered 2023-02-17, extension registered 2024-01-12, expires 2025-02-17)" },
+ { 915, "rift-ties", "Routing in Fat Trees Topology Information Elements (TEMPORARY - registered 2023-02-17, extension registered 2024-01-12, expires 2025-02-17)" },
{ 998, "puparp", "" },
{ 999, "applix", "Applix ac" },
{ 1027, "6a44", "IPv6 Behind NAT44 CPEs" },
diff --git a/epan/show_exception.c b/epan/show_exception.c
index 1ab395ce..2b6e29d6 100644
--- a/epan/show_exception.c
+++ b/epan/show_exception.c
@@ -35,14 +35,17 @@ static expert_field ei_unreassembled = EI_INIT;
void
register_show_exception(void)
{
- static ei_register_info ei[] = {
+ static ei_register_info ei_malformed_set[] = {
{ &ei_malformed_dissector_bug, { "_ws.malformed.dissector_bug", PI_MALFORMED, PI_ERROR, "Dissector bug", EXPFILL }},
{ &ei_malformed_reassembly, { "_ws.malformed.reassembly", PI_MALFORMED, PI_ERROR, "Reassembly error", EXPFILL }},
{ &ei_malformed, { "_ws.malformed.expert", PI_MALFORMED, PI_ERROR, "Malformed Packet (Exception occurred)", EXPFILL }},
+ };
+ static ei_register_info ei_unreassembled_set[] = {
{ &ei_unreassembled, { "_ws.unreassembled.expert", PI_REASSEMBLE, PI_NOTE, "Unreassembled fragment (change preferences to enable reassembly)", EXPFILL }},
};
expert_module_t* expert_malformed;
+ expert_module_t* expert_unreassembled;
proto_short = proto_register_protocol("Short Frame", "Short frame", "_ws.short");
proto_malformed = proto_register_protocol("Malformed Packet",
@@ -52,7 +55,9 @@ register_show_exception(void)
"Unreassembled fragmented packet", "_ws.unreassembled");
expert_malformed = expert_register_protocol(proto_malformed);
- expert_register_field_array(expert_malformed, ei, array_length(ei));
+ expert_register_field_array(expert_malformed, ei_malformed_set, array_length(ei_malformed_set));
+ expert_unreassembled = expert_register_protocol(proto_unreassembled);
+ expert_register_field_array(expert_unreassembled, ei_unreassembled_set, array_length(ei_unreassembled_set));
/* "Short Frame", "Malformed Packet", and "Unreassembled Fragmented
Packet" aren't really protocols, they're error indications;
diff --git a/epan/strutil.c b/epan/strutil.c
index c3546a39..88260ad8 100644
--- a/epan/strutil.c
+++ b/epan/strutil.c
@@ -131,6 +131,10 @@ is_byte_sep(guint8 c)
/* Turn a string of hex digits with optional separators (defined by
* is_byte_sep() into a byte array.
+ *
+ * XXX - This function is perhaps too generous in what it accepts.
+ * It allows the separator to change from one character to another,
+ * or to and from no separator if force_separators is false.
*/
gboolean
hex_str_to_bytes(const char *hex_str, GByteArray *bytes, gboolean force_separators)
@@ -152,9 +156,19 @@ hex_str_to_bytes(const char *hex_str, GByteArray *bytes, gboolean force_separato
r = p+2;
s = p+3;
- if (*q && *r && *s
+ if (*q && *r
&& g_ascii_isxdigit(*p) && g_ascii_isxdigit(*q) &&
- g_ascii_isxdigit(*r) && g_ascii_isxdigit(*s)) {
+ g_ascii_isxdigit(*r)) {
+
+ /*
+ * Three hex bytes in a row, followed by a non hex byte
+ * (possibly the end of the string). We don't accept an
+ * odd number of hex digits except for single digits
+ * by themselves or after a separator.
+ */
+ if (!g_ascii_isxdigit(*s)) {
+ return FALSE;
+ }
four_digits_first_half[0] = *p;
four_digits_first_half[1] = *q;
four_digits_first_half[2] = '\0';
@@ -174,7 +188,7 @@ hex_str_to_bytes(const char *hex_str, GByteArray *bytes, gboolean force_separato
if (*punct) {
/*
* Make sure the character after
- * the forth hex digit is a byte
+ * the fourth hex digit is a byte
* separator, i.e. that we don't have
* more than four hex digits, or a
* bogus character.
diff --git a/epan/wslua/init_wslua.c b/epan/wslua/init_wslua.c
index 40093265..9217a4ab 100644
--- a/epan/wslua/init_wslua.c
+++ b/epan/wslua/init_wslua.c
@@ -969,7 +969,7 @@ add_table_symbol(const char *table, const char *name, int value)
lua_getglobal(L, table);
/* Set symbol in table. */
lua_pushstring(L, name);
- lua_pushnumber(L, value);
+ lua_pushinteger(L, value);
lua_settable(L, -3);
/* Pop table from stack. */
lua_pop(L, 1);
@@ -979,7 +979,7 @@ static void
add_global_symbol(const char *name, int value)
{
/* Set symbol in global environment. */
- lua_pushnumber(L, value);
+ lua_pushinteger(L, value);
lua_setglobal(L, name);
}
@@ -988,7 +988,7 @@ add_pi_severity_symbol(const char *name, int value)
{
lua_getglobal(L, WSLUA_EXPERT_TABLE);
lua_getfield(L, -1, WSLUA_EXPERT_SEVERITY_TABLE);
- lua_pushnumber(L, value);
+ lua_pushinteger(L, value);
lua_setfield(L, -2, name);
lua_pop(L, 2);
}
@@ -998,7 +998,7 @@ add_pi_group_symbol(const char *name, int value)
{
lua_getglobal(L, WSLUA_EXPERT_TABLE);
lua_getfield(L, -1, WSLUA_EXPERT_GROUP_TABLE);
- lua_pushnumber(L, value);
+ lua_pushinteger(L, value);
lua_setfield(L, -2, name);
lua_pop(L, 2);
}
@@ -1007,7 +1007,7 @@ static void
add_menu_group_symbol(const char *name, int value)
{
/* Set symbol in global environment. */
- lua_pushnumber(L, value);
+ lua_pushinteger(L, value);
char *str = g_strdup(name);
char *s = strstr(str, "_GROUP_");
if (s == NULL)
diff --git a/epan/wslua/lrexlib/pcre2/lpcre2.c b/epan/wslua/lrexlib/pcre2/lpcre2.c
index f24cbec8..ee1926f8 100644
--- a/epan/wslua/lrexlib/pcre2/lpcre2.c
+++ b/epan/wslua/lrexlib/pcre2/lpcre2.c
@@ -432,7 +432,7 @@ static int Lpcre2_jit_compile (lua_State *L) {
#define SET_INFO_FIELD(L,ud,what,name,valtype) { \
valtype val; \
if (0 == pcre2_pattern_info (ud->pr, what, &val)) { \
- lua_pushnumber (L, val); \
+ lua_pushinteger (L, val); \
lua_setfield (L, -2, name); \
} \
}
diff --git a/epan/wslua/lua_bitop.c b/epan/wslua/lua_bitop.c
index 2f3c3eeb..52be189a 100644
--- a/epan/wslua/lua_bitop.c
+++ b/epan/wslua/lua_bitop.c
@@ -24,7 +24,7 @@ typedef uint32_t UBits;
typedef union {
lua_Number n;
-#ifdef LUA_NUMBER_DOUBLE
+#if defined(LUA_NUMBER_DOUBLE) || defined(LUA_FLOAT_DOUBLE)
uint64_t b;
#else
UBits b;
@@ -41,24 +41,25 @@ static UBits barg(lua_State *L, int idx)
#else
bn.n = luaL_checknumber(L, idx);
#endif
-#if defined(LUA_NUMBER_DOUBLE)
+#if defined(LUA_NUMBER_DOUBLE) || defined(LUA_FLOAT_DOUBLE)
bn.n += 6755399441055744.0; /* 2^52+2^51 */
#ifdef SWAPPED_DOUBLE
b = (UBits)(bn.b >> 32);
#else
b = (UBits)bn.b;
#endif
-#elif defined(LUA_NUMBER_INT) || defined(LUA_NUMBER_LONG) || \
- defined(LUA_NUMBER_LONGLONG) || defined(LUA_NUMBER_LONG_LONG) || \
- defined(LUA_NUMBER_LLONG)
+#elif defined(LUA_NUMBER_INT) || defined(LUA_INT_INT) || \
+ defined(LUA_NUMBER_LONG) || defined(LUA_INT_LONG) || \
+ defined(LUA_NUMBER_LONGLONG) || defined(LUA_INT_LONGLONG) || \
+ defined(LUA_NUMBER_LONG_LONG) || defined(LUA_NUMBER_LLONG)
if (sizeof(UBits) == sizeof(lua_Number))
b = bn.b;
else
b = (UBits)(SBits)bn.n;
-#elif defined(LUA_NUMBER_FLOAT)
+#elif defined(LUA_NUMBER_FLOAT) || defined(LUA_FLOAT_FLOAT)
#error "A 'float' lua_Number type is incompatible with this library"
#else
-#error "Unknown number type, check LUA_NUMBER_* in luaconf.h"
+#error "Unknown number type, check LUA_NUMBER_*, LUA_FLOAT_*, LUA_INT_* in luaconf.h"
#endif
#if LUA_VERSION_NUM < 502
if (b == 0 && !lua_isnumber(L, idx)) {
@@ -69,7 +70,11 @@ static UBits barg(lua_State *L, int idx)
}
/* Return bit type. */
+#if LUA_VERSION_NUM < 503
#define BRET(b) lua_pushnumber(L, (lua_Number)(SBits)(b)); return 1;
+#else
+#define BRET(b) lua_pushinteger(L, (lua_Integer)(SBits)(b)); return 1;
+#endif
static int bit_tobit(lua_State *L) { BRET(barg(L, 1)) }
static int bit_bnot(lua_State *L) { BRET(~barg(L, 1)) }
@@ -141,11 +146,15 @@ static const struct luaL_Reg bit_funcs[] = {
LUALIB_API int luaopen_bit(lua_State *L)
{
UBits b;
+#if LUA_VERSION_NUM < 503
lua_pushnumber(L, (lua_Number)1437217655L);
+#else
+ lua_pushinteger(L, (lua_Integer)1437217655L);
+#endif
b = barg(L, -1);
if (b != (UBits)1437217655L || BAD_SAR) { /* Perform a simple self-test. */
const char *msg = "compiled with incompatible luaconf.h";
-#ifdef LUA_NUMBER_DOUBLE
+#if defined(LUA_NUMBER_DOUBLE) || defined(LUA_FLOAT_DOUBLE)
#ifdef _WIN32
if (b == (UBits)1610612736L)
msg = "use D3DCREATE_FPU_PRESERVE with DirectX";
diff --git a/epan/wslua/make-taps.py b/epan/wslua/make-taps.py
index 14c5a397..ed677ff5 100755
--- a/epan/wslua/make-taps.py
+++ b/epan/wslua/make-taps.py
@@ -34,18 +34,18 @@ def get_tap_info(tap_name, header_file, struct_name, enum_types):
types = {
'gchar[]': 'lua_pushstring(L,(const char*)v->STR);',
'gchar*': 'lua_pushstring(L,(const char*)v->STR);',
- 'guint': 'lua_pushnumber(L,(lua_Number)v->STR);',
- 'guint8': 'lua_pushnumber(L,(lua_Number)v->STR);',
- 'guint16': 'lua_pushnumber(L,(lua_Number)v->STR);',
- 'guint32': 'lua_pushnumber(L,(lua_Number)v->STR);',
- 'gint': 'lua_pushnumber(L,(lua_Number)v->STR);',
- 'gint8': 'lua_pushnumber(L,(lua_Number)v->STR);',
- 'gint16': 'lua_pushnumber(L,(lua_Number)v->STR);',
- 'gint32': 'lua_pushnumber(L,(lua_Number)v->STR);',
+ 'guint': 'lua_pushinteger(L,(lua_Integer)v->STR);',
+ 'guint8': 'lua_pushinteger(L,(lua_Integer)v->STR);',
+ 'guint16': 'lua_pushinteger(L,(lua_Integer)v->STR);',
+ 'guint32': 'lua_pushinteger(L,(lua_Integer)v->STR);',
+ 'gint': 'lua_pushinteger(L,(lua_Integer)v->STR);',
+ 'gint8': 'lua_pushinteger(L,(lua_Integer)v->STR);',
+ 'gint16': 'lua_pushinteger(L,(lua_Integer)v->STR);',
+ 'gint32': 'lua_pushinteger(L,(lua_Integer)v->STR);',
'gboolean': 'lua_pushboolean(L,(int)v->STR);',
'address': '{ Address a = (Address)g_malloc(sizeof(address)); copy_address(a, &(v->STR)); pushAddress(L,a); }',
'address*': '{ Address a = (Address)g_malloc(sizeof(address)); copy_address(a, v->STR); pushAddress(L,a); }',
- 'int': 'lua_pushnumber(L,(lua_Number)v->STR);',
+ 'int': 'lua_pushinteger(L,(lua_Integer)v->STR);',
'nstime_t': 'lua_pushnumber(L,(lua_Number)nstime_to_sec(&(v->STR)));',
'nstime_t*': 'lua_pushnumber(L,(lua_Number)nstime_to_sec(v->STR));',
}
@@ -79,7 +79,7 @@ def get_tap_info(tap_name, header_file, struct_name, enum_types):
for enum in enum_types:
m = re.search(fr'typedef\s+enum[^{{]*{{([^}}]*)}}[\s\n]*{enum}[\s\n]*;', buf, flags=re.DOTALL)
if m:
- types[enum] = f'lua_pushnumber(L,(lua_Number)v->STR); /* {enum} */'
+ types[enum] = f'lua_pushinteger(L,(lua_Integer)v->STR); /* {enum} */'
econsts = m.group(1).splitlines()
econsts = [re.sub(r'\s+', '', item) for item in econsts]
econsts = [re.sub(',', '', item) for item in econsts]
@@ -183,9 +183,9 @@ def main():
c_body += f'\n\t/*\n\t * {enum}\n\t */\n\tlua_newtable(L);\n'
for econst in enums[enum]:
c_body += f'''\
- lua_pushnumber(L,(lua_Number){econst});
+ lua_pushinteger(L,(lua_Integer){econst});
lua_setglobal(L,"{econst}");
- lua_pushnumber(L,(lua_Number){econst});
+ lua_pushinteger(L,(lua_Integer){econst});
lua_pushstring(L,"{econst}");
lua_settable(L,-3);
'''
diff --git a/epan/wslua/wslua_byte_array.c b/epan/wslua/wslua_byte_array.c
index 6e6ae304..b0449912 100644
--- a/epan/wslua/wslua_byte_array.c
+++ b/epan/wslua/wslua_byte_array.c
@@ -214,7 +214,7 @@ WSLUA_METHOD ByteArray_get_index(lua_State* L) {
luaL_argerror(L,2,"index out of range");
return 0;
}
- lua_pushnumber(L,ba->data[idx]);
+ lua_pushinteger(L,ba->data[idx]);
WSLUA_RETURN(1); /* The value [0-255] of the byte. */
}
@@ -255,7 +255,7 @@ WSLUA_METHOD ByteArray_le_int(lua_State* L) {
value |= (guint8)ba->data[offset + i];
}
- lua_pushnumber(L, value);
+ lua_pushinteger(L, value);
WSLUA_RETURN(1); /* The value of the little endian encoded signed integer beginning at given offset with given length. */
}
@@ -337,7 +337,7 @@ WSLUA_METHOD ByteArray_le_uint(lua_State* L) {
value |= (guint8)ba->data[offset + i];
}
- lua_pushnumber(L, value);
+ lua_pushinteger(L, value);
WSLUA_RETURN(1); /* The value of the little endian encoded unsigned integer beginning at given offset with given length. */
}
@@ -419,7 +419,7 @@ WSLUA_METHOD ByteArray_int(lua_State* L) {
value |= (guint8)ba->data[offset + i];
}
- lua_pushnumber(L, value);
+ lua_pushinteger(L, value);
WSLUA_RETURN(1); /* The value of the big endian encoded 32 bit signed integer beginning at given offset with given length. */
}
@@ -501,7 +501,7 @@ WSLUA_METHOD ByteArray_uint(lua_State* L) {
value |= (guint8)ba->data[offset + i];
}
- lua_pushnumber(L, value);
+ lua_pushinteger(L, value);
WSLUA_RETURN(1); /* The value of the big endian encoded 32 bit unsigned integer beginning at given offset with given length. */
}
@@ -551,7 +551,7 @@ WSLUA_METHOD ByteArray_len(lua_State* L) {
/* Obtain the length of a <<lua_class_ByteArray,`ByteArray`>>. */
ByteArray ba = checkByteArray(L,1);
- lua_pushnumber(L,(lua_Number)ba->len);
+ lua_pushinteger(L,(lua_Integer)ba->len);
WSLUA_RETURN(1); /* The length of the <<lua_class_ByteArray,`ByteArray`>>. */
}
diff --git a/epan/wslua/wslua_dissector.c b/epan/wslua/wslua_dissector.c
index 5b189308..6181ffbf 100644
--- a/epan/wslua/wslua_dissector.c
+++ b/epan/wslua/wslua_dissector.c
@@ -107,7 +107,7 @@ WSLUA_METHOD Dissector_call(lua_State* L) {
are normal conditions and possibly don't need the Lua traceback. */
if (error) { WSLUA_ERROR(Dissector_call,error); }
- lua_pushnumber(L,(lua_Number)len);
+ lua_pushinteger(L,(lua_Integer)len);
WSLUA_RETURN(1); /* Number of bytes dissected. Note that some dissectors always return number of bytes in incoming buffer, so be aware. */
}
@@ -618,7 +618,7 @@ WSLUA_METHOD DissectorTable_try (lua_State *L) {
if (error) { WSLUA_ERROR(DissectorTable_try,error); }
- lua_pushnumber(L,(lua_Number)len);
+ lua_pushinteger(L,(lua_Integer)len);
WSLUA_RETURN(1); /* Number of bytes dissected. Note that some dissectors always return number of bytes in incoming buffer, so be aware. */
}
diff --git a/epan/wslua/wslua_field.c b/epan/wslua/wslua_field.c
index 17db1974..d7d3e9d7 100644
--- a/epan/wslua/wslua_field.c
+++ b/epan/wslua/wslua_field.c
@@ -50,7 +50,7 @@ WSLUA_METAMETHOD FieldInfo__len(lua_State* L) {
*/
FieldInfo fi = checkFieldInfo(L,1);
- lua_pushnumber(L,fi->ws_fi->length);
+ lua_pushinteger(L,fi->ws_fi->length);
return 1;
}
@@ -61,7 +61,7 @@ WSLUA_METAMETHOD FieldInfo__unm(lua_State* L) {
*/
FieldInfo fi = checkFieldInfo(L,1);
- lua_pushnumber(L,fi->ws_fi->start);
+ lua_pushinteger(L,fi->ws_fi->start);
return 1;
}
@@ -91,13 +91,13 @@ WSLUA_METAMETHOD FieldInfo__call(lua_State* L) {
case FT_UINT24:
case FT_UINT32:
case FT_FRAMENUM:
- lua_pushnumber(L,(lua_Number)(fvalue_get_uinteger(fi->ws_fi->value)));
+ lua_pushinteger(L,(lua_Integer)(fvalue_get_uinteger(fi->ws_fi->value)));
return 1;
case FT_INT8:
case FT_INT16:
case FT_INT24:
case FT_INT32:
- lua_pushnumber(L,(lua_Number)(fvalue_get_sinteger(fi->ws_fi->value)));
+ lua_pushinteger(L,(lua_Integer)(fvalue_get_sinteger(fi->ws_fi->value)));
return 1;
case FT_FLOAT:
case FT_DOUBLE:
@@ -268,7 +268,7 @@ static int FieldInfo_get_type(lua_State* L) {
FieldInfo fi = checkFieldInfo(L,1);
if (fi->ws_fi->hfinfo) {
- lua_pushnumber(L, fi->ws_fi->hfinfo->type);
+ lua_pushinteger(L, fi->ws_fi->hfinfo->type);
}
else {
lua_pushnil(L);
@@ -710,7 +710,7 @@ static int Field_get_type(lua_State* L) {
Field f = checkField(L,1);
header_field_info* hfinfo = NULL;
- GET_HFINFO_MEMBER(lua_pushnumber, type);
+ GET_HFINFO_MEMBER(lua_pushinteger, type);
return 1;
}
diff --git a/epan/wslua/wslua_file.c b/epan/wslua/wslua_file.c
index 2621a997..ff74760f 100644
--- a/epan/wslua/wslua_file.c
+++ b/epan/wslua/wslua_file.c
@@ -152,7 +152,7 @@ static int File_read_number (lua_State *L, FILE_T ft) {
buff[buff_end] = '\0';
if (buff_end > 0 && num_digits > 0 && sscanf(buff, "%lf", &d) == 1) {
- lua_pushnumber(L, d);
+ lua_pushinteger(L, d);
return 1;
}
else {
@@ -338,7 +338,11 @@ WSLUA_METHOD File_seek(lua_State* L) {
static const char *const modenames[] = {"set", "cur", "end", NULL};
File f = checkFile(L,1);
int op = luaL_checkoption(L, 2, "cur", modenames);
+#if LUA_VERSION_NUM >= 503
+ gint64 offset = (gint64)luaL_optinteger(L, 3, 0);
+#else
gint64 offset = (gint64) luaL_optlong(L, 3, 0);
+#endif
int err;
@@ -351,7 +355,7 @@ WSLUA_METHOD File_seek(lua_State* L) {
return 2;
}
- lua_pushnumber(L, (lua_Number)(file_tell(f->file)));
+ lua_pushinteger(L, (lua_Integer)(file_tell(f->file)));
}
else {
offset = wtap_dump_file_seek(f->wdh, offset, mode[op], &err);
@@ -370,7 +374,7 @@ WSLUA_METHOD File_seek(lua_State* L) {
return 2;
}
- lua_pushnumber(L, (lua_Number)(offset));
+ lua_pushinteger(L, (lua_Integer)(offset));
}
WSLUA_RETURN(1); /* The current file cursor position as a number. */
diff --git a/epan/wslua/wslua_file_handler.c b/epan/wslua/wslua_file_handler.c
index f0c9ad83..47f72d45 100644
--- a/epan/wslua/wslua_file_handler.c
+++ b/epan/wslua/wslua_file_handler.c
@@ -326,7 +326,7 @@ wslua_filehandler_seek_read_packet(wtap *wth, gint64 seek_off, wtap_rec *rec, Bu
fp = push_File(L, wth->random_fh);
fc = push_CaptureInfo(L, wth, FALSE);
fi = push_FrameInfo(L, rec, buf);
- lua_pushnumber(L, (lua_Number)seek_off);
+ lua_pushinteger(L, (lua_Integer)seek_off);
switch ( lua_pcall(L,4,1,1) ) {
case 0:
@@ -474,7 +474,7 @@ wslua_filehandler_can_write_encap(int encap, void* data)
INIT_FILEHANDLER_ROUTINE(can_write_encap,WTAP_ERR_UNWRITABLE_ENCAP,NULL,NULL);
- lua_pushnumber(L, encap);
+ lua_pushinteger(L, encap);
switch ( lua_pcall(L,1,1,1) ) {
case 0:
@@ -842,7 +842,7 @@ WSLUA_FUNCTION wslua_register_filehandler(lua_State* L) {
fh->registered = TRUE;
registered_file_handlers = g_slist_prepend(registered_file_handlers, fh);
- lua_pushnumber(L, fh->file_type);
+ lua_pushinteger(L, fh->file_type);
WSLUA_RETURN(1); /* the new type number for this file reader/write */
}
@@ -1207,7 +1207,7 @@ WSLUA_ATTRIBUTE_GET(FileHandler,supported_comment_types,{ \
break;\
} \
} \
- lua_pushnumber(L, (lua_Number)supported_comment_types); \
+ lua_pushinteger(L, (lua_Integer)supported_comment_types); \
});
WSLUA_ATTRIBUTE_SET(FileHandler,supported_comment_types, { \
guint supported_comment_types; \
diff --git a/epan/wslua/wslua_frame_info.c b/epan/wslua/wslua_frame_info.c
index 401abd73..72701d6f 100644
--- a/epan/wslua/wslua_frame_info.c
+++ b/epan/wslua/wslua_frame_info.c
@@ -89,7 +89,7 @@ WSLUA_METHOD FrameInfo_read_data(lua_State* L) {
g_free(err_info); /* is this right? */
}
else lua_pushnil(L);
- lua_pushnumber(L, err);
+ lua_pushinteger(L, err);
return 3;
}
@@ -120,7 +120,7 @@ static int FrameInfo_get_comment (lua_State* L) {
lua_createtable(L, n_comments, 0);
for (i = 0; i < n_comments; i++) {
comment = NULL;
- lua_pushnumber(L, i+1);
+ lua_pushinteger(L, i+1);
if (WTAP_OPTTYPE_SUCCESS ==
wtap_block_get_nth_string_option_value(block, OPT_COMMENT, i, &comment)) {
lua_pushstring(L, comment);
@@ -371,7 +371,7 @@ WSLUA_METHOD FrameInfoConst_write_data(lua_State* L) {
if (!wtap_dump_file_write(fh->wdh, fi->pd, (size_t)(len), &err)) {
lua_pushboolean(L, FALSE);
lua_pushfstring(L, "FrameInfoConst write_data() error: %s", g_strerror(err));
- lua_pushnumber(L, err);
+ lua_pushinteger(L, err);
return 3;
}
@@ -403,7 +403,7 @@ static int FrameInfoConst_get_comment (lua_State* L) {
lua_createtable(L, n_comments, 0);
for (i = 0; i < n_comments; i++) {
comment = NULL;
- lua_pushnumber(L, i+1);
+ lua_pushinteger(L, i+1);
if (WTAP_OPTTYPE_SUCCESS ==
wtap_block_get_nth_string_option_value(block, OPT_COMMENT, i, &comment)) {
lua_pushstring(L, comment);
diff --git a/epan/wslua/wslua_pinfo.c b/epan/wslua/wslua_pinfo.c
index a735d601..3e60715e 100644
--- a/epan/wslua/wslua_pinfo.c
+++ b/epan/wslua/wslua_pinfo.c
@@ -308,7 +308,7 @@ static int Pinfo_get_match(lua_State *L) {
if (pinfo->ws_pinfo->match_string) {
lua_pushstring(L,pinfo->ws_pinfo->match_string);
} else {
- lua_pushnumber(L,(lua_Number)(pinfo->ws_pinfo->match_uint));
+ lua_pushinteger(L,(lua_Integer)(pinfo->ws_pinfo->match_uint));
}
return 1;
diff --git a/epan/wslua/wslua_pref.c b/epan/wslua/wslua_pref.c
index 234170d3..3d6ed540 100644
--- a/epan/wslua/wslua_pref.c
+++ b/epan/wslua/wslua_pref.c
@@ -515,9 +515,9 @@ WSLUA_METAMETHOD Prefs__index(lua_State* L) {
if ( g_str_equal(prefs_p->name,name) ) {
switch (prefs_p->type) {
case PREF_BOOL: lua_pushboolean(L, prefs_p->value.b); break;
- case PREF_UINT: lua_pushnumber(L,(lua_Number)prefs_p->value.u); break;
+ case PREF_UINT: lua_pushinteger(L,(lua_Integer)prefs_p->value.u); break;
case PREF_STRING: lua_pushstring(L,prefs_p->value.s); break;
- case PREF_ENUM: lua_pushnumber(L,(lua_Number)prefs_p->value.e); break;
+ case PREF_ENUM: lua_pushinteger(L,(lua_Integer)prefs_p->value.e); break;
case PREF_RANGE:
{
char *push_str = range_convert_range(NULL, prefs_p->value.r);
diff --git a/epan/wslua/wslua_proto.c b/epan/wslua/wslua_proto.c
index 363975b2..92a1d192 100644
--- a/epan/wslua/wslua_proto.c
+++ b/epan/wslua/wslua_proto.c
@@ -444,7 +444,33 @@ static int Proto_set_fields(lua_State* L) {
if( lua_istable(L,NEW_TABLE)) {
for (lua_pushnil(L); lua_next(L, NEW_TABLE); ) {
if (isProtoField(L,5)) {
- luaL_ref(L,FIELDS_TABLE);
+ /* luaL_ref returns a reference. lua_next will return not
+ * just occupied entries in the table, but also references
+ * used to store unused/deleted entries in the hash table
+ * so that they can be reused without reallocation. Those
+ * will have a lua_Number as their value. The values form
+ * a linked list of available indicies, starting with the
+ * head at index 3 (LUA_RIDX_LAST + 1) in Lua 5.4 and index
+ * 0 in earlier versions. (Since arrays are 1-indexed, this
+ * is mostly invisible in Lua 5.3 and earlier so long as
+ * nothing has been deleted.)
+ *
+ * Perhaps the assumption is that no one wants to use a
+ * hash table to store numbers anyway? This also means
+ * that for any table with 2 or more real entries, the
+ * length operator # *includes* the freelist and cannot
+ * be trusted.
+ *
+ * If we wanted to only check entries we knew were valid,
+ * we could save this reference.
+ *
+ * This also means that our checks below on registration
+ * and deregistration that the table entries are ProtoFields
+ * are less useful, because we do now expect some numbers
+ * in the table. Hopefully the check on insert here obviates
+ * needing to check there.
+ */
+ /* int ref = */ luaL_ref(L,FIELDS_TABLE);
} else if (! lua_isnil(L,5) ) {
return luaL_error(L,"only ProtoFields should be in the table");
}
@@ -457,6 +483,7 @@ static int Proto_set_fields(lua_State* L) {
return luaL_error(L,"either a ProtoField or an array of protofields");
}
+ /* XXX - I don't think this is necessary. */
lua_pushvalue(L, 3);
return 1;
@@ -573,6 +600,11 @@ ProtoField wslua_is_field_available(lua_State* L, const char* field_abbr) {
lua_pushnil(L);
while (lua_next(L, -2)) {
+ if (lua_type(L, -1) == LUA_TNUMBER) {
+ /* part of free reference linked list, ignore */
+ lua_pop(L, 1); /* table value */
+ continue;
+ }
ProtoField f = checkProtoField(L, -1);
if (strcmp(field_abbr, f->abbrev) == 0) {
/* found! */
@@ -632,6 +664,10 @@ int wslua_deregister_protocols(lua_State* L) {
/* for each registered ProtoField do... */
lua_rawgeti(L, LUA_REGISTRYINDEX, proto->fields);
for (lua_pushnil(L); lua_next(L, -2); lua_pop(L, 1)) {
+ if (lua_type(L, -1) == LUA_TNUMBER) {
+ /* part of free reference linked list, ignore */
+ continue;
+ }
ProtoField f = checkProtoField(L, -1);
/* Memory ownership was previously transferred to epan in Proto_commit */
@@ -647,6 +683,10 @@ int wslua_deregister_protocols(lua_State* L) {
/* for each registered ProtoExpert do... */
lua_rawgeti(L, LUA_REGISTRYINDEX, proto->expert_info_table_ref);
for (lua_pushnil(L); lua_next(L, -2); lua_pop(L, 1)) {
+ if (lua_type(L, -1) == LUA_TNUMBER) {
+ /* part of free reference linked list, ignore */
+ continue;
+ }
ProtoExpert pe = checkProtoExpert(L,-1);
/* Memory ownership was previously transferred to epan in Proto_commit */
@@ -708,6 +748,10 @@ int Proto_commit(lua_State* L) {
/* for each ProtoField in the Lua table do... */
for (lua_pushnil(L); lua_next(L, 4); lua_pop(L, 1)) {
+ if (lua_type(L, -1) == LUA_TNUMBER) {
+ /* part of free reference linked list, ignore */
+ continue;
+ }
ProtoField f = checkProtoField(L,6);
hf_register_info hfri = { NULL, { NULL, NULL, FT_NONE, 0, NULL, 0, NULL, HFILL } };
ettp = &(f->ett);
@@ -744,6 +788,10 @@ int Proto_commit(lua_State* L) {
/* for each ProtoExpert in the Lua table do... */
for (lua_pushnil(L); lua_next(L, 4); lua_pop(L, 1)) {
+ if (lua_type(L, -1) == LUA_TNUMBER) {
+ /* part of free reference linked list, ignore */
+ continue;
+ }
ProtoExpert e = checkProtoExpert(L,6);
ei_register_info eiri = { NULL, { NULL, 0, 0, NULL, EXPFILL } };
diff --git a/epan/wslua/wslua_struct.c b/epan/wslua/wslua_struct.c
index 7d62dc09..440a0900 100644
--- a/epan/wslua/wslua_struct.c
+++ b/epan/wslua/wslua_struct.c
@@ -410,7 +410,7 @@ WSLUA_CONSTRUCTOR Struct_pack (lua_State *L) {
* given endianness and size. If the integer type is signed, this makes
* the Lua number be +/- correctly as well.
*/
-static lua_Number getinteger (const gchar *buff, int endian,
+static lua_Integer getinteger (const gchar *buff, int endian,
int issigned, int size) {
Uinttype l = 0;
int i;
@@ -427,12 +427,12 @@ static lua_Number getinteger (const gchar *buff, int endian,
}
}
if (!issigned)
- return (lua_Number)l;
+ return (lua_Integer)l;
else { /* signed format */
Uinttype mask = (Uinttype)(~((Uinttype)0)) << (size*8 - 1);
if (l & mask) /* negative value? */
l |= mask; /* signal extension */
- return (lua_Number)(Inttype)l;
+ return (lua_Integer)(Inttype)l;
}
}
@@ -470,8 +470,8 @@ WSLUA_CONSTRUCTOR Struct_unpack (lua_State *L) {
case 'b': case 'B': case 'h': case 'H':
case 'l': case 'L': case 'T': case 'i': case 'I': { /* integer types */
int issigned = g_ascii_islower(opt);
- lua_Number res = getinteger(data+pos, h.endian, issigned, (int)size);
- lua_pushnumber(L, res);
+ lua_Integer res = getinteger(data+pos, h.endian, issigned, (int)size);
+ lua_pushinteger(L, res);
break;
}
case 'e': {
diff --git a/epan/wslua/wslua_tree.c b/epan/wslua/wslua_tree.c
index 503b8b7b..5d8dc7c7 100644
--- a/epan/wslua/wslua_tree.c
+++ b/epan/wslua/wslua_tree.c
@@ -123,7 +123,7 @@ try_add_packet_field(lua_State *L, TreeItem tree_item, TvbRange tvbr, const int
item = proto_tree_add_item_ret_int(tree_item->tree, hfid, tvbr->tvb->ws_tvb,
tvbr->offset, tvbr->len, encoding,
&ret);
- lua_pushnumber(L, (lua_Number)ret);
+ lua_pushinteger(L, (lua_Integer)ret);
lua_pushinteger(L, tvbr->offset + tvbr->len);
}
break;
@@ -152,7 +152,7 @@ try_add_packet_field(lua_State *L, TreeItem tree_item, TvbRange tvbr, const int
item = proto_tree_add_item_ret_uint(tree_item-> tree, hfid, tvbr->tvb->ws_tvb,
tvbr->offset, tvbr->len, encoding,
&ret);
- lua_pushnumber(L, (lua_Number)ret);
+ lua_pushinteger(L, (lua_Integer)ret);
lua_pushinteger(L, tvbr->offset + tvbr->len);
}
break;
@@ -502,7 +502,7 @@ static int TreeItem_add_item_any(lua_State *L, gboolean little_endian) {
switch(type) {
case FT_PROTOCOL:
item = proto_tree_add_item(tree_item->tree,hfid,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,ENC_NA);
- lua_pushnumber(L,0);
+ lua_pushinteger(L,0);
lua_insert(L,1);
break;
case FT_BOOLEAN:
diff --git a/epan/wslua/wslua_tvb.c b/epan/wslua/wslua_tvb.c
index 7951c7d9..f315e83e 100644
--- a/epan/wslua/wslua_tvb.c
+++ b/epan/wslua/wslua_tvb.c
@@ -135,7 +135,7 @@ WSLUA_METHOD Tvb_reported_len(lua_State* L) {
/* Obtain the reported length (length on the network) of a <<lua_class_Tvb,`Tvb`>>. */
Tvb tvb = checkTvb(L,1);
- lua_pushnumber(L,tvb_reported_length(tvb->ws_tvb));
+ lua_pushinteger(L,tvb_reported_length(tvb->ws_tvb));
WSLUA_RETURN(1); /* The reported length of the <<lua_class_Tvb,`Tvb`>>. */
}
@@ -143,7 +143,7 @@ WSLUA_METHOD Tvb_captured_len(lua_State* L) {
/* Obtain the captured length (amount saved in the capture process) of a <<lua_class_Tvb,`Tvb`>>. */
Tvb tvb = checkTvb(L,1);
- lua_pushnumber(L,tvb_captured_length(tvb->ws_tvb));
+ lua_pushinteger(L,tvb_captured_length(tvb->ws_tvb));
WSLUA_RETURN(1); /* The captured length of the <<lua_class_Tvb,`Tvb`>>. */
}
@@ -152,7 +152,7 @@ WSLUA_METHOD Tvb_len(lua_State* L) {
Same as captured_len; kept only for backwards compatibility */
Tvb tvb = checkTvb(L,1);
- lua_pushnumber(L,tvb_captured_length(tvb->ws_tvb));
+ lua_pushinteger(L,tvb_captured_length(tvb->ws_tvb));
WSLUA_RETURN(1); /* The captured length of the <<lua_class_Tvb,`Tvb`>>. */
}
@@ -163,7 +163,7 @@ WSLUA_METHOD Tvb_reported_length_remaining(lua_State* L) {
Tvb tvb = checkTvb(L,1);
int offset = (int) luaL_optinteger(L, Tvb_reported_length_remaining_OFFSET, 0);
- lua_pushnumber(L,tvb_reported_length_remaining(tvb->ws_tvb, offset));
+ lua_pushinteger(L,tvb_reported_length_remaining(tvb->ws_tvb, offset));
WSLUA_RETURN(1); /* The captured length of the <<lua_class_Tvb,`Tvb`>>. */
}
@@ -176,9 +176,13 @@ WSLUA_METHOD Tvb_bytes(lua_State* L) {
#define WSLUA_OPTARG_Tvb_bytes_LENGTH 3 /* The length (in octets) of the range. Defaults to until the end of the <<lua_class_Tvb,`Tvb`>>. */
Tvb tvb = checkTvb(L,1);
GByteArray* ba;
+#if LUA_VERSION_NUM >= 503
+ int offset = (int)luaL_optinteger(L, WSLUA_OPTARG_Tvb_bytes_OFFSET, 0);
+ int len = (int)luaL_optinteger(L, WSLUA_OPTARG_Tvb_bytes_LENGTH, -1);
+#else
int offset = luaL_optint(L, WSLUA_OPTARG_Tvb_bytes_OFFSET, 0);
int len = luaL_optint(L,WSLUA_OPTARG_Tvb_bytes_LENGTH,-1);
-
+#endif
if (tvb->expired) {
luaL_error(L,"expired tvb");
return 0;
@@ -206,7 +210,7 @@ WSLUA_METHOD Tvb_offset(lua_State* L) {
/* Returns the raw offset (from the beginning of the source <<lua_class_Tvb,`Tvb`>>) of a sub <<lua_class_Tvb,`Tvb`>>. */
Tvb tvb = checkTvb(L,1);
- lua_pushnumber(L,tvb_raw_offset(tvb->ws_tvb));
+ lua_pushinteger(L,tvb_raw_offset(tvb->ws_tvb));
WSLUA_RETURN(1); /* The raw offset of the <<lua_class_Tvb,`Tvb`>>. */
}
@@ -437,16 +441,16 @@ WSLUA_METHOD TvbRange_uint(lua_State* L) {
switch (tvbr->len) {
case 1:
- lua_pushnumber(L,tvb_get_guint8(tvbr->tvb->ws_tvb,tvbr->offset));
+ lua_pushinteger(L,tvb_get_guint8(tvbr->tvb->ws_tvb,tvbr->offset));
return 1;
case 2:
- lua_pushnumber(L,tvb_get_ntohs(tvbr->tvb->ws_tvb,tvbr->offset));
+ lua_pushinteger(L,tvb_get_ntohs(tvbr->tvb->ws_tvb,tvbr->offset));
return 1;
case 3:
- lua_pushnumber(L,tvb_get_ntoh24(tvbr->tvb->ws_tvb,tvbr->offset));
+ lua_pushinteger(L,tvb_get_ntoh24(tvbr->tvb->ws_tvb,tvbr->offset));
return 1;
case 4:
- lua_pushnumber(L,tvb_get_ntohl(tvbr->tvb->ws_tvb,tvbr->offset));
+ lua_pushinteger(L,tvb_get_ntohl(tvbr->tvb->ws_tvb,tvbr->offset));
WSLUA_RETURN(1); /* The unsigned integer value. */
default:
luaL_error(L,"TvbRange:uint() does not handle %d byte integers",tvbr->len);
@@ -470,16 +474,16 @@ WSLUA_METHOD TvbRange_le_uint(lua_State* L) {
switch (tvbr->len) {
case 1:
/* XXX unsigned anyway */
- lua_pushnumber(L,(lua_Number)(guint)tvb_get_guint8(tvbr->tvb->ws_tvb,tvbr->offset));
+ lua_pushinteger(L,(lua_Integer)(guint)tvb_get_guint8(tvbr->tvb->ws_tvb,tvbr->offset));
return 1;
case 2:
- lua_pushnumber(L,tvb_get_letohs(tvbr->tvb->ws_tvb,tvbr->offset));
+ lua_pushinteger(L,tvb_get_letohs(tvbr->tvb->ws_tvb,tvbr->offset));
return 1;
case 3:
- lua_pushnumber(L,tvb_get_letoh24(tvbr->tvb->ws_tvb,tvbr->offset));
+ lua_pushinteger(L,tvb_get_letoh24(tvbr->tvb->ws_tvb,tvbr->offset));
return 1;
case 4:
- lua_pushnumber(L,tvb_get_letohl(tvbr->tvb->ws_tvb,tvbr->offset));
+ lua_pushinteger(L,tvb_get_letohl(tvbr->tvb->ws_tvb,tvbr->offset));
WSLUA_RETURN(1); /* The unsigned integer value */
default:
luaL_error(L,"TvbRange:le_uint() does not handle %d byte integers",tvbr->len);
@@ -590,16 +594,16 @@ WSLUA_METHOD TvbRange_int(lua_State* L) {
switch (tvbr->len) {
case 1:
- lua_pushnumber(L,tvb_get_gint8(tvbr->tvb->ws_tvb,tvbr->offset));
+ lua_pushinteger(L,tvb_get_gint8(tvbr->tvb->ws_tvb,tvbr->offset));
return 1;
case 2:
- lua_pushnumber(L,tvb_get_ntohis(tvbr->tvb->ws_tvb,tvbr->offset));
+ lua_pushinteger(L,tvb_get_ntohis(tvbr->tvb->ws_tvb,tvbr->offset));
return 1;
case 3:
- lua_pushnumber(L,tvb_get_ntohi24(tvbr->tvb->ws_tvb,tvbr->offset));
+ lua_pushinteger(L,tvb_get_ntohi24(tvbr->tvb->ws_tvb,tvbr->offset));
return 1;
case 4:
- lua_pushnumber(L,tvb_get_ntohil(tvbr->tvb->ws_tvb,tvbr->offset));
+ lua_pushinteger(L,tvb_get_ntohil(tvbr->tvb->ws_tvb,tvbr->offset));
WSLUA_RETURN(1); /* The signed integer value. */
/*
* XXX:
@@ -629,16 +633,16 @@ WSLUA_METHOD TvbRange_le_int(lua_State* L) {
switch (tvbr->len) {
case 1:
- lua_pushnumber(L,tvb_get_gint8(tvbr->tvb->ws_tvb,tvbr->offset));
+ lua_pushinteger(L,tvb_get_gint8(tvbr->tvb->ws_tvb,tvbr->offset));
return 1;
case 2:
- lua_pushnumber(L,tvb_get_letohis(tvbr->tvb->ws_tvb,tvbr->offset));
+ lua_pushinteger(L,tvb_get_letohis(tvbr->tvb->ws_tvb,tvbr->offset));
return 1;
case 3:
- lua_pushnumber(L,tvb_get_letohi24(tvbr->tvb->ws_tvb,tvbr->offset));
+ lua_pushinteger(L,tvb_get_letohi24(tvbr->tvb->ws_tvb,tvbr->offset));
return 1;
case 4:
- lua_pushnumber(L,tvb_get_letohil(tvbr->tvb->ws_tvb,tvbr->offset));
+ lua_pushinteger(L,tvb_get_letohil(tvbr->tvb->ws_tvb,tvbr->offset));
WSLUA_RETURN(1); /* The signed integer value. */
default:
luaL_error(L,"TvbRange:le_int() does not handle %d byte integers",tvbr->len);
@@ -1233,13 +1237,13 @@ WSLUA_METHOD TvbRange_bitfield(lua_State* L) {
}
if (len <= 8) {
- lua_pushnumber(L,(lua_Number)(guint)tvb_get_bits8(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len));
+ lua_pushinteger(L,(lua_Integer)(guint)tvb_get_bits8(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len));
return 1;
} else if (len <= 16) {
- lua_pushnumber(L,tvb_get_bits16(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len, FALSE));
+ lua_pushinteger(L,tvb_get_bits16(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len, FALSE));
return 1;
} else if (len <= 32) {
- lua_pushnumber(L,tvb_get_bits32(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len, FALSE));
+ lua_pushinteger(L,tvb_get_bits32(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len, FALSE));
return 1;
} else if (len <= 64) {
pushUInt64(L,tvb_get_bits64(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len, FALSE));
@@ -1330,7 +1334,7 @@ WSLUA_METHOD TvbRange_len(lua_State* L) {
luaL_error(L,"expired tvb");
return 0;
}
- lua_pushnumber(L,(lua_Number)tvbr->len);
+ lua_pushinteger(L,(lua_Integer)tvbr->len);
return 1;
}
@@ -1343,7 +1347,7 @@ WSLUA_METHOD TvbRange_offset(lua_State* L) {
luaL_error(L,"expired tvb");
return 0;
}
- lua_pushnumber(L,(lua_Number)tvbr->offset);
+ lua_pushinteger(L,(lua_Integer)tvbr->offset);
return 1;
}
diff --git a/epan/wslua/wslua_wtap.c b/epan/wslua/wslua_wtap.c
index 524ed7c3..9fa27879 100644
--- a/epan/wslua/wslua_wtap.c
+++ b/epan/wslua/wslua_wtap.c
@@ -85,7 +85,7 @@ WSLUA_FUNCTION wslua_wtap_name_to_file_type_subtype(lua_State* LS) {
if (filetype == -1)
lua_pushnil(LS);
else
- lua_pushnumber(LS,filetype);
+ lua_pushinteger(LS,filetype);
WSLUA_RETURN(1); /* The filetype value for the file type with that name, or nil if there is no such file type. */
}
@@ -96,7 +96,7 @@ WSLUA_FUNCTION wslua_wtap_pcap_file_type_subtype(lua_State* LS) {
@since 3.2.12, 3.4.4
*/
lua_Number filetype = wtap_pcap_file_type_subtype();
- lua_pushnumber(LS,filetype);
+ lua_pushinteger(LS,filetype);
WSLUA_RETURN(1); /* The filetype value for pcap files. */
}
@@ -107,7 +107,7 @@ WSLUA_FUNCTION wslua_wtap_pcap_nsec_file_type_subtype(lua_State* LS) {
@since 3.2.12, 3.4.4
*/
lua_Number filetype = wtap_pcap_nsec_file_type_subtype();
- lua_pushnumber(LS,filetype);
+ lua_pushinteger(LS,filetype);
WSLUA_RETURN(1); /* The filetype value for nanosecond-resolution pcap files. */
}
@@ -118,7 +118,7 @@ WSLUA_FUNCTION wslua_wtap_pcapng_file_type_subtype(lua_State* LS) {
@since 3.2.12, 3.4.4
*/
lua_Number filetype = wtap_pcapng_file_type_subtype();
- lua_pushnumber(LS,filetype);
+ lua_pushinteger(LS,filetype);
WSLUA_RETURN(1); /* The filetype value for pcapng files. */
}
@@ -148,7 +148,7 @@ extern void wslua_init_wtap_filetypes(lua_State* LS) {
* it.
*/
lua_pushstring(LS, entry->name);
- lua_pushnumber(LS, entry->ft);
+ lua_pushinteger(LS, entry->ft);
/*
* The -3 is the index, relative to the top of the stack, of
* the table; the two elements on top of it are the ft and