diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-26 17:44:25 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-26 17:44:25 +0000 |
commit | f59ea5f7690c9a01ef6f7f6508084a66c40b1dae (patch) | |
tree | 482ee255d71f113be6c62e9ff3543fd6ebb9f12a /epan | |
parent | Releasing progress-linux version 4.2.2-1.1~progress7.99u1. (diff) | |
download | wireshark-f59ea5f7690c9a01ef6f7f6508084a66c40b1dae.tar.xz wireshark-f59ea5f7690c9a01ef6f7f6508084a66c40b1dae.zip |
Merging upstream version 4.2.4.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'epan')
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, >p_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, >p_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, >pv2_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, >pv2_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 |