summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/macos.yml8
-rw-r--r--.gitlab-ci.yml49
-rw-r--r--AUTHORS13
-rw-r--r--CMakeLists.txt16
-rw-r--r--ChangeLog1519
-rw-r--r--NEWS177
-rw-r--r--cmakeconfig.h.in8
-rw-r--r--doc/dumpcap.adoc4
-rw-r--r--doc/rawshark.adoc2
-rw-r--r--doc/release-notes.adoc125
-rw-r--r--doc/tshark.adoc6
-rw-r--r--doc/wireshark.adoc6
-rw-r--r--docbook/attributes.adoc2
-rw-r--r--docbook/wsug_src/capinfos-h.txt2
-rw-r--r--docbook/wsug_src/dumpcap-h.txt2
-rw-r--r--docbook/wsug_src/editcap-h.txt2
-rw-r--r--docbook/wsug_src/mergecap-h.txt2
-rw-r--r--docbook/wsug_src/rawshark-h.txt2
-rw-r--r--docbook/wsug_src/reordercap-h.txt2
-rw-r--r--docbook/wsug_src/text2pcap-h.txt2
-rw-r--r--docbook/wsug_src/tshark-h.txt2
-rw-r--r--docbook/wsug_src/wireshark-h.txt2
-rw-r--r--docbook/wsug_src/wsug_capture.adoc4
-rw-r--r--docbook/wsug_src/wsug_io.adoc2
-rw-r--r--editcap.c11
-rw-r--r--epan/CMakeLists.txt2
-rw-r--r--epan/dfilter/dfunctions.c10
-rw-r--r--epan/dfilter/dfvm.c4
-rw-r--r--epan/dfilter/scanner.l2
-rw-r--r--epan/dissectors/asn1/kerberos/packet-kerberos-template.c2
-rw-r--r--epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c3
-rw-r--r--epan/dissectors/asn1/nr-rrc/nr-rrc.cnf88
-rw-r--r--epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c2
-rw-r--r--epan/dissectors/asn1/snmp/packet-snmp-template.c10
-rw-r--r--epan/dissectors/asn1/t38/packet-t38-template.c5
-rw-r--r--epan/dissectors/asn1/tcap/packet-tcap-template.c3
-rw-r--r--epan/dissectors/file-blf.c5
-rw-r--r--epan/dissectors/file-jpeg.c4
-rw-r--r--epan/dissectors/file-rbm.c20
-rw-r--r--epan/dissectors/packet-5co-legacy.c16
-rw-r--r--epan/dissectors/packet-5co-rap.c18
-rw-r--r--epan/dissectors/packet-6lowpan.c8
-rw-r--r--epan/dissectors/packet-afp.c8
-rw-r--r--epan/dissectors/packet-alljoyn.c27
-rw-r--r--epan/dissectors/packet-amqp.c19
-rw-r--r--epan/dissectors/packet-asam-cmp.c9
-rw-r--r--epan/dissectors/packet-asap.c99
-rw-r--r--epan/dissectors/packet-babel.c3
-rw-r--r--epan/dissectors/packet-bacnet.c6
-rw-r--r--epan/dissectors/packet-banana.c3
-rw-r--r--epan/dissectors/packet-beep.c7
-rw-r--r--epan/dissectors/packet-bencode.c17
-rw-r--r--epan/dissectors/packet-bfcp.c6
-rw-r--r--epan/dissectors/packet-bgp.c9
-rw-r--r--epan/dissectors/packet-bt-dht.c4
-rw-r--r--epan/dissectors/packet-btbnep.c3
-rw-r--r--epan/dissectors/packet-btmesh.c13
-rw-r--r--epan/dissectors/packet-btsdp.c3
-rw-r--r--epan/dissectors/packet-bvlc.c6
-rw-r--r--epan/dissectors/packet-cip.c7
-rw-r--r--epan/dissectors/packet-cmip.c12
-rw-r--r--epan/dissectors/packet-cmp.c12
-rw-r--r--epan/dissectors/packet-corosync-totemsrp.c4
-rw-r--r--epan/dissectors/packet-cose.c6
-rw-r--r--epan/dissectors/packet-cql.c60
-rw-r--r--epan/dissectors/packet-csn1.c15
-rw-r--r--epan/dissectors/packet-dap.c45
-rw-r--r--epan/dissectors/packet-dccp.c5
-rw-r--r--epan/dissectors/packet-dcm.c63
-rw-r--r--epan/dissectors/packet-dcm.h4
-rw-r--r--epan/dissectors/packet-dcom.c3
-rw-r--r--epan/dissectors/packet-dhcpv6.c8
-rw-r--r--epan/dissectors/packet-disp.c23
-rw-r--r--epan/dissectors/packet-docsis-macmgmt.c3
-rw-r--r--epan/dissectors/packet-dof.c71
-rw-r--r--epan/dissectors/packet-dvb-s2-bb.c2
-rw-r--r--epan/dissectors/packet-e212.c554
-rw-r--r--epan/dissectors/packet-e2ap.c34
-rw-r--r--epan/dissectors/packet-edonkey.c6
-rw-r--r--epan/dissectors/packet-enrp.c53
-rw-r--r--epan/dissectors/packet-epl.c19
-rw-r--r--epan/dissectors/packet-erldp.c7
-rw-r--r--epan/dissectors/packet-etch.c42
-rw-r--r--epan/dissectors/packet-extrememesh.c2
-rw-r--r--epan/dissectors/packet-fcfzs.c16
-rw-r--r--epan/dissectors/packet-fcswils.c2
-rw-r--r--epan/dissectors/packet-geonw.c5
-rw-r--r--epan/dissectors/packet-giop.c28
-rw-r--r--epan/dissectors/packet-glow.c34
-rw-r--r--epan/dissectors/packet-goose.c12
-rw-r--r--epan/dissectors/packet-gquic.c4
-rw-r--r--epan/dissectors/packet-grpc.c137
-rw-r--r--epan/dissectors/packet-gsm_a_rp.c12
-rw-r--r--epan/dissectors/packet-gsm_abis_oml.c6
-rw-r--r--epan/dissectors/packet-gsm_gsup.c3
-rw-r--r--epan/dissectors/packet-gtp.c21
-rw-r--r--epan/dissectors/packet-gtpv2.c18
-rw-r--r--epan/dissectors/packet-h223.c12
-rw-r--r--epan/dissectors/packet-h225.c23
-rw-r--r--epan/dissectors/packet-h245.c78
-rw-r--r--epan/dissectors/packet-h248.c12
-rw-r--r--epan/dissectors/packet-h264.c26
-rw-r--r--epan/dissectors/packet-h265.c21
-rw-r--r--epan/dissectors/packet-hsms.c9
-rw-r--r--epan/dissectors/packet-http2.c97
-rw-r--r--epan/dissectors/packet-http2.h8
-rw-r--r--epan/dissectors/packet-icmpv6.c56
-rw-r--r--epan/dissectors/packet-icq.c4
-rw-r--r--epan/dissectors/packet-ieee1609dot2.c12
-rw-r--r--epan/dissectors/packet-ieee1722.c2
-rw-r--r--epan/dissectors/packet-ieee1905.c60
-rw-r--r--epan/dissectors/packet-ieee80211.c12
-rw-r--r--epan/dissectors/packet-ip.c4
-rw-r--r--epan/dissectors/packet-ipars.c2
-rw-r--r--epan/dissectors/packet-ipp.c31
-rw-r--r--epan/dissectors/packet-ippusb.c12
-rw-r--r--epan/dissectors/packet-ipv6.c4
-rw-r--r--epan/dissectors/packet-isakmp.c11
-rw-r--r--epan/dissectors/packet-iscsi.c3
-rw-r--r--epan/dissectors/packet-isis-lsp.c11
-rw-r--r--epan/dissectors/packet-iso15765.c11
-rw-r--r--epan/dissectors/packet-iso7816.c20
-rw-r--r--epan/dissectors/packet-isup.c14
-rw-r--r--epan/dissectors/packet-its.c12
-rw-r--r--epan/dissectors/packet-json_3gpp.c31
-rw-r--r--epan/dissectors/packet-jxta.c11
-rw-r--r--epan/dissectors/packet-kafka.c12
-rw-r--r--epan/dissectors/packet-kerberos.c2
-rw-r--r--epan/dissectors/packet-kink.c12
-rw-r--r--epan/dissectors/packet-knxip.c5
-rw-r--r--epan/dissectors/packet-lapd.c8
-rw-r--r--epan/dissectors/packet-ldap.c12
-rw-r--r--epan/dissectors/packet-ldp.c7
-rw-r--r--epan/dissectors/packet-li5g.c6
-rw-r--r--epan/dissectors/packet-lisp-tcp.c2
-rw-r--r--epan/dissectors/packet-lisp.c75
-rw-r--r--epan/dissectors/packet-lisp.h2
-rw-r--r--epan/dissectors/packet-lldp.c6
-rw-r--r--epan/dissectors/packet-llrp.c9
-rw-r--r--epan/dissectors/packet-lwm2mtlv.c11
-rw-r--r--epan/dissectors/packet-m2ua.c7
-rw-r--r--epan/dissectors/packet-m3ua.c12
-rw-r--r--epan/dissectors/packet-mac-lte.c26
-rw-r--r--epan/dissectors/packet-mbim.c5
-rw-r--r--epan/dissectors/packet-mms.c45
-rw-r--r--epan/dissectors/packet-mongo.c17
-rw-r--r--epan/dissectors/packet-mpeg-pes.c3
-rw-r--r--epan/dissectors/packet-mpls-echo.c4
-rw-r--r--epan/dissectors/packet-mq-pcf.c5
-rw-r--r--epan/dissectors/packet-mqtt-sn.c3
-rw-r--r--epan/dissectors/packet-msdp.c4
-rw-r--r--epan/dissectors/packet-msgpack.c8
-rw-r--r--epan/dissectors/packet-mswsp.c8
-rw-r--r--epan/dissectors/packet-nas_5gs.c23
-rw-r--r--epan/dissectors/packet-nbt.c35
-rw-r--r--epan/dissectors/packet-netflow.c7
-rw-r--r--epan/dissectors/packet-netlink.c7
-rw-r--r--epan/dissectors/packet-nhrp.c4
-rw-r--r--epan/dissectors/packet-nr-rrc.c69
-rw-r--r--epan/dissectors/packet-ntlmssp.c2
-rw-r--r--epan/dissectors/packet-openflow_v4.c2
-rw-r--r--epan/dissectors/packet-openflow_v5.c4
-rw-r--r--epan/dissectors/packet-openflow_v6.c5
-rw-r--r--epan/dissectors/packet-opensafety.c2
-rw-r--r--epan/dissectors/packet-openwire.c8
-rw-r--r--epan/dissectors/packet-opsi.c17
-rw-r--r--epan/dissectors/packet-osc.c9
-rw-r--r--epan/dissectors/packet-p22.c45
-rw-r--r--epan/dissectors/packet-p7.c12
-rw-r--r--epan/dissectors/packet-pana.c7
-rw-r--r--epan/dissectors/packet-parlay.c15
-rw-r--r--epan/dissectors/packet-per.c22
-rw-r--r--epan/dissectors/packet-pfcp.c129
-rw-r--r--epan/dissectors/packet-pim.c5
-rw-r--r--epan/dissectors/packet-protobuf.c20
-rw-r--r--epan/dissectors/packet-proxy.c3
-rw-r--r--epan/dissectors/packet-ptp.c2
-rw-r--r--epan/dissectors/packet-q2931.c6
-rw-r--r--epan/dissectors/packet-qnet6.c7
-rw-r--r--epan/dissectors/packet-quic.c8
-rw-r--r--epan/dissectors/packet-rdp.c4
-rw-r--r--epan/dissectors/packet-resp.c5
-rw-r--r--epan/dissectors/packet-rpl.c4
-rw-r--r--epan/dissectors/packet-rsl.c4
-rw-r--r--epan/dissectors/packet-rsvp.c6
-rw-r--r--epan/dissectors/packet-rtls.c3
-rw-r--r--epan/dissectors/packet-rtmpt.c59
-rw-r--r--epan/dissectors/packet-rtp.c13
-rw-r--r--epan/dissectors/packet-rtps.c61
-rw-r--r--epan/dissectors/packet-s7comm.c10
-rw-r--r--epan/dissectors/packet-scsi.c3
-rw-r--r--epan/dissectors/packet-sctp.c36
-rw-r--r--epan/dissectors/packet-simulcrypt.c6
-rw-r--r--epan/dissectors/packet-sll.h1
-rw-r--r--epan/dissectors/packet-slsk.c282
-rw-r--r--epan/dissectors/packet-smb2.c17
-rw-r--r--epan/dissectors/packet-sml.c5
-rw-r--r--epan/dissectors/packet-sna.c7
-rw-r--r--epan/dissectors/packet-snmp.c10
-rw-r--r--epan/dissectors/packet-snort-config.c2
-rw-r--r--epan/dissectors/packet-socketcan.c413
-rw-r--r--epan/dissectors/packet-socketcan.h46
-rw-r--r--epan/dissectors/packet-socks.c6
-rw-r--r--epan/dissectors/packet-solaredge.c12
-rw-r--r--epan/dissectors/packet-someip.c34
-rw-r--r--epan/dissectors/packet-ssh.c3
-rw-r--r--epan/dissectors/packet-sua.c19
-rw-r--r--epan/dissectors/packet-t38.c5
-rw-r--r--epan/dissectors/packet-tcap.c3
-rw-r--r--epan/dissectors/packet-tcp.c6
-rw-r--r--epan/dissectors/packet-teap.c8
-rw-r--r--epan/dissectors/packet-tecmp.c2
-rw-r--r--epan/dissectors/packet-tftp.c17
-rw-r--r--epan/dissectors/packet-thread.c3
-rw-r--r--epan/dissectors/packet-thrift.c107
-rw-r--r--epan/dissectors/packet-tipc.c7
-rw-r--r--epan/dissectors/packet-tls-utils.c37
-rw-r--r--epan/dissectors/packet-tn5250.c3
-rw-r--r--epan/dissectors/packet-usb-hid.c3
-rw-r--r--epan/dissectors/packet-usb-video.c3
-rw-r--r--epan/dissectors/packet-vp9.c2
-rw-r--r--epan/dissectors/packet-wassp.c3
-rw-r--r--epan/dissectors/packet-windows-common.c16
-rw-r--r--epan/dissectors/packet-wlccp.c2
-rw-r--r--epan/dissectors/packet-wow.c26
-rw-r--r--epan/dissectors/packet-wtp.c2
-rw-r--r--epan/dissectors/packet-x11.c28
-rw-r--r--epan/dissectors/packet-x509if.c34
-rw-r--r--epan/dissectors/packet-x509sat.c12
-rw-r--r--epan/dissectors/packet-x75.c2
-rw-r--r--epan/dissectors/packet-xml.c6
-rw-r--r--epan/dissectors/packet-xmpp-utils.c32
-rw-r--r--epan/dissectors/packet-xmpp-utils.h2
-rw-r--r--epan/dissectors/packet-xmpp.c2
-rw-r--r--epan/dissectors/packet-yami.c3
-rw-r--r--epan/dissectors/packet-z3950.c34
-rw-r--r--epan/dissectors/packet-zbee-direct.c6
-rw-r--r--epan/dissectors/packet-zbee-nwk-gp.c14
-rw-r--r--epan/dissectors/packet-zbee-tlv.c10
-rw-r--r--epan/dissectors/packet-zbee-zcl.c4
-rw-r--r--epan/dissectors/usb.c118
-rw-r--r--epan/enterprises.c660
-rw-r--r--epan/epan.c10
-rw-r--r--epan/manuf-data.c1292
-rw-r--r--epan/packet.c35
-rw-r--r--epan/packet.h19
-rw-r--r--epan/packet_info.h1
-rw-r--r--epan/pci-ids.c6146
-rw-r--r--epan/prefs.c31
-rw-r--r--epan/print.c30
-rw-r--r--epan/proto.c6
-rw-r--r--epan/protobuf_lang_tree.c31
-rw-r--r--epan/services-data.c76
-rw-r--r--epan/show_exception.c9
-rw-r--r--epan/strutil.c20
-rw-r--r--epan/wslua/init_wslua.c24
-rw-r--r--epan/wslua/lua_bitop.c25
-rw-r--r--epan/wslua/wslua.h4
-rw-r--r--epan/wslua/wslua_dissector.c49
-rw-r--r--epan/wslua/wslua_file.c4
-rw-r--r--epan/wslua/wslua_int64.c2
-rw-r--r--epan/wslua/wslua_proto.c54
-rw-r--r--epan/wslua/wslua_tree.c4
-rw-r--r--epan/wslua/wslua_tvb.c10
-rw-r--r--extcap/ciscodump.c9
-rw-r--r--extcap/ssh-base.c64
-rw-r--r--extcap/ssh-base.h4
-rw-r--r--extcap/sshdump.c9
-rw-r--r--extcap/wifidump.c10
-rw-r--r--packaging/debian/changelog2
-rw-r--r--packaging/debian/libwireshark17.symbols2
-rwxr-xr-xpackaging/macosx/ChmodBPF/install-scripts/postinstall5
-rw-r--r--packaging/nsis/CMakeLists.txt2
-rw-r--r--packaging/nsis/GetWindowsVersion.nsh190
-rw-r--r--packaging/nsis/logray.nsi29
-rw-r--r--packaging/nsis/mingw64-qt-mapping.txt2
-rw-r--r--packaging/nsis/windeployqt-to-nsis.py10
-rw-r--r--packaging/nsis/wireshark.nsi67
-rwxr-xr-xpackaging/source/git-export-release.sh.in2
-rw-r--r--packaging/wix/Prerequisites.wxi10
-rw-r--r--plugins/epan/gryphon/packet-gryphon.c11
-rw-r--r--plugins/epan/mate/mate_runtime.c122
-rw-r--r--plugins/epan/mate/packet-mate.c9
-rw-r--r--plugins/epan/opcua/opcua.c2
-rw-r--r--plugins/epan/opcua/opcua_simpletypes.c11
-rw-r--r--plugins/epan/profinet/packet-dcerpc-pn-io.c49
-rw-r--r--plugins/epan/wimaxasncp/packet-wimaxasncp.c4
-rw-r--r--reordercap.c94
-rw-r--r--resources/file_dlg_win32.rc14
-rw-r--r--resources/logray.exe.manifest.in9
-rw-r--r--resources/wireshark.exe.manifest.in8
-rw-r--r--ringbuffer.c35
-rw-r--r--sharkd_session.c103
-rw-r--r--test/captures/quic-with-secrets.pcapngbin0 -> 44236 bytes
-rw-r--r--test/fixtures_ws.py1
-rw-r--r--test/lua/acme_file.lua4
-rw-r--r--test/lua/inspect.lua5
-rw-r--r--test/lua/proto.lua8
-rw-r--r--test/lua/protofield.lua8
-rw-r--r--test/lua/verify_globals.lua15
-rw-r--r--test/suite_dfilter/group_function.py8
-rw-r--r--test/suite_dissection.py4
-rw-r--r--test/suite_sharkd.py91
-rw-r--r--text2pcap.c1
-rwxr-xr-xtools/asn2wrs.py27
-rwxr-xr-xtools/check_typed_item_calls.py3
-rwxr-xr-xtools/macos-setup-brew.sh11
-rwxr-xr-xtools/macos-setup.sh8
-rwxr-xr-xtools/make-packet-dcm.py4
-rwxr-xr-xtools/make-pci-ids.py20
-rwxr-xr-xtools/make-services.py2
-rwxr-xr-xtools/make-version.py4
-rw-r--r--tools/msys2-setup.sh23
-rw-r--r--tools/win-setup.ps113
-rw-r--r--ui/commandline.c9
-rw-r--r--ui/logray/logray_main_window_slots.cpp2
-rw-r--r--ui/qt/export_dissection_dialog.cpp6
-rw-r--r--ui/qt/extcap_options_dialog.cpp42
-rw-r--r--ui/qt/extcap_options_dialog.h1
-rw-r--r--ui/qt/models/column_list_model.cpp2
-rw-r--r--ui/qt/models/packet_list_model.cpp69
-rw-r--r--ui/qt/packet_list.cpp21
-rw-r--r--ui/qt/packet_list.h1
-rw-r--r--ui/qt/packet_range_group_box.cpp19
-rw-r--r--ui/qt/rtp_player_dialog.cpp6
-rw-r--r--ui/qt/sequence_dialog.cpp50
-rw-r--r--ui/qt/sequence_dialog.h5
-rw-r--r--ui/qt/tcp_stream_dialog.cpp20
-rw-r--r--ui/qt/utils/data_printer.cpp61
-rw-r--r--ui/qt/utils/data_printer.h1
-rw-r--r--ui/qt/voip_calls_dialog.cpp3
-rw-r--r--ui/qt/widgets/filter_expression_toolbar.cpp8
-rw-r--r--ui/qt/widgets/syntax_line_edit.cpp26
-rw-r--r--ui/qt/wireshark_de.ts48
-rw-r--r--ui/qt/wireshark_en.ts12
-rw-r--r--ui/qt/wireshark_es.ts12
-rw-r--r--ui/qt/wireshark_fr.ts12
-rw-r--r--ui/qt/wireshark_it.ts16
-rw-r--r--ui/qt/wireshark_ja_JP.ts12
-rw-r--r--ui/qt/wireshark_ko.ts16
-rw-r--r--ui/qt/wireshark_main_window_slots.cpp2
-rw-r--r--ui/qt/wireshark_pl.ts1843
-rw-r--r--ui/qt/wireshark_ru.ts12
-rw-r--r--ui/qt/wireshark_sv.ts12
-rw-r--r--ui/qt/wireshark_tr_TR.ts12
-rw-r--r--ui/qt/wireshark_uk.ts12
-rw-r--r--ui/qt/wireshark_zh_CN.ts12
-rw-r--r--ui/recent.c2
-rw-r--r--ui/ssl_key_export.c2
-rw-r--r--ui/tap-rtp-analysis.c1
-rw-r--r--ui/win32/file_dlg_win32.cpp152
-rw-r--r--ui/win32/file_dlg_win32.h31
-rw-r--r--wiretap/CMakeLists.txt2
-rw-r--r--wiretap/blf.c191
-rw-r--r--wiretap/blf.h28
-rw-r--r--wiretap/file_access.c2
-rw-r--r--wiretap/pcap-common.c126
-rw-r--r--wiretap/pcapng.c112
-rw-r--r--wiretap/wtap.h3
-rw-r--r--wiretap/wtap_opttypes.c26
-rw-r--r--wiretap/wtap_opttypes.h23
-rw-r--r--writecap/pcapio.c5
-rw-r--r--wsutil/cpu_info.c3
-rw-r--r--wsutil/to_str.c10
-rw-r--r--wsutil/wmem/wmem_map.c24
-rw-r--r--wsutil/wmem/wmem_map.h16
366 files changed, 13381 insertions, 6258 deletions
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
index 7ea2331..345a7ba 100644
--- a/.github/workflows/macos.yml
+++ b/.github/workflows/macos.yml
@@ -9,14 +9,18 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
- - name: Set up Python 3.8
+ - name: Set up Python 3.11
uses: actions/setup-python@v4
with:
- python-version: 3.8
+ python-version: 3.11
- name: Install deps
run: ./tools/macos-setup-brew.sh --install-optional --install-doc-deps --install-dmg-deps --install-test-deps
env:
HOMEBREW_NO_AUTO_UPDATE: 1
+ - name: Install pytest
+ run: pip3 install pytest pytest-xdist
+ - name: Install dmgbuild
+ run: pip3 install dmgbuild
- name: Mkdir
run: mkdir build
- name: Cmake
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6355be1..67a5e64 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -82,7 +82,7 @@ variables:
.build-linux:
stage: build
tags:
- - docker
+ - saas-linux-small-amd64
before_script:
- printf "\e[0Ksection_start:%s:ci_env_section[collapsed=true]\r\e[0KCI environment variables" "$(date +%s)"
- env | grep ^CI | sort
@@ -96,7 +96,7 @@ variables:
.test-linux:
stage: test
tags:
- - docker
+ - saas-linux-small-amd64
variables:
GIT_STRATEGY: none
@@ -215,11 +215,14 @@ variables:
# it sets an alternate HOME, which results in asdf returning
# unknown command: python3. Perhaps you have to reshim?
# Make sure /usr/local/bin is first in order to work around asdf.
- - export PATH=/usr/local/bin:$PATH
+ - export PATH=/usr/local/bin:$PATH:$HOME/.python-env/bin
- brew --version
- printf "\e[0Ksection_start:%s:brew_section[collapsed=true]\r\e[0KInstalling prerequisites" "$( date +%s)"
- ./tools/macos-setup-brew.sh --install-optional --install-test-deps
- printf "\e[0Ksection_end:%s:brew_section\r\e[0K" "$( date +%s)"
+ # Homebrew implemented PEP 668, so install Python packages using venv for now.
+ - python3 -m venv $HOME/.python-env
+ - $HOME/.python-env/bin/pip3 install pytest pytest-xdist
- export PYTEST_ADDOPTS=--skip-missing-programs=dumpcap,rawshark
- mkdir -p ccache
- ccache --show-stats
@@ -229,7 +232,7 @@ variables:
- cd build
script:
- printf "\e[0Ksection_start:%s:cmake_section[collapsed=true]\r\e[0KRunning CMake" "$( date +%s)"
- - cmake -G Ninja -DENABLE_CCACHE=ON -DLUA_FIND_VERSIONS=ANY -DTEST_EXTRA_ARGS=--disable-capture ..
+ - cmake -G Ninja -DENABLE_CCACHE=ON -DTEST_EXTRA_ARGS=--disable-capture ..
- printf "\e[0Ksection_end:%s:cmake_section\r\e[0K" "$( date +%s)"
- ninja
- ninja test-programs
@@ -259,6 +262,7 @@ Source Package:
- cp -v doc/release-notes.txt ../release-notes-${WIRESHARK_VERSION}.txt
after_script:
# - ccache --max-size $( du --summarize --block-size=1M "$CI_PROJECT_DIR/build" | awk '{printf ("%dM", $1 * 1.5)}' )
+ - if [ "$CI_JOB_STATUS" != "success" ]; then exit 0 ; fi
- stat --format="%n %s bytes" wireshark-*.tar.*
- for digest in sha512 sha256 sha1 ; do openssl $digest wireshark-*.tar.* ; done
# This will break if we produce multiple tarballs, which is arguably a good thing.
@@ -271,6 +275,8 @@ Source Package:
artifacts:
paths:
- wireshark-*.tar.*
+ - release-notes-*.html
+ - release-notes-*.txt
# Job to generate packages for Debian stable
Debian Stable APT Package:
@@ -340,7 +346,7 @@ Windows MinGW-w64 Package:
image: registry.gitlab.com/wireshark/wireshark-containers/mingw-dev
rules: !reference [.if-merged]
tags:
- - docker
+ - saas-linux-small-amd64
cache:
# XXX Use ${CI_JOB_NAME}-${CI_MERGE_REQUEST_TARGET_BRANCH_NAME} instead?
key: ${CI_JOB_NAME}-release-4.2
@@ -367,22 +373,22 @@ Windows MinGW-w64 Package:
expire_in: 3 days
needs: []
-openSUSE 15.4 RPM Package:
+openSUSE 15.5 RPM Package:
extends: .build-rpm
- image: registry.gitlab.com/wireshark/wireshark-containers/opensuse-15.4-dev
+ image: registry.gitlab.com/wireshark/wireshark-containers/opensuse-15.5-dev
script:
- printf "\e[0Ksection_start:%s:cmake_section[collapsed=true]\r\e[0KRunning CMake" "$( date +%s)"
- cmake -G Ninja -DUSE_qt6=OFF ..
- printf "\e[0Ksection_end:%s:cmake_section\r\e[0K" "$( date +%s)"
- ninja wireshark_rpm
-openSUSE 15.4 RPM Test:
+openSUSE 15.5 RPM Test:
extends: .test-rpm
- image: registry.gitlab.com/wireshark/wireshark-containers/opensuse-15.4-dev
+ image: registry.gitlab.com/wireshark/wireshark-containers/opensuse-15.5-dev
script:
- zypper --no-gpg-checks --no-remote install -y build/packaging/rpm/RPMS/x86_64/*.rpm
- tshark --version
- needs: [ 'openSUSE 15.4 RPM Package' ]
+ needs: [ 'openSUSE 15.5 RPM Package' ]
Rocky Linux 9 RPM Package:
extends: .build-rpm
@@ -523,7 +529,7 @@ macOS Arm Package:
- wireshark-macos-arm-package
retry: 1
script:
- - export CMAKE_PREFIX_PATH=/usr/local/Qt-6.2.4
+ - export CMAKE_PREFIX_PATH="/usr/local/Qt-6.2.4:/usr/local/lua-5.2"
- export PATH="$PATH:$HOME/bin"
- mkdir build
- cd build
@@ -568,7 +574,7 @@ macOS Intel Package:
- wireshark-macos-intel-package
retry: 1
script:
- - export CMAKE_PREFIX_PATH=/usr/local/Qt-6.2.4
+ - export CMAKE_PREFIX_PATH="/usr/local/Qt-6.2.4:/usr/local/lua-5.2"
- export PATH="$PATH:$HOME/bin"
- mkdir build
- cd build
@@ -619,7 +625,7 @@ Documentation:
script:
# XXX We might want to move this to wireshark-ubuntu-dev or debian-setup.sh.
- DEBIAN_FRONTEND=noninteractive apt-get update
- - DEBIAN_FRONTEND=noninteractive apt-get --yes install ruby-coderay ruby-asciidoctor-pdf
+ - DEBIAN_FRONTEND=noninteractive apt-get --yes install ruby-asciidoctor-pdf ruby-coderay ruby-dev
- NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install asciidoctor-epub3
- mkdir build
- cd build
@@ -628,16 +634,16 @@ Documentation:
- printf "\e[0Ksection_end:%s:cmake_section\r\e[0K" "$( date +%s)"
- ninja all_guides
- cd docbook
- - for HTML_DIR in wsug_html wsug_html_chunked wsdg_html wsdg_html_chunked ; do zip -9 -r "$HTML_DIR.zip" "$HTML_DIR" ; done
- after_script:
- - mv -v build/docbook/ws[ud]g_html{,_chunked}.zip .
- - mv -v build/docbook/Wireshark*Guide.{epub,pdf} .
+ - for HTML_DIR in ws[ud]g_html{,_chunked} ; do zip -9 -r "$HTML_DIR.zip" "$HTML_DIR" ; done
- |
if [ -n "$S3_DESTINATION_DOCS" ] ; then
for DOC_FILE in ws[ud]g_html{,_chunked}.zip Wireshark*Guide.{epub,pdf} ; do
aws s3 cp "$DOC_FILE" "$S3_DESTINATION_DOCS/"
done
fi
+ - mv -v ws[ud]g_html{,_chunked}.zip Wireshark*Guide.{epub,pdf} ../..
+ after_script:
+ - if [ "$CI_JOB_STATUS" != "success" ]; then exit 0 ; fi
artifacts:
paths:
- wsug_html.zip
@@ -807,14 +813,14 @@ macOS Build:
- cmake -GNinja ..
- printf "\e[0Ksection_end:%s:cmake_section\r\e[0K" "$( date +%s)"
- ninja wsar_html_zip 2>&1 > doxygen_output.txt | tee doxygen_errors.txt
- after_script:
- - mv build/wsar_html.zip .
- - mv build/doxygen_output.txt .
- - mv build/doxygen_errors.txt .
+ - mv wsar_html.zip doxygen_{output,errors}.txt ..
+ - cd ..
- |
if [ -n "$S3_DESTINATION_DOCS" ] ; then
aws s3 cp wsar_html.zip "$S3_DESTINATION_DOCS/"
fi
+ after_script:
+ - if [ "$CI_JOB_STATUS" != "success" ]; then exit 0 ; fi
artifacts:
paths:
- doxygen_errors.txt
@@ -851,6 +857,7 @@ macOS Build:
# The cache should be large enough to be useful but it shouldn't take
# too long to restore+save each run.
- ccache --max-size $( du --summarize --block-size=1M "$CI_PROJECT_DIR/build" | awk '{printf ("%dM", $1 * 1.5)}' )
+ - if [ "$CI_JOB_STATUS" == "canceled" ]; then exit 0 ; fi
- . /tmp/fuzz_result.sh
- if $FUZZ_PASSED ; then exit 0 ; fi
- echo Fuzzing failed. Generating report.
diff --git a/AUTHORS b/AUTHORS
index bf790bf..93af0ec 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -4256,6 +4256,7 @@ Cédric Delmas <cedricde[AT]outlook.fr>
D. W. Poon <dwpoon[AT]mail.ubc.ca>
Daan De Meyer <daan.j.demeyer[AT]gmail.com>
Damir Franusic <damir.franusic[AT]gmail.com>
+Dan <DanOfTheRoses[AT]gmail.com>
Dan Robertson <danlrobertson89[AT]gmail.com>
Dana Sy <dana.hayden.sy[AT]gmail.com>
Daniel Dulaney <dan[AT]dulaney.xyz>
@@ -4275,6 +4276,7 @@ Danielle Church <dani.church[AT]gmail.com>
Daniël van Eeden <github[AT]myname.nl>
Daniël van Eeden <wireshark[AT]myname.nl>
Darien Spencer <cusneud[AT]mail.com>
+Darius Davis <darius-wireshark[AT]free-range.com.au>
Darius Davis <darius[AT]vmware.com>
Darshan Nevgi <darshan.sn[AT]samsung.com>
Dave Barach <dave[AT]barachs.net>
@@ -4337,6 +4339,7 @@ Dmitry Linikov <linikov[AT]arrival.com>
Dmitry Radivonchik <mitya[AT]oktetlabs.ru>
Dom Gifford <Dominic.Gifford[AT]atmel.com>
Dominic Chen <d.c.ddcc[AT]gmail.com>
+Dominic Pearson <dsp[AT]technoanimal.net>
Dominik Kilian <Dominik.Kilian[AT]nordicsemi.no>
Domonkos P. Tomcsanyi <domi[AT]tomcsanyi.net>
Donatas Abraitis <donatas[AT]opensourcerouting.org>
@@ -4490,6 +4493,7 @@ Igor Dmitriev <igor.dmitriev[AT]eke.fi>
Igor Passchier <igor.passchier[AT]tassinternational.com>
Ike Gilbert <ike[AT]imgilbert.com>
Ilya Gavrilov <ilya.dev[AT]gmail.com>
+Ilya Kulakov <kulakov.ilya[AT]gmail.com>
Indraneel Guha <indraneelg[AT]gmail.com>
Ionut Ceausu <ionut.ceausu[AT]gmail.com>
Isaac Boukris <iboukris[AT]gmail.com>
@@ -4874,7 +4878,7 @@ Nils Björklund <nils.bjorklund[AT]effnet.com>
Nils Hanke <nils.hanke[AT]outlook.de>
Nils Ohlmeier <github[AT]ohlmeier.org>
Nitzan Carmi <nitzanc[AT]mellanox.com>
-Noan Perrot <noan.perrot[AT]gmail.com>
+Noan <noan.perrot[AT]gmail.com>
Noel Power <noel.power[AT]suse.com>
Nora Sandler <nsandler[AT]securityinnovation.com>
Odysseus Yang <wiresharkyyh[AT]outlook.com>
@@ -4910,6 +4914,7 @@ Patrick MacArthur <pmacarth[AT]iol.unh.edu>
Patrick Rauscher <prauscher[AT]prauscher.de>
Patrick Servello <patrick.servello[AT]gmail.com>
Patrik Moško <patrikmosko95[AT]gmail.com>
+Patrik Thunström <patrik.thunstroem[AT]technica-engineering.de>
Patryk Nowak <patryk.nowak[AT]tieto.com>
Pau Espin Pedrol <pespin[AT]sysmocom.de>
Paul Aurich <paul[AT]darkrain42.org>
@@ -5050,6 +5055,7 @@ Sayuri Mizushima <yamaguchi55[AT]protonmail.ch>
Scott Deandrea <sdeandrea[AT]apple.com>
Scott McKay <smckay[AT]pathwayconnect.com>
Sebastian Kloeppel <sk[AT]nakedape.net>
+Sebastian Reimers <hallo[AT]studio-link.de>
Sebastian Schildt <sebastian[AT]frozenlight.de>
Sebastien Henri <sebastien.henri[AT]meraki.net>
Sektor van Skijlen <ethouris[AT]gmail.com>
@@ -5061,6 +5067,7 @@ Sergey Rak <sergrak[AT]iotecha.com>
Sergey V. Lobanov <sergey.v.lobanov[AT]yandex.ru>
Sergey V. Lobanov <sergey[AT]lobanov.in>
Sergio Moreno Mozota <sergio.morenomozota[AT]telefonica.com>
+Sergio de Paula <sergio.paula[AT]dsr-corporation.com>
Seth Alexander <seth.alexander[AT]cosmicaes.com>
Sharon Brizinov <SharonBrizinov[AT]users.noreply.github.com>
Sharvil Nanavati <sharvil[AT]playground.global>
@@ -5244,6 +5251,7 @@ Yannik Enss <Yannik.Enss[AT]rohde-schwarz.com>
Yasuyuki Tanaka <yasuyuki.tanaka[AT]inria.fr>
Yehonatan Zecharia <yonti95[AT]gmail.com>
Yehudah Aaron <yehmron[AT]gmail.com>
+Yingjie Deng <17322619133[AT]163.com>
Yoni Gilad <yonig[AT]radcom.com>
Yoshihiro Ueda <uyoshihiro[AT]users.noreply.gitlab.com>
Yoshiyuki Kurauchi <ahochauwaaaaa[AT]gmail.com>
@@ -5257,6 +5265,7 @@ Yuya Kawakami <yuyarin[AT]yuyarin.net>
Yuya Kusakabe <y-kusakabe[AT]bbsakura.net>
Zach Chadwick <zachad[AT]qacafe.com>
Zachary Holcomb <zholcomb2017[AT]my.fit.edu>
+Zackhardtoname <zack.hardtoname[AT]gmail.com>
Zdeněk Žamberský <zzdevel[AT]seznam.cz>
Zhang Zhilei <zhangzhilei[AT]360.cn>
Zhao Lin <zlbinghamton[AT]gmail.com>
@@ -5294,8 +5303,10 @@ m.kaldenbach <m.kaldenbach[AT]wearetriple.com>
mGhony99 <mGhony99[AT]gmail.com>
mbutkereit <marvin.butkereit[AT]haw-hamburg.de>
mirkodeckert <mirko.deckert[AT]adtran.com>
+mistral13 <mistral[AT]gmx.ch>
mivens <mark.ivens[AT]vitrifi.net>
mkg20001 <mkg20001[AT]gmail.com>
+mverkleij <mail[AT]mverkleij.nl>
naesten <naesten[AT]gmail.com>
naf <naf[AT]sdf.org>
nickvsnetworking <nick[AT]nickvsnetworking.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 27fa752..155e0a4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -57,7 +57,7 @@ endif()
# Updated by tools/make-version.py
set(PROJECT_MAJOR_VERSION 4)
set(PROJECT_MINOR_VERSION 2)
-set(PROJECT_PATCH_VERSION 2)
+set(PROJECT_PATCH_VERSION 5)
set(PROJECT_BUILD_VERSION 0)
set(PROJECT_VERSION_EXTENSION "")
@@ -1201,6 +1201,10 @@ find_package(GCRYPT "1.8.0" REQUIRED)
# C Asynchronous resolver
reset_find_package(CARES)
find_package(CARES "1.13.0" REQUIRED)
+if (CARES_VERSION VERSION_GREATER_EQUAL "1.28.0")
+ # Suppress deprecation warnings.
+ add_compile_definitions(CARES_NO_DEPRECATED)
+endif ()
find_package(LEX REQUIRED)
find_package(Perl)
find_package(PCRE2 REQUIRED)
@@ -1499,15 +1503,15 @@ if (QT_FOUND)
# https://doc.qt.io/qt-5.11/supported-platforms-and-configurations.html
# https://doc.qt.io/qt-5.15/supported-platforms.html
# https://doc-snapshots.qt.io/qt6-dev/supported-platforms.html
- if(Qt${qtver}Widgets_VERSION VERSION_GREATER_EQUAL "6.5.0")
+ if(Qt${qtver}Widgets_VERSION VERSION_GREATER_EQUAL "6.5.0" AND MIN_MACOS_VERSION VERSION_LESS "11.0")
set(MIN_MACOS_VERSION 11.0)
- elseif(Qt${qtver}Widgets_VERSION VERSION_GREATER_EQUAL "6.0.0")
+ elseif(Qt${qtver}Widgets_VERSION VERSION_GREATER_EQUAL "6.0.0" AND MIN_MACOS_VERSION VERSION_LESS "10.14")
set(MIN_MACOS_VERSION 10.14)
- elseif(Qt5Widgets_VERSION VERSION_GREATER_EQUAL "5.14.0")
+ elseif(Qt5Widgets_VERSION VERSION_GREATER_EQUAL "5.14.0" AND MIN_MACOS_VERSION VERSION_LESS "10.13")
set(MIN_MACOS_VERSION 10.13)
- elseif(Qt5Widgets_VERSION VERSION_GREATER_EQUAL "5.12.0")
+ elseif(Qt5Widgets_VERSION VERSION_GREATER_EQUAL "5.12.0" AND MIN_MACOS_VERSION VERSION_LESS "10.12")
set(MIN_MACOS_VERSION 10.12)
- elseif(Qt5Widgets_VERSION VERSION_GREATER_EQUAL "5.10.0")
+ elseif(Qt5Widgets_VERSION VERSION_GREATER_EQUAL "5.10.0" AND MIN_MACOS_VERSION VERSION_LESS "10.11")
set(MIN_MACOS_VERSION 10.11)
endif()
if(CMAKE_OSX_DEPLOYMENT_TARGET AND CMAKE_OSX_DEPLOYMENT_TARGET VERSION_LESS MIN_MACOS_VERSION)
diff --git a/ChangeLog b/ChangeLog
index b91a0a9..73405da 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,131 +1,1506 @@
-commit 8e38c07020
+commit 7263aefcb0
Author: Gerald Combs <gerald@wireshark.org>
-Date: Thu Jan 4 14:16:36 2024 -0800
+Date: Mon May 13 15:55:35 2024 -0700
- Prep for 4.2.2
+ Prep for 4.2.5
-commit 73c949e970
+commit e02689beb6
+Author: John Thacker <johnthacker@gmail.com>
+Date: Mon May 13 22:06:46 2024 +0000
+
+ Qt: Fix RTP Player crash
+
+ marker_stream_ might not exist when playFinished is called.
+ In particular, deleting the RtpAudioStreams might cause
+ playFinished to be called when the audio streams delete
+ their audio output in certain cases, such as if they are
+ paused. (The behavior might be slightly different on Qt6,
+ where QAudioSink is used vs. Qt5 where QAudioOutput is used.)
+
+ Fix #19596
+
+ (cherry picked from commit 7698e03ba13e2e9966c84fbd800f8ab6c25983ef)
+
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
+
+commit 8be6839369
Author: Gerald Combs <gerald@wireshark.org>
-Date: Thu Jan 4 14:12:37 2024 -0800
+Date: Mon May 13 13:07:00 2024 -0700
- Qt: Update some comments related to WinSparkle
+ GitLab CI: Fix a couple of separators
- [skip ci]
+commit 01a8f70b09
+Author: John Thacker <johnthacker@gmail.com>
+Date: Wed Oct 18 20:59:53 2023 -0400
- (cherry picked from commit e68771714aa72f1217d225821121a09ab2cf6fd0)
+ GitLab CI: Switch the openSUSE builds to 15.5
-commit a8642e2956
+ (cherry picked from commit a274d763df69d2a3d91f6478f6deb29c0c039952)
+
+commit 1b9e1eccc8
+Author: Gerald Combs <gerald@wireshark.org>
+Date: Mon May 13 12:41:37 2024 -0700
+
+ GitLab CI: Quote a variable
+
+commit c637058453
+Author: Gerald Combs <gerald@wireshark.org>
+Date: Mon May 13 12:01:53 2024 -0700
+
+ GitLab CI: Try to add back Lua on macOS
+
+commit 9118420bb8
Author: John Thacker <johnthacker@gmail.com>
-Date: Thu Jan 4 11:39:01 2024 -0500
+Date: Mon May 13 14:52:45 2024 +0000
- Qt+WinSparkle: Don't close the main window in the can shutdown callback
+ Packaging: Get MinGW cross-compiling working with Qt 6.7
- Apparently in Qt6 closing the main window can exit the Qt event loop,
- which means that WinSparkle never gets the notifications it needs to
- proceed.
+ Qt 6.7 renamed QWindowsVistaStylePlugin to QModernWindowsStylePlugin.
+ We have an explicit mapping because windeployqt6 doesn't work well
+ with cross-compiling. Skip files that don't exist, since only one
+ of the Windows plugin files will exist.
- WinSparkle will call quit() shortly thereafter via the shutdown
- request callback, so the main window will still close at approximately
- the same time.
+ (cherry picked from commit 169392ce60ebf3d1fdc090ebf08ecdb313edb145)
- See discussion in https://github.com/vslavik/winsparkle/issues/237
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
- Fix #19568
+commit e93ac94572
+Author: John Thacker <johnthacker@gmail.com>
+Date: Mon May 13 13:37:23 2024 +0000
- (cherry picked from commit 96b0a674c71761f2c0d30d046e9f118caeefeb56)
+ wslua: Fix segfault when registering a field / ei twice
-commit c2ad918749
+ We need to call Proto_commit as a protected function so that
+ errors don't call wslua_panic and abort, but instead are handled
+ gracefully.
+
+ Fix #19194
+
+ (cherry picked from commit 70a3c9f82913d6c70ddc57d19976f80a676c9c56)
+
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
+
+commit 7f380a2a9d
Author: John Thacker <johnthacker@gmail.com>
-Date: Thu Jan 4 08:28:36 2024 -0500
+Date: Mon May 13 13:06:21 2024 +0000
- RSVP: Fix typo
+ GitLab CI: Fix the Documentation job artifacts
- The variable type is being passed for the encoding instead of
- ENC_BIG_ENDIAN
+ (cherry picked from commit 674e79c29e8144bb61ef4b3248be9fcb33c8dc9b)
- (cherry picked from commit 75fa97e7f2decfb4a772a3d03f17299a1ac0d649)
+ Co-authored-by: Gerald Combs <gerald@wireshark.org>
-commit 8d0e01a099
-Author: Ismael Mendez Matamoros <ismael@rti.com>
-Date: Fri Dec 22 13:40:36 2023 +0100
+commit 8c1ba39798
+Author: John Thacker <johnthacker@gmail.com>
+Date: Mon May 13 12:35:29 2024 +0000
+
+ GitLab CI: Install ruby-dev in the Documentation job
- RTPS: Fixed User Data Dissection feature
+ (cherry picked from commit 520fb7848ec713eadd9a0b149197d793789e9c52)
- Function rtps_strlcpy broke the User Data dissection feature because it
- overwites beyond the size of the string
+ Co-authored-by: Gerald Combs <gerald@wireshark.org>
+
+commit 235136144c
+Author: John Thacker <johnthacker@gmail.com>
+Date: Sun May 12 08:53:46 2024 -0400
- (cherry picked from commit 6f17dcd67d861ac9116982d05ad01fbd76159b63)
+ Revert "Lua: Replace lua_pushnumber with lua_pushinteger where apropriate."
-commit 143f8be037
-Author: Simon Steinmann <simon.steinmann91@gmail.com>
-Date: Thu Jan 4 02:17:38 2024 +0000
+ This reverts commit 8cac5932f79b87deda26480769a266ff344036e6.
- s4607: Add to "decode as"
+commit f12b53ac0f
+Author: John Thacker <johnthacker@gmail.com>
+Date: Sun May 12 08:53:24 2024 -0400
- Fix #19566
+ Revert "wslua: Fix support for Lua 5.1 and 5.2 on 32bit"
- (cherry picked from commit 8f7f7cd7de724578c583c4d88752c70a68d7f747)
+ This reverts commit f8fd960cb8f5378c8ab6b20b4bc7f0b73498d057.
-commit 343c864939
+commit 4ed940da8c
Author: John Thacker <johnthacker@gmail.com>
-Date: Wed Jan 3 19:56:19 2024 -0500
+Date: Sun May 12 08:53:11 2024 -0400
+
+ Revert "Lua: Revert a mistaken change to lua_pushinteger"
- RTPS: Don't leak in the guid hash
+ This reverts commit f2dc894cb2e50668a3f80bfdffed1932f8e35459.
- If hashing a newly created GBytes, unref the GBytes after computing
- the hash (and before returning it.)
+commit a88ec0adc0
+Author: Gerald Combs <gerald@wireshark.org>
+Date: Sun May 12 09:26:48 2024 +0000
- Fix #19558 (in combination with 45b929a1b63a766edaa7eb52071f10614b87a5e2
- and 6f17dcd67d861ac9116982d05ad01fbd76159b63)
+ [Automatic update for 2024-05-12]
- (cherry picked from commit ca027987142407980e3d98f5ba9b45daf61abb25)
+ Update manuf, services enterprise numbers, translations, and other items.
-commit 0d9bc173c4
-Author: Guy Harris <gharris@sonic.net>
-Date: Wed Jan 3 16:32:12 2024 -0800
+commit e8d6cf7c66
+Author: John Thacker <johnthacker@gmail.com>
+Date: Sat May 11 13:12:25 2024 +0000
+
+ lua: Deregister heuristic lists added via heuristic_new on reload
+
+ Heuristic dissectors lists don't necessarily (and don't usually)
+ have the name of a given dissector handle.
+
+ There's still a leak when reloading plugins because the created
+ heuristic dissector list isn't returned to the caller. That also
+ means there's no way of knowing if it succeeded, and using the
+ heuristic list involves calling proto:register_heuristic with
+ the name, but rather than calling a function on a returned
+ object.
- Add ".snoop" to the list of capture file extensions.
+ Fix #19603
- It's in other such lists.
+ (backported from commit 2b2b032af2bdb33345534db33445a2aad24c6217)
- Update some comments while we're at it.
+commit 0711fa7b1e
+Author: mistral13 <mistral@gmx.ch>
+Date: Wed Oct 11 22:17:50 2023 +0200
- Fixes #19565.
+ btmesh: Various fixes from master
- (cherry picked from commit dd7df70be8cbf7e47e7ad855b5ff2daa771e651a)
+ 1. Register the company ID as big endian.
+ 2. The pinfo column of the own (lua-)dissector was overwritten
+ by the btmesh dissector.
+ 3. Output of the own (lua-)dissector as root-tree element.
-commit 42c28428e4
+ Fixed some code indent while already visiting this file.
+
+ Ping #19388
+
+ (cherry picked from commit d3fab19401caf09e2e65047d2843db9d3caf2131)
+ (cherry picked from commit 50f322ec1702f4ce0e2d94a19509a82b3fb3df24)
+ (cherry picked from commit 38d05ad97a4a2158b834f973a5b6a034c78edc7b)
+ (cherry picked from commit a4527fa0418605318c8986bc8947a606e72043a9)
+
+commit 949aa570f3
+Author: John Thacker <johnthacker@gmail.com>
+Date: Fri May 10 10:42:03 2024 -0400
+
+ Lua: Fix DissectorTable on certain Lua versions (e.g., 32 bit)
+
+ The port value is a uint32_t. Calling checkinteger and implicitly
+ casting to an unsigned integer later does not give the correct
+ result on a Lua install where Lua_Integer is 32 bit for unsigned
+ integers greater than INT32_MAX. Lua will truncate to the integer
+ range (sometimes by using inline assembly, sometimes explicitly.)
+
+ Note that Lua_Integer can 32 bit on 64 bit platforms; it can also
+ be 64 bit on 32 bit platforms.
+
+ Fix #18367
+
+ (backported from commit 4049ea7e6c4009158cbf91b0bf3300759d2106d6)
+
+commit f2dc894cb2
+Author: John Thacker <johnthacker@gmail.com>
+Date: Fri May 10 10:08:00 2024 -0400
+
+ Lua: Revert a mistaken change to lua_pushinteger
+
+ The value read from a file here is allowed to be a floating point number,
+ it should not be pushed as a Lua_Integer.
+
+ (backported from commit 1428fe28e663c8c6057d583d336b84014f169de1)
+
+commit 077104f6dc
+Author: Gerald Combs <gerald@wireshark.org>
+Date: Wed May 8 14:17:01 2024 -0700
+
+ Windows: Upgrade GnuTLS to 3.8.4
+
+ (cherry picked from commit b119b9d6010f7ec0210f83297df365c2e1dec1ae)
+
+commit 6ab3e8ed88
+Author: John Thacker <johnthacker@gmail.com>
+Date: Thu May 9 14:08:33 2024 +0000
+
+ GitLab CI: Remove LUA_FIND_VERSIONS ANY
+
+ That was added briefly but support removed in
+ commit 759c0feab351de2b20946ececf2949ab52592ccd and it
+ results in Lua not being found.
+
+ (cherry picked from commit eccf1104d6e310eaf78a0bf063425179c81a7150)
+
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
+
+commit 38c5a89ac4
Author: Gerald Combs <gerald@wireshark.org>
-Date: Tue Jan 2 15:31:21 2024 -0800
+Date: Tue May 7 16:48:37 2024 -0700
+
+ Windows: Upgrade nghttp2 to 1.61.0
+
+ (cherry picked from commit fe51f8424f9a5dcae514745b919b6139c3c568fd)
+
+commit 5e96f900a9
+Author: John Thacker <johnthacker@gmail.com>
+Date: Tue May 7 06:38:31 2024 -0400
+
+ gitlab-ci: Remove docker tag from jobs
+
+ The small SaaS runner on Linux had the docker (plus all other tags)
+ removed, causing all the jobs with that tag to get stuck.
+
+ https://about.gitlab.com/blog/2023/08/15/removing-tags-from-small-saas-runner-on-linux/
+ https://docs.gitlab.com/ee/update/deprecations.html#removal-of-tags-from-small-saas-runners-on-linux
+ (backported from commit a0e399e5c3edd06cfc78fe41f8959f4c556045be)
+
+commit 94ac8729f3
+Author: John Thacker <johnthacker@gmail.com>
+Date: Sun May 5 13:59:27 2024 +0000
+
+ MATE: Handle fields that are in different data sources
+
+ In addition to the start and end offset locations, store a pointer to
+ the data source tvb in each mate_range. The start and end offsets
+ are only relevant within a data source.
+
+ If a field has a data source different from one of the protocol,
+ transport protocol, or payload ranges, search in the tree for the
+ ancestor nodes of the field, and see if an ancestor is located within
+ one of the ranges.
+
+ In order to workaround #17877 (non-visible items can't change length
+ after being added to the tree, which affects most protocols), set
+ the tree as visible similar to done with a number of Lua postdissectors
+ that need all fields. Unfortunately this is overkill that hurts
+ performance.
+
+ Fix #19619
+
+ (cherry picked from commit 4ec5c7f78f9af35b2cebe92c4dd7eab033a1aa82)
+
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
+
+commit 48c0364590
+Author: Gerald Combs <gerald@wireshark.org>
+Date: Sun May 5 09:25:22 2024 +0000
+
+ [Automatic update for 2024-05-05]
+
+ Update manuf, services enterprise numbers, translations, and other items.
+
+commit cb267b4e52
+Author: Martin Nyhus <martin@nyhus.dev>
+Date: Wed May 1 17:17:06 2024 +0200
+
+ ZigBee TLV: fix infinite loop in deeply nested packets
+
+ When analyzing a packet that hits the recursion limit returning the
+ remaining length of the buffer would allow backtracking, setting up an
+ infinite loop if the packet is constructed correctly and the code would
+ fail by hitting the too many items check.
+
+ Since dissect_zbee_tlvs doesn't know the length of the value it is
+ dissecting it can't pretend to have consumed all of it. Most of the
+ callers of this function eventually check for bytes that weren't
+ consumed so returning offset (i.e. no bytes consumed) makes the value
+ get treated as unknown bytes.
+
+ Input to fuzzshark_zbee_beacon that triggered this:
+ fb 03 49 ff 49 eb 49 ff 49 ff 49 eb 49 ff
+
+ (cherry picked from commit 9ab952b9641bb07d796499487e8d8691d52a6902)
+
+commit 37c53eab86
+Author: John Thacker <johnthacker@gmail.com>
+Date: Thu May 2 23:29:30 2024 +0000
+
+ Qt: Fix an typo of row vs count in columnListModel
+
+ The size of the internal store is the number of model rows (which
+ are the packet list columns), not the number of model columns (which
+ are the parameter types for the packet list columns). This caused data
+ not to appear for the later parameter types when the number of packet
+ list columns were small. More of a difference in the current branch
+ because width and alignment are also shown in preferences, so it
+ has effects at the default number of columns.
+
+ Related to #19821 (but not sufficient.)
+
+ (cherry picked from commit 704fe87abd1e83a3451ba4abb2001ef7349d5c71)
+
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
+
+commit a338e8117c
+Author: John Thacker <johnthacker@gmail.com>
+Date: Wed May 1 11:41:24 2024 +0000
+
+ LAPD: Set source address
+
+ The destination and source address are both being set to the
+ destination value. This causes the normal all source Flow Graph
+ (as opposed to the one created by the VoIP Calls Dialog) to have
+ empty lines.
+
+ Set the dl_src and dl_dst addresses using the AT_STRINGZ address
+ instead of col_set_str so that it works for both the Resolved and
+ Unresolved columns, and set the src and dst addresses as shallow
+ copies of those.
+
+ Fixup 7ac827fd74cf7b1eac80d54b5ce0001f15a587e3
+
+ (cherry picked from commit 1da57b5ad536acd1d138d363825bc7aad7ad1f4b)
+
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
+
+commit 8b916c603e
+Author: John Thacker <johnthacker@gmail.com>
+Date: Tue Apr 30 23:20:17 2024 +0000
+
+ Qt: Fix ProgressFrame location in non-VoIP Flow Graph
+
+ ProgressFrame::addToButtonBox examines the button box layout to
+ determine where to add itself. Changing the visibility of the
+ RTP player button redoes the layout and upsets the positioning
+ of the frame. This leaves the ProgressFrame dangling in the far
+ left of the ButtonBox, on top of the Help button.
+
+ SequenceDialog only determines whether it's a VoIP Calls dialog or
+ a non-VoIP Flow Graph when initially instantiated (there's no call
+ to disable it), so add the VoIP parameter to the constructor and
+ set the visibility appropriately before adding the ProgressFrame
+ instead of having the VoIP Calls Dialog call an extra public method.
+
+ (cherry picked from commit a95dec6ef9612d80598547a346825639e16c4e51)
+
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
+
+commit a862720a7e
+Author: John Thacker <johnthacker@gmail.com>
+Date: Tue Apr 30 22:41:28 2024 +0000
+
+ Qt: Use afterLayout signal for Flow Graph y axis labels
+
+ For the Sequence Dialog (Flow Graph / VOIP Calls), we place
+ text labels for the two y-axes (Time and Comment) above the
+ axes, which is not a normally supported position, so we
+ manually place it. The position of the labels depends on the
+ axis rectangle sizes and positions.
+
+ QCustomPlot 2.1.0 added a new QCustomPlot::afterLayout signal
+ that is extremely helpful for situations like this. It is
+ called immediately before the draw step in a replot, or before
+ printing happens, and can put the labels in the correct position
+ after any change.
+
+ This is a little more reliable than our previous solution, which
+ sometimes left the labels out of position, needing to be fixed
+ by manually pushing the Reset button.
+
+ (cherry picked from commit 84fe646b78d62dcc5540d7a2950a06b0f86de0e7)
+
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
+
+commit 51a925ce40
+Author: John Thacker <johnthacker@gmail.com>
+Date: Mon Apr 29 01:45:43 2024 +0000
+
+ ptp: multiple tlv_pathsequence in announce message
+
+ (cherry picked from commit 7ef8501c347d4336a1cb62b4b312f8c93b92efff)
+
+ 32b82d47 Update file packet-ptp.c
+ 746c18cf ptp: multiple tlv_pathsequence in announce message
+
+ Co-authored-by: Chuck Craft <bubbasnmp@gmail.com>
+
+commit 42e3b84e31
+Author: John Thacker <johnthacker@gmail.com>
+Date: Sun Apr 28 21:16:17 2024 +0000
+
+ GitLab CI: Fix the Documentation job
+
+ Remove a duplicate `cd`. Use the same pattern for the guides when
+ zipping and copying.
+
+ (cherry picked from commit 4f8f52dea0db04dfefaefcba47e8ba16b2d29e2e)
+
+ Co-authored-by: Gerald Combs <gerald@wireshark.org>
+
+commit d705e804ed
+Author: John Thacker <johnthacker@gmail.com>
+Date: Sun Apr 28 18:40:52 2024 +0000
+
+ ipars: Fix truncation warning
- NSIS+WiX: Install sharkd
+ MAX_EOM_MSG_SIZE is defined to be too small for the value placed in
+ for an unknown type.
- Install sharkd. As noted in #19562, we don't yet have a man page.
+ epan/dissectors/packet-ipars.c:130:29: error: 'snprintf' will always be truncated; specified size is 16, but format string expands to at least 24 [-Werror,-Wformat-truncation]
+ 130 | default: snprintf(eom_msg, MAX_EOM_MSG_SIZE, "Unknown EOM type (0x%2.2X)", ia); break;
- Fixes #19556
+ (cherry picked from commit 4320031c97b3528bc96ab5d366bab8b7fdb2a243)
- (cherry picked from commit bcb0d025684d20b5a21d93d2f8a57e604d83df2a)
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
-commit 4d4f695860
+commit f2b9b7b582
+Author: John Thacker <johnthacker@gmail.com>
+Date: Sun Apr 28 17:38:21 2024 +0000
+
+ c-ares: Suppress deprecation warnings
+
+ c-ares 1.28.0 emits deprecation warnings by default for certain
+ functions. We will try to move away from those functions, but
+ suppress the warnings by default.
+
+ It's possible for recent versions of c-ares to be built without
+ thread safety and threading support, and it can only be checked
+ at runtime. We will probably have to fallback to using deprecated
+ functions on recent versions of c-ares if threading is not available
+ even if and when we switch to using event threads, so disable the
+ warning.
+
+ Ping #19763
+
+ (cherry picked from commit e1a6557d34ff45073e3e75923bf3f6521ebc2b16)
+
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
+
+commit 4dadd9b029
+Author: Dan <DanOfTheRoses@gmail.com>
+Date: Fri Apr 26 21:49:40 2024 -0500
+
+ wslua: Fix integer validation signedness
+
+ The C Standard (any revision) 6.3.1.4 Real floating and integer,
+ in a footnote says:
+ "The remaindering operation performed when a value of integer type is
+ converted to unsigned type need not be performed when a value of real
+ floating type is converted to unsigned type."
+
+ Since a Lua_Number is a float type, converting a (possibly negative)
+ float to an unsigned type and then to a signed type is undefined
+ behvavior, and doesn't necessarily produce the same result as converting
+ the float to a signed integer type directly. On x86 and x86-64 it
+ has the same result, but it's permissible to instead first cast the float
+ to the nearest unsigned integer value (i.e. 0), so that the end result
+ is 0 instead on negative.
+
+ On the ARM architecture this is what seems to happen:
+
+ https://embeddeduse.com/2013/08/25/casting-a-negative-float-to-an-unsigned-int/
+ https://github.com/mavlink/mavlink/issues/2073#issuecomment-2080103820
+
+ (Compilers can warn about this, but it's perhaps difficult to get the
+ only the right subset of conversion warnings.)
+
+ Therefore, when adding a signed integer field, we must use
+ wslua_checkgint32.
+
+ (backported from commit 15392c324d5eaefcaa298cdee09cd5b40b12e09c)
+
+commit af5546f31d
+Author: Gerald Combs <gerald@wireshark.org>
+Date: Sun Apr 28 09:25:05 2024 +0000
+
+ [Automatic update for 2024-04-28]
+
+ Update manuf, services enterprise numbers, translations, and other items.
+
+commit e63cbbb720
+Author: John Thacker <johnthacker@gmail.com>
+Date: Fri Apr 26 13:15:27 2024 +0000
+
+ 5co-rap: Use ITEM_LABEL_LENGTH for snprintf in CF_FUNCs
+
+ At least one case cases a format truncation warning in recent
+ versions of clang.
+
+ (cherry picked from commit f1dd3bf4f2c95571e854d3e35536021ba9aa053d)
+
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
+
+commit 43225b77d8
+Author: John Thacker <johnthacker@gmail.com>
+Date: Fri Apr 26 11:35:25 2024 +0000
+
+ 5co-legacy: Use ITEM_LABEL_LENGTH for snprintf in CF_FUNCs
+
+ In particular, one case leads to a format truncation warning on
+ recent versions of clang.
+
+ (cherry picked from commit 2056120ddce063850acb5cfd207dce724093c83e)
+
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
+
+commit 21d3008eb0
+Author: Anders Broman <a.broman58@gmail.com>
+Date: Sun Apr 21 19:42:46 2024 +0200
+
+ PER: When showing internal bitfields handle integer values.
+
+ (cherry picked from commit f0462182da63155ffde38d51da7dbedc9fd2d0a6)
+
+commit ae4f2529db
+Author: Niels Widger <niels@qacafe.com>
+Date: Tue Apr 23 12:27:43 2024 +0000
+
+ sharkd: Fix SIP follow filter returned in "frame" command
+
+ `sip_follow_conv_filter` uses its `edt` argument to determine the
+ `sip.Call-ID == "<call-id>"` value to return as the conversation
+ filter. If `edt` is `NULL`, a fallback filter of `sip.Call-ID` is
+ returned.
+
+ `sharkd`'s `frame` method returns the SIP filter returned by
+ `sip_follow_conv_filter` for SIP conversations in a `filter` field of
+ its `fol` object array. These fields are emitted by
+ `sharkd_follower_visit_layers_cb`, which uses `get_follow_conv_func`
+ to retrieve `sip_follow_conv_filter`. Previously,
+ `sharkd_follower_visit_layers_cb` always passed `NULL` as the `edt`
+ argument to the function returned by `get_follow_conv_func`, therefore
+ `sip_follow_conv_filter` always saw a `edt=NULL` and was not able to
+ output a specific `sip.Call-ID` filter, even if one was otherwise be
+ available.
+
+ This commit updates `sharkd_follower_visit_layers_cb` to instead pass
+ the `edt` argument that is available as the `edt` argument to its
+ caller, `sharkd_session_process_frame_cb`.
+
+ (cherry picked from commit 9778cc82207520547e22c39f11ca3c1ac52c8aea)
+
+ Co-authored-by: Niels Widger <niels@qacafe.com>
+
+commit f8fd960cb8
Author: Balint Reczey <balint@balintreczey.hu>
-Date: Wed Jan 3 22:44:18 2024 +0100
+Date: Sat Apr 20 18:57:17 2024 +0200
+
+ wslua: Fix support for Lua 5.1 and 5.2 on 32bit
+
+ Add macros to use lua_pushnumber for Lua 5.1/5.2 and lua_pushinteger for Lua 5.3/5.4
+ based on change proposal by Stig Bjørlykke.
+
+ Ping #10881
+
+ Follow up for commit 8cac5932f79b87deda26480769a266ff344036e6.
+
+ Co-authored-by: Stig Bjørlykke <stig@bjorlykke.org>
+
+commit 91e4bbf5cb
+Author: John Thacker <johnthacker@gmail.com>
+Date: Fri Apr 26 01:26:04 2024 +0000
+
+ Qt: Fix flow graph scroll direction via keyboard
+
+ The y (time) axis is range reversed. QCP reversed ranges still
+ have the mathematically smaller element in lower and the larger
+ in upper, so reverse the direction of movement in panAxes.
+
+ Also fix the keyboard right arrow allowing the graph to be scrolled
+ to right farther than the QScrollBar allows, into extra empty space.
+
+ Fix #12932
+
+ (cherry picked from commit cc4c931b4a3a3d481aeb9ea320e5fb5e31ca0f70)
+
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
+
+commit 4e70db8cf0
+Author: Yaniv Michael Kaul <yaniv.kaul@scylladb.com>
+Date: Thu Apr 25 16:46:21 2024 +0300
+
+ Release-4.2: CQL: take into account NULL and unset values
+
+ From https://gitlab.com/wireshark/wireshark/-/commit/291822a25cfaf54a3556c19d5d47af7efb1bdf48 to stable branch.
+
+ Signed-off-by: Yaniv Kaul <mykaul@gmail.com>
+
+commit a4d779fbbb
+Author: Yaniv Michael Kaul <yaniv.kaul@scylladb.com>
+Date: Thu Apr 25 16:28:19 2024 +0300
+
+ Release-4.2: CQL: fix show paging state first
+
+ Brings to release 4.2 a single fix from https://gitlab.com/wireshark/wireshark/-/commit/161b9809b17c394e025453b5accdd9733eee3ee7 :
+ If Has_more_pages flag is set, then paging_state field should be the first to apper in the metadata, before the (optional) global_table_spec
+
+ Signed-off-by: Yaniv Kaul <mykaul@gmail.com>
+
+commit c193bcea08
+Author: John Thacker <johnthacker@gmail.com>
+Date: Thu Apr 25 15:17:47 2024 +0000
+
+ Qt: Fix Window scaling graph axis labels
+
+ Commit 259a3e508f37bb3c9b6d18cdacf7a18aa6dbd8f8 added a graph
+ of the congestion window to the Window Scale graph, but didn't
+ update the axes now that the window has two graphs.
+
+ Fix #17425. Fix #15016
+
+ (cherry picked from commit 259bbbff2a5257319ff69aa32cc377fc501eb022)
+
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
+
+commit 47199b51b9
+Author: John Thacker <johnthacker@gmail.com>
+Date: Thu Apr 25 14:39:26 2024 +0000
+
+ TLS: SM3 and SM2 are not in TLS (Signature|Hash)Algorithm registries
+
+ These two value strings are only for displaying the contents of the
+ two octets contained in a signature_algorithms extension as a TLS 1.2
+ SignatureAndHashAlgorithm. (As opposed to displaying it as a TLS 1.3
+ SignatureScheme where the two octets do not necessarily separately
+ indicate signature and hash.)
+
+ SM3 and SM2 are not assigned in those registries, are not supported in
+ TLS 1.2 (RFC 8998), and if they were would not receive the values chosen
+ here.
+
+ Add a comment explaining why even though RFC 8422 registered ED25519
+ and ED448 to the TLS 1.2 SignatureAlgorithm and HashAlgorithm registries
+ we don't add it to the value strings for those. (It would take more
+ complicated processing to avoid confusion, and for little gain.)
+
+ Fix #19801
+
+ (cherry picked from commit ea5ed37426c9489b66ea32cec818d68c584a5a85)
+
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
+
+commit dc29e276dd
+Author: John Thacker <johnthacker@gmail.com>
+Date: Thu Apr 25 11:04:41 2024 +0000
+
+ E212: update MNC information
+
+ Update MNC information from the 15 November 2013 release of
+ Mobile Network Codes (MNC) for the international identification
+ plan for public networks and subscriptions
+ (According to Recommendation ITU-T E.212 (09/2016))
+
+ https://www.itu.int/pub/T-SP-E.212B-2023
+ https://www.itu.int/pub/T-SP-OB.1280
+
+ Fix #19800
+
+ (cherry picked from commit a2eaaa4e8804189ef50406fb6b2783d492367949)
+
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
+
+commit 22a9b5ab5d
+Author: Gian Lorenzo Meocci <gianlorenzo.meocci@athonet.com>
+Date: Wed Apr 24 09:37:25 2024 +0200
+
+ fix pfcp outer header desc
+
+commit 52d644b084
+Author: Niels Widger <niels@qacafe.com>
+Date: Wed Apr 24 12:26:07 2024 +0000
+
+ sharkd: Improve sub-stream support in "frame" and "follow" methods
+
+ Add new optional `sub_stream` input argument to `sharkd`'s `follow`
+ method which, if given, specifies the sub-stream index number to
+ follow (e.g. for HTTP/2 or QUIC streams). If no `sub_stream` argument
+ is given, all sub-streams are followed (by using the special
+ `SUBSTREAM_UNUSED` sub-stream index value).
+
+ Add new `followers` output field to `sharkd`'s `frame` method which
+ contains an array of objects each containing `protocol`, `filter`,
+ `stream` and (for HTTP/2 or QUIC streams) `sub_stream` fields. A new
+ `followers` array was added to the response instead of adding the
+ stream and sub-stream indices to the existing `fol` field due to
+ backwards-compatibility issues. The `fol` field is an array of string
+ arrays, each subarray containing the same values as the `protocol` and
+ `filter` fields in the new `followers` array, i.e.:
+
+ "fol": [["TCP", "tcp.stream eq 0"], ["TLS", "tcp.stream eq 0"]]
+
+ which makes adding new, possibly optional, fields difficult. The
+ `fol` field should be considered deprecated, any new fields should be
+ added to `followers`. The new `followers` field is an array of
+ objects, making adding new fields down the road simple:
+
+ "followers": [{"protocol": "TCP", "filter": "tcp.stream eq 0"}, {"protocol": "TLS", "filter": "tcp.stream eq 0"}]
+
+ Updated existing and added new `sharkd` unit tests to validate
+ behavior of new fields/arguments.
+
+ (cherry picked from commit 289a159042e3b81c2c135031dd4da9590aea848e)
+
+ Co-authored-by: Niels Widger <niels@qacafe.com>
+
+commit 15b77707dd
+Author: John Thacker <johnthacker@gmail.com>
+Date: Wed Apr 24 22:41:03 2024 +0000
+
+ github/workflow: fix macos
+
+ For macos-latest runner on Github using macos14 on arm there is only Python
+ >= 3.11 available.
+
+ We have to install pytest and dmgbuild manually
+
+ (cherry picked from commit f186f44a711b1ba831173238c49a8e280697ae1e)
+
+ Co-authored-by: Uli Heilmeier <uh@heilmeier.eu>
+
+commit 06a5e5c445
+Author: John Thacker <johnthacker@gmail.com>
+Date: Wed Apr 24 10:55:41 2024 +0000
+
+ SSH: Handle "curve25519-sha256@libssh.org" KEX name
+
+ As RFC 8731 notes, 'The "curve25519-sha256" key exchange method is
+ identical to the "curve25519-sha256@libssh.org" key exchange method
+ created by Aris Adamantiadis and implemented in libssh and OpenSSH.'
+
+ Handle the other name in ssh_kex_hash_type. It is already accounted
+ for in other functions.
+
+ Fix #19240
+
+ (cherry picked from commit 6966cdb73e6f5dc2e6a03136b07b8ed59c7ff65a)
+
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
+
+commit 1a88d0c734
+Author: Christian Krump <christian.krump@br-automation.com>
+Date: Tue Apr 23 10:58:35 2024 +0200
+
+ EPLv2: modified limitation of valid SDO segment size
+
+ (cherry picked from commit a9f783600fc787ce891f1eda8e242793cc436fc8)
+
+commit 585a3dc48c
+Author: Gerald Combs <gerald@wireshark.org>
+Date: Tue Apr 23 13:27:56 2024 -0700
+
+ GitLab CI: after_script updates
+
+ In GitLab 17 and later, after_script will run when a job is cancelled.
+ Update our various jobs accordingly.
+
+ (cherry picked from commit e03a58958e065c7e2dc7e15a90978fa5d57edcf6)
+
+ Conflicts:
+ .gitlab-ci.yml
+
+commit 0c45a5d772
+Author: John Thacker <johnthacker@gmail.com>
+Date: Tue Apr 23 03:03:28 2024 +0000
+
+ lldpd: move hf_lldp_tlv_enable_system_cap* to capabilities_enabled_tree
+
+ (cherry picked from commit e267bfdd88a7fe190f52906ac98a3b03035c580f)
- wiretap: Bump ABI version to 14.1.0
+ Co-authored-by: Paul Donald <newtwen+github@gmail.com>
- The added symbols since 14.0.0 requires bumping the minor version.
+commit c8a21a6d58
+Author: Guy Harris <gharris@sonic.net>
+Date: Tue Apr 23 02:28:05 2024 +0000
+
+ fcfzs: fix calculation of the number of fill bytes.
+
+ If a name length is a multiple of 4, no padding is required to make what
+ follows be on a 4-byte boundary. Only use 4 - (len % 4) to calculate
+ the padding if len isn't a multiple of 4.
+
+ (cherry picked from commit e8b256c9a0f427b8dc2387ab02a47dc8c2f687e0)
+
+ Co-authored-by: Guy Harris <gharris@sonic.net>
+
+commit 0b80c5ab9e
+Author: Stig Bjørlykke <stig@bjorlykke.org>
+Date: Mon Apr 22 15:52:00 2024 +0200
+
+ icmpv6: Do not add time string when lifetime is infinity
+
+ Do not convert the lifetime value to string when the value
+ is used for infinity.
+
+ (cherry picked from commit 1a40e22a0095056cc4397e07d7b95ce74587a65b)
+
+commit 8e515cac2e
+Author: Anders Broman <a.broman58@gmail.com>
+Date: Mon Apr 22 12:17:29 2024 +0000
+
+ NR-RRC: Remove version from SIB dissector table name.
+
+ (cherry picked from commit e40ec77006f159f816038e5295851f0caf218a7a)
+
+ Co-authored-by: Anders Broman <a.broman58@gmail.com>
+
+commit 98fa3eff88
+Author: Pascal Quantin <pascal@wireshark.org>
+Date: Mon Apr 22 15:40:52 2024 +0200
+
+ NAS 5GS: fix dissection of NAS message container IE
+
+ Take into consideration the outer NAS message security header before
+ trying to dissect the IE.
+
+ Closes #19793
+
+ (cherry picked from commit ab3511c5977d0dd483d1d7e3d741940a12eaacc4)
+
+ Conflicts:
+ epan/dissectors/packet-nas_5gs.c
+
+commit 6ed87c1638
+Author: John Thacker <johnthacker@gmail.com>
+Date: Mon Apr 22 13:14:34 2024 +0000
+
+ QUIC: handle connection migrations for zero length CIDs
+
+ In Quic Connection Migrations are possible even without source
+ connection IDs. Currently, after connection migration Wireshark fails to
+ associate answers with zero length CIDs for the new address to the
+ original connection.
+
+ After migration when the client sends data from the new IP
+ the connection data needs to be associated with the new conversation.
+ So when the server answers and the connection is identified by the
+ conversation a connection is found.
+
+ (cherry picked from commit 95a9fc5c0fa569cc7c5026f0ef235736b99848eb)
+
+ Co-authored-by: Max Schrötter <mail@schrc3b6.de>
+
+commit c77f142c0e
+Author: Anders Broman <a.broman58@gmail.com>
+Date: Sun Apr 21 18:34:09 2024 +0000
+
+ NR-RRC: Add callable dissectors for SIB messages
+
+ Add callable dissectors for SIB messages.
+ Add dis table
+ Fix column display for single SIB message.
+
+ (cherry picked from commit dfec2284f34dae9ee515539d5ce5bb9f14762e3c)
+
+ Co-authored-by: Anders Broman <a.broman58@gmail.com>
+
+commit 77ccc7ece0
+Author: Guy Harris <gharris@sonic.net>
+Date: Mon Apr 22 09:15:13 2024 +0000
-commit 622e368175
+ tipc: fix byte count.
+
+ Use the value used as the number of bytes in an atom to determine
+ whether that number is singular or plural; don't use some other
+ unrelated value.
+
+ (cherry picked from commit aea66ddc3336a095e6201b633a78014bd3af3a1d)
+
+ Co-authored-by: Guy Harris <gharris@sonic.net>
+
+commit 207981eb13
+Author: Guy Harris <gharris@sonic.net>
+Date: Mon Apr 22 06:54:31 2024 +0000
+
+ tipc: fix padding after bearer instance string.
+
+ Presumably if the length of the string is a multiple of 4, it needs zero
+ byts of padding to put the next item on a 4-byte boundary. This means
+ that (4 - (length % 4)) is not the right formula - a check for whether
+ there's any padding must be done first.
+
+ (cherry picked from commit cda7c030e1eafdca22028d1d8c87e484bba37555)
+
+ Co-authored-by: Guy Harris <gharris@sonic.net>
+
+commit 05e9eeef13
Author: Gerald Combs <gerald@wireshark.org>
-Date: Wed Jan 3 11:16:23 2024 -0800
+Date: Sun Apr 21 09:25:15 2024 +0000
+
+ [Automatic update for 2024-04-21]
+
+ Update manuf, services enterprise numbers, translations, and other items.
+
+commit fc290d976e
+Author: Guy Harris <gharris@sonic.net>
+Date: Sat Apr 20 18:58:25 2024 +0000
+
+ pcapio: fix a check for idb_filter size.
+
+ The filter string in the idb_filter option has a maximum length of
+ UINT16_MAX - 1, because the maximum size of an option bodyis UINT16_MAX,
+ and the first byte of the option contains the filter type.
+
+ The code to write the filter did the right check; the code to count the
+ idb_filter option length checked against UINT16_MAX. Fix that.
+
+ While we're at it, fix a comment.
+
+ (cherry picked from commit d277ecdb3ff7d04e7f64566f21409b3f1359eb2f)
+
+ Co-authored-by: Guy Harris <gharris@sonic.net>
+
+commit 32bde22d9b
+Author: John Thacker <johnthacker@gmail.com>
+Date: Sat Apr 20 13:04:27 2024 +0000
+
+ editcap, libwiretap: Don't use array of initial DSBs after freeing
+
+ wtap_dump_close frees the passed in GArray of initial DSBs, used
+ by editcap for injecting DSBs from a file or list of files.
+
+ Add functions to increment and decrement the reference count of
+ an array of wtap blocks. Dereference the block of initial DSBs
+ in wtap_dump_close() instead of freeing it. In editcap, before
+ closing the dump file in cases where we intend to open a new
+ file (e.g., with a maximum time value or a maximum packet count),
+ reference the block.
+
+ Fix #19782, #19783, #19784.
+
+ (cherry picked from commit be3550b3b138f39bebb87ac0b8490e75fc8cc847)
+
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
+
+commit b8d61cd977
+Author: Pascal Quantin <pascal@wireshark.org>
+Date: Sat Apr 20 12:12:00 2024 +0000
+
+ GSM RP: fix dissection of SMS in 5G Nf interface
+
+ Closes #19773
+
+ (cherry picked from commit 9dffc3834ea0f7439a2e2d2f55350b6d5e2596c5)
+
+ Co-authored-by: Pascal Quantin <pascal@wireshark.org>
+
+commit a7661fd568
+Author: John Thacker <johnthacker@gmail.com>
+Date: Thu Apr 18 15:37:18 2024 +0000
+
+ Windows: Add include depended upon packets checkbox
+
+ Non-Windows already has this checkbox.
+
+ The vast majority of the time users do want dependent packets
+ so that reassembly, etc. works. Occasionally they don't (e.g.,
+ perhaps to exclude retransmitted segments or duplicates), but
+ the primary use of this checkbox is helping users understand why
+ extra packets are included so they don't think it's in error.
+
+ We might want to get rid of the special Windows dialogs. They
+ use a deprecated API, but the newer API is more difficult to customize.
+ The Qt common dialogs are better than the GTK+ file dialogs at the
+ time we started to use the Windows dialogs.
+
+ Follow up to dcc9cbffefe0598eadec11cbc1869943a26219c5
+ Fix #19772
+
+ (cherry picked from commit 90d7ecf6971b89a918f61d95a9bce77d74f8cb64)
+
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
+
+commit bd26249852
+Author: Alexis La Goutte <alexis.lagoutte@gmail.com>
+Date: Fri Apr 19 06:50:41 2024 +0000
+
+ Zigbee Direct: Fixed UUID mismatch with join, pjoin & leave characteristics
+
+ (cherry picked from commit 8b802bffd12e3bbd80bb6e6e501309bb7fee8124)
+
+ Co-authored-by: Cole Wu <chw@exegin.com>
+
+commit 0e5038cf89
+Author: Alexis La Goutte <alexis.lagoutte@gmail.com>
+Date: Thu Apr 18 11:13:55 2024 +0000
+
+ ieee80211: Fix typo in display filters
+
+ (cherry picked from commit d4da04f8ee47f12cb737601fdbf2be48e881303c)
+
+ Co-authored-by: WFA-achuang <achuang@wi-fi.org>
+
+commit d4526a807b
+Author: John Thacker <johnthacker@gmail.com>
+Date: Thu Apr 18 11:56:00 2024 +0000
+
+ Qt: Fix removing ignored packets from selected range
+
+ Correctly remove ignored packets from the selected packet
+ range on non-Windows, which for some reason has never done this.
+ The Windows dialog has.
+
+ (cherry picked from commit 317177d1d079a1054f2b8935c30c376d67dd7eb5)
+
+ Co-authored-by: John Thacker <johnthacker@gmail.com>
+
+commit 4d63d194ba
+Author: John Thacker <johnthacker@gmail.com>
+Date: Tue Apr 16 09:05:40 2024 -0400
+
+ pcapng: fix writing hash options
+
+ Since compute_block_option_size() and our option writing routines
+ already add needed padding, we don't need to compute the size
+ with padding in pcapng_compute_packet_hash_option_size(). That allows
+ us to use it both when computing the option size for the total
+ block size, and in the writing routine, for consistency.
+
+ Fix some errors where the type octet was not being included in
+ the bytes written for both one type of packet verdict, and for
+ packet hash. Also an error where the packet verdict option was
+ written with the queue option type.
+
+ Fix a possible buffer overrun for the fixed length hash types
+ when the hash length is wrong. We have a few different options
+ about how to handle hashes with bogus length - omit, write what
+ we have, truncate (if we have extra bytes) or err. Add some
+ comments regarding the options; for now, choose reporting an
+ error.
+
+ Fix #19766
+
+ (backported from commit b36749f56a4b2a9f1931aa0ab472dbf7420a75e3)
+
+commit 9c5c64b4cb
+Author: Gerald Combs <gerald@wireshark.org>
+Date: Mon Apr 15 16:06:46 2024 -0700
+
+ pcapng: Fix logging
+
+ WS_LOG_DOMAIN must be defined after including config.h and before
+ including wslog.h.
+
+ (cherry picked from commit 09b83c0ecee60641439b67ed5931714492ae38c1)
+
+commit b822d573e0
+Author: Gerald Combs <gerald@wireshark.org>
+Date: Sun Apr 14 09:25:33 2024 +0000
+
+ [Automatic update for 2024-04-14]
+
+ Update manuf, services enterprise numbers, translations, and other items.
+
+commit 2ece4fa7dc
+Author: John Thacker <johnthacker@gmail.com>
+Date: Fri Apr 12 07:19:12 2024 -0400
+
+ ieee1905: Fix bit ordering of HE-MCS set
+
+ The Tx Rx HE MCS Support field in IEEE 1905 is reordered from
+ 802.11ax into big-endian order (which is already done), but that
+ shouldn't change which bit is considered the LSB (which is the
+ Max HE-MCS For 1 SS) and which is the MSB (Max HE-MCS for 8 SS).
+
+ Fix #19737
+
+ (cherry picked from commit 179bf05a4d4e64427fa7e7805f1d4e134874cca8)
+
+commit cee6caf8ea
+Author: John Thacker <johnthacker@gmail.com>
+Date: Wed Apr 10 12:16:02 2024 -0400
+
+ Qt: Hide export dissections dialog when accepting
+
+ When the Export Dissections Dialog is accepted but starts to
+ try to save the files, hide it. It will close itself after the
+ export is done (which deletes it), but in the meantime the
+ exporting from a large file can take a long time. Hiding the
+ dialog allows the user to cancel the save with the Progress Dialog
+ on the main window. Leaving the dialog visible allowed the user
+ to click "Cancel" on the dialog, which didn't cancel the save
+ (still up to the progress dialog), but did delete the dialog on
+ close, resulting in a crash when the export did finish.
+
+ This is for Linux and macOS, and matches the behavior of the native
+ Windows dialog, which already hides itself when Save is clicked.
+
+ (cherry picked from commit e84adf41da08c60ff329f3e91bb948e2e1e33753)
+
+commit 7fb337faf8
+Author: John Thacker <johnthacker@gmail.com>
+Date: Wed Apr 10 10:28:45 2024 -0400
+
+ Qt: Fix crash when closing TimeShiftDialog before redissection done
+
+ Commit f67eccedd9836e6ced1f57ae9889f57a5400a3d7 made it so that
+ the TimeShiftDialog doesn't have a nested event loop with exec.
+ That's good, but that means that an AutoConnection between
+ TimeShiftDialog::timeShifted and PacketList::applyTimeShift is a
+ DirectConnection, which means that TimeShiftDialog::applyTimeShift
+ waits for the packet list redissection to finish before the function
+ calls enableWidgets and returns.
+
+ The user can close the Time Shift Dialog while the packet list
+ redissection is still ongoing. As the TimeShiftDialog is also now
+ DeleteOnClose, this means that when the redissection finishes (or
+ is canceled via ProgressDialog) the TimeShiftDialog will try to update
+ its widgets after they've been deleted, causing a crash.
+
+ To prevent, make the connection between the TimeShiftDialog and
+ the PacketList a Qt::QueuedConnection.
+
+ (cherry picked from commit ea70c16e05d0f1f0779bec6e89153a67d07d6cfa)
+
+commit 799735b9c0
+Author: Dr. Lars Völker <lars.voelker@technica-engineering.de>
+Date: Fri Mar 22 18:23:07 2024 +0100
+
+ BLF: Fixing Flags Decoding in FlexRayRcvMessage(Ex) (BUGFIX)
+
+ Flags should have been in the FrameFlags byte.
+
+ (cherry picked from commit 823b49f6c338ddc0e99315e05e3e3fb5c557456c)
+
+commit 6288f7c592
+Author: Giovanni Musto <giovanni.musto@partner.italdesign.it>
+Date: Wed Dec 13 14:26:36 2023 +0100
+
+ BLF: Fix BLF_OBJTYPE_CAN_FD_ERROR_64 not decoded as error
+
+ (cherry picked from commit 7b4d667f306c4ffb6c181280bdb47d01826eb3e6)
+
+commit 1c7dbe91da
+Author: Guy Harris <gharris@sonic.net>
+Date: Sat Nov 18 14:53:33 2023 -0800
+
+ blf: expand a comment.
+
+ Give more details on how the amount of padding between log container
+ objects is not an obvious "padd the object's size to a multiple of
+ <power of 2> bytes".
+
+ [skip ci]
+
+ (cherry picked from commit 8c22a6cc0240123750347173acef964a3909da34)
+
+commit 559a6f89f7
+Author: Guy Harris <gharris@sonic.net>
+Date: Sat Nov 18 11:27:26 2023 -0800
+
+ blf: check the validity of the header length field.
+
+ (cherry picked from commit 3e296c041f233b6605f4004bec7e4be1acd34b70)
+
+commit 13bcc043a4
+Author: Guy Harris <gharris@sonic.net>
+Date: Sat Nov 18 01:02:04 2023 -0800
+
+ blf: add more error checks.
+
+ Check for invalid lengths in headers.
+
+ Have blf_scan_file_for_logcontainers() provide error codes and messages
+ on errors, and, if it fails, clean up and return an error when opening a
+ file.
+
+ Always check for errors from file_seek().
+
+ (cherry picked from commit ae5c7ff41bdd031f7d29151501f42bfcc68d662d)
+
+commit 91e1ec23d7
+Author: Giovanni Musto <giovanni.musto@partner.italdesign.it>
+Date: Mon Oct 23 09:30:29 2023 +0200
+
+ BLF: Extract FDF, BRS and ESI flags
+
+ (cherry picked from commit c0f287ad69e05ceb8c71a5f7100cd7c59b3835ae)
+
+commit 058ca16704
+Author: Yingjie Deng <17322619133@163.com>
+Date: Thu Apr 11 01:26:26 2024 +0800
+
+ fix: Hmac Missing
+
+ The peer->mac Algorithm is not should set NULL here. The above
+ ssh_decryption_set_cipher_id function takes peer->enc, and set
+ peer->cipher to NULL in else case, the peer->cipher is the field of
+ struct ssh_peer_data, but not have corresponding field with peer->mac in
+ struct ssh_peer_data.So I just delete it in else case.
+
+ (cherry picked from commit a2a911ea1a0adeb5a93f7cf4fd786ca0fdd0c820)
+
+commit a31b9964e6
+Author: Giovanni Musto <giovanni.musto@partner.italdesign.it>
+Date: Tue Oct 17 09:36:17 2023 +0200
+
+ BLF: Fix LIN parsing
+
+ LIN was broken because its payload was treated as a variable length field, while it is always 8 bytes
+ Fix DLC parsing to allow only 8 bytes instead of 15
+ Fix ID parsing to take only the lower 6 bits
+ Parse checksum field
+
+ (cherry picked from commit 7bf7a136766fb20132d1b9cc550f661dc70ab2d2)
+
+commit eaf7d424a7
+Author: John Thacker <johnthacker@gmail.com>
+Date: Sun Apr 7 16:57:23 2024 -0400
+
+ Qt: Work around Qt6 dataChanged pessimization
+
+ A change in Qt 6.0 makes QAbstractItemView::dataChanged, when called
+ with multiple indices, determine exactly how much of the viewport
+ rectangle is covered by the changed indices and only update that much
+ of the viewport instead of always updating the entire viewport. This
+ reduces CPU load when multiple indices, but not enough to span the
+ entire viewport, are updated at once.
+ ( https://codereview.qt-project.org/c/qt/qtbase/+/285280
+ https://bugreports.qt.io/browse/QTBUG-58580
+ )
+
+ Unfortunately, if the number of indices is very large (much larger
+ than the total number of indices that can possibly be displayed in
+ the viewport), computing the union of the intersecting rectangle takes
+ orders of magnitude longer than unconditionally updating the whole
+ viewport. ( https://bugreports.qt.io/browse/QTBUG-124173 )
+
+ When the packetListModel wants to indicate that all packets may have
+ changed, this makes dataChanged scale linearly with the total number of
+ rows/frames, whereas updating the viewport only scaled with the size of
+ the viewport but was unaffected by undisplayed packets. The calculation
+ is unnecessary because we know the entire viewport is affected. On a
+ sample modern workstation, measurements showed dataChanged taking 1 s
+ with 1.4 M packets and 9 s with 12 M packets. This signal can be issued
+ quite often, e.g. if IP address lookup (DNS or MaxMindIP) is enabled, it
+ can be issued once per second at the packet_data_timer expiration for
+ some period of time as idle dissection occurs when opening the file.
+
+ Instead of issuing dataChanged, we can issue layoutAboutToBeChanged()
+ (in practice a no-op) and layoutChanged(), which causes the QTreeView
+ to clear all information about its view items (d->viewItems.clear() in
+ QTreeView::doItemsLayout), but without clearing the current and selected
+ row (unlike [begin|end]ResetModel.) This takes the same 5-8 ms in the
+ same test procedure as above in both the 1.4 M and 12 M packet tests.
+
+ Improves #19486 considerably on Qt 6.
+
+ (cherry picked from commit 5abfe91cc164d873e56c6f24a313b93b7d883a9e)
+
+commit e51f5bf24d
+Author: Gerald Combs <gerald@wireshark.org>
+Date: Sun Apr 7 09:24:53 2024 +0000
+
+ [Automatic update for 2024-04-07]
+
+ Update manuf, services enterprise numbers, translations, and other items.
+
+commit 31188b669e
+Author: John Thacker <johnthacker@gmail.com>
+Date: Thu Apr 4 20:27:45 2024 -0400
+
+ reordercap: Handle IDBs in the middle of the file
+
+ We can read IDBs (and other non packet blocks) in the
+ middle of the file, so init the dump parameters after
+ reading all the frames. This will move the IDBs (and NRBs
+ and DSBs) to the start of the new output file (which might
+ have to happen if they're out of order.)
+
+ Note: Files with multiple Section Header Blocks probably still
+ aren't handled correctly, because the IDB number might need to be
+ rewritten (though we have some of that information after
+ commit 8ebde1309d0cc0335e32cff8c7112dc98c05d5ed)
+
+ Fix #19740
+
+ (cherry picked from commit 0c637a2b5ebaf6bf24f406e5e01a39860d4a4daa)
+
+commit f47c873dd8
+Author: mverkleij <mail@mverkleij.nl>
+Date: Fri Mar 15 14:43:29 2024 +0100
+
+ Fix reordercap -n flag generating empty output file
+
+ (cherry picked from commit ef64dcf32879353f02057ada93c0b0add78cad3c)
+ (cherry picked from commit e6ad1f677ea970b85d08066135cd8ec10d23075c)
+
+commit b6ba652b5b
+Author: John Thacker <johnthacker@gmail.com>
+Date: Thu Apr 4 07:12:45 2024 -0400
+
+ Qt: Ensure Copy Bytes as C String is a valid C string
+
+ Use octal escapes padded to three digits instead of hex escapes.
+ An octal escape is limited to three digits by definition, whereas
+ hex escape sequence are not limited, which causes problems if
+ a hex escape is followed by a (non escaped) possible hex character.
+
+ Escape double quotes and backslash. Use the simple escapes of
+ non printable characters too (optional, but looks nicer.)
+
+ This possibly could go in wsutil as another ws_escape method, but
+ the fix needs to be backported to 4.2 so let's not introduce a
+ new public function yet.
+
+ Fix #19735
+
+ (cherry picked from commit 7130e33d30acb871538e540054ef8293912ed33a)
+
+commit 5a58585792
+Author: Nardi Ivan <nardi.ivan@gmail.com>
+Date: Wed Jan 17 10:02:25 2024 +0100
+
+ LUA: allow conversion from string to uint64 in any base
+
+ This is handy when you want to specify a mask in hex format
+
+ (cherry picked from commit 534cc08ebc9fb82b965cefdf164ae02da3827f4d)
+
+commit e067aa55f3
+Author: Guy Harris <gharris@sonic.net>
+Date: Sun Mar 31 12:10:56 2024 -0700
+
+ wslua: put the example of use for treeitem:add at the right level.
+
+ It should be a subsection of the entry for treeitem:add, which means it
+ must be a level *5* header.
+
+ (cherry picked from commit 7b6e196c4117010c04d911021c16b37c454a4f19)
+
+commit 48288a29db
+Author: Guy Harris <gharris@sonic.net>
+Date: Sun Mar 31 10:51:30 2024 -0700
+
+ wslua: fix the documentation for Tvb:reported_length_remaining.
+
+ Use the WSLUA_OPTARG_xxx convention for it optional offset argument, so
+ that the documentation generation process properly documents it.
+
+ (cherry picked from commit 62bc594401f64317d4e2a66de726ca615cf0263b)
+
+commit 3911c7b7d2
+Author: John Thacker <johnthacker@gmail.com>
+Date: Fri Mar 29 09:42:44 2024 -0400
+
+ editcap: Don't memmove more than allocated in the buffer
+
+ When moving from the begining with a beginning offset specified,
+ don't run off the end. Subtract the source memory area's full offset
+ from the beginning of the buffer from the capture length.
+
+ Fix #19724
+
+ (cherry picked from commit 7c744e7933794b09e7af4d9703194ad0b01be282)
+
+commit 1f0bc61bbc
+Author: Gerald Combs <gerald@wireshark.org>
+Date: Sun Mar 31 09:24:23 2024 +0000
+
+ [Automatic update for 2024-03-31]
+
+ Update manuf, services enterprise numbers, translations, and other items.
+
+commit e9965fe303
+Author: John Thacker <johnthacker@gmail.com>
+Date: Sat Mar 30 08:07:26 2024 -0400
+
+ Mongo: Ensure the offset advances
+
+ The MongoDB Wire Protocol uses _signed_ 32 bit integers for lengths.
+ dissect_bson_document checks for bogus values and ensures that a
+ non-negative (and at least 5) size is returned, but we need to make
+ sure to use that return value instead of trusting the value read
+ from the packet in dissect_op_msg_section.
+
+ Fix #19726
+
+ (cherry picked from commit 38c0efcee8d22d922e446888b268effc3ccf725f)
+
+commit 17bff1a32f
+Author: Guy Harris <gharris@sonic.net>
+Date: Fri Mar 29 22:31:04 2024 -0700
+
+ macos-setup: Add a warning about a comparomised version of XZ.
+
+ [skip ci]
+
+ (cherry picked from commit 75b1ffe1190de3843de3cd756a6b16200a967cd8)
+
+commit 8a7dc8c440
+Author: John Thacker <johnthacker@gmail.com>
+Date: Thu Mar 28 19:46:56 2024 -0400
+
+ JSON-3GPP: Handle 5GC over HTTP/1.1 (OAI), don't create HTTP/2 sessions
+
+ http2_get_header_value currently, by calling get_http2_session,
+ always creates HTTP/2 conversation data on the current conversation.
+ This confuses the HTTP dissector if HTTP/2 is not actually present,
+ so guard it with proto_is_frame_protocol.
+
+ Also, despite 3GPP TS 29.500 saying that the service based interfaces
+ use HTTP/2 only, OAI (and perhaps other implementations) have options
+ to use HTTP/1.1, so try to handle that case as well.
+
+ Fix #19723
+
+ (backported from commit 8285e802241abb25c62d6fc71b17ce16175c151b)
+
+commit 47517b2cdd
+Author: John Thacker <johnthacker@gmail.com>
+Date: Tue Mar 5 07:50:09 2024 -0500
+
+ http2: Return header value decoded from US-ASCII
+
+ Per the discussion in RFCs 9113 and 8187, decode field values
+ from US-ASCII (replacing characters outside the range, i.e.
+ obs-text, with UTF-8 replacement characters) before returning them
+ in http2_get_header_value. This is what all current dissectors
+ need, and reduces the chances of adding unvalided text (non UTF-8)
+ to the tree.
+
+ Make a note that dissectors may need to perform additional decoding,
+ e.g. percent decoding or decoding according to RFC 8187.
+
+ There may at some point be dissectors that need access to the raw
+ bytes as opaque data (which is discouraged by the RFCs), at which
+ point we could have an additional function to access that.
+
+ Fix #19684
+
+ (cherry picked from commit 674e35bd62777e006fd41229c4c6583022d912f9)
+
+commit 9ad30bc466
+Author: Gerald Combs <gerald@wireshark.org>
+Date: Fri Mar 29 10:27:10 2024 -0700
+
+ GQUIC+DOCSIS MAC MGMT: Recursion updates
+
+ Make our recursion checks consistent with other dissectors.
+
+ (cherry picked from commit 119a385ba271a51ea35579b25dc0025ff450577c)
+
+commit 4e707387de
+Author: John Thacker <johnthacker@gmail.com>
+Date: Thu Feb 29 19:26:23 2024 -0500
+
+ gRPC: Add separate dissector handles for gRPC Web and Web Text
+
+ Rather than registering one gRPC dissector handle to three
+ flavors of gRPC and then figuring out which one got called
+ by inspecting pinfo->match_string, register different dissectors
+ with descriptions to each type, so we know which dissector was
+ called.
+
+ This especially avoids assertions when a dissector is set via
+ Decode As, or via the stream ID table (even though the stream
+ ID table won't put the gRPC dissector into the special
+ streaming "reassembly as you go" mode, instead falling back
+ to the standard HTTP/2 reassemble at the end mode.)
+
+ Also, if we have the (bidirectional) streaming mode set for
+ the stream ID but we don't have a streaming subdissector handle
+ for the (unidirectional) content type, set it to the data handle
+ to avoid an assertion. We could possibly try to set it to the
+ content type used in the other direction, but that has potential
+ issues.
+
+ Fix #19679
+
+ (cherry picked from commit febcf46bbc4ff7e16c5cff609dc0c733b9e652a3)
+
+commit 196cc0d624
+Author: Dominic Pearson <dsp@technoanimal.net>
+Date: Thu Mar 28 15:07:40 2024 +0100
- GitLab CI: Generate our release notes
+ cpu_info: fix missing decl in else macro block
- (cherry picked from commit 40111d9e8fa069fd2cf221792c8c1b3708b1975e)
+ (cherry picked from commit 318e8d3161ac23a7f486a74500d4d2b05403a58a)
-commit 42bcc8f69e
+commit c9f47f9ff5
Author: Gerald Combs <gerald@wireshark.org>
-Date: Wed Jan 3 12:44:04 2024 -0800
+Date: Wed Mar 27 14:40:37 2024 -0700
- Version: 4.2.1 → 4.2.2
+ Version: 4.2.4 → 4.2.5
[skip ci]
diff --git a/NEWS b/NEWS
index 5e20983..88369f0 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-Wireshark 4.2.1 Release Notes
+Wireshark 4.2.5 Release Notes
What is Wireshark?
@@ -6,97 +6,20 @@ Wireshark 4.2.1 Release Notes
used for troubleshooting, analysis, development and education.
Wireshark is hosted by the Wireshark Foundation, a nonprofit which
- promotes protocol analysis educaton. Wireshark and the foundation
+ promotes protocol analysis education. Wireshark and the foundation
depend on your contributions in order to do their work. If you or your
- employer would like to contribute or become a sponsor, please visit
- wiresharkfoundation.org[1].
+ organization would like to contribute or become a sponsor, please
+ visit wiresharkfoundation.org[1].
What’s New
Bug Fixes
- The following vulnerabilities have been fixed:
-
- • wnpa-sec-2024-01[2] GVCP dissector crash. Issue 19496[3].
- CVE-2024-0208[4].
-
- • wnpa-sec-2024-02[5] IEEE 1609.2 dissector crash. Issue 19501[6].
- CVE-2024-0209[7].
-
- • wnpa-sec-2024-03[8] HTTP3 dissector crash. Issue 19502[9].
- CVE-2024-0207[10].
-
- • wnpa-sec-2024-04[11] Zigbee TLV dissector crash. Issue 19504[12].
- CVE-2024-0210[13].
-
- • wnpa-sec-2024-05[14] DOCSIS dissector crash. Issue 19557[15].
- CVE-2024-0211[16].
+ If you are upgrading Wireshark 4.2.0 or 4.2.1 on Windows you will
+ need to download and install[2] Wireshark 4.2.5 or later by hand.
The following bugs have been fixed:
- • Capture filters not saved to recently used list. Issue 12918[17].
-
- • CFM dissector does not handle Sender ID TLV correctly when
- Chassis ID Length is zero. Issue 13720[18].
-
- • OSS-Fuzz 64290: wireshark:fuzzshark_ip: Global-buffer-overflow in
- dissect_zcl_read_attr_struct. Issue 19490[19].
-
- • Overriding capture options set by preference by command line
- arguments (like -S) doesn’t work. Issue 14549[20].
-
- • Segfault when enabling monitor mode on wireless card that falsely
- claims to support it. Issue 16693[21].
-
- • Documented format of temporary file name is out of date in the
- Wireshark User’s Guide. Issue 18464[22].
-
- • Selection highlight lost when interface list is sorted. Issue
- 19133[23].
-
- • HTTP3 malformed packets. Issue 19475[24].
-
- • Capture filter compilation fails with obscure error message.
- Issue 19480[25].
-
- • XML: Parsing encoding attribute failed when standalone attribute
- exists. Issue 19485[26].
-
- • Display filter expressions where the protocol name starts with
- digit and contains a hyphen are rejected. Issue 19489[27].
-
- • diameter.3GPP-* display filters not working after upgrade to
- version 4.2.0. Issue 19493[28].
-
- • GigE-vision: Control Protocol shows \"unknown\" as value for
- ASCII character set. Issue 19494[29].
-
- • The HTTP/3 Request Header URI is not correct. Issue 19497[30].
-
- • QUIC/TLS not extracting \"h3\" from ALPN in a capture. Issue
- 19503[31].
-
- • Documentation on system requirements should be updated. Issue
- 19512[32].
-
- • 4.2.0: init.lua in subdirectories not loaded anymore. Issue
- 19516[33].
-
- • Malformed SIP/SDP messages: components are not decoded properly.
- Issue 19518[34].
-
- • heuristic_protos do not reset on profile swap. Issue 19520[35].
-
- • Wireshark 4.2 crashes on Apply As Column. Issue 19521[36].
-
- • NFLOG timestamp is incorrect. Issue 19525[37].
-
- • Qt6 Crash (Double Free) When Attempting to Save TCP Stream Graph.
- Issue 19529[38].
-
- • Fixed parsing display filter expressions containing literal OID
- values, e.g. `snmp.name == 1.3.6.1.2.1.1.3.0`.
-
New and Updated Features
There are no new or updated features in this release.
@@ -111,15 +34,25 @@ Wireshark 4.2.1 Release Notes
There is no new or updated capture file support in this release.
- pcapng: the if_tsoffset option is now supported.
+ Updated File Format Decoding Support
+
+ There is no updated file format support in this release.
Prior Versions
This document only describes the changes introduced in Wireshark
- 4.2.1. You can find release notes for prior versions at the following
+ 4.2.5. You can find release notes for prior versions at the following
locations:
- • Wireshark 4.2.0[39]
+ • Wireshark 4.2.4[3]
+
+ • Wireshark 4.2.3[4]
+
+ • Wireshark 4.2.2[5]
+
+ • Wireshark 4.2.1[6]
+
+ • Wireshark 4.2.0[7]
Getting Wireshark
@@ -131,7 +64,7 @@ Wireshark 4.2.1 Release Notes
Most Linux and Unix vendors supply their own Wireshark packages. You
can usually install or upgrade Wireshark using the package management
system specific to that platform. A list of third-party packages can
- be found on the download page[40] on the Wireshark web site.
+ be found on the download page[8] on the Wireshark web site.
File Locations
@@ -146,70 +79,38 @@ Wireshark 4.2.1 Release Notes
The User’s Guide, manual pages and various other documentation can be
found at https://www.wireshark.org/docs/
- Community support is available on Wireshark’s Q&A site[41] and on the
+ Community support is available on Wireshark’s Q&A site[9] and on the
wireshark-users mailing list. Subscription information and archives
- for all of Wireshark’s mailing lists can be found on the web site[42].
+ for all of Wireshark’s mailing lists can be found on the web site[10].
- Bugs and feature requests can be reported on the issue tracker[43].
+ Bugs and feature requests can be reported on the issue tracker[11].
You can learn protocol analysis and meet Wireshark’s developers at
- SharkFest[44].
+ SharkFest[12].
How You Can Help
The Wireshark Foundation helps as many people as possible understand
their networks as much as possible. You can find out more and donate
- at wiresharkfoundation.org[45].
+ at wiresharkfoundation.org[13].
Frequently Asked Questions
- A complete FAQ is available on the Wireshark web site[46].
+ A complete FAQ is available on the Wireshark web site[14].
References
1. https://wiresharkfoundation.org
- 2. https://www.wireshark.org/security/wnpa-sec-2024-01
- 3. https://gitlab.com/wireshark/wireshark/-/issues/19496
- 4. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-0208
- 5. https://www.wireshark.org/security/wnpa-sec-2024-02
- 6. https://gitlab.com/wireshark/wireshark/-/issues/19501
- 7. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-0209
- 8. https://www.wireshark.org/security/wnpa-sec-2024-03
- 9. https://gitlab.com/wireshark/wireshark/-/issues/19502
- 10. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-0207
- 11. https://www.wireshark.org/security/wnpa-sec-2024-04
- 12. https://gitlab.com/wireshark/wireshark/-/issues/19504
- 13. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-0210
- 14. https://www.wireshark.org/security/wnpa-sec-2024-05
- 15. https://gitlab.com/wireshark/wireshark/-/issues/19557
- 16. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-0211
- 17. https://gitlab.com/wireshark/wireshark/-/issues/12918
- 18. https://gitlab.com/wireshark/wireshark/-/issues/13720
- 19. https://gitlab.com/wireshark/wireshark/-/issues/19490
- 20. https://gitlab.com/wireshark/wireshark/-/issues/14549
- 21. https://gitlab.com/wireshark/wireshark/-/issues/16693
- 22. https://gitlab.com/wireshark/wireshark/-/issues/18464
- 23. https://gitlab.com/wireshark/wireshark/-/issues/19133
- 24. https://gitlab.com/wireshark/wireshark/-/issues/19475
- 25. https://gitlab.com/wireshark/wireshark/-/issues/19480
- 26. https://gitlab.com/wireshark/wireshark/-/issues/19485
- 27. https://gitlab.com/wireshark/wireshark/-/issues/19489
- 28. https://gitlab.com/wireshark/wireshark/-/issues/19493
- 29. https://gitlab.com/wireshark/wireshark/-/issues/19494
- 30. https://gitlab.com/wireshark/wireshark/-/issues/19497
- 31. https://gitlab.com/wireshark/wireshark/-/issues/19503
- 32. https://gitlab.com/wireshark/wireshark/-/issues/19512
- 33. https://gitlab.com/wireshark/wireshark/-/issues/19516
- 34. https://gitlab.com/wireshark/wireshark/-/issues/19518
- 35. https://gitlab.com/wireshark/wireshark/-/issues/19520
- 36. https://gitlab.com/wireshark/wireshark/-/issues/19521
- 37. https://gitlab.com/wireshark/wireshark/-/issues/19525
- 38. https://gitlab.com/wireshark/wireshark/-/issues/19529
- 39. https://www.wireshark.org/docs/relnotes/wireshark-4.2.0.html
- 40. https://www.wireshark.org/download.html
- 41. https://ask.wireshark.org/
- 42. https://www.wireshark.org/lists/
- 43. https://gitlab.com/wireshark/wireshark/-/issues
- 44. https://sharkfest.wireshark.org
- 45. https://wiresharkfoundation.org
- 46. https://www.wireshark.org/faq.html
+ 2. https://www.wireshark.org/download.html
+ 3. https://www.wireshark.org/docs/relnotes/wireshark-4.2.4.html
+ 4. https://www.wireshark.org/docs/relnotes/wireshark-4.2.3.html
+ 5. https://www.wireshark.org/docs/relnotes/wireshark-4.2.2.html
+ 6. https://www.wireshark.org/docs/relnotes/wireshark-4.2.1.html
+ 7. https://www.wireshark.org/docs/relnotes/wireshark-4.2.0.html
+ 8. https://www.wireshark.org/download.html
+ 9. https://ask.wireshark.org/
+ 10. https://www.wireshark.org/lists/
+ 11. https://gitlab.com/wireshark/wireshark/-/issues
+ 12. https://sharkfest.wireshark.org
+ 13. https://wiresharkfoundation.org
+ 14. https://www.wireshark.org/faq.html
diff --git a/cmakeconfig.h.in b/cmakeconfig.h.in
index 4fc78fe..5afe3a8 100644
--- a/cmakeconfig.h.in
+++ b/cmakeconfig.h.in
@@ -357,15 +357,17 @@
* for our needs.
* This should match the following:
* - The <compatibility><application> section in resources\wireshark.exe.manifest.in
- * - The GetWindowsVersion parts of packaging\nsis\wireshark.nsi
+ * - The WinVer parts of packaging\nsis\wireshark.nsi
* - The VersionNT parts of packaging\wix\Prerequisites.wxi
*/
# ifndef NTDDI_VERSION
-# define NTDDI_VERSION NTDDI_WIN7
+// # define NTDDI_VERSION NTDDI_WIN7
+# define NTDDI_VERSION NTDDI_WIN10
# endif
# ifndef _WIN32_WINNT
-# define _WIN32_WINNT _WIN32_WINNT_WIN7
+// # define _WIN32_WINNT _WIN32_WINNT_WIN7
+# define _WIN32_WINNT _WIN32_WINNT_WIN10
# endif
#endif
diff --git a/doc/dumpcap.adoc b/doc/dumpcap.adoc
index 672599b..a9998d2 100644
--- a/doc/dumpcap.adoc
+++ b/doc/dumpcap.adoc
@@ -107,8 +107,8 @@ fills up, *Dumpcap* will switch writing to the next file and so on.
The created filenames are based on the filename given with the *-w*
option, the number of the file and on the creation date and time, e.g.
-outfile_00001_20230714120117.pcapng,
-outfile_00002_20230714120523.pcapng, ...
+outfile_00001_20240714120117.pcapng,
+outfile_00002_20240714120523.pcapng, ...
With the __files__ option it's also possible to form a "ring buffer".
This will fill up new files until the number of files specified,
diff --git a/doc/rawshark.adoc b/doc/rawshark.adoc
index 9a28eda..a52e594 100644
--- a/doc/rawshark.adoc
+++ b/doc/rawshark.adoc
@@ -226,7 +226,7 @@ could use *%D: %S (%N)*.
-v|--version::
Print the full version information and exit.
-include::dissection-options.adoc[tags=!tshark;!decode_as]
+include::dissection-options.adoc[tags=**;!tshark;!decode_as]
include::diagnostic-options.adoc[]
diff --git a/doc/release-notes.adoc b/doc/release-notes.adoc
index b735d99..137c591 100644
--- a/doc/release-notes.adoc
+++ b/doc/release-notes.adoc
@@ -12,20 +12,55 @@ include::../docbook/attributes.adoc[]
Wireshark is the world’s most popular network protocol analyzer.
It is used for troubleshooting, analysis, development and education.
-Wireshark is hosted by the Wireshark Foundation, a nonprofit which promotes protocol analysis educaton.
+Wireshark is hosted by the Wireshark Foundation, a nonprofit which promotes protocol analysis education.
Wireshark and the foundation depend on your contributions in order to do their work.
-If you or your employer would like to contribute or become a sponsor, please visit https://wiresharkfoundation.org[wiresharkfoundation.org].
+If you or your organization would like to contribute or become a sponsor, please visit https://wiresharkfoundation.org[wiresharkfoundation.org].
== What’s New
=== Bug Fixes
-This release fixes a software update issue on Windows which causes Wireshark to hang if you are upgrading from version 4.2.0 or 4.2.1.
-If you are experiencing this issue you will need to https://www.wireshark.org/download.html[download and install] Wireshark 4.2.2 or later.
-
-// The following vulnerabilities have been fixed:
+If you are upgrading Wireshark 4.2.0 or 4.2.1 on Windows you will need to https://www.wireshark.org/download.html[download and install] Wireshark {wireshark-version} or later by hand.
+
+The following vulnerabilities have been fixed:
+
+* wssalink:2024-07[]
+MONGO and ZigBee TLV dissector infinite loops.
+wsbuglink:19726[].
+cveidlink:2024-4854[].
+// Fixed in master: 38c0efcee8, 9ab952b964
+// Fixed in release-4.2: e9965fe303, cb267b4e52
+// Fixed in release-4.0: dd5b3b36d3e
+// Fixed in release-3.6: 40ed7e814bc
+// CVSS AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:H
+// CWE-835
+// * Fuzz job crash: fuzz-2024-03-30-7212.pcap. wsbuglink:19726[].
+
+* wssalink:2024-08[]
+The editcap command line utility could crash when chopping bytes from the beginning of a packet.
+wsbuglink:19724[].
+cveidlink:2024-4853[].
+// Fixed in master: 7c744e7933
+// Fixed in release-4.2: 3911c7b7d2
+// Fixed in release-4.0: c10a98d2669
+// Fixed in release-3.6: 683166c81bc
+// CVSS AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:L
+// CWE-762
+// * The "handle_chopping" function in "editcap.c:2595" has a heap overflow vulnerability. wsbuglink:19724[].
+
+* wssalink:2024-09[]
+The editcap command line utility could crash when injecting secrets while writing multiple files.
+wsbuglink:19782[].
+cveidlink:2024-4855[].
+// Fixed in master: be3550b3b1
+// Fixed in release-4.2: 32bde22d9b
+// Fixed in release-4.0: f6cb547426d
+// Fixed in release-3.6: xxx
+// CVSS AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:L
+// CWE-416
+// * The "wtap_block_foreach_option" function on wiretap/file_access.c:2693 has a SEGV vulnerability. wsbuglink:19784[].
-// * wssalink:2024-06[]
+// * wssalink:2024-10[]
// Foo dissector {crash,infinite loop,memory leak}.
// wsbuglink:xxx[].
// cveidlink:2024-xxx[].
@@ -43,11 +78,25 @@ The following bugs have been fixed:
//* cveidlink:2014-2486[]
//* Wireshark grabs your ID at 3 am, goes to Waffle House, and insults people.
-* sharkd is not installed by the Windows installer. wsbuglink:19556[].
-* Fuzz job crash output: fuzz-2024-01-01-7740.pcap. wsbuglink:19558[].
-* Can't open a snoop file from the Open dialog box unless I select \"All files\" as the file type. wsbuglink:19565[].
-* Add s4607 dissector to \"decode as\" wsbuglink:19566[].
-* Updater for 4.2.1 hangs. wsbuglink:19568[].
+* Flow Graph scrolls in the wrong direction vertically when pressing Up/Down. wsbuglink:12932[].
+* TCP Stream Window Scaling not working in version 2.6.1 and later. wsbuglink:15016[].
+* TCP stream graphs (Window scaling) axis display is confusing. wsbuglink:17425[].
+* LUA get_dissector does not give the correct dissector under 32-bit version. wsbuglink:18367[].
+* Lua: Segfault when registering a field or expert info twice. wsbuglink:19194[].
+* SSH can not decrypt when KEX is curve25519-sha256@libssh.org. wsbuglink:19240[].
+* Wireshark crash related to Lua `DissectorTable.heuristic_new()` wsbuglink:19603[].
+* MATE fails to extract HTTP2 User-Agent header. wsbuglink:19619[].
+* Fuzz job issue: fuzz-2024-02-29-7169.pcap. wsbuglink:19679[].
+* Fuzz job issue: fuzz-2024-03-02-7158.pcap. wsbuglink:19684[].
+* Problem to Decode 5GC-N7 HTTP for payload Application/JSON. wsbuglink:19723[].
+* Copying data as C String produces incorrect string. wsbuglink:19735[].
+* Incorrect decoding of supported Tx HE-MCS. wsbuglink:19737[].
+* reordercap: Fix packet reordering with multiple IDB's not at the beginning of a pcapng file. wsbuglink:19740[].
+* Wrong EPB lengths written if existing pcapng file has epb_hash options. wsbuglink:19766[].
+* On Windows, Export Displayed Packets dialog does not have "include depended upon packets" checkbox. wsbuglink:19772[].
+* vnd.3gpp.sms binary payload NOT decoded inside HTTP2 5GC. wsbuglink:19773[].
+* NAS 5G message container dissection. wsbuglink:19793[].
+* Incorrect interpretation of algorithm name in packet-tls-utils.c. wsbuglink:19801[].
=== New and Updated Features
@@ -57,8 +106,6 @@ There are no new or updated features in this release.
// === Removed Dissectors
-// === New File Format Decoding Support
-
=== New Protocol Support
@@ -67,17 +114,54 @@ There are no new protocols in this release.
=== Updated Protocol Support
// Add one protocol per line between the -- delimiters.
-// ag -A1 '(define PSNAME|proto_register_protocol[^_])' $(git diff --name-only v4.2.2.. | ag packet- | sort -u)
+// ag -A1 '(define PSNAME|proto_register_protocol[^_])' $(git diff --name-only v4.2.5.. | ag packet- | sort -u)
[commaize]
--
-RSVP
-RTPS
-STANAG 4607
+5co_legacy
+5co_rap
+BT Mesh
+CQL
+DOCSIS MAC MGMT
+E.212
+EPL
+FC FZS
+GQUIC
+GRPC
+GSM RP
+HTTP2
+ICMPv6
+IEEE 1905
+IEEE 802.11
+IPARS
+JSON-3GPP
+LAPD
+LLDP
+MATE
+MONGO
+NAS 5GS
+NR-RRC
+PER
+PFCP
+PTP
+QUIC
+SSH
+TIPC
+ZBD
--
=== New and Updated Capture File Support
-There is no new or updated capture file support in this release.
+// There is no new or updated capture file support in this release.
+// Add one file type per line between the -- delimiters.
+[commaize]
+--
+BLF
+pcapng
+--
+
+=== Updated File Format Decoding Support
+
+There is no updated file format support in this release.
// Add one file type per line between the -- delimiters.
// [commaize]
// --
@@ -94,6 +178,9 @@ There is no new or updated capture file support in this release.
This document only describes the changes introduced in Wireshark {wireshark-version}.
You can find release notes for prior versions at the following locations:
+* https://www.wireshark.org/docs/relnotes/wireshark-4.2.4.html[Wireshark 4.2.4]
+* https://www.wireshark.org/docs/relnotes/wireshark-4.2.3.html[Wireshark 4.2.3]
+* https://www.wireshark.org/docs/relnotes/wireshark-4.2.2.html[Wireshark 4.2.2]
* https://www.wireshark.org/docs/relnotes/wireshark-4.2.1.html[Wireshark 4.2.1]
* https://www.wireshark.org/docs/relnotes/wireshark-4.2.0.html[Wireshark 4.2.0]
diff --git a/doc/tshark.adoc b/doc/tshark.adoc
index 6f086d6..543579d 100644
--- a/doc/tshark.adoc
+++ b/doc/tshark.adoc
@@ -215,7 +215,7 @@ fills up, *TShark* will switch writing to the next file and so on.
The created filenames are based on the filename given with the *-w* option,
the number of the file and on the creation date and time,
-e.g. outfile_00001_20230714120117.pcap, outfile_00002_20230714120523.pcap, ...
+e.g. outfile_00001_20240714120117.pcap, outfile_00002_20240714120523.pcap, ...
With the __files__ option it's also possible to form a "ring buffer".
This will fill up new files until the number of files specified,
@@ -252,7 +252,7 @@ packets.
*nametimenum*:__value__ Choose between two save filename templates. If
__value__ is 1, make running file number part before start time part; this is
-the original and default behaviour (e.g. log_00001_20230714164426.pcap). If
+the original and default behaviour (e.g. log_00001_20240714164426.pcap). If
__value__ is greater than 1, make start time part before running number part
(e.g. log_20210828164426_00001.pcap). The latter makes alphabetical sorting
order equal to creation time order, and keeps related multiple file sets in
@@ -2252,7 +2252,7 @@ Output JSON containing elapsed times for each pass tshark does to process a capt
file and the sum elapsed time for all passes. The per-pass output contains the total
elapsed time and aggregate counters for per-packet operations (dissection and filtering).
-include::dissection-options.adoc[tag=!not_tshark]
+include::dissection-options.adoc[tags=**;!not_tshark]
include::diagnostic-options.adoc[]
diff --git a/doc/wireshark.adoc b/doc/wireshark.adoc
index ca34f54..2443482 100644
--- a/doc/wireshark.adoc
+++ b/doc/wireshark.adoc
@@ -209,7 +209,7 @@ fills up, *Wireshark* will switch writing to the next file and so on.
The created filenames are based on the filename given with the *-w* flag,
the number of the file and on the creation date and time,
-e.g. outfile_00001_20230714120117.pcap, outfile_00002_20230714120523.pcap, ...
+e.g. outfile_00001_20240714120117.pcap, outfile_00002_20240714120523.pcap, ...
With the __files__ option it's also possible to form a "ring buffer".
This will fill up new files until the number of files specified,
@@ -923,7 +923,7 @@ Show IEEE 802.11 network and station statistics.
*-z* wsp,stat[,<filter>]::
Show WSP packet counters.
-include::dissection-options.adoc[tag=!tshark]
+include::dissection-options.adoc[tags=**;!tshark]
include::diagnostic-options.adoc[]
@@ -962,7 +962,7 @@ menu:File[File Set,List Files]::
Show a dialog box that lists all files of the file set matching the currently
loaded file. A file set is a compound of files resulting from a capture using
the "multiple files" / "ringbuffer" mode, recognizable by the filename pattern,
-e.g.: Filename_00001_20230714101530.pcap.
+e.g.: Filename_00001_20240714101530.pcap.
menu:File[File Set,Next File]::
diff --git a/docbook/attributes.adoc b/docbook/attributes.adoc
index 3076ab1..aa8ba78 100644
--- a/docbook/attributes.adoc
+++ b/docbook/attributes.adoc
@@ -1,6 +1,6 @@
// Common attributes
-:wireshark-version: 4.2.2
+:wireshark-version: 4.2.5
:logray-version: 0.9.0
// Required for btn, kbd:, and menu: macros.
diff --git a/docbook/wsug_src/capinfos-h.txt b/docbook/wsug_src/capinfos-h.txt
index fa422fc..326da34 100644
--- a/docbook/wsug_src/capinfos-h.txt
+++ b/docbook/wsug_src/capinfos-h.txt
@@ -1,4 +1,4 @@
-Capinfos (Wireshark) 4.2.1 (v4.2.1rc0-11-gae025b2614ce)
+Capinfos (Wireshark) 4.2.5 (v4.2.5rc0-7-ge9965fe30342)
Print various information (infos) about capture files.
See https://www.wireshark.org for more information.
diff --git a/docbook/wsug_src/dumpcap-h.txt b/docbook/wsug_src/dumpcap-h.txt
index 23441e8..6736a66 100644
--- a/docbook/wsug_src/dumpcap-h.txt
+++ b/docbook/wsug_src/dumpcap-h.txt
@@ -1,4 +1,4 @@
-Dumpcap (Wireshark) 4.2.1 (v4.2.1rc0-11-gae025b2614ce)
+Dumpcap (Wireshark) 4.2.5 (v4.2.5rc0-7-ge9965fe30342)
Capture network packets and dump them into a pcapng or pcap file.
See https://www.wireshark.org for more information.
diff --git a/docbook/wsug_src/editcap-h.txt b/docbook/wsug_src/editcap-h.txt
index 0b8a5b5..a701129 100644
--- a/docbook/wsug_src/editcap-h.txt
+++ b/docbook/wsug_src/editcap-h.txt
@@ -1,4 +1,4 @@
-Editcap (Wireshark) 4.2.1 (v4.2.1rc0-11-gae025b2614ce)
+Editcap (Wireshark) 4.2.5 (v4.2.5rc0-7-ge9965fe30342)
Edit and/or translate the format of capture files.
See https://www.wireshark.org for more information.
diff --git a/docbook/wsug_src/mergecap-h.txt b/docbook/wsug_src/mergecap-h.txt
index d2c5231..dd307bd 100644
--- a/docbook/wsug_src/mergecap-h.txt
+++ b/docbook/wsug_src/mergecap-h.txt
@@ -1,4 +1,4 @@
-Mergecap (Wireshark) 4.2.1 (v4.2.1rc0-11-gae025b2614ce)
+Mergecap (Wireshark) 4.2.5 (v4.2.5rc0-7-ge9965fe30342)
Merge two or more capture files into one.
See https://www.wireshark.org for more information.
diff --git a/docbook/wsug_src/rawshark-h.txt b/docbook/wsug_src/rawshark-h.txt
index 1302dea..6cd4526 100644
--- a/docbook/wsug_src/rawshark-h.txt
+++ b/docbook/wsug_src/rawshark-h.txt
@@ -1,4 +1,4 @@
-Rawshark (Wireshark) 4.2.1 (v4.2.1rc0-11-gae025b2614ce)
+Rawshark (Wireshark) 4.2.5 (v4.2.5rc0-7-ge9965fe30342)
Dump and analyze network traffic.
See https://www.wireshark.org for more information.
diff --git a/docbook/wsug_src/reordercap-h.txt b/docbook/wsug_src/reordercap-h.txt
index eb8ab5d..87937f6 100644
--- a/docbook/wsug_src/reordercap-h.txt
+++ b/docbook/wsug_src/reordercap-h.txt
@@ -1,4 +1,4 @@
-Reordercap (Wireshark) 4.2.1 (v4.2.1rc0-11-gae025b2614ce)
+Reordercap (Wireshark) 4.2.5 (v4.2.5rc0-7-ge9965fe30342)
Reorder timestamps of input file frames into output file.
See https://www.wireshark.org for more information.
diff --git a/docbook/wsug_src/text2pcap-h.txt b/docbook/wsug_src/text2pcap-h.txt
index 9066427..aa38748 100644
--- a/docbook/wsug_src/text2pcap-h.txt
+++ b/docbook/wsug_src/text2pcap-h.txt
@@ -1,4 +1,4 @@
-Text2pcap (Wireshark) 4.2.1 (v4.2.1rc0-11-gae025b2614ce)
+Text2pcap (Wireshark) 4.2.5 (v4.2.5rc0-7-ge9965fe30342)
Generate a capture file from an ASCII hexdump of packets.
See https://www.wireshark.org for more information.
diff --git a/docbook/wsug_src/tshark-h.txt b/docbook/wsug_src/tshark-h.txt
index 84bb1c1..6dd2947 100644
--- a/docbook/wsug_src/tshark-h.txt
+++ b/docbook/wsug_src/tshark-h.txt
@@ -1,4 +1,4 @@
-TShark (Wireshark) 4.2.1 (v4.2.1rc0-11-gae025b2614ce)
+TShark (Wireshark) 4.2.5 (v4.2.5rc0-7-ge9965fe30342)
Dump and analyze network traffic.
See https://www.wireshark.org for more information.
diff --git a/docbook/wsug_src/wireshark-h.txt b/docbook/wsug_src/wireshark-h.txt
index 320d579..c7e6e5b 100644
--- a/docbook/wsug_src/wireshark-h.txt
+++ b/docbook/wsug_src/wireshark-h.txt
@@ -1,4 +1,4 @@
-Wireshark 4.2.1 (v4.2.1rc0-11-gae025b2614ce)
+Wireshark 4.2.5 (v4.2.5rc0-7-ge9965fe30342)
Interactively dump and analyze network traffic.
See https://www.wireshark.org for more information.
diff --git a/docbook/wsug_src/wsug_capture.adoc b/docbook/wsug_src/wsug_capture.adoc
index c7ef8f1..3029c6c 100644
--- a/docbook/wsug_src/wsug_capture.adoc
+++ b/docbook/wsug_src/wsug_capture.adoc
@@ -490,8 +490,8 @@ Information about the folders used for capture files can be found in
|File Name|“Create a new file...”|“Use a ring buffer...”|Mode|Resulting filename(s) used
|-|-|-|Single temporary file|wiresharkXXXXXX.pcap[ng] (where XXXXXX is a unique 6 character alphanumeric sequence)
|foo.cap|-|-|Single named file|foo.cap
-|foo.cap|x|-|Multiple files, continuous|foo_00001_20230714110102.cap, foo_00002_20230714110318.cap, ...
-|foo.cap|x|x|Multiple files, ring buffer|foo_00001_20230714110102.cap, foo_00002_20230714110318.cap, ...
+|foo.cap|x|-|Multiple files, continuous|foo_00001_20240714110102.cap, foo_00002_20240714110318.cap, ...
+|foo.cap|x|x|Multiple files, ring buffer|foo_00001_20240714110102.cap, foo_00002_20240714110318.cap, ...
|===
Single temporary file::
diff --git a/docbook/wsug_src/wsug_io.adoc b/docbook/wsug_src/wsug_io.adoc
index ed3a488..df8fced 100644
--- a/docbook/wsug_src/wsug_io.adoc
+++ b/docbook/wsug_src/wsug_io.adoc
@@ -704,7 +704,7 @@ some features to handle these file sets in a convenient way.
.How does Wireshark detect the files of a file set?
****
A filename in a file set uses the format Prefix_Number_DateTimeSuffix which
-might look something like `test_00001_20230714183910.pcap`. All files of a file
+might look something like `test_00001_20240714183910.pcap`. All files of a file
set share the same prefix (e.g., “test”) and suffix (e.g., “.pcap”) and a
varying middle part.
diff --git a/editcap.c b/editcap.c
index ef99e50..8c03af3 100644
--- a/editcap.c
+++ b/editcap.c
@@ -1943,6 +1943,10 @@ main(int argc, char *argv[])
}
while (nstime_cmp(&rec->ts, &block_next) > 0) { /* time for the next file */
+ /* We presumably want to write the DSBs from files given
+ * on the command line to every file.
+ */
+ wtap_block_array_ref(params.dsbs_initial);
if (!wtap_dump_close(pdh, NULL, &write_err, &write_err_info)) {
cfile_close_failure_message(filename, write_err,
write_err_info);
@@ -1978,6 +1982,11 @@ main(int argc, char *argv[])
if (split_packet_count != 0) {
/* time for the next file? */
if (written_count > 0 && (written_count % split_packet_count) == 0) {
+
+ /* We presumably want to write the DSBs from files given
+ * on the command line to every file.
+ */
+ wtap_block_array_ref(params.dsbs_initial);
if (!wtap_dump_close(pdh, NULL, &write_err, &write_err_info)) {
cfile_close_failure_message(filename, write_err,
write_err_info);
@@ -2594,7 +2603,7 @@ handle_chopping(chop_t chop, wtap_packet_header *out_phdr,
if (chop.off_begin_pos > 0) {
memmove(*buf + chop.off_begin_pos,
*buf + chop.off_begin_pos + chop.len_begin,
- out_phdr->caplen - chop.len_begin);
+ out_phdr->caplen - (chop.off_begin_pos + chop.len_begin));
} else {
*buf += chop.len_begin;
}
diff --git a/epan/CMakeLists.txt b/epan/CMakeLists.txt
index 9281a2a..051e19e 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.5" 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 be36424..4b09b70 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 cae7336..a0a21b6 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 e5565d2..c6b876a 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 4964637..2b5a906 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 c4e8990..680fa91 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/nr-rrc/nr-rrc.cnf b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf
index 5df5e1d..c918119 100644
--- a/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf
+++ b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf
@@ -207,27 +207,27 @@ SchedulingRequestResourceConfig
SDT-MAC-PHY-CG-Config-r17
SidelinkParametersNR-r16
SidelinkUEInformationNR-r16
-SIB1
-SIB2
-SIB3
-SIB4
-SIB5
-SIB6
-SIB7
-SIB8
-SIB9
-SIB10-r16
-SIB11-r16
-SIB12-r16
-SIB13-r16
-SIB14-r16
-SIB15-r17
-SIB16-r17
-SIB17-r17
-SIB18-r17
-SIB19-r17
-SIB20-r17
-SIB21-r17
+SIB1 @sib1
+SIB2 @sib2
+SIB3 @sib3
+SIB4 @sib4
+SIB5 @sib5
+SIB6 @sib6
+SIB7 @sib7
+SIB8 @sib8
+SIB9 @sib9
+SIB10-r16 @sib10
+SIB11-r16 @sib11
+SIB12-r16 @sib12
+SIB13-r16 @sib13
+SIB14-r16 @sib14
+SIB15-r17 @sib15
+SIB16-r17 @sib16
+SIB17-r17 @sib17
+SIB18-r17 @sib18
+SIB19-r17 @sib21
+SIB20-r17 @sib22
+SIB21-r17 @sib23
SL-ConfigDedicatedEUTRA-Info-r16
SL-ConfigDedicatedNR-r16
SL-MeasResultListRelay-r17
@@ -724,73 +724,73 @@ RAT-Type TYPE_PREFIX
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MIB");
#.FN_HDR SystemInformation
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "System Information [");
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "System Information [ ");
#.FN_FTR SystemInformation
- col_append_str(actx->pinfo->cinfo, COL_INFO, " ]");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "]");
#.FN_HDR SIB2
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB2");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB2 ");
#.FN_HDR SIB3
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB3");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB3 ");
#.FN_HDR SIB4
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB4");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB4 ");
#.FN_HDR SIB5
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB5");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB5 ");
#.FN_HDR SIB6
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB6");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB6 ");
#.FN_HDR SIB7
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB7");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB7 ");
#.FN_HDR SIB8
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB8");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB8 ");
#.FN_HDR SIB9
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB9");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB9 ");
#.FN_HDR SIB10-r16
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB10");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB10 ");
#.FN_HDR SIB11-r16
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB11");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB11");
#.FN_HDR SIB12-r16
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB12");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB12 ");
#.FN_HDR SIB13-r16
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB13");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB13 ");
#.FN_HDR SIB14-r16
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB14");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB14 ");
#.FN_HDR SIB15-r17
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB15");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB15 ");
#.FN_HDR SIB16-r17
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB16");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB16 ");
#.FN_HDR SIB17-r17
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB17");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB17 ");
#.FN_HDR SIB18-r17
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB18");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB18 ");
#.FN_HDR SIB19-r17
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB19");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB19 ");
#.FN_HDR SIB20-r17
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB20");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB20 ");
#.FN_HDR SIB21-r17
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB21");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB21 ");
#.FN_HDR SIB1
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SIB1");
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SIB1 ");
#.FN_HDR RRCReject
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reject");
diff --git a/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c b/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c
index cbfb67c..88f72f7 100644
--- a/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c
+++ b/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c
@@ -1061,7 +1061,7 @@ proto_register_nr_rrc(void) {
register_dissector("nr-rrc.measgapconfig_msg", dissect_nr_rrc_measgapconfig_msg, proto_nr_rrc);
register_dissector("nr-rrc.handoverpreparationinformation_msg", dissect_nr_rrc_handoverpreparationinformation_msg, proto_nr_rrc);
register_dissector("nr-rrc.handovercommand_msg", dissect_nr_rrc_handovercommand_msg, proto_nr_rrc);
-
+ /*#include "packet-nr-rrc-dis-reg.c" */
#include "packet-nr-rrc-dis-reg.c"
nr_rrc_etws_cmas_dcs_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(),
diff --git a/epan/dissectors/asn1/snmp/packet-snmp-template.c b/epan/dissectors/asn1/snmp/packet-snmp-template.c
index e8e606e..96a4a4a 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 ad46a99..852885c 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 65efb15..9748549 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 200d5de..d527ea3 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 12a7e57..0eba3c9 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 988b704..dd043d3 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-5co-legacy.c b/epan/dissectors/packet-5co-legacy.c
index 273d2a6..5558cf0 100644
--- a/epan/dissectors/packet-5co-legacy.c
+++ b/epan/dissectors/packet-5co-legacy.c
@@ -857,7 +857,7 @@ dispType( gchar *result, guint32 type)
{
int nValueH = (type>>16) & 0xFFFF;
int nValueL = (type & 0xFFFF);
- snprintf( result, 18, "%d.%d (%.4X.%.4X)", nValueH, nValueL, nValueH, nValueL);
+ snprintf( result, ITEM_LABEL_LENGTH, "%d.%d (%.4X.%.4X)", nValueH, nValueL, nValueH, nValueL);
}
static void
@@ -867,7 +867,7 @@ dispVersion( gchar *result, guint32 version)
{
int nValueH = (version>>16) & 0xFFFF;
int nValueL = (version & 0xFFFF);
- snprintf( result, 11, "FW: %d.%d", nValueH, nValueL);
+ snprintf( result, ITEM_LABEL_LENGTH, "FW: %d.%d", nValueH, nValueL);
}
else
{
@@ -875,7 +875,7 @@ dispVersion( gchar *result, guint32 version)
int nHWLow = (version>>16) & 0xFF;
int nFWHigh = (version>>8) & 0xFF;
int nFWLow = (version>>8) & 0xFF;
- snprintf( result, 25, "HW: %d.%d / FW: %d.%d", nHWHigh, nHWLow, nFWHigh, nFWLow);
+ snprintf( result, ITEM_LABEL_LENGTH, "HW: %d.%d / FW: %d.%d", nHWHigh, nHWLow, nFWHigh, nFWLow);
}
}
@@ -883,7 +883,7 @@ static void dispMAC( gchar *result, guint64 mac)
{
guint8 *pData = (guint8*)(&mac);
- snprintf( result, 18, "%.2X-%.2X-%.2X-%.2X-%.2X-%.2X", pData[5], pData[4], pData[3], pData[2],
+ snprintf( result, ITEM_LABEL_LENGTH, "%.2X-%.2X-%.2X-%.2X-%.2X-%.2X", pData[5], pData[4], pData[3], pData[2],
pData[1], pData[0]);
}
@@ -891,22 +891,22 @@ static void dispIP( gchar *result, guint32 ip)
{
guint8 *pData = (guint8*)(&ip);
- snprintf( result, 15, "%d.%d.%d.%d", pData[3], pData[2], pData[1], pData[0]);
+ snprintf( result, ITEM_LABEL_LENGTH, "%d.%d.%d.%d", pData[3], pData[2], pData[1], pData[0]);
}
static void dispMask( gchar *result, guint32 mask)
{
guint8 *pData = (guint8*)(&mask);
- snprintf( result, 15, "%d.%d.%d.%d", pData[3], pData[2], pData[1], pData[0]);
+ snprintf( result, ITEM_LABEL_LENGTH, "%d.%d.%d.%d", pData[3], pData[2], pData[1], pData[0]);
}
static void dispTimeout( gchar *result, guint32 timeout)
{
if (timeout != 0)
- snprintf( result, 12, "%d secondes", timeout);
+ snprintf( result, ITEM_LABEL_LENGTH, "%d seconds", timeout);
else
- snprintf( result, 8, "Disabled");
+ snprintf( result, ITEM_LABEL_LENGTH, "Disabled");
}
/*
diff --git a/epan/dissectors/packet-5co-rap.c b/epan/dissectors/packet-5co-rap.c
index 06aae10..4aaabed 100644
--- a/epan/dissectors/packet-5co-rap.c
+++ b/epan/dissectors/packet-5co-rap.c
@@ -891,7 +891,7 @@ disp_type( gchar *result, guint32 type)
{
guint nValueH = (type>>16) & 0xFFFF;
guint nValueL = (type & 0xFFFF);
- snprintf( result, 18, "%u.%u (%.4X.%.4X)", nValueH, nValueL, nValueH, nValueL);
+ snprintf( result, ITEM_LABEL_LENGTH, "%u.%u (%.4X.%.4X)", nValueH, nValueL, nValueH, nValueL);
}
static void
@@ -901,7 +901,7 @@ disp_version( gchar *result, guint32 version)
{
guint nValueH = (version>>16) & 0xFFFF;
guint nValueL = (version & 0xFFFF);
- snprintf( result, 11, "FW: %u.%u", nValueH, nValueL);
+ snprintf( result, ITEM_LABEL_LENGTH, "FW: %u.%u", nValueH, nValueL);
}
else
{
@@ -909,7 +909,7 @@ disp_version( gchar *result, guint32 version)
guint nHWLow = (version>>16) & 0xFF;
guint nFWHigh = (version>>8) & 0xFF;
guint nFWLow = version & 0xFF;
- snprintf( result, 25, "HW: %u.%u / FW: %u.%u", nHWHigh, nHWLow, nFWHigh, nFWLow);
+ snprintf( result, ITEM_LABEL_LENGTH, "HW: %u.%u / FW: %u.%u", nHWHigh, nHWLow, nFWHigh, nFWLow);
}
}
@@ -917,14 +917,14 @@ static void disp_voltage(gchar *result, guint32 voltage)
{
guint nValueH = (voltage>>16) & 0xFFFF;
guint nValueL = (voltage & 0xFFFF);
- snprintf( result, 11, "%u.%u V", nValueH, nValueL);
+ snprintf( result, ITEM_LABEL_LENGTH, "%u.%u V", nValueH, nValueL);
}
static void disp_mac( gchar *result, guint64 mac)
{
guint8 *pData = (guint8*)(&mac);
- snprintf( result, 18, "%.2X-%.2X-%.2X-%.2X-%.2X-%.2X", pData[5], pData[4], pData[3], pData[2],
+ snprintf( result, ITEM_LABEL_LENGTH, "%.2X-%.2X-%.2X-%.2X-%.2X-%.2X", pData[5], pData[4], pData[3], pData[2],
pData[1], pData[0]);
}
@@ -932,23 +932,23 @@ static void disp_ip( gchar *result, guint32 ip)
{
guint8 *pData = (guint8*)(&ip);
- snprintf( result, 15, "%u.%u.%u.%u", pData[3], pData[2], pData[1], pData[0]);
+ snprintf( result, ITEM_LABEL_LENGTH, "%u.%u.%u.%u", pData[3], pData[2], pData[1], pData[0]);
}
static void disp_mask( gchar *result, guint32 mask)
{
guint8 *pData = (guint8*)(&mask);
- snprintf( result, 15, "%u.%u.%u.%u", pData[3], pData[2], pData[1], pData[0]);
+ snprintf( result, ITEM_LABEL_LENGTH, "%u.%u.%u.%u", pData[3], pData[2], pData[1], pData[0]);
}
static void disp_timeout( gchar *result, guint32 timeout)
{
if (timeout != 0)
- snprintf( result, 12, "%u%s",
+ snprintf( result, ITEM_LABEL_LENGTH, "%u%s",
timeout, unit_name_string_get_value(timeout, &units_second_seconds));
else
- snprintf( result, 8, "Disabled");
+ snprintf( result, ITEM_LABEL_LENGTH, "Disabled");
}
/*
diff --git a/epan/dissectors/packet-6lowpan.c b/epan/dissectors/packet-6lowpan.c
index 068b9a6..b13cd08 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 a17fc57..f6229da 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 8dee1bf..a122bc8 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 69b8507..65cf1df 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 09af5ad..2d37c22 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 f33f4ee..1b83af7 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 964070b..f245390 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 9622113..b999248 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 891b66a..5a629c3 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 3e1b3fc..56e4685 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 1f893e4..93c042c 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 3f356ed..f5c7889 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 75d9fc9..8514259 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 4d442a7..8b7a545 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 0ce39f9..533a765 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-btmesh.c b/epan/dissectors/packet-btmesh.c
index 8aa913d..a0d930f 100644
--- a/epan/dissectors/packet-btmesh.c
+++ b/epan/dissectors/packet-btmesh.c
@@ -4779,6 +4779,7 @@ dissect_btmesh_model_layer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree *manufacturer_property_ids_tree;
proto_tree *generic_client_property_ids_tree;
proto_tree *sensor_setting_property_ids_tree;
+ proto_tree *root_tree = proto_tree_get_parent_tree(tree);
guint32 netkeyindexes, appkeyindexes;
guint32 nums, numv, element;
@@ -4794,17 +4795,17 @@ dissect_btmesh_model_layer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (opcode & 0x40) {
/* Vendor opcode */
proto_tree_add_item(sub_tree, hf_btmesh_model_layer_vendor_opcode, tvb, offset, 1, ENC_NA);
- vendor = tvb_get_guint16(tvb, offset + 1, ENC_BIG_ENDIAN);
+ vendor = tvb_get_guint16(tvb, offset + 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item(sub_tree, hf_btmesh_model_layer_vendor, tvb, offset + 1, 2, ENC_LITTLE_ENDIAN);
payload_tvb = tvb_new_subset_remaining(tvb, offset);
- dissector_try_uint_new(btmesh_model_vendor_dissector_table, vendor, payload_tvb, pinfo, tree, TRUE, GUINT_TO_POINTER(vendor));
col_set_str(pinfo->cinfo, COL_INFO, "Access Message - Vendor Opcode");
+ dissector_try_uint_new(btmesh_model_vendor_dissector_table, vendor, payload_tvb, pinfo, root_tree, TRUE, GUINT_TO_POINTER(vendor));
offset+=3;
} else {
- /* Two octet opcode */
- proto_tree_add_item_ret_uint(sub_tree, hf_btmesh_model_layer_opcode, tvb, offset, 2, ENC_NA, &opcode);
- col_set_str(pinfo->cinfo, COL_INFO, val_to_str_const(opcode, btmesh_models_opcode_vals, "Access Message Unknown"));
- offset+=2;
+ /* Two octet opcode */
+ proto_tree_add_item_ret_uint(sub_tree, hf_btmesh_model_layer_opcode, tvb, offset, 2, ENC_NA, &opcode);
+ col_set_str(pinfo->cinfo, COL_INFO, val_to_str_const(opcode, btmesh_models_opcode_vals, "Access Message Unknown"));
+ offset+=2;
}
} else {
/* One octet opcode */
diff --git a/epan/dissectors/packet-btsdp.c b/epan/dissectors/packet-btsdp.c
index ef1141e..c7bc939 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 58acc3a..3fe10a3 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 13cb87a..5f22dd5 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 b3aaa2b..b7ccee3 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 30c422e..64bc310 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 6f0feaf..fce101d 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 5f5a7e6..2637c1f 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 3f000a7..668ba72 100644
--- a/epan/dissectors/packet-cql.c
+++ b/epan/dissectors/packet-cql.c
@@ -147,6 +147,7 @@ static int ett_cql_protocol = -1;
static int ett_cql_version = -1;
static int ett_cql_message = -1;
static int ett_cql_result_columns = -1;
+static int ett_cql_results_no_metadata = -1;
static int ett_cql_result_map = -1;
static int ett_cql_result_set = -1;
static int ett_cql_result_metadata = -1;
@@ -572,7 +573,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 +584,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 +621,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 +688,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 +727,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 +825,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 +842,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 +861,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 +919,7 @@ static int parse_value(proto_tree* columns_subtree, packet_info *pinfo, tvbuff_t
default:
break;
}
+ decrement_dissection_depth(pinfo);
return offset;
}
@@ -1421,6 +1431,16 @@ dissect_cql_tcp_pdu(tvbuff_t* raw_tvb, packet_info* pinfo, proto_tree* tree, voi
}
offset += 4;
+ if (result_rows_flags & CQL_RESULT_ROWS_FLAG_HAS_MORE_PAGES) {
+ /* show paging state */
+ proto_tree_add_item_ret_int(metadata_subtree, hf_cql_bytes_length, tvb, offset, 4, ENC_BIG_ENDIAN, &bytes_length);
+ offset += 4;
+ if (bytes_length > 0) {
+ proto_tree_add_item(metadata_subtree, hf_cql_paging_state, tvb, offset, bytes_length, ENC_NA);
+ offset += bytes_length;
+ }
+ }
+
if ((result_rows_flags & (CQL_RESULT_ROWS_FLAG_GLOBAL_TABLES_SPEC | CQL_RESULT_ROWS_FLAG_NO_METADATA)) == CQL_RESULT_ROWS_FLAG_GLOBAL_TABLES_SPEC) {
proto_tree_add_item_ret_uint(metadata_subtree, hf_cql_string_length, tvb, offset, 2, ENC_BIG_ENDIAN, &string_length);
offset += 2;
@@ -1433,16 +1453,6 @@ dissect_cql_tcp_pdu(tvbuff_t* raw_tvb, packet_info* pinfo, proto_tree* tree, voi
offset += string_length;
}
- if (result_rows_flags & CQL_RESULT_ROWS_FLAG_HAS_MORE_PAGES) {
- /* show paging state */
- proto_tree_add_item_ret_int(metadata_subtree, hf_cql_bytes_length, tvb, offset, 4, ENC_BIG_ENDIAN, &bytes_length);
- offset += 4;
- if (bytes_length > 0) {
- proto_tree_add_item(metadata_subtree, hf_cql_paging_state, tvb, offset, bytes_length, ENC_NA);
- offset += bytes_length;
- }
- }
-
if (result_rows_flags & CQL_RESULT_ROWS_FLAG_NO_METADATA) {
/* There will be no col_spec elements. */
} else {
@@ -1474,7 +1484,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);
}
}
@@ -1495,12 +1505,19 @@ dissect_cql_tcp_pdu(tvbuff_t* raw_tvb, packet_info* pinfo, proto_tree* tree, voi
offset = parse_row(columns_subtree, pinfo, tvb, offset_row_metadata, offset, result_rows_columns_count);
} else {
for (k = 0; k < result_rows_columns_count; ++k) {
- single_column_subtree = proto_tree_add_item_ret_int(columns_subtree, hf_cql_bytes_length, tvb, offset, 4, ENC_BIG_ENDIAN, &bytes_length);
- proto_item_append_text(single_column_subtree, " for column # %" PRId64, k + 1);
- offset += 4;
+ proto_tree_add_item_ret_int(columns_subtree, hf_cql_bytes_length, tvb, offset, 4, ENC_BIG_ENDIAN, &bytes_length);
+ single_column_subtree = proto_tree_add_subtree(columns_subtree, tvb, offset, bytes_length > 0 ? bytes_length : 0, ett_cql_results_no_metadata, &ti, "Column data");
if (bytes_length > 0) {
+ proto_item_append_text(single_column_subtree, " for column # %" PRId64, k + 1);
proto_tree_add_item(single_column_subtree, hf_cql_bytes, tvb, offset, bytes_length, ENC_NA);
offset += bytes_length;
+ } else if (bytes_length == -1) {
+ proto_item_append_text(single_column_subtree, " is NULL for column # %" PRId64, k + 1);
+ } else if (bytes_length == -2) {
+ proto_item_append_text(single_column_subtree, " is not set for column # %" PRId64, k + 1);
+ } else {
+ expert_add_info(pinfo, ti, &ei_cql_unexpected_negative_value);
+ return tvb_reported_length(tvb);
}
}
}
@@ -2494,6 +2511,7 @@ proto_register_cql(void)
&ett_cql_version,
&ett_cql_message,
&ett_cql_result_columns,
+ &ett_cql_results_no_metadata,
&ett_cql_result_map,
&ett_cql_result_set,
&ett_cql_result_metadata,
diff --git a/epan/dissectors/packet-csn1.c b/epan/dissectors/packet-csn1.c
index 15b4a71..815e770 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 bb5c9d5..8a82314 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 3481698..e03154e 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 fab18c6..f6e7408 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 e132f31..3b44b8d 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 14f7d60..a3eb614 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 1ca4ac3..bbbbff8 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 7d206fb..6132535 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 23864bb..de21249 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;
@@ -3843,6 +3844,7 @@ dissect_attrs (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree)
tvbuff_t *attr_tvb;
total_len = tvb_reported_length_remaining (tvb, 0);
+ increment_dissection_depth(pinfo);
while (pos < total_len)
{
type = tvb_get_guint8 (tvb, pos);
@@ -4017,6 +4019,7 @@ dissect_attrs (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree)
pos += length; /* switch */
} /* while */
+ decrement_dissection_depth(pinfo);
}
static int
diff --git a/epan/dissectors/packet-dof.c b/epan/dissectors/packet-dof.c
index d1075a2..a8e07d5 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 3f603b2..f1ee9b1 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-e212.c b/epan/dissectors/packet-e212.c
index 4030a3c..a51328c 100644
--- a/epan/dissectors/packet-e212.c
+++ b/epan/dissectors/packet-e212.c
@@ -26,7 +26,7 @@ void proto_register_e212(void);
/*
* Annexes to ITU Operational Bulletin
* No. 1117 - 1.II.2017 (List of Mobile Country Codes)
- * No. 1162 - 15.XII.2018 (Mobile Network Codes)
+ * No. 1280 - 15.XI.2023 (Mobile Network Codes)
*
* With Amendment No. 1 (T-SP-OB 1164 - 15.I.2019) up to and
* including Amendment No. 34 (T-SP-OB 1198 - 15.VI.2020)
@@ -874,54 +874,71 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 20214, "CYTA (HELLAS)" },
{ 20215, "BWS" },
{ 20216, "INTER TELECOM" },
+ { 20400, "Intovoice B.V." },
{ 20401, "RadioAccess Network Services B.V." },
- { 20402, "Tele2 Nederland B.V." },
+ { 20402, "T-Mobile Netherlands B.V." },
{ 20403, "Voiceworks B.V." },
{ 20404, "Vodafone Libertel B.V." },
{ 20405, "Elephant Talk Communications Premium Rate Services" },
- { 20406, "Mundio Mobile (Netherlands) Ltd" },
- { 20407, "Teleena Holding B.V." },
- { 20408, "KPN Mobile The Netherlands B.V." },
+ { 20406, "Private Mobility Nederland B.V." },
+ { 20407, "Tata Communications MOVE B.V." },
+ { 20408, "KPN B.V." },
{ 20409, "Lycamobile Netherlands Limited" },
{ 20410, "KPN B.V." },
+ { 20411, "Greenet Netwerk B.V." },
{ 20412, "KPN B.V." },
{ 20413, "Unica Installatietechniek B.V." },
+ { 20414, "Venus & Mercury Telecom" },
{ 20415, "Ziggo B.V." },
{ 20416, "T-Mobile Netherlands B.V." },
- { 20417, "Intercity Mobile Communications B.V." },
- { 20418, "UPC Nederland B.V." },
+ { 20417, "Lebara Ltd" },
+ { 20418, "Ziggo Services B.V." },
{ 20419, "Mixe Communication Solutions B.V." },
{ 20420, "T-Mobile Netherlands B.V." },
{ 20421, "ProRail B.V." },
{ 20422, "Ministerie van Defensie" },
- { 20423, "ASpider Solutions Nederland B.V." },
- { 20424, "Private Mobility Nederland B.V." },
- { 20425, "CAPX B.V." },
+ { 20423, "KORE Wireless Nederland B.V." },
+ { 20424, "PM Factory B.V." },
+ { 20425, "CapX Nederland" },
{ 20426, "SpeakUp B.V." },
+ { 20427, "L-Mobi Mobile B.V." },
{ 20428, "Lancelot B.V." },
- { 20429, "Private Mobile Ltd" },
+ { 20429, "Tismi B.V." },
+ { 20430, "ASpider Solutions Nederland B.V." },
+ { 20432, "Cubic Telecom Limited" },
+ { 20433, "Truphone B.V." },
{ 20460, "Nextgen Mobile Ltd" },
- { 20461, "BodyTrace Netherlands B.V." },
+ { 20461, "Alcadis B.V." },
+ { 20462, "RGTN Wholesale Netherlands B.V." },
+ { 20463, "Messagebird BV" },
{ 20464, "Zetacom B.V." },
{ 20465, "AGMS Nederland B.V." },
{ 20466, "Utility Connect B.V." },
{ 20467, "RadioAccess B.V." },
{ 20468, "Roamware (Netherlands) B.V." },
- { 20469, "KPN Mobile The Netherlands B.V." },
+ { 20469, "KPN B.V." },
+ { 20491, "Enexis Netbeheer B.V." },
{ 20601, "Proximus" },
{ 20602, "N.M.B.S" },
+ { 20603, "Citymesh" },
+ { 20604, "MWINGZ (Proximus/Orange Belgium)" },
{ 20605, "Telenet" },
{ 20606, "Lycamobile sprl" },
{ 20607, "Mundio Mobile Belgium nv" },
{ 20608, "Nethys" },
{ 20610, "Orange Belgium" },
+ { 20611, "L-Mobi Mobile" },
{ 20620, "Telenet Group" },
+ { 20622, "FEBO Telecom" },
{ 20625, "Voyacom" },
{ 20628, "BICS SA" },
+ { 20629, "TISMI" },
{ 20630, "Unleashed" },
{ 20633, "Ericsson *test use only*" },
+ { 20634, "ONOFFAPP" },
{ 20650, "IP Nexia" },
- { 20801, "Orange" },
+ { 20699, "e-BO Enterprises" },
+ { 20801, "Orange" }, /* Annex E: MSIN range 0100000000-0199999999 are Orange/Monoco Télécom */
{ 20802, "Orange" },
{ 20803, "MobiquiThings" },
{ 20804, "Sisteer" },
@@ -932,35 +949,42 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 20809, "Société Française du Radiotéléphone" },
{ 20810, "Société Française du Radiotéléphone" },
{ 20811, "Société Française du Radiotéléphone" },
+ { 20812, "Truphone France" },
{ 20813, "Société Française du Radiotéléphone" },
{ 20814, "RFF" },
{ 20815, "Free Mobile" },
{ 20816, "Free Mobile" },
{ 20817, "Legos" },
- { 20819, "Altitude Infrastructure" },
+ { 20819, "Haute-Garonne numérique" },
{ 20820, "Bouygues Telecom" },
{ 20821, "Bouygues Telecom" },
{ 20822, "Transatel" },
{ 20823, "Syndicat mixte ouvert Charente Numérique" },
{ 20824, "MobiquiThings" },
{ 20825, "Lycamobile" },
- { 20826, "Euro-Information telecom" },
+ { 20826, "Bouygues Telecom Business - Distribution" },
{ 20827, "Coriolis Telecom" },
- { 20828, "Airbus defense ans space SAS" },
+ { 20828, "Airmob Infra Full" },
{ 20829, "Cubic télécom France" },
{ 20830, "Syma Mobile" },
{ 20831, "Vectone Mobile" },
{ 20832, "Orange" },
- { 20833, "Département des Pyrénées Atlantiques" },
+ { 20833, "Syndicat mixte La Fibre64" },
+ { 20834, "Cellhire (France)" },
+ { 20835, "Free mobile" },
+ { 20836, "Free mobile" },
+ { 20837, "IP Directions" },
+ { 20838, "Lebara France Limited" },
+ { 20839, "Netwo" },
{ 20886, "SEM@FOR77" },
- { 20887, "Régie Autonome des Transports Parisiens" },
+ { 20887, "AIRBUS DEFENCE AND SPACE SAS" },
{ 20888, "Bouygues Telecom" },
- { 20889, "Fondation b-com" },
+ { 20889, "Hub One" },
{ 20891, "Orange" },
{ 20893, "Thales communications & Security" },
{ 20894, "Halys" },
{ 20895, "Orange" },
- { 20896, "Axione" },
+ { 20896, "Région Bourgogne-Franche-Comté" },
{ 20897, "Thales communications & Security" },
{ 20898, "Société Air France" },
{ 21210, "Monaco Telecom" },
@@ -976,8 +1000,9 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 21409, "France Telecom España, SA" },
{ 21410, "ZINNIA TELECOMUNICACIONES, S.L.U." },
{ 21411, "TELECOM CASTILLA-LA MANCHA, S.A." },
- { 21412, "SAC CONVERGENT AGGREGATION SERVICES, S.L.U." },
+ { 21412, "VENUS MOVIL, S.L. UNIPERSONAL" },
{ 21413, "SYMA MOBILE ESPAÑA, S.L." },
+ { 21414, "AVATEL MÓVIL, S.L.U." },
{ 21416, "R CABLE Y TELECOMUNICACIONES GALICIA, S.A." },
{ 21417, "R Cable y Telecomunicaciones Galicia, SA" },
{ 21419, "E-Plus Móviles, SL" },
@@ -985,7 +1010,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 21422, "Best Spain Telecom, SL" },
{ 21423, "Xfera Móviles, S.A.U." },
{ 21424, "VODAFONE ESPAÑA, S.A.U." },
- { 21425, "Lycamobile, SL" },
+ { 21425, "XFERA MÓVILES, S.A. UNIPERSONAL" },
{ 21426, "Lleida Networks Serveis Telemátics, SL" },
{ 21427, "SCN Truphone SL" },
{ 21428, "Consorcio de Telecomunicaciones Avanzadas, S.A." },
@@ -996,14 +1021,17 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 21434, "AIRE NETWORKS DEL MEDITERRÁNEO, S.L. UNIPERSONAL" },
{ 21435, "INGENIUM OUTSOURCING SERVICES, S.L." },
{ 21436, "ALAI OPERADOR DE TELECOMUNICACIONES, S.L." },
+ { 21437, "VODAFONE ESPAÑA, S.A.U." },
{ 21438, "Telefónica Móviles España, SAU" },
{ 21451, "ENTIDAD PÚBLICA EMPRESARIAL ADMINISTRADOR DE INFRAESTRUCTURAS FERROVIARIAS" },
{ 21601, "Telenor Hungary Ltd" },
{ 21602, "MVM NET Ltd." },
{ 21603, "DIGI Telecommunication Ltd." },
+ { 21604, "Pro-M PrCo. Ltd." },
+ { 21620, "Yettel Hungary Ltd." },
{ 21630, "Magyar Telecom Plc" },
{ 21670, "Vodafone" },
- { 21671, "UPC Hungary Ltd" },
+ { 21671, "Vodafone Hungary Ltd" },
{ 21699, "MÁV Co." },
{ 21803, "Eronet Mobile Communications Ltd." },
{ 21805, "MOBI'S (Mobilina Srpske)" },
@@ -1041,7 +1069,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 22803, "Salt Mobile SA" },
{ 22805, "Comfone AG" },
{ 22806, "SBB AG" },
- { 22808, "TelCommunication Services AG" },
+ { 22808, "Sunrise Communications AG" },
{ 22809, "Comfone AG" },
{ 22811, "Swisscom Broadcast AG" },
{ 22812, "Sunrise Communications AG" },
@@ -1051,18 +1079,28 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 22855, "WeMobile SA" },
{ 22857, "Mitto AG" },
{ 22858, "Beeone Communications SA" },
+ { 22858, "Vectone Mobile Limited, London" },
{ 22860, "Sunrise Communications AG" },
{ 22862, "Telecom26 AG" },
{ 22863, "Fink Telecom Services" },
{ 22864, "NTH AG" },
+ { 22866, "Inovia Services SA" },
+ { 22867, "Datatrade Managed AG" },
+ { 22868, "Intellico AG" },
+ { 22869, "MTEL Schweiz GmbH" },
+ { 22870, "Tismi BV" },
+ { 22871, "Spusu AG" },
{ 23001, "T-Mobile Czech Republic a.s." },
- { 23002, "Telefónica O2 Czech Republic a.s." },
+ { 23002, "O2 Czech Republic a.s." },
{ 23003, "Vodafone Czech Republic a.s." },
- { 23004, "Air Telecom a.s." },
+ { 23004, "Nordic Telecom Regional s.r.o." },
{ 23005, "PODA a.s." },
{ 23006, "Nordic Telecom 5G a.s." },
+ { 23007, "T-Mobile Czech Republic a.s." },
{ 23008, "Compatel s.r.o" },
- { 23098, "Sprava Zeleznicni Dopravni Cesty" },
+ { 23009, "Uniphone, s.r.o" },
+ { 23011, "incrate s.r.o" },
+ { 23098, "Sprava zeleznic, statni organizace" },
{ 23101, "Orange, GSM" },
{ 23102, "Eurotel, GSM & NMT" },
{ 23104, "Eurotel, UMTS" },
@@ -1088,7 +1126,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 23220, "Mtel Austrija GmbH" },
{ 23291, "ÖBB - Infrastruktur AG" },
{ 23400, "British Telecom" },
- { 23401, "Mundio Mobile Limited" },
+ { 23401, "Vectone Mobile Limited" },
{ 23402, "Telefonica UK Limited" },
{ 23403, "Jersey Airtel Limited" },
{ 23404, "FMS Solutions Limited" },
@@ -1101,51 +1139,62 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 23411, "Telefonica UK Limited" },
{ 23412, "Network Rail Infrastructure Limited" },
{ 23413, "Network Rail Infrastructure Limited" },
- { 23414, "HAY SYSTEMS LIMITED" },
- { 23415, "Vodafone Uk Ltd" },
+ { 23414, "LINK MOBILITY UK LTD" },
+ { 23415, "Vodafone Limited" },
{ 23416, "TalkTalk Communications Limited" },
{ 23417, "FleXtel Limited" },
{ 23418, "Cloud9 Communications Limited" },
- { 23419, "TeleWare PLC" },
+ { 23419, "TeleWare Group PLC" },
{ 23420, "Hutchison 3G UK Limited" },
{ 23422, "Telesign Mobile Limited" },
{ 23423, "Icron Network Limited" },
{ 23424, "Stour Marine Limited" },
{ 23425, "Truphone Limited" },
{ 23426, "Lycamobile UK Limited" },
- { 23427, "Teleena UK Limited" },
+ { 23427, "Tata Communications Move UK Ltd" },
{ 23428, "Marathon Telecom Limited" },
- { 23429, "(aq) Limited trading as aql" },
+ { 23429, "(AQ) LIMITED" },
{ 23430, "EE Limited ( TM)" },
{ 23431, "EE Limited ( TM)" },
{ 23432, "EE Limited ( TM)" },
- { 23433, "Orange" },
- { 23434, "Orange" },
+ { 23433, "EE Limited (Orange)" },
+ { 23434, "EE Limited (Orange)" },
{ 23436, "Sure (Isle of Man) Limited" },
{ 23437, "Synectiv Ltd" },
{ 23438, "Virgin Mobile Telecoms Limited" },
{ 23439, "Gamma Telecom Holdings Ltd" },
- { 23450, "Jersey Telecom" },
+ { 23440, "Mass Response Service GmbH" },
+ { 23450, "JT (Jersey) Limited" },
{ 23451, "UK Broadband Limited" },
{ 23452, "Shyam Telecom UK Ltd" },
- { 23453, "Limitless Mobile Ltd" },
+ { 23453, "Tango Networks UK Ltd" },
{ 23454, "The Carphone Warehouse Limited" },
{ 23455, "Sure (Guernsey) Limited" },
- { 23456, "CESG" },
+ { 23456, "The National Cyber Security Centre" },
{ 23457, "Sky UK Limited" },
- { 23458, "Manx Telecom" },
+ { 23458, "MANX TELECOM TRADING LIMITED" },
{ 23459, "Limitless Mobile Ltd" },
{ 23470, "AMSUK Limited" },
{ 23471, "Home Office" },
+ { 23472, "Hanhaa Limited" },
+ { 23473, "BlueWave Communications" },
+ { 23474, "Pareteum Europe B.V." },
{ 23476, "British Telecom" },
+ { 23477, "Vodafone Limited" },
{ 23478, "Airwave Solutions Ltd" },
{ 23486, "EE Limited ( TM)" },
- { 23500, "Mundio Mobile Limited" },
+ { 23488, "Telet Research (N.I.) Limited" },
+ { 23500, "Vectone Mobile Limited" },
{ 23501, "EE Limited ( TM)" },
{ 23502, "EE Limited ( TM)" },
{ 23503, "UK Broadband Limited" },
+ { 23504, "University Of Strathclyde" },
+ { 23506, "University Of Strathclyde" },
+ { 23507, "University Of Strathclyde" },
+ { 23508, "Spitfire Network Services Limited" },
{ 23577, "British Telecom" },
- { 23591, "Vodafone Uk Ltd" },
+ { 23588, "Telet Research (N.I.) Limited" },
+ { 23591, "Vodafone Limited" },
{ 23592, "Vodafone Ltd (C&W)" },
{ 23594, "Hutchison 3G UK Limited" },
{ 23595, "Network Rail Infrastructure Limited" },
@@ -1174,6 +1223,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 23866, "TT-Netvaerket P/S" },
{ 23873, "Onomondo ApS" },
{ 23877, "Telenor" },
+ { 23888, "Cobira ApS" },
{ 23896, "Telia Danmark" },
{ 24001, "Telia Sverige AB" },
{ 24002, "Hi3G Access AB" },
@@ -1187,33 +1237,34 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 24010, "Tele2 Sverige AB" },
{ 24011, "ComHem AB" },
{ 24012, "Lycamobile Sweden Limited" },
- { 24013, "A3 Företag AB" },
+ { 24013, "Bredband2 Allmänna IT AB" },
{ 24014, "Tele2 Business AB" },
{ 24015, "Sierra Wireless Sweden AB" },
{ 24016, "42 Telecom AB" },
{ 24017, "Götalandsnätet AB" },
{ 24018, "Generic Mobile Systems Sweden AB" },
{ 24019, "Vecton Mobile (Sweden) Ltd" },
- { 24020, "Wireless Maingate Messaging Services AB" },
+ { 24020, "Sierra Wireless Messaging AB" },
{ 24021, "Trafikverket centralfunktion IT" },
{ 24022, "EuTel AB" },
{ 24023, "Infobip LTD (UK)" },
{ 24024, "Net4Mobility HB" },
{ 24025, "Monty UK Global Limited" },
- { 24026, "Twilio Sweden AB" },
+ { 24026, "Twilio Ireland Ltd." },
{ 24027, "GlobeTouch AB" },
{ 24028, "LINK Mobile A/S" },
- { 24029, "Mercury International Carrier Services" },
+ { 24029, "MI Carrier Services AB" },
{ 24031, "RebTel Networks AB" },
{ 24032, "Compatel Limited" },
{ 24033, "Mobile Arts AB" },
{ 24034, "Trafikverket centralfunktion IT" },
{ 24035, "42 Telecom LTD" },
{ 24036, "interactive digital media GmbH" },
- { 24037, "CLX Networks AB" },
+ { 24037, "Sinch Sweden AB" },
{ 24038, "Voxbone SA" },
{ 24039, "Primlight AB" },
- { 24040, "North net connect AB" },
+ { 24040, "Netmore Group AB" },
+ { 24041, "Telenor Sverige AB" },
{ 24042, "Telenor Connexion AB" },
{ 24043, "MobiWeb Ltd." },
{ 24044, "Telenabler AB" },
@@ -1221,7 +1272,8 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 24046, "SMS Provider Corp." },
{ 24047, "Viatel Sweden AB" },
{ 24048, "Tismi BV" },
- { 24060, "Telefonaktiebolaget LM Ericsson (MNC assigned for test purpose. Temporary license until 2019-12-31)" },
+ { 24049, "Telia Sverige AB" },
+ { 24060, "Västra Götalandsregionen (temporary assigned until 2026-12-31)" },
{ 24061, "MessageBird B.V." },
{ 24063, "Fink Telecom Services" },
{ 24065, "shared use for closed networks" },
@@ -1303,6 +1355,18 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 24814, "Estonian Crafts OÜ" },
{ 24816, "SmartTel Plus OÜ" },
{ 24817, "Baltergo OÜ" },
+ { 24818, "CLOUD COMMUNICATIONS OÜ" },
+ { 24819, "OkTelecom OÜ" },
+ { 24820, "DOTT Telecom OÜ" },
+ { 24821, "Tismi B.V." },
+ { 24822, "M2MConnect OÜ" },
+ { 24824, "Novametro OÜ" },
+ { 24826, "It-Decision Telecom OÜ" },
+ { 24828, "Nord Connect OÜ" },
+ { 24829, "SkyTel OÜ" },
+ { 24830, "Mediafon Carrier Services OÜ" },
+ { 24831, "YATECO OÜ" },
+ { 24832, "Narayana OÜ" },
{ 24871, "Siseministeerium (Ministry of Interior)" },
{ 25001, "Mobile Telesystems" },
{ 25002, "Megafon" },
@@ -1423,7 +1487,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 27002, "MTX Connect S.à r.l." },
{ 27007, "Bouygues Telecom S.A." },
{ 27010, "Join Experience S.A." },
- { 27077, "Tango S.A." },
+ { 27077, "Proximus Luxembourgh S.A." },
{ 27078, "Interactive Digital Media GmbH" },
{ 27079, "Mitto A.G." },
{ 27080, "Syniverse Technologies S.à r.l." },
@@ -1442,8 +1506,9 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 27217, "Three Ireland (Hutchison) Ltd" },
{ 27218, "Cubic Telecom Limited" },
{ 27221, "Net Feasa Limited" },
+ { 27268, "Office of the Government Chief Information Officer" },
{ 27401, "Iceland Telecom Ltd." },
- { 27402, "Og fjarskipti hf (Vodafone Iceland)" },
+ { 27402, "Og fjarskipti hf (Vodafone Iceland)" }, /* Annex E: MSIN beginning with 9 are P/F Kall, reg. No 2868 (Vodafone FO) in Faroe Islands */
{ 27403, "Og fjarskipti hf (Vodafone Iceland)" },
{ 27404, "IMC Islande ehf" },
{ 27407, "IceCell ehf" },
@@ -1451,11 +1516,11 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 27602, "Vodafone Albania" },
{ 27603, "Eagle Mobile" },
{ 27604, "Mobile 4 AL" },
- { 27801, "Vodafone Malta" },
+ { 27801, "Epic Communications Ltd" },
{ 27811, "YOM" },
- { 27821, "go mobile" },
+ { 27821, "GO mobile" },
{ 27830, "GO Mobile" },
- { 27877, "3G Telecommunications Ltd" },
+ { 27877, "Melita Ltd" },
{ 28001, "CYTA" },
{ 28002, "CYTA" },
{ 28010, "Scancom (Cyprus) Ltd." },
@@ -1475,6 +1540,8 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 28212, "\"Telecom1\" LTD" },
{ 28213, "\"Asanet\" LTD" },
{ 28214, "\"Datahouseglobal” LTD" },
+ { 28215, "\"Servicebox\" LTD" },
+ { 28222, "\"Myphone\" LTD" },
{ 28401, "Mobiltel EAD" },
{ 28405, "Globul" },
{ 28601, "Turkcell" },
@@ -1484,11 +1551,15 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 28801, "Faroese Telecom - GSM" },
{ 28802, "Kall GSM" },
{ 28803, "Sp/f Tosa" },
+ { 28810, "Faroese Telecom" },
{ 29001, "Tele Greenland" },
{ 29002, "inu:it a/s" },
+ { 29003, "GTV" },
{ 29201, "Prima San Marino / San Marino Telecom" },
{ 29310, "Slovenske železnice – Infrastruktura d.o.o." },
+ { 29311, "BeeIN d.o.o." },
{ 29320, "Compatel Limited" },
+ { 29321, "Novatel d.o.o." },
{ 29340, "A1 Slovenija d.d." },
{ 29341, "Telekom Slovenije d.d." },
{ 29364, "T-2 d.o.o." },
@@ -1499,18 +1570,21 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 29404, "Company for telecommunications LYCAMOBILE LLC-Skopje" },
{ 29410, "WTI Macedonia" },
{ 29411, "MOBIK TELEKOMUNIKACII DOOEL- Skopje" },
+ { 29412, "MTEL DOOEL Skopje" },
{ 29501, "Swisscom Schweiz AG" },
{ 29502, "Salt (Liechtenstein) AG" },
{ 29505, "Telecom Liechtenstein AG" },
{ 29506, "Cubic AG" },
{ 29507, "First Mobile AG" },
{ 29509, "Emnify GmbH" },
- { 29510, "SORACOM LI, LTD." },
+ { 29510, "SORACOM CORPORATION, LTD." },
+ { 29511, "DIMOCO Messaging AG" },
{ 29701, "Telenor Montenegro" },
{ 29702, "Crnogorski Telekom" },
{ 29703, "Mtel Montenegro" },
{ 30801, "SAS SPM Telecom" },
{ 30802, "Globaltel" },
+ { 30803, "SAS SPM Telecom" },
{ 34001, "Orange Caraïbe" },
{ 34002, "Outremer Telecom" },
{ 34003, "United telecommunications services Caraïbe" },
@@ -1545,13 +1619,14 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 40004, "\"Azerfon\" LLC" },
{ 40005, "Special State Protection Service of the Republic of Azerbaijan" },
{ 40006, "\"Nakhtel\" LLC" },
- { 40101, "Beeline / K-Mobile" },
- { 40102, "Kcell / Activ" },
+ { 40101, "Kar-Tel llc" },
+ { 40102, "TSC Kazak Telecom" },
{ 40107, "Altel / Dalacom" },
{ 40108, "Kazakhtelecom CDMA2000" },
{ 40177, "Tele2 / NEO" },
- { 40211, "Bhutan Telecom Ltd" },
- { 40217, "B-Mobile of Bhutan Telecom" },
+ { 40211, "Bhutan Telecom Limited (Bmobile)" },
+ { 40217, "Bhutan Telecom Limited (Bmobile)" },
+ { 40277, "Tashi InfoComm Limited (Tashi Cell)" },
{ 40400, "Dishnet Wireless Ltd, Madhya Pradesh" },
{ 40401, "Aircell Digilink India Ltd., Haryana" },
{ 40402, "Bharti Airtel Ltd., Punjab" },
@@ -1712,7 +1787,8 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 41603, "Umniah" },
{ 41677, "MobileCom" },
{ 41701, "Syriatel" },
- { 41702, "Spacetel Syria / MTN Syria" },
+ { 41702, "MTN Syria" },
+ { 41703, "WAFA Telecom" },
{ 41709, "Syrian Telecom" },
{ 41805, "Asia Cell" },
{ 41820, "Zain Iraq (previously Atheer)" },
@@ -1747,6 +1823,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 42202, "Oman Mobile Telecommunications Company (Oman Mobile)" },
{ 42203, "Oman Qatari Telecommunications Company (Nawras)" },
{ 42204, "Oman Telecommunications Company (Omantel)" },
+ { 42206, "Vodafone Oman" },
{ 42402, "Etisalat" },
{ 42501, "Partner Communications Co. Ltd." },
{ 42502, "Cellcom Israel Ltd" },
@@ -1767,10 +1844,12 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 42519, "Azi Communications Ltd" },
{ 42520, "Bezeq Ltd" },
{ 42521, "B.I.P Communications Ltd." },
+ { 42522, "Maskyoo Telephonia Ltd." },
{ 42523, "Beezz Communication Solutions Ltd." },
{ 42524, "012 Telecom Ltd." },
{ 42525, "IMOD" },
{ 42526, "LB Annatel Ltd." },
+ { 42527, "BITIT Ltd." },
{ 42528, "PHI Networks" },
{ 42529, "CG Networks" },
{ 42601, "Bahrain Telecommunications Company (BATELCO)" },
@@ -1778,19 +1857,39 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 42603, "Civil Aviation Authority" },
{ 42604, "STC Bahrain" },
{ 42605, "Royal Court" },
+ { 42606, "STC Bahrain" },
+ { 42607, "TAIF" },
{ 42701, "QATARNET" },
{ 42706, "Ooredoo Q.S.C./MOI LTE" },
{ 42899, "Mobicom" },
{ 42901, "Nepal Telecommunications" },
- { 43208, "Shatel Mobile" },
- { 43211, "Telecommunication Company of Iran (TCI)" },
- { 43214, "Telecommunication Kish Co. (KIFZO)" },
+ { 43201, "KISH CELL PARS" },
+ { 43202, "NEGIN ERTEBATAT AVA" },
+ { 43203, "PARSIAN HAMRAH LOTUS" },
+ { 43204, "TOSE E FANAVARI ERTEBATAT NOVIN HAMRAH" },
+ { 43205, "HAMRAH HOSHMAND AYANDEH" },
+ { 43206, "ERTEBATAT ARYANTEL" },
+ { 43207, "HOOSHMAND AMIN MOBILE" },
+ { 43208, "TOSE-E ERTEBATAT HAMRAH SHATEL" },
+ { 43209, "HIWEB" },
+ { 43211, "MCI (Mobile Communications of Iran)" },
+ { 43212, "HIWEB" },
+ { 43213, "HIWEB" },
+ { 43214, "Kish Free Zone Organization" },
{ 43219, "Telecommunication Company of Iran (TCI) - Isfahan Celcom GSM" },
{ 43220, "Rightel" },
- { 43232, "Taliya" },
- { 43235, "MTN/IranCell" },
- { 43250, "Arya Resaneh Tadbir (Shatel)" },
- { 43270, "MTCE" },
+ { 43232, "TCI (Telecommunication Company of Iran)" },
+ { 43235, "IRANCELL" },
+ { 43244, "ERTEBATAT MOBIN NET" },
+ { 43245, "FARABORD DADEHAYE IRANIAN" },
+ { 43246, "HIWEB" },
+ { 43249, "GOSTARESH ERTEBATAT MABNA" },
+ { 43250, "SHATEL" },
+ { 43251, "PISHGAMAN TOSE-E ERTEBATAT" },
+ { 43252, "ASIATECH" },
+ { 43270, "TCI (Telecommunication Company of Iran)" },
+ { 43271, "ERTEBATAT KOOHE NOOR" },
+ { 43293, "ERTEBATAT FARZANEGAN PARS" },
{ 43401, "Buztel" },
{ 43402, "Uzmacom" },
{ 43404, "Daewoo Unitel" },
@@ -1811,20 +1910,29 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 43801, "Barash Communication Technologies (BCTI)" },
{ 43802, "TM-Cell" },
{ 44000, "SoftBank Corp." },
- { 44001, "UQ Communications Inc." },
+ { 44001, "KDDI Corporation" },
{ 44002, "Hanshin Cable Engineering Co. Ltd." },
{ 44003, "Internet Initiative Japan Inc." },
{ 44004, "Japan Radio Co., Ltd." },
{ 44005, "Wireless City Planning Inc." },
{ 44006, "SAKURA Internet Inc." },
- { 44007, "LTE-X, Inc." },
- { 44008, "Panasonic Systems Solutions Japan Co., Ltd" },
- { 44009, "Marubeni Wireless Communications Inc." },
+ { 44007, "closip, Inc." },
+ { 44008, "Panasonic Connect Co., Ltd" },
+ { 44009, "Marubeni Network Solutions Inc." },
{ 44010, "NTT DOCOMO, INC." },
{ 44011, "Rakuten Mobile Network, Inc." },
{ 44012, "CABLE MEDIA WAIWAI CORPORATION" },
+ { 44013, "NTT Communications Corporation" },
+ { 44014, "GRAPE ONE LTD." },
+ { 44015, "BB Backbone Corp." },
+ { 44016, "Nokia Innovations Japan G.K." },
+ { 44017, "OSAKA GAS BUSINESS CREATE CORPORATION" },
+ { 44018, "Kintetsu Cable Network, Ltd" },
+ { 44019, "NEC Networks & System Integration Corporation" },
{ 44020, "SoftBank Corp." },
{ 44021, "SoftBank Corp." },
+ { 44022, "JTOWER Inc." },
+ { 44023, "FUJITSU LIMITED" },
{ 44050, "KDDI Corporation" },
{ 44051, "KDDI Corporation" },
{ 44052, "KDDI Corporation" },
@@ -1891,6 +1999,8 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 45430, "China Data Enterprises Ltd" },
{ 45431, "China Telecom Global Limited" },
{ 45432, "Hong Kong Broadband Network Ltd" },
+ { 45435, "Webbing Hong Kong Limited" },
+ { 45436, "Easco Telecommunications Limited" },
{ 45500, "SmarTone – Comunicações Móveis, S.A." },
{ 45501, "Companhia de Telecomunicações de Macau, S.A.R.L." },
{ 45502, "China Telecom (Macau) Limitada" },
@@ -1907,9 +2017,11 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 45606, "Smart" },
{ 45608, "Viettel" },
{ 45618, "Mfone" },
- { 45701, "Lao Telecommunications" },
- { 45702, "ETL Mobile" },
- { 45708, "Millicom" },
+ { 45701, "Lao Telecommunication Public Company" },
+ { 45702, "ETL Company Limited" },
+ { 45703, "Star Telecom Co., Ltd" },
+ { 45707, "Best Telecom Co., Ltd" },
+ { 45708, "TPLUS Digital Sole Company Limited" },
{ 46000, "China Mobile" },
{ 46001, "China Unicom" },
{ 46002, "China Mobile" },
@@ -1978,14 +2090,21 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 50546, "ANGLOGOLD ASHANTI AUSTRALIA LTD" },
{ 50547, "Woodside Energy Limited" },
{ 50548, "Titan ICT Pty Ltd" },
+ { 50549, "Field Solutions Group Pty Ltd" },
{ 50550, "Pivotel Group Pty Limited" },
+ { 50551, "Fortescue Metals Group Ltd" },
+ { 50552, "Optitel Pty Ltd" },
+ { 50553, "Shell Australia Pty Ltd" },
+ { 50555, "New South Wales Government Telecommunications Authority" },
+ { 50556, "Nokia Solutions and Networks Pty Ltd" },
+ { 50557, "CiFi Pty Ltd" },
{ 50561, "Commtel Network Solutions Pty Ltd" },
{ 50562, "NBNCo Limited" },
{ 50568, "NBNCo Limited" },
{ 50571, "Telstra Corporation Ltd." },
{ 50572, "Telstra Corporation Ltd." },
{ 50588, "Pivotel Group Pty Limited" },
- { 50590, "Optus Ltd." },
+ { 50590, "UE Access Pty Ltd" },
{ 50599, "One.Tel GSM 1800 Pty. Ltd." },
{ 51000, "PSN" },
{ 51001, "Satelindo" },
@@ -2026,17 +2145,19 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 52803, "Unified National Networks Sdn Bhd (UNN)" },
{ 52811, "DST Com" },
{ 53000, "Reserved for AMPS MIN based IMSI's" },
- { 53001, "Vodafone New Zealand GSM Network" },
+ { 53001, "One New Zealand Group Limited" },
{ 53002, "Teleom New Zealand CDMA Network" },
{ 53003, "Woosh Wireless - CDMA Network" },
- { 53004, "TelstraClear - GSM Network" },
+ { 53004, "One New Zealand Group Limited" },
{ 53005, "Telecom New Zealand - UMTS Ntework" },
{ 53006, "FX Networks Ltd" },
- { 53007, "Bluereach Limited" },
+ { 53007, "Dense Air New Zealand Ltd" },
+ { 53011, "Interim Māori Spectrum Commission" },
{ 53024, "NZ Communications - UMTS Network" },
{ 53701, "Bmobile" },
{ 53702, "Telikom PNG Ltd" },
{ 53703, "Digicel Ltd" },
+ { 53704, "Digitec Communication Limited" },
{ 53901, "Tonga Communications Corporation" },
{ 53943, "Digicel" },
{ 53988, "Digicel (Tonga) Ltd" },
@@ -2169,6 +2290,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 63090, "Africell RDC" },
{ 63102, "Unitel" },
{ 63104, "Movicel" },
+ { 63105, "AFRICELL" },
{ 63201, "Guinétel S.A." },
{ 63202, "Spacetel Guinea-Bissau S.A." },
{ 63301, "Cable and wireless (Seychelles) Ltd" },
@@ -2195,10 +2317,13 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 63907, "Telkom Kenya Limited" },
{ 63909, "Homeland Media Group Limited" },
{ 63910, "Jamii Telecommunications Limited" },
+ { 63911, "Jambo Telecoms Limited" },
+ { 63912, "Infura Limited" },
{ 64002, "MIC Tanzania Limited (Tigo)" },
{ 64003, "Zanzibar Telecom Limited (Zantel)" },
{ 64004, "Vodacom Tanzania Limited" },
{ 64005, "Airtel Tanzania Limited" },
+ { 64006, "WIA Company Limited" },
{ 64007, "Tanzania Telecommunications Company Limited" },
{ 64009, "Viettel Tanzania Limited (Halotel)" },
{ 64011, "Smile Communications Tanzania Ltd" },
@@ -2206,6 +2331,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 64014, "MO Mobile Holding Limited" },
{ 64101, "Airtel Uganda Limited" },
{ 64104, "Tangerine Uganda Limited" },
+ { 64108, "Talkio Mobile Limited" },
{ 64110, "MTN Uganda Limited" },
{ 64111, "Uganda Telecom Limited" },
{ 64116, "SimbaNET Uganda Limited" },
@@ -2226,6 +2352,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 64501, "Celtel Zambia Ltd." },
{ 64502, "Telecel Zambia Ltd." },
{ 64503, "Zamtel" },
+ { 64507, "Liquid Telecom Zambia Limited" },
{ 64601, "Celtel Madagascar (Zain), GSM" },
{ 64602, "Orange Madagascar, GSM" },
{ 64604, "Telecom Malagasy Mobile, GSM" },
@@ -2260,6 +2387,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 65402, "TELMA / TELCO SA" },
{ 65501, "Vodacom (Pty) Ltd." },
{ 65502, "Telkom SA Ltd" },
+ { 65503, "Telkom SA SOC Ltd" },
{ 65505, "Telkom SA Ltd" },
{ 65506, "Sentech (Pty) Ltd." },
{ 65507, "Cell C (Pty) Ltd." },
@@ -2287,6 +2415,8 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 65565, "Vodacom Pty Ltd" },
{ 65573, "Wireless Business Solutions (Pty) Ltd" },
{ 65574, "Wireless Business Solutions (Pty) Ltd" },
+ { 65576, "Comsol Networks (Pty) Ltd" },
+ { 65577, "K2015315513 (Pty) Ltd t\\a One Telecom (Pty) Ltd" },
{ 65801, "Sure South Atlantic Ltd. (Ascension)" },
{ 65912, "Sudani/Sudatel" },
{ 65991, "Zain-South Sudan" },
@@ -2295,6 +2425,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 65997, "Gemtel" },
{ 70267, "Belize Telecommunications Ltd., GSM 1900" },
{ 70269, "SMART/Speednet Communications Ltd." },
+ { 70401, "Servicios de Comunicaciones Personales Inalámbricas, S.A. (SERCOM, S.A" },
{ 70402, "Comunicaciones Celulares S.A." },
{ 70403, "Telefónica Centroamérica Guatemala S.A." },
{ 70601, "CTE Telecom Personal, S.A. de C.V." },
@@ -2308,9 +2439,10 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 71204, "Telefónica de Costa Rica TC, S.A." },
{ 71220, "Virtualis" },
{ 71401, "Cable & Wireless Panama S.A." },
- { 71402, "BSC de Panama S.A." },
+ { 71402, "Grupo de Comunicaciones Digitales, S.A. (TIGO)" },
{ 71403, "Claro Panamá, S.A." },
{ 71404, "Digicel (Panamá), S.A." },
+ { 71405, "Cable & Wireless Panamá, S.A." },
{ 71610, "TIM Peru" },
{ 72400, "NEXTEL" },
{ 72401, "SISTEER DO BRASIL TELECOMUNICAÇÔES (MVNO)" },
@@ -2323,7 +2455,9 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 72411, "Telefônica Brasil S.A." },
{ 72415, "SERCOMTEL" },
{ 72416, "BRT CELULAR" },
+ { 72417, "SURF TELECOM S.A." },
{ 72418, "DATORA (MVNO)" },
+ { 72421, "LIGUE" },
{ 72423, "Telefônica Brasil S.A." },
{ 72424, "AMAZONIA CELULAR" },
{ 72430, "TNL PCS Oi" },
@@ -2367,14 +2501,17 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 73403, "GALAXY ENTERTAINMENT DE VENEZUELA C.A." },
{ 73404, "Telcel, C.A." },
{ 73406, "Telecomunicaciones Movilnet, C.A." },
+ { 73408, "PATRIACELL C.A." },
{ 73601, "Nuevatel S.A." },
{ 73602, "ENTEL S.A." },
{ 73603, "Telecel S.A." },
+ { 73800, "E-Networks Inc." },
{ 73801, "U-Mobile (Cellular) Inc." },
{ 73805, "eGovernment Unit, Ministry of the Presidency" },
{ 74000, "Otecel S.A. - Bellsouth" },
{ 74001, "Porta GSM" },
{ 74002, "Telecsa S.A." },
+ { 74204, "Free Caraïbe" },
{ 74401, "Hóla Paraguay S.A." },
{ 74402, "Hutchison Telecom S.A." },
{ 74403, "Compañia Privada de Comunicaciones S.A." },
@@ -2384,7 +2521,11 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 74801, "Administración Nacional de Telecomunicaciones (ANTEL)" },
{ 74807, "Telefónica Móviles del Uruguay S.A. (Movistar)" },
{ 74810, "AM Wireless Uruguay S.A. (Claro)" },
+ { 74815, "ENALUR S.A." },
+ { 90101, "Webbing" },
+ { 90102, "GlobalmatiX AG" },
{ 90103, "Iridium Communications Inc" },
+ { 90104, "BBIX Singapore Pte. Ltd." },
{ 90105, "Thuraya RMSS Network" },
{ 90106, "Thuraya Satellite Telecommunications Company" },
{ 90111, "Inmarsat Ltd." },
@@ -2395,7 +2536,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 90116, "Cisco Systems, Inc." },
{ 90117, "Jersey Telecom" },
{ 90118, "Cingular Wireless" },
- { 90119, "Vodafone Malta (Monaco Telecom)" },
+ { 90119, "Epic Communications Limited (Monaco Telecom)" },
{ 90120, "Intermatica" },
{ 90121, "Wins Limited (Formerly Seanet Maritime Communications AB)" },
{ 90122, "MediaLincc Ltd" },
@@ -2422,11 +2563,11 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 90146, "Telecom26 AG" },
{ 90147, "Ooredoo" },
{ 90148, "Com4 Sweden AB" },
- { 90149, "Zain Kuwait" },
+ { 90149, "Mobile Telecommunications Company K.S.C.P. (Formerly Zain Kuwait)" },
{ 90150, "Sawatch Limited/EchoStar Mobile Limited" },
{ 90151, "VisionNG" },
{ 90152, "Manx Telecom Trading Ltd." },
- { 90153, "Deutsche Telekom AG" },
+ { 90153, "Inmarsat Ltd. (replacing Deutsche Telekom AG)" },
{ 90154, "Teleena Holding B.V." },
{ 90155, "Beezz Communication Solutions Ltd." },
{ 90156, "European Telecommunications Standards Institute (ETSI)" },
@@ -2445,9 +2586,34 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 90169, "Legos" },
{ 90170, "Clementvale Baltic OÜ" },
{ 90171, "Tampnet AS" },
- { 90172, "Tele2 IoT" },
+ { 90172, "Tele2 Sverige Aktiebolag (Formerly Tele2 IoT)" },
{ 90173, "Cubic Telecom Limited" },
+ { 90174, "Etisalat" },
+ { 90175, "Podsystem Ltd." },
+ { 90176, "A1 Telekom Austria AG" },
+ { 90177, "Bouygues Telecom" },
+ { 90178, "Telecom Italia Sparkle S.p.A." },
+ { 90179, "Nokia Corporation" },
+ { 90180, "Flo Live Limited" },
+ { 90181, "Airnity SAS" },
+ { 90182, "Eseye Limited" },
+ { 90183, "iBasis Netherlands BV" },
+ { 90184, "TELEFONICA MOVILES ESPAÑA, S.A. UNIPERSONAL (TME)" },
+ { 90185, "Telefónica Germany GmbH & Co. OHG" },
+ { 90186, "BJT PARTNERS SAS" },
+ { 90187, "Cisco Systems, Inc." },
{ 90188, "UN Office for the Coordination of Humanitarian Affairs (OCHA)" },
+ { 90189, "DIDWW Ireland Limited" },
+ { 90190, "Truphone Limited" },
+ { 90191, "World Mobile Group Limited" },
+ { 90192, "Phonegroup SA" },
+ { 90193, "SkyFive AG" },
+ { 90194, "Intelsat US LLC" },
+ { 90195, "HMD Global Oy" },
+ { 90196, "KORE Wireless" },
+ { 90197, "Satelio IoT Services S.L." },
+ { 90198, "Skylo Technologies, Inc." },
+ { 90199, "Athalos Global Services BV" },
{ 90201, "MulteFire Alliance" },
{ 99101, "World's Global Telecom (temporary assignment for trial until 14.I.2021)" },
{ 99999, "Internal use, example, testing" },
@@ -2459,13 +2625,33 @@ value_string_ext mcc_mnc_2digits_codes_ext = VALUE_STRING_EXT_INIT(mcc_mnc_2digi
static const value_string mcc_mnc_3digits_codes[] = {
{ 208500, "EDF" },
{ 208700, "Weaccess group" },
+ { 208701, "GIP Vendée numérique" },
+ { 208702, "17-Numérique" },
+ { 208703, "Nivertel" },
+ { 208704, "Axione Limousin" },
+ { 208705, "Hautes-Pyrénées Numérique" },
+ { 208706, "Tours Métropole Numérique" },
+ { 208707, "Sartel THD" },
+ { 208708, "Melis@ territoires ruraux" },
+ { 208709, "Quimper communauté télécom" },
+ { 208710, "Losange" },
+ { 208711, "Nomotech" },
+ { 208712, "Syndicat Audois d'énergies et du Numérique" },
+ { 208713, "SD NUM SAS" },
+ { 208714, "Département de l'Isère" },
+ { 214700, "IBERDROLA ESPAÑA, S.A.UNIPERSONAL" },
+ { 214701, "ENDESA DISTRIBUCIÓN ELÉCTRICA, S.L." },
{ 302100, "Data on Tap Inc." },
{ 302130, "Xplornet Communications" },
{ 302131, "Xplornet Communications" },
+ { 302140, "Fibernetics Corporation" },
{ 302150, "Cogeco Connexion Inc." },
+ { 302151, "Cogeco Connexion Inc." },
+ { 302152, "Cogeco Connexion Inc." },
{ 302220, "Telus Mobility" },
{ 302221, "Telus Mobility" },
{ 302222, "Telus Mobility" },
+ { 302230, "ISP Telecom" },
{ 302250, "ALO Mobile Inc" },
{ 302270, "Bragg Communications" },
{ 302290, "Airtel Wireless" },
@@ -2485,7 +2671,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 302530, "Keewatinook Okimacinac" },
{ 302550, "Star Solutions International Inc." },
{ 302560, "Lynx Mobility" },
- { 302570, "Light Squared" },
+ { 302570, "Ligado Networks Corp." },
{ 302590, "Quadro Communication" },
{ 302600, "Iristel Inc." },
{ 302610, "Bell Mobility" },
@@ -2496,19 +2682,25 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 302660, "MTS Mobility" },
{ 302670, "CityTel Mobility" },
{ 302680, "Sask Tel Mobility" },
+ { 302681, "SaskTel Mobility" },
{ 302690, "Bell Mobility" },
{ 302710, "Globalstar" },
{ 302720, "Rogers Wireless" },
{ 302721, "Rogers Communications Canada Inc. (Wireless)" },
{ 302730, "TerreStar Solutions" },
- { 302740, "Shaw Telecom G.P." },
+ { 302740, "Rogers Communications Canada Inc." },
+ { 302741, "Rogers Communications Canada Inc." },
{ 302760, "Public Mobile Inc" },
{ 302770, "Rural Com" },
{ 302780, "Sask Tel Mobility" },
+ { 302781, "SaskTel Mobility" },
+ { 302848, "Vocom International Telecommunications, Inc" },
{ 302860, "Telus Mobility" },
{ 302880, "Telus/Bell shared" },
{ 302940, "Wightman Telecom" },
{ 302990, "Test" },
+ { 302996, "Powertech Labs (experimental)" },
+ { 302998, "Institu de Recherche d’Hydro-Québec (experimental)" },
{ 310010, "Verizon Wireless" },
{ 310012, "Verizon Wireless" },
{ 310013, "Verizon Wireless" },
@@ -2517,13 +2709,14 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 310020, "Union Telephone Company" },
{ 310030, "AT&T Mobility" },
{ 310035, "ETEX Communications, LP (d/b/a) ETEX Wireless" },
+ { 310040, "Mobi" },
{ 310050, "Alaska Wireless Networks" },
{ 310070, "AT&T Mobility" },
{ 310080, "AT&T Mobility" },
{ 310090, "AT&T Mobility" },
- { 310100, "New Mexico RSA 4 East Ltd. Partnership" },
- { 310110, "Pacific Telecom Inc" },
- { 310120, "Sprint" },
+ { 310100, "New Mexico RSA 4 East Limited Partnership" },
+ { 310110, "PTI Pacifica, Inc." },
+ { 310120, "T-Mobile USA" },
{ 310130, "Carolina West Wireless" },
{ 310140, "GTA Wireless LLC" },
{ 310150, "AT&T Mobility" },
@@ -2552,17 +2745,18 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 310390, "TX-11 Acquistion LLC" },
{ 310400, "Wave Runner LLC" },
{ 310410, "AT&T Mobility" },
+ { 310420, "World Mobile Networks, Inc" },
{ 310430, "GCI Communications Corp" },
{ 310440, "Numerex Corp" },
{ 310450, "North East Cellular Inc." },
- { 310460, "Newcore Wireless" },
+ { 310460, "Eseye" },
{ 310470, "Docomo Pacific Inc" },
- { 310480, "Wave Runner LLC" },
+ { 310480, "PTI Pacifica, Inc." },
{ 310490, "T-Mobile USA" },
{ 310500, "Public Service Cellular, Inc." },
{ 310510, "Nsight" },
{ 310520, "Transactions Network Services (TNS)" },
- { 310530, "Iowa Wireless Services LLC dba | Wireless" },
+ { 310530, "T-Mobile" },
{ 310540, "Oklahoma Western Telephone Company" },
{ 310550, "Syniverse Technologies" },
{ 310570, "Broadpoint, LLC (former PetroCom, LLC) c/o MTPCS, LLC dba CellularOne" },
@@ -2579,7 +2773,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 310599, "Verizon Wireless" },
{ 310600, "NewCell dba Cellcom" },
{ 310620, "Nsighttel Wireless, LLC" },
- { 310630, "Agri-Valley Broadband, Inc" },
+ { 310630, "Choice Wireless" },
{ 310640, "Numerex Corp" },
{ 310650, "JASPER TECHNOLOGIES INC." },
{ 310660, "T-Mobile USA" },
@@ -2593,12 +2787,12 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 310740, "Viaero Wireless" },
{ 310750, "East Kentucky Network LLC dba Appalachian Wireless" },
{ 310760, "Lynch 3G Communications Corporation" },
- { 310770, "Iowa Wireless Services LLC dba I Wireless" },
+ { 310770, "T-Mobile" },
{ 310790, "PinPoint Communications Inc." },
{ 310800, "T-Mobile USA" },
{ 310810, "Pacific Lightwave Inc." },
{ 310820, "Verizon Wireless" },
- { 310830, "Sprint" },
+ { 310830, "T-Mobile USA" },
{ 310840, "Telecom North America Mobile Inc" },
{ 310850, "Aeris Communications, Inc." },
{ 310860, "West Central Wireless" },
@@ -2617,7 +2811,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 310910, "Verizon Wireless" },
{ 310920, "James Valley Wireless LLC" },
{ 310930, "Copper Valley Wireless" },
- { 310940, "Tyntec Inc." },
+ { 310940, "Tyntec Limited" },
{ 310950, "AT&T Mobility" },
{ 310960, "UBET Wireless" },
{ 310970, "Globalstar USA" },
@@ -2634,7 +2828,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 311090, "AT&T Mobility" },
{ 311100, "Nex-Tech Wireless LLC" },
{ 311110, "Verizon Wireless" },
- { 311120, "Wave Runner LLC" },
+ { 311120, "PTI Pacifica, Inc." },
{ 311140, "Cross Telephone Company" },
{ 311150, "Wilkes Cellular Inc." },
{ 311170, "Tampnet (formerly Broadpoint, LLC (former PetroCom, LLC) c/o MTPCS, LL" },
@@ -2642,6 +2836,9 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 311190, "AT&T Mobility" },
{ 311210, "Telnyx LLC" },
{ 311220, "United States Cellular" },
+ { 311225, "U.S. Cellular" },
+ { 311228, "U.S. Cellular" },
+ { 311229, "U.S. Cellular" },
{ 311230, "Cellular South Inc." },
{ 311240, "Cordova Wireless Communications Inc" },
{ 311250, "Wave Runner LLC" },
@@ -2680,7 +2877,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 311410, "Iowa RSA No. 2 Limited Partnership" },
{ 311420, "Northwest Cell" },
{ 311430, "RSA 1 Limited Partnership dba Cellular 29 Plus" },
- { 311440, "Bluegrass Cellular LLC" },
+ { 311440, "Verizon Wireless" },
{ 311450, "Panhandle Telecommunication Systems Inc." },
{ 311460, "ELECTRIC IMP INCORPORATED" },
{ 311470, "Vitelcom Cellular D/B/A Innovative Wireless" },
@@ -2694,12 +2891,17 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 311487, "Verizon Wireless" },
{ 311488, "Verizon Wireless" },
{ 311489, "Verizon Wireless" },
- { 311490, "Sprint" },
+ { 311490, "T-Mobile USA" },
+ { 311500, "Mobi" },
{ 311510, "Ligado Networks" },
- { 311530, "Newcore Wireless LLC" },
+ { 311530, "WorldCell Solutions LLC" },
+ { 311540, "Coeur Rochester, Inc" },
{ 311550, "Commnet Midwest, LLC" },
{ 311560, "OTZ Communications Inc" },
+ { 311570, "Medicom" },
{ 311580, "U.S. Cellular" },
+ { 311588, "U.S. Cellular" },
+ { 311589, "U.S. Cellular" },
{ 311590, "Verizon Wireless" },
{ 311600, "Limitless Mobile, LLC" },
{ 311610, "North Dakota Network Co." },
@@ -2721,21 +2923,22 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 311770, "Altiostar Networks, Inc." },
{ 311780, "The American Samoa Telecommunications Authority" },
{ 311790, "Coleman County Telephone Cooperative, Inc." },
- { 311800, "Bluegrass Cellular LLC" },
- { 311810, "Blegrass Cellular LLC" },
- { 311820, "Sonus Networks" },
+ { 311800, "Verizon Wireless" },
+ { 311810, "Verizon Wireless" },
+ { 311820, "Ribbon Communications" },
{ 311830, "Thumb Cellular LLC" },
{ 311840, "Nsight" },
{ 311850, "Nsight" },
{ 311860, "Uintah Basin Electronic Telecommunications" },
- { 311870, "Sprint" },
- { 311880, "Sprint" },
- { 311882, "Sprint" },
+ { 311870, "T-Mobile USA" },
+ { 311880, "T-Mobile USA" },
+ { 311882, "T-Mobile" },
{ 311890, "Globecomm Network Services Corporation" },
{ 311900, "Gigsky Inc." },
{ 311910, "SI Wireless LLC" },
{ 311920, "Missouri RSA No 5 Partnership" },
- { 311940, "Sprint" },
+ { 311930, "Cox Communications" },
+ { 311940, "T-Mobile USA" },
{ 311950, "Sunman Telecommunications corp." },
{ 311970, "Big River Broadband LLC" },
{ 311980, "LigTel Communications" },
@@ -2754,13 +2957,13 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 312160, "RSA1 Limited Partnership dba Chat Mobility" },
{ 312170, "Iowa RSA No. 2 Limited Partnership" },
{ 312180, "Limitless Mobile, LLC" },
- { 312190, "Sprint" },
+ { 312190, "T-Mobile USA" },
{ 312210, "ASPENTA, LLC" },
{ 312220, "Chariton Valley Communications Corporation" },
{ 312230, "SRT Communications Inc." },
{ 312240, "Sprint" },
- { 312250, "Sprint" },
- { 312260, "Central LTE Holdings" },
+ { 312250, "T-Mobile USA" },
+ { 312260, "WorldCell Solutions LLC" },
{ 312270, "Cellular Network Partnership dba Pioneer Cellular" },
{ 312280, "Cellular Network Partnership dba Pioneer Cellular" },
{ 312290, "Uintah Basin Electronic Telecommunications" },
@@ -2783,10 +2986,10 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 312480, "Sagebrush Cellular, Inc." },
{ 312490, "TrustComm, Inc" },
{ 312510, "Wue" },
- { 312530, "Sprint" },
+ { 312530, "T-Mobile USA" },
{ 312550, "Great Plains Communications, Inc" },
{ 312570, "Buffalo-Lake Erie Wireless Systems Co., LLC" },
- { 312580, "Morgan, Lewis & Bockius LLP" },
+ { 312580, "Google LLC" },
{ 312590, "Northern Michigan University" },
{ 312600, "Sagebrush Cellular, Inc." },
{ 312620, "GlobeTouch Inc." },
@@ -2815,6 +3018,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 312880, "Albemarle County Public Schools" },
{ 312890, "Circle Gx" },
{ 312900, "Flat West Wireless, LLC" },
+ { 312910, "East Kentucky Network LLC dba Appalachian Wireless" },
{ 312920, "Northeast Wireless Networks" },
{ 312930, "Hewlett-Packard Communication Services, LLC" },
{ 312940, "Webformix" },
@@ -2824,9 +3028,9 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 312980, "Mark Twain Communications Company" },
{ 312990, "PREMIER HOLDINGS, LLC" },
{ 313000, "Tennessee Wireless" },
- { 313010, "Cross Wireless LLC dba Sprocket Wireless" },
+ { 313010, "Cross Wireless LLC dba Bravado Wireless" },
{ 313020, "CTC Telecom, INC. dba CTC Wireless" },
- { 313030, "Eagle Telephone System, INC dba Snake River PCS" },
+ { 313030, "AT&T Mobility" },
{ 313040, "Nucla-Naturita Telephone Company" },
{ 313050, "Manti Tele Communications Company, Inc. dba Breakaway Wireless" },
{ 313060, "Country Wireless" },
@@ -2853,7 +3057,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 313260, "Expeto Wireless Inc." },
{ 313280, "King Street Wireless, LP" },
{ 313290, "Gulf Coast Broadband LLC" },
- { 313300, "Cambio WiFi of Delmarva, LLC." },
+ { 313300, "Southern California Edison" },
{ 313310, "CAL.NET, INC" },
{ 313320, "Paladin Wireless" },
{ 313330, "CenturyTel Broadband Services LLC" },
@@ -2864,11 +3068,11 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 313380, "OptimERA Inc." },
{ 313390, "Altice USA Wireless, Inc." },
{ 313400, "Texoma Communications, LLC" },
- { 313410, "pdvWireless" },
+ { 313410, "Anterix Inc." },
{ 313420, "Hudson Valley Wireless" },
{ 313440, "Arvig Enterprises INC" },
{ 313450, "Spectrum Wireless Holdings, LLC" },
- { 313460, "Mobi, Inc." },
+ { 313460, "Mobi" },
{ 313470, "San Diego Gas & Electric Company" },
{ 313480, "Ready Wireless, LLC" },
{ 313490, "Puloli, Inc" },
@@ -2877,13 +3081,13 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 313520, "Florida Broadband, Inc" },
{ 313540, "Nokia Innovations US LLC" },
{ 313550, "Mile High Networks LLC" },
- { 313560, "Transit Wireless, LLC" },
+ { 313560, "Boldyn Networks Transit US LLC" },
{ 313570, "Celular Network Partnership" },
{ 313580, "Telecall Telecommuncations Corp." },
{ 313590, "Southern Communications Services, Inc. D/B/A Southern Linc" },
{ 313600, "ST Engineering iDirect" },
- { 313610, "Crystal Automation Systems, Inc." },
- { 313620, "Screened Images" },
+ { 313610, "Point Broadband Fiber Holding, LLC" },
+ { 313620, "Omniprophis Corporation" },
{ 313630, "LICT Corporation" },
{ 313640, "Geoverse" },
{ 313650, "Chevron USA INC" },
@@ -2895,13 +3099,37 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 313710, "Extent Systems" },
{ 313720, "1st Point Communications, LLC" },
{ 313730, "TruAccess Networks" },
- { 313740, "RTO Wireless, LLC" },
- { 313750, "313-CellTex Networks, LLC" },
- { 313760, "Hologram, Inc." },
+ { 313740, "RTO Wireless" },
+ { 313750, "CellTex Networks, LLC" },
+ { 313760, "Hologram" },
{ 313770, "Tango Networks" },
+ { 313780, "Windstream Services LLC" },
+ { 313790, "Liberty Cablevision of Puerto Rico LLC" },
+ { 313810, "W.A.T.C.H. TV Co. dba Watch Communications" },
+ { 313820, "Inland Cellular Telephone Company" },
+ { 313830, "360 communications INC" },
+ { 313840, "Celblox Acquisitions" },
+ { 313850, "Softcom Internet Communications, Inc." },
+ { 313860, "AMG Technology Investment Group dba Nextlink Internet" },
+ { 313870, "Elektrafi LLC" },
+ { 313880, "Shuttle Wireless Solutions Inc." },
+ { 313890, "Tulare County Office of Education" },
+ { 313900, "All Tribal Networks" },
+ { 313910, "San Diego Gas and Electric" },
+ { 313920, "JCI US INC" },
+ { 313930, "Standing Rock Telecom" },
+ { 313940, "Motorola Solutions, Inc" },
+ { 313950, "Cheyenne and Arapaho Development Group" },
+ { 313960, "Townes 5G, LLC" },
+ { 313970, "Tychron Corporation" },
+ { 313990, "Ericsson US" },
{ 314010, "Boingo Wireless Inc" },
{ 314020, "Spectrum Wireless Holdings, LLC" },
{ 314030, "Baicells Technologies North America Inc." },
+ { 314060, "Texas A&M University System – RELLIS Campus" },
+ { 314070, "Texas A&M University System – RELLIS Campus" },
+ { 314080, "Texas A&M University System – RELLIS Campus" },
+ { 314090, "Southern Communications Services, Inc. D/B/A Southern Linc" },
{ 314100, "RESERVED FOR PUBLIC SAFETY" },
{ 314110, "RESERVED FOR PUBLIC SAFETY" },
{ 314120, "RESERVED FOR PUBLIC SAFETY" },
@@ -2912,24 +3140,71 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 314170, "RESERVED FOR PUBLIC SAFETY" },
{ 314180, "RESERVED FOR PUBLIC SAFETY" },
{ 314190, "RESERVED FOR PUBLIC SAFETY" },
+ { 314200, "XF Wireless Investments" },
+ { 314210, "Telecom Resource Center" },
+ { 314220, "Secrus Technologies" },
+ { 314230, "Trace-Tek" },
+ { 314240, "XF Wireless Investments" },
+ { 314260, "AT&T Mobility" },
+ { 314270, "AT&T Mobility" },
+ { 314280, "Pollen Mobile LLC" },
+ { 314290, "Wave" },
+ { 314310, "Terranet" },
+ { 314320, "Agri-Valley Communications, Inc" },
+ { 314330, "Nova Labs Inc." },
+ { 314340, "E-MARCONI LLC" },
+ { 314350, "Evergy" },
+ { 314360, "Oceus Networks, LLC" },
+ { 314370, "Texas A&M University – ITEC" },
+ { 314380, "Circle Computer Resources, Inc." },
+ { 314390, "AT&T" },
+ { 314400, "Cellular South Inc. dba C Spire" },
+ { 314410, "Peeringhub Inc" },
+ { 314420, "Cox Communications, Inc" },
+ { 314430, "Highway9 Networks, Inc." },
+ { 314440, "Tecore Global Services, LLC" },
+ { 314450, "NUWAVE Communications, Inc." },
+ { 314460, "Texas A&M University" },
+ { 314470, "Manhattan Telecommunications Corporation LLC" },
+ { 314480, "Xcel Energy Services Inc." },
+ { 314490, "Utah Education and Telehealth Network (UETN)" },
+ { 314500, "Aetheros Inc" },
+ { 314510, "SI Wireless LLC" },
+ { 314520, "Oklahoma Gas & Electric Company (OG&E)" },
+ { 314530, "Agile Networks" },
+ { 314540, "RGTN USA, Inc." },
{ 316010, "Sprint" },
{ 316011, "Southern Communications Services Inc." },
+ { 316700, "Mile High Networks LLC" },
{ 334001, "COMUNICACIONES DIGITALES DEL NORTE, S.A. DE C.V" },
- { 334010, "NII DIGITAL, S. DE R.L. DE C.V." },
+ { 334010, "AT&T COMUNICACIONES DIGITALES, S. DE R.L. DE C.V." },
{ 334020, "RADIOMOVIL DIPSA, S.A. DE C.V." },
- { 334030, "PEGASO COMUNICACIONES Y SISTEMAS, S.A. DE C.V." },
- { 334040, "IUSACELL PCS DE MEXICO, S.A. DE C.V." },
- { 334050, "COMUNICACIONES CELULARES DE OCCIDENTE, S.A. DE C.V. / SISTEMAS TELEFONICOS PORTATILES CELULARES, S.A. DE C.V. / TELECOMUNICACIONES DEL GOLFO, S.A. DE C.V. / SOS TELECOMUNICACIONES, S.A. DE C.V. / PORTATEL DEL SURESTE, S.A. DE C.V." },
+ { 334030, "PEGASO PCS, S.A. DE C.V." },
+ { 334040, "AT&T NORTE, S. DE R.L. DE C.V. Y AT&T DESARROLLO EN COMUNICACIONES DE MÉXICO, S. DE R.L. DE C.V." },
+ { 334050, "GRUPO AT&T CELULLAR, S. DE R.L. DE C.V." },
{ 334060, "SERVICIOS DE ACCESO INALAMBRICO, S.A DE C.V." },
{ 334066, "TELÉFONOS DE MÉXICO, S.A.B. DE C.V" },
- { 334070, "OPERADORA UNEFON, S. A. DE C.V." },
- { 334080, "OPERADORA UNEFON, S. A. DE C.V." },
- { 334090, "NII DIGITAL, S. DE R.L. DE C.V." },
+ { 334070, "AT&T COMERCIALIZACIÓN MÓVIL, S. DE R.L. DE C.V." },
+ { 334080, "AT&T COMERCIALIZACIÓN MÓVIL, S. DE R.L. DE C.V." },
+ { 334090, "AT&T COMUNICACIONES DIGITALES, S. DE R.L. DE C.V." },
+ { 334100, "TELECOMUNICACIONES DE MÉXICO" },
+ { 334110, "MAXCOM TELECOMUNICACIONES, S.A.B. DE C.V." },
+ { 334120, "QUICKLY PHONE, S.A. DE C.V." },
+ { 334130, "AXTEL, S.A.B. DE C.V." },
+ { 334140, "ALTÁN REDES, S.A.P.I. DE C.V." },
+ { 334150, "ULTRAVISIÓN, S.A. DE C.V." },
+ { 334160, "CABLEVISIÓN RED, S.A. DE C.V." },
+ { 334170, "OXIO MOBILE, S.A. DE C.V." },
+ { 334180, "FREEDOMPOP MÉXICO, S.A. DE C.V." },
+ { 334190, "VIASAT TECNOLOGÍA, S.A. DE C.V." },
{ 338040, "Symbiote Investment Limited" },
{ 338050, "Digicel (Jamaica) Ltd" },
+ { 338080, "Rock Mobile Limited" },
{ 338110, "Cable and Wireless Jamaica Ltd" },
{ 342600, "Cable & Wireless (Barbados) Ltd. trading as Lime" },
- { 342820, "Sunbeach Communications" },
+ { 342646, "KW Telecommunications Inc." },
+ { 342800, "Ozone" },
+ { 342820, "Neptune Communications Inc." },
{ 344030, "APUA PCS" },
{ 344920, "Cable & Wireless (Antigua) trading as Lime" },
{ 344930, "AT&T Wireless (Antigua)" },
@@ -2940,6 +3215,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 348570, "Caribbean Cellular Telephone Ltd." },
{ 348770, "Digicel (BVI) Ltd" },
{ 350000, "Bermuda Digital Communications Ltd (CellOne)" },
+ { 350007, "Paradise Mobile" },
{ 352110, "Cable & Wireless Grenada ltd trading as lime" },
{ 354860, "Cable & Wireless (West Indies) Ltd trading as Lime" },
{ 356110, "Cable & Wireless St Kitts & Nevis Ltd trading as Lime" },
@@ -2961,6 +3237,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 405011, "Reliance Communications Ltd/GSM, Kerala" },
{ 405012, "Reliance Infocomm Ltd, Andhra Pradesh" },
{ 405013, "Reliance Communications Ltd/GSM, Maharashtra" },
+ { 405014, "Reliance Communications Ltd/GSM, Madhya Pradesh" },
{ 405018, "Reliance Communications Ltd/GSM, Punjab" },
{ 405020, "Reliance Communications Ltd/GSM, Tamilnadu" },
{ 405021, "Reliance Communications Ltd/GSM, UP (East)" },
@@ -3003,10 +3280,24 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 405807, "Dishnet Wireless Ltd, Haryana" },
{ 405808, "Dishnet Wireless Ltd, Madhya Pradesh" },
{ 405809, "Dishnet Wireless Ltd, Kerala" },
+ { 441200, "SORACOM, Inc." },
+ { 441201, "Aurens Co.,Ltd." },
+ { 441202, "Sony Wireless Communications Inc." },
+ { 441203, "GujoCity" },
+ { 441204, "Wicom Inc." },
+ { 441205, "KATCH NETWORK INC." },
+ { 441206, "MITSUBISHI ELECTRIC CORPORATION" },
+ { 441207, "Mitsui Knowledge Industry Co., Ltd." },
+ { 441208, "CHUDENKO CORPORATION" },
+ { 441209, "Cable Television TOYAMA Inc." },
+ { 441210, "NIPPON TELEGRAPH AND TELEPHONE EAST CORPORATION" },
+ { 441211, "STARCAT CABLE NETWORK Co., LTD." },
+ { 441212, "I-TEC Solutions Co., Ltd." },
+ { 441213, "Hokkaido Telecommunication Network Co., Inc." },
{ 708001, "Megatel" },
{ 708002, "Celtel" },
{ 708040, "Digicel Honduras" },
- { 714020, "Telefónica Móviles Panamá S.A." },
+ { 714020, "Grupo de Comunicaciones Digitales, S.A. (TIGO)" },
{ 722010, "Compañia de Radiocomunicaciones Moviles S.A." },
{ 722020, "Nextel Argentina srl" },
{ 722070, "Telefónica Comunicaciones Personales S.A." },
@@ -3026,6 +3317,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 732130, "Avantel" },
{ 738002, "Guyana Telephone & Telegraph Company Limited (Cellink)" },
{ 738003, "Quark Communications Inc." },
+ { 738040, "E-Networks Inc." },
{ 750001, "Touch" },
{ 999999, "Internal use, example, testing" },
{ 1666665, "Unset" },
diff --git a/epan/dissectors/packet-e2ap.c b/epan/dissectors/packet-e2ap.c
index 19069a7..e1952ab 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 3cb1a64..8e338ab 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 2611e12..70114dc 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-epl.c b/epan/dissectors/packet-epl.c
index 4dbc515..4dcd419 100644
--- a/epan/dissectors/packet-epl.c
+++ b/epan/dissectors/packet-epl.c
@@ -3870,18 +3870,15 @@ dissect_epl_sdo_command(proto_tree *epl_tree, tvbuff_t *tvb, packet_info *pinfo,
proto_tree_add_item(sdo_cmd_tree, hf_epl_asnd_sdo_cmd_segmentation, tvb, offset, 1, ENC_LITTLE_ENDIAN);
- if (segment_size != 0)
- {
- offset += 1;
- proto_tree_add_item(sdo_cmd_tree, hf_epl_asnd_sdo_cmd_command_id, tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
+ offset += 1;
+ proto_tree_add_item(sdo_cmd_tree, hf_epl_asnd_sdo_cmd_command_id, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ offset += 1;
- item = proto_tree_add_item(sdo_cmd_tree, hf_epl_asnd_sdo_cmd_segment_size, tvb, offset, 2, ENC_LITTLE_ENDIAN);
- offset += 4;
- if ( tvb_reported_length_remaining(tvb, offset) < segment_size )
- expert_add_info_format(pinfo, item, &ei_real_length_differs,
- "Captured length differs, only %d octets will be displayed", tvb_reported_length_remaining(tvb, offset) - 4 );
- }
+ item = proto_tree_add_item(sdo_cmd_tree, hf_epl_asnd_sdo_cmd_segment_size, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset += 4;
+ if ( tvb_reported_length_remaining(tvb, offset) < segment_size )
+ expert_add_info_format(pinfo, item, &ei_real_length_differs,
+ "Captured length differs, only %d octets will be displayed", tvb_reported_length_remaining(tvb, offset) - 4 );
if (segmented == EPL_ASND_SDO_CMD_SEGMENTATION_INITIATE_TRANSFER)
{
diff --git a/epan/dissectors/packet-erldp.c b/epan/dissectors/packet-erldp.c
index dcf5052..b44f333 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 a651fda..8d9b191 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 ca97fa9..dedeb6b 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-fcfzs.c b/epan/dissectors/packet-fcfzs.c
index 4cbf519..82a55f7 100644
--- a/epan/dissectors/packet-fcfzs.c
+++ b/epan/dissectors/packet-fcfzs.c
@@ -116,9 +116,13 @@ dissect_fcfzs_zoneset(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, int o
len = tvb_get_guint8(tvb, offset);
proto_tree_add_item(tree, hf_fcfzs_zonesetnmlen, tvb, offset,
1, ENC_BIG_ENDIAN);
- proto_tree_add_item(tree, hf_fcfzs_zonesetname, tvb, offset+4,
+ offset += 4;
+ proto_tree_add_item(tree, hf_fcfzs_zonesetname, tvb, offset,
len, ENC_ASCII);
- offset += 4 + len + (4-(len % 4));
+ offset += len;
+ /* Fill Bytes */
+ if (len % 4)
+ offset += 4 - (len % 4);
/* Number of zones */
@@ -131,9 +135,13 @@ dissect_fcfzs_zoneset(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, int o
len = tvb_get_guint8(tvb, offset);
proto_tree_add_item(tree, hf_fcfzs_zonenmlen, tvb, offset,
1, ENC_BIG_ENDIAN);
- proto_tree_add_item(tree, hf_fcfzs_zonename, tvb, offset+4,
+ offset += 4;
+ proto_tree_add_item(tree, hf_fcfzs_zonename, tvb, offset,
len, ENC_ASCII);
- offset += 4 + len + (4-(len % 4));
+ offset += len;
+ /* Fill Bytes */
+ if (len % 4)
+ offset += 4 - (len % 4);
nummbrs = tvb_get_ntohl(tvb, offset);
proto_tree_add_item(tree, hf_fcfzs_nummbrentries, tvb, offset,
diff --git a/epan/dissectors/packet-fcswils.c b/epan/dissectors/packet-fcswils.c
index e9fb3e7..904c5aa 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 3405957..77d7e28 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 fd5c72e..9e1c732 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 32e6ec9..d374395 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 2eb4561..b11f8a4 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 36053c0..c6aea31 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;
@@ -1434,6 +1435,7 @@ dissect_gquic_tag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *gquic_tree, gui
proto_tree_add_item(tag_tree, hf_gquic_tag_value, tvb, tag_offset_start + tag_offset, tag_len, ENC_NA);
+ increment_dissection_depth(pinfo);
switch(tag){
case TAG_PAD:
proto_tree_add_item(tag_tree, hf_gquic_tag_pad, tvb, tag_offset_start + tag_offset, tag_len, ENC_NA);
@@ -1712,6 +1714,8 @@ dissect_gquic_tag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *gquic_tree, gui
tag_offset += tag_len;
break;
}
+ decrement_dissection_depth(pinfo);
+
if(tag_offset != offset_end){
/* Wrong Tag len... */
proto_tree_add_expert(tag_tree, pinfo, &ei_gquic_tag_unknown, tvb, tag_offset_start + tag_offset, tag_len);
diff --git a/epan/dissectors/packet-grpc.c b/epan/dissectors/packet-grpc.c
index a459fde..b71a272 100644
--- a/epan/dissectors/packet-grpc.c
+++ b/epan/dissectors/packet-grpc.c
@@ -136,11 +136,14 @@ static int ett_grpc_message = -1;
static int ett_grpc_encoded_entity = -1;
static dissector_handle_t grpc_handle;
+static dissector_handle_t grpc_web_handle;
+static dissector_handle_t grpc_web_text_handle;
static dissector_handle_t data_text_lines_handle;
/* the information used during dissecting a grpc message */
typedef struct {
gboolean is_request; /* is request or response message */
+ grpc_protocol_type_t proto_type;
const gchar* path; /* is http2 ":path" or http request_uri, format: "/" Service-Name "/" {method name} */
const gchar* content_type; /* is http2 or http content-type, like: application/grpc */
const gchar* encoding; /* is grpc-encoding header containing compressed method, for example "gzip" */
@@ -158,18 +161,6 @@ typedef struct {
*/
static dissector_table_t grpc_message_type_subdissector_table;
-static grpc_protocol_type_t
-get_grpc_protocol_type(const gchar* content_type) {
- if (content_type != NULL) {
- if (g_str_has_prefix(content_type, "application/grpc-web-text")) {
- return GRPC_PTYPE_GRPC_WEB_TEXT;
- } else if (g_str_has_prefix(content_type, "application/grpc-web")) {
- return GRPC_PTYPE_GRPC_WEB;
- }
- }
- return GRPC_PTYPE_GRPC;
-}
-
/* Try to dissect grpc message according to grpc message info or http2 content_type. */
static void
dissect_body_data(proto_tree *grpc_tree, packet_info *pinfo, tvbuff_t *tvb, const gint offset,
@@ -335,13 +326,11 @@ dissect_grpc_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, grpc_co
guint32 message_length;
guint offset = 0;
guint tvb_len = tvb_reported_length(tvb);
- grpc_protocol_type_t proto_type;
const gchar* proto_name;
- DISSECTOR_ASSERT_HINT(grpc_ctx && grpc_ctx->content_type && grpc_ctx->path, "The content_type and path of grpc context must be set.");
+ DISSECTOR_ASSERT(grpc_ctx != NULL);
- proto_type = get_grpc_protocol_type(grpc_ctx->content_type);
- proto_name = val_to_str_const(proto_type, grpc_protocol_type_vals, "GRPC");
+ proto_name = val_to_str_const(grpc_ctx->proto_type, grpc_protocol_type_vals, "GRPC");
if (!grpc_embedded_under_http2 && proto_tree_get_parent_tree(tree)) {
tree = proto_tree_get_parent_tree(tree);
@@ -395,41 +384,31 @@ dissect_grpc_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, grpc_co
return tvb_captured_length(tvb);
}
-static int
-dissect_grpc(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data)
+static grpc_context_info_t*
+get_grpc_context(packet_info *pinfo, const media_content_info_t *content_info)
{
- int ret;
http_req_res_t* curr_req_res;
- tvbuff_t* real_data_tvb;
- grpc_context_info_t grpc_ctx = { 0 };
- media_content_info_t* content_info = (media_content_info_t*)data;
- gboolean is_grpc_web_text = g_str_has_prefix(pinfo->match_string, "application/grpc-web-text");
-
- if (is_grpc_web_text) {
- real_data_tvb = base64_tvb_to_new_tvb(tvb, 0, tvb_reported_length(tvb));
- add_new_data_source(pinfo, real_data_tvb, "Decoded base64 body");
- } else {
- real_data_tvb = tvb;
- }
+ grpc_context_info_t* grpc_ctx = wmem_new0(pinfo->pool, grpc_context_info_t);
if (proto_is_frame_protocol(pinfo->layers, "http2")) {
- grpc_ctx.path = http2_get_header_value(pinfo, HTTP2_HEADER_PATH, FALSE);
- grpc_ctx.is_request = (grpc_ctx.path != NULL);
- if (grpc_ctx.path == NULL) {
+ grpc_ctx->path = http2_get_header_value(pinfo, HTTP2_HEADER_PATH, FALSE);
+ grpc_ctx->is_request = (grpc_ctx->path != NULL);
+ if (grpc_ctx->path == NULL) {
/* this must be response, so we get it from http2 request stream */
- grpc_ctx.path = http2_get_header_value(pinfo, HTTP2_HEADER_PATH, TRUE);
+ /* XXX - Not necessarily true if the data has errors. */
+ grpc_ctx->path = http2_get_header_value(pinfo, HTTP2_HEADER_PATH, TRUE);
}
- grpc_ctx.content_type = http2_get_header_value(pinfo, HTTP2_HEADER_CONTENT_TYPE, FALSE);
- grpc_ctx.encoding = http2_get_header_value(pinfo, HTTP2_HEADER_GRPC_ENCODING, FALSE);
+ grpc_ctx->content_type = http2_get_header_value(pinfo, HTTP2_HEADER_CONTENT_TYPE, FALSE);
+ grpc_ctx->encoding = http2_get_header_value(pinfo, HTTP2_HEADER_GRPC_ENCODING, FALSE);
}
else if (proto_is_frame_protocol(pinfo->layers, "http")) {
curr_req_res = (http_req_res_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_http, 0);
DISSECTOR_ASSERT_HINT(curr_req_res && content_info, "Unexpected error: HTTP request/reply or HTTP message info not available.");
- grpc_ctx.is_request = (content_info->type == MEDIA_CONTAINER_HTTP_REQUEST);
- grpc_ctx.path = curr_req_res->request_uri;
- grpc_ctx.content_type = pinfo->match_string; /* only for grpc-web(-text) over http1.1 */
+ grpc_ctx->is_request = (content_info->type == MEDIA_CONTAINER_HTTP_REQUEST);
+ grpc_ctx->path = curr_req_res->request_uri;
+ grpc_ctx->content_type = pinfo->match_string; /* only for grpc-web(-text) over http1.1 */
if (content_info->data) {
- grpc_ctx.encoding = (const gchar*)wmem_map_lookup((wmem_map_t *)content_info->data, HTTP2_HEADER_GRPC_ENCODING);
+ grpc_ctx->encoding = (const gchar*)wmem_map_lookup((wmem_map_t *)content_info->data, HTTP2_HEADER_GRPC_ENCODING);
}
}
else {
@@ -437,13 +416,52 @@ dissect_grpc(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data)
DISSECTOR_ASSERT_NOT_REACHED();
}
- ret = dissect_grpc_common(real_data_tvb, pinfo, tree, &grpc_ctx);
+ return grpc_ctx;
+}
- if (is_grpc_web_text) {
- /* convert reassembly the lengths of offset and remaining bytes back to the base64 lengths */
- pinfo->desegment_offset = BASE64_ENCODE_SIZE(pinfo->desegment_offset);
- pinfo->desegment_len = BASE64_ENCODE_SIZE(pinfo->desegment_len);
- }
+static int
+dissect_grpc(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data)
+{
+ grpc_context_info_t* grpc_ctx;
+ media_content_info_t* content_info = (media_content_info_t*)data;
+
+ grpc_ctx = get_grpc_context(pinfo, content_info);
+ grpc_ctx->proto_type = GRPC_PTYPE_GRPC;
+
+ return dissect_grpc_common(tvb, pinfo, tree, grpc_ctx);
+}
+
+static int
+dissect_grpc_web(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data)
+{
+ grpc_context_info_t* grpc_ctx;
+ media_content_info_t* content_info = (media_content_info_t*)data;
+
+ grpc_ctx = get_grpc_context(pinfo, content_info);
+ grpc_ctx->proto_type = GRPC_PTYPE_GRPC_WEB;
+
+ return dissect_grpc_common(tvb, pinfo, tree, grpc_ctx);
+}
+
+static int
+dissect_grpc_web_text(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data)
+{
+ int ret;
+ tvbuff_t* real_data_tvb;
+ grpc_context_info_t* grpc_ctx;
+ media_content_info_t* content_info = (media_content_info_t*)data;
+
+ real_data_tvb = base64_tvb_to_new_tvb(tvb, 0, tvb_reported_length(tvb));
+ add_new_data_source(pinfo, real_data_tvb, "Decoded base64 body");
+
+ grpc_ctx = get_grpc_context(pinfo, content_info);
+ grpc_ctx->proto_type = GRPC_PTYPE_GRPC_WEB_TEXT;
+
+ ret = dissect_grpc_common(real_data_tvb, pinfo, tree, grpc_ctx);
+
+ /* convert reassembly the lengths of offset and remaining bytes back to the base64 lengths */
+ pinfo->desegment_offset = BASE64_ENCODE_SIZE(pinfo->desegment_offset);
+ pinfo->desegment_len = BASE64_ENCODE_SIZE(pinfo->desegment_len);
return ret;
}
@@ -525,7 +543,9 @@ proto_register_grpc(void)
expert_grpc = expert_register_protocol(proto_grpc);
expert_register_field_array(expert_grpc, ei, array_length(ei));
- grpc_handle = register_dissector("grpc", dissect_grpc, proto_grpc);
+ grpc_handle = register_dissector_with_description("grpc", "gRPC", dissect_grpc, proto_grpc);
+ grpc_web_handle = register_dissector_with_description("grpc_web", "gRPC Web", dissect_grpc_web, proto_grpc);
+ grpc_web_text_handle = register_dissector_with_description("grpc_web_text", "gRPC Web Text", dissect_grpc_web_text, proto_grpc);
/*
* Dissectors can register themselves in this table as grpc message
@@ -539,17 +559,26 @@ proto_register_grpc(void)
void
proto_reg_handoff_grpc(void)
{
+ int i;
+
char *content_types[] = {
"application/grpc",
"application/grpc+proto",
"application/grpc+json",
+ NULL /* end flag */
+ };
+
+ char *content_types_web[] = {
"application/grpc-web",
"application/grpc-web+proto",
+ NULL /* end flag */
+ };
+
+ char *content_types_web_text[] = {
"application/grpc-web-text",
"application/grpc-web-text+proto",
NULL /* end flag */
};
- int i;
/* register native grpc handler */
for (i = 0; content_types[i]; i++) {
@@ -557,6 +586,18 @@ proto_reg_handoff_grpc(void)
dissector_add_string("media_type", content_types[i], grpc_handle);
}
+ /* register gRPC Web handler */
+ for (i = 0; content_types_web[i]; i++) {
+ dissector_add_string("streaming_content_type", content_types_web[i], grpc_web_handle);
+ dissector_add_string("media_type", content_types_web[i], grpc_web_handle);
+ }
+
+ /* register gRPC Web Text handler */
+ for (i = 0; content_types_web_text[i]; i++) {
+ dissector_add_string("streaming_content_type", content_types_web_text[i], grpc_web_text_handle);
+ dissector_add_string("media_type", content_types_web_text[i], grpc_web_text_handle);
+ }
+
proto_http = proto_get_id_by_filter_name("http");
data_text_lines_handle = find_dissector_add_dependency("data-text-lines", proto_grpc);
}
diff --git a/epan/dissectors/packet-gsm_a_rp.c b/epan/dissectors/packet-gsm_a_rp.c
index 66c02b2..f20e8a7 100644
--- a/epan/dissectors/packet-gsm_a_rp.c
+++ b/epan/dissectors/packet-gsm_a_rp.c
@@ -26,6 +26,7 @@
#include <wsutil/wsjson.h>
#include "packet-gsm_a_common.h"
+#include "packet-media-type.h"
void proto_register_gsm_a_rp(void);
void proto_reg_handoff_gsm_a_rp(void);
@@ -488,7 +489,7 @@ dissect_rp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
}
static int
-dissect_nf_media_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+dissect_nf_media_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, media_content_info_t *content_info)
{
tvbuff_t* json_tvb;
int ret;
@@ -496,6 +497,8 @@ dissect_nf_media_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
char *json_data;
const char *content_id;
+ if (!gsm_a_dtap_handle || !content_info || content_info->type > MEDIA_CONTAINER_HTTP_OTHERS || !content_info->content_id)
+ return 0;
json_tvb = (tvbuff_t*)p_get_proto_data(pinfo->pool, pinfo, proto_json, 0);
if (!json_tvb)
return 0;
@@ -510,18 +513,19 @@ dissect_nf_media_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (!cur_tok)
return 0;
content_id = json_get_string(json_data, cur_tok, "contentId");
- if (content_id && !strcmp(content_id, "sms") && gsm_a_dtap_handle)
+ if (content_id && !strcmp(content_id, content_info->content_id))
return call_dissector_only(gsm_a_dtap_handle, tvb, pinfo, tree, NULL);
return 0;
}
static int
-dissect_rp_media_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+dissect_rp_media_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
int ret;
+ media_content_info_t *content_info = (media_content_info_t *)data;
- ret = dissect_nf_media_type(tvb, pinfo, tree);
+ ret = dissect_nf_media_type(tvb, pinfo, tree, content_info);
if (!ret)
ret = dissect_rp(tvb, pinfo, tree, NULL);
return ret;
diff --git a/epan/dissectors/packet-gsm_abis_oml.c b/epan/dissectors/packet-gsm_abis_oml.c
index 4329475..0b66787 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 6e36e00..fe20fde 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 8786170..1302d80 100644
--- a/epan/dissectors/packet-gtp.c
+++ b/epan/dissectors/packet-gtp.c
@@ -2408,12 +2408,15 @@ static const value_string gtp_ext_hdr_pdu_ses_cont_pdu_type_vals[] = {
#define MM_PROTO_SESSION_MGMT 0x0A
#define MM_PROTO_NON_CALL_RELATED 0x0B
-static wmem_map_t *gtpstat_msg_idx_hash = NULL;
+static GHashTable *gtpstat_msg_idx_hash = NULL;
static void
gtpstat_init(struct register_srt* srt _U_, GArray* srt_array)
{
- gtpstat_msg_idx_hash = wmem_map_new(wmem_file_scope(), g_direct_hash, g_direct_equal);
+ if (gtpstat_msg_idx_hash != NULL) {
+ g_hash_table_destroy(gtpstat_msg_idx_hash);
+ }
+ gtpstat_msg_idx_hash = g_hash_table_new(g_direct_hash, g_direct_equal);
init_srt_table("GTP Requests", NULL, srt_array, 0, NULL, NULL, NULL);
}
@@ -2443,13 +2446,13 @@ gtpstat_packet(void *pss, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
gtp_srt_table = g_array_index(data->srt_array, srt_stat_table*, i);
- idx = GPOINTER_TO_UINT(wmem_map_lookup(gtpstat_msg_idx_hash, GUINT_TO_POINTER(gtp->msgtype)));
+ idx = GPOINTER_TO_UINT(g_hash_table_lookup(gtpstat_msg_idx_hash, GUINT_TO_POINTER(gtp->msgtype)));
/* Store the value incremented by 1 to avoid confusing index 0 with NULL */
if (idx == 0) {
- idx = wmem_map_size(gtpstat_msg_idx_hash);
- wmem_map_insert(gtpstat_msg_idx_hash, GUINT_TO_POINTER(gtp->msgtype), GUINT_TO_POINTER(idx + 1));
- init_srt_table_row(gtp_srt_table, idx, val_to_str_ext(gtp->msgtype, &gtp_message_type_ext, "Unknown (%d)"));
+ idx = g_hash_table_size(gtpstat_msg_idx_hash);
+ g_hash_table_insert(gtpstat_msg_idx_hash, GUINT_TO_POINTER(gtp->msgtype), GUINT_TO_POINTER(idx + 1));
+ init_srt_table_row(gtp_srt_table, idx, val_to_str_ext_const(gtp->msgtype, &gtp_message_type_ext, "Unknown"));
} else {
idx -= 1;
}
@@ -2987,7 +2990,7 @@ typedef struct {
/* ---------------------
* GPRS messages
* ---------------------*/
-static _gtp_mess_items gprs_mess_items[] = {
+static const _gtp_mess_items gprs_mess_items[] = {
{
GTP_MSG_ECHO_REQ, {
@@ -3319,7 +3322,7 @@ static _gtp_mess_items gprs_mess_items[] = {
/* -----------------------------
* UMTS messages
* -----------------------------*/
-static _gtp_mess_items umts_mess_items[] = {
+static const _gtp_mess_items umts_mess_items[] = {
/* 7.2 Path Management Messages */
{
GTP_MSG_ECHO_REQ, {
@@ -4391,7 +4394,7 @@ check_field_presence_and_decoder(guint8 message, guint8 field, int *position, ie
{
guint i = 0;
- _gtp_mess_items *mess_items;
+ const _gtp_mess_items *mess_items;
switch (gtp_version) {
case 0:
diff --git a/epan/dissectors/packet-gtpv2.c b/epan/dissectors/packet-gtpv2.c
index dc4a820..4953729 100644
--- a/epan/dissectors/packet-gtpv2.c
+++ b/epan/dissectors/packet-gtpv2.c
@@ -1561,12 +1561,15 @@ gtpv2_sn_equal_unmatched(gconstpointer k1, gconstpointer k2)
return key1->seq_nr == key2->seq_nr;
}
-static wmem_map_t *gtpv2_stat_msg_idx_hash = NULL;
+static GHashTable *gtpv2_stat_msg_idx_hash = NULL;
static void
gtpv2_stat_init(struct register_srt* srt _U_, GArray*srt_array)
{
- gtpv2_stat_msg_idx_hash = wmem_map_new(wmem_file_scope(), g_direct_hash, g_direct_equal);
+ if (gtpv2_stat_msg_idx_hash != NULL) {
+ g_hash_table_destroy(gtpv2_stat_msg_idx_hash);
+ }
+ gtpv2_stat_msg_idx_hash = g_hash_table_new(g_direct_hash, g_direct_equal);
init_srt_table("GTPv2 Requests", NULL, srt_array, 0, NULL, NULL, NULL);
}
@@ -1596,13 +1599,13 @@ gtpv2_stat_packet(void *pss, packet_info *pinfo, epan_dissect_t *edt _U_, const
* (requests and responses have different message types, and we
* only use the request value.)
*/
- idx = GPOINTER_TO_UINT(wmem_map_lookup(gtpv2_stat_msg_idx_hash, GUINT_TO_POINTER(gcrp->msgtype)));
+ idx = GPOINTER_TO_UINT(g_hash_table_lookup(gtpv2_stat_msg_idx_hash, GUINT_TO_POINTER(gcrp->msgtype)));
/* Store the row value incremented by 1 to distinguish 0 from NULL */
if (idx == 0) {
- idx = wmem_map_size(gtpv2_stat_msg_idx_hash);
- wmem_map_insert(gtpv2_stat_msg_idx_hash, GUINT_TO_POINTER(gcrp->msgtype), GUINT_TO_POINTER(idx + 1));
- init_srt_table_row(gtpv2_srt_table, idx, val_to_str_ext(gcrp->msgtype, &gtpv2_message_type_vals_ext, "Unknown (%d)"));
+ idx = g_hash_table_size(gtpv2_stat_msg_idx_hash);
+ g_hash_table_insert(gtpv2_stat_msg_idx_hash, GUINT_TO_POINTER(gcrp->msgtype), GUINT_TO_POINTER(idx + 1));
+ init_srt_table_row(gtpv2_srt_table, idx, val_to_str_ext_const(gcrp->msgtype, &gtpv2_message_type_vals_ext, "Unknown"));
} else {
idx -= 1;
}
@@ -8956,6 +8959,7 @@ dissect_gtpv2_ie_common(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree,
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_gtpv2(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* data _U_)
{
proto_tree *gtpv2_tree;
@@ -9137,7 +9141,9 @@ dissect_gtpv2(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* data
new_p_tvb = tvb_new_subset_remaining(tvb, msg_length + 4);
col_append_str(pinfo->cinfo, COL_INFO, " / ");
col_set_fence(pinfo->cinfo, COL_INFO);
+ increment_dissection_depth(pinfo);
dissect_gtpv2(new_p_tvb, pinfo, tree, NULL);
+ decrement_dissection_depth(pinfo);
}
return tvb_captured_length(tvb);
diff --git a/epan/dissectors/packet-h223.c b/epan/dissectors/packet-h223.c
index f6b451d..f0f99e7 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 5bd5f1f..1d348ad 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 5fb832f..92b9fa5 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 ca5f419..d1799fe 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 9d9a125..8ca3f5e 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 eb71ca5..cd0a048 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 361012a..b30c393 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 7d9cac0..fa51d44 100644
--- a/epan/dissectors/packet-http2.c
+++ b/epan/dissectors/packet-http2.c
@@ -38,6 +38,7 @@
#ifdef HAVE_NGHTTP2
#include <epan/uat.h>
+#include <epan/charsets.h>
#include <epan/decode_as.h>
#include <nghttp2/nghttp2.h>
#include <epan/export_object.h>
@@ -1187,6 +1188,7 @@ http2_cleanup_protocol(void) {
}
static dissector_handle_t http2_handle;
+static dissector_handle_t data_handle;
static reassembly_table http2_body_reassembly_table;
static reassembly_table http2_streaming_reassembly_table;
@@ -2947,6 +2949,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 +3047,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
@@ -3085,6 +3159,21 @@ reassemble_http2_data_according_to_subdissector(tvbuff_t* tvb, packet_info* pinf
streaming_reassembly_info_t* reassembly_info = get_streaming_reassembly_info(pinfo, http2_session);
dissector_handle_t subdissector_handle = dissector_get_string_handle(streaming_content_type_dissector_table, content_type);
+ if (subdissector_handle == NULL) {
+ /* We didn't get the content type, possibly because of byte errors.
+ * Note that the content type is per direction (as it should be)
+ * but reassembly_mode is set the same for *both* directions.
+ *
+ * We could try to set it to the content type used in the other
+ * direction, but among other things, if this is the request,
+ * we might be getting here for the first time on the second pass,
+ * and reassemble_streaming_data_and_call_subdissector() asserts in
+ *
+ * Just set it to data for now to avoid an assert from a NULL handle.
+ */
+ subdissector_handle = data_handle;
+ }
+ /* XXX - Do we still need to set this? */
pinfo->match_string = content_type;
reassemble_streaming_data_and_call_subdissector(
@@ -3166,7 +3255,7 @@ get_real_header_value(packet_info* pinfo, const gchar* name, gboolean the_other_
value_len = pntoh32(data + 4 + name_len);
if (4 + name_len + 4 + value_len == hdr->table.data.datalen) {
/* return value */
- return wmem_strndup(pinfo->pool, data + 4 + name_len + 4, value_len);
+ return get_ascii_string(pinfo->pool, data + 4 + name_len + 4, value_len);
}
else {
return NULL; /* unexpected error */
@@ -4795,6 +4884,8 @@ proto_reg_handoff_http2(void)
media_type_dissector_table = find_dissector_table("media_type");
#endif
+ data_handle = find_dissector("data");
+
dissector_add_uint_range_with_preference("tcp.port", "", http2_handle);
dissector_add_for_decode_as("tcp.port", http2_handle);
diff --git a/epan/dissectors/packet-http2.h b/epan/dissectors/packet-http2.h
index f3b961d..e7d188b 100644
--- a/epan/dissectors/packet-http2.h
+++ b/epan/dissectors/packet-http2.h
@@ -41,6 +41,14 @@ int dissect_http2_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
* @param the_other_direction FALSE means from current direction stream, TRUE from the other.
* @return NULL if header was not found. Or header value. Note: the value is allocated
* by pinfo->pool.
+ * @note The returned field value is decoded from US-ASCII and characters outside
+ * that range, i.e. obs-text, are replaced with UTF-8 REPLACEMENT CHARACTERS.
+ * Dissectors may need to perform additional decoding (e.g., percent decoding or
+ * the more robust decoding per RFC 8187.)
+ * @warning Don't call this if HTTP but not HTTP/2 is present in the packet
+ * (e.g. test with proto_is_frame_protocol() first). This ultimately calls
+ * get_http2_session, creating a HTTP/2 session on the current conversation,
+ * which can confuse the HTTP dissector. (This should be fixed.)
*/
const gchar* http2_get_header_value(packet_info *pinfo, const gchar* name, gboolean the_other_direction);
diff --git a/epan/dissectors/packet-icmpv6.c b/epan/dissectors/packet-icmpv6.c
index 1b0d5a2..4a085f5 100644
--- a/epan/dissectors/packet-icmpv6.c
+++ b/epan/dissectors/packet-icmpv6.c
@@ -1349,20 +1349,22 @@ static const value_string mpl_seed_id_lengths[] = {
};
static const guint8 mpl_seed_id_code_to_length[] = { 0, 2, 8, 16 }; /* bytes */
+#define LIFETIME_INFINITY 0xFFFFFFFF
+
static const value_string unique_infinity[] = {
- { 0xffffffff, "Infinity" },
+ { LIFETIME_INFINITY, "Infinity" },
{ 0, NULL}
};
static const value_string dnssl_infinity[] = {
{ 0, "DNSSL domain name MUST no longer be used" },
- { 0xffffffff, "Infinity" },
+ { LIFETIME_INFINITY, "Infinity" },
{ 0, NULL}
};
static const value_string rdnss_infinity[] = {
{ 0, "RDNSS address MUST no longer be used" },
- { 0xffffffff, "Infinity" },
+ { LIFETIME_INFINITY, "Infinity" },
{ 0, NULL}
};
@@ -1682,8 +1684,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;
@@ -1819,12 +1822,16 @@ dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
/* Prefix Valid Lifetime */
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_opt_prefix_valid_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
- proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
+ }
opt_offset += 4;
/* Prefix Preferred Lifetime */
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_opt_prefix_preferred_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
- proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
+ }
opt_offset += 4;
proto_tree_add_item(icmp6opt_tree, hf_icmpv6_opt_reserved, tvb, opt_offset, 4, ENC_NA);
@@ -2227,7 +2234,9 @@ dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
/* Route Lifetime */
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_opt_route_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
- proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
+ }
opt_offset += 4;
/* Prefix */
@@ -2266,7 +2275,9 @@ dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
/* RDNSS Lifetime */
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_opt_rdnss_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
- proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
+ }
opt_offset += 4;
while(opt_offset < (offset + opt_len) ) {
@@ -2414,7 +2425,9 @@ dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
/* DNSSL Lifetime */
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_opt_dnssl_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
- proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
+ }
opt_offset += 4;
while(opt_offset < (offset + opt_len) ) {
@@ -2902,6 +2915,8 @@ dissect_icmpv6_rpl_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
guint8 prefix_len;
ws_in6_addr prefix;
address prefix_addr;
+ uint32_t lifetime;
+
static int * const rpl_flags[] = {
&hf_icmpv6_rpl_opt_route_pref,
&hf_icmpv6_rpl_opt_route_reserved,
@@ -2919,7 +2934,10 @@ dissect_icmpv6_rpl_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
opt_offset +=1;
/* Prefix lifetime. */
- proto_tree_add_item(icmp6opt_tree, hf_icmpv6_rpl_opt_route_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN);
+ ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_rpl_opt_route_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
+ }
opt_offset += 4;
switch(opt_len){
@@ -3127,12 +3145,16 @@ dissect_icmpv6_rpl_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
/* Valid Lifetime */
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_rpl_opt_prefix_vlifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
- proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
+ }
opt_offset += 4;
/* Preferred Lifetime */
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_rpl_opt_prefix_plifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
- proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
+ }
opt_offset += 4;
/* 4 reserved bytes. */
@@ -3851,12 +3873,16 @@ dissect_rrenum(tvbuff_t *tvb, int rr_offset, packet_info *pinfo _U_, proto_tree
/* Valid Lifetime */
ti = proto_tree_add_item_ret_uint(up_tree, hf_icmpv6_rr_pco_up_validlifetime, tvb, rr_offset, 4, ENC_BIG_ENDIAN, &lifetime);
- proto_item_append_text(ti, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
+ }
rr_offset += 4;
/* Preferred Lifetime */
ti = proto_tree_add_item_ret_uint(up_tree, hf_icmpv6_rr_pco_up_preferredlifetime, tvb, rr_offset, 4, ENC_BIG_ENDIAN, &lifetime);
- proto_item_append_text(ti, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
+ }
rr_offset += 4;
/* Flags */
diff --git a/epan/dissectors/packet-icq.c b/epan/dissectors/packet-icq.c
index 93e55bd..2df62ee 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 9675333..2c06c97 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 e7a9b5f..277de8f 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-ieee1905.c b/epan/dissectors/packet-ieee1905.c
index e26da6f..2c98c4d 100644
--- a/epan/dissectors/packet-ieee1905.c
+++ b/epan/dissectors/packet-ieee1905.c
@@ -3280,26 +3280,26 @@ static const value_string max_he_mcs_8_ss_vals[] = {
};
static int * const rx_he_mcs_map_headers[] = {
- &hf_ieee1905_ap_he_rx_mcs_map_1ss,
- &hf_ieee1905_ap_he_rx_mcs_map_2ss,
- &hf_ieee1905_ap_he_rx_mcs_map_3ss,
- &hf_ieee1905_ap_he_rx_mcs_map_4ss,
- &hf_ieee1905_ap_he_rx_mcs_map_5ss,
- &hf_ieee1905_ap_he_rx_mcs_map_6ss,
- &hf_ieee1905_ap_he_rx_mcs_map_7ss,
&hf_ieee1905_ap_he_rx_mcs_map_8ss,
+ &hf_ieee1905_ap_he_rx_mcs_map_7ss,
+ &hf_ieee1905_ap_he_rx_mcs_map_6ss,
+ &hf_ieee1905_ap_he_rx_mcs_map_5ss,
+ &hf_ieee1905_ap_he_rx_mcs_map_4ss,
+ &hf_ieee1905_ap_he_rx_mcs_map_3ss,
+ &hf_ieee1905_ap_he_rx_mcs_map_2ss,
+ &hf_ieee1905_ap_he_rx_mcs_map_1ss,
NULL
};
static int * const tx_he_mcs_map_headers[] = {
- &hf_ieee1905_ap_he_tx_mcs_map_1ss,
- &hf_ieee1905_ap_he_tx_mcs_map_2ss,
- &hf_ieee1905_ap_he_tx_mcs_map_3ss,
- &hf_ieee1905_ap_he_tx_mcs_map_4ss,
- &hf_ieee1905_ap_he_tx_mcs_map_5ss,
- &hf_ieee1905_ap_he_tx_mcs_map_6ss,
- &hf_ieee1905_ap_he_tx_mcs_map_7ss,
&hf_ieee1905_ap_he_tx_mcs_map_8ss,
+ &hf_ieee1905_ap_he_tx_mcs_map_7ss,
+ &hf_ieee1905_ap_he_tx_mcs_map_6ss,
+ &hf_ieee1905_ap_he_tx_mcs_map_5ss,
+ &hf_ieee1905_ap_he_tx_mcs_map_4ss,
+ &hf_ieee1905_ap_he_tx_mcs_map_3ss,
+ &hf_ieee1905_ap_he_tx_mcs_map_2ss,
+ &hf_ieee1905_ap_he_tx_mcs_map_1ss,
NULL
};
@@ -9589,49 +9589,49 @@ proto_register_ieee1905(void)
{ "Max Tx HE-MCS for 1 SS",
"ieee1905.ap_he_capability.max_tx_he_mcs_1_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_1_ss_vals),
- 0xC000, NULL, HFILL }},
+ 0x0003, NULL, HFILL }},
{ &hf_ieee1905_ap_he_tx_mcs_map_2ss,
{ "Max Tx HE-MCS for 2 SS",
"ieee1905.ap_he_capability.max_tx_he_mcs_2_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_2_ss_vals),
- 0x3000, NULL, HFILL }},
+ 0x000C, NULL, HFILL }},
{ &hf_ieee1905_ap_he_tx_mcs_map_3ss,
{ "Max Tx HE-MCS for 3 SS",
"ieee1905.ap_he_capability.max_tx_he_mcs_3_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_3_ss_vals),
- 0x0C00, NULL, HFILL }},
+ 0x0030, NULL, HFILL }},
{ &hf_ieee1905_ap_he_tx_mcs_map_4ss,
{ "Max Tx HE-MCS for 4 SS",
"ieee1905.ap_he_capability.max_tx_he_mcs_4_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_4_ss_vals),
- 0x0300, NULL, HFILL }},
+ 0x00C0, NULL, HFILL }},
{ &hf_ieee1905_ap_he_tx_mcs_map_5ss,
{ "Max Tx HE-MCS for 5 SS",
"ieee1905.ap_he_capability.max_tx_he_mcs_5_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_5_ss_vals),
- 0x00C0, NULL, HFILL }},
+ 0x0300, NULL, HFILL }},
{ &hf_ieee1905_ap_he_tx_mcs_map_6ss,
{ "Max Tx HE-MCS for 6 SS",
"ieee1905.ap_he_capability.max_tx_he_mcs_6_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_6_ss_vals),
- 0x0030, NULL, HFILL }},
+ 0x0C00, NULL, HFILL }},
{ &hf_ieee1905_ap_he_tx_mcs_map_7ss,
{ "Max Tx HE-MCS for 7 SS",
"ieee1905.ap_he_capability.max_tx_he_mcs_7_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_7_ss_vals),
- 0x000C, NULL, HFILL }},
+ 0x3000, NULL, HFILL }},
{ &hf_ieee1905_ap_he_tx_mcs_map_8ss,
{ "Max Tx HE-MCS for 8 SS",
"ieee1905.ap_he_capability.max_tx_he_mcs_8_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_8_ss_vals),
- 0x0003, NULL, HFILL }},
+ 0xC000, NULL, HFILL }},
{ &hf_ieee1905_ap_he_cap_rx_mcs_le_80_mhz,
{ "Supported Rx HE-MCS <= 80 MHz",
@@ -9642,49 +9642,49 @@ proto_register_ieee1905(void)
{ "Max Rx HE-MCS for 1 SS",
"ieee1905.ap_he_capability.max_rx_he_mcs_1_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_1_ss_vals),
- 0xC000, NULL, HFILL }},
+ 0x0003, NULL, HFILL }},
{ &hf_ieee1905_ap_he_rx_mcs_map_2ss,
{ "Max Rx HE-MCS for 2 SS",
"ieee1905.ap_he_capability.max_rx_he_mcs_2_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_2_ss_vals),
- 0x3000, NULL, HFILL }},
+ 0x000C, NULL, HFILL }},
{ &hf_ieee1905_ap_he_rx_mcs_map_3ss,
{ "Max Rx HE-MCS for 3 SS",
"ieee1905.ap_he_capability.max_rx_he_mcs_3_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_3_ss_vals),
- 0x0C00, NULL, HFILL }},
+ 0x0030, NULL, HFILL }},
{ &hf_ieee1905_ap_he_rx_mcs_map_4ss,
{ "Max Rx HE-MCS for 4 SS",
"ieee1905.ap_he_capability.max_rx_he_mcs_4_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_4_ss_vals),
- 0x0300, NULL, HFILL }},
+ 0x00C0, NULL, HFILL }},
{ &hf_ieee1905_ap_he_rx_mcs_map_5ss,
{ "Max Rx HE-MCS for 5 SS",
"ieee1905.ap_he_capability.max_rx_he_mcs_5_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_5_ss_vals),
- 0x00C0, NULL, HFILL }},
+ 0x0300, NULL, HFILL }},
{ &hf_ieee1905_ap_he_rx_mcs_map_6ss,
{ "Max Rx HE-MCS for 6 SS",
"ieee1905.ap_he_capability.max_rx_he_mcs_6_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_6_ss_vals),
- 0x0030, NULL, HFILL }},
+ 0x0C00, NULL, HFILL }},
{ &hf_ieee1905_ap_he_rx_mcs_map_7ss,
{ "Max Rx HE-MCS for 7 SS",
"ieee1905.ap_he_capability.max_rx_he_mcs_7_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_7_ss_vals),
- 0x000C, NULL, HFILL }},
+ 0x3000, NULL, HFILL }},
{ &hf_ieee1905_ap_he_rx_mcs_map_8ss,
{ "Max Rx HE-MCS for 8 SS",
"ieee1905.ap_he_capability.max_rx_he_mcs_8_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_8_ss_vals),
- 0x0003, NULL, HFILL }},
+ 0xC000, NULL, HFILL }},
{ &hf_ieee1905_ap_he_cap_tx_mcs_160_mhz,
{ "Supported Tx HE-MCS 160 MHz",
diff --git a/epan/dissectors/packet-ieee80211.c b/epan/dissectors/packet-ieee80211.c
index 15e43f8..67d4be5 100644
--- a/epan/dissectors/packet-ieee80211.c
+++ b/epan/dissectors/packet-ieee80211.c
@@ -49971,11 +49971,11 @@ proto_register_ieee80211(void)
NULL, HFILL }},
{&hf_ieee80211_vht_mcsset_extended_nss_bw_capable,
- {"Extended NSS BW Capable", "wlan.vht.ncsset.ext_nss_bw_cap",
+ {"VHT Extended NSS BW Capable", "wlan.vht.mcsset.vht_ext_nss_bw_capable",
FT_BOOLEAN, 16, TFS(&tfs_capable_not_capable), 0x2000, NULL, HFILL }},
{&hf_ieee80211_vht_mcsset_reserved,
- {"Reserved", "wlan.vht.ncsset.reserved",
+ {"Reserved", "wlan.vht.mcsset.reserved",
FT_UINT16, BASE_HEX, NULL, 0xc000, NULL, HFILL }},
{&hf_ieee80211_vht_op,
@@ -51071,12 +51071,12 @@ proto_register_ieee80211(void)
"(not interpreted)", HFILL }},
{&hf_ieee80211_tag_measure_report_measurement_token,
- {"Measurement Token", "wlan.measure.req.token",
+ {"Measurement Token", "wlan.measure.rep.token",
FT_UINT8, BASE_HEX, NULL, 0,
NULL, HFILL }},
{&hf_ieee80211_tag_measure_report_mode,
- {"Measurement Report Mode", "wlan.measure.req.mode",
+ {"Measurement Report Mode", "wlan.measure.rep.mode",
FT_UINT8, BASE_HEX, NULL, 0,
NULL, HFILL }},
@@ -51341,12 +51341,12 @@ proto_register_ieee80211(void)
NULL, HFILL }},
{&hf_ieee80211_tag_measure_report_subelement_length,
- {"Length", "wlan.measure.req.sub.length",
+ {"Length", "wlan.measure.rep.sub.length",
FT_UINT8, BASE_DEC, NULL, 0,
NULL, HFILL }},
{&hf_ieee80211_tag_measure_report_beacon_sub_id,
- {"SubElement ID", "wlan.measure.req.beacon.sub.id",
+ {"SubElement ID", "wlan.measure.rep.beacon.sub.id",
FT_UINT8, BASE_DEC, VALS(ieee80211_tag_measure_report_beacon_sub_id_vals), 0,
NULL, HFILL }},
diff --git a/epan/dissectors/packet-ip.c b/epan/dissectors/packet-ip.c
index 355fc6c..481d372 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-ipars.c b/epan/dissectors/packet-ipars.c
index 4b3a4bb..3115ec0 100644
--- a/epan/dissectors/packet-ipars.c
+++ b/epan/dissectors/packet-ipars.c
@@ -31,7 +31,7 @@ static gint ett_ipars = -1;
#define EOMu (0x12)
#define EOMi (0x13)
-#define MAX_EOM_MSG_SIZE (16) /* max size of an EOMx indicator string */
+#define MAX_EOM_MSG_SIZE (24) /* max size of an EOMx indicator string */
static int
dissect_ipars(tvbuff_t *tvb, packet_info *pinfo _U_ , proto_tree *tree, void* data _U_)
diff --git a/epan/dissectors/packet-ipp.c b/epan/dissectors/packet-ipp.c
index 8c6941d..0385567 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 e2f9e96..a2a2571 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 3358b92..2e62cf2 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 35d0567..03020be 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 0741025..69072b9 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 598052c..db15cfb 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 bd3ff61..b27dc7c 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 7f071fc..dbf7276 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 be5060b..67dac0e 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 d40d5af..a651376 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 662df5b..d44f919 100644
--- a/epan/dissectors/packet-json_3gpp.c
+++ b/epan/dissectors/packet-json_3gpp.c
@@ -30,11 +30,14 @@
#include "packet-gtpv2.h"
#include "packet-gsm_a_common.h"
#include "packet-json.h"
+#include "packet-http.h"
#include "packet-http2.h"
void proto_register_json_3gpp(void);
+void proto_reg_handoff_json_3gpp(void);
static int proto_json_3gpp = -1;
+static int proto_http = -1;
static gint ett_json_base64decoded_eps_ie = -1;
static gint ett_json_base64decoded_nas5g_ie = -1;
@@ -237,7 +240,7 @@ dissect_base64decoded_nas5g_ie(tvbuff_t* tvb, proto_tree* tree, packet_info* pin
static void
dissect_3gpp_supportfeatures(tvbuff_t* tvb, proto_tree* tree, packet_info* pinfo, int offset, int len, const char* key_str _U_, gboolean use_compact)
{
- const char *path;
+ const char *path = NULL;
/* TS 29.571 ch5.2.2
* A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500 [25].
@@ -252,9 +255,20 @@ dissect_3gpp_supportfeatures(tvbuff_t* tvb, proto_tree* tree, packet_info* pinfo
*/
/* Exptect to have :path from HTTP2 here, if not return */
- path = http2_get_header_value(pinfo, HTTP2_HEADER_PATH, FALSE);
- if (!path) {
- path = http2_get_header_value(pinfo, HTTP2_HEADER_PATH, TRUE);
+ if (proto_is_frame_protocol(pinfo->layers, "http2")) {
+ path = http2_get_header_value(pinfo, HTTP2_HEADER_PATH, FALSE);
+ if (!path) {
+ path = http2_get_header_value(pinfo, HTTP2_HEADER_PATH, TRUE);
+ }
+ } else if (proto_is_frame_protocol(pinfo->layers, "http")) {
+ /* 3GPP TS 29.500 says the service based interfaces use HTTP/2,
+ * but that doesn't stop implementations like OAI from using
+ * HTTP/1.1 with a 2.0 version string.
+ */
+ http_req_res_t* curr_req_res = (http_req_res_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_http, 0);
+ if (curr_req_res) {
+ path = curr_req_res->request_uri;
+ }
}
if (!path) {
return;
@@ -271,6 +285,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);
@@ -1284,6 +1301,12 @@ proto_register_json_3gpp(void)
register_static_headers();
}
+void
+proto_reg_handoff_json_3gpp(void)
+{
+ proto_http = proto_get_id_by_filter_name("http");
+}
+
/*
* Editor modelines - https://www.wireshark.org/tools/modelines.html
*
diff --git a/epan/dissectors/packet-jxta.c b/epan/dissectors/packet-jxta.c
index 2f020ce..a6b44d7 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 798f1c9..482a670 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 34a5408..024d219 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 7c19b1d..87c7fd6 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 cb7d5ec..15f13d4 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-lapd.c b/epan/dissectors/packet-lapd.c
index fcae4e1..cea2b3e 100644
--- a/epan/dissectors/packet-lapd.c
+++ b/epan/dissectors/packet-lapd.c
@@ -567,10 +567,10 @@ dissect_lapd_full(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 f
}
}
}
- set_address(&pinfo->dst, AT_STRINGZ, (int)strlen(dstname) + 1, dstname);
- set_address(&pinfo->src, AT_STRINGZ, (int)strlen(dstname) + 1, dstname);
- col_set_str(pinfo->cinfo, COL_RES_DL_SRC, srcname);
- col_set_str(pinfo->cinfo, COL_RES_DL_DST, dstname);
+ set_address(&pinfo->dl_dst, AT_STRINGZ, (int)strlen(dstname) + 1, dstname);
+ set_address(&pinfo->dl_src, AT_STRINGZ, (int)strlen(srcname) + 1, srcname);
+ copy_address_shallow(&pinfo->dst, &pinfo->dl_dst);
+ copy_address_shallow(&pinfo->src, &pinfo->dl_src);
if (tree) {
proto_item *direction_ti;
diff --git a/epan/dissectors/packet-ldap.c b/epan/dissectors/packet-ldap.c
index 1ad9215..42834ce 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 e4114f3..25daf89 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 f9950c0..af930f4 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 f05e2bb..108e9f5 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 6eb7db4..56f9a3e 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 b85a647..5a61c63 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-lldp.c b/epan/dissectors/packet-lldp.c
index d70c379..307a1d3 100644
--- a/epan/dissectors/packet-lldp.c
+++ b/epan/dissectors/packet-lldp.c
@@ -1974,9 +1974,9 @@ dissect_lldp_system_capabilities(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
proto_tree_add_item(capabilities_enabled_tree, hf_lldp_tlv_enable_system_cap_telephone, tvb, offset, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(capabilities_enabled_tree, hf_lldp_tlv_enable_system_cap_docsis_cable_device, tvb, offset, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(capabilities_enabled_tree, hf_lldp_tlv_enable_system_cap_station_only, tvb, offset, 2, ENC_BIG_ENDIAN);
- proto_tree_add_item(capabilities_summary_tree, hf_lldp_tlv_enable_system_cap_cvlan_component, tvb, offset, 2, ENC_BIG_ENDIAN);
- proto_tree_add_item(capabilities_summary_tree, hf_lldp_tlv_enable_system_cap_svlan_component, tvb, offset, 2, ENC_BIG_ENDIAN);
- proto_tree_add_item(capabilities_summary_tree, hf_lldp_tlv_enable_system_cap_tpmr_component, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(capabilities_enabled_tree, hf_lldp_tlv_enable_system_cap_cvlan_component, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(capabilities_enabled_tree, hf_lldp_tlv_enable_system_cap_svlan_component, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(capabilities_enabled_tree, hf_lldp_tlv_enable_system_cap_tpmr_component, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
diff --git a/epan/dissectors/packet-llrp.c b/epan/dissectors/packet-llrp.c
index 9b02b07..4e97b53 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 da5995f..032a13f 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 3e0e662..e575eba 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 7ce880c..73533fd 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 e6c882f..363a9bc 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 1b59496..0cf6865 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 cacfdba..81e7aaf 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 64e6747..346b132 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;
@@ -829,7 +831,10 @@ dissect_op_msg_section(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tr
switch (e_type) {
case KIND_BODY:
- dissect_bson_document(tvb, pinfo, offset, section_tree, hf_mongo_msg_sections_section_body);
+ section_len = dissect_bson_document(tvb, pinfo, offset, section_tree, hf_mongo_msg_sections_section_body);
+ /* If section_len is bogus (e.g., negative), dissect_bson_document sets
+ * an expert info and can return a different value than read above.
+ */
break;
case KIND_DOCUMENT_SEQUENCE: {
gint32 dsi_length;
@@ -838,6 +843,9 @@ dissect_op_msg_section(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tr
proto_tree *documents_tree;
proto_tree_add_item(section_tree, hf_mongo_msg_sections_section_size, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ /* This is redundant with the lengths in the documents, we don't use this
+ * size at all. We could still report an expert info if it's bogus.
+ */
offset += 4;
to_read -= 4;
@@ -896,10 +904,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 +955,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 5db34f6..0ab1dea 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 6178c74..4e7a847 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 b9b4b97..8e15e3e 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 b9623a0..f086a3e 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 ef95278..12532eb 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 fa7b819..1dac8b3 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 5f676c6..d706c80 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 ac58b24..26bb927 100644
--- a/epan/dissectors/packet-nas_5gs.c
+++ b/epan/dissectors/packet-nas_5gs.c
@@ -849,6 +849,7 @@ static const value_string nas_5gs_epd_vals[] = {
};
struct nas5gs_private_data {
+ guint8 sec_hdr_type;
guint32 payload_container_type;
};
@@ -2580,9 +2581,14 @@ de_nas_5gs_mm_nas_msg_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
gchar *add_string _U_, int string_len _U_)
{
/* The purpose of the NAS message container IE is to encapsulate a plain 5GS NAS message. */
- /* a NAS message without NAS security heade */
+ /* a NAS message without NAS security header */
+ struct nas5gs_private_data *nas5gs_data = nas5gs_get_private_data(pinfo);
- dissect_nas_5gs(tvb_new_subset_length(tvb, offset, len), pinfo, tree, NULL);
+ if (nas5gs_data->sec_hdr_type == NAS_5GS_PLAIN_NAS_MSG || g_nas_5gs_null_decipher) {
+ dissect_nas_5gs(tvb_new_subset_length(tvb, offset, len), pinfo, tree, NULL);
+ } else {
+ proto_tree_add_subtree(tree, tvb, offset, len, ett_nas_5gs_enc, NULL, "Encrypted data");
+ }
return len;
}
@@ -2897,12 +2903,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 +3040,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;
}
@@ -10289,7 +10298,8 @@ dissect_nas_5gs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
proto_item *item;
proto_tree *nas_5gs_tree, *sub_tree;
int offset = 0;
- guint8 seq_hdr_type, ext_pd;
+ guint8 sec_hdr_type, ext_pd;
+ struct nas5gs_private_data *nas5gs_data = nas5gs_get_private_data(pinfo);
/* make entry in the Protocol column on summary display */
col_append_sep_str(pinfo->cinfo, COL_PROTOCOL, "/", "NAS-5GS");
@@ -10305,8 +10315,9 @@ dissect_nas_5gs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
/* Security header type associated with a spare half octet; or
* PDU session identity octet 2 */
/* Determine if it's a plain 5GS NAS Message or not */
- seq_hdr_type = tvb_get_guint8(tvb, offset + 1);
- if (seq_hdr_type == NAS_5GS_PLAIN_NAS_MSG) {
+ sec_hdr_type = tvb_get_guint8(tvb, offset + 1);
+ nas5gs_data->sec_hdr_type = sec_hdr_type;
+ if (sec_hdr_type == NAS_5GS_PLAIN_NAS_MSG) {
return dissect_nas_5gs_common(tvb, pinfo, nas_5gs_tree, offset, data);
}
/* Security protected NAS 5GS message*/
@@ -10326,7 +10337,7 @@ dissect_nas_5gs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
proto_tree_add_item(sub_tree, hf_nas_5gs_seq_no, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
- if ((seq_hdr_type != NAS_5GS_INTEG_CIPH_NAS_MSG && seq_hdr_type != NAS_5GS_INTEG_CIPH_NEW_NAS_MSG) ||
+ if ((sec_hdr_type != NAS_5GS_INTEG_CIPH_NAS_MSG && sec_hdr_type != NAS_5GS_INTEG_CIPH_NEW_NAS_MSG) ||
g_nas_5gs_null_decipher) {
return dissect_nas_5gs_common(tvb, pinfo, nas_5gs_tree, offset, data);
} else {
diff --git a/epan/dissectors/packet-nbt.c b/epan/dissectors/packet-nbt.c
index c409bca..abb6b25 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 4226b81..5c6ffaa 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 b437ed3..200d471 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 44edaeb..33c32b0 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-nr-rrc.c b/epan/dissectors/packet-nr-rrc.c
index 1086fac..6f2eb41 100644
--- a/epan/dissectors/packet-nr-rrc.c
+++ b/epan/dissectors/packet-nr-rrc.c
@@ -22803,7 +22803,7 @@ static int
dissect_nr_rrc_SIB2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB2");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB2 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB2, SIB2_sequence);
@@ -23111,7 +23111,7 @@ static int
dissect_nr_rrc_SIB3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB3");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB3 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB3, SIB3_sequence);
@@ -23576,7 +23576,7 @@ static int
dissect_nr_rrc_SIB4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB4");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB4 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB4, SIB4_sequence);
@@ -24046,7 +24046,7 @@ static int
dissect_nr_rrc_SIB5(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB5");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB5 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB5, SIB5_sequence);
@@ -24126,7 +24126,7 @@ static int
dissect_nr_rrc_SIB6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB6");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB6 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB6, SIB6_sequence);
@@ -24283,7 +24283,7 @@ static int
dissect_nr_rrc_SIB7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB7");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB7 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB7, SIB7_sequence);
@@ -24441,7 +24441,7 @@ static int
dissect_nr_rrc_SIB8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB8");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB8 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB8, SIB8_sequence);
@@ -24650,7 +24650,7 @@ static int
dissect_nr_rrc_SIB9(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB9");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB9 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB9, SIB9_sequence);
@@ -24705,7 +24705,7 @@ static const per_sequence_t SIB10_r16_sequence[] = {
static int
dissect_nr_rrc_SIB10_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB10");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB10 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB10_r16, SIB10_r16_sequence);
@@ -24968,7 +24968,7 @@ static const per_sequence_t SIB11_r16_sequence[] = {
static int
dissect_nr_rrc_SIB11_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB11");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB11");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB11_r16, SIB11_r16_sequence);
@@ -25002,7 +25002,7 @@ static const per_sequence_t SIB12_r16_sequence[] = {
static int
dissect_nr_rrc_SIB12_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB12");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB12 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB12_r16, SIB12_r16_sequence);
@@ -25057,7 +25057,7 @@ static const per_sequence_t SIB13_r16_sequence[] = {
static int
dissect_nr_rrc_SIB13_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB13");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB13 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB13_r16, SIB13_r16_sequence);
@@ -25074,7 +25074,7 @@ static const per_sequence_t SIB14_r16_sequence[] = {
static int
dissect_nr_rrc_SIB14_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB14");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB14 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB14_r16, SIB14_r16_sequence);
@@ -25132,7 +25132,7 @@ static const per_sequence_t SIB15_r17_sequence[] = {
static int
dissect_nr_rrc_SIB15_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB15");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB15 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB15_r17, SIB15_r17_sequence);
@@ -25280,7 +25280,7 @@ static const per_sequence_t SIB16_r17_sequence[] = {
static int
dissect_nr_rrc_SIB16_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB16");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB16 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB16_r17, SIB16_r17_sequence);
@@ -25314,7 +25314,7 @@ static const per_sequence_t SIB17_r17_sequence[] = {
static int
dissect_nr_rrc_SIB17_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB17");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB17 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB17_r17, SIB17_r17_sequence);
@@ -25413,7 +25413,7 @@ static const per_sequence_t SIB18_r17_sequence[] = {
static int
dissect_nr_rrc_SIB18_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB18");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB18 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB18_r17, SIB18_r17_sequence);
@@ -25780,7 +25780,7 @@ static const per_sequence_t SIB19_r17_sequence[] = {
static int
dissect_nr_rrc_SIB19_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB19");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB19 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB19_r17, SIB19_r17_sequence);
@@ -26929,7 +26929,7 @@ static const per_sequence_t SIB20_r17_sequence[] = {
static int
dissect_nr_rrc_SIB20_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB20");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB20 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB20_r17, SIB20_r17_sequence);
@@ -27000,7 +27000,7 @@ static const per_sequence_t SIB21_r17_sequence[] = {
static int
dissect_nr_rrc_SIB21_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB21");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB21 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB21_r17, SIB21_r17_sequence);
@@ -27843,12 +27843,12 @@ static const per_sequence_t SystemInformation_sequence[] = {
static int
dissect_nr_rrc_SystemInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "System Information [");
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "System Information [ ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SystemInformation, SystemInformation_sequence);
- col_append_str(actx->pinfo->cinfo, COL_INFO, " ]");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "]");
return offset;
}
@@ -35379,7 +35379,7 @@ static int
dissect_nr_rrc_SIB1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SIB1");
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SIB1 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB1, SIB1_sequence);
@@ -175579,7 +175579,7 @@ proto_register_nr_rrc(void) {
register_dissector("nr-rrc.measgapconfig_msg", dissect_nr_rrc_measgapconfig_msg, proto_nr_rrc);
register_dissector("nr-rrc.handoverpreparationinformation_msg", dissect_nr_rrc_handoverpreparationinformation_msg, proto_nr_rrc);
register_dissector("nr-rrc.handovercommand_msg", dissect_nr_rrc_handovercommand_msg, proto_nr_rrc);
-
+ /*#include "packet-nr-rrc-dis-reg.c" */
register_dissector("nr-rrc.ue_radio_paging_info", dissect_nr_rrc_UERadioPagingInformation_PDU, proto_nr_rrc);
register_dissector("nr-rrc.ue_radio_access_cap_info", dissect_UERadioAccessCapabilityInformation_PDU, proto_nr_rrc);
register_dissector("nr-rrc.bcch.bch", dissect_BCCH_BCH_Message_PDU, proto_nr_rrc);
@@ -175593,6 +175593,27 @@ proto_register_nr_rrc(void) {
register_dissector("nr-rrc.ul.dcch", dissect_nr_rrc_UL_DCCH_Message_PDU, proto_nr_rrc);
register_dissector("nr-rrc.rrc_reconf", dissect_nr_rrc_RRCReconfiguration_PDU, proto_nr_rrc);
register_dissector("nr-rrc.rrc_reconf_compl", dissect_nr_rrc_RRCReconfigurationComplete_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib1", dissect_nr_rrc_SIB1_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib2", dissect_nr_rrc_SIB2_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib3", dissect_nr_rrc_SIB3_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib4", dissect_nr_rrc_SIB4_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib5", dissect_nr_rrc_SIB5_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib6", dissect_nr_rrc_SIB6_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib7", dissect_nr_rrc_SIB7_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib8", dissect_nr_rrc_SIB8_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib9", dissect_nr_rrc_SIB9_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib10", dissect_nr_rrc_SIB10_r16_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib11", dissect_nr_rrc_SIB11_r16_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib12", dissect_nr_rrc_SIB12_r16_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib13", dissect_nr_rrc_SIB13_r16_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib14", dissect_nr_rrc_SIB14_r16_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib15", dissect_nr_rrc_SIB15_r17_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib16", dissect_nr_rrc_SIB16_r17_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib17", dissect_nr_rrc_SIB17_r17_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib18", dissect_nr_rrc_SIB18_r17_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib21", dissect_nr_rrc_SIB19_r17_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib22", dissect_nr_rrc_SIB20_r17_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib23", dissect_nr_rrc_SIB21_r17_PDU, proto_nr_rrc);
register_dissector("nr-rrc.ue_mrdc_cap", dissect_nr_rrc_UE_MRDC_Capability_PDU, proto_nr_rrc);
register_dissector("nr-rrc.ue_nr_cap", dissect_nr_rrc_UE_NR_Capability_PDU, proto_nr_rrc);
register_dissector("nr-rrc.sbcch.sl.bch", dissect_SBCCH_SL_BCH_Message_PDU, proto_nr_rrc);
diff --git a/epan/dissectors/packet-ntlmssp.c b/epan/dissectors/packet-ntlmssp.c
index 85ec0e9..a538c20 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 a4c4704..b4901d6 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 ffe2f56..d49de46 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 12e2be1..d6dbe27 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 d56d3fd..695fa41 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 a057d7d..1beb68c 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 f270143..c0aae3f 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 2abef37..fe09053 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 ea2004b..8486a0c 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 6748d97..c791133 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 dc64b68..03edebc 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 ecec46a..7d07fde 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-per.c b/epan/dissectors/packet-per.c
index 4a4ac7c..1a0f3ee 100644
--- a/epan/dissectors/packet-per.c
+++ b/epan/dissectors/packet-per.c
@@ -61,6 +61,8 @@ static int hf_per_internal_range = -1;
static int hf_per_internal_num_bits = -1;
static int hf_per_internal_min = -1;
static int hf_per_internal_value = -1;
+static int hf_per_internal_min_int = -1;
+static int hf_per_internal_value_int = -1;
static int hf_per_encoding_boiler_plate = -1;
static gint ett_per_open_type = -1;
@@ -1419,10 +1421,18 @@ DEBUG_ENTRY("dissect_per_constrained_integer");
if (display_internal_per_fields){
str = decode_bits_in_field(actx->pinfo->pool, (offset&0x07),num_bits,val,ENC_BIG_ENDIAN);
- proto_tree_add_uint(tree, hf_per_internal_min, tvb, val_start,val_length, min);
+ if (FT_IS_INT(hfi->type)) {
+ proto_tree_add_int(tree, hf_per_internal_min_int, tvb, val_start, val_length, min);
+ } else {
+ proto_tree_add_uint(tree, hf_per_internal_min, tvb, val_start, val_length, min);
+ }
proto_tree_add_uint64(tree, hf_per_internal_range, tvb, val_start, val_length, range);
proto_tree_add_uint(tree, hf_per_internal_num_bits, tvb, val_start, val_length, num_bits);
- proto_tree_add_uint64_format_value(tree, hf_per_internal_value, tvb, val_start, val_length, val+min, "%s decimal value: %u", str, val+min);
+ if (FT_IS_INT(hfi->type)) {
+ proto_tree_add_int64_format_value(tree, hf_per_internal_value_int, tvb, val_start, val_length, val + min, "%s decimal value: %i", str, val + min);
+ } else {
+ proto_tree_add_uint64_format_value(tree, hf_per_internal_value, tvb, val_start, val_length, val + min, "%s decimal value: %u", str, val + min);
+ }
}
/* The actual value */
val+=min;
@@ -2927,6 +2937,14 @@ proto_register_per(void)
{ "Bits", "per.internal.value",
FT_UINT64, BASE_DEC, NULL, 0,
NULL, HFILL }},
+ { &hf_per_internal_min_int,
+ { "Min", "per.internal.min_int",
+ FT_INT32, BASE_DEC, NULL, 0,
+ NULL, HFILL } },
+ { &hf_per_internal_value_int,
+ { "Bits", "per.internal.value_int",
+ FT_INT64, BASE_DEC, NULL, 0,
+ NULL, HFILL } },
{ &hf_per_encoding_boiler_plate,
{ "PER encoded protocol, to see PER internal fields set protocol PER preferences", "per.encoding_boiler_plate",
FT_NONE, BASE_NONE, NULL, 0x0,
diff --git a/epan/dissectors/packet-pfcp.c b/epan/dissectors/packet-pfcp.c
index 6a57c58..6565bfb 100644
--- a/epan/dissectors/packet-pfcp.c
+++ b/epan/dissectors/packet-pfcp.c
@@ -187,7 +187,18 @@ static int hf_pfcp_redirect_server_address = -1;
static int hf_pfcp_other_redirect_server_addr_len = -1;
static int hf_pfcp_other_redirect_server_address = -1;
static int hf_pfcp_redirect_port = -1;
-static int hf_pfcp_outer_hdr_desc = -1;
+static int hf_pfcp_outer_hdr_desc_o5_b0_gtp_udp_ipv4 = -1;
+static int hf_pfcp_outer_hdr_desc_o5_b1_gtp_udp_ipv6 = -1;
+static int hf_pfcp_outer_hdr_desc_o5_b2_udp_ipv4 = -1;
+static int hf_pfcp_outer_hdr_desc_o5_b3_udp_ipv6 = -1;
+static int hf_pfcp_outer_hdr_desc_o5_b4_ipv4 = -1;
+static int hf_pfcp_outer_hdr_desc_o5_b5_ipv6 = -1;
+static int hf_pfcp_outer_hdr_desc_o5_b6_ctag = -1;
+static int hf_pfcp_outer_hdr_desc_o5_b7_stag = -1;
+static int hf_pfcp_outer_hdr_desc_o6_b0_n19 = -1;
+static int hf_pfcp_outer_hdr_desc_o6_b1_n6 = -1;
+static int hf_pfcp_outer_hdr_desc_o6_b2_ssm_cteid = -1;
+static int hf_pfcp_outer_hdr_desc_o6_spare = -1;
static int hf_pfcp_outer_hdr_creation_teid = -1;
static int hf_pfcp_outer_hdr_creation_ipv4 = -1;
static int hf_pfcp_outer_hdr_creation_ipv6 = -1;
@@ -4472,41 +4483,38 @@ dissect_pfcp_linked_urr_id(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/*
* 8.2.56 Outer Header Creation
*/
-
-static const value_string pfcp_outer_hdr_desc_vals[] = {
-
- { 0x0001, "GTP-U/UDP/IPv4 " },
- { 0x0002, "GTP-U/UDP/IPv6 " },
- { 0x0003, "GTP-U/UDP/IPv4/IPv6 " },
- { 0x0004, "UDP/IPv4 " },
- { 0x0008, "UDP/IPv6 " },
- { 0x000C, "UDP/IPv4/IPv6 " },
- { 0x0010, "IPv4 " },
- { 0x0020, "IPv6 " },
- { 0x0030, "IPv4/IPv6 " },
- { 0x0040, "C-TAG " },
- { 0x0080, "S-TAG " },
- { 0x0100, "N19 Indication " },
- { 0x0200, "N6 Indication " },
- { 0x0400, "Low Layer SSM and C-TEID " },
- { 0, NULL }
-};
-
static void
dissect_pfcp_outer_header_creation(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint16 length, guint8 message_type _U_, pfcp_session_args_t *args _U_)
{
int offset = 0;
- guint32 value;
+ guint64 value;
+
+ static int * const outer_hdr_desc[] = {
+ &hf_pfcp_outer_hdr_desc_o5_b7_stag,
+ &hf_pfcp_outer_hdr_desc_o5_b6_ctag,
+ &hf_pfcp_outer_hdr_desc_o5_b5_ipv6,
+ &hf_pfcp_outer_hdr_desc_o5_b4_ipv4,
+ &hf_pfcp_outer_hdr_desc_o5_b3_udp_ipv6,
+ &hf_pfcp_outer_hdr_desc_o5_b2_udp_ipv4,
+ &hf_pfcp_outer_hdr_desc_o5_b1_gtp_udp_ipv6,
+ &hf_pfcp_outer_hdr_desc_o5_b0_gtp_udp_ipv4,
+ &hf_pfcp_outer_hdr_desc_o6_spare,
+ &hf_pfcp_outer_hdr_desc_o6_b2_ssm_cteid,
+ &hf_pfcp_outer_hdr_desc_o6_b1_n6,
+ &hf_pfcp_outer_hdr_desc_o6_b0_n19,
+ NULL
+ };
- /* Octet 5 Outer Header Creation Description */
- proto_tree_add_item_ret_uint(tree, hf_pfcp_outer_hdr_desc, tvb, offset, 2, ENC_BIG_ENDIAN, &value);
+ /* Octet 5-6 Outer Header Creation Description */
+ proto_tree_add_bitmask_list_ret_uint64(tree, tvb, offset, 2, outer_hdr_desc, ENC_BIG_ENDIAN, &value);
offset += 2;
+
/* m to (m+3) TEID
* The TEID field shall be present if the Outer Header Creation Description requests the creation of a GTP-U header.
* Otherwise it shall not be present
*/
- if ((value & 0x000100) || (value & 0x000200)) {
+ if ((value & 0x0100) || (value & 0x0200)) {
proto_tree_add_item(tree, hf_pfcp_outer_hdr_creation_teid, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
}
@@ -4515,7 +4523,7 @@ dissect_pfcp_outer_header_creation(tvbuff_t *tvb, packet_info *pinfo, proto_tree
* p to (p+3) IPv4
* The IPv4 Address field shall be present if the Outer Header Creation Description requests the creation of a IPv4 header
*/
- if ((value & 0x000100) || (value & 0x000400) || (value & 0x001000)) {
+ if ((value & 0x0100) || (value & 0x0400) || (value & 0x1000)) {
proto_tree_add_item(tree, hf_pfcp_outer_hdr_creation_ipv4, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
}
@@ -4524,7 +4532,7 @@ dissect_pfcp_outer_header_creation(tvbuff_t *tvb, packet_info *pinfo, proto_tree
* q to (q+15) IPv6
* The IPv6 Address field shall be present if the Outer Header Creation Description requests the creation of a IPv6 header
*/
- if ((value & 0x000200) || (value & 0x000800) || (value & 0x002000)) {
+ if ((value & 0x0200) || (value & 0x0800) || (value & 0x2000)) {
proto_tree_add_item(tree, hf_pfcp_outer_hdr_creation_ipv6, tvb, offset, 16, ENC_NA);
offset += 16;
}
@@ -4533,7 +4541,7 @@ dissect_pfcp_outer_header_creation(tvbuff_t *tvb, packet_info *pinfo, proto_tree
* r to (r+1) Port Number
* The Port Number field shall be present if the Outer Header Creation Description requests the creation of a UDP/IP header
*/
- if ((value & 0x000400) || (value & 0x000800)) {
+ if ((value & 0x0400) || (value & 0x0800)) {
proto_tree_add_item(tree, hf_pfcp_outer_hdr_creation_port, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
}
@@ -4542,7 +4550,7 @@ dissect_pfcp_outer_header_creation(tvbuff_t *tvb, packet_info *pinfo, proto_tree
* t to (t+2) C-TAG
* The C-TAG field shall be present if the Outer Header Creation Description requests the setting of the C-Tag in Ethernet packet
*/
- if (value & 0x004000) {
+ if (value & 0x4000) {
offset = decode_pfcp_c_tag(tvb, pinfo, tree, item, offset);
}
@@ -4550,7 +4558,7 @@ dissect_pfcp_outer_header_creation(tvbuff_t *tvb, packet_info *pinfo, proto_tree
* u to (u+2) S-TAG
* The S-TAG field shall be present if the Outer Header Creation Description requests the setting of the S-Tag in Ethernet packet
*/
- if (value & 0x008000) {
+ if (value & 0x8000) {
offset = decode_pfcp_s_tag(tvb, pinfo, tree, item, offset);
}
@@ -12606,9 +12614,64 @@ proto_register_pfcp(void)
FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
- { &hf_pfcp_outer_hdr_desc,
- { "Outer Header Creation Description", "pfcp.outer_hdr_desc",
- FT_UINT16, BASE_DEC, VALS(pfcp_outer_hdr_desc_vals), 0x0,
+ { &hf_pfcp_outer_hdr_desc_o5_b0_gtp_udp_ipv4,
+ { "GTP-U/UDP/IPv4", "pfcp.pfcp_outer_hdr_desc.gtpu_udp_ipv4",
+ FT_BOOLEAN, 16, NULL, 0x0100,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_outer_hdr_desc_o5_b1_gtp_udp_ipv6,
+ { "GTP-U/UDP/IPv6", "pfcp.pfcp_outer_hdr_desc.gtpu_udp_ipv6",
+ FT_BOOLEAN, 16, NULL, 0x0200,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_outer_hdr_desc_o5_b2_udp_ipv4,
+ { "UDP/IPv4", "pfcp.pfcp_outer_hdr_desc.udp_ipv4",
+ FT_BOOLEAN, 16, NULL, 0x0400,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_outer_hdr_desc_o5_b3_udp_ipv6,
+ { "UDP/IPv6", "pfcp.pfcp_outer_hdr_desc.udp_ipv6",
+ FT_BOOLEAN, 16, NULL, 0x0800,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_outer_hdr_desc_o5_b4_ipv4,
+ { "IPv4", "pfcp.pfcp_outer_hdr_desc.ipv4",
+ FT_BOOLEAN, 16, NULL, 0x1000,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_outer_hdr_desc_o5_b5_ipv6,
+ { "IPv6", "pfcp.pfcp_outer_hdr_desc.ipv6",
+ FT_BOOLEAN, 16, NULL, 0x2000,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_outer_hdr_desc_o5_b6_ctag,
+ { "C-TAG", "pfcp.pfcp_outer_hdr_desc.ctag",
+ FT_BOOLEAN, 16, NULL, 0x4000,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_outer_hdr_desc_o5_b7_stag,
+ { "S-TAG", "pfcp.pfcp_outer_hdr_desc.stag",
+ FT_BOOLEAN, 16, NULL, 0x8000,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_outer_hdr_desc_o6_b0_n19,
+ { "N19 Indication", "pfcp.pfcp_outer_hdr_desc.n19",
+ FT_BOOLEAN, 16, NULL, 0x0001,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_outer_hdr_desc_o6_b1_n6,
+ { "N6 Indication", "pfcp.pfcp_outer_hdr_desc.n6",
+ FT_BOOLEAN, 16, NULL, 0x0002,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_outer_hdr_desc_o6_b2_ssm_cteid,
+ { "Low Layer SSM and C-TEID", "pfcp.pfcp_outer_hdr_desc.ssm_cteid",
+ FT_BOOLEAN, 16, NULL, 0x0004,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_outer_hdr_desc_o6_spare,
+ { "Spare", "pfcp.pfcp_outer_hdr_desc.spare",
+ FT_UINT16, BASE_DEC, NULL, 0x00f8,
NULL, HFILL }
},
{ &hf_pfcp_outer_hdr_creation_teid,
diff --git a/epan/dissectors/packet-pim.c b/epan/dissectors/packet-pim.c
index 1277cbb..7c9ac39 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 ee7c5ab..8597da4 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 b45eb87..2e41ff5 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-ptp.c b/epan/dissectors/packet-ptp.c
index 09d499b..c87fc52 100644
--- a/epan/dissectors/packet-ptp.c
+++ b/epan/dissectors/packet-ptp.c
@@ -3730,7 +3730,7 @@ dissect_ptp_v2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean ptp
for(path_seq_total_length = 0; path_seq_total_length < tlv_length; path_seq_total_length+=8)
{
proto_tree_add_item(ptp_tlv_tree, hf_ptp_v2_an_tlv_pathsequence, tvb,
- PTP_V2_AN_TLV_OFFSET + PTP_AS_AN_TLV_PATH_TRACE_OFFSET + path_seq_total_length,
+ PTP_V2_AN_TLV_OFFSET + tlv_total_length + PTP_AS_AN_TLV_PATH_TRACE_OFFSET + path_seq_total_length,
8, ENC_BIG_ENDIAN);
}
diff --git a/epan/dissectors/packet-q2931.c b/epan/dissectors/packet-q2931.c
index 2749db0..348707e 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 e081b9e..ffa22d9 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-quic.c b/epan/dissectors/packet-quic.c
index a41ce9c..cabc2c5 100644
--- a/epan/dissectors/packet-quic.c
+++ b/epan/dissectors/packet-quic.c
@@ -1257,6 +1257,14 @@ quic_connection_find(packet_info *pinfo, guint8 long_packet_type,
// No match found, truncate DCID (not really needed, but this
// ensures that debug prints clearly show that DCID is invalid).
dcid->len = 0;
+ } else if (quic_connection_from_conv(pinfo) == NULL) {
+ // Connection information might not be attached to the conversation,
+ // because of connection migration.
+ conversation_t *conv = find_conversation_pinfo(pinfo, 0);
+ if (conv) {
+ // attach the connection information to the conversation.
+ conversation_add_proto_data(conv, proto_quic, conn);
+ }
}
}
return conn;
diff --git a/epan/dissectors/packet-rdp.c b/epan/dissectors/packet-rdp.c
index b9457a1..370cbee 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 19bf2e4..b2216b2 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 9dcfb53..c39e74a 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 0875786..4f3b868 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 34983c7..b271d42 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 95c5681..af4b9b4 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 7760318..0d88ba2 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 9f7ecea..9e34b91 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 f278368..a6fb03d 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 de55b83..5eeac7f 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 7bb08cb..14f2295 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 f9f72a1..7634874 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 5fac3a1..10eee43 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 c34c7bb..88b0072 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 2ee9a92..ab648bc 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 6dbf0e4..55acb2a 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 8051f34..d1830ee 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 cdf6bfd..c8a9dab 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 eac17af..fcfc78d 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 9bd345b..bea33e2 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 90cf2bf..fc450d6 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 49a7722..f053dfa 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 f84c341..f96a179 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 34e81c7..04b05e8 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 97cc36c..b6cc40e 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-ssh.c b/epan/dissectors/packet-ssh.c
index 1b91959..4f2b0ff 100644
--- a/epan/dissectors/packet-ssh.c
+++ b/epan/dissectors/packet-ssh.c
@@ -2131,6 +2131,8 @@ ssh_kex_hash_type(gchar *type_string)
return SSH_KEX_HASH_SHA1;
}else if (type_string && g_str_has_suffix(type_string, "sha256")) {
return SSH_KEX_HASH_SHA256;
+ }else if (type_string && g_str_has_suffix(type_string, "sha256@libssh.org")) {
+ return SSH_KEX_HASH_SHA256;
}else if (type_string && g_str_has_suffix(type_string, "sha512")) {
return SSH_KEX_HASH_SHA512;
} else {
@@ -2751,7 +2753,6 @@ ssh_decryption_set_mac_id(struct ssh_peer_data *peer)
} else if (0 == strcmp(mac_name, "hmac-sha2-256")) {
peer->mac_id = CIPHER_MAC_SHA2_256;
} else {
- peer->mac = NULL;
ws_debug("decryption MAC not supported: %s", mac_name);
}
}
diff --git a/epan/dissectors/packet-sua.c b/epan/dissectors/packet-sua.c
index 18768d9..56266e2 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 45127cd..00bd9c2 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 2f6a4d3..f134e29 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 4d10cf6..aca6596 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 ac24f8c..701e338 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 e7689e7..d46b293 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 e543ea8..075e754 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 dfed394..7c11f97 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 9f03f0d..a266c44 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-tipc.c b/epan/dissectors/packet-tipc.c
index fb41797..a556ed6 100644
--- a/epan/dissectors/packet-tipc.c
+++ b/epan/dissectors/packet-tipc.c
@@ -1099,13 +1099,16 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
/* the bearer instance string is padded with \0 to the next word boundry */
b_inst_strlen = tvb_strsize(tipc_tvb, offset);
offset += b_inst_strlen;
- if ((padlen = (4-b_inst_strlen%4)) > 0) {
+ if ((padlen = ((b_inst_strlen%4)?(4-(b_inst_strlen%4)):0)) > 0) {
proto_tree_add_bytes_format_value(tipc_tree, hf_tipcv2_padding, tipc_tvb, offset, padlen, NULL, "%d byte%c", padlen, (padlen!=1?'s':0));
offset += padlen;
}
if ((offset-msg_size) > 0) {
+ int filler_len;
+
+ filler_len = tvb_reported_length_remaining(tipc_tvb, offset);
proto_tree_add_bytes_format_value(tipc_tree, hf_tipcv2_filler_mtu_discovery, tipc_tvb, offset, -1, NULL,
- "%d byte%c", tvb_reported_length_remaining(tipc_tvb, offset), (padlen!=1?'s':0));
+ "%d byte%c", filler_len, (filler_len!=1?'s':0));
}
}
break;
diff --git a/epan/dissectors/packet-tls-utils.c b/epan/dissectors/packet-tls-utils.c
index c30d57f..2a60d83 100644
--- a/epan/dissectors/packet-tls-utils.c
+++ b/epan/dissectors/packet-tls-utils.c
@@ -1403,6 +1403,18 @@ const value_string tls13_key_update_request[] = {
};
/* RFC 5246 7.4.1.4.1 */
+/* https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml */
+/* Note that the TLS 1.3 SignatureScheme registry reserves all values
+ * with first octet 0x00-0x06 and all values with second octet 0x00-0x03
+ * for backwards compatiblilty with TLS 1.2 SignatureAndHashAlgorithm.
+ *
+ * RFC 8422 and RFC 9189 add official support in TLS 1.2 for some algorithms
+ * originally defined for TLS 1.3, and extend the TLS SignatureAlgorithm
+ * and TLS HashAlgorithm registries, but the new values are not compatible
+ * with all of the TLS 1.3-only SignatureSchemes. Adding those values could
+ * cause confusion if used to interpret one of those schemes in a
+ * signature_algorithms extension offered in a TLS 1.3 ClientHello.
+ */
const value_string tls_hash_algorithm[] = {
{ 0, "None" },
{ 1, "MD5" },
@@ -1411,7 +1423,14 @@ const value_string tls_hash_algorithm[] = {
{ 4, "SHA256" },
{ 5, "SHA384" },
{ 6, "SHA512" },
- { 7, "SM3" },
+#if 0
+ /* RFC 8422 adds this to the HashAlgorithm registry, but it really
+ * only applies to 0x0807 and 0x0808, not for other TLS 1.3
+ * SignatureSchemes with 0x08 in the octet used for Hash in TLS 1.2.
+ * E.g., we don't want to display this for 0x0806 rsa_pss_rsae_sha512.
+ */
+ { 8, "Intrinsic" },
+#endif
{ 0, NULL }
};
@@ -1420,7 +1439,13 @@ const value_string tls_signature_algorithm[] = {
{ 1, "RSA" },
{ 2, "DSA" },
{ 3, "ECDSA" },
- { 4, "SM2" },
+#if 0
+ /* As above. */
+ { 7, "ED25519" },
+ { 8, "ED448" },
+ { 64, "GOSTR34102012_256" },
+ { 65, "GOSTR34102012_512" },
+#endif
{ 0, NULL }
};
@@ -1508,7 +1533,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 +2052,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 52e58d3..c799dad 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 afd4bfd..9a402ee 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 5e9d632..42aaf0b 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 cab0ad3..7f34faf 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 7b78b35..595bf02 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 1ccba70..b591d8d 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 9fe1a94..6b20011 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 c672534..80aa430 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 5a46af1..bda20ab 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 c4dcf9b..1c520cd 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 31cf56d..25bed90 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 6704d95..260e1d5 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 8238679..df491b5 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 a2edca8..e7a7a96 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 1f095a7..d8c6cf2 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 3421408..cf54f9f 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 08cd174..7bc9bd4 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 eaa2e75..539350d 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 dda2a48..417481f 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-direct.c b/epan/dissectors/packet-zbee-direct.c
index 971eb9b..e8e8eda 100644
--- a/epan/dissectors/packet-zbee-direct.c
+++ b/epan/dissectors/packet-zbee-direct.c
@@ -1883,9 +1883,9 @@ void proto_reg_handoff_zb_direct(void)
/* 7.7.2.3. Zigbee Direct Commissioning Service characteristics */
{ "7072377d-0001-421c-b163-491c27333a61", dissect_zb_direct_formation },
- { "7072377d-0002-421c-b163-491c27333a61", dissect_zb_direct_leave },
- { "7072377d-0003-421c-b163-491c27333a61", dissect_zb_direct_join },
- { "7072377d-0004-421c-b163-491c27333a61", dissect_zb_direct_permit_join },
+ { "7072377d-0002-421c-b163-491c27333a61", dissect_zb_direct_join },
+ { "7072377d-0003-421c-b163-491c27333a61", dissect_zb_direct_permit_join },
+ { "7072377d-0004-421c-b163-491c27333a61", dissect_zb_direct_leave },
{ "7072377d-0005-421c-b163-491c27333a61", dissect_zb_direct_status },
{ "7072377d-0006-421c-b163-491c27333a61", dissect_zb_direct_manage_joiners },
{ "7072377d-0007-421c-b163-491c27333a61", dissect_zb_direct_identify },
diff --git a/epan/dissectors/packet-zbee-nwk-gp.c b/epan/dissectors/packet-zbee-nwk-gp.c
index 5d6e827..25dc8e0 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-tlv.c b/epan/dissectors/packet-zbee-tlv.c
index 77abd2a..1ba6e49 100644
--- a/epan/dissectors/packet-zbee-tlv.c
+++ b/epan/dissectors/packet-zbee-tlv.c
@@ -2790,12 +2790,12 @@ dissect_zbee_tlvs(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint
guint8 length;
unsigned recursion_depth = p_get_proto_depth(pinfo, proto_zbee_tlv);
- if (++recursion_depth >= ZBEE_TLV_MAX_RECURSION_DEPTH) {
- proto_tree_add_expert(tree, pinfo, &ei_zbee_tlv_max_recursion_depth_reached, tvb, 0, 0);
- return tvb_reported_length_remaining(tvb, offset);
- }
+ if (++recursion_depth >= ZBEE_TLV_MAX_RECURSION_DEPTH) {
+ proto_tree_add_expert(tree, pinfo, &ei_zbee_tlv_max_recursion_depth_reached, tvb, 0, 0);
+ return offset;
+ }
- p_set_proto_depth(pinfo, proto_zbee_tlv, recursion_depth);
+ p_set_proto_depth(pinfo, proto_zbee_tlv, recursion_depth);
while (tvb_bytes_exist(tvb, offset, ZBEE_TLV_HEADER_LENGTH)) {
length = tvb_get_guint8(tvb, offset + 1) + 1;
diff --git a/epan/dissectors/packet-zbee-zcl.c b/epan/dissectors/packet-zbee-zcl.c
index f9bd5f6..a4a11e4 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 0c2283f..0c76303 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" },
@@ -8161,6 +8175,7 @@ static const value_string usb_products_vals[] = {
{ 0x04b00450, "Nikon Z9" },
{ 0x04b00451, "Nikon Z8" },
{ 0x04b00452, "Nikon Z30" },
+ { 0x04b00453, "Nikon Zf" },
{ 0x04b00601, "Nikon V1" },
{ 0x04b00602, "Nikon J1" },
{ 0x04b00603, "Nikon J2" },
@@ -8538,6 +8553,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 +8610,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 +8784,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 +8879,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 +9493,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 +10105,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 +10201,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 +10647,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 +10665,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 +11104,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 +11131,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 +11870,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 +12635,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 +12785,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 +13425,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 +13480,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 +13493,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 +14488,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 +14598,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 +14641,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 +15164,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 +15184,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 +15299,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 +15500,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 +15566,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 +15580,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 +15640,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 +15698,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 +15714,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 +15731,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 +15781,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 +15917,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 +15941,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 +23395,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 +23405,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 +24045,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 +24760,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 b6ef8f7..2c87c7e 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-05-10) */
#include "config.h"
@@ -19,12 +19,12 @@
typedef struct
{
uint32_t max_idx;
- const char* values[61328];
+ const char* values[61884];
} global_enterprises_table_t;
static global_enterprises_table_t table =
{
- 61327,
+ 61883,
{
"Reserved", // 0
"NxNetworks", // 1
@@ -316,7 +316,7 @@ static global_enterprises_table_t table =
"CSELT(Centro Studi E Laboratori Telecomunicazioni)", // 287
"Electronic Data Systems", // 288
"Brocade Communications Systems, Inc.", // 289
- "Harris Corporation", // 290
+ "L3Harris Corporation", // 290
"Technology Dynamics, Inc.", // 291
"DATAHOUSE Information Systems Ltd.", // 292
"Teltrend (NZ) Limited", // 293
@@ -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
@@ -5014,7 +5014,7 @@ static global_enterprises_table_t table =
"Vigilant Networks", // 4985
"KB/Tel", // 4986
"Simpler Networks Inc.", // 4987
- "Ronningen Consulting", // 4988
+ "Synkro AS", // 4988
"Connect Austria GmbH", // 4989
"TTI Telecom", // 4990
"Stonebridge Technologies, Inc.S.E.", // 4991
@@ -9862,7 +9862,7 @@ static global_enterprises_table_t table =
"Legend Holdings Ltd.", // 9833
"Agencja Uslug InformatycznychARTCOMP", // 9834
"Alien Network", // 9835
- "AOK Bayern", // 9836
+ "AOK Bayern – Die Gesundheitskasse", // 9836
"Ball State University", // 9837
"Broadview Networks, Inc.", // 9838
"CAREL", // 9839
@@ -10411,7 +10411,7 @@ static global_enterprises_table_t table =
"UCNET", // 10382
"Universite de Liege", // 10383
"Virginia Commonwealth University", // 10384
- "Westronic Systems, Inc.", // 10385
+ "Guardian Telecom Ltd.", // 10385
"YoungWoo Telecom Co., LTD", // 10386
"Dongah Elecomm", // 10387
"Supportcomm Teleinformatica SA", // 10388
@@ -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
@@ -19009,7 +19009,7 @@ static global_enterprises_table_t table =
"Cypak AB", // 18980
"Reserved", // 18981
"Link-Yug Ltd.", // 18982
- "AOK Sachsen", // 18983
+ "AOK PLUS – Die Gesundheitskasse für Sachsen und Thüringen", // 18983
"Magos Consulting, Ltd.", // 18984
"Insinova AG", // 18985
"FleetBoston Financial Corporation", // 18986
@@ -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
@@ -26722,7 +26722,7 @@ static global_enterprises_table_t table =
"AirPoint Co., Ltd.", // 26693
"Digitals India", // 26694
"Openlink Financial, Inc.", // 26695
- "Marvell Semiconductor Inc.", // 26696
+ "Marvell Technology Inc", // 26696
"Arces Network, LLC", // 26697
"Net Project SRL", // 26698
"Open Switch Software e Consultoria Ltda", // 26699
@@ -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
@@ -40480,7 +40480,7 @@ static global_enterprises_table_t table =
"Allens, Inc.", // 40451
"Care Team Connect Inc.", // 40452
"School District", // 40453
- "Jaguar Network", // 40454
+ "Free Pro", // 40454
"TMM.CX", // 40455
"Radio Systems Ltd", // 40456
"Zen Entertainment, Inc.", // 40457
@@ -40598,7 +40598,7 @@ static global_enterprises_table_t table =
"HERNIS Scan Systems AS", // 40569
"RFOptic", // 40570
"SRT Communications, Inc.", // 40571
- "Carlos Domingues", // 40572
+ "CapTemp, Lda", // 40572
"vklop.com", // 40573
"Ukrainian Computer Laboratory ltd.", // 40574
"Touro Infirmary", // 40575
@@ -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
@@ -47482,7 +47482,7 @@ static global_enterprises_table_t table =
"Gobierno de Santa Fe", // 47453
"Area d'Inxenieria Telematica - University of Oviedo", // 47454
"Sydved AB", // 47455
- "Vodafone NZ Limited", // 47456
+ "One New Zealand Group Limited", // 47456
"SAS Orbitracs", // 47457
"GIGANET NETWORKING SOLUTIONS LTD", // 47458
"BKM-Micronic Richtfunkanlagen GmbH", // 47459
@@ -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
@@ -49330,7 +49330,7 @@ static global_enterprises_table_t table =
"BCS Information Systems Pte Ltd", // 49301
"Dart Container", // 49302
"Flexmedia Ind. e Com. de Tecnologia Ltda.", // 49303
- "Tapoustry", // 49304
+ NULL, // 49304
"Neural Technologies", // 49305
"AUM Cardiovascular Inc", // 49306
"Secturion Systems Inc.", // 49307
@@ -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
@@ -51734,7 +51734,7 @@ static global_enterprises_table_t table =
"Ionx Solutions", // 51705
"Anditi", // 51706
"South Sound Oncology Services, PC", // 51707
- "Gatema a.s.", // 51708
+ "Medutech s.r.o.", // 51708
"K-CIX", // 51709
"Electronic Monitoring Solutionz Ltd", // 51710
"Apis Networks", // 51711
@@ -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
@@ -54624,7 +54624,7 @@ static global_enterprises_table_t table =
"Phinergy", // 54595
"Duracomm Corporation", // 54596
"L&T Technology Services", // 54597
- "Daimler AG", // 54598
+ "Mercedes-Benz Group AG", // 54598
"DPD Direct Parcel Distribution Austria GmbH", // 54599
"PGE Systemy S.A.", // 54600
"LLC «FOTEL»", // 54601
@@ -55203,7 +55203,7 @@ static global_enterprises_table_t table =
"LPS France", // 55174
"Hans Sasserath GmbH & Co. KG", // 55175
"Hitachi Industrial Equipment Systems Co.,Ltd.", // 55176
- "MOS Corporate Service GmbH", // 55177
+ "MOS Corporate Services GmbH", // 55177
"OECHSLER AG", // 55178
"OECHSLER Motion GmbH", // 55179
"Säters Kommun", // 55180
@@ -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
@@ -57990,7 +57990,7 @@ static global_enterprises_table_t table =
"Telycan S.L.", // 57961
"Sedam IT d.o.o.", // 57962
"Afzar Pardaz Tose'eh", // 57963
- "ZAP Surgical Systems, Inc.", // 57964
+ "ZAP Surgical Systems, Inc", // 57964
"LLC ""Company DVK-electro""", // 57965
"Aethera Technologies Limited", // 57966
"INSTITUTO PARA LA DINAMIZACIÓN ECONÓMICA S.A.", // 57967
@@ -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
@@ -59920,7 +59920,7 @@ static global_enterprises_table_t table =
"Baltic Institute of Advanced Technology", // 59891
"Denomas Denetim Otomasyon", // 59892
"ZhangZexin", // 59893
- "LBS Westdeutsche Landesbausparkasse", // 59894
+ "LBS Landesbausparkasse NordWest", // 59894
"DOXIO", // 59895
"NTS LLC", // 59896
"Anothermouse", // 59897
@@ -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,563 @@ 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", // 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
+ "ASEE Solutions 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
+ "MA Labs", // 61692
+ "Karam Jameel Moore", // 61693
+ "Local Connectivity Lab", // 61694
+ "Eltron s.r.o.", // 61695
+ "MEMMERT GMBH + CO. KG", // 61696
+ "Bolle", // 61697
+ "r01.li hébergement communautaire", // 61698
+ "Esc Muhendislik A.S.", // 61699
+ "Southgate Community Schools", // 61700
+ "Piing.ai", // 61701
+ "Kuhmo Oy", // 61702
+ "Thomasville City Schools", // 61703
+ "Luminex Software Inc.", // 61704
+ "Ravit Technologies Pvt. Ltd.", // 61705
+ "NTT DATA, Inc - Netherlands", // 61706
+ "Shanghai Fanzhen Information Technology Co., Ltd.", // 61707
+ "hotwirestudios", // 61708
+ "PatchAmp", // 61709
+ "BJS Family", // 61710
+ "Jess Schallenberg", // 61711
+ "Masoud Shokohi", // 61712
+ "NetworkECO", // 61713
+ "The Principia Corporation", // 61714
+ "Omnissa", // 61715
+ "A.E. Perkins", // 61716
+ "iStore (QLD) Pty Ltd", // 61717
+ "C&D Technologies, Inc", // 61718
+ "THINGS HORIZON PVT LTD", // 61719
+ "Petroleum Development Oman", // 61720
+ "Decatur Morgan Hospital", // 61721
+ "Jennifer Ai", // 61722
+ "Hitachi Vantara Ltd.", // 61723
+ "LEMA", // 61724
+ "Carleton Place & District Memorial Hospital", // 61725
+ "Technical Momentum", // 61726
+ "Torrion River", // 61727
+ "杭州众兴慧智能科技有限公司 (Hangzhou Zhongxinghui Intelligent Technology Co., Ltd.)", // 61728
+ "Stadtverwaltung Schleswig", // 61729
+ "Franco Brothers Enterprises llc.", // 61730
+ "Grupo Armas Trasmediterranea", // 61731
+ "TM Technology Services Sdn Bhd", // 61732
+ "Defigo Ltd.", // 61733
+ "Syntony GNSS", // 61734
+ "IT-Schmid GmbH & Co.KG", // 61735
+ "AssetBook IoT", // 61736
+ "Global Message Services AG", // 61737
+ "DWDM.RU LLC", // 61738
+ "Mentech Power", // 61739
+ "Karol Szczepanowski", // 61740
+ "Ortocomputer", // 61741
+ "Cv Ridho", // 61742
+ "WorldwideOSC", // 61743
+ "Chewing Project", // 61744
+ "KanruInfo", // 61745
+ "Bostocks.Club", // 61746
+ "Hanplast Sp. z o.o.", // 61747
+ "Rikom Technologies SDH. BHD", // 61748
+ "Technické sitě Brno, akciová společnost", // 61749
+ "XDTRUST 02-28-2024 CHARLEY MINNGEAO", // 61750
+ "Enhub", // 61751
+ "Shahed, Inc.", // 61752
+ "Lexi Winter", // 61753
+ "FADU", // 61754
+ "Kraftringen Energi AB", // 61755
+ "ANDA TELECOM PVT. LTD", // 61756
+ "Vierkant Software GmbH", // 61757
+ "Wartsila SAM Electronics GmbH", // 61758
+ "Lehigh University", // 61759
+ "Crist Engineers", // 61760
+ "Simau srl", // 61761
+ "RAPIN", // 61762
+ "Växjö Energi AB", // 61763
+ "ISG Nordic AB", // 61764
+ "DLR e.V. RB", // 61765
+ "SigmaTron International, Inc.", // 61766
+ "HTT", // 61767
+ "CommScope Technologies LLC", // 61768
+ "Jeff Allen", // 61769
+ "hacKRNspace", // 61770
+ "Shenzhen Vahours New Energy Corporation", // 61771
+ "Shenzhen Number Energy Saving Corporation", // 61772
+ "SUMMIT IT CONSULT GmbH", // 61773
+ "Gröner Group AG", // 61774
+ "CG Elementum AG", // 61775
+ "ecobuilding AG", // 61776
+ "Metaminds", // 61777
+ "GLN Schakt & Transport", // 61778
+ "Adrian Gonzaga-Ge Aguilar", // 61779
+ "Beijing Maker 6 Technology Co. Ltd.", // 61780
+ "Noosphere Technologies, Inc.", // 61781
+ "Century Autogroep BV", // 61782
+ "RLKM UG", // 61783
+ "CIUSSS du Centre-Sud-de-l'Île-de-Montréal", // 61784
+ "上海源中信息科技有限公司 (Shanghai Yuanzhong Information Technology Co., Ltd.)", // 61785
+ "Medicalholodeck", // 61786
+ "Kostur IT SERVICES", // 61787
+ "IGOSEC.PL", // 61788
+ "Woningstichting Heteren", // 61789
+ "Omnibit", // 61790
+ "New Hope Information systems", // 61791
+ "Call Box", // 61792
+ "Tradewinds Networks Incorporated", // 61793
+ "Masoud", // 61794
+ "Moreforlesstech", // 61795
+ "Ob/Gyn Professionals of East Tennessee", // 61796
+ "Sobel Tech", // 61797
+ "Beijing Urban Construction Intelligent Control Co.,Ltd", // 61798
+ "Optima SC Inc.", // 61799
+ "Vikor Scientific", // 61800
+ "Nova Software SRL", // 61801
+ "Alta Labs", // 61802
+ "Fox Crypto B.V.", // 61803
+ "XobeBook", // 61804
+ "NEXION Corporation", // 61805
+ "VOLARIS Marcin Ziemiański", // 61806
+ "Marcin Ziemiański", // 61807
+ "kISA@kubus IT GbR", // 61808
+ "The Perfume Shop", // 61809
+ "Bitzer Compressores Ltda.", // 61810
+ "Noah Mesel", // 61811
+ "Tutoringbytiff", // 61812
+ "Irista Technologies, Inc", // 61813
+ "Gitservice.dk", // 61814
+ "Blair A Piper", // 61815
+ "Jungheinrich AG", // 61816
+ "New Yard B.V.", // 61817
+ "Surry County Schools", // 61818
+ "Information Security Services S.A.", // 61819
+ "Chorke, Inc.", // 61820
+ "Dynamo Software", // 61821
+ "Per ALBIN HANSSON", // 61822
+ "Middlesurf Inc.", // 61823
+ "Canadian Centre for Cyber Security", // 61824
+ "H ENERGY LTD", // 61825
+ "Cloud Solutions LLC", // 61826
+ "MC Burny", // 61827
+ "MTN Converged Solutions", // 61828
+ "SAJ DIGITAL ENERGY AUSTRALIA PTY LTD", // 61829
+ "Tinh Van Technologies JSC.", // 61830
+ "MFK Burny", // 61831
+ "Alfavit", // 61832
+ "Xiaojun Ben", // 61833
+ "Venturus Centro de Inovacao Tecnologica", // 61834
+ "Otheda Limited", // 61835
+ "AtFocus", // 61836
+ "Associated Medical Specialists, d/b/a Coastal Cancer Center", // 61837
+ "iatele", // 61838
+ "Secretarium", // 61839
+ "Pohjois-Suomen Metsämarkkinat Oy", // 61840
+ "M+C Schiffer GmbH", // 61841
+ "TRANS ELECTRIC CO.,LTD.", // 61842
+ "Impala Terminals", // 61843
+ "meet patel", // 61844
+ "Paul Rodriguez", // 61845
+ "North Platte Public Schools", // 61846
+ "IEIT SYSTEMS Co.,Ltd.", // 61847
+ "Nexfi", // 61848
+ "ZJUSCT", // 61849
+ "mrhaoxx", // 61850
+ "Cummins, Inc.", // 61851
+ "Northside Hospital, Inc. for the benefit of Atlanta Cancer Care", // 61852
+ "nexgentec AG", // 61853
+ "COFACE", // 61854
+ "Nationwide Telephone Assistance Ltd", // 61855
+ "NextGenGames", // 61856
+ "Converge Enterprise Cloud", // 61857
+ "Silines", // 61858
+ "Miami-Dade Police Department, Fl.", // 61859
+ "SipaZon AB", // 61860
+ "Home Lab LLC", // 61861
+ "NAMIRIAL LIMITED", // 61862
+ "The Danish Society of Engineers, IDA", // 61863
+ "GIGALIGHT", // 61864
+ "SKS Welding Systems GmbH", // 61865
+ "IronWiFi, LLC", // 61866
+ "IDnow Trust Services AB", // 61867
+ "西安恒多智能科技有限公司 (Xi'an Hengduo Intelligent Technology Co., Ltd.)", // 61868
+ "Visional Labs", // 61869
+ "Marieborgs Lantbruk AB", // 61870
+ "Davide Crivelli", // 61871
+ "KAYTUS SYSTEMS PTE. LTD.", // 61872
+ "Landratsamt Tübingen", // 61873
+ "WFF IT-Service GmbH", // 61874
+ "Beijing Jinqun Technology Co., Ltd", // 61875
+ "Shanghai ReeLink Global Communication Company LTD", // 61876
+ "htp GmbH", // 61877
+ "New H3C Technologies Co., Ltd", // 61878
+ "Villageofdali", // 61879
+ "Xsight Labs", // 61880
+ "New Zealand Institute for Plant and Food Research", // 61881
+ "Esri Chile", // 61882
+ "BEQ Technology" // 61883
}
};
diff --git a/epan/epan.c b/epan/epan.c
index f665983..43d1f08 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 cce93ed..6d262cf 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 },
@@ -38,6 +39,7 @@ static const manuf_registry_t ieee_registry_table[] = {
{ { 0x10, 0x06, 0x48 }, MA_M },
{ { 0x10, 0x07, 0x23 }, MA_M },
{ { 0x10, 0x54, 0xD2 }, MA_M },
+ { { 0x10, 0x63, 0xA3 }, MA_M },
{ { 0x10, 0xDC, 0xB6 }, MA_M },
{ { 0x14, 0x1F, 0xBA }, MA_M },
{ { 0x14, 0x4F, 0xD7 }, MA_M },
@@ -92,6 +94,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 +124,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 },
@@ -147,12 +151,15 @@ static const manuf_registry_t ieee_registry_table[] = {
{ { 0x58, 0xC4, 0x1E }, MA_M },
{ { 0x58, 0xE8, 0x76 }, MA_M },
{ { 0x58, 0xFC, 0xDB }, MA_M },
+ { { 0x5C, 0x5A, 0x4C }, MA_M },
{ { 0x5C, 0x6A, 0xEC }, MA_M },
{ { 0x5C, 0x85, 0x7E }, MA_M },
+ { { 0x5C, 0x87, 0xD8 }, MA_M },
{ { 0x5C, 0xF2, 0x86 }, MA_M },
{ { 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 +204,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 +230,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 +299,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 +308,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 },
@@ -338,6 +349,7 @@ static const manuf_registry_t ieee_registry_table[] = {
{ { 0xE8, 0x78, 0x29 }, MA_M },
{ { 0xE8, 0xB4, 0x70 }, MA_M },
{ { 0xE8, 0xFF, 0x1E }, MA_M },
+ { { 0xEC, 0x5B, 0xCD }, MA_M },
{ { 0xEC, 0x9A, 0x0C }, MA_M },
{ { 0xEC, 0x9F, 0x0D }, MA_M },
{ { 0xF0, 0x22, 0x1D }, MA_M },
@@ -354,6 +366,7 @@ static const manuf_registry_t ieee_registry_table[] = {
{ { 0xF4, 0xA4, 0x54 }, MA_M },
{ { 0xF8, 0x02, 0x78 }, MA_M },
{ { 0xF8, 0x1D, 0x78 }, MA_M },
+ { { 0xF8, 0x7A, 0x39 }, MA_M },
{ { 0xF8, 0x8A, 0x3C }, MA_M },
{ { 0xF8, 0xB5, 0x68 }, MA_M },
{ { 0xFC, 0x61, 0x79 }, MA_M },
@@ -1022,7 +1035,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x02, 0x92 }, "LogicInnovat", "Logic Innovations, Inc." },
{ { 0x00, 0x02, 0x93 }, "SolidData", "Solid Data Systems" },
{ { 0x00, 0x02, 0x94 }, "TokyoSokushi", "Tokyo Sokushin Co., Ltd." },
- { { 0x00, 0x02, 0x95 }, "IPAccess", "IP.Access Limited" },
+ { { 0x00, 0x02, 0x95 }, "MavenirIpaUk", "Mavenir Ipa Uk Ltd" },
{ { 0x00, 0x02, 0x96 }, "Lectron", "Lectron Co,. Ltd." },
{ { 0x00, 0x02, 0x97 }, "CCORnet", "C-COR.net" },
{ { 0x00, 0x02, 0x98 }, "Broadframe", "Broadframe Corporation" },
@@ -1766,7 +1779,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" },
@@ -2884,7 +2897,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x09, 0xF4 }, "AlconLaborat", "Alcon Laboratories, Inc." },
{ { 0x00, 0x09, 0xF5 }, "EmersonNetwo", "Emerson Network Power Co.,Ltd" },
{ { 0x00, 0x09, 0xF6 }, "EasternDigit", "Shenzhen Eastern Digital Tech Ltd." },
- { { 0x00, 0x09, 0xF7 }, "SEDdivisionC", "SED, a division of Calian" },
+ { { 0x00, 0x09, 0xF7 }, "CalianAdvanc", "Calian Advanced Technologies" },
{ { 0x00, 0x09, 0xF8 }, "UnimoTechnol", "Unimo Technology Co., Ltd." },
{ { 0x00, 0x09, 0xF9 }, "ArtJapan", "Art Japan Co., Ltd." },
{ { 0x00, 0x09, 0xFB }, "PhilipsPatie", "Philips Patient Monitoring" },
@@ -3281,7 +3294,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x0B, 0x83 }, "Datawatt", "Datawatt B.V." },
{ { 0x00, 0x0B, 0x84 }, "Bodet", "Bodet" },
{ { 0x00, 0x0B, 0x85 }, "Cisco", "Cisco Systems, Inc" },
- { { 0x00, 0x0B, 0x86 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x00, 0x0B, 0x86 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x00, 0x0B, 0x87 }, "AmericanReli", "American Reliance Inc." },
{ { 0x00, 0x0B, 0x88 }, "Vidisco", "Vidisco ltd." },
{ { 0x00, 0x0B, 0x89 }, "TopGlobalTec", "Top Global Technology, Ltd." },
@@ -4573,7 +4586,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." },
@@ -7004,7 +7017,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x1A, 0x1B }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x00, 0x1A, 0x1C }, "GT&TEngineer", "GT&T Engineering Pte Ltd" },
{ { 0x00, 0x1A, 0x1D }, "PChomeOnline", "PChome Online Inc." },
- { { 0x00, 0x1A, 0x1E }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x00, 0x1A, 0x1E }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x00, 0x1A, 0x1F }, "CoastalEnvir", "Coastal Environmental Systems" },
{ { 0x00, 0x1A, 0x20 }, "CMOTECH", "CMOTECH Co. Ltd." },
{ { 0x00, 0x1A, 0x21 }, "BrookhuisApp", "Brookhuis Applied Technologies BV" },
@@ -7646,7 +7659,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" },
@@ -8195,7 +8208,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x1E, 0xC3 }, "Kozio", "Kozio, Inc." },
{ { 0x00, 0x1E, 0xC4 }, "Celio", "Celio Corp" },
{ { 0x00, 0x1E, 0xC5 }, "MiddleAtlant", "Middle Atlantic Products Inc" },
- { { 0x00, 0x1E, 0xC6 }, "ObviusHoldin", "Obvius Holdings LLC" },
+ { { 0x00, 0x1E, 0xC6 }, "LevitonManuf", "Leviton Manufacturing Co., Inc" },
{ { 0x00, 0x1E, 0xC7 }, "2Wire", "2Wire Inc" },
{ { 0x00, 0x1E, 0xC8 }, "RapidMobile", "Rapid Mobile (Pty) Ltd" },
{ { 0x00, 0x1E, 0xC9 }, "Dell", "Dell Inc." },
@@ -9044,7 +9057,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" },
@@ -9631,7 +9644,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x24, 0x69 }, "FasttelSmart", "Fasttel - Smart Doorphones" },
{ { 0x00, 0x24, 0x6A }, "SolidYear", "Solid Year Co., Ltd." },
{ { 0x00, 0x24, 0x6B }, "Covia", "Covia, Inc." },
- { { 0x00, 0x24, 0x6C }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x00, 0x24, 0x6C }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x00, 0x24, 0x6D }, "WeinzierlEng", "Weinzierl Engineering GmbH" },
{ { 0x00, 0x24, 0x6E }, "PhihongUSA", "Phihong USA Corp." },
{ { 0x00, 0x24, 0x6F }, "OndaCommunic", "Onda Communication spa" },
@@ -10329,6 +10342,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" },
@@ -11746,6 +11760,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" },
@@ -12311,6 +12326,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0xA3, 0x88 }, "SkyUk", "Sky Uk Limited" },
{ { 0x00, 0xA3, 0x8E }, "Cisco", "Cisco Systems, Inc" },
{ { 0x00, 0xA3, 0xD1 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x00, 0xA4, 0x1C }, "TonlyTechnol", "Tonly Technology Co. Ltd" },
{ { 0x00, 0xA4, 0x5F }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x00, 0xA5, 0x09 }, "WigWag", "WigWag Inc." },
{ { 0x00, 0xA5, 0x54 }, "Intel", "Intel Corporate" },
@@ -12324,6 +12340,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 +12977,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" },
@@ -13321,6 +13339,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x02, 0xCF, 0x1C }, "Communicatio", "Communication Machinery Corporation" },
{ { 0x02, 0xE6, 0xD3 }, "NixdorfCompu", "Nixdorf Computer Corp." },
{ { 0x04, 0x00, 0x67 }, "StanleyBlack", "Stanley Black & Decker" },
+ { { 0x04, 0x01, 0xA1 }, "Fortinet", "Fortinet, Inc." },
{ { 0x04, 0x01, 0xBB }, "TecnoMobile", "Tecno Mobile Limited" },
{ { 0x04, 0x02, 0x1F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x04, 0x02, 0xCA }, "Vtsonic", "Shenzhen Vtsonic Co.,ltd" },
@@ -13340,6 +13359,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x04, 0x0E, 0x3C }, "HP", "HP Inc." },
{ { 0x04, 0x0E, 0xC2 }, "ViewSonicMob", "ViewSonic Mobile China Limited" },
{ { 0x04, 0x10, 0x6B }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
+ { { 0x04, 0x13, 0x7A }, "Apple", "Apple, Inc." },
{ { 0x04, 0x14, 0x71 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x04, 0x15, 0x52 }, "Apple", "Apple, Inc." },
{ { 0x04, 0x15, 0xD9 }, "Viwone", "Viwone" },
@@ -13362,6 +13382,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 +13417,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." },
@@ -13403,6 +13425,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x04, 0x45, 0xA1 }, "NIRITXinweiT", "NIRIT- Xinwei Telecom Technology Co., Ltd." },
{ { 0x04, 0x46, 0x65 }, "MurataManufa", "Murata Manufacturing Co., Ltd." },
{ { 0x04, 0x46, 0xCF }, "VenustechCyb", "Beijing Venustech Cybervision Co.,Ltd." },
+ { { 0x04, 0x47, 0x07 }, "TexasInstrum", "Texas Instruments" },
{ { 0x04, 0x47, 0x2A }, "PaloAltoNetw", "Palo Alto Networks" },
{ { 0x04, 0x48, 0x9A }, "Apple", "Apple, Inc." },
{ { 0x04, 0x49, 0x5D }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -13509,6 +13532,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x04, 0x92, 0xEE }, "iway", "iway AG" },
{ { 0x04, 0x94, 0x6B }, "TecnoMobile", "Tecno Mobile Limited" },
{ { 0x04, 0x94, 0xA1 }, "CatchWind", "Catch The Wind Inc" },
+ { { 0x04, 0x94, 0xE9 }, "FAXedgeTechn", "FAXedge Technologies, LLC" },
{ { 0x04, 0x95, 0x73 }, "zte", "zte corporation" },
{ { 0x04, 0x95, 0xE6 }, "TendaTechnol", "Tenda Technology Co.,Ltd.Dongguan branch" },
{ { 0x04, 0x96, 0x45 }, "WuxiSkyChipI", "Wuxi Sky Chip Interconnection Technology Co.,Ltd." },
@@ -13562,7 +13586,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x04, 0xBC, 0x87 }, "JustLinkTech", "Shenzhen JustLink Technology Co., LTD" },
{ { 0x04, 0xBC, 0x9F }, "Calix", "Calix Inc." },
{ { 0x04, 0xBD, 0x70 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
- { { 0x04, 0xBD, 0x88 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x04, 0xBD, 0x88 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x04, 0xBD, 0x97 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x04, 0xBD, 0xBF }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x04, 0xBF, 0x1B }, "Dell", "Dell Inc." },
@@ -13627,6 +13651,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x04, 0xE2, 0x29 }, "QingdaoHaier", "Qingdao Haier Technology Co.,Ltd" },
{ { 0x04, 0xE2, 0xF8 }, "AEPTicketing", "AEP Ticketing solutions srl" },
{ { 0x04, 0xE3, 0x1A }, "SagemcomBroa", "Sagemcom Broadband SAS" },
+ { { 0x04, 0xE3, 0x87 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x04, 0xE4, 0x51 }, "TexasInstrum", "Texas Instruments" },
{ { 0x04, 0xE4, 0xB6 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x04, 0xE5, 0x36 }, "Apple", "Apple, Inc." },
@@ -13819,6 +13844,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x08, 0x00, 0x90 }, "Sonoma", "Sonoma Systems" },
{ { 0x08, 0x01, 0x0F }, "SichuanTiany", "Sichuan Tianyi Comheart Telecom Co.,LTD" },
{ { 0x08, 0x02, 0x05 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x08, 0x02, 0x3C }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x08, 0x02, 0x8E }, "Netgear", "Netgear" },
{ { 0x08, 0x03, 0x42 }, "PaloAltoNetw", "Palo Alto Networks" },
{ { 0x08, 0x03, 0x71 }, "Krg", "Krg Corporate" },
@@ -13840,6 +13866,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x08, 0x10, 0x86 }, "NECPlatforms", "NEC Platforms, Ltd." },
{ { 0x08, 0x11, 0x5E }, "Bitel", "Bitel Co., Ltd." },
{ { 0x08, 0x11, 0x96 }, "Intel", "Intel Corporate" },
+ { { 0x08, 0x12, 0x87 }, "JiangxiRisou", "Jiangxi Risound Electronics Co., LTD" },
{ { 0x08, 0x12, 0xA5 }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0x08, 0x14, 0x43 }, "Unibrain", "Unibrain S.A." },
{ { 0x08, 0x15, 0x2F }, "SamsungElect", "Samsung Electronics Co., Ltd. ARTIK" },
@@ -13911,6 +13938,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 +13955,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" },
@@ -13991,6 +14020,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x08, 0x81, 0xF4 }, "JuniperNetwo", "Juniper Networks" },
{ { 0x08, 0x84, 0x66 }, "NovartisPhar", "Novartis Pharma AG" },
{ { 0x08, 0x84, 0x9D }, "AmazonTechno", "Amazon Technologies Inc." },
+ { { 0x08, 0x84, 0xFB }, "HonorDevice", "Honor Device Co., Ltd." },
{ { 0x08, 0x85, 0x5B }, "KontronEurop", "Kontron Europe GmbH" },
{ { 0x08, 0x86, 0x20 }, "TecnoMobile", "Tecno Mobile Limited" },
{ { 0x08, 0x86, 0x3B }, "BelkinIntern", "Belkin International Inc." },
@@ -14032,6 +14062,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" },
@@ -14050,11 +14081,13 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x08, 0xB4, 0x9D }, "TecnoMobile", "Tecno Mobile Limited" },
{ { 0x08, 0xB4, 0xB1 }, "Google", "Google, Inc." },
{ { 0x08, 0xB4, 0xCF }, "AbicomIntern", "Abicom International" },
+ { { 0x08, 0xB4, 0xD2 }, "Intel", "Intel Corporate" },
{ { 0x08, 0xB6, 0x1F }, "Espressif", "Espressif Inc." },
{ { 0x08, 0xB7, 0x38 }, "LiteOnTechno", "Lite-On Technogy Corp." },
{ { 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 +14126,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,6 +14155,7 @@ 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" },
@@ -14145,10 +14180,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." },
@@ -14160,7 +14197,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0x02, 0xBD }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x0C, 0x04, 0x00 }, "Jantardoo", "Jantar d.o.o." },
{ { 0x0C, 0x05, 0x35 }, "Juniper", "Juniper Systems" },
+ { { 0x0C, 0x07, 0xDF }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 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,12 +14226,14 @@ 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" },
{ { 0x0C, 0x29, 0x8F }, "Tesla", "Tesla,Inc." },
{ { 0x0C, 0x29, 0xEF }, "Dell", "Dell Inc." },
{ { 0x0C, 0x2A, 0x69 }, "electricimp", "electric imp, incorporated" },
+ { { 0x0C, 0x2A, 0x6F }, "SiliconLabor", "Silicon Laboratories" },
{ { 0x0C, 0x2A, 0x86 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x0C, 0x2A, 0xE7 }, "GeneralResea", "Beijing General Research Institute of Mining and Metallurgy" },
{ { 0x0C, 0x2C, 0x54 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -14201,6 +14242,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0x2F, 0xB0 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x0C, 0x30, 0x21 }, "Apple", "Apple, Inc." },
{ { 0x0C, 0x31, 0xDC }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x0C, 0x32, 0x3A }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x0C, 0x35, 0x26 }, "Microsoft", "Microsoft Corporation" },
{ { 0x0C, 0x35, 0x4F }, "Nokia", "Nokia" },
{ { 0x0C, 0x35, 0xFE }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
@@ -14229,6 +14271,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 +14307,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" },
@@ -14306,6 +14350,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0x84, 0x84 }, "ZenoviaElect", "Zenovia Electronics Inc." },
{ { 0x0C, 0x84, 0xDC }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x0C, 0x85, 0x25 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x0C, 0x85, 0xE1 }, "Apple", "Apple, Inc." },
{ { 0x0C, 0x86, 0x10 }, "JuniperNetwo", "Juniper Networks" },
{ { 0x0C, 0x86, 0xC7 }, "JabilCircuit", "Jabil Circuit (Guangzhou) Limited" },
{ { 0x0C, 0x87, 0x72 }, "FujianStarNe", "Fujian Star-Net Communication Co.,Ltd" },
@@ -14337,7 +14382,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0x96, 0xBF }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x0C, 0x96, 0xCD }, "Mercury", "Mercury Corporation" },
{ { 0x0C, 0x96, 0xE6 }, "CloudNetwork", "Cloud Network Technology (Samoa) Limited" },
- { { 0x0C, 0x97, 0x5F }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x0C, 0x97, 0x5F }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x0C, 0x98, 0x38 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x0C, 0x9A, 0x3C }, "Intel", "Intel Corporate" },
{ { 0x0C, 0x9A, 0x42 }, "FnLinkTechno", "Fn-Link Technology Limited" },
@@ -14388,6 +14433,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0xBF, 0x74 }, "MorseMicro", "Morse Micro" },
{ { 0x0C, 0xC0, 0xC0 }, "MagnetiMarel", "Magneti Marelli Sistemas Electronicos Mexico" },
{ { 0x0C, 0xC3, 0xA7 }, "Meritec", "Meritec" },
+ { { 0x0C, 0xC3, 0xB8 }, "JiahuaZhongl", "Shenzhen Jiahua Zhongli Technology Co., LTD" },
{ { 0x0C, 0xC4, 0x13 }, "Google", "Google, Inc." },
{ { 0x0C, 0xC4, 0x7A }, "SuperMicroCo", "Super Micro Computer, Inc." },
{ { 0x0C, 0xC4, 0x7E }, "EUCAST", "EUCAST Co., Ltd." },
@@ -14413,6 +14459,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0xD0, 0xF8 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x0C, 0xD2, 0x92 }, "Intel", "Intel Corporate" },
{ { 0x0C, 0xD2, 0xB5 }, "BinatoneTele", "Binatone Telecommunication Pvt. Ltd" },
+ { { 0x0C, 0xD3, 0xA1 }, "MonthlyKitch", "Monthly Kitchen" },
{ { 0x0C, 0xD5, 0x02 }, "WestellTechn", "Westell Technologies Inc." },
{ { 0x0C, 0xD5, 0xD3 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x0C, 0xD6, 0x96 }, "Amimon", "Amimon Ltd" },
@@ -14445,10 +14492,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0xE8, 0x2F }, "BonfiglioliV", "Bonfiglioli Vectron GmbH" },
{ { 0x0C, 0xE9, 0x36 }, "ELIMOS", "ELIMOS srl" },
{ { 0x0C, 0xE9, 0x9A }, "AtlsAltec", "Atls Altec" },
+ { { 0x0C, 0xEA, 0x14 }, "Ubiquiti", "Ubiquiti Inc" },
{ { 0x0C, 0xEA, 0xC9 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 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" },
@@ -14521,6 +14570,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x10, 0x1E, 0xDA }, "IngenicoTerm", "Ingenico Terminals Sas" },
{ { 0x10, 0x1F, 0x74 }, "HewlettPacka", "Hewlett Packard" },
{ { 0x10, 0x22, 0x79 }, "ZeroDesktop", "ZeroDesktop, Inc." },
+ { { 0x10, 0x23, 0x81 }, "BarrotTechno", "Barrot Technology Co.,LTD" },
{ { 0x10, 0x24, 0x07 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x10, 0x27, 0x79 }, "Sadel", "Sadel S.p.A." },
{ { 0x10, 0x27, 0xBE }, "Tvip", "Tvip" },
@@ -14543,7 +14593,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" },
@@ -14566,6 +14618,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x10, 0x3D, 0x3E }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
{ { 0x10, 0x3D, 0xEA }, "HFCTechnolog", "HFC Technology (Beijing) Ltd. Co." },
{ { 0x10, 0x3F, 0x44 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
+ { { 0x10, 0x3F, 0x8C }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x10, 0x40, 0xF3 }, "Apple", "Apple, Inc." },
{ { 0x10, 0x41, 0x21 }, "TellescomInd", "Tellescom Industria E Comercio Em Telecomunicacao" },
{ { 0x10, 0x41, 0x7F }, "Apple", "Apple, Inc." },
@@ -14587,7 +14640,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x10, 0x4D, 0x77 }, "InnovativeCo", "Innovative Computer Engineering" },
{ { 0x10, 0x4E, 0x07 }, "GenvisionInd", "Shanghai Genvision Industries Co.,Ltd" },
{ { 0x10, 0x4E, 0x89 }, "GarminIntern", "Garmin International" },
- { { 0x10, 0x4F, 0x58 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x10, 0x4F, 0x58 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x10, 0x4F, 0xA8 }, "Sony", "Sony Corporation" },
{ { 0x10, 0x50, 0x72 }, "Sercomm", "Sercomm Corporation." },
{ { 0x10, 0x51, 0x07 }, "Intel", "Intel Corporate" },
@@ -14608,6 +14661,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 +14711,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." },
@@ -14669,6 +14724,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x10, 0x8E, 0xBA }, "Molekule", "Molekule" },
{ { 0x10, 0x8E, 0xE0 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x10, 0x8F, 0xFE }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x10, 0x90, 0x7D }, "FunshionOnli", "Funshion Online Technologies Co.,Ltd" },
{ { 0x10, 0x90, 0xFA }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x10, 0x91, 0xA8 }, "Espressif", "Espressif Inc." },
{ { 0x10, 0x91, 0xD1 }, "Intel", "Intel Corporate" },
@@ -14681,6 +14737,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 +14752,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." },
@@ -14737,6 +14795,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x10, 0xBF, 0x48 }, "ASUSTekCOMPU", "ASUSTek COMPUTER INC." },
{ { 0x10, 0xBF, 0x67 }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0x10, 0xC0, 0x7C }, "BlurayDiscAs", "Blu-ray Disc Association" },
+ { { 0x10, 0xC0, 0xD5 }, "HOLOEYEPhoto", "HOLOEYE Photonics AG" },
{ { 0x10, 0xC1, 0x72 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x10, 0xC2, 0x2F }, "ChinaEntropy", "China Entropy Co., Ltd." },
{ { 0x10, 0xC2, 0x5A }, "VantivaUSA", "Vantiva USA LLC" },
@@ -14776,6 +14835,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x10, 0xD7, 0xB0 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x10, 0xDA, 0x43 }, "Netgear", "Netgear" },
{ { 0x10, 0xDA, 0x49 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
+ { { 0x10, 0xDA, 0x63 }, "Apple", "Apple, Inc." },
{ { 0x10, 0xDC, 0x4A }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x10, 0xDD, 0xB1 }, "Apple", "Apple, Inc." },
{ { 0x10, 0xDD, 0xF4 }, "MaxwayElectr", "Maxway Electronics CO.,LTD" },
@@ -14785,6 +14845,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" },
@@ -14853,6 +14914,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x14, 0x13, 0xFB }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x14, 0x14, 0x4B }, "RuijieNetwor", "Ruijie Networks Co.,LTD" },
{ { 0x14, 0x14, 0x59 }, "VodafoneItal", "Vodafone Italia S.p.A." },
+ { { 0x14, 0x14, 0x7D }, "Apple", "Apple, Inc." },
{ { 0x14, 0x14, 0xE6 }, "NingboSanheD", "Ningbo Sanhe Digital Co.,Ltd" },
{ { 0x14, 0x15, 0x7C }, "TokyoCosmosE", "Tokyo Cosmos Electric Co.,Ltd." },
{ { 0x14, 0x16, 0x9D }, "Cisco", "Cisco Systems, Inc" },
@@ -14867,6 +14929,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" },
@@ -14878,7 +14941,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x14, 0x23, 0x0A }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x14, 0x23, 0xD7 }, "Eutronix", "Eutronix Co., Ltd." },
{ { 0x14, 0x23, 0xF2 }, "Broadcom", "Broadcom Limited" },
+ { { 0x14, 0x23, 0xF3 }, "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 +14968,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" },
@@ -14976,6 +15042,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x14, 0x6B, 0x72 }, "FortuneShipT", "Shenzhen Fortune Ship Technology Co., Ltd." },
{ { 0x14, 0x6B, 0x9A }, "zte", "zte corporation" },
{ { 0x14, 0x6B, 0x9C }, "BilianElectr", "Shenzhen Bilian Electronic Co.,Ltd" },
+ { { 0x14, 0x6C, 0x27 }, "DongguanLies", "Dongguan Liesheng Electronic Co., Ltd." },
{ { 0x14, 0x73, 0x73 }, "TubitakUekae", "Tubitak Uekae" },
{ { 0x14, 0x74, 0x11 }, "Rim", "Rim" },
{ { 0x14, 0x75, 0x5B }, "Intel", "Intel Corporate" },
@@ -14991,6 +15058,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" },
@@ -15024,6 +15092,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x14, 0x99, 0x3E }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x14, 0x99, 0xE2 }, "Apple", "Apple, Inc." },
{ { 0x14, 0x9A, 0x10 }, "Microsoft", "Microsoft Corporation" },
+ { { 0x14, 0x9A, 0xA3 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x14, 0x9B, 0x2F }, "JiangSuZhong", "JiangSu ZhongXie Intelligent Technology co., LTD" },
{ { 0x14, 0x9B, 0xD7 }, "MuliMuwaiFur", "Muli Muwai Furniture Qidong Co., Ltd" },
{ { 0x14, 0x9B, 0xF3 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
@@ -15054,7 +15123,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x14, 0xAB, 0x02 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x14, 0xAB, 0x56 }, "WuxiFunideDi", "Wuxi Funide Digital Co.,Ltd" },
{ { 0x14, 0xAB, 0xC5 }, "Intel", "Intel Corporate" },
- { { 0x14, 0xAB, 0xEC }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x14, 0xAB, 0xEC }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x14, 0xAB, 0xF0 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x14, 0xAC, 0x60 }, "CloudNetwork", "Cloud Network Technology Singapore Pte. Ltd." },
{ { 0x14, 0xAD, 0xCA }, "ChinaMobileI", "China Mobile Iot Limited company" },
@@ -15074,6 +15143,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x14, 0xB9, 0x68 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x14, 0xBB, 0x6E }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x14, 0xBD, 0x61 }, "Apple", "Apple, Inc." },
+ { { 0x14, 0xBE, 0xFC }, "NanjingJiaha", "Nanjing Jiahao Technology Co., Ltd." },
{ { 0x14, 0xC0, 0x3E }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x14, 0xC0, 0x50 }, "GeniusTechno", "Guangdong Genius Technology Co., Ltd." },
{ { 0x14, 0xC0, 0x89 }, "DuneHd", "Dune Hd Ltd" },
@@ -15119,6 +15189,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 +15223,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 +15232,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 +15249,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" },
@@ -15292,7 +15365,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x18, 0x61, 0xC7 }, "lemonbeat", "lemonbeat GmbH" },
{ { 0x18, 0x62, 0x2C }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x18, 0x62, 0xE4 }, "TexasInstrum", "Texas Instruments" },
- { { 0x18, 0x64, 0x72 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x18, 0x64, 0x72 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x18, 0x65, 0x71 }, "TopVictoryEl", "Top Victory Electronics (Taiwan) Co., Ltd." },
{ { 0x18, 0x65, 0x90 }, "Apple", "Apple, Inc." },
{ { 0x18, 0x65, 0xC7 }, "DongguanYIMO", "Dongguan YIMO Technology Co.LTD" },
@@ -15321,7 +15394,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x18, 0x78, 0xD4 }, "Verizon", "Verizon" },
{ { 0x18, 0x79, 0xA2 }, "GmjElectric", "Gmj Electric Limited" },
{ { 0x18, 0x79, 0xFD }, "zte", "zte corporation" },
- { { 0x18, 0x7A, 0x3B }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x18, 0x7A, 0x3B }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x18, 0x7A, 0x3E }, "SiliconLabor", "Silicon Laboratories" },
{ { 0x18, 0x7A, 0x93 }, "AMICCOMElect", "AMICCOM Electronics Corporation" },
{ { 0x18, 0x7C, 0x0B }, "RuckusWirele", "Ruckus Wireless" },
@@ -15335,19 +15408,21 @@ 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" },
{ { 0x18, 0x83, 0xBF }, "ArcadyanTech", "Arcadyan Technology Corporation" },
{ { 0x18, 0x84, 0x10 }, "CoreTrust", "CoreTrust Inc." },
{ { 0x18, 0x84, 0xC1 }, "GuangzhouShi", "Guangzhou Shiyuan Electronic Technology Company Limited" },
+ { { 0x18, 0x86, 0x37 }, "IngramMicroS", "Ingram Micro Services" },
{ { 0x18, 0x86, 0x3A }, "DigitalArtSy", "Digital Art System" },
{ { 0x18, 0x86, 0xAC }, "NokiaDanmark", "Nokia Danmark A/S" },
{ { 0x18, 0x87, 0x40 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x18, 0x87, 0x96 }, "HTC", "HTC Corporation" },
{ { 0x18, 0x88, 0x57 }, "JinhongXiDia", "Beijing Jinhong Xi-Dian Information Technology Corp." },
{ { 0x18, 0x89, 0x5B }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
- { { 0x18, 0x89, 0xA0 }, "FunshionOnli", "Wuhan Funshion Online Technologies Co.,Ltd" },
+ { { 0x18, 0x89, 0xA0 }, "FunshionOnli", "Funshion Online Technologies Co.,Ltd" },
{ { 0x18, 0x89, 0xCF }, "TecnoMobile", "Tecno Mobile Limited" },
{ { 0x18, 0x89, 0xDF }, "Omnivision", "Omnivision" },
{ { 0x18, 0x8A, 0x6A }, "AVProGlobalH", "AVPro Global Hldgs" },
@@ -15373,6 +15448,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 +15558,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 +15595,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 +15605,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" },
@@ -15556,7 +15635,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x1C, 0x25, 0xE1 }, "ChinaMobileI", "China Mobile IOT Company Limited" },
{ { 0x1C, 0x27, 0x04 }, "zte", "zte corporation" },
{ { 0x1C, 0x27, 0xDD }, "DatangGohigh", "Datang Gohighsec(zhejiang)Information Technology Co.,Ltd." },
- { { 0x1C, 0x28, 0xAF }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x1C, 0x28, 0xAF }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x1C, 0x2A, 0x8B }, "Nokia", "Nokia" },
{ { 0x1C, 0x2A, 0xA3 }, "HongRuiOptic", "Shenzhen HongRui Optical Technology Co., Ltd." },
{ { 0x1C, 0x2A, 0xB0 }, "XiaomiElectr", "Beijing Xiaomi Electronics Co.,Ltd" },
@@ -15583,6 +15662,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 +15728,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,8 +15736,10 @@ 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, 0x1B }, "Ubiquiti", "Ubiquiti Inc" },
{ { 0x1C, 0x6A, 0x76 }, "Apple", "Apple, Inc." },
{ { 0x1C, 0x6A, 0x7A }, "Cisco", "Cisco Systems, Inc" },
{ { 0x1C, 0x6B, 0xCA }, "Mitsunami", "Mitsunami Co., Ltd." },
@@ -15679,6 +15762,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." },
@@ -15800,6 +15884,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,8 +15894,10 @@ 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, 0xEA, 0xAC }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0x1C, 0xEC, 0x72 }, "Allradio", "Allradio Co., Ltd" },
{ { 0x1C, 0xED, 0x6F }, "AVMAudiovisu", "AVM Audiovisuelles Marketing und Computersysteme GmbH" },
{ { 0x1C, 0xEE, 0xC9 }, "Elotouchsolu", "Elo touch solutions" },
@@ -15822,6 +15909,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x1C, 0xF2, 0x9A }, "Google", "Google, Inc." },
{ { 0x1C, 0xF4, 0x2B }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x1C, 0xF5, 0xE7 }, "TurtleIndust", "Turtle Industry Co., Ltd." },
+ { { 0x1C, 0xF6, 0x4C }, "Apple", "Apple, Inc." },
{ { 0x1C, 0xF8, 0xD0 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x1C, 0xFA, 0x68 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x1C, 0xFC, 0x17 }, "Cisco", "Cisco Systems, Inc" },
@@ -15830,12 +15918,14 @@ 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." },
{ { 0x20, 0x04, 0x84 }, "Apple", "Apple, Inc." },
{ { 0x20, 0x04, 0xF3 }, "HonorDevice", "Honor Device Co., Ltd." },
{ { 0x20, 0x05, 0x05 }, "RadmaxCommun", "Radmax Communication Private Limited" },
+ { { 0x20, 0x05, 0xB6 }, "OpenWrt", "OpenWrt" },
{ { 0x20, 0x05, 0xE8 }, "OOOInProMedi", "OOO InProMedia" },
{ { 0x20, 0x08, 0x89 }, "zte", "zte corporation" },
{ { 0x20, 0x08, 0xED }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -15866,6 +15956,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." },
@@ -15912,6 +16003,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0x3A, 0x43 }, "Intel", "Intel Corporate" },
{ { 0x20, 0x3A, 0xEB }, "zte", "zte corporation" },
{ { 0x20, 0x3A, 0xEF }, "Sivantos", "Sivantos GmbH" },
+ { { 0x20, 0x3B, 0x34 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x20, 0x3B, 0x69 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x20, 0x3C, 0xAE }, "Apple", "Apple, Inc." },
{ { 0x20, 0x3C, 0xC0 }, "ToseeTechnol", "Beijing Tosee Technology Co., Ltd." },
@@ -15933,13 +16025,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0x47, 0xED }, "SkyUk", "Sky Uk Limited" },
{ { 0x20, 0x4A, 0xAA }, "HanscanSpain", "Hanscan Spain S.A." },
{ { 0x20, 0x4B, 0x22 }, "SunnovoInter", "Sunnovo International Limited" },
- { { 0x20, 0x4C, 0x03 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x20, 0x4C, 0x03 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x20, 0x4C, 0x6D }, "HugoBrennens", "Hugo Brennenstuhl Gmbh & Co. KG." },
{ { 0x20, 0x4C, 0x9E }, "Cisco", "Cisco Systems, Inc" },
{ { 0x20, 0x4E, 0x6B }, "Axxana", "Axxana(israel) ltd" },
{ { 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 +16049,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" },
@@ -15978,6 +16072,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,12 +16126,13 @@ 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" },
{ { 0x20, 0x9B, 0xCD }, "Apple", "Apple, Inc." },
{ { 0x20, 0x9B, 0xE6 }, "GuangzhouShi", "Guangzhou Shiyuan Electronic Technology Company Limited" },
- { { 0x20, 0x9C, 0xB4 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x20, 0x9C, 0xB4 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x20, 0x9E, 0x79 }, "UniversalEle", "Universal Electronics, Inc." },
{ { 0x20, 0x9E, 0xF7 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
{ { 0x20, 0xA1, 0x71 }, "AmazonTechno", "Amazon Technologies Inc." },
@@ -16107,6 +16203,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0xD9, 0x06 }, "Iota", "Iota, Inc." },
{ { 0x20, 0xDA, 0x22 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x20, 0xDB, 0xAB }, "SamsungElect", "Samsung Electronics Co., Ltd." },
+ { { 0x20, 0xDB, 0xEA }, "Cisco", "Cisco Systems, Inc" },
{ { 0x20, 0xDC, 0x93 }, "CheetahHiTec", "Cheetah Hi-Tech, Inc." },
{ { 0x20, 0xDC, 0xE6 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x20, 0xDC, 0xFD }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -16133,6 +16230,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 +16245,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" },
@@ -16191,6 +16290,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x24, 0x14, 0x07 }, "XiamenSigmas", "Xiamen Sigmastar Technology Ltd." },
{ { 0x24, 0x15, 0x51 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x24, 0x16, 0x1B }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x24, 0x16, 0x51 }, "ChipseaTechn", "Chipsea Technologies (Shenzhen) Corp." },
{ { 0x24, 0x16, 0x6D }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x24, 0x16, 0x9D }, "Cisco", "Cisco Systems, Inc" },
{ { 0x24, 0x18, 0x1D }, "SamsungElect", "Samsung Electro-Mechanics(Thailand)" },
@@ -16213,6 +16313,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" },
@@ -16238,6 +16339,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x24, 0x3A, 0x82 }, "Irts", "Irts" },
{ { 0x24, 0x3C, 0x20 }, "DynamodeGrou", "Dynamode Group" },
{ { 0x24, 0x3F, 0x30 }, "OxygenBroadb", "Oxygen Broadband s.a." },
+ { { 0x24, 0x3F, 0x75 }, "HuiZhouGaosh", "Hui Zhou Gaoshengda Technology Co.,LTD" },
{ { 0x24, 0x3F, 0xAA }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x24, 0x40, 0xAE }, "NIICTechnolo", "NIIC Technology Co., Ltd." },
{ { 0x24, 0x41, 0x8C }, "Intel", "Intel Corporate" },
@@ -16268,6 +16370,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." },
@@ -16281,9 +16384,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x24, 0x5F, 0xDF }, "Kyocera", "Kyocera Corporation" },
{ { 0x24, 0x60, 0x81 }, "razberitechn", "razberi technologies" },
{ { 0x24, 0x61, 0x5A }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
- { { 0x24, 0x62, 0x78 }, "sysmocomform", "sysmocom - systems for mobile communications GmbH" },
+ { { 0x24, 0x62, 0x78 }, "sysmocomsfmc", "sysmocom - s.f.m.c. GmbH" },
{ { 0x24, 0x62, 0xAB }, "Espressif", "Espressif Inc." },
- { { 0x24, 0x62, 0xCE }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x24, 0x62, 0xCE }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x24, 0x64, 0x9F }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x24, 0x64, 0xEF }, "CygSunri", "Cyg Sunri Co.,Ltd." },
{ { 0x24, 0x65, 0x11 }, "AVM", "AVM GmbH" },
@@ -16318,6 +16421,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x24, 0x79, 0xEF }, "GreenpacketB", "Greenpacket Berhad, Taiwan" },
{ { 0x24, 0x79, 0xF3 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0x24, 0x79, 0xF8 }, "KUPSONspolsr", "KUPSON spol. s r.o." },
+ { { 0x24, 0x7C, 0x46 }, "FlextronicsT", "Flextronics Technologies Mexico S De Rl De Cv" },
{ { 0x24, 0x7C, 0x4C }, "HermanMiller", "Herman Miller" },
{ { 0x24, 0x7D, 0x4D }, "TexasInstrum", "Texas Instruments" },
{ { 0x24, 0x7E, 0x12 }, "Cisco", "Cisco Systems, Inc" },
@@ -16350,6 +16454,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x24, 0x9A, 0xC8 }, "SkyworthDigi", "Shenzhen Skyworth Digital Technology CO., Ltd" },
{ { 0x24, 0x9A, 0xD8 }, "YealinkNetwo", "Yealink(Xiamen) Network Technology Co.,Ltd." },
{ { 0x24, 0x9D, 0x2A }, "LinkDataTech", "LinkData Technology (Tianjin) Co., LTD" },
+ { { 0x24, 0x9E, 0x7D }, "RoborockTech", "Beijing Roborock Technology Co., Ltd." },
{ { 0x24, 0x9E, 0xAB }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x24, 0x9F, 0x89 }, "TexasInstrum", "Texas Instruments" },
{ { 0x24, 0xA0, 0x74 }, "Apple", "Apple, Inc." },
@@ -16376,6 +16481,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." },
@@ -16434,7 +16540,8 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x24, 0xDB, 0xED }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x24, 0xDC, 0x0F }, "PhytiumTechn", "Phytium Technology Co.,Ltd." },
{ { 0x24, 0xDC, 0xC3 }, "Espressif", "Espressif Inc." },
- { { 0x24, 0xDE, 0xC6 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x24, 0xDD, 0x1B }, "QingdaoHiima", "Qingdao Hi-image Technologies Co., Ltd" },
+ { { 0x24, 0xDE, 0xC6 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x24, 0xDF, 0x6A }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x24, 0xDF, 0xA7 }, "BroadLinkTec", "Hangzhou BroadLink Technology Co.,Ltd" },
{ { 0x24, 0xE1, 0x24 }, "XiamenMilesi", "Xiamen Milesight IoT Co., Ltd." },
@@ -16457,12 +16564,14 @@ 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." },
@@ -16470,6 +16579,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x24, 0xF1, 0x50 }, "GuangzhouQia", "Guangzhou Qi'an Technology Co., Ltd." },
{ { 0x24, 0xF2, 0x7F }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x24, 0xF2, 0xDD }, "RadiantZemax", "Radiant Zemax LLC" },
+ { { 0x24, 0xF3, 0x06 }, "ItelMobile", "Itel Mobile Limited" },
{ { 0x24, 0xF5, 0x7E }, "Hwh", "Hwh Co., Ltd." },
{ { 0x24, 0xF5, 0xA2 }, "BelkinIntern", "Belkin International Inc." },
{ { 0x24, 0xF5, 0xAA }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -16516,11 +16626,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." },
@@ -16539,6 +16652,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x28, 0x2C, 0xB2 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x28, 0x2D, 0x06 }, "AMPAKTechnol", "AMPAK Technology,Inc." },
{ { 0x28, 0x2D, 0x7F }, "Apple", "Apple, Inc." },
+ { { 0x28, 0x2E, 0x89 }, "WistronNeweb", "Wistron Neweb Corporation" },
{ { 0x28, 0x2F, 0xC2 }, "AutomotiveDa", "Automotive Data Solutions" },
{ { 0x28, 0x30, 0xAC }, "Frontiir", "Frontiir Co. Ltd." },
{ { 0x28, 0x31, 0x52 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -16551,12 +16665,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 +16680,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,10 +16722,12 @@ 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." },
{ { 0x28, 0x6B, 0x35 }, "Intel", "Intel Corporate" },
+ { { 0x28, 0x6B, 0x5C }, "Cisco", "Cisco Systems, Inc" },
{ { 0x28, 0x6C, 0x07 }, "XIAOMIElectr", "XIAOMI Electronics,CO.,LTD" },
{ { 0x28, 0x6D, 0x97 }, "SAMJIN", "SAMJIN Co., Ltd." },
{ { 0x28, 0x6D, 0xCD }, "WinnerMicroe", "Beijing Winner Microelectronics Co.,Ltd." },
@@ -16653,6 +16772,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 +16792,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" },
@@ -16689,6 +16810,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x28, 0xAD, 0x18 }, "HuiZhouGaosh", "Hui Zhou Gaoshengda Technology Co.,LTD" },
{ { 0x28, 0xAD, 0x3E }, "TONGBOWEITec", "Shenzhen TONG BO WEI Technology CO.,LTD" },
{ { 0x28, 0xAF, 0x0A }, "SiriusXMRadi", "Sirius XM Radio Inc" },
+ { { 0x28, 0xAF, 0x21 }, "zte", "zte corporation" },
{ { 0x28, 0xAF, 0x42 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x28, 0xAF, 0xFD }, "Cisco", "Cisco Systems, Inc" },
{ { 0x28, 0xB0, 0xCC }, "Xenyadoo", "Xenya d.o.o." },
@@ -16698,6 +16820,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x28, 0xB3, 0xAB }, "GenmarkAutom", "Genmark Automation" },
{ { 0x28, 0xB4, 0x48 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x28, 0xB4, 0xFB }, "SprocommTech", "Sprocomm Technologies CO.,LTD." },
+ { { 0x28, 0xB5, 0x91 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x28, 0xB5, 0xE8 }, "TexasInstrum", "Texas Instruments" },
{ { 0x28, 0xB8, 0x29 }, "JuniperNetwo", "Juniper Networks" },
{ { 0x28, 0xB9, 0xD9 }, "Radisys", "Radisys Corporation" },
@@ -16721,6 +16844,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x28, 0xC2, 0x1F }, "SamsungElect", "Samsung Electro-Mechanics(Thailand)" },
{ { 0x28, 0xC2, 0xDD }, "AzureWaveTec", "AzureWave Technology Inc." },
{ { 0x28, 0xC5, 0x38 }, "Apple", "Apple, Inc." },
+ { { 0x28, 0xC5, 0xC8 }, "HP", "HP Inc." },
{ { 0x28, 0xC5, 0xD2 }, "Intel", "Intel Corporate" },
{ { 0x28, 0xC6, 0x3F }, "Intel", "Intel Corporate" },
{ { 0x28, 0xC6, 0x71 }, "YotaDevices", "Yota Devices OY" },
@@ -16746,6 +16870,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,7 +16888,8 @@ 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, 0x65 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x28, 0xDE, 0x59 }, "DomusNTW", "Domus NTW CORP." },
+ { { 0x28, 0xDE, 0x65 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x28, 0xDE, 0xA8 }, "zte", "zte corporation" },
{ { 0x28, 0xDE, 0xE5 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x28, 0xDE, 0xF6 }, "bioMerieux", "bioMerieux Inc." },
@@ -16848,6 +16974,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 +17028,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 +17212,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 +17220,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" },
@@ -17105,6 +17235,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x2C, 0xC8, 0x1B }, "Routerboardc", "Routerboard.com" },
{ { 0x2C, 0xC8, 0xF5 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x2C, 0xCA, 0x0C }, "WithusPlanet", "Withus Planet" },
+ { { 0x2C, 0xCA, 0x16 }, "Apple", "Apple, Inc." },
{ { 0x2C, 0xCA, 0x75 }, "RobertBoschA", "Robert Bosch GmbH AnP" },
{ { 0x2C, 0xCC, 0x15 }, "Nokia", "Nokia Corporation" },
{ { 0x2C, 0xCC, 0x44 }, "SonyInteract", "Sony Interactive Entertainment Inc." },
@@ -17114,6 +17245,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" },
@@ -17143,6 +17275,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x2C, 0xEA, 0x7F }, "Dell", "Dell Inc." },
{ { 0x2C, 0xEA, 0xDC }, "AskeyCompute", "Askey Computer Corp" },
{ { 0x2C, 0xEC, 0xF7 }, "SDMCTechnolo", "Shenzhen SDMC Technology CO.,Ltd." },
+ { { 0x2C, 0xED, 0x89 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x2C, 0xED, 0xB0 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x2C, 0xED, 0xEB }, "AlpheusDigit", "Alpheus Digital Company Limited" },
{ { 0x2C, 0xEE, 0x26 }, "PetroleumGeo", "Petroleum Geo-Services" },
@@ -17188,6 +17321,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." },
@@ -17206,6 +17340,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x30, 0x21, 0x5B }, "OstarDisplay", "Shenzhen Ostar Display Electronic Co.,Ltd" },
{ { 0x30, 0x23, 0x03 }, "BelkinIntern", "Belkin International Inc." },
{ { 0x30, 0x23, 0x64 }, "NokiaShangha", "Nokia Shanghai Bell Co., Ltd." },
+ { { 0x30, 0x23, 0xBA }, "AcceleratedM", "Accelerated Memory Production Inc." },
{ { 0x30, 0x24, 0x32 }, "Intel", "Intel Corporate" },
{ { 0x30, 0x24, 0x78 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x30, 0x24, 0xA9 }, "HP", "HP Inc." },
@@ -17216,6 +17351,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x30, 0x2D, 0xE8 }, "JDA", "JDA, LLC (JDA Systems)" },
{ { 0x30, 0x2F, 0x1E }, "Siemens", "Siemens Ag" },
{ { 0x30, 0x2F, 0xAC }, "ZhejiangHuaR", "Zhejiang HuaRay Technology Co.,Ltd" },
+ { { 0x30, 0x30, 0xD0 }, "TexasInstrum", "Texas Instruments" },
{ { 0x30, 0x30, 0xF9 }, "Espressif", "Espressif Inc." },
{ { 0x30, 0x31, 0x7D }, "Hosiden", "Hosiden Corporation" },
{ { 0x30, 0x31, 0x80 }, "SkyworthDigi", "Shenzhen Skyworth Digital Technology CO., Ltd" },
@@ -17234,8 +17370,10 @@ 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" },
@@ -17267,6 +17405,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 +17474,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" },
@@ -17359,6 +17499,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x30, 0x9B, 0xAD }, "BbkEducation", "Bbk Educational Electronics Corp.,Ltd." },
{ { 0x30, 0x9C, 0x23 }, "MicroStarINT", "Micro-Star INTL CO., LTD." },
{ { 0x30, 0x9E, 0x1D }, "Ohsung", "Ohsung" },
+ { { 0x30, 0x9E, 0x62 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x30, 0x9F, 0xFB }, "ArdomusNetwo", "Ardomus Networks Corporation" },
{ { 0x30, 0xA0, 0x23 }, "RockPath", "Rock Path S.R.L" },
{ { 0x30, 0xA1, 0x76 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
@@ -17367,6 +17508,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 +17548,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 +17568,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 +17607,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" },
@@ -17502,6 +17647,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0x0B, 0x40 }, "MiosElettron", "Mios Elettronica Srl" },
{ { 0x34, 0x0C, 0xED }, "Moduel", "Moduel AB" },
{ { 0x34, 0x0F, 0x66 }, "WebSensing", "Web Sensing LLC" },
+ { { 0x34, 0x10, 0x5D }, "TexasInstrum", "Texas Instruments" },
{ { 0x34, 0x10, 0xF4 }, "SiliconLabor", "Silicon Laboratories" },
{ { 0x34, 0x12, 0x90 }, "Treeview", "Treeview Co.,Ltd." },
{ { 0x34, 0x12, 0x98 }, "Apple", "Apple, Inc." },
@@ -17509,12 +17655,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" },
@@ -17559,7 +17707,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0x37, 0x94 }, "Hamee", "Hamee Corp." },
{ { 0x34, 0x38, 0xAF }, "InlabNetwork", "Inlab Networks GmbH" },
{ { 0x34, 0x38, 0xB7 }, "HUMAX", "HUMAX Co., Ltd." },
- { { 0x34, 0x3A, 0x20 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x34, 0x3A, 0x20 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x34, 0x3D, 0x98 }, "JinQianMaoTe", "JinQianMao Technology Co.,Ltd." },
{ { 0x34, 0x3D, 0xC4 }, "Buffalo", "Buffalo.Inc" },
{ { 0x34, 0x3E, 0xA4 }, "Ring", "Ring LLC" },
@@ -17584,6 +17732,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0x4F, 0x3F }, "IOPowerTechn", "IO-Power Technology Co., Ltd." },
{ { 0x34, 0x4F, 0x5C }, "R&M", "R&M Ag" },
{ { 0x34, 0x4F, 0x69 }, "EkinopsSas", "Ekinops Sas" },
+ { { 0x34, 0x51, 0x6F }, "SkychersCrea", "Skychers Creations ShenZhen Limited" },
{ { 0x34, 0x51, 0x80 }, "TCLKingElect", "TCL King Electrical Appliances (Huizhou) Co., Ltd" },
{ { 0x34, 0x51, 0x84 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x34, 0x51, 0xAA }, "JidGlobal", "Jid Global" },
@@ -17596,6 +17745,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 +17756,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 +17810,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" },
@@ -17669,7 +17821,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0x87, 0x3D }, "QuectelWirel", "Quectel Wireless Solutions Co.,Ltd." },
{ { 0x34, 0x88, 0x18 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x34, 0x88, 0x5D }, "LogitechFarE", "Logitech Far East" },
- { { 0x34, 0x8A, 0x12 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x34, 0x8A, 0x12 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x34, 0x8A, 0x7B }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x34, 0x8A, 0xAE }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x34, 0x8B, 0x75 }, "LavaInternat", "Lava International(H.K) Limited" },
@@ -17704,6 +17856,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" },
@@ -17750,9 +17903,10 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0xC1, 0x03 }, "HuamuTechnol", "Hangzhou Huamu Technology Co.,Ltd." },
{ { 0x34, 0xC3, 0xAC }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x34, 0xC3, 0xD2 }, "FnLinkTechno", "Fn-Link Technology Limited" },
- { { 0x34, 0xC5, 0x15 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x34, 0xC5, 0x15 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 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" },
@@ -17763,11 +17917,13 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0xCB, 0x1A }, "ProcterGambl", "Procter & Gamble Company" },
{ { 0x34, 0xCC, 0x28 }, "Nexpring", "Nexpring Co. LTD.," },
{ { 0x34, 0xCD, 0x6D }, "CommSkyTechn", "CommSky Technologies" },
+ { { 0x34, 0xCD, 0xB0 }, "Espressif", "Espressif Inc." },
{ { 0x34, 0xCD, 0xBE }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x34, 0xCE, 0x00 }, "XIAOMIElectr", "XIAOMI Electronics,CO.,LTD" },
{ { 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 +17954,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" },
@@ -17861,6 +18018,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0x0A, 0x4F }, "PrachiEnterp", "Prachi Enterprises" },
{ { 0x38, 0x0A, 0x94 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x38, 0x0A, 0xAB }, "Formlabs", "Formlabs" },
+ { { 0x38, 0x0B, 0x26 }, "Mindray", "Mindray Co., Ltd." },
{ { 0x38, 0x0B, 0x3C }, "TexasInstrum", "Texas Instruments" },
{ { 0x38, 0x0B, 0x40 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x38, 0x0D, 0xD4 }, "PrimaxElectr", "Primax Electronics Ltd." },
@@ -17870,7 +18028,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0x0F, 0xAD }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x38, 0x0F, 0xE4 }, "DedicatedNet", "Dedicated Network Partners Oy" },
{ { 0x38, 0x10, 0xD5 }, "AVMAudiovisu", "AVM Audiovisuelles Marketing und Computersysteme GmbH" },
- { { 0x38, 0x10, 0xF0 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x38, 0x10, 0xF0 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x38, 0x12, 0x7B }, "CrenetLabs", "Crenet Labs Co., Ltd." },
{ { 0x38, 0x14, 0x1B }, "SecureLetter", "Secure Letter Inc." },
{ { 0x38, 0x14, 0x28 }, "Dell", "Dell Inc." },
@@ -17884,6 +18042,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0x18, 0x4C }, "SonyHomeEnte", "Sony Home Entertainment&Sound Products Inc" },
{ { 0x38, 0x19, 0x2F }, "Nokia", "Nokia Corporation" },
{ { 0x38, 0x1A, 0x52 }, "SeikoEpson", "Seiko Epson Corporation" },
+ { { 0x38, 0x1B, 0x9E }, "QingdaoIntel", "Qingdao Intelligent&Precise Electronics Co.,Ltd." },
{ { 0x38, 0x1C, 0x1A }, "Cisco", "Cisco Systems, Inc" },
{ { 0x38, 0x1C, 0x23 }, "HilanTechnol", "Hilan Technology CO.,LTD" },
{ { 0x38, 0x1C, 0x4A }, "SIMComWirele", "SIMCom Wireless Solutions Co.,Ltd." },
@@ -17895,7 +18054,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0x20, 0x56 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x38, 0x20, 0xA8 }, "ColorTokens", "ColorTokens, Inc." },
{ { 0x38, 0x21, 0x87 }, "MideaGroup", "Midea Group Co., Ltd." },
- { { 0x38, 0x21, 0xC7 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x38, 0x21, 0xC7 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x38, 0x22, 0x9D }, "ADBBroadband", "ADB Broadband Italia" },
{ { 0x38, 0x22, 0xD6 }, "H3CTechnolog", "Hangzhou H3C Technologies Co., Limited" },
{ { 0x38, 0x22, 0xE2 }, "HP", "HP Inc." },
@@ -17910,6 +18069,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0x2A, 0x19 }, "TechnicaEngi", "Technica Engineering GmbH" },
{ { 0x38, 0x2B, 0x78 }, "EcoPlugsEnte", "Eco Plugs Enterprise Co., Ltd" },
{ { 0x38, 0x2C, 0x4A }, "ASUSTekCOMPU", "ASUSTek COMPUTER INC." },
+ { { 0x38, 0x2C, 0xE5 }, "TuyaSmart", "Tuya Smart Inc." },
{ { 0x38, 0x2D, 0xD1 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x38, 0x2D, 0xE8 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x38, 0x30, 0xF9 }, "LGElectronic", "LG Electronics (Mobile Communications)" },
@@ -17995,9 +18155,12 @@ 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, 0x7A, 0xCC }, "BilianElectr", "Shenzhen Bilian Electronic 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" },
@@ -18059,10 +18222,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0xA9, 0x1C }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x38, 0xA9, 0x5F }, "Actifio", "Actifio Inc" },
{ { 0x38, 0xA9, 0xEA }, "HkDapuElectr", "Hk Dapu Electronic Technology Co., Limited" },
+ { { 0x38, 0xAA, 0x20 }, "zte", "zte corporation" },
{ { 0x38, 0xAA, 0x3C }, "SamsungElect", "Samsung Electro Mechanics Co., Ltd." },
{ { 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" },
@@ -18087,7 +18252,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0xBC, 0x01 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x38, 0xBC, 0x1A }, "MEIZUTechnol", "MEIZU Technology Co., Ltd." },
{ { 0x38, 0xBC, 0x61 }, "Starkoff", "Starkoff Co., Ltd." },
- { { 0x38, 0xBD, 0x7A }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x38, 0xBD, 0x7A }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x38, 0xBE, 0xAB }, "AltoBeam", "AltoBeam (China) Inc." },
{ { 0x38, 0xBF, 0x2F }, "Espec", "Espec Corp." },
{ { 0x38, 0xBF, 0x33 }, "NECCASIOMobi", "NEC CASIO Mobile Communications" },
@@ -18121,6 +18286,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 +18312,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 +18373,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 +18443,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." },
@@ -18284,6 +18455,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x3C, 0x39, 0xC8 }, "Apple", "Apple, Inc." },
{ { 0x3C, 0x3A, 0x73 }, "Avaya", "Avaya Inc" },
{ { 0x3C, 0x3B, 0x4D }, "ToyoSeisakus", "Toyo Seisakusho Kaisha, Limited" },
+ { { 0x3C, 0x3B, 0x77 }, "Apple", "Apple, Inc." },
{ { 0x3C, 0x3B, 0x99 }, "ItelMobile", "Itel Mobile Limited" },
{ { 0x3C, 0x3F, 0x51 }, "2Crsi", "2Crsi" },
{ { 0x3C, 0x40, 0x4F }, "PisenElectro", "Guangdong Pisen Electronics Co.,Ltd" },
@@ -18398,11 +18570,13 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x3C, 0x92, 0xDC }, "OctopodTechn", "Octopod Technology Co. Ltd." },
{ { 0x3C, 0x93, 0xF4 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x3C, 0x94, 0xD5 }, "JuniperNetwo", "Juniper Networks" },
+ { { 0x3C, 0x94, 0xFD }, "Mist", "Mist Systems, Inc." },
{ { 0x3C, 0x95, 0x09 }, "LiteonTechno", "Liteon Technology Corporation" },
{ { 0x3C, 0x97, 0x0E }, "WistronInfoC", "Wistron InfoComm(Kunshan)Co.,Ltd." },
{ { 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 +18587,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" },
@@ -18428,6 +18603,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x3C, 0xA6, 0xF6 }, "Apple", "Apple, Inc." },
{ { 0x3C, 0xA7, 0x2B }, "MRVCommunica", "MRV Communications (Networks) LTD" },
{ { 0x3C, 0xA7, 0xAE }, "zte", "zte corporation" },
+ { { 0x3C, 0xA8, 0x0A }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x3C, 0xA8, 0x2A }, "HewlettPacka", "Hewlett Packard" },
{ { 0x3C, 0xA8, 0xED }, "smartlightte", "smart light technology" },
{ { 0x3C, 0xA9, 0x16 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -18435,6 +18611,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" },
@@ -18452,6 +18629,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x3C, 0xBB, 0xFD }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x3C, 0xBC, 0xD0 }, "zte", "zte corporation" },
{ { 0x3C, 0xBD, 0x3E }, "XiaomiElectr", "Beijing Xiaomi Electronics Co., Ltd." },
+ { { 0x3C, 0xBD, 0x69 }, "NokiaShangha", "Nokia Shanghai Bell Co., Ltd." },
{ { 0x3C, 0xBD, 0xC5 }, "Arcadyan", "Arcadyan Corporation" },
{ { 0x3C, 0xBD, 0xD8 }, "LgElectronic", "Lg Electronics Inc" },
{ { 0x3C, 0xBE, 0xE1 }, "Nikon", "Nikon Corporation" },
@@ -18465,6 +18643,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" },
@@ -18516,6 +18695,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x3C, 0xEF, 0x42 }, "TCTmobile", "TCT mobile ltd" },
{ { 0x3C, 0xEF, 0x8C }, "ZhejiangDahu", "Zhejiang Dahua Technology Co., Ltd." },
{ { 0x3C, 0xF0, 0x11 }, "Intel", "Intel Corporate" },
+ { { 0x3C, 0xF0, 0x83 }, "Arcadyan", "Arcadyan Corporation" },
{ { 0x3C, 0xF3, 0x92 }, "Virtualtek", "Virtualtek. Co. Ltd" },
{ { 0x3C, 0xF4, 0xF9 }, "ModaInnoChip", "Moda-InnoChips" },
{ { 0x3C, 0xF5, 0x2C }, "DSPECIALISTS", "DSPECIALISTS GmbH" },
@@ -18542,6 +18722,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x40, 0x01, 0x07 }, "Arista", "Arista Corp" },
{ { 0x40, 0x01, 0x7A }, "Cisco", "Cisco Systems, Inc" },
{ { 0x40, 0x01, 0xC6 }, "3ComEurope", "3Com Europe Ltd" },
+ { { 0x40, 0x03, 0x26 }, "NXPSemicondu", "NXP Semiconductor (Tianjin) LTD." },
{ { 0x40, 0x04, 0x0C }, "A&T", "A&T" },
{ { 0x40, 0x05, 0x89 }, "TMobileUSA", "T-Mobile, USA" },
{ { 0x40, 0x06, 0x34 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -18591,6 +18772,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" },
@@ -18657,6 +18839,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x40, 0x62, 0x34 }, "TelinkSemico", "Telink Semiconductor (Shanghai) Co., Ltd." },
{ { 0x40, 0x62, 0xB6 }, "Telesystemco", "Tele system communication" },
{ { 0x40, 0x62, 0xEA }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
+ { { 0x40, 0x62, 0xEE }, "ChiconyElect", "Chicony Electronics Co., Ltd." },
{ { 0x40, 0x64, 0xA4 }, "FurukawaElec", "The Furukawa Electric Co., Ltd" },
{ { 0x40, 0x64, 0xDC }, "Xspeedlnform", "X-speed lnformation Technology Co.,Ltd" },
{ { 0x40, 0x65, 0xA3 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
@@ -18690,6 +18873,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x40, 0x7F, 0xE0 }, "GloryStarTec", "Glory Star Technics (ShenZhen) Limited" },
{ { 0x40, 0x80, 0xE1 }, "FNLINKTECHNO", "FN-LINK TECHNOLOGY Ltd." },
{ { 0x40, 0x82, 0x56 }, "ContinentalA", "Continental Automotive GmbH" },
+ { { 0x40, 0x82, 0x7B }, "STMicroelect", "STMicroelectronics Rousset SAS" },
{ { 0x40, 0x83, 0x1D }, "Apple", "Apple, Inc." },
{ { 0x40, 0x83, 0xDE }, "ZebraTechnol", "Zebra Technologies Inc" },
{ { 0x40, 0x84, 0x32 }, "MicrochipTec", "Microchip Technology Inc." },
@@ -18709,6 +18893,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 +18907,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" },
@@ -18779,8 +18965,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x40, 0xB8, 0xC2 }, "Osmozis", "Osmozis" },
{ { 0x40, 0xB9, 0x3C }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 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, 0x68 }, "FunshionOnli", "Funshion Online Technologies Co.,Ltd" },
{ { 0x40, 0xBC, 0x73 }, "CronoplastSL", "Cronoplast S.L." },
{ { 0x40, 0xBC, 0x8B }, "itelio", "itelio GmbH" },
{ { 0x40, 0xBD, 0x32 }, "TexasInstrum", "Texas Instruments" },
@@ -18807,6 +18994,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 +19007,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" },
@@ -18830,7 +19020,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x40, 0xE1, 0xE4 }, "NokiaSolutio", "Nokia Solutions and Networks GmbH & Co. KG" },
{ { 0x40, 0xE2, 0x30 }, "AzureWaveTec", "AzureWave Technology Inc." },
{ { 0x40, 0xE3, 0x17 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
- { { 0x40, 0xE3, 0xD6 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x40, 0xE3, 0xD6 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x40, 0xE6, 0x4B }, "Apple", "Apple, Inc." },
{ { 0x40, 0xE7, 0x30 }, "DEYStorage", "DEY Storage Systems, Inc." },
{ { 0x40, 0xE7, 0x93 }, "SivitonTechn", "Shenzhen Siviton Technology Co.,Ltd" },
@@ -18841,6 +19031,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" },
@@ -18886,11 +19077,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0x10, 0xFE }, "HuizhouForyo", "Huizhou Foryou General Electronics Co., Ltd." },
{ { 0x44, 0x11, 0x02 }, "EDMIEurope", "EDMI Europe Ltd" },
{ { 0x44, 0x11, 0xC2 }, "TelegartnerK", "Telegartner Karl Gartner GmbH" },
- { { 0x44, 0x12, 0x44 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x44, 0x12, 0x44 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x44, 0x13, 0x19 }, "WkkTechnolog", "Wkk Technology Ltd." },
{ { 0x44, 0x13, 0xD0 }, "zte", "zte corporation" },
{ { 0x44, 0x14, 0x41 }, "AudioControl", "AudioControl Inc." },
{ { 0x44, 0x16, 0x22 }, "Microsoft", "Microsoft Corporation" },
+ { { 0x44, 0x16, 0x90 }, "WuxiRankeTec", "Wuxi Ranke Technology Co., Ltd." },
{ { 0x44, 0x16, 0xFA }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x44, 0x17, 0x93 }, "Espressif", "Espressif Inc." },
{ { 0x44, 0x18, 0x47 }, "HunanScrownE", "Hunan Scrown Electronic Information Tech.Co.,Ltd" },
@@ -18917,6 +19109,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0x23, 0xAA }, "Farmage", "Farmage Co., Ltd." },
{ { 0x44, 0x25, 0xBB }, "BambooEntert", "Bamboo Entertainment Corporation" },
{ { 0x44, 0x27, 0x2E }, "HuaweiDevice", "Huawei Device Co., Ltd." },
+ { { 0x44, 0x27, 0x45 }, "LGInnotek", "LG Innotek" },
{ { 0x44, 0x27, 0xF3 }, "70mai", "70mai Co.,Ltd." },
{ { 0x44, 0x28, 0xA3 }, "Jiangsufulia", "Jiangsu fulian Communication Technology Co., Ltd." },
{ { 0x44, 0x29, 0x1E }, "AltoBeam", "AltoBeam (China) Inc." },
@@ -18943,6 +19136,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0x37, 0x6F }, "YoungElectri", "Young Electric Sign Co" },
{ { 0x44, 0x37, 0xE6 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x44, 0x38, 0x39 }, "CumulusNetwo", "Cumulus Networks, inc" },
+ { { 0x44, 0x38, 0xE8 }, "Intel", "Intel Corporate" },
{ { 0x44, 0x39, 0xC4 }, "UniversalGlo", "Universal Global Scientific Industrial Co., Ltd." },
{ { 0x44, 0x3B, 0x32 }, "Intelbras", "Intelbras" },
{ { 0x44, 0x3C, 0x88 }, "FicosaMarocI", "Ficosa Maroc International" },
@@ -18962,6 +19156,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0x48, 0xB9 }, "MitraStarTec", "MitraStar Technology Corp." },
{ { 0x44, 0x48, 0xC1 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 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" },
@@ -18988,7 +19183,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0x59, 0x9F }, "Criticare", "Criticare Systems, Inc" },
{ { 0x44, 0x59, 0xE3 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x44, 0x5A, 0xDF }, "Mikami", "Mikami & Co., Ltd." },
- { { 0x44, 0x5B, 0xED }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x44, 0x5B, 0xED }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x44, 0x5C, 0xE9 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x44, 0x5D, 0x5E }, "CoolkitTechn", "SHENZHEN Coolkit Technology CO.,LTD" },
{ { 0x44, 0x5E, 0xCD }, "Razer", "Razer Inc" },
@@ -19023,6 +19218,8 @@ 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, 0x72, 0xAC }, "AltoBeam", "AltoBeam Inc." },
{ { 0x44, 0x73, 0xD6 }, "Logitech", "Logitech" },
{ { 0x44, 0x74, 0x6C }, "Sony", "Sony Corporation" },
{ { 0x44, 0x76, 0x54 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -19041,6 +19238,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0x85, 0x02 }, "SuperElectro", "Shenzhen SuperElectron Technology Co.,Ltd." },
{ { 0x44, 0x86, 0xC1 }, "SiemensLowVo", "Siemens Low Voltage & Products" },
{ { 0x44, 0x87, 0x23 }, "HoyaService", "Hoya Service Corporation" },
+ { { 0x44, 0x87, 0x63 }, "FNLINKTECHNO", "FN-LINK TECHNOLOGY Ltd." },
{ { 0x44, 0x87, 0xDB }, "TymphanyAcou", "Tymphany Acoustic Technology (Huizhou) Co., Ltd." },
{ { 0x44, 0x87, 0xFC }, "ElitegroupCo", "Elitegroup Computer Systems Co.,Ltd." },
{ { 0x44, 0x88, 0x16 }, "Cisco", "Cisco Systems, Inc" },
@@ -19072,6 +19270,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0x9F, 0x7F }, "DataCoreSoft", "DataCore Software Corporation" },
{ { 0x44, 0xA0, 0x38 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x44, 0xA1, 0x91 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x44, 0xA3, 0xBB }, "Intel", "Intel Corporate" },
{ { 0x44, 0xA3, 0xC7 }, "zte", "zte corporation" },
{ { 0x44, 0xA4, 0x2D }, "TCTmobile", "TCT mobile ltd" },
{ { 0x44, 0xA4, 0x66 }, "GroupeLdlc", "Groupe Ldlc" },
@@ -19118,6 +19317,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 +19395,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." },
@@ -19203,12 +19404,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0xFD, 0xA3 }, "Everysight", "Everysight LTD." },
{ { 0x44, 0xFE, 0x3B }, "Arcadyan", "Arcadyan Corporation" },
{ { 0x44, 0xFF, 0xBA }, "zte", "zte corporation" },
- { { 0x48, 0x00, 0x20 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x48, 0x00, 0x20 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 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, 0x34 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x48, 0x02, 0x86 }, "RealmeChongq", "Realme Chongqing Mobile Telecommunications Corp.,Ltd." },
{ { 0x48, 0x02, 0xAF }, "TelitCommuni", "Telit Communication s.p.a" },
{ { 0x48, 0x03, 0x62 }, "DesayElectro", "Desay Electronics(Huizhou)Co.,Ltd" },
@@ -19260,7 +19463,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x48, 0x2C, 0xEA }, "MotorolaBusi", "Motorola Inc Business Light Radios" },
{ { 0x48, 0x2D, 0x63 }, "WavartsTechn", "Wavarts Technologies Co., Ltd" },
{ { 0x48, 0x2E, 0x72 }, "Cisco", "Cisco Systems, Inc" },
- { { 0x48, 0x2F, 0x6B }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x48, 0x2F, 0x6B }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x48, 0x2F, 0xD7 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x48, 0x31, 0x33 }, "RobertBoschE", "Robert Bosch Elektronika Kft." },
{ { 0x48, 0x31, 0x77 }, "Nintendo", "Nintendo Co.,Ltd" },
@@ -19271,10 +19474,12 @@ 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" },
{ { 0x48, 0x39, 0x74 }, "ProwareTechn", "Proware Technologies Co., Ltd." },
+ { { 0x48, 0x3A, 0x02 }, "Fortinet", "Fortinet, Inc." },
{ { 0x48, 0x3B, 0x38 }, "Apple", "Apple, Inc." },
{ { 0x48, 0x3C, 0x0C }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x48, 0x3D, 0x32 }, "SyscorContro", "Syscor Controls & Automation" },
@@ -19294,6 +19499,7 @@ 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" },
@@ -19357,6 +19563,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" },
@@ -19421,12 +19628,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x48, 0x9E, 0xBD }, "HP", "HP Inc." },
{ { 0x48, 0x9E, 0xCB }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x48, 0xA0, 0xF8 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
+ { { 0x48, 0xA1, 0x70 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x48, 0xA1, 0x95 }, "Apple", "Apple, Inc." },
{ { 0x48, 0xA2, 0x2D }, "HuaxuchangTe", "Shenzhen Huaxuchang Telecom Technology Co.,Ltd" },
{ { 0x48, 0xA2, 0xB7 }, "Kodofon", "Kodofon JSC" },
{ { 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." },
@@ -19444,8 +19653,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x48, 0xB0, 0x2D }, "NVIDIA", "NVIDIA Corporation" },
{ { 0x48, 0xB2, 0x53 }, "Marketaxess", "Marketaxess Corporation" },
{ { 0x48, 0xB2, 0x5D }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x48, 0xB3, 0x13 }, "Idesco", "Idesco Oy" },
{ { 0x48, 0xB4, 0x23 }, "AmazonTechno", "Amazon Technologies Inc." },
- { { 0x48, 0xB4, 0xC3 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x48, 0xB4, 0xC3 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x48, 0xB5, 0xA7 }, "GloryHorseIn", "Glory Horse Industries Ltd." },
{ { 0x48, 0xB6, 0x20 }, "ROLI", "ROLI Ltd." },
{ { 0x48, 0xB8, 0xA3 }, "Apple", "Apple, Inc." },
@@ -19509,12 +19719,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x48, 0xE1, 0xAF }, "Vity", "Vity" },
{ { 0x48, 0xE1, 0xE9 }, "MerossTechno", "Chengdu Meross Technology Co., Ltd." },
{ { 0x48, 0xE2, 0x44 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
+ { { 0x48, 0xE2, 0xAD }, "HumaxNetwork", "Humax Networks" },
{ { 0x48, 0xE3, 0xC3 }, "JENOPTIKAdva", "JENOPTIK Advanced Systems GmbH" },
{ { 0x48, 0xE5, 0x33 }, "SunnovoInter", "Sunnovo International Limited" },
{ { 0x48, 0xE6, 0x95 }, "Insigma", "Insigma Inc" },
{ { 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 +19793,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." },
@@ -19611,6 +19824,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x4C, 0x22, 0x58 }, "cozybit", "cozybit, Inc." },
{ { 0x4C, 0x22, 0xF3 }, "Arcadyan", "Arcadyan Corporation" },
{ { 0x4C, 0x23, 0x1A }, "ExtremeNetwo", "Extreme Networks Headquarters" },
+ { { 0x4C, 0x23, 0x38 }, "CloudNetwork", "Cloud Network Technology Singapore Pte. Ltd." },
{ { 0x4C, 0x24, 0x98 }, "TexasInstrum", "Texas Instruments" },
{ { 0x4C, 0x24, 0xCE }, "SichuanAILin", "Sichuan AI-Link Technology Co., Ltd." },
{ { 0x4C, 0x25, 0x78 }, "Nokia", "Nokia Corporation" },
@@ -19732,6 +19946,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" },
@@ -19750,6 +19966,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x4C, 0x96, 0x14 }, "JuniperNetwo", "Juniper Networks" },
{ { 0x4C, 0x96, 0x2D }, "Fresh", "Fresh AB" },
{ { 0x4C, 0x96, 0x8A }, "Wacom", "Wacom Co.,Ltd." },
+ { { 0x4C, 0x97, 0xA1 }, "SiliconLabor", "Silicon Laboratories" },
{ { 0x4C, 0x97, 0xCC }, "Apple", "Apple, Inc." },
{ { 0x4C, 0x98, 0xEF }, "Zeo", "Zeo" },
{ { 0x4C, 0x99, 0x92 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
@@ -19782,6 +19999,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x4C, 0xAE, 0xA3 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 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" },
@@ -19836,7 +20054,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x4C, 0xD2, 0xFB }, "UnionmanTech", "Unionman Technology Co.,Ltd" },
{ { 0x4C, 0xD3, 0xAF }, "HMDGlobal", "HMD Global Oy" },
{ { 0x4C, 0xD5, 0x77 }, "ChongqingFug", "Chongqing Fugui Electronics Co.,Ltd." },
- { { 0x4C, 0xD5, 0x87 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x4C, 0xD5, 0x87 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x4C, 0xD6, 0x29 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x4C, 0xD6, 0x37 }, "QsonoElectro", "Qsono Electronics Co., Ltd" },
{ { 0x4C, 0xD7, 0x17 }, "Dell", "Dell Inc." },
@@ -19900,6 +20118,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x50, 0x05, 0x3D }, "CyWeeGroup", "CyWee Group Ltd" },
{ { 0x50, 0x06, 0x04 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x50, 0x06, 0xAB }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x50, 0x06, 0xF5 }, "Roku", "Roku, Inc" },
{ { 0x50, 0x07, 0xC3 }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0x50, 0x09, 0x59 }, "VantivaUSA", "Vantiva USA LLC" },
{ { 0x50, 0x09, 0xE5 }, "Drimsys", "Drimsys,Inc" },
@@ -19966,6 +20185,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x50, 0x33, 0x8B }, "TexasInstrum", "Texas Instruments" },
{ { 0x50, 0x33, 0xF0 }, "YichenTechno", "Yichen (Shenzhen) Technology Co.Ltd" },
{ { 0x50, 0x38, 0x2F }, "ASEGroupChun", "ASE Group Chung-Li" },
+ { { 0x50, 0x38, 0xAB }, "Prove", "Prove" },
{ { 0x50, 0x39, 0x2F }, "IngramMicroS", "Ingram Micro Services" },
{ { 0x50, 0x39, 0x55 }, "CiscoSPVTG", "Cisco SPVTG" },
{ { 0x50, 0x3A, 0x7D }, "AlphaTechInt", "AlphaTech PLC Int’l Co., Ltd." },
@@ -20031,6 +20251,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 +20296,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 +20318,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" },
@@ -20148,6 +20371,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x50, 0xAF, 0x4D }, "zte", "zte corporation" },
{ { 0x50, 0xAF, 0x73 }, "BitlandInfor", "Shenzhen Bitland Information Technology Co., Ltd." },
{ { 0x50, 0xB1, 0x27 }, "Apple", "Apple, Inc." },
+ { { 0x50, 0xB1, 0x40 }, "ElpromaElekt", "Elproma Elektronika Sp Z O O" },
{ { 0x50, 0xB3, 0x63 }, "DigitrondaAm", "Digitron da Amazonia S/A" },
{ { 0x50, 0xB3, 0xB4 }, "FuruilianEle", "Shenzhen Furuilian Electronic Co.,Ltd." },
{ { 0x50, 0xB6, 0x95 }, "MicropointBi", "Micropoint Biotechnologies,Inc." },
@@ -20178,6 +20402,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" },
@@ -20205,7 +20430,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x50, 0xE2, 0x4E }, "zte", "zte corporation" },
{ { 0x50, 0xE4, 0x52 }, "ChipseaTechn", "Chipsea Technologies (Shenzhen) Corp." },
{ { 0x50, 0xE4, 0x78 }, "SichuanAILin", "Sichuan AI-Link Technology Co., Ltd." },
- { { 0x50, 0xE4, 0xE0 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x50, 0xE4, 0xE0 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x50, 0xE5, 0x38 }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
{ { 0x50, 0xE5, 0x49 }, "GigaByteTech", "Giga-Byte Technology Co.,Ltd." },
{ { 0x50, 0xE6, 0x36 }, "AVMAudiovisu", "AVM Audiovisuelles Marketing und Computersysteme GmbH" },
@@ -20227,6 +20452,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x50, 0xF1, 0x4A }, "TexasInstrum", "Texas Instruments" },
{ { 0x50, 0xF2, 0x22 }, "EMMicroelect", "EM Microelectronic" },
{ { 0x50, 0xF2, 0x61 }, "PhotonSailTe", "Photon Sail Technologies" },
+ { { 0x50, 0xF2, 0x65 }, "Apple", "Apple, Inc." },
{ { 0x50, 0xF4, 0x3C }, "Leeo", "Leeo Inc" },
{ { 0x50, 0xF4, 0xEB }, "Apple", "Apple, Inc." },
{ { 0x50, 0xF5, 0x20 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -20250,6 +20476,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 +20486,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 +20542,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 +20554,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,6 +20627,7 @@ 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." },
@@ -20511,7 +20742,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x54, 0xD4, 0x6F }, "CiscoSPVTG", "Cisco SPVTG" },
{ { 0x54, 0xD6, 0x0D }, "EzvizSoftwar", "Hangzhou Ezviz Software Co.,Ltd." },
{ { 0x54, 0xD7, 0x51 }, "Proximus", "Proximus" },
- { { 0x54, 0xD7, 0xE3 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x54, 0xD7, 0xE3 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x54, 0xD9, 0xC6 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x54, 0xD9, 0xE4 }, "Brilliantts", "Brilliantts Co., Ltd" },
{ { 0x54, 0xDB, 0xA2 }, "Fibrain", "Fibrain" },
@@ -20552,7 +20783,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x54, 0xEF, 0x44 }, "LumiUnitedTe", "Lumi United Technology Co., Ltd" },
{ { 0x54, 0xEF, 0x92 }, "ElinkTechnol", "Shenzhen Elink Technology Co., LTD" },
{ { 0x54, 0xEF, 0xFE }, "FullpowerTec", "Fullpower Technologies, Inc." },
- { { 0x54, 0xF0, 0xB1 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x54, 0xF0, 0xB1 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x54, 0xF1, 0x5F }, "SichuanAILin", "Sichuan AI-Link Technology Co., Ltd." },
{ { 0x54, 0xF2, 0x01 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x54, 0xF2, 0x94 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -20566,10 +20797,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x54, 0xF8, 0x76 }, "Abb", "Abb Ag" },
{ { 0x54, 0xF8, 0xF0 }, "Tesla", "Tesla Inc" },
{ { 0x54, 0xFA, 0x3E }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0x54, 0xFA, 0x89 }, "MedtronicCRM", "Medtronic CRM" },
{ { 0x54, 0xFA, 0x96 }, "NokiaSolutio", "Nokia Solutions and Networks GmbH & Co. KG" },
{ { 0x54, 0xFB, 0x58 }, "WISEWARELda", "WISEWARE, Lda" },
{ { 0x54, 0xFC, 0xF0 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x54, 0xFD, 0xBF }, "ScheidtBachm", "Scheidt & Bachmann GmbH" },
+ { { 0x54, 0xFE, 0xEB }, "TexasInstrum", "Texas Instruments" },
{ { 0x54, 0xFF, 0x82 }, "DavitSolutio", "Davit Solution co." },
{ { 0x54, 0xFF, 0xCF }, "MopriaAllian", "Mopria Alliance" },
{ { 0x58, 0x00, 0x32 }, "Genexis", "Genexis B.V." },
@@ -20696,9 +20929,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x58, 0x73, 0xD8 }, "Apple", "Apple, Inc." },
{ { 0x58, 0x75, 0x21 }, "CJSCRTSoft", "CJSC RTSoft" },
{ { 0x58, 0x76, 0x75 }, "ECHOTechnolo", "Beijing ECHO Technologies Co.,Ltd" },
+ { { 0x58, 0x76, 0x9C }, "PaloAltoNetw", "Palo Alto Networks" },
{ { 0x58, 0x76, 0xAC }, "SernetTechno", "Sernet (Suzhou) Technologies Corporation" },
{ { 0x58, 0x76, 0xB3 }, "UbeeInteract", "Ubee Interactive Co., Limited" },
{ { 0x58, 0x76, 0xC5 }, "DigiIS", "Digi I'S Ltd" },
+ { { 0x58, 0x79, 0xE0 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x58, 0x7A, 0x4D }, "Stonesoft", "Stonesoft Corporation" },
{ { 0x58, 0x7A, 0x62 }, "TexasInstrum", "Texas Instruments" },
{ { 0x58, 0x7A, 0x6A }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
@@ -20715,6 +20950,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 +20970,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 +21000,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." },
@@ -20810,6 +21048,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x58, 0xD0, 0x61 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x58, 0xD0, 0x71 }, "BWBroadcast", "BW Broadcast" },
{ { 0x58, 0xD0, 0x8F }, "IEEE19041Wor", "IEEE 1904.1 Working Group" },
+ { { 0x58, 0xD1, 0x5A }, "TexasInstrum", "Texas Instruments" },
{ { 0x58, 0xD2, 0x37 }, "SichuanTiany", "Sichuan Tianyi Comheart Telecom Co.,LTD" },
{ { 0x58, 0xD3, 0x12 }, "zte", "zte corporation" },
{ { 0x58, 0xD3, 0x49 }, "Apple", "Apple, Inc." },
@@ -20823,6 +21062,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x58, 0xD8, 0xA7 }, "BirdHomeAuto", "Bird Home Automation GmbH" },
{ { 0x58, 0xD9, 0xC3 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0x58, 0xD9, 0xD5 }, "TendaTechnol", "Tenda Technology Co.,Ltd.Dongguan branch" },
+ { { 0x58, 0xDB, 0x09 }, "QuectelWirel", "Quectel Wireless Solutions Co.,Ltd." },
{ { 0x58, 0xDB, 0x15 }, "TecnoMobile", "Tecno Mobile Limited" },
{ { 0x58, 0xDB, 0x8D }, "Fast", "Fast Co., Ltd." },
{ { 0x58, 0xDC, 0x6D }, "ExceptionalI", "Exceptional Innovation, Inc." },
@@ -20863,16 +21103,19 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x58, 0xFC, 0x73 }, "ArriaLiveMed", "Arria Live Media, Inc." },
{ { 0x58, 0xFC, 0xC6 }, "Tozo", "Tozo Inc" },
{ { 0x58, 0xFC, 0xC8 }, "LenelS2Carri", "LenelS2 Carrier" },
+ { { 0x58, 0xFC, 0xE3 }, "FunshionOnli", "Funshion Online Technologies Co.,Ltd" },
{ { 0x58, 0xFD, 0x20 }, "SystemhouseS", "Systemhouse Solutions AB" },
{ { 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" },
@@ -20897,12 +21140,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x5C, 0x11, 0x93 }, "SealOne", "Seal One AG" },
{ { 0x5C, 0x14, 0x37 }, "Thyssenkrupp", "Thyssenkrupp Aufzugswerke GmbH" },
{ { 0x5C, 0x15, 0x15 }, "Advan", "Advan" },
+ { { 0x5C, 0x15, 0xC5 }, "SSCTechnolog", "Shenzhen SSC Technology Co. Ltd" },
{ { 0x5C, 0x15, 0xE1 }, "AidcTechnolo", "Aidc Technology (S) Pte Ltd" },
{ { 0x5C, 0x16, 0x48 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0x5C, 0x16, 0x7D }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 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" },
@@ -20915,6 +21160,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x5C, 0x22, 0xC4 }, "DaeEunEletro", "Dae Eun Eletronics Co., Ltd" },
{ { 0x5C, 0x22, 0xDA }, "VantivaUSA", "Vantiva USA LLC" },
{ { 0x5C, 0x23, 0x16 }, "SquirrelsRes", "Squirrels Research Labs LLC" },
+ { { 0x5C, 0x24, 0x1F }, "QingdaoHaier", "Qingdao Haier Technology Co.,Ltd" },
{ { 0x5C, 0x24, 0x43 }, "OSungTelecom", "O-Sung Telecom Co., Ltd." },
{ { 0x5C, 0x24, 0x79 }, "Baltech", "Baltech AG" },
{ { 0x5C, 0x24, 0xE2 }, "SuzhouDenbom", "Suzhou Denbom Electronic S&T Co., Ltd" },
@@ -20940,7 +21186,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 +21205,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" },
@@ -21050,6 +21299,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x5C, 0x89, 0x9A }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x5C, 0x89, 0xD4 }, "BannerElectr", "Beijing Banner Electric Co.,Ltd" },
{ { 0x5C, 0x8A, 0x38 }, "HewlettPacka", "Hewlett Packard" },
+ { { 0x5C, 0x8A, 0xAE }, "ChinaDragonT", "China Dragon Technology Limited" },
{ { 0x5C, 0x8B, 0x6B }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0x5C, 0x8C, 0x30 }, "TaicangT&WEl", "Taicang T&W Electronics" },
{ { 0x5C, 0x8D, 0x2D }, "WellpayInfor", "Shanghai Wellpay Information Technology Co., Ltd" },
@@ -21059,6 +21309,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,8 +21328,8 @@ 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, 0xA4, 0x7D }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x5C, 0xA3, 0xEB }, "SKODADIGITAL", "SKODA DIGITAL s.r.o." },
+ { { 0x5C, 0xA4, 0x7D }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x5C, 0xA4, 0x8A }, "Cisco", "Cisco Systems, Inc" },
{ { 0x5C, 0xA4, 0xA4 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x5C, 0xA4, 0xF4 }, "zte", "zte corporation" },
@@ -21105,6 +21356,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x5C, 0xB3, 0x95 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x5C, 0xB3, 0xF6 }, "Human", "Human, Incorporated" },
{ { 0x5C, 0xB4, 0x3E }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x5C, 0xB4, 0x7E }, "Intel", "Intel Corporate" },
{ { 0x5C, 0xB4, 0xE2 }, "InspurSoftwa", "Inspur Software Group Ltd." },
{ { 0x5C, 0xB5, 0x24 }, "Sony", "Sony Corporation" },
{ { 0x5C, 0xB5, 0x59 }, "CNEXLabs", "CNEX Labs" },
@@ -21117,6 +21369,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 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" },
@@ -21206,6 +21459,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 +21512,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." },
@@ -21271,7 +21526,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x60, 0x24, 0xC1 }, "JiangsuZhong", "Jiangsu Zhongxun Electronic Technology Co., Ltd" },
{ { 0x60, 0x26, 0x02 }, "TexasInstrum", "Texas Instruments" },
{ { 0x60, 0x26, 0xAA }, "Cisco", "Cisco Systems, Inc" },
- { { 0x60, 0x26, 0xEF }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x60, 0x26, 0xEF }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x60, 0x27, 0x1C }, "VIDEOREHarti", "VIDEOR E. Hartig GmbH" },
{ { 0x60, 0x29, 0x2B }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x60, 0x29, 0xD5 }, "DAVOLINK", "DAVOLINK Inc." },
@@ -21282,10 +21537,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x60, 0x2E, 0x20 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x60, 0x30, 0xD4 }, "Apple", "Apple, Inc." },
{ { 0x60, 0x31, 0x3B }, "SunnovoInter", "Sunnovo International Limited" },
+ { { 0x60, 0x31, 0x92 }, "OVTIndia", "OVT India pvt Ltd" },
{ { 0x60, 0x31, 0x97 }, "ZyxelCommuni", "Zyxel Communications Corporation" },
{ { 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 +21609,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 +21632,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" },
@@ -21384,12 +21643,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x60, 0x7E, 0xC9 }, "Apple", "Apple, Inc." },
{ { 0x60, 0x7E, 0xCD }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x60, 0x7E, 0xDD }, "MicrosoftMob", "Microsoft Mobile Oy" },
+ { { 0x60, 0x7F, 0xCB }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x60, 0x81, 0x2B }, "AstronicsCus", "Astronics Custom Control Concepts" },
{ { 0x60, 0x81, 0xF9 }, "Helium", "Helium Systems, Inc" },
{ { 0x60, 0x82, 0x46 }, "Apple", "Apple, Inc." },
{ { 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 +21731,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 +21762,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 +21785,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" },
@@ -21542,9 +21806,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x60, 0xF2, 0x81 }, "TranwoTechno", "Tranwo Technology Co., Ltd." },
{ { 0x60, 0xF2, 0xEF }, "VisionVeraIn", "VisionVera International Co., Ltd." },
{ { 0x60, 0xF3, 0xDA }, "LogicWay", "Logic Way GmbH" },
+ { { 0x60, 0xF4, 0x19 }, "eero", "eero inc." },
{ { 0x60, 0xF4, 0x3A }, "EdifierInter", "Edifier International" },
{ { 0x60, 0xF4, 0x45 }, "Apple", "Apple, Inc." },
{ { 0x60, 0xF4, 0x94 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
+ { { 0x60, 0xF5, 0x49 }, "Apple", "Apple, Inc." },
{ { 0x60, 0xF5, 0x9C }, "CRUDataport", "CRU-Dataport" },
{ { 0x60, 0xF6, 0x73 }, "Terumo", "Terumo Corporation" },
{ { 0x60, 0xF6, 0x77 }, "Intel", "Intel Corporate" },
@@ -21573,12 +21839,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x64, 0x05, 0xBE }, "NewLightLed", "New Light Led" },
{ { 0x64, 0x05, 0xE4 }, "Alpsalpine", "Alpsalpine Co,.Ltd" },
{ { 0x64, 0x05, 0xE9 }, "WayOSTechnol", "Shenzhen WayOS Technology Crop., Ltd." },
+ { { 0x64, 0x07, 0x8C }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x64, 0x07, 0xF6 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x64, 0x09, 0x4C }, "SuperbeeWire", "Beijing Superbee Wireless Technology Co.,Ltd" },
{ { 0x64, 0x09, 0x80 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 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 +21893,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 +21919,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 +21993,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." },
@@ -21750,9 +22021,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x64, 0x88, 0xFF }, "SichuanChang", "Sichuan Changhong Electric Ltd." },
{ { 0x64, 0x89, 0x9A }, "LGElectronic", "LG Electronics (Mobile Communications)" },
{ { 0x64, 0x89, 0xF1 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0x64, 0x8B, 0x9B }, "AlwaysOnTech", "Always On Tech Pte.Ltd." },
{ { 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." },
@@ -21768,6 +22041,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x64, 0x9B, 0x24 }, "VTechnology", "V Technology Co., Ltd." },
{ { 0x64, 0x9C, 0x81 }, "Qualcomm", "Qualcomm Inc." },
{ { 0x64, 0x9C, 0x8E }, "TexasInstrum", "Texas Instruments" },
+ { { 0x64, 0x9C, 0xF3 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x64, 0x9D, 0x99 }, "FsCom", "Fs Com Inc" },
{ { 0x64, 0x9E, 0x31 }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0x64, 0x9E, 0xF3 }, "Cisco", "Cisco Systems, Inc" },
@@ -21807,6 +22081,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)" },
@@ -21883,7 +22158,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x64, 0xE7, 0xD8 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x64, 0xE8, 0x33 }, "Espressif", "Espressif Inc." },
{ { 0x64, 0xE8, 0x4F }, "SerialwayCom", "Serialway Communication Technology Co. Ltd" },
- { { 0x64, 0xE8, 0x81 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x64, 0xE8, 0x81 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x64, 0xE8, 0x92 }, "MorioDenki", "Morio Denki Co., Ltd." },
{ { 0x64, 0xE8, 0xE6 }, "globalmoistu", "global moisture management system" },
{ { 0x64, 0xE9, 0x50 }, "Cisco", "Cisco Systems, Inc" },
@@ -21914,6 +22189,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." },
@@ -21959,7 +22235,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x68, 0x27, 0x37 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x68, 0x27, 0x5F }, "zte", "zte corporation" },
{ { 0x68, 0x28, 0xBA }, "Dejai", "Dejai" },
- { { 0x68, 0x28, 0xCF }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x68, 0x28, 0xCF }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x68, 0x28, 0xF6 }, "VubiqNetwork", "Vubiq Networks, Inc." },
{ { 0x68, 0x29, 0xDC }, "FicosaElectr", "Ficosa Electronics S.L.U." },
{ { 0x68, 0x2C, 0x4F }, "leerang", "leerang corporation" },
@@ -21970,6 +22246,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 +22266,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 +22283,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" },
@@ -22012,6 +22291,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x68, 0x52, 0x10 }, "MCSLogic", "MCS Logic" },
{ { 0x68, 0x52, 0xD6 }, "UGameTechnol", "UGame Technology Co.,Ltd" },
{ { 0x68, 0x53, 0x6C }, "SPnS", "SPnS Co.,Ltd" },
+ { { 0x68, 0x53, 0x77 }, "BouffaloLab", "Bouffalo Lab (Nanjing) Co., Ltd." },
{ { 0x68, 0x53, 0x88 }, "P&STechnolog", "P&S Technology" },
{ { 0x68, 0x53, 0x9D }, "EMMicroelect", "EM Microelectronic" },
{ { 0x68, 0x54, 0x5A }, "Intel", "Intel Corporate" },
@@ -22118,6 +22398,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,11 +22422,13 @@ 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." },
{ { 0x68, 0xB6, 0xB3 }, "Espressif", "Espressif Inc." },
{ { 0x68, 0xB6, 0xFC }, "HitronTechno", "Hitron Technologies. Inc" },
+ { { 0x68, 0xB7, 0x6B }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x68, 0xB8, 0xBB }, "XiaomiElectr", "Beijing Xiaomi Electronics Co.,Ltd" },
{ { 0x68, 0xB8, 0xD9 }, "ActKDE", "Act KDE, Inc." },
{ { 0x68, 0xB9, 0x83 }, "bplus", "b-plus GmbH" },
@@ -22154,10 +22437,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x68, 0xBC, 0x0C }, "Cisco", "Cisco Systems, Inc" },
{ { 0x68, 0xBD, 0xAB }, "Cisco", "Cisco Systems, Inc" },
{ { 0x68, 0xBE, 0x49 }, "NebulaMatrix", "Nebula Matrix" },
+ { { 0x68, 0xBF, 0x6C }, "AristaNetwor", "Arista Networks" },
{ { 0x68, 0xBF, 0xC4 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x68, 0xC4, 0x4C }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x68, 0xC4, 0x4D }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0x68, 0xC6, 0x3A }, "Espressif", "Espressif Inc." },
+ { { 0x68, 0xC6, 0xAC }, "Intel", "Intel Corporate" },
{ { 0x68, 0xC8, 0xEB }, "RockwellAuto", "Rockwell Automation" },
{ { 0x68, 0xC9, 0x0B }, "TexasInstrum", "Texas Instruments" },
{ { 0x68, 0xCA, 0x00 }, "Octopus", "Octopus Systems Limited" },
@@ -22198,6 +22483,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 +22629,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 +22666,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 +22703,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" },
@@ -22491,6 +22780,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x6C, 0xB2, 0xAE }, "Cisco", "Cisco Systems, Inc" },
{ { 0x6C, 0xB2, 0xFD }, "TexasInstrum", "Texas Instruments" },
{ { 0x6C, 0xB3, 0x11 }, "LianruiElect", "Shenzhen Lianrui Electronics Co.,Ltd" },
+ { { 0x6C, 0xB3, 0x4D }, "SharkNinjaOp", "SharkNinja Operating LLC" },
{ { 0x6C, 0xB3, 0x50 }, "Anhuicomhigh", "Anhui comhigher tech co.,ltd" },
{ { 0x6C, 0xB4, 0x56 }, "Espressif", "Espressif Inc." },
{ { 0x6C, 0xB4, 0xA7 }, "Landauer", "Landauer, Inc." },
@@ -22511,7 +22801,9 @@ 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, 0xC4, 0x9F }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x6C, 0xC3, 0xB2 }, "CiscoMeraki", "Cisco Meraki" },
+ { { 0x6C, 0xC4, 0x1E }, "NEXSEC", "NEXSEC Incorporated" },
+ { { 0x6C, 0xC4, 0x9F }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x6C, 0xC4, 0xD5 }, "HMDGlobal", "HMD Global Oy" },
{ { 0x6C, 0xC6, 0x3B }, "TaicangT&WEl", "Taicang T&W Electronics" },
{ { 0x6C, 0xC7, 0xEC }, "SamsungElect", "Samsung Electro-Mechanics(Thailand)" },
@@ -22561,11 +22853,13 @@ 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, 0xF3, 0x7F }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x6C, 0xF5, 0xE8 }, "Mooredoll", "Mooredoll Inc." },
{ { 0x6C, 0xF6, 0xDA }, "Intel", "Intel Corporate" },
{ { 0x6C, 0xF7, 0x12 }, "NokiaSolutio", "Nokia Solutions and Networks GmbH & Co. KG" },
@@ -22576,6 +22870,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x6C, 0xFA, 0x89 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x6C, 0xFA, 0xA7 }, "AMPAKTechnol", "AMPAK Technology, Inc." },
{ { 0x6C, 0xFB, 0xED }, "GNAudio", "GN Audio A/S" },
+ { { 0x6C, 0xFD, 0x22 }, "SiliconLabor", "Silicon Laboratories" },
{ { 0x6C, 0xFD, 0xB9 }, "ProwareTechn", "Proware Technologies Co Ltd." },
{ { 0x6C, 0xFE, 0x54 }, "Intel", "Intel Corporate" },
{ { 0x6C, 0xFF, 0xBE }, "MPBCommunica", "MPB Communications Inc." },
@@ -22591,6 +22886,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" },
@@ -22636,6 +22932,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" },
@@ -22656,11 +22953,13 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x70, 0x32, 0x17 }, "Intel", "Intel Corporate" },
{ { 0x70, 0x32, 0xD5 }, "AthenaWirele", "Athena Wireless Communications Inc" },
{ { 0x70, 0x35, 0x09 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x70, 0x35, 0x7B }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x70, 0x36, 0xB2 }, "Focusai", "Focusai Corp" },
+ { { 0x70, 0x37, 0x8E }, "TianyiTeleco", "Tianyi Telecom Terminals Company Limited" },
{ { 0x70, 0x38, 0x11 }, "SiemensMobil", "Siemens Mobility Limited" },
{ { 0x70, 0x38, 0xB4 }, "LowTechSolut", "Low Tech Solutions" },
{ { 0x70, 0x38, 0xEE }, "Avaya", "Avaya Inc" },
- { { 0x70, 0x3A, 0x0E }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x70, 0x3A, 0x0E }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x70, 0x3A, 0x2D }, "VLinkTechnol", "Shenzhen V-Link Technology CO., LTD." },
{ { 0x70, 0x3A, 0x51 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x70, 0x3A, 0x73 }, "SundrayTechn", "Shenzhen Sundray Technologies Company Limited" },
@@ -22684,6 +22983,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" },
@@ -22742,11 +23042,13 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x70, 0x66, 0xE1 }, "dntInnovatio", "dnt Innovation GmbH" },
{ { 0x70, 0x68, 0x79 }, "SaijoDenkiIn", "Saijo Denki International Co., Ltd." },
{ { 0x70, 0x69, 0x5A }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x70, 0x6A, 0xC9 }, "zte", "zte corporation" },
{ { 0x70, 0x6B, 0xB9 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x70, 0x6D, 0x15 }, "Cisco", "Cisco Systems, Inc" },
{ { 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 +23101,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 +23224,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," },
@@ -22941,6 +23245,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x70, 0xF8, 0x2B }, "DWnetTechnol", "DWnet Technologies(Suzhou) Corporation" },
{ { 0x70, 0xF8, 0xAE }, "Microsoft", "Microsoft Corporation" },
{ { 0x70, 0xF9, 0x27 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0x70, 0xF9, 0x4A }, "Apple", "Apple, Inc." },
{ { 0x70, 0xF9, 0x6D }, "H3CTechnolog", "Hangzhou H3C Technologies Co., Limited" },
{ { 0x70, 0xFC, 0x8C }, "OneAccess", "OneAccess SA" },
{ { 0x70, 0xFC, 0x8F }, "FreeboxSas", "Freebox Sas" },
@@ -22949,6 +23254,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x70, 0xFD, 0x88 }, "NanjingJiaha", "Nanjing Jiahao Technology Co., Ltd." },
{ { 0x70, 0xFF, 0x5C }, "CheerzingCom", "Cheerzing Communication(Xiamen)Technology Co.,Ltd" },
{ { 0x70, 0xFF, 0x76 }, "TexasInstrum", "Texas Instruments" },
+ { { 0x74, 0x02, 0xE1 }, "TexasInstrum", "Texas Instruments" },
{ { 0x74, 0x03, 0xBD }, "Buffalo", "Buffalo.Inc" },
{ { 0x74, 0x04, 0x2B }, "LenovoMobile", "Lenovo Mobile Communication (Wuhan) Company Limited" },
{ { 0x74, 0x04, 0xF0 }, "MobiwireMobi", "Mobiwire Mobiles (NingBo) Co., LTD" },
@@ -22983,6 +23289,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" },
@@ -22991,12 +23298,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x74, 0x27, 0x3C }, "ChangYangTec", "ChangYang Technology (Nanjing) Co., LTD" },
{ { 0x74, 0x27, 0xEA }, "ElitegroupCo", "Elitegroup Computer Systems Co.,Ltd." },
{ { 0x74, 0x28, 0x57 }, "MayfieldRobo", "Mayfield Robotics" },
+ { { 0x74, 0x29, 0x72 }, "JuniperNetwo", "Juniper Networks" },
{ { 0x74, 0x29, 0xAF }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x74, 0x2A, 0x8A }, "worldeliteel", "shenzhen worldelite electronics co., LTD" },
{ { 0x74, 0x2B, 0x0F }, "Infinidat", "Infinidat Ltd." },
{ { 0x74, 0x2B, 0x62 }, "Fujitsu", "Fujitsu Limited" },
{ { 0x74, 0x2D, 0x0A }, "NorfolkElekt", "Norfolk Elektronik AG" },
{ { 0x74, 0x2E, 0x4F }, "StienenGroup", "Stienen Group" },
+ { { 0x74, 0x2E, 0xC1 }, "DixonElectro", "Dixon Electro Appliances Pvt Ltd" },
{ { 0x74, 0x2E, 0xDB }, "Perinet", "Perinet GmbH" },
{ { 0x74, 0x2E, 0xFC }, "DirectPacket", "DirectPacket Research, Inc," },
{ { 0x74, 0x2F, 0x68 }, "AzureWaveTec", "AzureWave Technology Inc." },
@@ -23019,6 +23328,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 +23398,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" },
@@ -23172,7 +23483,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x74, 0x9D, 0x79 }, "Sercomm", "Sercomm Corporation." },
{ { 0x74, 0x9D, 0x8F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x74, 0x9D, 0xDC }, "2Wire", "2Wire Inc" },
- { { 0x74, 0x9E, 0x75 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x74, 0x9E, 0x75 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x74, 0x9E, 0xA5 }, "Ohsung", "Ohsung" },
{ { 0x74, 0x9E, 0xAF }, "Apple", "Apple, Inc." },
{ { 0x74, 0x9E, 0xF5 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -23210,11 +23521,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." },
@@ -23222,6 +23535,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x74, 0xC6, 0x3B }, "AzureWaveTec", "AzureWave Technology Inc." },
{ { 0x74, 0xC6, 0x4A }, "AGOS", "AGOS Co.,Ltd" },
{ { 0x74, 0xC7, 0x6E }, "RtkTechnolog", "Rtk-Technologies, Llc" },
+ { { 0x74, 0xC9, 0x0F }, "MicrochipTec", "Microchip Technologies Inc" },
{ { 0x74, 0xC9, 0x29 }, "ZhejiangDahu", "Zhejiang Dahua Technology Co., Ltd." },
{ { 0x74, 0xC9, 0x9A }, "Ericsson", "Ericsson AB" },
{ { 0x74, 0xC9, 0xA3 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
@@ -23327,6 +23641,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x78, 0x06, 0xC9 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x78, 0x07, 0x1C }, "GreenEnergyO", "Green Energy Options Ltd" },
{ { 0x78, 0x07, 0x38 }, "ZUKElzab", "Z.U.K. Elzab S.A." },
+ { { 0x78, 0x07, 0x8F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x78, 0x08, 0x4D }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x78, 0x0A, 0xC7 }, "BaofengTV", "Baofeng TV Co., Ltd." },
{ { 0x78, 0x0C, 0xB8 }, "Intel", "Intel Corporate" },
@@ -23368,6 +23683,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x78, 0x25, 0x7A }, "LEOInnovatio", "LEO Innovation Lab" },
{ { 0x78, 0x25, 0xAD }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x78, 0x28, 0xCA }, "Sonos", "Sonos, Inc." },
+ { { 0x78, 0x29, 0xAD }, "NingboQixian", "Ningbo Qixiang Information Technology Co., Ltd" },
{ { 0x78, 0x29, 0xED }, "AskeyCompute", "Askey Computer Corp" },
{ { 0x78, 0x2A, 0x79 }, "IntegratedDe", "Integrated Device Technology (Malaysia) Sdn. Bhd." },
{ { 0x78, 0x2A, 0xF8 }, "IethcomInfor", "Iethcom Information Technology Co., Ltd." },
@@ -23377,6 +23693,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x78, 0x2C, 0x29 }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x78, 0x2D, 0x7E }, "TRENDnet", "TRENDnet, Inc." },
{ { 0x78, 0x2D, 0xAD }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x78, 0x2E, 0x03 }, "GeniusTechno", "Guangdong Genius Technology Co., Ltd." },
{ { 0x78, 0x2E, 0x56 }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
{ { 0x78, 0x2E, 0xEF }, "Nokia", "Nokia Corporation" },
{ { 0x78, 0x2F, 0x17 }, "Xlab", "Xlab Co.,Ltd" },
@@ -23388,6 +23705,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x78, 0x31, 0xC1 }, "Apple", "Apple, Inc." },
{ { 0x78, 0x32, 0x1B }, "DLinkInterna", "D-Link International" },
{ { 0x78, 0x32, 0x4F }, "MillenniumGr", "Millennium Group, Inc." },
+ { { 0x78, 0x34, 0x09 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x78, 0x34, 0x86 }, "Nokia", "Nokia" },
{ { 0x78, 0x34, 0xFD }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x78, 0x35, 0xA0 }, "ZurnIndustri", "Zurn Industries LLC" },
@@ -23468,6 +23786,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 +23809,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." },
@@ -23578,6 +23898,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x78, 0xB5, 0xD2 }, "EverTreasure", "Ever Treasure Industrial Limited" },
{ { 0x78, 0xB6, 0xC1 }, "AOBOTelecom", "AOBO Telecom Co.,Ltd" },
{ { 0x78, 0xB6, 0xEC }, "ScufGamingIn", "Scuf Gaming International LLC" },
+ { { 0x78, 0xB6, 0xFE }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x78, 0xB8, 0x1A }, "InterSales", "Inter Sales A/S" },
{ { 0x78, 0xB8, 0x4B }, "SichuanTiany", "Sichuan Tianyi Comheart Telecom Co.,LTD" },
{ { 0x78, 0xB8, 0xD6 }, "ZebraTechnol", "Zebra Technologies Inc." },
@@ -23653,6 +23974,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x78, 0xE3, 0xB5 }, "HewlettPacka", "Hewlett Packard" },
{ { 0x78, 0xE3, 0xDE }, "Apple", "Apple, Inc." },
{ { 0x78, 0xE4, 0x00 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
+ { { 0x78, 0xE6, 0x1C }, "HonorDevice", "Honor Device Co., Ltd." },
{ { 0x78, 0xE7, 0xD1 }, "HewlettPacka", "Hewlett Packard" },
{ { 0x78, 0xE8, 0xB6 }, "zte", "zte corporation" },
{ { 0x78, 0xE9, 0x80 }, "RainUs", "RainUs Co.,Ltd" },
@@ -23663,6 +23985,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x78, 0xEC, 0x22 }, "QihuiTelecom", "Shanghai Qihui Telecom Technology Co., LTD" },
{ { 0x78, 0xEC, 0x74 }, "KylandUSA", "Kyland-USA" },
{ { 0x78, 0xED, 0xBC }, "OnePlusTechn", "OnePlus Technology (Shenzhen) Co., Ltd" },
+ { { 0x78, 0xEE, 0x4C }, "Espressif", "Espressif Inc." },
{ { 0x78, 0xEF, 0x4C }, "Unetconverge", "Unetconvergence Co., Ltd." },
{ { 0x78, 0xF0, 0x9B }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x78, 0xF1, 0xC6 }, "Cisco", "Cisco Systems, Inc" },
@@ -23695,6 +24018,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 +24043,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." },
@@ -23740,6 +24065,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0x1C, 0xF1 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x7C, 0x1D, 0xD9 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x7C, 0x1E, 0x06 }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
+ { { 0x7C, 0x1E, 0x4A }, "FortuneMarke", "Fortune Marketing Private Limited" },
{ { 0x7C, 0x1E, 0x52 }, "Microsoft", "Microsoft" },
{ { 0x7C, 0x1E, 0xB3 }, "2NTELEKOMUNI", "2N TELEKOMUNIKACE a.s." },
{ { 0x7C, 0x20, 0x48 }, "KoamTac", "KoamTac" },
@@ -23763,6 +24089,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0x2A, 0xCA }, "Apple", "Apple, Inc." },
{ { 0x7C, 0x2A, 0xDB }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x7C, 0x2B, 0xE1 }, "FerexElectri", "Shenzhen Ferex Electrical Co.,Ltd" },
+ { { 0x7C, 0x2C, 0x67 }, "Espressif", "Espressif Inc." },
{ { 0x7C, 0x2C, 0xF3 }, "SecureElectr", "Secure Electrans Ltd" },
{ { 0x7C, 0x2E, 0x0D }, "BlackmagicDe", "Blackmagic Design" },
{ { 0x7C, 0x2E, 0xBD }, "Google", "Google, Inc." },
@@ -23812,12 +24139,13 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0x53, 0x4A }, "Metamako", "Metamako" },
{ { 0x7C, 0x55, 0xA7 }, "Kastle", "Kastle Systems" },
{ { 0x7C, 0x55, 0xE7 }, "YSI", "YSI, Inc." },
- { { 0x7C, 0x57, 0x3C }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x7C, 0x57, 0x3C }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x7C, 0x57, 0x4E }, "COBI", "COBI GmbH" },
{ { 0x7C, 0x57, 0x58 }, "HP", "HP Inc." },
{ { 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." },
@@ -23855,6 +24183,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0x71, 0x76 }, "WuxiiDataTec", "Wuxi iData Technology Company Ltd." },
{ { 0x7C, 0x72, 0x6E }, "Ericsson", "Ericsson AB" },
{ { 0x7C, 0x72, 0xE4 }, "UnikeyTechno", "Unikey Technologies" },
+ { { 0x7C, 0x72, 0xE7 }, "TexasInstrum", "Texas Instruments" },
{ { 0x7C, 0x73, 0x8B }, "CocoonAlarm", "Cocoon Alarm Ltd" },
{ { 0x7C, 0x73, 0x98 }, "Espressif", "Espressif Inc." },
{ { 0x7C, 0x73, 0xEB }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -23875,6 +24204,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 +24215,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 +24231,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" },
@@ -23937,10 +24268,13 @@ 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, 0xBA, 0xC6 }, "SolarManager", "Solar Manager AG" },
{ { 0x7C, 0xBB, 0x6F }, "CoscoElectro", "Cosco Electronics Co., Ltd." },
{ { 0x7C, 0xBB, 0x8A }, "Nintendo", "Nintendo Co., Ltd." },
{ { 0x7C, 0xBD, 0x06 }, "AEREFUsol", "AE REFUsol" },
@@ -23948,6 +24282,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" },
@@ -24007,6 +24342,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0xE2, 0xCA }, "JuniperNetwo", "Juniper Networks" },
{ { 0x7C, 0xE5, 0x24 }, "Quirky", "Quirky, Inc." },
{ { 0x7C, 0xE5, 0x6B }, "ESENOptoelec", "ESEN Optoelectronics Technology Co.,Ltd." },
+ { { 0x7C, 0xE7, 0x12 }, "QuectelWirel", "Quectel Wireless Solutions Co.,Ltd." },
{ { 0x7C, 0xE8, 0x7F }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x7C, 0xE9, 0x7C }, "ItelMobile", "Itel Mobile Limited" },
{ { 0x7C, 0xE9, 0xD3 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
@@ -24057,6 +24393,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x80, 0x02, 0xDF }, "ORA", "ORA Inc." },
{ { 0x80, 0x03, 0x84 }, "RuckusWirele", "Ruckus Wireless" },
{ { 0x80, 0x04, 0x5F }, "Apple", "Apple, Inc." },
+ { { 0x80, 0x05, 0x18 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x80, 0x05, 0x3A }, "CHeKT", "CHeKT Inc." },
{ { 0x80, 0x05, 0x88 }, "RuijieNetwor", "Ruijie Networks Co.,LTD" },
{ { 0x80, 0x05, 0xDF }, "MontageTechn", "Montage Technology Group Limited" },
@@ -24098,6 +24435,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" },
@@ -24149,6 +24487,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." },
@@ -24278,6 +24617,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 +24695,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 +24744,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,13 +24789,15 @@ 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" },
{ { 0x84, 0x30, 0xE5 }, "SkyHawkeTech", "SkyHawke Technologies, LLC" },
- { { 0x84, 0x31, 0xA8 }, "FunshionOnli", "Wuhan Funshion Online Technologies Co.,Ltd" },
+ { { 0x84, 0x31, 0xA8 }, "FunshionOnli", "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 +24837,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" },
@@ -24506,6 +24851,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x84, 0x62, 0xA6 }, "EuroCB", "EuroCB (Phils), Inc." },
{ { 0x84, 0x63, 0xD6 }, "Microsoft", "Microsoft Corporation" },
{ { 0x84, 0x64, 0xDD }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x84, 0x65, 0x2B }, "Donaldson", "Donaldson Company" },
{ { 0x84, 0x65, 0x69 }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x84, 0x68, 0x3E }, "Intel", "Intel Corporate" },
{ { 0x84, 0x68, 0x78 }, "Apple", "Apple, Inc." },
@@ -24529,6 +24875,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x84, 0x76, 0x16 }, "Addatsro", "Addat s.r.o." },
{ { 0x84, 0x76, 0x37 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x84, 0x77, 0x78 }, "Cochlear", "Cochlear Limited" },
+ { { 0x84, 0x78, 0x48 }, "Ubiquiti", "Ubiquiti Inc" },
{ { 0x84, 0x78, 0x8B }, "Apple", "Apple, Inc." },
{ { 0x84, 0x78, 0xAC }, "Cisco", "Cisco Systems, Inc" },
{ { 0x84, 0x79, 0x33 }, "profichip", "profichip GmbH" },
@@ -24545,6 +24892,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,15 +24930,18 @@ 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." },
{ { 0x84, 0x9D, 0xC5 }, "CenteraPhoto", "Centera Photonics Inc." },
+ { { 0x84, 0x9E, 0x56 }, "CloudNetwork", "Cloud Network Technology Singapore Pte. Ltd." },
{ { 0x84, 0x9F, 0xB5 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x84, 0xA0, 0x6E }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 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" },
@@ -24661,7 +25012,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x84, 0xD3, 0x52 }, "TonlyTechnol", "Tonly Technology Co. Ltd" },
{ { 0x84, 0xD3, 0xD5 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x84, 0xD4, 0x12 }, "PaloAltoNetw", "Palo Alto Networks" },
- { { 0x84, 0xD4, 0x7E }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x84, 0xD4, 0x7E }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x84, 0xD4, 0xC8 }, "Widex", "Widex A/S" },
{ { 0x84, 0xD5, 0xA0 }, "Mcot", "Mcot Inc." },
{ { 0x84, 0xD6, 0x08 }, "WingtechMobi", "Wingtech Mobile Communications Co., Ltd." },
@@ -24707,6 +25058,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x84, 0xF1, 0x47 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x84, 0xF1, 0x75 }, "JiangxiXunte", "Jiangxi Xunte Intelligent Terminal Co., Ltd" },
{ { 0x84, 0xF1, 0xD0 }, "EhoomeIotPri", "Ehoome Iot Private Limited" },
+ { { 0x84, 0xF2, 0xC1 }, "zte", "zte corporation" },
{ { 0x84, 0xF3, 0xEB }, "Espressif", "Espressif Inc." },
{ { 0x84, 0xF4, 0x4C }, "Internationa", "International Integrated Systems., Inc." },
{ { 0x84, 0xF4, 0x93 }, "OMSspolsro", "OMS spol. s.r.o." },
@@ -24746,6 +25098,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 +25114,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." },
@@ -24768,7 +25122,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0x23, 0x8C }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x88, 0x23, 0xFE }, "TTTechComput", "TTTech Computertechnik AG" },
{ { 0x88, 0x25, 0x08 }, "MetaPlatform", "Meta Platforms Technologies, LLC" },
- { { 0x88, 0x25, 0x10 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x88, 0x25, 0x10 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x88, 0x25, 0x2C }, "ArcadyanTech", "Arcadyan Technology Corporation" },
{ { 0x88, 0x25, 0x93 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x88, 0x28, 0x7D }, "AltoBeam", "AltoBeam (China) Inc." },
@@ -24795,11 +25149,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0x36, 0x5F }, "LGElectronic", "LG Electronics (Mobile Communications)" },
{ { 0x88, 0x36, 0x6C }, "EFMNetworks", "EFM Networks" },
{ { 0x88, 0x36, 0xCF }, "HuaweiDevice", "Huawei Device Co., Ltd." },
- { { 0x88, 0x3A, 0x30 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x88, 0x3A, 0x30 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x88, 0x3B, 0x8B }, "CheeringConn", "Cheering Connection Co. Ltd." },
{ { 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 +25205,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 +25219,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 +25245,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" },
@@ -24903,6 +25261,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0x89, 0x64 }, "GSIElectroni", "GSI Electronics Inc." },
{ { 0x88, 0x8B, 0x5D }, "StorageAppli", "Storage Appliance Corporation" },
{ { 0x88, 0x8C, 0x19 }, "BradyAsiaPac", "Brady Corp Asia Pacific Ltd" },
+ { { 0x88, 0x8C, 0x1B }, "EMMicroelect", "EM Microelectronic" },
{ { 0x88, 0x8E, 0x68 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x88, 0x8E, 0x7F }, "Atop", "Atop Corporation" },
{ { 0x88, 0x8F, 0x10 }, "MaxInfiniteT", "Shenzhen Max Infinite Technology Co.,Ltd." },
@@ -24954,6 +25313,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 +25335,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 +25376,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." },
@@ -25048,6 +25410,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 +25420,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" },
@@ -25082,6 +25445,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x8C, 0x07, 0x8C }, "FlowData", "Flow Data Inc" },
{ { 0x8C, 0x08, 0x79 }, "TexasInstrum", "Texas Instruments" },
{ { 0x8C, 0x08, 0x8B }, "RemoteSoluti", "Remote Solution" },
+ { { 0x8C, 0x08, 0xAA }, "Apple", "Apple, Inc." },
{ { 0x8C, 0x09, 0xF4 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x8C, 0x0C, 0x87 }, "Nokia", "Nokia" },
{ { 0x8C, 0x0C, 0x90 }, "RuckusWirele", "Ruckus Wireless" },
@@ -25096,6 +25460,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x8C, 0x0F, 0xFA }, "Hutec", "Hutec co.,ltd" },
{ { 0x8C, 0x10, 0xD4 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x8C, 0x11, 0xCB }, "ABUSSecurity", "ABUS Security-Center GmbH & Co. KG" },
+ { { 0x8C, 0x12, 0xC2 }, "GLBBJapan", "GLBB Japan" },
{ { 0x8C, 0x14, 0xB4 }, "zte", "zte corporation" },
{ { 0x8C, 0x15, 0x53 }, "MemblazeTech", "Beijing Memblaze Technology Co Ltd" },
{ { 0x8C, 0x15, 0xC7 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -25226,7 +25591,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x8C, 0x77, 0x12 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x8C, 0x77, 0x16 }, "LongcheerTel", "Longcheer Telecommunication Limited" },
{ { 0x8C, 0x78, 0xD7 }, "FastTechnolo", "Shenzhen Fast Technologies Co.,Ltd" },
- { { 0x8C, 0x79, 0x09 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x8C, 0x79, 0x09 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x8C, 0x79, 0x67 }, "zte", "zte corporation" },
{ { 0x8C, 0x79, 0xF5 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x8C, 0x7A, 0x00 }, "Nokia", "Nokia" },
@@ -25253,11 +25618,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x8C, 0x84, 0x74 }, "Broadcom", "Broadcom Limited" },
{ { 0x8C, 0x85, 0x80 }, "SmartInnovat", "Smart Innovation LLC" },
{ { 0x8C, 0x85, 0x90 }, "Apple", "Apple, Inc." },
- { { 0x8C, 0x85, 0xC1 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x8C, 0x85, 0xC1 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x8C, 0x85, 0xE6 }, "Cleondris", "Cleondris GmbH" },
{ { 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" },
@@ -25319,6 +25685,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x8C, 0xC1, 0x21 }, "PanasonicAVC", "Panasonic Corporation AVC Networks Company" },
{ { 0x8C, 0xC5, 0x8C }, "ElskyTechnol", "ShenZhen Elsky Technology Co.,LTD" },
{ { 0x8C, 0xC5, 0xB4 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
+ { { 0x8C, 0xC5, 0xD0 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x8C, 0xC5, 0xE1 }, "KonkaTelecom", "ShenZhen Konka Telecommunication Technology Co.,Ltd" },
{ { 0x8C, 0xC6, 0x61 }, "Currentpower", "Current, powered by GE" },
{ { 0x8C, 0xC6, 0x81 }, "Intel", "Intel Corporate" },
@@ -25327,6 +25694,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 +25741,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 +25779,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" },
@@ -25435,6 +25805,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0x12, 0x34 }, "YOUHUATechno", "Shenzhen YOUHUA Technology Co., Ltd" },
{ { 0x90, 0x12, 0xA1 }, "We", "We Corporation Inc." },
{ { 0x90, 0x13, 0xDA }, "Athom", "Athom B.V." },
+ { { 0x90, 0x15, 0x06 }, "Espressif", "Espressif Inc." },
{ { 0x90, 0x16, 0xBA }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x90, 0x17, 0x11 }, "HagenukMarin", "Hagenuk Marinekommunikation GmbH" },
{ { 0x90, 0x17, 0x3F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -25452,8 +25823,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0x1E, 0xDD }, "GreatCompute", "Great Computer Corporation" },
{ { 0x90, 0x20, 0x3A }, "BYDPrecision", "BYD Precision Manufacture Co.,Ltd" },
{ { 0x90, 0x20, 0x83 }, "GeneralEngin", "General Engine Management Systems Ltd." },
- { { 0x90, 0x20, 0xC2 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x90, 0x20, 0xC2 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 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." },
@@ -25523,6 +25895,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0x51, 0x3F }, "ElettronicaS", "Elettronica Santerno SpA" },
{ { 0x90, 0x52, 0xBF }, "SichuanTiany", "Sichuan Tianyi Comheart Telecom Co.,LTD" },
{ { 0x90, 0x54, 0x46 }, "TesElectroni", "Tes Electronic Solutions" },
+ { { 0x90, 0x54, 0xB7 }, "EltexEnterpr", "Eltex Enterprise LTD" },
{ { 0x90, 0x55, 0xAE }, "EricssonEABR", "Ericsson, EAB/RWI/K" },
{ { 0x90, 0x55, 0xDE }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x90, 0x56, 0x07 }, "SichuanAILin", "Sichuan AI-Link Technology Co., Ltd." },
@@ -25538,6 +25911,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0x5D, 0x7C }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x90, 0x5E, 0x44 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x90, 0x5F, 0x2E }, "TCTmobile", "TCT mobile ltd" },
+ { { 0x90, 0x5F, 0x7A }, "Apple", "Apple, Inc." },
{ { 0x90, 0x5F, 0x8D }, "modas", "modas GmbH" },
{ { 0x90, 0x60, 0xF1 }, "Apple", "Apple, Inc." },
{ { 0x90, 0x61, 0x0C }, "FidaInternat", "Fida International (S) Pte Ltd" },
@@ -25636,6 +26010,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0x9D, 0x7D }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x90, 0x9D, 0xE0 }, "NewlandDesig", "Newland Design + Assoc. Inc." },
{ { 0x90, 0x9E, 0x24 }, "ekeybiometri", "ekey biometric systems gmbh" },
+ { { 0x90, 0x9F, 0x22 }, "ZyxelCommuni", "Zyxel Communications Corporation" },
{ { 0x90, 0x9F, 0x33 }, "EFMNetworks", "EFM Networks" },
{ { 0x90, 0x9F, 0x43 }, "AccutronInst", "Accutron Instruments Inc." },
{ { 0x90, 0xA0, 0xBE }, "Cannice", "Cannice" },
@@ -25669,11 +26044,13 @@ 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" },
{ { 0x90, 0xB6, 0x85 }, "WeifangGoert", "Weifang Goertek Electronics Co.,Ltd" },
{ { 0x90, 0xB6, 0x86 }, "MurataManufa", "Murata Manufacturing Co., Ltd." },
+ { { 0x90, 0xB7, 0x90 }, "Apple", "Apple, Inc." },
{ { 0x90, 0xB8, 0x32 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
{ { 0x90, 0xB8, 0xD0 }, "Joyent", "Joyent, Inc." },
{ { 0x90, 0xB8, 0xE0 }, "YanrayTechno", "Shenzhen Yanray Technology Co.,Ltd" },
@@ -25690,6 +26067,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0xC7, 0xD8 }, "zte", "zte corporation" },
{ { 0x90, 0xC9, 0x9B }, "TesorionNede", "Tesorion Nederland B.V." },
{ { 0x90, 0xCA, 0xFA }, "Google", "Google, Inc." },
+ { { 0x90, 0xCB, 0xA3 }, "TecnoMobile", "Tecno Mobile Limited" },
{ { 0x90, 0xCC, 0x24 }, "Synaptics", "Synaptics, Inc" },
{ { 0x90, 0xCC, 0x7A }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x90, 0xCC, 0xDF }, "Intel", "Intel Corporate" },
@@ -25701,6 +26079,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0xCF, 0x7D }, "QingdaoHisen", "Qingdao Hisense Communications Co.,Ltd." },
{ { 0x90, 0xD0, 0x92 }, "HUMAX", "HUMAX Co., Ltd." },
{ { 0x90, 0xD1, 0x1B }, "PalomarMedic", "Palomar Medical Technologies" },
+ { { 0x90, 0xD3, 0xCF }, "AskeyCompute", "Askey Computer Corp" },
{ { 0x90, 0xD4, 0x32 }, "zte", "zte corporation" },
{ { 0x90, 0xD4, 0x73 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x90, 0xD6, 0x89 }, "HuahaoFangzh", "Huahao Fangzhou Technology Co.,Ltd" },
@@ -25759,6 +26138,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0xF9, 0x70 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x90, 0xF9, 0xB7 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x90, 0xFB, 0x5B }, "Avaya", "Avaya Inc" },
+ { { 0x90, 0xFB, 0x5D }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0x90, 0xFB, 0xA6 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x90, 0xFD, 0x61 }, "Apple", "Apple, Inc." },
{ { 0x90, 0xFD, 0x73 }, "zte", "zte corporation" },
@@ -25785,10 +26165,13 @@ 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." },
+ { { 0x94, 0x0D, 0x4B }, "Cisco", "Cisco Systems, Inc" },
{ { 0x94, 0x0E, 0x6B }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x94, 0x0E, 0xE7 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x94, 0x10, 0x3E }, "BelkinIntern", "Belkin International Inc." },
@@ -25807,11 +26190,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 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 +26219,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." },
@@ -25862,8 +26249,10 @@ 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, 0x44 }, "TexasInstrum", "Texas Instruments" },
{ { 0x94, 0x50, 0x47 }, "Rechnerbetri", "Rechnerbetriebsgruppe" },
{ { 0x94, 0x50, 0x89 }, "SimonsVossTe", "SimonsVoss Technologies GmbH" },
{ { 0x94, 0x51, 0x03 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -25884,13 +26273,13 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0x5C, 0x9A }, "Apple", "Apple, Inc." },
{ { 0x94, 0x5F, 0x34 }, "RenesasElect", "Renesas Electronics (Penang) Sdn. Bhd." },
{ { 0x94, 0x60, 0x10 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
- { { 0x94, 0x60, 0xD5 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x94, 0x60, 0xD5 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x94, 0x61, 0x1E }, "WataElectron", "Wata Electronics Co.,Ltd." },
{ { 0x94, 0x61, 0x24 }, "Pason", "Pason Systems" },
{ { 0x94, 0x62, 0x69 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x94, 0x63, 0x72 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x94, 0x63, 0xD1 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
- { { 0x94, 0x64, 0x24 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x94, 0x64, 0x24 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x94, 0x65, 0x2D }, "OnePlusTechn", "OnePlus Technology (Shenzhen) Co., Ltd" },
{ { 0x94, 0x65, 0x9C }, "Intel", "Intel Corporate" },
{ { 0x94, 0x66, 0xE7 }, "WOMEngineeri", "WOM Engineering" },
@@ -25928,6 +26317,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 +26345,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." },
@@ -25965,6 +26356,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0xA4, 0xB5 }, "MitsubishiEl", "Mitsubishi Electric Corporation" },
{ { 0x94, 0xA4, 0xF9 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x94, 0xA6, 0x7E }, "Netgear", "Netgear" },
+ { { 0x94, 0xA6, 0xD8 }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x94, 0xA7, 0xB7 }, "zte", "zte corporation" },
{ { 0x94, 0xA7, 0xBC }, "BodyMedia", "BodyMedia, Inc." },
{ { 0x94, 0xA9, 0xA8 }, "TexasInstrum", "Texas Instruments" },
@@ -25984,8 +26376,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0xB2, 0x71 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x94, 0xB2, 0xCC }, "Pioneer", "Pioneer Corporation" },
{ { 0x94, 0xB3, 0x4F }, "RuckusWirele", "Ruckus Wireless" },
- { { 0x94, 0xB4, 0x0F }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x94, 0xB4, 0x0F }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x94, 0xB5, 0x55 }, "Espressif", "Espressif Inc." },
+ { { 0x94, 0xB6, 0x09 }, "Intel", "Intel Corporate" },
{ { 0x94, 0xB8, 0x19 }, "Nokia", "Nokia" },
{ { 0x94, 0xB8, 0x6D }, "Intel", "Intel Corporate" },
{ { 0x94, 0xB8, 0xC5 }, "RuggedCom", "RuggedCom Inc." },
@@ -25995,9 +26388,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" },
@@ -26017,6 +26411,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0xC9, 0x60 }, "ZhongshanB&T", "Zhongshan B&T technology.co.,ltd" },
{ { 0x94, 0xC9, 0x62 }, "Teseq", "Teseq AG" },
{ { 0x94, 0xCA, 0x0F }, "HoneywellAna", "Honeywell Analytics" },
+ { { 0x94, 0xCA, 0x9A }, "PaulVahle", "Paul Vahle GmbH & Co. KG" },
{ { 0x94, 0xCB, 0xCD }, "zte", "zte corporation" },
{ { 0x94, 0xCC, 0xB9 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x94, 0xCD, 0xAC }, "Creowave", "Creowave Oy" },
@@ -26067,6 +26462,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" },
@@ -26122,7 +26518,9 @@ 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, 0x08, 0x02 }, "Orbis", "Orbis Bv" },
{ { 0x98, 0x09, 0xCF }, "OnePlusTechn", "OnePlus Technology (Shenzhen) Co., Ltd" },
{ { 0x98, 0x0C, 0x33 }, "SiliconLabor", "Silicon Laboratories" },
{ { 0x98, 0x0C, 0x82 }, "SamsungElect", "Samsung Electro Mechanics Co., Ltd." },
@@ -26139,6 +26537,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0x12, 0x23 }, "TarmocNetwor", "Tarmoc Network LTD" },
{ { 0x98, 0x13, 0x33 }, "zte", "zte corporation" },
{ { 0x98, 0x14, 0xD2 }, "Avonic", "Avonic" },
+ { { 0x98, 0x16, 0xCD }, "leapio", "leapio" },
{ { 0x98, 0x16, 0xEC }, "ICIntracom", "IC Intracom" },
{ { 0x98, 0x17, 0xF1 }, "zte", "zte corporation" },
{ { 0x98, 0x18, 0x88 }, "CiscoMeraki", "Cisco Meraki" },
@@ -26146,6 +26545,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 +26563,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,20 +26574,21 @@ 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." },
{ { 0x98, 0x3B, 0x67 }, "DWnetTechnol", "DWnet Technologies(Suzhou) Corporation" },
{ { 0x98, 0x3B, 0x8F }, "Intel", "Intel Corporate" },
{ { 0x98, 0x3F, 0x60 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
- { { 0x98, 0x3F, 0x66 }, "FunshionOnli", "Wuhan Funshion Online Technologies Co.,Ltd" },
+ { { 0x98, 0x3F, 0x66 }, "FunshionOnli", "Funshion Online Technologies Co.,Ltd" },
{ { 0x98, 0x3F, 0x9F }, "ChinaSSJNetw", "China SSJ (Suzhou) Network Technology Inc." },
{ { 0x98, 0x40, 0xBB }, "Dell", "Dell Inc." },
{ { 0x98, 0x41, 0x5C }, "Nintendo", "Nintendo Co.,Ltd" },
@@ -26226,6 +26628,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 +26636,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." },
@@ -26272,6 +26676,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0x86, 0x8B }, "JuniperNetwo", "Juniper Networks" },
{ { 0x98, 0x86, 0xB1 }, "Flyaudio", "Flyaudio corporation (China)" },
{ { 0x98, 0x87, 0x44 }, "WuxiHongdaSc", "Wuxi Hongda Science and Technology Co.,LTD" },
+ { { 0x98, 0x87, 0x4C }, "ServercomPri", "Servercom (India) Private Limited" },
{ { 0x98, 0x87, 0x6C }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x98, 0x89, 0x24 }, "TexasInstrum", "Texas Instruments" },
{ { 0x98, 0x89, 0xED }, "AnademInform", "Anadem Information Inc." },
@@ -26286,7 +26691,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0x8E, 0x79 }, "Qudelix", "Qudelix, Inc." },
{ { 0x98, 0x8E, 0xD4 }, "ItelMobile", "Itel Mobile Limited" },
{ { 0x98, 0x8E, 0xDD }, "TEConnectivi", "TE Connectivity Limerick" },
- { { 0x98, 0x8F, 0x00 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x98, 0x8F, 0x00 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x98, 0x90, 0x80 }, "LinkpowerNet", "Linkpower Network System Inc Ltd." },
{ { 0x98, 0x90, 0x96 }, "Dell", "Dell Inc." },
{ { 0x98, 0x93, 0xCC }, "LgElectronic", "Lg Electronics Inc" },
@@ -26297,6 +26702,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 +26712,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." },
@@ -26321,6 +26728,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0xB3, 0x79 }, "Apple", "Apple, Inc." },
{ { 0x98, 0xB3, 0xEF }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x98, 0xB6, 0xE9 }, "Nintendo", "Nintendo Co.,Ltd" },
+ { { 0x98, 0xB7, 0x1E }, "Infinixmobil", "Infinix mobility limited" },
{ { 0x98, 0xB7, 0x85 }, "10GtekTransc", "Shenzhen 10Gtek Transceivers Co., Limited" },
{ { 0x98, 0xB8, 0xBA }, "LGElectronic", "LG Electronics (Mobile Communications)" },
{ { 0x98, 0xB8, 0xBC }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -26346,6 +26754,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." },
@@ -26402,6 +26811,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0xF2, 0x17 }, "CastlenetTec", "Castlenet Technology Inc." },
{ { 0x98, 0xF2, 0xB3 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 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,17 +26852,21 @@ 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" },
{ { 0x9C, 0x0D, 0xAC }, "TymphanyHK", "Tymphany HK Limited" },
{ { 0x9C, 0x0E, 0x4A }, "VastkingElec", "Shenzhen Vastking Electronic Co.,Ltd." },
+ { { 0x9C, 0x0E, 0x51 }, "SchneiderEle", "Schneider Electric" },
+ { { 0x9C, 0x12, 0x21 }, "SichuanAILin", "Sichuan AI-Link Technology Co., Ltd." },
{ { 0x9C, 0x13, 0xAB }, "ChansonWater", "Chanson Water Co., Ltd." },
{ { 0x9C, 0x14, 0x63 }, "ZhejiangDahu", "Zhejiang Dahua Technology Co., Ltd." },
{ { 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, 0x1C, 0x12 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x9C, 0x1A, 0x25 }, "Apple", "Apple, Inc." },
+ { { 0x9C, 0x1C, 0x12 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x9C, 0x1C, 0x37 }, "AltoBeam", "AltoBeam (China) Inc." },
{ { 0x9C, 0x1C, 0x6D }, "HefeiDatangS", "Hefei Datang Storage Technology Co.,Ltd" },
{ { 0x9C, 0x1D, 0x36 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -26480,6 +26894,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" },
@@ -26498,7 +26913,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0x35, 0x83 }, "NiproDiagnos", "Nipro Diagnostics, Inc" },
{ { 0x9C, 0x35, 0xEB }, "Apple", "Apple, Inc." },
{ { 0x9C, 0x36, 0xF8 }, "HyundaiKefic", "Hyundai Kefico" },
- { { 0x9C, 0x37, 0x08 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x9C, 0x37, 0x08 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x9C, 0x37, 0xCB }, "SonyInteract", "Sony Interactive Entertainment Inc." },
{ { 0x9C, 0x37, 0xF4 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x9C, 0x38, 0x18 }, "Cisco", "Cisco Systems, Inc" },
@@ -26523,6 +26938,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 +26960,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 +26973,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 +26987,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." },
@@ -26644,6 +27064,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" },
@@ -26659,6 +27080,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0xA5, 0xC0 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x9C, 0xA6, 0x15 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x9C, 0xA6, 0x9D }, "WhaleyTechno", "Whaley Technology Co.Ltd" },
+ { { 0x9C, 0xA6, 0xD8 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x9C, 0xA9, 0xE4 }, "zte", "zte corporation" },
{ { 0x9C, 0xAA, 0x1B }, "Microsoft", "Microsoft Corporation" },
{ { 0x9C, 0xAC, 0x6D }, "UniversalEle", "Universal Electronics, Inc." },
@@ -26702,6 +27124,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0xCB, 0xF7 }, "CloudStarTec", "Cloud Star Technology Co., Ltd." },
{ { 0x9C, 0xCC, 0x83 }, "JuniperNetwo", "Juniper Networks" },
{ { 0x9C, 0xCD, 0x82 }, "ChengUeiPrec", "Cheng Uei Precision Industry Co.,Ltd" },
+ { { 0x9C, 0xCE, 0x88 }, "RuijieNetwor", "Ruijie Networks Co.,LTD" },
{ { 0x9C, 0xD1, 0xD0 }, "GuangzhouRon", "Guangzhou Ronsuo Electronic Technology Co.,Ltd" },
{ { 0x9C, 0xD2, 0x1E }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x9C, 0xD2, 0x4B }, "zte", "zte corporation" },
@@ -26709,15 +27132,17 @@ 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" },
{ { 0x9C, 0xD9, 0x17 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0x9C, 0xD9, 0xCB }, "LesiraManufa", "Lesira Manufacturing Pty Ltd" },
{ { 0x9C, 0xDA, 0x3E }, "Intel", "Intel Corporate" },
+ { { 0x9C, 0xDA, 0xA8 }, "Apple", "Apple, Inc." },
{ { 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, 0xDB, 0xCB }, "FunshionOnli", "Funshion Online Technologies Co.,Ltd" },
{ { 0x9C, 0xDC, 0x71 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x9C, 0xDD, 0x1F }, "IntelligentS", "Intelligent Steward Co.,Ltd" },
{ { 0x9C, 0xDE, 0x4D }, "MLvision", "ML vision Co.,LTD" },
@@ -26759,6 +27184,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,13 +27234,14 @@ 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." },
{ { 0xA0, 0x23, 0x1B }, "TeleCompR&D", "TeleComp R&D Corp." },
{ { 0xA0, 0x23, 0x9F }, "Cisco", "Cisco Systems, Inc" },
{ { 0xA0, 0x24, 0xF9 }, "InnovaTestTe", "Chengdu InnovaTest Technology Co., Ltd" },
- { { 0xA0, 0x25, 0xD7 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xA0, 0x25, 0xD7 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xA0, 0x27, 0xB6 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xA0, 0x28, 0xED }, "HMDGlobal", "HMD Global Oy" },
{ { 0xA0, 0x29, 0x19 }, "Dell", "Dell Inc." },
@@ -26862,8 +27289,10 @@ 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, 0x9B }, "PROCITEC", "PROCITEC GmbH" },
{ { 0xA0, 0x47, 0xD7 }, "BestITWorld", "Best IT World (India) Pvt Ltd" },
{ { 0xA0, 0x48, 0x1C }, "HewlettPacka", "Hewlett Packard" },
{ { 0xA0, 0x4A, 0x5E }, "Microsoft", "Microsoft Corporation" },
@@ -26874,6 +27303,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA0, 0x4E, 0x04 }, "Nokia", "Nokia Corporation" },
{ { 0xA0, 0x4E, 0xA7 }, "Apple", "Apple, Inc." },
{ { 0xA0, 0x4E, 0xCF }, "Apple", "Apple, Inc." },
+ { { 0xA0, 0x4F, 0x52 }, "Intel", "Intel Corporate" },
{ { 0xA0, 0x4F, 0x85 }, "LGElectronic", "LG Electronics (Mobile Communications)" },
{ { 0xA0, 0x4F, 0xD4 }, "ADBBroadband", "ADB Broadband Italia" },
{ { 0xA0, 0x51, 0x0B }, "Intel", "Intel Corporate" },
@@ -26904,6 +27334,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA0, 0x66, 0x36 }, "IntracomTele", "Intracom SA Telecom Solutions" },
{ { 0xA0, 0x67, 0x20 }, "ChinaDragonT", "China Dragon Technology Limited" },
{ { 0xA0, 0x67, 0xBE }, "Sicon", "Sicon srl" },
+ { { 0xA0, 0x67, 0xD6 }, "Nokia", "Nokia" },
{ { 0xA0, 0x68, 0x1C }, "GDMideaAirCo", "GD Midea Air-Conditioning Equipment Co.,Ltd." },
{ { 0xA0, 0x68, 0x7E }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xA0, 0x69, 0x74 }, "HonorDevice", "Honor Device Co., Ltd." },
@@ -26930,7 +27361,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" },
@@ -26981,7 +27414,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA0, 0x9E, 0x1A }, "PolarElectro", "Polar Electro Oy" },
{ { 0xA0, 0x9F, 0x10 }, "BilianElectr", "Shenzhen Bilian Electronic Co.,Ltd" },
{ { 0xA0, 0x9F, 0x7A }, "DLinkMiddleE", "D-Link Middle East FZCO" },
- { { 0xA0, 0xA0, 0x01 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xA0, 0xA0, 0x01 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xA0, 0xA0, 0xDC }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xA0, 0xA1, 0x30 }, "DLITaiwanBra", "DLI Taiwan Branch office" },
{ { 0xA0, 0xA2, 0x3C }, "Gpms", "Gpms" },
@@ -26999,6 +27432,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA0, 0xAB, 0x1B }, "DLinkInterna", "D-Link International" },
{ { 0xA0, 0xAB, 0x51 }, "WeifangGoert", "Weifang Goertek Electronics Co.,Ltd" },
{ { 0xA0, 0xAC, 0x69 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0xA0, 0xAD, 0x62 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xA0, 0xAD, 0xA1 }, "JMRElectroni", "JMR Electronics, Inc" },
{ { 0xA0, 0xAF, 0x12 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xA0, 0xAF, 0xBD }, "Intel", "Intel Corporate" },
@@ -27100,6 +27534,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." },
@@ -27127,7 +27562,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA4, 0x0C, 0xC3 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xA4, 0x0D, 0xBC }, "XiamenIntret", "Xiamen Intretech Inc." },
{ { 0xA4, 0x0E, 0x2B }, "Facebook", "Facebook Inc" },
- { { 0xA4, 0x0E, 0x75 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xA4, 0x0E, 0x75 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xA4, 0x0F, 0x98 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0xA4, 0x10, 0xB6 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xA4, 0x11, 0x15 }, "RobertBoschE", "Robert Bosch Engineering and Business Solutions pvt. Ltd." },
@@ -27163,6 +27598,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 +27635,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 +27668,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 +27764,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 +27895,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." },
@@ -27498,6 +27938,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0x24, 0xEB }, "ZAONPOIntrot", "ZAO NPO Introtest" },
{ { 0xA8, 0x25, 0xEB }, "CambridgeInd", "Cambridge Industries(Group) Co.,Ltd." },
{ { 0xA8, 0x26, 0xD9 }, "HTC", "HTC Corporation" },
+ { { 0xA8, 0x27, 0xC8 }, "EdgecoreAmer", "Edgecore Americas Networking Corporation" },
{ { 0xA8, 0x29, 0x4C }, "PrecisionOpt", "Precision Optical Transceivers, Inc." },
{ { 0xA8, 0x2A, 0xD6 }, "Arthrex", "Arthrex Inc." },
{ { 0xA8, 0x2B, 0xB5 }, "EdgecoreNetw", "Edgecore Networks Corporation" },
@@ -27508,6 +27949,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." },
@@ -27550,7 +27992,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0x50, 0x81 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xA8, 0x51, 0x5B }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xA8, 0x51, 0xAB }, "Apple", "Apple, Inc." },
- { { 0xA8, 0x52, 0xD4 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xA8, 0x52, 0xD4 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xA8, 0x53, 0x7D }, "Mist", "Mist Systems, Inc." },
{ { 0xA8, 0x54, 0xA2 }, "HeimgardTech", "Heimgard Technologies AS" },
{ { 0xA8, 0x54, 0xB2 }, "WistronNeweb", "Wistron Neweb Corporation" },
@@ -27559,6 +28001,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" },
@@ -27566,7 +28009,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0x5B, 0xB0 }, "DehooTechnol", "Shenzhen Dehoo Technology Co.,Ltd" },
{ { 0xA8, 0x5B, 0xB7 }, "Apple", "Apple, Inc." },
{ { 0xA8, 0x5B, 0xF3 }, "Audivo", "Audivo GmbH" },
- { { 0xA8, 0x5B, 0xF7 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xA8, 0x5B, 0xF7 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xA8, 0x5C, 0x03 }, "JiangSuFulia", "Jiang Su Fulian Communication Technology Co., Ltd" },
{ { 0xA8, 0x5C, 0x2C }, "Apple", "Apple, Inc." },
{ { 0xA8, 0x5E, 0x45 }, "ASUSTekCOMPU", "ASUSTek COMPUTER INC." },
@@ -27577,6 +28020,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 +28039,8 @@ 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, 0x6E, 0x84 }, "TpLinkPte", "Tp-Link Corporation Pte. 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 +28092,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." },
@@ -27675,12 +28122,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0xA6, 0x48 }, "QingdaoHisen", "Qingdao Hisense Communications Co.,Ltd." },
{ { 0xA8, 0xA6, 0x68 }, "zte", "zte corporation" },
{ { 0xA8, 0xA7, 0x95 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
+ { { 0xA8, 0xA9, 0x13 }, "GNHearing", "GN Hearing A/S" },
{ { 0xA8, 0xAA, 0x7C }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xA8, 0xAB, 0xB5 }, "Apple", "Apple, Inc." },
{ { 0xA8, 0xAD, 0x3D }, "AlcatelLucen", "Alcatel-Lucent Shanghai Bell Co., Ltd" },
{ { 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" },
@@ -27691,6 +28140,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0xB8, 0x6E }, "LGElectronic", "LG Electronics (Mobile Communications)" },
{ { 0xA8, 0xB8, 0xE0 }, "ChangwangTec", "Changwang Technology inc." },
{ { 0xA8, 0xB9, 0xB3 }, "Essys", "Essys" },
+ { { 0xA8, 0xBA, 0x25 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xA8, 0xBA, 0x69 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xA8, 0xBB, 0x50 }, "WiZIoT", "WiZ IoT Company Limited" },
{ { 0xA8, 0xBB, 0x56 }, "Apple", "Apple, Inc." },
@@ -27704,6 +28154,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 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 +28207,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 +28251,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 +28263,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 +28279,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 +28315,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" },
@@ -27913,6 +28369,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xAC, 0x5A, 0xEE }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
{ { 0xAC, 0x5A, 0xF0 }, "LGElectronic", "LG Electronics" },
{ { 0xAC, 0x5A, 0xFC }, "Intel", "Intel Corporate" },
+ { { 0xAC, 0x5C, 0x2C }, "Apple", "Apple, Inc." },
{ { 0xAC, 0x5D, 0x10 }, "PaceAmericas", "Pace Americas" },
{ { 0xAC, 0x5D, 0x5C }, "FnLinkTechno", "Fn-Link Technology Limited" },
{ { 0xAC, 0x5E, 0x14 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -27988,6 +28445,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" },
@@ -27998,6 +28456,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xAC, 0x8C, 0x46 }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0xAC, 0x8D, 0x14 }, "Smartrove", "Smartrove Inc" },
{ { 0xAC, 0x8D, 0x34 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0xAC, 0x8E, 0xBD }, "Microsoft", "Microsoft Corporation" },
{ { 0xAC, 0x8F, 0xA9 }, "NokiaSolutio", "Nokia Solutions and Networks GmbH & Co. KG" },
{ { 0xAC, 0x8F, 0xF8 }, "Nokia", "Nokia" },
{ { 0xAC, 0x90, 0x73 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -28024,7 +28483,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xAC, 0xA0, 0x9D }, "JuniperNetwo", "Juniper Networks" },
{ { 0xAC, 0xA2, 0x13 }, "Bilianelectr", "Shenzhen Bilian electronic CO.,LTD" },
{ { 0xAC, 0xA2, 0x2C }, "BaycityTechn", "Baycity Technologies Ltd" },
- { { 0xAC, 0xA3, 0x1E }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xAC, 0xA3, 0x1E }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xAC, 0xA3, 0x2F }, "SolidigmTech", "Solidigm Technology" },
{ { 0xAC, 0xA4, 0x30 }, "PeerlessAV", "Peerless AV" },
{ { 0xAC, 0xA4, 0x6E }, "GongjinElect", "Shenzhen Gongjin Electronics Co.,Lt" },
@@ -28127,6 +28586,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 +28600,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" },
@@ -28148,6 +28609,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xAC, 0xF9, 0x70 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xAC, 0xF9, 0x7E }, "Elesys", "Elesys Inc." },
{ { 0xAC, 0xFA, 0xA5 }, "digitron", "digitron" },
+ { { 0xAC, 0xFA, 0xE4 }, "Nintendo", "Nintendo Co.,Ltd" },
{ { 0xAC, 0xFC, 0x82 }, "SundrayTechn", "Shenzhen Sundray Technologies Company Limited" },
{ { 0xAC, 0xFC, 0xE3 }, "EMMicroelect", "EM Microelectronic" },
{ { 0xAC, 0xFD, 0x93 }, "WeifangGoert", "Weifang Goertek Electronics Co.,Ltd" },
@@ -28184,7 +28646,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB0, 0x1C, 0x91 }, "Elim", "Elim Co" },
{ { 0xB0, 0x1F, 0x29 }, "Helvetia", "Helvetia INC." },
{ { 0xB0, 0x1F, 0x47 }, "HeightsTelec", "Heights Telecom T ltd" },
- { { 0xB0, 0x1F, 0x8C }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xB0, 0x1F, 0x8C }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xB0, 0x21, 0x6F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xB0, 0x22, 0x7A }, "HP", "HP Inc." },
{ { 0xB0, 0x23, 0x47 }, "GiantMicroel", "Shenzhen Giant Microelectronics Company Limited" },
@@ -28209,10 +28671,12 @@ 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" },
{ { 0xB0, 0x3A, 0xCE }, "HuaweiDevice", "Huawei Device Co., Ltd." },
+ { { 0xB0, 0x3B, 0x1B }, "KontrolnextT", "Kontrolnext Technology (Beijing) Ltd." },
{ { 0xB0, 0x3C, 0xDC }, "Intel", "Intel Corporate" },
{ { 0xB0, 0x3D, 0x96 }, "VisionValley", "Vision Valley FZ LLC" },
{ { 0xB0, 0x3D, 0xC2 }, "Waspartifici", "Wasp artificial intelligence(Shenzhen) Co.,ltd" },
@@ -28257,6 +28721,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" },
@@ -28267,6 +28732,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB0, 0x5D, 0xD4 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xB0, 0x60, 0x88 }, "Intel", "Intel Corporate" },
{ { 0xB0, 0x61, 0xC7 }, "EricssonLGEn", "Ericsson-LG Enterprise" },
+ { { 0xB0, 0x65, 0x3A }, "MurataManufa", "Murata Manufacturing Co., Ltd." },
{ { 0xB0, 0x65, 0x63 }, "RailwayCommu", "Shanghai Railway Communication Factory" },
{ { 0xB0, 0x65, 0xBD }, "Apple", "Apple, Inc." },
{ { 0xB0, 0x65, 0xF1 }, "WIOManufactu", "WIO Manufacturing HK Limited" },
@@ -28316,6 +28782,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 +28795,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 +28827,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" },
@@ -28422,6 +28891,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 +28979,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." },
@@ -28519,6 +28990,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB4, 0x1C, 0xAB }, "ICR", "ICR, inc." },
{ { 0xB4, 0x1D, 0x2B }, "YOUHUATechno", "Shenzhen YOUHUA Technology Co., Ltd" },
{ { 0xB4, 0x1D, 0xEF }, "InternetLabo", "Internet Laboratories, Inc." },
+ { { 0xB4, 0x1E, 0x52 }, "FlockSafety", "Flock Safety" },
{ { 0xB4, 0x20, 0x46 }, "eero", "eero inc." },
{ { 0xB4, 0x20, 0x5B }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0xB4, 0x21, 0x1D }, "GuangXinTech", "Beijing GuangXin Technology Co., Ltd" },
@@ -28558,6 +29030,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB4, 0x3A, 0x31 }, "SiliconLabor", "Silicon Laboratories" },
{ { 0xB4, 0x3A, 0xE2 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xB4, 0x3D, 0x08 }, "GXInternatio", "GX International BV" },
+ { { 0xB4, 0x3D, 0x6B }, "NXPSemicondu", "NXP Semiconductor (Tianjin) LTD." },
{ { 0xB4, 0x3D, 0xB2 }, "DegreaneHori", "Degreane Horizon" },
{ { 0xB4, 0x3E, 0x3B }, "Viableware", "Viableware, Inc" },
{ { 0xB4, 0x40, 0xA4 }, "Apple", "Apple, Inc." },
@@ -28589,7 +29062,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB4, 0x57, 0xE6 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0xB4, 0x58, 0x61 }, "CRemote", "CRemote, LLC" },
{ { 0xB4, 0x5C, 0xA4 }, "ThingtalkWir", "Thing-talk Wireless Communication Technologies Corporation Limited" },
- { { 0xB4, 0x5D, 0x50 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xB4, 0x5D, 0x50 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xB4, 0x5F, 0x84 }, "zte", "zte corporation" },
{ { 0xB4, 0x60, 0x77 }, "SichuanChang", "Sichuan Changhong Electric Ltd." },
{ { 0xB4, 0x60, 0x8C }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
@@ -28647,6 +29120,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" },
@@ -28722,6 +29196,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB4, 0xC4, 0x4E }, "VXLeTech", "VXL eTech Pvt Ltd" },
{ { 0xB4, 0xC4, 0x76 }, "MaritimeComm", "Wuhan Maritime Communication Research Institute" },
{ { 0xB4, 0xC4, 0xFC }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
+ { { 0xB4, 0xC5, 0x56 }, "KenmyondIndu", "Shanghai Kenmyond Industrial Network Equipment Co., Ltd" },
{ { 0xB4, 0xC6, 0x2E }, "MolexCMS", "Molex CMS" },
{ { 0xB4, 0xC6, 0xF8 }, "AxilspotComm", "Axilspot Communication" },
{ { 0xB4, 0xC7, 0x99 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
@@ -28863,15 +29338,17 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB8, 0x32, 0x41 }, "TianyuInform", "Wuhan Tianyu Information Industry Co., Ltd." },
{ { 0xB8, 0x36, 0xD8 }, "Videoswitch", "Videoswitch" },
{ { 0xB8, 0x37, 0x4A }, "Apple", "Apple, Inc." },
+ { { 0xB8, 0x37, 0x4B }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xB8, 0x37, 0x65 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
- { { 0xB8, 0x37, 0xB2 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xB8, 0x37, 0xB2 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xB8, 0x38, 0x61 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xB8, 0x38, 0xCA }, "KyokkoTsushi", "Kyokko Tsushin System CO.,LTD" },
{ { 0xB8, 0x38, 0xEF }, "ADVAOpticalN", "ADVA Optical Networking Ltd." },
{ { 0xB8, 0x3A, 0x08 }, "TendaTechnol", "Tenda Technology Co.,Ltd.Dongguan branch" },
- { { 0xB8, 0x3A, 0x5A }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xB8, 0x3A, 0x5A }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 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 +29386,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" },
@@ -28991,6 +29469,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" },
@@ -29051,6 +29530,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB8, 0xBE, 0xBF }, "Cisco", "Cisco Systems, Inc" },
{ { 0xB8, 0xBE, 0xF4 }, "devolo", "devolo AG" },
{ { 0xB8, 0xBF, 0x83 }, "Intel", "Intel Corporate" },
+ { { 0xB8, 0xC0, 0x07 }, "tickIoT", "tickIoT Inc." },
{ { 0xB8, 0xC0, 0x65 }, "UniversalEle", "Universal Electronics, Inc." },
{ { 0xB8, 0xC1, 0x11 }, "Apple", "Apple, Inc." },
{ { 0xB8, 0xC1, 0xA2 }, "DragonPathTe", "Dragon Path Technologies Co., Limited" },
@@ -29070,16 +29550,17 @@ 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." },
{ { 0xB8, 0xD4, 0xBC }, "zte", "zte corporation" },
- { { 0xB8, 0xD4, 0xE7 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xB8, 0xD4, 0xE7 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xB8, 0xD5, 0x0B }, "SunitecEnter", "Sunitec Enterprise Co.,Ltd" },
{ { 0xB8, 0xD5, 0x26 }, "ZyxelCommuni", "Zyxel Communications Corporation" },
{ { 0xB8, 0xD5, 0x6B }, "Mirka", "Mirka Ltd." },
@@ -29105,6 +29586,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB8, 0xE6, 0x25 }, "2Wire", "2Wire Inc" },
{ { 0xB8, 0xE7, 0x79 }, "9Solutions", "9Solutions Oy" },
{ { 0xB8, 0xE8, 0x56 }, "Apple", "Apple, Inc." },
+ { { 0xB8, 0xE9, 0x24 }, "MellanoxTech", "Mellanox Technologies, Inc." },
{ { 0xB8, 0xE9, 0x37 }, "Sonos", "Sonos, Inc." },
{ { 0xB8, 0xEA, 0x98 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0xB8, 0xEA, 0xAA }, "ICGNETWORKS", "ICG NETWORKS CO.,ltd" },
@@ -29127,6 +29609,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 +29643,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" },
@@ -29209,6 +29693,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xBC, 0x28, 0x2C }, "eSmart", "e-Smart Systems Pvt. Ltd" },
{ { 0xBC, 0x28, 0x46 }, "NextBITCompu", "NextBIT Computing Pvt. Ltd." },
{ { 0xBC, 0x28, 0xD6 }, "RowleyAssoci", "Rowley Associates Limited" },
+ { { 0xBC, 0x29, 0x78 }, "PramaHikvisi", "Prama Hikvision India Private Limited" },
{ { 0xBC, 0x2B, 0x6B }, "HaierICDesig", "Beijing Haier IC Design Co.,Ltd" },
{ { 0xBC, 0x2B, 0xD7 }, "RevogiInnova", "Revogi Innovation Co., Ltd." },
{ { 0xBC, 0x2C, 0x55 }, "BearFlagDesi", "Bear Flag Design, Inc." },
@@ -29230,6 +29715,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xBC, 0x35, 0xE5 }, "Hydro", "Hydro Systems Company" },
{ { 0xBC, 0x37, 0xD3 }, "Apple", "Apple, Inc." },
{ { 0xBC, 0x38, 0x65 }, "Jwcnetworks", "Jwcnetworks" },
+ { { 0xBC, 0x38, 0x98 }, "Intel", "Intel Corporate" },
{ { 0xBC, 0x38, 0xD2 }, "Pandachip", "Pandachip Limited" },
{ { 0xBC, 0x39, 0xA6 }, "CSUNSystemTe", "CSUN System Technology Co.,LTD" },
{ { 0xBC, 0x39, 0xD9 }, "ZTec", "Z-Tec" },
@@ -29239,10 +29725,11 @@ 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." },
+ { { 0xBC, 0x41, 0xA0 }, "zte", "zte corporation" },
{ { 0xBC, 0x42, 0x8C }, "Alpsalpine", "Alpsalpine Co,.Ltd" },
{ { 0xBC, 0x43, 0x77 }, "HangZhouHuit", "Hang Zhou Huite Technology Co.,ltd." },
{ { 0xBC, 0x44, 0x34 }, "TINNOMobileT", "Shenzhen TINNO Mobile Technology Corp." },
@@ -29251,6 +29738,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xBC, 0x45, 0x2E }, "KnowledgeDev", "Knowledge Development for POF S.L." },
{ { 0xBC, 0x45, 0x5B }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xBC, 0x45, 0x8C }, "TopwiseCommu", "Shenzhen Topwise Communication Co.,Ltd" },
+ { { 0xBC, 0x46, 0x32 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0xBC, 0x46, 0x99 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0xBC, 0x47, 0x60 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xBC, 0x49, 0xB2 }, "AlongCommuni", "Shenzhen Along Communication Tech Co., Ltd" },
@@ -29354,6 +29842,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xBC, 0x92, 0x6B }, "Apple", "Apple, Inc." },
{ { 0xBC, 0x93, 0x07 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xBC, 0x93, 0x25 }, "NingboJoyson", "Ningbo Joyson Preh Car Connect Co.,Ltd." },
+ { { 0xBC, 0x94, 0x24 }, "TCTmobile", "TCT mobile ltd" },
{ { 0xBC, 0x96, 0x80 }, "GongjinElect", "Shenzhen Gongjin Electronics Co.,Lt" },
{ { 0xBC, 0x96, 0xE5 }, "SercommPhili", "Sercomm Philippines Inc" },
{ { 0xBC, 0x97, 0x89 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -29374,9 +29863,10 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xBC, 0x9D, 0xA5 }, "DASCOMEurope", "DASCOM Europe GmbH" },
{ { 0xBC, 0x9E, 0x2C }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
{ { 0xBC, 0x9E, 0xBB }, "Nintendo", "Nintendo Co.,Ltd" },
- { { 0xBC, 0x9F, 0xE4 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xBC, 0x9F, 0xE4 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 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 +29897,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" },
@@ -29439,7 +29930,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xBC, 0xD5, 0xB6 }, "d2dtechnolog", "d2d technologies" },
{ { 0xBC, 0xD7, 0x13 }, "OwlLabs", "Owl Labs" },
{ { 0xBC, 0xD7, 0x67 }, "BAEAplliedIn", "BAE Systems Apllied Intelligence" },
- { { 0xBC, 0xD7, 0xA5 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xBC, 0xD7, 0xA5 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xBC, 0xD7, 0xCE }, "ChinaMobileI", "China Mobile (Hangzhou) Information Technology Co., Ltd." },
{ { 0xBC, 0xD7, 0xD4 }, "Roku", "Roku, Inc" },
{ { 0xBC, 0xD9, 0x40 }, "ASR", "ASR Co,.Ltd." },
@@ -29469,6 +29960,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,12 +30087,14 @@ 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" },
{ { 0xC0, 0x58, 0xA7 }, "Pico", "Pico Systems Co., Ltd." },
{ { 0xC0, 0x5B, 0x44 }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0xC0, 0x5D, 0x39 }, "JiangsuHuito", "Jiangsu Huitong Group Co.,Ltd." },
+ { { 0xC0, 0x5D, 0x89 }, "Espressif", "Espressif Inc." },
{ { 0xC0, 0x5E, 0x6F }, "VStonkausfir", "V. Stonkaus firma \"Kodinis Raktas\"" },
{ { 0xC0, 0x5E, 0x79 }, "HuaxunArkTec", "Shenzhen Huaxun Ark Technologies Co.,Ltd" },
{ { 0xC0, 0x5F, 0x87 }, "LegrandINTEL", "Legrand INTELLIGENT ELECTRICAL(HUIZHOU)CO.,LTD." },
@@ -29617,10 +30111,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC0, 0x68, 0xCC }, "SkyworthDigi", "Shenzhen Skyworth Digital Technology CO., Ltd" },
{ { 0xC0, 0x69, 0x11 }, "AristaNetwor", "Arista Networks" },
{ { 0xC0, 0x6B, 0x55 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
+ { { 0xC0, 0x6C, 0x0C }, "Apple", "Apple, Inc." },
{ { 0xC0, 0x6C, 0x0F }, "DobbsStanfor", "Dobbs Stanford" },
{ { 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" },
@@ -29628,6 +30124,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC0, 0x78, 0x31 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xC0, 0x78, 0x78 }, "FlextronicsM", "Flextronics Manufacturing(Zhuhai)Co.,Ltd." },
{ { 0xC0, 0x79, 0x82 }, "TCLKingElect", "TCL King Electrical Appliances(Huizhou)Co.,Ltd" },
+ { { 0xC0, 0x7A, 0xD6 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xC0, 0x7B, 0xBC }, "Cisco", "Cisco Systems, Inc" },
{ { 0xC0, 0x7C, 0x90 }, "YOUHUATechno", "Shenzhen YOUHUA Technology Co., Ltd" },
{ { 0xC0, 0x7C, 0xD1 }, "Pegatron", "Pegatron Corporation" },
@@ -29647,6 +30144,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC0, 0x88, 0x6D }, "Securosys", "Securosys SA" },
{ { 0xC0, 0x89, 0x97 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xC0, 0x89, 0xAB }, "ARRISGroup", "ARRIS Group, Inc." },
+ { { 0xC0, 0x8A, 0x60 }, "AltoBeam", "AltoBeam Inc." },
{ { 0xC0, 0x8A, 0xCD }, "GuangzhouShi", "Guangzhou Shiyuan Electronic Technology Company Limited" },
{ { 0xC0, 0x8A, 0xDE }, "RuckusWirele", "Ruckus Wireless" },
{ { 0xC0, 0x8B, 0x05 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -29672,6 +30170,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 +30197,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" },
@@ -29721,6 +30221,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC0, 0xBD, 0xD1 }, "SamsungElect", "Samsung Electro-Mechanics(Thailand)" },
{ { 0xC0, 0xBF, 0xA7 }, "JuniperNetwo", "Juniper Networks" },
{ { 0xC0, 0xBF, 0xAC }, "HuaweiDevice", "Huawei Device Co., Ltd." },
+ { { 0xC0, 0xBF, 0xBE }, "AzureWaveTec", "AzureWave Technology Inc." },
{ { 0xC0, 0xBF, 0xC0 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xC0, 0xC1, 0x70 }, "SuperElectro", "Shenzhen SuperElectron Technology Co.,Ltd." },
{ { 0xC0, 0xC1, 0xC0 }, "CiscoLinksys", "Cisco-Linksys, LLC" },
@@ -29754,6 +30255,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC0, 0xD6, 0x82 }, "AristaNetwor", "Arista Networks" },
{ { 0xC0, 0xD7, 0xAA }, "Arcadyan", "Arcadyan Corporation" },
{ { 0xC0, 0xD8, 0x34 }, "xvtec", "xvtec ltd" },
+ { { 0xC0, 0xD9, 0x41 }, "VMAXSoftware", "Shenzhen VMAX Software Co., Ltd." },
{ { 0xC0, 0xD9, 0x62 }, "AskeyCompute", "Askey Computer Corp" },
{ { 0xC0, 0xD9, 0xF7 }, "ShanDongDomo", "ShanDong Domor Intelligent S&T CO.,Ltd" },
{ { 0xC0, 0xDA, 0x74 }, "SunyardTechn", "Hangzhou Sunyard Technology Co., Ltd." },
@@ -29815,8 +30317,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" },
@@ -29840,6 +30344,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC4, 0x17, 0x0E }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xC4, 0x17, 0xFE }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0xC4, 0x18, 0xE9 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0xC4, 0x18, 0xFC }, "Cisco", "Cisco Systems, Inc" },
{ { 0xC4, 0x19, 0x8B }, "DominionVoti", "Dominion Voting Systems Corporation" },
{ { 0xC4, 0x19, 0xD1 }, "TelinkSemico", "Telink Semiconductor (Shanghai) Co., Ltd." },
{ { 0xC4, 0x19, 0xEC }, "Qualisys", "Qualisys AB" },
@@ -29902,8 +30407,10 @@ 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, 0x47, 0x4E }, "Intel", "Intel Corporate" },
{ { 0xC4, 0x48, 0x38 }, "SatcomDirect", "Satcom Direct, Inc." },
{ { 0xC4, 0x48, 0xFA }, "TaicangT&WEl", "Taicang T&W Electronics" },
{ { 0xC4, 0x49, 0xBB }, "MitsumiElect", "Mitsumi Electric Co.,Ltd." },
@@ -29929,6 +30436,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." },
@@ -29967,6 +30475,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC4, 0x6E, 0x7B }, "RfLinkTechno", "Shenzhen Rf-Link Technology Co.,Ltd." },
{ { 0xC4, 0x70, 0x0B }, "GuangzhouChi", "Guangzhou Chip Technologies Co.,Ltd" },
{ { 0xC4, 0x70, 0xAB }, "RuijieNetwor", "Ruijie Networks Co.,LTD" },
+ { { 0xC4, 0x70, 0xBD }, "MellanoxTech", "Mellanox Technologies, Inc." },
{ { 0xC4, 0x71, 0x30 }, "FonTechnolog", "Fon Technology S.L." },
{ { 0xC4, 0x71, 0x54 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0xC4, 0x71, 0xFE }, "Cisco", "Cisco Systems, Inc" },
@@ -29977,6 +30486,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC4, 0x74, 0xF8 }, "HotPepper", "Hot Pepper, Inc." },
{ { 0xC4, 0x75, 0xAB }, "Intel", "Intel Corporate" },
{ { 0xC4, 0x75, 0xEA }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0xC4, 0x77, 0x64 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xC4, 0x77, 0xAB }, "ASUTech", "Beijing ASU Tech Co.,Ltd" },
{ { 0xC4, 0x77, 0xAF }, "AdvancedDigi", "Advanced Digital Broadcast SA" },
{ { 0xC4, 0x78, 0xA2 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -30044,6 +30554,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 +30562,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 +30576,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 +30589,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 +30598,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 +30633,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 +30784,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" },
@@ -30278,6 +30795,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC8, 0x5D, 0x38 }, "HUMAX", "HUMAX Co., Ltd." },
{ { 0xC8, 0x5E, 0xA9 }, "Intel", "Intel Corporate" },
{ { 0xC8, 0x60, 0x00 }, "ASUSTekCOMPU", "ASUSTek COMPUTER INC." },
+ { { 0xC8, 0x60, 0x8F }, "Cisco", "Cisco Systems, Inc" },
{ { 0xC8, 0x63, 0xF1 }, "SonyInteract", "Sony Interactive Entertainment Inc." },
{ { 0xC8, 0x63, 0xFC }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xC8, 0x64, 0xC7 }, "zte", "zte corporation" },
@@ -30291,9 +30809,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC8, 0x6C, 0x3D }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0xC8, 0x6C, 0x87 }, "ZyxelCommuni", "Zyxel Communications Corporation" },
{ { 0xC8, 0x6C, 0xB6 }, "Optcom", "Optcom Co., Ltd." },
+ { { 0xC8, 0x6E, 0x08 }, "Intel", "Intel Corporate" },
{ { 0xC8, 0x6F, 0x1D }, "Apple", "Apple, Inc." },
{ { 0xC8, 0x70, 0x23 }, "AlticeLabs", "Altice Labs S.A." },
{ { 0xC8, 0x70, 0xD4 }, "IBOTechnolog", "IBO Technology Co,Ltd" },
+ { { 0xC8, 0x71, 0x1F }, "SuzhouTesien", "Suzhou Tesien Technology Co., Ltd." },
{ { 0xC8, 0x71, 0x25 }, "JohnsonOutdo", "Johnson Outdoors Marine Electronics d/b/a Minnkota" },
{ { 0xC8, 0x72, 0x48 }, "Aplicom", "Aplicom Oy" },
{ { 0xC8, 0x72, 0x7E }, "Nokia", "Nokia" },
@@ -30314,6 +30834,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC8, 0x83, 0x14 }, "TempoCommuni", "Tempo Communications" },
{ { 0xC8, 0x84, 0x39 }, "SunriseTechn", "Sunrise Technologies" },
{ { 0xC8, 0x84, 0x47 }, "BeautifulEnt", "Beautiful Enterprise Co., Ltd" },
+ { { 0xC8, 0x84, 0x4E }, "FlextronicsI", "Flextronics International Kft" },
{ { 0xC8, 0x84, 0x8C }, "RuckusWirele", "Ruckus Wireless" },
{ { 0xC8, 0x84, 0xA1 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xC8, 0x84, 0xCF }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -30328,6 +30849,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" },
@@ -30425,6 +30947,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" },
@@ -30464,6 +30987,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC8, 0xEE, 0x08 }, "TangtopTechn", "Tangtop Technology Co.,Ltd" },
{ { 0xC8, 0xEE, 0x75 }, "PishionInter", "Pishion International Co. Ltd" },
{ { 0xC8, 0xEE, 0xA6 }, "SHXTechnolog", "Shenzhen SHX Technology Co., Ltd" },
+ { { 0xC8, 0xEE, 0xD7 }, "LightspeedTe", "Lightspeed Technologies Inc." },
{ { 0xC8, 0xEF, 0x2E }, "GefeiTech", "Beijing Gefei Tech. Co., Ltd" },
{ { 0xC8, 0xEF, 0xBC }, "InspurCommun", "Inspur Communication Technology Co.,Ltd." },
{ { 0xC8, 0xF0, 0x9E }, "Espressif", "Espressif Inc." },
@@ -30498,6 +31022,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." },
@@ -30509,6 +31034,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xCA, 0xC8, 0x7E }, "AllenOrgan", "Allen Organ Company" },
{ { 0xCA, 0xE5, 0x05 }, "Mobilitie", "Mobilitie" },
{ { 0xCA, 0xF2, 0x5B }, "LexarElectro", "Lexar Electronics(Shenzhen) Co.,Ltd." },
+ { { 0xCA, 0xFA, 0xE6 }, "TianjinRongh", "Tianjin Ronghui microelectronics Technology Co., Ltd." },
{ { 0xCC, 0x00, 0x80 }, "Bettini", "Bettini Srl" },
{ { 0xCC, 0x00, 0xF1 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0xCC, 0x03, 0x7B }, "TexasInstrum", "Texas Instruments" },
@@ -30553,6 +31079,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 +31171,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 +31182,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." },
@@ -30680,10 +31209,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xCC, 0x7B, 0x61 }, "Nikkiso", "Nikkiso Co., Ltd." },
{ { 0xCC, 0x7D, 0x37 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xCC, 0x7D, 0x5B }, "TelinkSemico", "Telink Semiconductor (Shanghai) Co., Ltd." },
+ { { 0xCC, 0x7E, 0x0F }, "Theben", "Theben AG" },
{ { 0xCC, 0x7E, 0xE7 }, "PanasonicAVC", "Panasonic Corporation AVC Networks Company" },
{ { 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" },
@@ -30691,10 +31222,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xCC, 0x86, 0xEC }, "SiliconLabor", "Silicon Laboratories" },
{ { 0xCC, 0x87, 0x4A }, "Nokia", "Nokia" },
{ { 0xCC, 0x88, 0x26 }, "LGInnotek", "LG Innotek" },
- { { 0xCC, 0x88, 0xC7 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xCC, 0x88, 0xC7 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 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 +31283,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." },
@@ -30784,7 +31317,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xCC, 0xCE, 0x1E }, "AVMAudiovisu", "AVM Audiovisuelles Marketing und Computersysteme GmbH" },
{ { 0xCC, 0xCE, 0x40 }, "Janteq", "Janteq Corp" },
{ { 0xCC, 0xCF, 0x83 }, "CigShanghai", "Cig Shanghai Co Ltd" },
- { { 0xCC, 0xD0, 0x83 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xCC, 0xD0, 0x83 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xCC, 0xD2, 0x81 }, "Apple", "Apple, Inc." },
{ { 0xCC, 0xD2, 0x9B }, "BopengfaElec", "Shenzhen Bopengfa Elec&Technology CO.,Ltd" },
{ { 0xCC, 0xD3, 0x42 }, "Cisco", "Cisco Systems, Inc" },
@@ -30866,19 +31399,21 @@ 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" },
{ { 0xD0, 0x13, 0x1E }, "SunrexTechno", "Sunrex Technology Corp" },
{ { 0xD0, 0x13, 0xFD }, "LGElectronic", "LG Electronics (Mobile Communications)" },
{ { 0xD0, 0x15, 0x4A }, "zte", "zte corporation" },
- { { 0xD0, 0x15, 0xA6 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xD0, 0x15, 0xA6 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xD0, 0x16, 0x7C }, "eero", "eero inc." },
{ { 0xD0, 0x16, 0xB4 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xD0, 0x17, 0x69 }, "MurataManufa", "Murata Manufacturing Co., Ltd." },
@@ -30940,7 +31475,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD0, 0x49, 0x8B }, "ZoomServer", "Zoom Server" },
{ { 0xD0, 0x4C, 0xC1 }, "SINTRONESTec", "SINTRONES Technology Corp." },
{ { 0xD0, 0x4D, 0x2C }, "Roku", "Roku, Inc." },
- { { 0xD0, 0x4D, 0xC6 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xD0, 0x4D, 0xC6 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xD0, 0x4E, 0x50 }, "MobiwireMobi", "Mobiwire Mobiles (NingBo) Co., LTD" },
{ { 0xD0, 0x4E, 0x99 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xD0, 0x4F, 0x58 }, "RuckusWirele", "Ruckus Wireless" },
@@ -30956,6 +31491,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD0, 0x55, 0x09 }, "Nintendo", "Nintendo Co.,Ltd" },
{ { 0xD0, 0x55, 0xB2 }, "IntegratedDe", "Integrated Device Technology (Malaysia) Sdn. Bhd." },
{ { 0xD0, 0x56, 0xBF }, "Amosense", "Amosense" },
+ { { 0xD0, 0x56, 0xFB }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xD0, 0x57, 0x4C }, "Cisco", "Cisco Systems, Inc" },
{ { 0xD0, 0x57, 0x7B }, "Intel", "Intel Corporate" },
{ { 0xD0, 0x57, 0x85 }, "Pantech", "Pantech Co., Ltd." },
@@ -30994,9 +31530,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD0, 0x67, 0x26 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 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." },
+ { { 0xD0, 0x6D, 0xC8 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xD0, 0x6D, 0xC9 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0xD0, 0x6E, 0xDE }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0xD0, 0x6F, 0x4A }, "TopwellInter", "Topwell International Holdings Limited" },
@@ -31008,6 +31546,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" },
@@ -31066,6 +31605,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD0, 0xA9, 0xD3 }, "EMMicroelect", "EM Microelectronic" },
{ { 0xD0, 0xAB, 0xD5 }, "Intel", "Intel Corporate" },
{ { 0xD0, 0xAD, 0x08 }, "HP", "HP Inc." },
+ { { 0xD0, 0xAE, 0x05 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0xD0, 0xAE, 0xEC }, "AlphaNetwork", "Alpha Networks Inc." },
{ { 0xD0, 0xAF, 0xB6 }, "LinktopTechn", "Linktop Technology Co., LTD" },
{ { 0xD0, 0xB0, 0xCD }, "Moen", "Moen" },
@@ -31118,10 +31658,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD0, 0xD2, 0x3C }, "Apple", "Apple, Inc." },
{ { 0xD0, 0xD2, 0x86 }, "BeckmanCoult", "Beckman Coulter K.K." },
{ { 0xD0, 0xD2, 0xB0 }, "Apple", "Apple, Inc." },
- { { 0xD0, 0xD3, 0xE0 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xD0, 0xD3, 0xE0 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 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 +31681,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 +31734,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." },
@@ -31243,6 +31786,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD4, 0x3A, 0x65 }, "IGRSEngineer", "IGRS Engineering Lab Ltd." },
{ { 0xD4, 0x3A, 0xE9 }, "DONGGUANiptI", "DONGGUAN ipt INDUSTRIAL CO., LTD" },
{ { 0xD4, 0x3B, 0x04 }, "Intel", "Intel Corporate" },
+ { { 0xD4, 0x3B, 0x8A }, "Zhidetechnol", "Shenzhen Zhide technology Co., LTD" },
{ { 0xD4, 0x3D, 0x39 }, "DialogSemico", "Dialog Semiconductor" },
{ { 0xD4, 0x3D, 0x67 }, "CarmaIndustr", "Carma Industries Inc." },
{ { 0xD4, 0x3D, 0x7E }, "MicroStarInt", "Micro-Star Int'l Co, Ltd" },
@@ -31260,12 +31804,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 +31896,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 +31936,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" },
@@ -31486,7 +32034,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD4, 0xDC, 0x09 }, "Mist", "Mist Systems, Inc." },
{ { 0xD4, 0xDC, 0xCD }, "Apple", "Apple, Inc." },
{ { 0xD4, 0xDF, 0x57 }, "AlpinionMedi", "Alpinion Medical Systems" },
- { { 0xD4, 0xE0, 0x53 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xD4, 0xE0, 0x53 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xD4, 0xE0, 0x8E }, "ValueHD", "ValueHD Corporation" },
{ { 0xD4, 0xE2, 0x2F }, "Roku", "Roku, Inc" },
{ { 0xD4, 0xE2, 0xCB }, "VantivaUSA", "Vantiva USA LLC" },
@@ -31623,6 +32171,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD8, 0x3A, 0xDD }, "RaspberryPiT", "Raspberry Pi Trading Ltd" },
{ { 0xD8, 0x3A, 0xF5 }, "WidebandLabs", "Wideband Labs LLC" },
{ { 0xD8, 0x3B, 0xBF }, "Intel", "Intel Corporate" },
+ { { 0xD8, 0x3B, 0xDA }, "Espressif", "Espressif Inc." },
{ { 0xD8, 0x3C, 0x69 }, "TINNOMobileT", "Shenzhen TINNO Mobile Technology Corp." },
{ { 0xD8, 0x3D, 0x3F }, "JOYNED", "JOYNED GmbH" },
{ { 0xD8, 0x3D, 0xCC }, "UDDTechnolog", "shenzhen UDD Technologies,co.,Ltd" },
@@ -31633,6 +32182,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 +32206,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 +32239,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." },
@@ -31736,6 +32288,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD8, 0x93, 0x41 }, "GeneralElect", "General Electric Global Research" },
{ { 0xD8, 0x94, 0x03 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 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 +32310,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,8 +32366,9 @@ 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, 0xC7, 0xC8 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xD8, 0xC8, 0xE9 }, "Phicomm", "Phicomm (Shanghai) Co., Ltd." },
{ { 0xD8, 0xC9, 0x9D }, "EaDisplay", "Ea Display Limited" },
{ { 0xD8, 0xCA, 0x06 }, "TitanDataCen", "Titan DataCenters France" },
@@ -31826,6 +32381,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD8, 0xCF, 0xBF }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0xD8, 0xD0, 0x90 }, "Dell", "Dell Inc." },
{ { 0xD8, 0xD1, 0xCB }, "Apple", "Apple, Inc." },
+ { { 0xD8, 0xD2, 0x61 }, "GDMideaAirCo", "GD Midea Air-Conditioning Equipment Co.,Ltd." },
{ { 0xD8, 0xD2, 0x7C }, "JemaEnergy", "Jema Energy, Sa" },
{ { 0xD8, 0xD3, 0x85 }, "HewlettPacka", "Hewlett Packard" },
{ { 0xD8, 0xD4, 0x3C }, "Sony", "Sony Corporation" },
@@ -31838,6 +32394,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD8, 0xD7, 0x23 }, "IDS", "IDS, Inc" },
{ { 0xD8, 0xD7, 0x75 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0xD8, 0xD8, 0x66 }, "TozedTechnol", "Shenzhen Tozed Technologies Co.,Ltd." },
+ { { 0xD8, 0xD8, 0xE5 }, "VantivaConne", "Vantiva Connected Home - Technologies Telco" },
{ { 0xD8, 0xDA, 0x52 }, "Apator", "Apator S.A." },
{ { 0xD8, 0xDA, 0xF1 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xD8, 0xDC, 0x40 }, "Apple", "Apple, Inc." },
@@ -31998,8 +32555,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 +32573,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 +32582,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" },
@@ -32034,6 +32595,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xDC, 0x68, 0x0C }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xDC, 0x68, 0x80 }, "zte", "zte corporation" },
{ { 0xDC, 0x68, 0xEB }, "Nintendo", "Nintendo Co.,Ltd" },
+ { { 0xDC, 0x69, 0xB5 }, "eero", "eero inc." },
{ { 0xDC, 0x69, 0xE2 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xDC, 0x6A, 0xE7 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0xDC, 0x6A, 0xEA }, "Infinixmobil", "Infinix mobility limited" },
@@ -32046,6 +32608,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 +32640,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 +32652,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." },
@@ -32107,6 +32672,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xDC, 0xA6, 0x32 }, "RaspberryPiT", "Raspberry Pi Trading Ltd" },
{ { 0xDC, 0xA6, 0x33 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xDC, 0xA6, 0xBD }, "LanboTechnol", "Beijing Lanbo Technology Co., Ltd." },
+ { { 0xDC, 0xA7, 0x06 }, "KtElectronic", "Chengdu Kt Electronic Hi-Tech Co.,Ltd" },
{ { 0xDC, 0xA7, 0x82 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xDC, 0xA7, 0xD9 }, "CompressorCo", "Compressor Controls Corp" },
{ { 0xDC, 0xA8, 0xCF }, "NewSpinGolf", "New Spin Golf, LLC." },
@@ -32130,12 +32696,13 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xDC, 0xB4, 0xCA }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0xDC, 0xB5, 0x4F }, "Apple", "Apple, Inc." },
{ { 0xDC, 0xB7, 0x2E }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
- { { 0xDC, 0xB7, 0xAC }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xDC, 0xB7, 0xAC }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xDC, 0xB7, 0xFC }, "AlpsElectric", "Alps Electric (Ireland) Ltd" },
{ { 0xDC, 0xB8, 0x08 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
{ { 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." },
@@ -32203,11 +32770,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xDC, 0xE8, 0x38 }, "CKTelecom", "CK Telecom (Shenzhen) Limited" },
{ { 0xDC, 0xE9, 0x94 }, "CloudNetwork", "Cloud Network Technology Singapore Pte. Ltd." },
{ { 0xDC, 0xEA, 0xE7 }, "DLink", "D-Link Corporation" },
+ { { 0xDC, 0xEB, 0x4D }, "MotorolaMobi", "Motorola (Wuhan) Mobility Technologies Communication Co., Ltd." },
{ { 0xDC, 0xEB, 0x53 }, "QianXiaoElec", "Wuhan QianXiao Elecronic Technology CO.,LTD" },
{ { 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" },
@@ -32247,6 +32815,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE0, 0x06, 0xE6 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0xE0, 0x07, 0x1B }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 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" },
@@ -32270,6 +32839,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE0, 0x19, 0xD8 }, "BhTechnologi", "Bh Technologies" },
{ { 0xE0, 0x1A, 0xEA }, "AlliedTelesi", "Allied Telesis, Inc." },
{ { 0xE0, 0x1C, 0x41 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
+ { { 0xE0, 0x1C, 0xA7 }, "AristaNetwor", "Arista Networks, Inc." },
{ { 0xE0, 0x1C, 0xEE }, "BravoTech", "Bravo Tech, Inc." },
{ { 0xE0, 0x1C, 0xFC }, "DLinkInterna", "D-Link International" },
{ { 0xE0, 0x1D, 0x38 }, "HuaqinWorldT", "Beijing HuaqinWorld Technology Co.,Ltd" },
@@ -32334,6 +32904,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 +32914,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." },
@@ -32362,6 +32934,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE0, 0x5D, 0xA6 }, "DetlefFinkEl", "Detlef Fink Elektronik & Softwareentwicklung" },
{ { 0xE0, 0x5F, 0x45 }, "Apple", "Apple, Inc." },
{ { 0xE0, 0x5F, 0xB9 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0xE0, 0x60, 0x4A }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0xE0, 0x60, 0x66 }, "Sercomm", "Sercomm Corporation." },
{ { 0xE0, 0x60, 0x89 }, "Cloudleaf", "Cloudleaf, Inc." },
{ { 0xE0, 0x61, 0xB2 }, "ZenointelTec", "Hangzhou Zenointel Technology Co., Ltd" },
@@ -32417,6 +32990,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 +33031,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 +33046,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 +33251,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,12 +33262,14 @@ 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" },
{ { 0xE4, 0x5D, 0x75 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xE4, 0x5E, 0x1B }, "Google", "Google, Inc." },
{ { 0xE4, 0x5E, 0x37 }, "Intel", "Intel Corporate" },
+ { { 0xE4, 0x5E, 0xCC }, "JuniperNetwo", "Juniper Networks" },
{ { 0xE4, 0x5F, 0x01 }, "RaspberryPiT", "Raspberry Pi Trading Ltd" },
{ { 0xE4, 0x60, 0x17 }, "Intel", "Intel Corporate" },
{ { 0xE4, 0x60, 0x4D }, "zte", "zte corporation" },
@@ -32759,6 +33338,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE4, 0x90, 0x7E }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0xE4, 0x90, 0xFD }, "Apple", "Apple, Inc." },
{ { 0xE4, 0x92, 0x2A }, "DbgHoldings", "Dbg Holdings Limited" },
+ { { 0xE4, 0x92, 0x82 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xE4, 0x92, 0xE7 }, "GridlinkTech", "Gridlink Tech. Co.,Ltd." },
{ { 0xE4, 0x92, 0xFB }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xE4, 0x93, 0x6A }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
@@ -32767,6 +33347,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 +33378,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 +33418,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" },
@@ -32847,7 +33429,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE4, 0xDC, 0x5F }, "Cofractal", "Cofractal, Inc." },
{ { 0xE4, 0xDC, 0xCC }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xE4, 0xDD, 0x79 }, "EnVisionAmer", "En-Vision America, Inc." },
- { { 0xE4, 0xDE, 0x40 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xE4, 0xDE, 0x40 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xE4, 0xE0, 0xA6 }, "Apple", "Apple, Inc." },
{ { 0xE4, 0xE0, 0xC5 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xE4, 0xE1, 0x12 }, "TexasInstrum", "Texas Instruments" },
@@ -32900,6 +33482,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0x05, 0x6D }, "NortelNetwor", "Nortel Networks" },
{ { 0xE8, 0x05, 0xDC }, "Verifone", "Verifone Inc." },
{ { 0xE8, 0x06, 0x88 }, "Apple", "Apple, Inc." },
+ { { 0xE8, 0x06, 0x90 }, "Espressif", "Espressif Inc." },
{ { 0xE8, 0x07, 0x34 }, "ChampionOpti", "Champion Optical Network Engineering, LLC" },
{ { 0xE8, 0x07, 0xBF }, "BoomtechIndu", "Shenzhen Boomtech Industry Co.,Ltd" },
{ { 0xE8, 0x08, 0x8B }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -32912,18 +33495,19 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0x0C, 0x75 }, "Syncbak", "Syncbak, Inc." },
{ { 0xE8, 0x0F, 0xC8 }, "UniversalEle", "Universal Electronics, Inc." },
{ { 0xE8, 0x10, 0x2E }, "ReallySimple", "Really Simple Software, Inc" },
- { { 0xE8, 0x10, 0x98 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xE8, 0x10, 0x98 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xE8, 0x11, 0x32 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xE8, 0x11, 0xCA }, "ShandongKaer", "Shandong Kaer Electric.Co.,Ltd" },
{ { 0xE8, 0x13, 0x24 }, "GuangZhouBon", "GuangZhou Bonsoninfo System CO.,LTD" },
{ { 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" },
{ { 0xE8, 0x17, 0x11 }, "Vipstech", "Shenzhen Vipstech Co., Ltd" },
- { { 0xE8, 0x17, 0xFC }, "FujitsuCloud", "Fujitsu Cloud Technologies Limited" },
+ { { 0xE8, 0x17, 0xFC }, "Fujitsu", "Fujitsu Limited" },
{ { 0xE8, 0x1A, 0x58 }, "Technologic", "Technologic Systems" },
{ { 0xE8, 0x1A, 0xAC }, "ORFEOSOUNDWO", "ORFEO SOUNDWORKS Inc." },
{ { 0xE8, 0x1B, 0x4B }, "amnimo", "amnimo Inc." },
@@ -32933,11 +33517,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0x1D, 0xA8 }, "RuckusWirele", "Ruckus Wireless" },
{ { 0xE8, 0x1E, 0x92 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xE8, 0x20, 0xE2 }, "HUMAX", "HUMAX Co., Ltd." },
+ { { 0xE8, 0x22, 0x81 }, "GDMideaAirCo", "GD Midea Air-Conditioning Equipment Co.,Ltd." },
{ { 0xE8, 0x22, 0xB8 }, "SkyworthDigi", "Shenzhen Skyworth Digital Technology CO., Ltd" },
{ { 0xE8, 0x24, 0x04 }, "QuectelWirel", "Quectel Wireless Solutions Co.,Ltd." },
{ { 0xE8, 0x24, 0xA6 }, "JuniperNetwo", "Juniper Networks" },
{ { 0xE8, 0x25, 0x87 }, "ChilinkIoTTe", "Shenzhen Chilink IoT Technology Co., Ltd." },
- { { 0xE8, 0x26, 0x89 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xE8, 0x26, 0x89 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xE8, 0x26, 0x8D }, "SuperElectro", "Shenzhen SuperElectron Technology Co.,Ltd." },
{ { 0xE8, 0x26, 0xB6 }, "CompaniesHou", "Companies House to GlucoRx Technologies Ltd." },
{ { 0xE8, 0x27, 0x25 }, "AxisCommunic", "Axis Communications AB" },
@@ -32980,6 +33565,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0x48, 0xB8 }, "TPLink", "TP-Link Corporation Limited" },
{ { 0xE8, 0x49, 0x43 }, "YUGEInformat", "YUGE Information technology Co. Ltd" },
{ { 0xE8, 0x4A, 0x54 }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
+ { { 0xE8, 0x4A, 0x78 }, "Apple", "Apple, Inc." },
{ { 0xE8, 0x4C, 0x4A }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0xE8, 0x4C, 0x56 }, "InterceptSer", "Intercept Services Limited" },
{ { 0xE8, 0x4D, 0x74 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -32997,6 +33583,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 +33599,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" },
@@ -33078,6 +33666,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0x93, 0xF3 }, "Graphiant", "Graphiant Inc" },
{ { 0xE8, 0x94, 0x4C }, "CogentHealth", "Cogent Healthcare Systems Ltd" },
{ { 0xE8, 0x94, 0xF6 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
+ { { 0xE8, 0x95, 0x05 }, "MiaoMingInte", "Shenzhen MiaoMing Intelligent Technology Co.,Ltd" },
{ { 0xE8, 0x95, 0x26 }, "LuxsharePrec", "Luxshare Precision Industry CO., LTD." },
{ { 0xE8, 0x96, 0x06 }, "testoInstrum", "testo Instruments (Shenzhen) Co., Ltd." },
{ { 0xE8, 0x97, 0x9A }, "QuectelWirel", "Quectel Wireless Solutions Co.,Ltd." },
@@ -33111,6 +33700,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,10 +33716,12 @@ 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" },
{ { 0xE8, 0xB7, 0x22 }, "GreenTrolAut", "GreenTrol Automation" },
+ { { 0xE8, 0xB7, 0x23 }, "VatilonElect", "Shenzhen Vatilon Electronics Co.,Ltd" },
{ { 0xE8, 0xB7, 0x48 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xE8, 0xBA, 0x70 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xE8, 0xBA, 0xE2 }, "XploraTechno", "Xplora Technologies AS" },
@@ -33137,6 +33729,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" },
@@ -33187,6 +33780,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0xDE, 0x8E }, "IntegratedDe", "Integrated Device Technology (Malaysia) Sdn. Bhd." },
{ { 0xE8, 0xDE, 0xD6 }, "IntrisingNet", "Intrising Networks, Inc." },
{ { 0xE8, 0xDE, 0xFB }, "MesoticSas", "Mesotic Sas" },
+ { { 0xE8, 0xDF, 0x24 }, "Ohsung", "Ohsung" },
{ { 0xE8, 0xDF, 0x70 }, "AVMAudiovisu", "AVM Audiovisuelles Marketing und Computersysteme GmbH" },
{ { 0xE8, 0xDF, 0xF2 }, "PRF", "PRF Co., Ltd." },
{ { 0xE8, 0xE0, 0x7E }, "SiliconLabor", "Silicon Laboratories" },
@@ -33259,11 +33853,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xEC, 0x01, 0xD5 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xEC, 0x01, 0xE2 }, "FoxconnInter", "Foxconn Interconnect Technology" },
{ { 0xEC, 0x01, 0xEE }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
- { { 0xEC, 0x02, 0x73 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xEC, 0x02, 0x73 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xEC, 0x04, 0x41 }, "TIGOSemicond", "ShenZhen TIGO Semiconductor Co., Ltd." },
{ { 0xEC, 0x04, 0x82 }, "STL", "STL Systems AG" },
{ { 0xEC, 0x08, 0x6B }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0xEC, 0x08, 0xE5 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
+ { { 0xEC, 0x09, 0xC9 }, "TexasInstrum", "Texas Instruments" },
{ { 0xEC, 0x0B, 0xAE }, "BroadLinkTec", "Hangzhou BroadLink Technology Co.,Ltd" },
{ { 0xEC, 0x0C, 0x96 }, "Nokia", "Nokia" },
{ { 0xEC, 0x0D, 0x51 }, "Apple", "Apple, Inc." },
@@ -33322,6 +33917,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xEC, 0x38, 0x73 }, "JuniperNetwo", "Juniper Networks" },
{ { 0xEC, 0x38, 0x8F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xEC, 0x3A, 0x52 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
+ { { 0xEC, 0x3B, 0xAF }, "EMMicroelect", "EM Microelectronic" },
{ { 0xEC, 0x3B, 0xF0 }, "NovelSat", "NovelSat" },
{ { 0xEC, 0x3C, 0x5A }, "ShenZhenHeng", "Shen Zhen Heng Sheng Hui Digital Technology Co.,Ltd" },
{ { 0xEC, 0x3C, 0x88 }, "MCNEX", "MCNEX Co.,Ltd." },
@@ -33351,7 +33947,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xEC, 0x4D, 0x3E }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0xEC, 0x4D, 0x47 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xEC, 0x4F, 0x82 }, "Calix", "Calix Inc." },
- { { 0xEC, 0x50, 0xAA }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xEC, 0x50, 0xAA }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xEC, 0x51, 0xBC }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0xEC, 0x52, 0xDC }, "WORLDMEDIAAN", "WORLD MEDIA AND TECHNOLOGY Corp." },
{ { 0xEC, 0x53, 0x82 }, "HonorDevice", "Honor Device Co., Ltd." },
@@ -33382,7 +33978,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xEC, 0x65, 0x6E }, "ThingsIndust", "The Things Industries B.V." },
{ { 0xEC, 0x65, 0xCC }, "PanasonicAut", "Panasonic Automotive Systems Company of America" },
{ { 0xEC, 0x66, 0xD1 }, "B&WGroup", "B&W Group LTD" },
- { { 0xEC, 0x67, 0x94 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xEC, 0x67, 0x94 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xEC, 0x68, 0x81 }, "PaloAltoNetw", "Palo Alto Networks" },
{ { 0xEC, 0x6C, 0x9A }, "Arcadyan", "Arcadyan Corporation" },
{ { 0xEC, 0x6C, 0x9F }, "VolansTechno", "Chengdu Volans Technology CO.,LTD" },
@@ -33391,6 +33987,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xEC, 0x6F, 0x0B }, "FADU", "FADU, Inc." },
{ { 0xEC, 0x70, 0x97 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xEC, 0x71, 0xDB }, "ReolinkInnov", "Reolink Innovation Limited" },
+ { { 0xEC, 0x72, 0x5B }, "zte", "zte corporation" },
{ { 0xEC, 0x73, 0x79 }, "Apple", "Apple, Inc." },
{ { 0xEC, 0x74, 0x27 }, "eero", "eero inc." },
{ { 0xEC, 0x74, 0x8C }, "SonyInteract", "Sony Interactive Entertainment Inc." },
@@ -33467,6 +34064,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 +34100,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 +34108,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." },
@@ -33569,16 +34169,20 @@ 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 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 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." },
{ { 0xF0, 0x08, 0xF1 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0xF0, 0x09, 0x0D }, "TpLinkPte", "Tp-Link Corporation Pte. Ltd." },
{ { 0xF0, 0x0D, 0x5C }, "JinQianMaoTe", "JinQianMao Technology Co.,Ltd." },
{ { 0xF0, 0x0D, 0xF5 }, "ACOMAMedical", "ACOMA Medical Industry Co,. Ltd." },
{ { 0xF0, 0x0E, 0x1D }, "Megafone", "Megafone Limited" },
@@ -33594,7 +34198,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF0, 0x16, 0x28 }, "TechnicolorT", "Technicolor (China) Technology Co., Ltd." },
{ { 0xF0, 0x18, 0x2B }, "LGChem", "LG Chem" },
{ { 0xF0, 0x18, 0x98 }, "Apple", "Apple, Inc." },
- { { 0xF0, 0x1A, 0xA0 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xF0, 0x1A, 0xA0 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xF0, 0x1B, 0x24 }, "zte", "zte corporation" },
{ { 0xF0, 0x1B, 0x6C }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0xF0, 0x1C, 0x13 }, "LGElectronic", "LG Electronics (Mobile Communications)" },
@@ -33675,7 +34279,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF0, 0x58, 0x49 }, "CareViewComm", "CareView Communications" },
{ { 0xF0, 0x5A, 0x09 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xF0, 0x5B, 0x7B }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
- { { 0xF0, 0x5C, 0x19 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xF0, 0x5C, 0x19 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xF0, 0x5C, 0x77 }, "Google", "Google, Inc." },
{ { 0xF0, 0x5C, 0xD5 }, "Apple", "Apple, Inc." },
{ { 0xF0, 0x5D, 0x89 }, "Dycon", "Dycon Limited" },
@@ -33683,7 +34287,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF0, 0x5E, 0xCD }, "TexasInstrum", "Texas Instruments" },
{ { 0xF0, 0x5F, 0x5A }, "GetriebebauN", "Getriebebau NORD GmbH and Co. KG" },
{ { 0xF0, 0x61, 0x30 }, "AdvantagePha", "Advantage Pharmacy Services, LLC" },
- { { 0xF0, 0x61, 0xC0 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xF0, 0x61, 0xC0 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xF0, 0x61, 0xF3 }, "ComcastCable", "Comcast Cable Corporation" },
{ { 0xF0, 0x62, 0x0D }, "EgreatTech", "Shenzhen Egreat Tech Corp.,Ltd" },
{ { 0xF0, 0x62, 0x5A }, "RealmeChongq", "Realme Chongqing Mobile Telecommunications Corp.,Ltd." },
@@ -33762,6 +34366,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF0, 0x9C, 0xE9 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
{ { 0xF0, 0x9E, 0x4A }, "Intel", "Intel Corporate" },
{ { 0xF0, 0x9E, 0x63 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0xF0, 0x9E, 0x9E }, "Espressif", "Espressif Inc." },
{ { 0xF0, 0x9F, 0xC2 }, "Ubiquiti", "Ubiquiti Inc" },
{ { 0xF0, 0x9F, 0xFC }, "SHARP", "SHARP Corporation" },
{ { 0xF0, 0xA0, 0xB1 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -33778,6 +34383,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF0, 0xAA, 0x0B }, "ArraNetworks", "Arra Networks/ Spectramesh" },
{ { 0xF0, 0xAB, 0x1F }, "zte", "zte corporation" },
{ { 0xF0, 0xAB, 0x54 }, "MitsumiElect", "Mitsumi Electric Co.,Ltd." },
+ { { 0xF0, 0xAB, 0xF3 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0xF0, 0xAC, 0xA4 }, "HBCradiomati", "HBC-radiomatic" },
{ { 0xF0, 0xAD, 0x4E }, "GlobalscaleT", "Globalscale Technologies, Inc." },
{ { 0xF0, 0xAE, 0x51 }, "Xi3", "Xi3 Corp" },
@@ -33843,11 +34449,13 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF0, 0xD4, 0xF6 }, "LarsThrane", "Lars Thrane A/S" },
{ { 0xF0, 0xD4, 0xF7 }, "varramsystem", "varram system" },
{ { 0xF0, 0xD5, 0xBF }, "Intel", "Intel Corporate" },
+ { { 0xF0, 0xD6, 0x35 }, "Apple", "Apple, Inc." },
{ { 0xF0, 0xD6, 0x57 }, "Echosens", "Echosens" },
{ { 0xF0, 0xD7, 0x67 }, "AxemaPassage", "Axema Passagekontroll AB" },
{ { 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 +34468,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 +34504,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." },
@@ -33946,6 +34556,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." },
@@ -33964,7 +34575,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF4, 0x2C, 0x56 }, "SenorTech", "Senor Tech Co Ltd" },
{ { 0xF4, 0x2D, 0x06 }, "zte", "zte corporation" },
{ { 0xF4, 0x2E, 0x48 }, "zte", "zte corporation" },
- { { 0xF4, 0x2E, 0x7F }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xF4, 0x2E, 0x7F }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xF4, 0x30, 0x8B }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0xF4, 0x30, 0xB9 }, "HewlettPacka", "Hewlett Packard" },
{ { 0xF4, 0x31, 0x49 }, "PixelFX", "Pixel FX" },
@@ -34017,6 +34628,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 +34670,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 +34678,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,11 +34718,14 @@ 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, 0xCE }, "SenaTechnolo", "Sena Technologies Co., Ltd." },
{ { 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" },
{ { 0xF4, 0xA1, 0x7F }, "MarquardtEle", "Marquardt Electronics Technology (Shanghai) Co.Ltd" },
{ { 0xF4, 0xA2, 0x94 }, "EagleWorldDe", "Eagle World Development Co., Limited" },
+ { { 0xF4, 0xA3, 0x10 }, "Apple", "Apple, Inc." },
{ { 0xF4, 0xA4, 0x75 }, "Intel", "Intel Corporate" },
{ { 0xF4, 0xA4, 0xD6 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xF4, 0xA5, 0x2A }, "HawaTechnolo", "Hawa Technologies Inc" },
@@ -34346,6 +34963,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF8, 0x3F, 0x51 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xF8, 0x42, 0x88 }, "Apple", "Apple, Inc." },
{ { 0xF8, 0x42, 0xFB }, "YasudaJoho", "Yasuda Joho Co.,ltd." },
+ { { 0xF8, 0x44, 0x77 }, "SiliconLabor", "Silicon Laboratories" },
{ { 0xF8, 0x44, 0xE3 }, "TaicangT&WEl", "Taicang T&W Electronics" },
{ { 0xF8, 0x45, 0xAD }, "KonkaGroup", "Konka Group Co., Ltd." },
{ { 0xF8, 0x45, 0xC4 }, "NetforwardMi", "Shenzhen Netforward Micro-Electronic Co., Ltd." },
@@ -34360,6 +34978,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" },
@@ -34395,7 +35014,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF8, 0x5E, 0x42 }, "VantivaUSA", "Vantiva USA LLC" },
{ { 0xF8, 0x5E, 0xA0 }, "Intel", "Intel Corporate" },
{ { 0xF8, 0x5F, 0x2A }, "Nokia", "Nokia Corporation" },
- { { 0xF8, 0x60, 0xF0 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xF8, 0x60, 0xF0 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xF8, 0x62, 0x14 }, "Apple", "Apple, Inc." },
{ { 0xF8, 0x62, 0xAA }, "xn", "xn systems" },
{ { 0xF8, 0x63, 0x3F }, "Intel", "Intel Corporate" },
@@ -34425,6 +35044,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 +35079,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 +35168,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 +35180,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" },
@@ -34618,6 +35241,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF8, 0xF4, 0x64 }, "RaweElectoni", "Rawe Electonic GmbH" },
{ { 0xF8, 0xF5, 0x19 }, "Rulogic", "Rulogic Inc." },
{ { 0xF8, 0xF5, 0x32 }, "ARRISGroup", "ARRIS Group, Inc." },
+ { { 0xF8, 0xF5, 0x8C }, "Apple", "Apple, Inc." },
{ { 0xF8, 0xF7, 0xB9 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xF8, 0xF7, 0xD3 }, "Internationa", "International Communications Corporation" },
{ { 0xF8, 0xF7, 0xFF }, "SynTech", "Syn-Tech Systems Inc" },
@@ -34647,6 +35271,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 +35411,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" },
@@ -34823,7 +35448,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xFC, 0x7C, 0xE7 }, "FciUsa", "Fci Usa Llc" },
{ { 0xFC, 0x7D, 0x6C }, "HYESUNGTECHW", "HYESUNG TECHWIN Co., Ltd" },
{ { 0xFC, 0x7F, 0x56 }, "CoSystContro", "CoSyst Control Systems GmbH" },
- { { 0xFC, 0x7F, 0xF1 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xFC, 0x7F, 0xF1 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xFC, 0x83, 0x29 }, "Treitechnics", "Trei technics" },
{ { 0xFC, 0x83, 0x99 }, "Avaya", "Avaya Inc" },
{ { 0xFC, 0x83, 0xC6 }, "NRadioTechno", "N-Radio Technologies Co., Ltd." },
@@ -34846,6 +35471,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 +35483,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" },
@@ -34899,6 +35526,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xFC, 0xB0, 0xDE }, "CloudNetwork", "Cloud Network Technology Singapore Pte. Ltd." },
{ { 0xFC, 0xB1, 0x0D }, "TianKunTechn", "Shenzhen Tian Kun Technology Co.,LTD." },
{ { 0xFC, 0xB2, 0xD6 }, "CigShanghai", "Cig Shanghai Co Ltd" },
+ { { 0xFC, 0xB3, 0x87 }, "LeapmotorNew", "Leapmotor (Jinhua) New Energy Vehicle Parts Technology Co., Ltd." },
{ { 0xFC, 0xB3, 0xBC }, "Intel", "Intel Corporate" },
{ { 0xFC, 0xB4, 0x67 }, "Espressif", "Espressif Inc." },
{ { 0xFC, 0xB4, 0xE6 }, "AskeyCompute", "Askey Computer Corp" },
@@ -35076,7 +35704,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 +35750,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 +35793,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" },
@@ -35301,6 +35944,21 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x10, 0x54, 0xD2, 0xC0 }, "LUXSHAREICT", "LUXSHARE-ICT Co., Ltd." },
{ { 0x10, 0x54, 0xD2, 0xD0 }, "Sunwealthtec", "Sun wealth technology corporation limited" },
{ { 0x10, 0x54, 0xD2, 0xE0 }, "CosmoAiotTec", "Cosmo Aiot Technology Co Ltd" },
+ { { 0x10, 0x63, 0xA3, 0x00 }, "ChangshaSunv", "Changsha Sunvote Limited" },
+ { { 0x10, 0x63, 0xA3, 0x10 }, "JacobsTechno", "Jacobs Technology, Inc." },
+ { { 0x10, 0x63, 0xA3, 0x20 }, "SichuanPuhui", "Sichuan Puhui Zhida Communication Equipment Co. Ltd." },
+ { { 0x10, 0x63, 0xA3, 0x30 }, "NextvisionSt", "Nextvision Stabilized Systems LTD" },
+ { { 0x10, 0x63, 0xA3, 0x40 }, "GantechETech", "Gantech E Technologies Private Limited" },
+ { { 0x10, 0x63, 0xA3, 0x50 }, "LianxinTechn", "Lianxin (Dalian) Technology Co.,Ltd" },
+ { { 0x10, 0x63, 0xA3, 0x60 }, "MorganSchaff", "Morgan Schaffer" },
+ { { 0x10, 0x63, 0xA3, 0x70 }, "NRS", "NRS Co., Ltd." },
+ { { 0x10, 0x63, 0xA3, 0x80 }, "CDElectronic", "Shenzhen C & D Electronics Co., Ltd." },
+ { { 0x10, 0x63, 0xA3, 0x90 }, "Nexite", "Nexite" },
+ { { 0x10, 0x63, 0xA3, 0xA0 }, "ITABShopprod", "ITAB Shop products" },
+ { { 0x10, 0x63, 0xA3, 0xB0 }, "Shenzhenshis", "Shen zhen shi shang mei dian zi shang wu you xian gong si" },
+ { { 0x10, 0x63, 0xA3, 0xC0 }, "FlatPro", "Flat-Pro Llc" },
+ { { 0x10, 0x63, 0xA3, 0xD0 }, "TritonSensor", "Triton Sensors" },
+ { { 0x10, 0x63, 0xA3, 0xE0 }, "Annapurnalab", "Annapurna labs" },
{ { 0x10, 0xDC, 0xB6, 0x00 }, "ApexSupplyCh", "Apex Supply Chain Technologies" },
{ { 0x10, 0xDC, 0xB6, 0x10 }, "HitachiEnerg", "Hitachi Energy Switzerland Ltd" },
{ { 0x10, 0xDC, 0xB6, 0x20 }, "CalCompIndus", "Cal-Comp Industria E Comercio De Eletronicos E Informatica Ltda" },
@@ -35321,7 +35979,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" },
@@ -36049,7 +36707,7 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x30, 0x49, 0x50, 0x00 }, "GuangzhouLia", "Guangzhou Lian-med Technology Co.,Ltd." },
{ { 0x30, 0x49, 0x50, 0x10 }, "AtliWorld", "Atli World Limited" },
{ { 0x30, 0x49, 0x50, 0x20 }, "Sercomm", "Sercomm Corporation." },
- { { 0x30, 0x49, 0x50, 0x30 }, "MorganSchaff", "Morgan Schaffer Inc." },
+ { { 0x30, 0x49, 0x50, 0x30 }, "MorganSchaff", "Morgan Schaffer" },
{ { 0x30, 0x49, 0x50, 0x40 }, "AdvancedMicr", "Advanced Microwave Engineering Srl" },
{ { 0x30, 0x49, 0x50, 0x50 }, "IKElektronik", "IK Elektronik GmbH" },
{ { 0x30, 0x49, 0x50, 0x60 }, "Curb", "Curb, Inc." },
@@ -36106,6 +36764,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 +37085,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 +37197,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" },
@@ -36914,6 +37602,21 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x58, 0xFC, 0xDB, 0xC0 }, "ExcenonMobil", "Excenon Mobile Technology Co., Ltd." },
{ { 0x58, 0xFC, 0xDB, 0xD0 }, "XiamenLeelen", "Xiamen Leelen Technology Co.,Ltd" },
{ { 0x58, 0xFC, 0xDB, 0xE0 }, "AppliedDevic", "Applied Device Technologies" },
+ { { 0x5C, 0x5A, 0x4C, 0x00 }, "JinchuanGrou", "Jinchuan Group Co.,Ltd" },
+ { { 0x5C, 0x5A, 0x4C, 0x10 }, "OrchidProduc", "Orchid Products Limited" },
+ { { 0x5C, 0x5A, 0x4C, 0x20 }, "ITSPartnerSL", "ITS Partner (O.B.S) S.L." },
+ { { 0x5C, 0x5A, 0x4C, 0x30 }, "Ferroamp", "Ferroamp AB (publ)" },
+ { { 0x5C, 0x5A, 0x4C, 0x40 }, "YihuaCommuni", "Yihua Communications(Huizhou)Co.,Ltd" },
+ { { 0x5C, 0x5A, 0x4C, 0x50 }, "Annapurnalab", "Annapurna labs" },
+ { { 0x5C, 0x5A, 0x4C, 0x60 }, "SunsoontTech", "Shenzhen Sunsoont Technology Co.,Ltd" },
+ { { 0x5C, 0x5A, 0x4C, 0x70 }, "AceComputers", "Ace Computers" },
+ { { 0x5C, 0x5A, 0x4C, 0x80 }, "SpotAI", "Spot AI, Inc." },
+ { { 0x5C, 0x5A, 0x4C, 0x90 }, "LinktechSyst", "Linktech Systerm Technology Co.,Ltd" },
+ { { 0x5C, 0x5A, 0x4C, 0xA0 }, "SkysoftInfo&", "Chengdu Skysoft Info&Tech Co.,Ltd." },
+ { { 0x5C, 0x5A, 0x4C, 0xB0 }, "EsmeSolution", "Esme Solutions" },
+ { { 0x5C, 0x5A, 0x4C, 0xC0 }, "tarm", "tarm AG" },
+ { { 0x5C, 0x5A, 0x4C, 0xD0 }, "Aeva", "Aeva, Inc." },
+ { { 0x5C, 0x5A, 0x4C, 0xE0 }, "AiRider", "Ai-Rider Corporation" },
{ { 0x5C, 0x6A, 0xEC, 0x00 }, "AcuityBrands", "Acuity Brands Lighting" },
{ { 0x5C, 0x6A, 0xEC, 0x10 }, "SmilembbTech", "Shanghai Smilembb Technology Co.,LTD" },
{ { 0x5C, 0x6A, 0xEC, 0x20 }, "MingyueTechn", "Shenzhen Mingyue Technology lnnovation Co.,Ltd" },
@@ -36944,6 +37647,21 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x5C, 0x85, 0x7E, 0xC0 }, "Annapurnalab", "Annapurna labs" },
{ { 0x5C, 0x85, 0x7E, 0xD0 }, "NautechElect", "Nautech Electronics Ltd" },
{ { 0x5C, 0x85, 0x7E, 0xE0 }, "GuoyiLiangzi", "Guoyi Liangzi (Hefei) Technology Co., Ltd(CIQTEK)" },
+ { { 0x5C, 0x87, 0xD8, 0x00 }, "NanjingShufa", "Nanjing Shufan Information Technology Co., Ltd." },
+ { { 0x5C, 0x87, 0xD8, 0x10 }, "COMETSYSTEMs", "COMET SYSTEM, s.r.o." },
+ { { 0x5C, 0x87, 0xD8, 0x20 }, "Freeus", "Freeus LLC" },
+ { { 0x5C, 0x87, 0xD8, 0x30 }, "BeiensImport", "Shenzhen Beiens Import and Export Co.,Ltd" },
+ { { 0x5C, 0x87, 0xD8, 0x40 }, "TelfiTechnol", "Telfi Technologies Private Limited" },
+ { { 0x5C, 0x87, 0xD8, 0x50 }, "AdvancedInte", "Hangzhou Advanced Intelligent Manufacturing Systems Co.,Ltd." },
+ { { 0x5C, 0x87, 0xD8, 0x60 }, "JianyiTechno", "Shanghai Jianyi Technology Co., Ltd" },
+ { { 0x5C, 0x87, 0xD8, 0x70 }, "TradewindsNe", "Tradewinds Networks Incorporated" },
+ { { 0x5C, 0x87, 0xD8, 0x80 }, "fmadengineer", "fmad engineering" },
+ { { 0x5C, 0x87, 0xD8, 0x90 }, "Annapurnalab", "Annapurna labs" },
+ { { 0x5C, 0x87, 0xD8, 0xA0 }, "PiscisNetwor", "Piscis Networks Private Limited" },
+ { { 0x5C, 0x87, 0xD8, 0xB0 }, "CredoDiagnos", "Credo Diagnostics Biomedical Pte. Ltd. Taiwan branch(SINGAPORE)" },
+ { { 0x5C, 0x87, 0xD8, 0xC0 }, "DragonglassT", "Dragonglass Technology(Shenzhen)Co.,Ltd." },
+ { { 0x5C, 0x87, 0xD8, 0xD0 }, "ZiliaTechnol", "Zilia Technologies" },
+ { { 0x5C, 0x87, 0xD8, 0xE0 }, "TownskyTechn", "Beijing Townsky Technology Co.,Ltd" },
{ { 0x5C, 0xF2, 0x86, 0x00 }, "SignweiElect", "Hangzhou Signwei Electronics Technology Co., Ltd" },
{ { 0x5C, 0xF2, 0x86, 0x10 }, "iSonTech", "iSon Tech" },
{ { 0x5C, 0xF2, 0x86, 0x20 }, "NotionInform", "Shanghai Notion Information Technology CO.,LTD." },
@@ -37004,6 +37722,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 +38214,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 +38369,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 +38702,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 +38740,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 +39768,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 +39902,21 @@ 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, 0x00 }, "HCElectronic", "Shenzhen HC Electronic Technology Co.,LTD" },
+ { { 0xC8, 0xFF, 0xBF, 0x10 }, "robertjuliat", "robert juliat" },
+ { { 0xC8, 0xFF, 0xBF, 0x20 }, "CognizantMob", "Cognizant Mobility GmbH" },
+ { { 0xC8, 0xFF, 0xBF, 0x30 }, "Tectoy", "Tectoy S.A" },
+ { { 0xC8, 0xFF, 0xBF, 0x40 }, "Jingyibeifan", "Beijing Jingyibeifang Instrument Co.,Ltd." },
+ { { 0xC8, 0xFF, 0xBF, 0x50 }, "ChongqingZhi", "Chongqing Zhizhu Huaxin Technology Co.,Ltd" },
+ { { 0xC8, 0xFF, 0xBF, 0x60 }, "AccuphyTechn", "Accuphy Technologies Beijing Ltd" },
+ { { 0xC8, 0xFF, 0xBF, 0x70 }, "IndraRenewab", "Indra Renewable Technologies" },
+ { { 0xC8, 0xFF, 0xBF, 0x80 }, "FengrundaTec", "Shenzhen Fengrunda Technology Co.,Ltd" },
+ { { 0xC8, 0xFF, 0xBF, 0x90 }, "ShandongWans", "Shandong Wanshuo Optoelectronic Equipment Co.,Ltd" },
+ { { 0xC8, 0xFF, 0xBF, 0xA0 }, "MaestroFood", "Maestro Food Co." },
+ { { 0xC8, 0xFF, 0xBF, 0xB0 }, "PubliBike", "PubliBike SA" },
+ { { 0xC8, 0xFF, 0xBF, 0xC0 }, "DensityIO", "Density.IO" },
+ { { 0xC8, 0xFF, 0xBF, 0xD0 }, "ALDESDomNexX", "ALDES DomNexX" },
+ { { 0xC8, 0xFF, 0xBF, 0xE0 }, "HtItalia", "Ht Italia Srl" },
{ { 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." },
@@ -39711,6 +40512,15 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0xE8, 0xFF, 0x1E, 0xC0 }, "FracarroRadi", "Fracarro Radioindustrie Srl" },
{ { 0xE8, 0xFF, 0x1E, 0xD0 }, "AZWTechnolog", "Shenzhen AZW Technology Co., Ltd." },
{ { 0xE8, 0xFF, 0x1E, 0xE0 }, "kstarScience", "Shenzhen kstar Science & Technology Co., Ltd" },
+ { { 0xEC, 0x5B, 0xCD, 0x20 }, "SferaLabs", "Sfera Labs S.r.l." },
+ { { 0xEC, 0x5B, 0xCD, 0x30 }, "HefeiBOEVisi", "Hefei BOE Vision-electronic Technology Co.,Ltd." },
+ { { 0xEC, 0x5B, 0xCD, 0x50 }, "QunfangTechn", "Shenzhen Qunfang Technology Co., LTD." },
+ { { 0xEC, 0x5B, 0xCD, 0x70 }, "Annapurnalab", "Annapurna labs" },
+ { { 0xEC, 0x5B, 0xCD, 0x90 }, "C&DTechnolog", "C&D Technologies" },
+ { { 0xEC, 0x5B, 0xCD, 0xA0 }, "CareSix", "CareSix Inc." },
+ { { 0xEC, 0x5B, 0xCD, 0xB0 }, "StepOver", "StepOver GmbH" },
+ { { 0xEC, 0x5B, 0xCD, 0xC0 }, "Quicklert", "Quicklert Inc" },
+ { { 0xEC, 0x5B, 0xCD, 0xD0 }, "ASHIDAElectr", "ASHIDA Electronics Pvt. Ltd" },
{ { 0xEC, 0x9A, 0x0C, 0x00 }, "HexindaSuppl", "Shenzhen Hexinda Supply Chain Management Co.Ltd" },
{ { 0xEC, 0x9A, 0x0C, 0x10 }, "NaxiangTechn", "Shenzhen Naxiang Technology Co., Ltd" },
{ { 0xEC, 0x9A, 0x0C, 0x20 }, "YitoaDigital", "Shenzhen Yitoa Digital Technology Co., Ltd." },
@@ -39951,6 +40761,21 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0xF8, 0x1D, 0x78, 0xC0 }, "ShenzhuoyueT", "Shenzhuoyue Technology.,Ltd" },
{ { 0xF8, 0x1D, 0x78, 0xD0 }, "Tofino", "Tofino" },
{ { 0xF8, 0x1D, 0x78, 0xE0 }, "EnokCommunic", "Guangdong Enok Communication Co., Ltd." },
+ { { 0xF8, 0x7A, 0x39, 0x00 }, "YongxieTechn", "Hangzhou Yongxie Technology Co., Ltd" },
+ { { 0xF8, 0x7A, 0x39, 0x10 }, "JiemuElectro", "Hangzhou Jiemu Electronic Technology Co.,Ltd" },
+ { { 0xF8, 0x7A, 0x39, 0x20 }, "TotaloneTECH", "Total-one TECHNOLOGY CO., LTD." },
+ { { 0xF8, 0x7A, 0x39, 0x30 }, "Overview", "Overview Limited" },
+ { { 0xF8, 0x7A, 0x39, 0x40 }, "Zsystemtechn", "Zsystem technology co.," },
+ { { 0xF8, 0x7A, 0x39, 0x50 }, "tatwah", "tatwah SA" },
+ { { 0xF8, 0x7A, 0x39, 0x60 }, "Annapurnalab", "Annapurna labs" },
+ { { 0xF8, 0x7A, 0x39, 0x70 }, "ElectronTech", "Shenzhen Electron Technology Co., LTD." },
+ { { 0xF8, 0x7A, 0x39, 0x80 }, "ZhongyuanYis", "Beijing Zhongyuan Yishang Technology Co.,LTD" },
+ { { 0xF8, 0x7A, 0x39, 0x90 }, "Shenzhenshil", "Shenzhenshilemaikejiyouxiangongsi" },
+ { { 0xF8, 0x7A, 0x39, 0xA0 }, "FeltrinIndus", "Feltrin Industria E Comercio" },
+ { { 0xF8, 0x7A, 0x39, 0xB0 }, "FuyanshengEl", "FuyanshengElectronicFujian Co.ltd" },
+ { { 0xF8, 0x7A, 0x39, 0xC0 }, "FlextronicsI", "Flextronics International Kft" },
+ { { 0xF8, 0x7A, 0x39, 0xD0 }, "XiamenTonmin", "Xiamen Tonmind Technology Co.,Ltd" },
+ { { 0xF8, 0x7A, 0x39, 0xE0 }, "Cognosos", "Cognosos, Inc." },
{ { 0xF8, 0x8A, 0x3C, 0x00 }, "Art", "Art Spa" },
{ { 0xF8, 0x8A, 0x3C, 0x10 }, "CarefreeColo", "Carefree of Colorado" },
{ { 0xF8, 0x8A, 0x3C, 0x20 }, "KLATUNetwork", "KLATU Networks Inc" },
@@ -41010,7 +41835,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x00, 0x50, 0xC2, 0x30, 0xB0 }, "VXTechnologi", "VX Technologies Inc." },
{ { 0x00, 0x50, 0xC2, 0x30, 0xC0 }, "Teamlog", "Teamlog" },
{ { 0x00, 0x50, 0xC2, 0x30, 0xD0 }, "Setaram", "Setaram" },
- { { 0x00, 0x50, 0xC2, 0x30, 0xE0 }, "Obvius", "Obvius" },
+ { { 0x00, 0x50, 0xC2, 0x30, 0xE0 }, "LevitonManuf", "Leviton Manufacturing Co., Inc" },
{ { 0x00, 0x50, 0xC2, 0x30, 0xF0 }, "Digicontrole", "Digicontrole Lda" },
{ { 0x00, 0x50, 0xC2, 0x31, 0x00 }, "Cybertron", "Cybertron Co., Ltd." },
{ { 0x00, 0x50, 0xC2, 0x31, 0x10 }, "Comodo", "Comodo" },
@@ -42408,7 +43233,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." },
@@ -42486,7 +43311,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x00, 0x50, 0xC2, 0x8D, 0x10 }, "BachmannMoni", "Bachmann Monitoring GmbH" },
{ { 0x00, 0x50, 0xC2, 0x8D, 0x20 }, "TTi", "TTi Ltd" },
{ { 0x00, 0x50, 0xC2, 0x8D, 0x30 }, "IFAM", "IFAM GmbH" },
- { { 0x00, 0x50, 0xC2, 0x8D, 0x40 }, "InternetProt", "Internet Protocolo Lógica SL" },
+ { { 0x00, 0x50, 0xC2, 0x8D, 0x40 }, "InternetProt", "Internet Protocolo Logica Sl" },
{ { 0x00, 0x50, 0xC2, 0x8D, 0x50 }, "PeekTraffic", "Peek Traffic Corp" },
{ { 0x00, 0x50, 0xC2, 0x8D, 0x60 }, "UltraVisionS", "UltraVision Security Systems, Inc." },
{ { 0x00, 0x50, 0xC2, 0x8D, 0x70 }, "PolygonInfor", "Polygon Informatics Ltd." },
@@ -43140,7 +43965,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x00, 0x50, 0xC2, 0xB5, 0xF0 }, "NorthBridgeT", "North Bridge Technologies" },
{ { 0x00, 0x50, 0xC2, 0xB6, 0x00 }, "OooNpfAtis", "Ooo Npf Atis" },
{ { 0x00, 0x50, 0xC2, 0xB6, 0x10 }, "Nayos", "Nayos LTD" },
- { { 0x00, 0x50, 0xC2, 0xB6, 0x20 }, "MeasurementT", "Measurement Technology NW" },
+ { { 0x00, 0x50, 0xC2, 0xB6, 0x20 }, "RuggedContro", "Rugged Controls" },
{ { 0x00, 0x50, 0xC2, 0xB6, 0x30 }, "ROVERLaborat", "RO.VE.R. Laboratories S.p.A" },
{ { 0x00, 0x50, 0xC2, 0xB6, 0x40 }, "FEWBauer", "FEW Bauer GmbH" },
{ { 0x00, 0x50, 0xC2, 0xB6, 0x50 }, "PeekTraffic", "Peek Traffic Corporation" },
@@ -43719,7 +44544,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 +44583,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 +45382,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" },
@@ -45291,7 +46116,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x70, 0xB3, 0xD5, 0x1F, 0x40 }, "WoosiyuanCom", "Hangzhou Woosiyuan Communication Co.,Ltd." },
{ { 0x70, 0xB3, 0xD5, 0x1F, 0x50 }, "Martec", "Martec S.p.A." },
{ { 0x70, 0xB3, 0xD5, 0x1F, 0x60 }, "LinkAVTechno", "LinkAV Technology Co., Ltd" },
- { { 0x70, 0xB3, 0xD5, 0x1F, 0x70 }, "MorganSchaff", "Morgan Schaffer Inc." },
+ { { 0x70, 0xB3, 0xD5, 0x1F, 0x70 }, "MorganSchaff", "Morgan Schaffer" },
{ { 0x70, 0xB3, 0xD5, 0x1F, 0x80 }, "ConvergentDe", "Convergent Design" },
{ { 0x70, 0xB3, 0xD5, 0x1F, 0x90 }, "Automata", "Automata GmbH & Co. KG" },
{ { 0x70, 0xB3, 0xD5, 0x1F, 0xA0 }, "EBZSysTec", "EBZ SysTec GmbH" },
@@ -45557,7 +46382,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" },
@@ -46766,7 +47591,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x70, 0xB3, 0xD5, 0x7B, 0xF0 }, "StoneThree", "Stone Three" },
{ { 0x70, 0xB3, 0xD5, 0x7C, 0x00 }, "TorgovyyDomT", "Torgovyy Dom Tehnologiy Llc" },
{ { 0x70, 0xB3, 0xD5, 0x7C, 0x10 }, "DataSciences", "Data Sciences International" },
- { { 0x70, 0xB3, 0xD5, 0x7C, 0x20 }, "MorganSchaff", "Morgan Schaffer Inc." },
+ { { 0x70, 0xB3, 0xD5, 0x7C, 0x20 }, "MorganSchaff", "Morgan Schaffer" },
{ { 0x70, 0xB3, 0xD5, 0x7C, 0x30 }, "FleximSecuri", "Flexim Security Oy" },
{ { 0x70, 0xB3, 0xD5, 0x7C, 0x40 }, "Mect", "Mect Srl" },
{ { 0x70, 0xB3, 0xD5, 0x7C, 0x50 }, "ProjectsUnli", "Projects Unlimited Inc." },
@@ -47118,7 +47943,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" },
@@ -47130,7 +47955,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x70, 0xB3, 0xD5, 0x92, 0xC0 }, "DismuntelSal", "Dismuntel Sal" },
{ { 0x70, 0xB3, 0xD5, 0x92, 0xD0 }, "SuzhouWanson", "Suzhou Wansong Electric Co.,Ltd" },
{ { 0x70, 0xB3, 0xD5, 0x92, 0xE0 }, "MedicalMonit", "Medical Monitoring Center OOD" },
- { { 0x70, 0xB3, 0xD5, 0x92, 0xF0 }, "SiFive", "SiFive" },
+ { { 0x70, 0xB3, 0xD5, 0x92, 0xF0 }, "SiFive", "SiFive Inc" },
{ { 0x70, 0xB3, 0xD5, 0x93, 0x00 }, "InstituteMin", "The Institute of Mine Seismology" },
{ { 0x70, 0xB3, 0xD5, 0x93, 0x10 }, "MarineInstru", "Marine Instruments, S.A." },
{ { 0x70, 0xB3, 0xD5, 0x93, 0x20 }, "Rohde&Schwar", "Rohde&Schwarz Topex SA" },
@@ -47295,7 +48120,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 +48168,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 +48388,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 +49399,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,18 +49696,25 @@ 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, 0x00, 0xD0 }, "T4ISp", "T4I Sp. z o.o." },
{ { 0x8C, 0x1F, 0x64, 0x01, 0x10 }, "DEUTAWERKE", "DEUTA-WERKE GmbH" },
+ { { 0x8C, 0x1F, 0x64, 0x01, 0x40 }, "CristalContr", "Cristal Controles Ltee" },
+ { { 0x8C, 0x1F, 0x64, 0x01, 0x60 }, "SigntelCommu", "Signtel Communications Pvt Ltd" },
{ { 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" },
{ { 0x8C, 0x1F, 0x64, 0x02, 0x00 }, "UtthungaTech", "Utthunga Techologies Pvt Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x02, 0x20 }, "TelicaTeleco", "Telica Telecom Private Limited" },
{ { 0x8C, 0x1F, 0x64, 0x02, 0x40 }, "ShinNihonDen", "Shin Nihon Denshi Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x02, 0x50 }, "SMITEC", "SMITEC S.p.A." },
{ { 0x8C, 0x1F, 0x64, 0x02, 0x80 }, "eyrise", "eyrise B.V." },
{ { 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 +49739,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 +49766,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" },
@@ -48961,6 +49796,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x0E, 0xE0 }, "RichSourcePr", "Rich Source Precision IND., Co., LTD." },
{ { 0x8C, 0x1F, 0x64, 0x0E, 0xF0 }, "Dave", "Dave Srl" },
{ { 0x8C, 0x1F, 0x64, 0x0F, 0x00 }, "Xylon", "Xylon" },
+ { { 0x8C, 0x1F, 0x64, 0x0F, 0x10 }, "ideaForgeTec", "ideaForge Technology Limited" },
{ { 0x8C, 0x1F, 0x64, 0x0F, 0x20 }, "GraphimeccGr", "Graphimecc Group SRL" },
{ { 0x8C, 0x1F, 0x64, 0x0F, 0x30 }, "Lsi", "Lsi" },
{ { 0x8C, 0x1F, 0x64, 0x0F, 0x40 }, "AWSOMTechnol", "AW-SOM Technologies LLC" },
@@ -48972,15 +49808,19 @@ 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" },
{ { 0x8C, 0x1F, 0x64, 0x11, 0x40 }, "SanminaSCIMe", "Sanmina SCI Medical" },
{ { 0x8C, 0x1F, 0x64, 0x11, 0x50 }, "NeuralogLP", "Neuralog LP" },
+ { { 0x8C, 0x1F, 0x64, 0x11, 0x60 }, "Sicon", "Sicon srl" },
{ { 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, 0x50 }, "ScienerSmart", "Hangzhou Sciener Smart Technology Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x12, 0x60 }, "HarvestTechn", "Harvest Technology Pty Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x12, 0x80 }, "YulistaInteg", "Yulista Integrated Solution" },
{ { 0x8C, 0x1F, 0x64, 0x12, 0x90 }, "NavtechRadar", "Navtech Radar Ltd." },
@@ -48989,6 +49829,8 @@ 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, 0xE0 }, "BtecIndustri", "Btec Industrial Instrument Sdn. Bhd." },
{ { 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." },
@@ -49012,12 +49854,15 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x17, 0x00 }, "FracarroRadi", "Fracarro Radioindustrie Srl" },
{ { 0x8C, 0x1F, 0x64, 0x17, 0x70 }, "Emcom", "Emcom Systems" },
{ { 0x8C, 0x1F, 0x64, 0x17, 0x90 }, "Agrowtek", "Agrowtek Inc." },
+ { { 0x8C, 0x1F, 0x64, 0x17, 0xB0 }, "BavariaDigit", "Bavaria Digital Technik GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x17, 0xC0 }, "Zelp", "Zelp Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x17, 0xE0 }, "MI", "MI Inc." },
{ { 0x8C, 0x1F, 0x64, 0x18, 0x70 }, "Sicon", "Sicon srl" },
{ { 0x8C, 0x1F, 0x64, 0x18, 0xB0 }, "MPulse", "M-Pulse GmbH & Co.KG" },
{ { 0x8C, 0x1F, 0x64, 0x19, 0x30 }, "Sicon", "Sicon srl" },
{ { 0x8C, 0x1F, 0x64, 0x19, 0x40 }, "Tiflex", "Tiflex" },
+ { { 0x8C, 0x1F, 0x64, 0x19, 0x50 }, "VERIDASDigit", "VERIDAS Digital Authentication Solutions S.L" },
+ { { 0x8C, 0x1F, 0x64, 0x19, 0x60 }, "Secuinfo", "Secuinfo Co.Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x19, 0x70 }, "TEKVOX", "TEKVOX, Inc" },
{ { 0x8C, 0x1F, 0x64, 0x19, 0xB0 }, "FeedFlo", "FeedFlo" },
{ { 0x8C, 0x1F, 0x64, 0x19, 0xC0 }, "Aton", "Aton srl" },
@@ -49037,6 +49882,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" },
@@ -49063,11 +49910,14 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x20, 0xD0 }, "Grossenbache", "Grossenbacher Systeme AG" },
{ { 0x8C, 0x1F, 0x64, 0x20, 0xE0 }, "AlphaBridgeT", "Alpha Bridge Technologies Private Limited" },
{ { 0x8C, 0x1F, 0x64, 0x21, 0x10 }, "BipomElectro", "Bipom Electronics, Inc." },
+ { { 0x8C, 0x1F, 0x64, 0x21, 0x50 }, "XLOGIC", "XLOGIC srl" },
{ { 0x8C, 0x1F, 0x64, 0x21, 0x90 }, "GuangzhouDes", "Guangzhou Desam Audio Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x21, 0xC0 }, "LLCEMSExpert", "LLC \"EMS-Expert\"" },
{ { 0x8C, 0x1F, 0x64, 0x21, 0xE0 }, "Bionetics", "The Bionetics Corporation" },
+ { { 0x8C, 0x1F, 0x64, 0x22, 0x10 }, "YuansiangOpt", "Yuansiang Optoelectronics Co.,Ltd." },
{ { 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 +49931,22 @@ 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, 0x00 }, "Ealarms", "E-alarms" },
{ { 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 +49955,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 +49970,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 +49978,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 +49992,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 +50007,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,28 +50028,35 @@ 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, 0xE0 }, "SIDUSSolutio", "SIDUS Solutions, LLC" },
{ { 0x8C, 0x1F, 0x64, 0x37, 0xF0 }, "ScarletTech", "Scarlet Tech Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x38, 0x00 }, "Yslab", "Yslab" },
{ { 0x8C, 0x1F, 0x64, 0x38, 0x20 }, "ROLSTONETech", "Shenzhen ROLSTONE Technology Co., Ltd" },
@@ -49198,10 +50067,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,7 +50090,9 @@ 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, 0x3B, 0xD0 }, "Oriux", "Oriux" },
{ { 0x8C, 0x1F, 0x64, 0x3C, 0x10 }, "SuzhouLiansh", "Suzhou Lianshichuangzhi Technology Co., Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x3C, 0x40 }, "NavSysTechno", "NavSys Technology Inc." },
{ { 0x8C, 0x1F, 0x64, 0x3C, 0x50 }, "StratisIOT", "Stratis IOT" },
@@ -49229,16 +50102,19 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x3C, 0xE0 }, "MahindrMahin", "Mahindr & Mahindra" },
{ { 0x8C, 0x1F, 0x64, 0x3D, 0x00 }, "Tripltek", "Tripltek" },
{ { 0x8C, 0x1F, 0x64, 0x3D, 0x10 }, "EMIT", "EMIT GmbH" },
+ { { 0x8C, 0x1F, 0x64, 0x3D, 0x20 }, "UVIRCOTechno", "UVIRCO Technologies" },
{ { 0x8C, 0x1F, 0x64, 0x3D, 0x40 }, "epgElettroni", "e.p.g. Elettronica s.r.l." },
{ { 0x8C, 0x1F, 0x64, 0x3D, 0x50 }, "FRAKOKondens", "FRAKO Kondensatoren- und Anlagenbau GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x3D, 0x90 }, "UnlimitedBan", "Unlimited Bandwidth LLC" },
{ { 0x8C, 0x1F, 0x64, 0x3E, 0x00 }, "YPP", "YPP Corporation" },
+ { { 0x8C, 0x1F, 0x64, 0x3E, 0x20 }, "Agrico", "Agrico" },
{ { 0x8C, 0x1F, 0x64, 0x3E, 0x30 }, "FMTecFutureM", "FMTec GmbH - Future Management Technologies" },
{ { 0x8C, 0x1F, 0x64, 0x3E, 0x50 }, "SystemsMecha", "Systems Mechanics" },
{ { 0x8C, 0x1F, 0x64, 0x3E, 0x60 }, "elbeinformat", "elbe informatik GmbH" },
{ { 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 +50132,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 +50140,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 +50149,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 +50164,23 @@ 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, 0x70 }, "PotterElectr", "Potter Electric Signal Co. LLC" },
+ { { 0x8C, 0x1F, 0x64, 0x4A, 0x80 }, "ExactScience", "Exact Sciences" },
{ { 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." },
@@ -49320,6 +50204,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x4E, 0x90 }, "EersGlobalTe", "Eers Global Technologies Inc." },
{ { 0x8C, 0x1F, 0x64, 0x4E, 0xC0 }, "XORUK", "XOR UK Corporation Limited" },
{ { 0x8C, 0x1F, 0x64, 0x4F, 0x00 }, "TielineResea", "Tieline Research Pty Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x4F, 0x10 }, "AbbottDiagno", "Abbott Diagnostics Technologies AS" },
{ { 0x8C, 0x1F, 0x64, 0x4F, 0x70 }, "SmartDTechno", "SmartD Technologies Inc" },
{ { 0x8C, 0x1F, 0x64, 0x4F, 0x90 }, "PhotonicScie", "Photonic Science and Engineering Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x4F, 0xA0 }, "Sanskruti", "Sanskruti" },
@@ -49339,6 +50224,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x51, 0x70 }, "SmartRadarSy", "Smart Radar System, Inc" },
{ { 0x8C, 0x1F, 0x64, 0x51, 0x80 }, "WagnerGroup", "Wagner Group GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x52, 0x10 }, "MPSENSOR", "MP-SENSOR GmbH" },
+ { { 0x8C, 0x1F, 0x64, 0x52, 0x40 }, "AskiIndustri", "Aski Industrie Elektronik GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x52, 0x50 }, "UnitedStates", "United States Technologies Inc." },
{ { 0x8C, 0x1F, 0x64, 0x52, 0xA0 }, "HiwinMikrosy", "Hiwin Mikrosystem Corp." },
{ { 0x8C, 0x1F, 0x64, 0x52, 0xD0 }, "CubicITSdbaG", "Cubic ITS, Inc. dba GRIDSMART Technologies" },
@@ -49367,8 +50253,11 @@ 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, 0x10 }, "DeepDetectio", "Deep Detection / ESB01736990" },
+ { { 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" },
@@ -49379,8 +50268,11 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x57, 0xA0 }, "NPOECOINTECH", "NPO ECO-INTECH Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x57, 0xB0 }, "PotterElectr", "Potter Electric Signal Company" },
{ { 0x8C, 0x1F, 0x64, 0x57, 0xD0 }, "ISDI", "ISDI Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x58, 0x00 }, "SAKURASEIKI", "SAKURA SEIKI Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x58, 0x10 }, "SpectraDynam", "SpectraDynamics, Inc." },
+ { { 0x8C, 0x1F, 0x64, 0x58, 0x50 }, "DIDONIndustr", "Shanghai DIDON Industry Co,. Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x58, 0x90 }, "Hvrnd", "Hvrnd" },
+ { { 0x8C, 0x1F, 0x64, 0x58, 0xB0 }, "QuectelWirel", "Quectel Wireless Solutions Co.,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x58, 0xC0 }, "EarMicro", "Ear Micro LLC" },
{ { 0x8C, 0x1F, 0x64, 0x58, 0xE0 }, "NovantaIMS", "Novanta IMS" },
{ { 0x8C, 0x1F, 0x64, 0x59, 0x10 }, "MBconnectlin", "MB connect line GmbH Fernwartungssysteme" },
@@ -49392,12 +50284,14 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x5A, 0x60 }, "KinneyIndust", "Kinney Industries, Inc" },
{ { 0x8C, 0x1F, 0x64, 0x5A, 0x70 }, "Rch", "Rch Spa" },
{ { 0x8C, 0x1F, 0x64, 0x5A, 0x90 }, "AktiebolagSo", "Aktiebolag Solask Energi" },
+ { { 0x8C, 0x1F, 0x64, 0x5A, 0xA0 }, "LandisGyrEqu", "Landis+Gyr Equipamentos de Medição Ltda" },
{ { 0x8C, 0x1F, 0x64, 0x5A, 0xC0 }, "YUYAMAMFG", "YUYAMA MFG Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x5A, 0xE0 }, "SuzhouMotorc", "Suzhou Motorcomm Electronic Technology Co., Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x5A, 0xF0 }, "TeqDiligentP", "Teq Diligent Product Solutions Pvt. Ltd." },
{ { 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 +50300,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." },
@@ -49419,12 +50314,15 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x5E, 0x50 }, "Telemetrics", "Telemetrics Inc." },
{ { 0x8C, 0x1F, 0x64, 0x5E, 0x60 }, "OdysseeSyste", "Odyssee-Systemes" },
{ { 0x8C, 0x1F, 0x64, 0x5E, 0x70 }, "HOSCHGebäude", "HOSCH Gebäude Automation Neue Produkte GmbH" },
+ { { 0x8C, 0x1F, 0x64, 0x5E, 0x80 }, "SternaSecuri", "Sterna Security Devices Pvt Ltd" },
{ { 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." },
{ { 0x8C, 0x1F, 0x64, 0x5F, 0xA0 }, "PolCamSp", "PolCam Systems Sp. z o.o." },
+ { { 0x8C, 0x1F, 0x64, 0x5F, 0xB0 }, "Recom", "Recom Llc." },
{ { 0x8C, 0x1F, 0x64, 0x5F, 0xC0 }, "LanceDesign", "Lance Design LLC" },
{ { 0x8C, 0x1F, 0x64, 0x60, 0x00 }, "AnhuiChaokun", "Anhui Chaokun Testing Equipment Co., Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x60, 0x10 }, "Camius", "Camius" },
@@ -49453,6 +50351,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x63, 0x60 }, "EuropeTrade", "Europe Trade" },
{ { 0x8C, 0x1F, 0x64, 0x63, 0x80 }, "ThunderDataT", "Thunder Data Taiwan Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x63, 0xB0 }, "Tiama", "Tiama" },
+ { { 0x8C, 0x1F, 0x64, 0x63, 0xC0 }, "Galios", "Galios" },
{ { 0x8C, 0x1F, 0x64, 0x63, 0xD0 }, "RaxTechInter", "Rax-Tech International" },
{ { 0x8C, 0x1F, 0x64, 0x63, 0xF0 }, "PreoIndustri", "Preo Industries Far East Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x64, 0x10 }, "biosilver", "biosilver.co.,ltd" },
@@ -49472,8 +50371,10 @@ 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, 0xE0 }, "Monnit", "Monnit Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x66, 0xF0 }, "Elix", "Elix Systems SA" },
{ { 0x8C, 0x1F, 0x64, 0x67, 0x20 }, "Farmobile", "Farmobile LLC" },
{ { 0x8C, 0x1F, 0x64, 0x67, 0x30 }, "MEDIASCOPE", "MEDIASCOPE Inc." },
@@ -49482,13 +50383,17 @@ 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" },
- { { 0x8C, 0x1F, 0x64, 0x68, 0x50 }, "SancharCommu", "Sanchar Communication Systems" },
+ { { 0x8C, 0x1F, 0x64, 0x68, 0x50 }, "SancharWirel", "Sanchar Wireless Communications Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x68, 0xC0 }, "GuangZhouHOK", "GuangZhou HOKO Electric CO.,LTD" },
{ { 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, 0x50 }, "aeroLiFi", "aeroLiFi GmbH" },
+ { { 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 +50401,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 +50422,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" },
@@ -49530,16 +50441,21 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x70, 0xB0 }, "Onicon", "Onicon" },
{ { 0x8C, 0x1F, 0x64, 0x70, 0xE0 }, "OvercomTech", "OvercomTech" },
{ { 0x8C, 0x1F, 0x64, 0x71, 0x20 }, "NexionDataPL", "Nexion Data Systems P/L" },
+ { { 0x8C, 0x1F, 0x64, 0x71, 0x50 }, "InternetProt", "Internet Protocolo Logica Sl" },
{ { 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" },
{ { 0x8C, 0x1F, 0x64, 0x72, 0xC0 }, "Antaitechnol", "Antai technology Co.,Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x72, 0xD0 }, "HillsHealthS", "Hills Health Solutions" },
{ { 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 +50466,15 @@ 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, 0xC0 }, "AmericanEner", "American Energy Storage Innovations" },
{ { 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 +50484,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 +50499,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" },
@@ -49617,17 +50539,22 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x7E, 0x70 }, "robertjuliat", "robert juliat" },
{ { 0x8C, 0x1F, 0x64, 0x7E, 0xC0 }, "Methods2Busi", "Methods2Business B.V." },
{ { 0x8C, 0x1F, 0x64, 0x7E, 0xE0 }, "OrangePrecis", "Orange Precision Measurement LLC" },
+ { { 0x8C, 0x1F, 0x64, 0x7E, 0xF0 }, "SAXOGYPOWERE", "SAXOGY POWER ELECTRONICS GmbH" },
{ { 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 +50578,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 +50596,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." },
@@ -49679,21 +50609,26 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x8A, 0x80 }, "Massachusett", "Massachusetts Institute of Technology" },
{ { 0x8C, 0x1F, 0x64, 0x8A, 0x90 }, "GuanShowTech", "Guan Show Technologe Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x8A, 0xA0 }, "ForeverEngin", "Forever Engineering Systems Pvt. Ltd." },
+ { { 0x8C, 0x1F, 0x64, 0x8A, 0xB0 }, "AsmlUsLp", "Asml Us, Lp" },
{ { 0x8C, 0x1F, 0x64, 0x8A, 0xC0 }, "BOZHONPrecis", "BOZHON Precision Industry Technology Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x8A, 0xE0 }, "QunfangTechn", "Shenzhen Qunfang Technology Co., LTD." },
{ { 0x8C, 0x1F, 0x64, 0x8A, 0xF0 }, "Ibeos", "Ibeos" },
{ { 0x8C, 0x1F, 0x64, 0x8B, 0x20 }, "AbbottDiagno", "Abbott Diagnostics Technologies AS" },
{ { 0x8C, 0x1F, 0x64, 0x8B, 0x50 }, "AshtonBentle", "Ashton Bentley Collaboration Spaces" },
+ { { 0x8C, 0x1F, 0x64, 0x8B, 0x60 }, "AXISSp", "AXIS Sp z o.o." },
{ { 0x8C, 0x1F, 0x64, 0x8B, 0x80 }, "WienEnergie", "Wien Energie GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x8B, 0x90 }, "ZynexMonitor", "Zynex Monitoring Solutions" },
{ { 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, 0x80 }, "Mbv", "Mbv Ag" },
{ { 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 +50636,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 +50662,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 +50679,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 +50702,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 +50710,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 +50731,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 +50745,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" },
@@ -49815,10 +50758,13 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x9F, 0xF0 }, "Satelles", "Satelles Inc" },
{ { 0x8C, 0x1F, 0x64, 0xA0, 0x00 }, "BITECHNIK", "BITECHNIK GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xA0, 0x10 }, "GuanShowTech", "Guan Show Technologe Co., Ltd." },
+ { { 0x8C, 0x1F, 0x64, 0xA0, 0x60 }, "secutech", "secutech Co.,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xA0, 0x70 }, "GJDManufactu", "GJD Manufacturing" },
{ { 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, 0x20 }, "FUJIHENSOKUK", "FUJIHENSOKUKI Co., Ltd." },
+ { { 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 +50791,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" },
@@ -49855,9 +50802,11 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xA8, 0x10 }, "3Dperception", "3D perception AS" },
{ { 0x8C, 0x1F, 0x64, 0xA8, 0x30 }, "EkspertStroy", "EkspertStroyProekt" },
{ { 0x8C, 0x1F, 0x64, 0xA8, 0x40 }, "WenriseTechn", "Beijing Wenrise Technology Co., Ltd." },
+ { { 0x8C, 0x1F, 0x64, 0xA8, 0x60 }, "GlobalDesign", "Global Design Tech(ZS) Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xA8, 0x70 }, "MorgenTechno", "Morgen Technology" },
{ { 0x8C, 0x1F, 0x64, 0xA8, 0x90 }, "MitsubishiEl", "Mitsubishi Electric India Pvt. Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xA9, 0x10 }, "InfinitiveGr", "Infinitive Group Limited" },
+ { { 0x8C, 0x1F, 0x64, 0xA9, 0x20 }, "AgrologyPBC", "Agrology, PBC" },
{ { 0x8C, 0x1F, 0x64, 0xA9, 0x40 }, "Futurewaveul", "Future wave ultra tech Company" },
{ { 0x8C, 0x1F, 0x64, 0xA9, 0x70 }, "Integerpl", "Integer.pl S.A." },
{ { 0x8C, 0x1F, 0x64, 0xA9, 0x80 }, "JacobsTechno", "Jacobs Technology, Inc." },
@@ -49865,6 +50814,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xA9, 0xB0 }, "OvideMaudetS", "Ovide Maudet SL" },
{ { 0x8C, 0x1F, 0x64, 0xA9, 0xC0 }, "UpstartPower", "Upstart Power" },
{ { 0x8C, 0x1F, 0x64, 0xA9, 0xE0 }, "OptimumInstr", "Optimum Instruments Inc." },
+ { { 0x8C, 0x1F, 0x64, 0xAA, 0x00 }, "FlextronicsI", "Flextronics International Kft" },
{ { 0x8C, 0x1F, 0x64, 0xAA, 0x30 }, "PeterHuberKa", "Peter Huber Kaeltemaschinenbau SE" },
{ { 0x8C, 0x1F, 0x64, 0xAA, 0x40 }, "HEINENELEKTR", "HEINEN ELEKTRONIK GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xAA, 0x80 }, "axelife", "axelife" },
@@ -49872,19 +50822,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 +50847,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 +50865,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,7 +50884,9 @@ 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, 0xB4, 0xF0 }, "VaunixTechno", "Vaunix Technology Corporation" },
{ { 0x8C, 0x1F, 0x64, 0xB5, 0x50 }, "SancharTeles", "Sanchar Telesystems limited" },
{ { 0x8C, 0x1F, 0x64, 0xB5, 0x60 }, "Arcvideo", "Arcvideo" },
{ { 0x8C, 0x1F, 0x64, 0xB5, 0xA0 }, "YUYAMAMFG", "YUYAMA MFG Co.,Ltd" },
@@ -49945,7 +50905,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 +50913,20 @@ 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, 0x90 }, "SmartDTechno", "SmartD Technologies Inc" },
{ { 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,28 +50936,35 @@ 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, 0x20 }, "attocube", "attocube systems AG" },
{ { 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." },
{ { 0x8C, 0x1F, 0x64, 0xBE, 0xE0 }, "Sirius", "Sirius LLC" },
+ { { 0x8C, 0x1F, 0x64, 0xBE, 0xF0 }, "TriumphSEC", "Triumph SEC" },
{ { 0x8C, 0x1F, 0x64, 0xBF, 0x00 }, "Newtec", "Newtec A/S" },
{ { 0x8C, 0x1F, 0x64, 0xBF, 0x10 }, "SohaJin", "Soha Jin" },
{ { 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" },
@@ -50024,6 +50995,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xC4, 0x20 }, "SdOptics", "Sd Optics" },
{ { 0x8C, 0x1F, 0x64, 0xC4, 0x30 }, "SmartlogTech", "Shenzhen Smartlog Technologies Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xC4, 0x40 }, "SyprisElectr", "Sypris Electronics" },
+ { { 0x8C, 0x1F, 0x64, 0xC4, 0x50 }, "FlextroincsI", "Flextroincs International (Taiwain Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xC4, 0xA0 }, "SGiTechnolog", "SGi Technology Group Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xC4, 0xC0 }, "LumiplanDuha", "Lumiplan Duhamel" },
{ { 0x8C, 0x1F, 0x64, 0xC5, 0x00 }, "Spacee", "Spacee" },
@@ -50033,7 +51005,9 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xC5, 0x70 }, "StrategicRob", "Strategic Robotic Systems" },
{ { 0x8C, 0x1F, 0x64, 0xC5, 0x90 }, "Tunstall", "Tunstall A/S" },
{ { 0x8C, 0x1F, 0x64, 0xC5, 0xD0 }, "AlfaProximad", "Alfa Proxima d.o.o." },
+ { { 0x8C, 0x1F, 0x64, 0xC5, 0xE0 }, "YUYAMAMFG", "YUYAMA MFG Co.,Ltd" },
{ { 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" },
@@ -50042,6 +51016,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xC7, 0x10 }, "Yaviar", "Yaviar LLC" },
{ { 0x8C, 0x1F, 0x64, 0xC7, 0xB0 }, "FreedomAtlan", "Freedom Atlantic" },
{ { 0x8C, 0x1F, 0x64, 0xC7, 0xC0 }, "MERKLESchwei", "MERKLE Schweissanlagen-Technik GmbH" },
+ { { 0x8C, 0x1F, 0x64, 0xC7, 0xD0 }, "GlassonElect", "Glasson Electronics Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xC8, 0x00 }, "VECOSEurope", "VECOS Europe B.V." },
{ { 0x8C, 0x1F, 0x64, 0xC8, 0x10 }, "TaolinkTechn", "Taolink Technologies Corporation" },
{ { 0x8C, 0x1F, 0x64, 0xC8, 0x30 }, "PowerElectro", "Power Electronics Espana, S.L." },
@@ -50050,10 +51025,14 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xC8, 0xF0 }, "JWFroehlichM", "JW Froehlich Maschinenfabrik GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xC9, 0x10 }, "SoehnleIndus", "Soehnle Industrial Solutions GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xC9, 0x20 }, "EQEarthquake", "EQ Earthquake Ltd." },
+ { { 0x8C, 0x1F, 0x64, 0xC9, 0x60 }, "SmartDataInt", "Smart Data (Shenzhen) Intelligent System Co., Ltd." },
{ { 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" },
@@ -50063,6 +51042,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xCA, 0xF0 }, "BRSSistemasE", "BRS Sistemas Eletrônicos" },
{ { 0x8C, 0x1F, 0x64, 0xCB, 0x20 }, "DyncirSoluçõ", "Dyncir Soluções Tecnológicas Ltda" },
{ { 0x8C, 0x1F, 0x64, 0xCB, 0x50 }, "GamberJohnso", "Gamber-Johnson LLC" },
+ { { 0x8C, 0x1F, 0x64, 0xCB, 0x60 }, "RowanElettro", "Rowan Elettronica Srl" },
{ { 0x8C, 0x1F, 0x64, 0xCB, 0x70 }, "ARKRAYKyotoL", "ARKRAY,Inc.Kyoto Laboratory" },
{ { 0x8C, 0x1F, 0x64, 0xCB, 0x90 }, "iCHaus", "iC-Haus GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xCB, 0xB0 }, "MarisTech", "Maris Tech Ltd." },
@@ -50072,6 +51052,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 +51064,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." },
@@ -50099,13 +51081,17 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xD0, 0x90 }, "MinartimeSci", "Minartime(Beijing)Science &Technology Development Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xD0, 0xE0 }, "Labforge", "Labforge Inc." },
{ { 0x8C, 0x1F, 0x64, 0xD0, 0xF0 }, "Mecco", "Mecco LLC" },
+ { { 0x8C, 0x1F, 0x64, 0xD1, 0x10 }, "Benetel", "Benetel" },
{ { 0x8C, 0x1F, 0x64, 0xD1, 0x30 }, "EYatskoIndiv", "EYatsko Individual" },
{ { 0x8C, 0x1F, 0x64, 0xD1, 0x70 }, "IAltanovagro", "I.S.A. - Altanova group srl" },
+ { { 0x8C, 0x1F, 0x64, 0xD1, 0xB0 }, "AudiodoInter", "Audiodo International AB" },
+ { { 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." },
{ { 0x8C, 0x1F, 0x64, 0xD2, 0x90 }, "SecureBits", "Secure Bits" },
{ { 0x8C, 0x1F, 0x64, 0xD2, 0xA0 }, "AnteusKft", "Anteus Kft." },
+ { { 0x8C, 0x1F, 0x64, 0xD2, 0xD0 }, "Eskomar", "Eskomar Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xD3, 0x40 }, "Kronotech", "Kronotech Srl" },
{ { 0x8C, 0x1F, 0x64, 0xD3, 0x80 }, "CuuLongTechn", "Cuu Long Technology And Trading Company Limited" },
{ { 0x8C, 0x1F, 0x64, 0xD3, 0xA0 }, "AppliedMater", "Applied Materials" },
@@ -50115,18 +51101,22 @@ 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" },
+ { { 0x8C, 0x1F, 0x64, 0xD7, 0x00 }, "BeyondLaser", "Beyond Laser Systems LLC" },
{ { 0x8C, 0x1F, 0x64, 0xD7, 0x30 }, "BRSSistemasE", "BRS Sistemas Eletrônicos" },
{ { 0x8C, 0x1F, 0x64, 0xD7, 0x40 }, "TexComputer", "Tex Computer Srl" },
{ { 0x8C, 0x1F, 0x64, 0xD7, 0x80 }, "HunanOushiEl", "Hunan Oushi Electronic Technology Co.,Ltd" },
@@ -50134,6 +51124,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 +51138,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" },
@@ -50158,8 +51151,11 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xDB, 0x90 }, "ErmesElettro", "Ermes Elettronica s.r.l." },
{ { 0x8C, 0x1F, 0x64, 0xDB, 0xA0 }, "ElectronicEq", "Electronic Equipment Company Pvt. Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xDB, 0xD0 }, "GiordanoCont", "Giordano Controls Spa" },
+ { { 0x8C, 0x1F, 0x64, 0xDB, 0xF0 }, "RuggedContro", "Rugged Controls" },
{ { 0x8C, 0x1F, 0x64, 0xDC, 0x00 }, "PigsCanFlyLa", "Pigs Can Fly Labs LLC" },
{ { 0x8C, 0x1F, 0x64, 0xDC, 0x20 }, "ProconElectr", "Procon Electronics Pty Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0xDC, 0x60 }, "R&K", "R&K" },
+ { { 0x8C, 0x1F, 0x64, 0xDC, 0x80 }, "DwdmRu", "Dwdm.Ru Llc" },
{ { 0x8C, 0x1F, 0x64, 0xDC, 0x90 }, "PeterHuberKa", "Peter Huber Kaeltemaschinenbau SE" },
{ { 0x8C, 0x1F, 0x64, 0xDC, 0xA0 }, "Porscheengin", "Porsche engineering" },
{ { 0x8C, 0x1F, 0x64, 0xDD, 0x40 }, "MidlandsTech", "Midlands Technical Co., Ltd." },
@@ -50181,9 +51177,13 @@ 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, 0x50 }, "Panascaisehf", "Panascais ehf." },
{ { 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 +51192,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 +51216,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" },
@@ -50222,6 +51226,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xE7, 0xC0 }, "AshinneTechn", "Ashinne Technology Co., Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xE8, 0x00 }, "PowerElectro", "Power Electronics Espana, S.L." },
{ { 0x8C, 0x1F, 0x64, 0xE8, 0x60 }, "ComVetia", "ComVetia AG" },
+ { { 0x8C, 0x1F, 0x64, 0xE8, 0xA0 }, "ChangzhouMIT", "Changzhou MITO electronics Technology Co;LTD" },
{ { 0x8C, 0x1F, 0x64, 0xE8, 0xB0 }, "TelevicRail", "Televic Rail GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xE8, 0xD0 }, "Plura", "Plura" },
{ { 0x8C, 0x1F, 0x64, 0xE8, 0xF0 }, "JieChuangHeY", "JieChuang HeYi(Beijing) Technology Co., Ltd." },
@@ -50238,12 +51243,14 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xEB, 0x70 }, "DeltaSolutio", "Delta Solutions LLC" },
{ { 0x8C, 0x1F, 0x64, 0xEB, 0x90 }, "KxSTechnolog", "KxS Technologies Oy" },
{ { 0x8C, 0x1F, 0x64, 0xEB, 0xA0 }, "HyveSolution", "Hyve Solutions" },
+ { { 0x8C, 0x1F, 0x64, 0xEB, 0xD0 }, "EspritDigita", "Esprit Digital Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xEB, 0xF0 }, "STEAMIQ", "STEAMIQ, Inc." },
{ { 0x8C, 0x1F, 0x64, 0xEC, 0x10 }, "ActronikaSAS", "Actronika SAS" },
{ { 0x8C, 0x1F, 0x64, 0xEC, 0xC0 }, "BaldwinJimek", "Baldwin Jimek AB" },
{ { 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" },
@@ -50256,8 +51263,10 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xEF, 0x50 }, "SigmaDefense", "Sigma Defense Systems LLC" },
{ { 0x8C, 0x1F, 0x64, 0xEF, 0x80 }, "NorthwestCen", "Northwest Central Indiana Community Partnerships Inc dba Wabash Heartland Innovation Network (WHIN)" },
{ { 0x8C, 0x1F, 0x64, 0xEF, 0xB0 }, "Warecube", "Warecube,Inc" },
+ { { 0x8C, 0x1F, 0x64, 0xEF, 0xD0 }, "NovateraTech", "Novatera(Shenzhen)Technologies Co.,Ltd." },
{ { 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 +51317,9 @@ 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, 0xC0 }, "GeneralDynam", "General Dynamics IT" },
+ { { 0x8C, 0x1F, 0x64, 0xF7, 0xD0 }, "RpgInformati", "Rpg Informatica, S.A." },
+ { { 0x8C, 0x1F, 0x64, 0xF7, 0xF0 }, "VisionSafety", "Vision Systems Safety Tech" },
{ { 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 +51362,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 +51370,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 c4bcb4d..19b54bc 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)) {
@@ -3172,6 +3165,17 @@ register_heur_dissector_list(const char *name, const int proto)
return sub_dissectors;
}
+void
+deregister_heur_dissector_list(const char *name)
+{
+ heur_dissector_list_t sub_dissectors = find_heur_dissector_list(name);
+ if (sub_dissectors == NULL) {
+ return;
+ }
+
+ g_hash_table_remove(heur_dissector_lists, name);
+}
+
/*
* Register dissectors by name; used if one dissector always calls a
* particular dissector, or if it bases the decision of which dissector
@@ -3436,7 +3440,6 @@ deregister_dissector(const char *name)
g_hash_table_remove(registered_dissectors, name);
g_hash_table_remove(depend_dissector_lists, name);
g_hash_table_foreach(depend_dissector_lists, remove_depend_dissector_ghfunc, (gpointer)name);
- g_hash_table_remove(heur_dissector_lists, name);
destroy_dissector_handle(handle);
}
@@ -3917,6 +3920,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 6312798..80003c6 100644
--- a/epan/packet.h
+++ b/epan/packet.h
@@ -471,11 +471,14 @@ typedef struct heur_dtbl_entry {
/** A protocol uses this function to register a heuristic sub-dissector list.
* Call this in the parent dissectors proto_register function.
*
- * @param name the name of this protocol
+ * @param name a unique short name for the list
* @param proto the value obtained when registering the protocol
*/
WS_DLL_PUBLIC heur_dissector_list_t register_heur_dissector_list(const char *name, const int proto);
+/** Deregister a heuristic dissector list by unique short name. */
+void deregister_heur_dissector_list(const char *name);
+
typedef void (*DATFunc_heur) (const gchar *table_name,
struct heur_dtbl_entry *entry, gpointer user_data);
typedef void (*DATFunc_heur_table) (const char *table_name,
@@ -887,6 +890,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 788deec..d1e8a20 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 77697ca..6758407 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.04.20
+ * Date: 2024-04-20 03:15:02
*
* 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)"},
@@ -591,6 +609,7 @@ pci_id_t pci_vid_1000[] = {
{0x1000, 0x0054, 0x1028, 0x1F07, "SAS 5/iR Integrated RAID Controller(0x1028-0x1F07)"},
{0x1000, 0x0054, 0x1028, 0x1F08, "SAS 5/iR Integrated RAID Controller(0x1028-0x1F08)"},
{0x1000, 0x0054, 0x1028, 0x1F09, "SAS 5/iR Adapter RAID Controller(0x1028-0x1F09)"},
+{0x1000, 0x0054, 0x103C, 0x3228, "SAS3080X-HP 8-port PCI-X 133MHz Host Bus Adapter with 2xSFF-8484(0x103C-0x3228)"},
{0x1000, 0x0054, 0x15AD, 0x1976, "SAS Controller(0x15AD-0x1976)"},
{0x1000, 0x0055, 0xFFFF, 0xFFFF, "SAS1068 PCI-X Fusion-MPT SAS(0x0055)"},
{0x1000, 0x0055, 0x1033, 0x8336, "SAS1068(0x1033-0x8336)"},
@@ -899,7 +918,7 @@ pci_id_t pci_vid_1000[] = {
{0x1000, 0x0097, 0x1BD4, 0x0026, "12G SAS3008IT RACK(0x1BD4-0x0026)"},
{0x1000, 0x0097, 0x1BD4, 0x0027, "12G SAS3008IMR RACK(0x1BD4-0x0027)"},
{0x1000, 0x0097, 0x1BD4, 0x0028, "12G SAS3008IR RACK(0x1BD4-0x0028)"},
-{0x1000, 0x00A5, 0xFFFF, 0xFFFF, "Fusion-MPT 24GSAS/PCIe SAS40xx(0x00A5)"},
+{0x1000, 0x00A5, 0xFFFF, 0xFFFF, "Fusion-MPT 24GSAS/PCIe SAS40xx/41xx(0x00A5)"},
{0x1000, 0x00A5, 0x1000, 0x4600, "MegaRAID 9670W-16i Tri-Mode Storage Adapter(0x1000-0x4600)"},
{0x1000, 0x00A5, 0x1000, 0x4610, "MegaRAID 9670-24i Tri-Mode Storage Adapter(0x1000-0x4610)"},
{0x1000, 0x00A5, 0x1000, 0x4620, "MegaRAID 9660-16i Tri-Mode Storage Adapter(0x1000-0x4620)"},
@@ -964,6 +983,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 +1201,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 +1222,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 +1265,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 +1278,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 +1310,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 +2860,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 +3851,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)"},
@@ -3825,6 +3859,7 @@ pci_id_t pci_vid_1002[] = {
{0x1002, 0x699F, 0xFFFF, 0xFFFF, "Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X](0x699F)"},
{0x1002, 0x699F, 0x1028, 0x1720, "Radeon RX 550X(0x1028-0x1720)"},
{0x1002, 0x699F, 0x148C, 0x2380, "Lexa XL [Radeon RX 550](0x148C-0x2380)"},
+{0x1002, 0x699F, 0x17AA, 0x5069, "Thinkpad E480/E580(0x17AA-0x5069)"},
{0x1002, 0x699F, 0x1DA2, 0xE367, "Lexa PRO [Radeon RX 550](0x1DA2-0xE367)"},
{0x1002, 0x69A0, 0xFFFF, 0xFFFF, "Vega 12(0x69A0)"},
{0x1002, 0x69A1, 0xFFFF, 0xFFFF, "Vega 12(0x69A1)"},
@@ -4006,8 +4041,10 @@ pci_id_t pci_vid_1002[] = {
{0x1002, 0x73A3, 0xFFFF, 0xFFFF, "Navi 21 GL-XL [Radeon PRO W6800](0x73A3)"},
{0x1002, 0x73A4, 0xFFFF, 0xFFFF, "Navi 21 USB(0x73A4)"},
{0x1002, 0x73A5, 0xFFFF, 0xFFFF, "Navi 21 [Radeon RX 6950 XT](0x73A5)"},
+{0x1002, 0x73A5, 0x1002, 0x0E3A, "Radeon RX 6950 XT(0x1002-0x0E3A)"},
{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,11 +4064,14 @@ 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)"},
+{0x1002, 0x73DF, 0x1EAE, 0x661A, "Radeon RX 6700 [SPEEDSTER SWFT 309](0x1EAE-0x661A)"},
{0x1002, 0x73E0, 0xFFFF, 0xFFFF, "Navi 23(0x73E0)"},
{0x1002, 0x73E1, 0xFFFF, 0xFFFF, "Navi 23 WKS-XM [Radeon PRO W6600M](0x73E1)"},
{0x1002, 0x73E3, 0xFFFF, 0xFFFF, "Navi 23 WKS-XL [Radeon PRO W6600](0x73E3)"},
@@ -4057,17 +4097,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 +4485,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 +4530,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 +4572,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 +4583,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 +4642,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 +4652,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 +4664,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 +4774,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 +4835,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 +5001,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 +5043,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 +5063,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 +5096,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 +5555,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 +5569,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 +5582,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 +5625,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)"},
@@ -5748,9 +5797,10 @@ pci_id_t pci_vid_1022[] = {
{0x1022, 0x9609, 0xFFFF, 0xFFFF, "RS780/RS880 PCI to PCI bridge (PCIE port 5)(0x9609)"},
{0x1022, 0x960A, 0xFFFF, 0xFFFF, "RS780 PCI to PCI bridge (NB-SB link)(0x960A)"},
{0x1022, 0x960B, 0xFFFF, 0xFFFF, "RS780 PCI to PCI bridge (ext gfx port 1)(0x960B)"},
+{0x1022, 0xB000, 0xFFFF, 0xFFFF, "RAID Bottom Device(0xB000)"},
}; /* 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 +5859,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 +5928,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 +5979,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 +5998,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 +6304,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 +6333,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 +6363,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 +6375,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 +6460,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 +6671,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 +6829,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 +6854,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 +6864,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 +6911,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 +6938,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 +6956,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 +6993,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 +7293,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 +7339,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 +7353,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 +7380,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 +7412,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 +7423,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 +7515,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 +7609,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 +7659,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 +7693,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 +7727,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 +7735,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 +7767,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 +7854,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 +7864,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 +7920,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 +8195,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 +8211,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 +8252,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 +8306,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 +8333,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 +8394,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 +8418,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 +8445,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 +9229,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 +9272,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 +9499,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 +9577,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 +9602,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)"},
@@ -9689,6 +9740,7 @@ pci_id_t pci_vid_10B5[] = {
{0x10B5, 0x87D0, 0xFFFF, 0xFFFF, "PEX PCI Express Switch DMA interface(0x87D0)"},
{0x10B5, 0x9016, 0xFFFF, 0xFFFF, "PLX 9016 8-port serial controller(0x9016)"},
{0x10B5, 0x9030, 0xFFFF, 0xFFFF, "PCI9030 32-bit 33MHz PCI <-> IOBus Bridge(0x9030)"},
+{0x10B5, 0x9030, 0x10B5, 0x1205, "Becker & Hickl MSA-1000(0x10B5-0x1205)"},
{0x10B5, 0x9030, 0x10B5, 0x2695, "Hilscher CIF50-PB/DPS Profibus(0x10B5-0x2695)"},
{0x10B5, 0x9030, 0x10B5, 0x2862, "Alpermann+Velte PCL PCI LV (3V/5V): Timecode Reader Board(0x10B5-0x2862)"},
{0x10B5, 0x9030, 0x10B5, 0x2906, "Alpermann+Velte PCI TS (3V/5V): Time Synchronisation Board(0x10B5-0x2906)"},
@@ -9723,7 +9775,13 @@ pci_id_t pci_vid_10B5[] = {
{0x10B5, 0x9050, 0x10B5, 0x1067, "IXXAT CAN i165(0x10B5-0x1067)"},
{0x10B5, 0x9050, 0x10B5, 0x114E, "Wasco WITIO PCI168extended(0x10B5-0x114E)"},
{0x10B5, 0x9050, 0x10B5, 0x1169, "Wasco OPTOIO32standard 32 digital in, 32 digital out(0x10B5-0x1169)"},
+{0x10B5, 0x9050, 0x10B5, 0x1171, "Becker & Hickl PMS-400(0x10B5-0x1171)"},
{0x10B5, 0x9050, 0x10B5, 0x1172, "IK220 (Heidenhain)(0x10B5-0x1172)"},
+{0x10B5, 0x9050, 0x10B5, 0x1201, "Becker & Hickl SPC-6x0(0x10B5-0x1201)"},
+{0x10B5, 0x9050, 0x10B5, 0x1202, "Becker & Hickl SPC-7x0(0x10B5-0x1202)"},
+{0x10B5, 0x9050, 0x10B5, 0x1203, "Becker & Hickl MSA-300(0x10B5-0x1203)"},
+{0x10B5, 0x9050, 0x10B5, 0x1206, "Becker & Hickl DCC-100(0x10B5-0x1206)"},
+{0x10B5, 0x9050, 0x10B5, 0x120A, "Becker & Hickl STP-340(0x10B5-0x120A)"},
{0x10B5, 0x9050, 0x10B5, 0x2036, "SatPak GPS(0x10B5-0x2036)"},
{0x10B5, 0x9050, 0x10B5, 0x2221, "Alpermann+Velte PCL PCI LV: Timecode Reader Board(0x10B5-0x2221)"},
{0x10B5, 0x9050, 0x10B5, 0x2273, "SH ARC-PCI SOHARD ARCNET card(0x10B5-0x2273)"},
@@ -9771,6 +9829,11 @@ pci_id_t pci_vid_10B5[] = {
{0x10B5, 0x9050, 0xD84D, 0x4078, "EX-4078 2S(16C552) RS-232+1P(0xD84D-0x4078)"},
{0x10B5, 0x9052, 0xFFFF, 0xFFFF, "PCI9052 PCI <-> IOBus Bridge(0x9052)"},
{0x10B5, 0x9054, 0xFFFF, 0xFFFF, "PCI9054 32-bit 33MHz PCI <-> IOBus Bridge(0x9054)"},
+{0x10B5, 0x9054, 0x10B5, 0x1171, "Becker & Hickl PMS-400A(0x10B5-0x1171)"},
+{0x10B5, 0x9054, 0x10B5, 0x1208, "Becker & Hickl SPC-830(0x10B5-0x1208)"},
+{0x10B5, 0x9054, 0x10B5, 0x120E, "Becker & Hickl SPC-930(0x10B5-0x120E)"},
+{0x10B5, 0x9054, 0x10B5, 0x120F, "Becker & Hickl SPC-150(0x10B5-0x120F)"},
+{0x10B5, 0x9054, 0x10B5, 0x1210, "Becker & Hickl DPC-230(0x10B5-0x1210)"},
{0x10B5, 0x9054, 0x10B5, 0x2455, "Wessex Techology PHIL-PCI(0x10B5-0x2455)"},
{0x10B5, 0x9054, 0x10B5, 0x2696, "Innes Corp AM Radcap card(0x10B5-0x2696)"},
{0x10B5, 0x9054, 0x10B5, 0x2717, "Innes Corp Auricon card(0x10B5-0x2717)"},
@@ -9845,7 +9908,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 +9936,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 +10071,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 +10095,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 +10219,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 +10228,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 +10332,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 +10362,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 +10383,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 +10426,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 +10445,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 +11049,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 +12344,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)"},
@@ -12335,6 +12400,9 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x0F02, 0xFFFF, 0xFFFF, "GF108 [GeForce GT 730](0x0F02)"},
{0x10DE, 0x0F03, 0xFFFF, 0xFFFF, "GF108 [GeForce GT 610](0x0F03)"},
{0x10DE, 0x0F06, 0xFFFF, 0xFFFF, "GF108 [GeForce GT 730](0x0F06)"},
+{0x10DE, 0x0FA0, 0xFFFF, 0xFFFF, "GK11x [GK11x_FPGA](0x0FA0)"},
+{0x10DE, 0x0FA5, 0xFFFF, 0xFFFF, "GK11x(0x0FA5)"},
+{0x10DE, 0x0FA7, 0xFFFF, 0xFFFF, "GK11x [Tegra on x86 (PEATRANS)](0x0FA7)"},
{0x10DE, 0x0FB0, 0xFFFF, 0xFFFF, "GM200 High Definition Audio(0x0FB0)"},
{0x10DE, 0x0FB8, 0xFFFF, 0xFFFF, "GP108 High Definition Audio Controller(0x0FB8)"},
{0x10DE, 0x0FB9, 0xFFFF, 0xFFFF, "GP107GL High Definition Audio Controller(0x0FB9)"},
@@ -12344,13 +12412,18 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x0FC0, 0xFFFF, 0xFFFF, "GK107 [GeForce GT 640 OEM](0x0FC0)"},
{0x10DE, 0x0FC1, 0xFFFF, 0xFFFF, "GK107 [GeForce GT 640](0x0FC1)"},
{0x10DE, 0x0FC2, 0xFFFF, 0xFFFF, "GK107 [GeForce GT 630 OEM](0x0FC2)"},
+{0x10DE, 0x0FC4, 0xFFFF, 0xFFFF, "GK107 [D14P1-15](0x0FC4)"},
{0x10DE, 0x0FC5, 0xFFFF, 0xFFFF, "GK107 [GeForce GT 1030](0x0FC5)"},
{0x10DE, 0x0FC6, 0xFFFF, 0xFFFF, "GK107 [GeForce GTX 650](0x0FC6)"},
{0x10DE, 0x0FC6, 0x1043, 0x8428, "GTX650-DC-1GD5(0x1043-0x8428)"},
{0x10DE, 0x0FC8, 0xFFFF, 0xFFFF, "GK107 [GeForce GT 740](0x0FC8)"},
{0x10DE, 0x0FC9, 0xFFFF, 0xFFFF, "GK107 [GeForce GT 730](0x0FC9)"},
+{0x10DE, 0x0FCB, 0xFFFF, 0xFFFF, "GK107 [EXK107](0x0FCB)"},
+{0x10DE, 0x0FCC, 0xFFFF, 0xFFFF, "GK107 [GeForce GT 720](0x0FCC)"},
{0x10DE, 0x0FCD, 0xFFFF, 0xFFFF, "GK107M [GeForce GT 755M](0x0FCD)"},
{0x10DE, 0x0FCE, 0xFFFF, 0xFFFF, "GK107M [GeForce GT 640M LE](0x0FCE)"},
+{0x10DE, 0x0FCF, 0xFFFF, 0xFFFF, "GK107 [GEN3 ESI](0x0FCF)"},
+{0x10DE, 0x0FD0, 0xFFFF, 0xFFFF, "GK107 [NB1G](0x0FD0)"},
{0x10DE, 0x0FD1, 0xFFFF, 0xFFFF, "GK107M [GeForce GT 650M](0x0FD1)"},
{0x10DE, 0x0FD1, 0x1043, 0x1597, "GeForce GT 650M(0x1043-0x1597)"},
{0x10DE, 0x0FD1, 0x1043, 0x15A7, "GeForce GT 650M(0x1043-0x15A7)"},
@@ -12365,10 +12438,15 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x0FD3, 0xFFFF, 0xFFFF, "GK107M [GeForce GT 640M LE](0x0FD3)"},
{0x10DE, 0x0FD4, 0xFFFF, 0xFFFF, "GK107M [GeForce GTX 660M](0x0FD4)"},
{0x10DE, 0x0FD5, 0xFFFF, 0xFFFF, "GK107M [GeForce GT 650M Mac Edition](0x0FD5)"},
-{0x10DE, 0x0FD6, 0xFFFF, 0xFFFF, "GK107M(0x0FD6)"},
+{0x10DE, 0x0FD6, 0xFFFF, 0xFFFF, "GK107M [N13P-GS-W](0x0FD6)"},
+{0x10DE, 0x0FD7, 0xFFFF, 0xFFFF, "GK107 [GK107-GTX](0x0FD7)"},
{0x10DE, 0x0FD8, 0xFFFF, 0xFFFF, "GK107M [GeForce GT 640M Mac Edition](0x0FD8)"},
{0x10DE, 0x0FD9, 0xFFFF, 0xFFFF, "GK107M [GeForce GT 645M](0x0FD9)"},
-{0x10DE, 0x0FDB, 0xFFFF, 0xFFFF, "GK107M(0x0FDB)"},
+{0x10DE, 0x0FDA, 0xFFFF, 0xFFFF, "GK107 [GK107-ES-A1](0x0FDA)"},
+{0x10DE, 0x0FDB, 0xFFFF, 0xFFFF, "GK107 [GK107-ESP-A1](0x0FDB)"},
+{0x10DE, 0x0FDC, 0xFFFF, 0xFFFF, "GK107 [GK107-INT22-A1](0x0FDC)"},
+{0x10DE, 0x0FDD, 0xFFFF, 0xFFFF, "GK107 [GK107-INT11-A1](0x0FDD)"},
+{0x10DE, 0x0FDE, 0xFFFF, 0xFFFF, "GK107 [GK107-ES-KA-E1](0x0FDE)"},
{0x10DE, 0x0FDF, 0xFFFF, 0xFFFF, "GK107M [GeForce GT 740M](0x0FDF)"},
{0x10DE, 0x0FE0, 0xFFFF, 0xFFFF, "GK107M [GeForce GTX 660M Mac Edition](0x0FE0)"},
{0x10DE, 0x0FE1, 0xFFFF, 0xFFFF, "GK107M [GeForce GT 730M](0x0FE1)"},
@@ -12388,6 +12466,7 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x0FED, 0xFFFF, 0xFFFF, "GK107M [GeForce 820M](0x0FED)"},
{0x10DE, 0x0FEE, 0xFFFF, 0xFFFF, "GK107M [GeForce 810M](0x0FEE)"},
{0x10DE, 0x0FEF, 0xFFFF, 0xFFFF, "GK107GL [GRID K340](0x0FEF)"},
+{0x10DE, 0x0FF0, 0xFFFF, 0xFFFF, "GK107 [NB1Q](0x0FF0)"},
{0x10DE, 0x0FF1, 0xFFFF, 0xFFFF, "GK107 [NVS 1000](0x0FF1)"},
{0x10DE, 0x0FF2, 0xFFFF, 0xFFFF, "GK107GL [GRID K1](0x0FF2)"},
{0x10DE, 0x0FF3, 0xFFFF, 0xFFFF, "GK107GL [Quadro K420](0x0FF3)"},
@@ -12898,9 +12977,13 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x11A2, 0xFFFF, 0xFFFF, "GK104M [GeForce GTX 675MX Mac Edition](0x11A2)"},
{0x10DE, 0x11A3, 0xFFFF, 0xFFFF, "GK104M [GeForce GTX 680MX](0x11A3)"},
{0x10DE, 0x11A3, 0x106B, 0x010D, "iMac 13,2(0x106B-0x010D)"},
+{0x10DE, 0x11A4, 0xFFFF, 0xFFFF, "GK104 [GK104-ESA](0x11A4)"},
+{0x10DE, 0x11A5, 0xFFFF, 0xFFFF, "GK104 [GK104-ESA](0x11A5)"},
{0x10DE, 0x11A7, 0xFFFF, 0xFFFF, "GK104M [GeForce GTX 675MX](0x11A7)"},
{0x10DE, 0x11A8, 0xFFFF, 0xFFFF, "GK104GLM [Quadro K5100M](0x11A8)"},
{0x10DE, 0x11A9, 0xFFFF, 0xFFFF, "GK104M [GeForce GTX 870M](0x11A9)"},
+{0x10DE, 0x11AA, 0xFFFF, 0xFFFF, "GK104 [GK104-INT](0x11AA)"},
+{0x10DE, 0x11AC, 0xFFFF, 0xFFFF, "GK104 [GK104-CS](0x11AC)"},
{0x10DE, 0x11AF, 0xFFFF, 0xFFFF, "GK104GLM [GRID IceCube](0x11AF)"},
{0x10DE, 0x11B0, 0xFFFF, 0xFFFF, "GK104GL [GRID K240Q / K260Q vGPU](0x11B0)"},
{0x10DE, 0x11B0, 0x10DE, 0x101A, "GRID K240Q(0x10DE-0x101A)"},
@@ -12918,6 +13001,7 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x11BE, 0xFFFF, 0xFFFF, "GK104GLM [Quadro K3000M](0x11BE)"},
{0x10DE, 0x11BF, 0xFFFF, 0xFFFF, "GK104GL [GRID K2](0x11BF)"},
{0x10DE, 0x11C0, 0xFFFF, 0xFFFF, "GK106 [GeForce GTX 660](0x11C0)"},
+{0x10DE, 0x11C1, 0xFFFF, 0xFFFF, "GK106 [D14P2-30](0x11C1)"},
{0x10DE, 0x11C2, 0xFFFF, 0xFFFF, "GK106 [GeForce GTX 650 Ti Boost](0x11C2)"},
{0x10DE, 0x11C2, 0x1043, 0x845B, "GeForce GTX 650 Ti Boost DirectCU II OC(0x1043-0x845B)"},
{0x10DE, 0x11C2, 0x1462, 0x2874, "GeForce GTX 650 Ti Boost TwinFrozr II OC(0x1462-0x2874)"},
@@ -12933,6 +13017,10 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x11C7, 0xFFFF, 0xFFFF, "GK106 [GeForce GTX 750 Ti](0x11C7)"},
{0x10DE, 0x11C8, 0xFFFF, 0xFFFF, "GK106 [GeForce GTX 650 OEM](0x11C8)"},
{0x10DE, 0x11CB, 0xFFFF, 0xFFFF, "GK106 [GeForce GT 740](0x11CB)"},
+{0x10DE, 0x11D0, 0xFFFF, 0xFFFF, "GK106 [GK106-INT353](0x11D0)"},
+{0x10DE, 0x11D1, 0xFFFF, 0xFFFF, "GK106 [GK106-INT343](0x11D1)"},
+{0x10DE, 0x11D2, 0xFFFF, 0xFFFF, "GK106 [GK106-INT232](0x11D2)"},
+{0x10DE, 0x11D3, 0xFFFF, 0xFFFF, "GK106 [GK106-ES](0x11D3)"},
{0x10DE, 0x11E0, 0xFFFF, 0xFFFF, "GK106M [GeForce GTX 770M](0x11E0)"},
{0x10DE, 0x11E1, 0xFFFF, 0xFFFF, "GK106M [GeForce GTX 765M](0x11E1)"},
{0x10DE, 0x11E2, 0xFFFF, 0xFFFF, "GK106M [GeForce GTX 765M](0x11E2)"},
@@ -12941,6 +13029,7 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x11E7, 0xFFFF, 0xFFFF, "GK106M(0x11E7)"},
{0x10DE, 0x11FA, 0xFFFF, 0xFFFF, "GK106GL [Quadro K4000](0x11FA)"},
{0x10DE, 0x11FC, 0xFFFF, 0xFFFF, "GK106GLM [Quadro K2100M](0x11FC)"},
+{0x10DE, 0x11FF, 0xFFFF, 0xFFFF, "GK106 [NB1Q](0x11FF)"},
{0x10DE, 0x1200, 0xFFFF, 0xFFFF, "GF114 [GeForce GTX 560 Ti](0x1200)"},
{0x10DE, 0x1201, 0xFFFF, 0xFFFF, "GF114 [GeForce GTX 560](0x1201)"},
{0x10DE, 0x1202, 0xFFFF, 0xFFFF, "GF114 [GeForce GTX 560 Ti OEM](0x1202)"},
@@ -12988,7 +13077,9 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x1280, 0xFFFF, 0xFFFF, "GK208 [GeForce GT 635](0x1280)"},
{0x10DE, 0x1281, 0xFFFF, 0xFFFF, "GK208 [GeForce GT 710](0x1281)"},
{0x10DE, 0x1282, 0xFFFF, 0xFFFF, "GK208 [GeForce GT 640 Rev. 2](0x1282)"},
+{0x10DE, 0x1283, 0xFFFF, 0xFFFF, "GK208 [D15M2-10](0x1283)"},
{0x10DE, 0x1284, 0xFFFF, 0xFFFF, "GK208 [GeForce GT 630 Rev. 2](0x1284)"},
+{0x10DE, 0x1285, 0xFFFF, 0xFFFF, "GK208 [GK208-100](0x1285)"},
{0x10DE, 0x1286, 0xFFFF, 0xFFFF, "GK208 [GeForce GT 720](0x1286)"},
{0x10DE, 0x1287, 0xFFFF, 0xFFFF, "GK208B [GeForce GT 730](0x1287)"},
{0x10DE, 0x1288, 0xFFFF, 0xFFFF, "GK208B [GeForce GT 720](0x1288)"},
@@ -13028,8 +13119,14 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x1299, 0x17AA, 0x36AF, "GeForce 920M(0x17AA-0x36AF)"},
{0x10DE, 0x129A, 0xFFFF, 0xFFFF, "GK208BM [GeForce 910M](0x129A)"},
{0x10DE, 0x12A0, 0xFFFF, 0xFFFF, "GK208(0x12A0)"},
+{0x10DE, 0x12AD, 0xFFFF, 0xFFFF, "GK208 [GK208-ES](0x12AD)"},
+{0x10DE, 0x12AE, 0xFFFF, 0xFFFF, "GK208 [GK208-CS1-C](0x12AE)"},
+{0x10DE, 0x12AF, 0xFFFF, 0xFFFF, "GK208 [GK208-INT](0x12AF)"},
+{0x10DE, 0x12B0, 0xFFFF, 0xFFFF, "GK208 [GK208-CS-Q](0x12B0)"},
+{0x10DE, 0x12B1, 0xFFFF, 0xFFFF, "GK208 [GK208 INT](0x12B1)"},
{0x10DE, 0x12B9, 0xFFFF, 0xFFFF, "GK208GLM [Quadro K610M](0x12B9)"},
{0x10DE, 0x12BA, 0xFFFF, 0xFFFF, "GK208GLM [Quadro K510M](0x12BA)"},
+{0x10DE, 0x130B, 0xFFFF, 0xFFFF, "GK110 [Q12U-1](0x130B)"},
{0x10DE, 0x1340, 0xFFFF, 0xFFFF, "GM108M [GeForce 830M](0x1340)"},
{0x10DE, 0x1340, 0x103C, 0x2B2B, "GeForce 830A(0x103C-0x2B2B)"},
{0x10DE, 0x1341, 0xFFFF, 0xFFFF, "GM108M [GeForce 840M](0x1341)"},
@@ -13074,6 +13171,8 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x139B, 0x103C, 0x2B4C, "GeForce GTX 960A(0x103C-0x2B4C)"},
{0x10DE, 0x139C, 0xFFFF, 0xFFFF, "GM107M [GeForce 940M](0x139C)"},
{0x10DE, 0x139D, 0xFFFF, 0xFFFF, "GM107M [GeForce GTX 750 Ti](0x139D)"},
+{0x10DE, 0x13AD, 0xFFFF, 0xFFFF, "GM204 [GM107 INT52](0x13AD)"},
+{0x10DE, 0x13AE, 0xFFFF, 0xFFFF, "GM204 [GM107 CS1](0x13AE)"},
{0x10DE, 0x13B0, 0xFFFF, 0xFFFF, "GM107GLM [Quadro M2000M](0x13B0)"},
{0x10DE, 0x13B1, 0xFFFF, 0xFFFF, "GM107GLM [Quadro M1000M](0x13B1)"},
{0x10DE, 0x13B2, 0xFFFF, 0xFFFF, "GM107GLM [Quadro M600M](0x13B2)"},
@@ -13088,15 +13187,19 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x13BD, 0x10DE, 0x110A, "GRID M40(0x10DE-0x110A)"},
{0x10DE, 0x13BD, 0x10DE, 0x1160, "Tesla M10(0x10DE-0x1160)"},
{0x10DE, 0x13BD, 0x10DE, 0x11D2, "GRID M10-8Q(0x10DE-0x11D2)"},
+{0x10DE, 0x13BE, 0xFFFF, 0xFFFF, "GM204 [GM107 CS1](0x13BE)"},
+{0x10DE, 0x13BF, 0xFFFF, 0xFFFF, "GM204 [GM107 INT52](0x13BF)"},
{0x10DE, 0x13C0, 0xFFFF, 0xFFFF, "GM204 [GeForce GTX 980](0x13C0)"},
{0x10DE, 0x13C0, 0x1043, 0x8504, "GTX980-4GD5(0x1043-0x8504)"},
{0x10DE, 0x13C1, 0xFFFF, 0xFFFF, "GM204(0x13C1)"},
{0x10DE, 0x13C2, 0xFFFF, 0xFFFF, "GM204 [GeForce GTX 970](0x13C2)"},
{0x10DE, 0x13C3, 0xFFFF, 0xFFFF, "GM204(0x13C3)"},
+{0x10DE, 0x13C4, 0xFFFF, 0xFFFF, "GM204 [D17U-20](0x13C4)"},
{0x10DE, 0x13D7, 0xFFFF, 0xFFFF, "GM204M [GeForce GTX 980M](0x13D7)"},
{0x10DE, 0x13D8, 0xFFFF, 0xFFFF, "GM204M [GeForce GTX 960 OEM / 970M](0x13D8)"},
{0x10DE, 0x13D9, 0xFFFF, 0xFFFF, "GM204M [GeForce GTX 965M](0x13D9)"},
{0x10DE, 0x13DA, 0xFFFF, 0xFFFF, "GM204M [GeForce GTX 980 Mobile](0x13DA)"},
+{0x10DE, 0x13E4, 0xFFFF, 0xFFFF, "GM204 [Graphics Device ES-A](0x13E4)"},
{0x10DE, 0x13E7, 0xFFFF, 0xFFFF, "GM204GL [GeForce GTX 980 Engineering Sample](0x13E7)"},
{0x10DE, 0x13F0, 0xFFFF, 0xFFFF, "GM204GL [Quadro M5000](0x13F0)"},
{0x10DE, 0x13F1, 0xFFFF, 0xFFFF, "GM204GL [Quadro M4000](0x13F1)"},
@@ -13122,11 +13225,16 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x1430, 0xFFFF, 0xFFFF, "GM206GL [Quadro M2000](0x1430)"},
{0x10DE, 0x1431, 0xFFFF, 0xFFFF, "GM206GL [Tesla M4](0x1431)"},
{0x10DE, 0x1436, 0xFFFF, 0xFFFF, "GM206GLM [Quadro M2200 Mobile](0x1436)"},
+{0x10DE, 0x15C2, 0xFFFF, 0xFFFF, "GP100 [CMP 100-100](0x15C2)"},
{0x10DE, 0x15F0, 0xFFFF, 0xFFFF, "GP100GL [Quadro GP100](0x15F0)"},
{0x10DE, 0x15F1, 0xFFFF, 0xFFFF, "GP100GL(0x15F1)"},
{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, 0x15FC, 0xFFFF, 0xFFFF, "GP100GL [Tesla P100-DGXS-16GB](0x15FC)"},
+{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)"},
@@ -13285,6 +13393,7 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x1D81, 0xFFFF, 0xFFFF, "GV100 [TITAN V](0x1D81)"},
{0x10DE, 0x1D83, 0xFFFF, 0xFFFF, "GV100 [CMP 100-200](0x1D83)"},
{0x10DE, 0x1D84, 0xFFFF, 0xFFFF, "GV100 [CMP 100-210](0x1D84)"},
+{0x10DE, 0x1DB0, 0xFFFF, 0xFFFF, "GV100GL [Tesla GV100 SXM2-16GB SKU 890](0x1DB0)"},
{0x10DE, 0x1DB1, 0xFFFF, 0xFFFF, "GV100GL [Tesla V100 SXM2 16GB](0x1DB1)"},
{0x10DE, 0x1DB2, 0xFFFF, 0xFFFF, "GV100GL [Tesla V100 DGXS 16GB](0x1DB2)"},
{0x10DE, 0x1DB3, 0xFFFF, 0xFFFF, "GV100GL [Tesla V100 FHHL 16GB](0x1DB3)"},
@@ -13296,10 +13405,12 @@ 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)"},
{0x10DE, 0x1DF2, 0xFFFF, 0xFFFF, "GV100GL [Tesla PG503-216](0x1DF2)"},
+{0x10DE, 0x1DF4, 0xFFFF, 0xFFFF, "GV100 [CMP 100-210](0x1DF4)"},
{0x10DE, 0x1DF5, 0xFFFF, 0xFFFF, "GV100GL [Tesla V100 SXM2 16GB](0x1DF5)"},
{0x10DE, 0x1DF6, 0xFFFF, 0xFFFF, "GV100GL [Tesla V100S PCIe 32GB](0x1DF6)"},
{0x10DE, 0x1E02, 0xFFFF, 0xFFFF, "TU102 [TITAN RTX](0x1E02)"},
@@ -13313,6 +13424,7 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x1E30, 0xFFFF, 0xFFFF, "TU102GL [Quadro RTX 6000/8000](0x1E30)"},
{0x10DE, 0x1E30, 0x10DE, 0x129E, "Quadro RTX 8000(0x10DE-0x129E)"},
{0x10DE, 0x1E30, 0x10DE, 0x12BA, "Quadro RTX 6000(0x10DE-0x12BA)"},
+{0x10DE, 0x1E35, 0xFFFF, 0xFFFF, "TU102GL [Tesla T10](0x1E35)"},
{0x10DE, 0x1E36, 0xFFFF, 0xFFFF, "TU102GL [Quadro RTX 6000](0x1E36)"},
{0x10DE, 0x1E37, 0xFFFF, 0xFFFF, "TU102GL [Tesla T10 16GB / GRID RTX T10-2/T10-4/T10-8](0x1E37)"},
{0x10DE, 0x1E37, 0x10DE, 0x1304, "Tesla T10 16GB(0x10DE-0x1304)"},
@@ -13409,7 +13521,7 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x1FD9, 0xFFFF, 0xFFFF, "TU117BM [GeForce GTX 1650 Mobile Refresh](0x1FD9)"},
{0x10DE, 0x1FDD, 0xFFFF, 0xFFFF, "TU117BM [GeForce GTX 1650 Mobile Refresh](0x1FDD)"},
{0x10DE, 0x1FF0, 0xFFFF, 0xFFFF, "TU117GL [T1000 8GB](0x1FF0)"},
-{0x10DE, 0x1FF2, 0xFFFF, 0xFFFF, "TU117GL [T400 4GB](0x1FF2)"},
+{0x10DE, 0x1FF2, 0xFFFF, 0xFFFF, "TU117GL [T400 4GB / T400E](0x1FF2)"},
{0x10DE, 0x1FF9, 0xFFFF, 0xFFFF, "TU117GLM [Quadro T1000 Mobile](0x1FF9)"},
{0x10DE, 0x2080, 0xFFFF, 0xFFFF, "GA100(0x2080)"},
{0x10DE, 0x2081, 0xFFFF, 0xFFFF, "GA100(0x2081)"},
@@ -13450,6 +13562,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)"},
@@ -13487,17 +13600,20 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x2321, 0xFFFF, 0xFFFF, "GH100 [H100L 94GB](0x2321)"},
{0x10DE, 0x2322, 0xFFFF, 0xFFFF, "GH100 [H800 PCIe](0x2322)"},
{0x10DE, 0x2324, 0xFFFF, 0xFFFF, "GH100 [H800](0x2324)"},
+{0x10DE, 0x2329, 0xFFFF, 0xFFFF, "GH100 [H20](0x2329)"},
{0x10DE, 0x2330, 0xFFFF, 0xFFFF, "GH100 [H100 SXM5 80GB](0x2330)"},
{0x10DE, 0x2331, 0xFFFF, 0xFFFF, "GH100 [H100 PCIe](0x2331)"},
+{0x10DE, 0x2335, 0xFFFF, 0xFFFF, "GH100 [H200 SXM 141GB](0x2335)"},
{0x10DE, 0x2336, 0xFFFF, 0xFFFF, "GH100 [H100](0x2336)"},
{0x10DE, 0x2337, 0xFFFF, 0xFFFF, "GH100 [H100 SXM5 64GB](0x2337)"},
{0x10DE, 0x2338, 0xFFFF, 0xFFFF, "GH100 [H100 SXM5 96GB](0x2338)"},
{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)"},
@@ -13516,6 +13632,9 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x2488, 0xFFFF, 0xFFFF, "GA104 [GeForce RTX 3070 Lite Hash Rate](0x2488)"},
{0x10DE, 0x2489, 0xFFFF, 0xFFFF, "GA104 [GeForce RTX 3060 Ti Lite Hash Rate](0x2489)"},
{0x10DE, 0x248A, 0xFFFF, 0xFFFF, "GA104 [CMP 70HX](0x248A)"},
+{0x10DE, 0x248C, 0xFFFF, 0xFFFF, "GA104 [GeForce RTX 3070 Ti](0x248C)"},
+{0x10DE, 0x248D, 0xFFFF, 0xFFFF, "GA104 [GeForce RTX 3070](0x248D)"},
+{0x10DE, 0x248E, 0xFFFF, 0xFFFF, "GA104 [GeForce RTX 3060 Ti](0x248E)"},
{0x10DE, 0x249C, 0xFFFF, 0xFFFF, "GA104M [GeForce RTX 3080 Mobile / Max-Q 8GB/16GB](0x249C)"},
{0x10DE, 0x249D, 0xFFFF, 0xFFFF, "GA104M [GeForce RTX 3070 Mobile / Max-Q](0x249D)"},
{0x10DE, 0x249F, 0xFFFF, 0xFFFF, "GA104M(0x249F)"},
@@ -13575,6 +13694,8 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x25AC, 0xFFFF, 0xFFFF, "GN20-P0-R-K2 [GeForce RTX 3050 6GB Laptop GPU](0x25AC)"},
{0x10DE, 0x25AD, 0xFFFF, 0xFFFF, "GA107 [GeForce RTX 2050](0x25AD)"},
{0x10DE, 0x25AF, 0xFFFF, 0xFFFF, "GA107 [GeForce RTX 3050 Engineering Sample](0x25AF)"},
+{0x10DE, 0x25B0, 0xFFFF, 0xFFFF, "GA107GL [RTX A1000](0x25B0)"},
+{0x10DE, 0x25B2, 0xFFFF, 0xFFFF, "GA107GL [RTX A400](0x25B2)"},
{0x10DE, 0x25B5, 0xFFFF, 0xFFFF, "GA107GLM [RTX A4 Mobile](0x25B5)"},
{0x10DE, 0x25B6, 0xFFFF, 0xFFFF, "GA107GL [A2 / A16](0x25B6)"},
{0x10DE, 0x25B8, 0xFFFF, 0xFFFF, "GA107GLM [RTX A2000 Mobile](0x25B8)"},
@@ -13593,25 +13714,35 @@ 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, 0x2709, 0xFFFF, 0xFFFF, "AD103 [GeForce RTX 4070](0x2709)"},
{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, 0x2788, 0xFFFF, 0xFFFF, "AD104 [GeForce RTX 4060 Ti](0x2788)"},
{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)"},
@@ -13621,6 +13752,7 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x27FB, 0xFFFF, 0xFFFF, "AD104GLM [RTX 3500 Ada Generation Embedded GPU](0x27FB)"},
{0x10DE, 0x2803, 0xFFFF, 0xFFFF, "AD106 [GeForce RTX 4060 Ti](0x2803)"},
{0x10DE, 0x2805, 0xFFFF, 0xFFFF, "AD106 [GeForce RTX 4060 Ti 16GB](0x2805)"},
+{0x10DE, 0x2808, 0xFFFF, 0xFFFF, "AD106 [GeForce RTX 4060](0x2808)"},
{0x10DE, 0x2820, 0xFFFF, 0xFFFF, "AD106M [GeForce RTX 4070 Max-Q / Mobile](0x2820)"},
{0x10DE, 0x2838, 0xFFFF, 0xFFFF, "AD106GLM [RTX 3000 Ada Generation Laptop GPU](0x2838)"},
{0x10DE, 0x2860, 0xFFFF, 0xFFFF, "AD106M [GeForce RTX 4070 Max-Q / Mobile](0x2860)"},
@@ -13628,13 +13760,17 @@ pci_id_t pci_vid_10DE[] = {
{0x10DE, 0x2882, 0xFFFF, 0xFFFF, "AD107 [GeForce RTX 4060](0x2882)"},
{0x10DE, 0x28A0, 0xFFFF, 0xFFFF, "AD107M [GeForce RTX 4060 Max-Q / Mobile](0x28A0)"},
{0x10DE, 0x28A1, 0xFFFF, 0xFFFF, "AD107M [GeForce RTX 4050 Max-Q / Mobile](0x28A1)"},
+{0x10DE, 0x28B0, 0xFFFF, 0xFFFF, "AD107GL [RTX 2000 / 2000E Ada Generation](0x28B0)"},
{0x10DE, 0x28B8, 0xFFFF, 0xFFFF, "AD107GLM [RTX 2000 Ada Generation Laptop GPU](0x28B8)"},
+{0x10DE, 0x28B9, 0xFFFF, 0xFFFF, "AD107GLM [RTX 1000 Ada Generation Laptop GPU](0x28B9)"},
+{0x10DE, 0x28BA, 0xFFFF, 0xFFFF, "AD107GLM [RTX 500 Ada Generation Laptop GPU](0x28BA)"},
+{0x10DE, 0x28BB, 0xFFFF, 0xFFFF, "AD107GLM [RTX 500 Ada Generation Laptop GPU](0x28BB)"},
{0x10DE, 0x28E0, 0xFFFF, 0xFFFF, "AD107M [GeForce RTX 4060 Max-Q / Mobile](0x28E0)"},
{0x10DE, 0x28E1, 0xFFFF, 0xFFFF, "AD107M [GeForce RTX 4050 Max-Q / Mobile](0x28E1)"},
{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 +13900,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 +13910,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 +13918,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 +13936,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 +13991,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 +14008,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)"},
@@ -13922,6 +14059,7 @@ pci_id_t pci_vid_10EC[] = {
{0x10EC, 0x5762, 0xFFFF, 0xFFFF, "RTS5762 NVMe SSD Controller(0x5762)"},
{0x10EC, 0x5763, 0xFFFF, 0xFFFF, "RTS5763DL NVMe SSD Controller (DRAM-less)(0x5763)"},
{0x10EC, 0x5765, 0xFFFF, 0xFFFF, "RTS5765DL NVMe SSD Controller (DRAM-less)(0x5765)"},
+{0x10EC, 0x5770, 0xFFFF, 0xFFFF, "RTS5770DL NVMe SSD Controller (DRAM-less)(0x5770)"},
{0x10EC, 0x5772, 0xFFFF, 0xFFFF, "RTS5772DL NVMe SSD Controller (DRAM-less)(0x5772)"},
{0x10EC, 0x8029, 0xFFFF, 0xFFFF, "RTL-8029(AS)(0x8029)"},
{0x10EC, 0x8029, 0x10B8, 0x2011, "EZ-Card (SMC1208)(0x10B8-0x2011)"},
@@ -13931,6 +14069,7 @@ pci_id_t pci_vid_10EC[] = {
{0x10EC, 0x8029, 0x1259, 0x2400, "AT-2400(0x1259-0x2400)"},
{0x10EC, 0x8029, 0x1AF4, 0x1100, "QEMU Virtual Machine(0x1AF4-0x1100)"},
{0x10EC, 0x8125, 0xFFFF, 0xFFFF, "RTL8125 2.5GbE Controller(0x8125)"},
+{0x10EC, 0x8125, 0x4C52, 0x2022, "LRES2022PT Single-port 2.5Gb Ethernet Network Adapter(0x4C52-0x2022)"},
{0x10EC, 0x8129, 0xFFFF, 0xFFFF, "RTL-8129(0x8129)"},
{0x10EC, 0x8129, 0x10EC, 0x8129, "RT8129 Fast Ethernet Adapter(0x10EC-0x8129)"},
{0x10EC, 0x8129, 0x11EC, 0x8129, "RTL8111/8168 PCIe Gigabit Ethernet (misconfigured)(0x11EC-0x8129)"},
@@ -14002,7 +14141,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)"},
@@ -14029,7 +14168,7 @@ pci_id_t pci_vid_10EC[] = {
{0x10EC, 0x8168, 0x1043, 0x8505, "P8 series motherboard(0x1043-0x8505)"},
{0x10EC, 0x8168, 0x1043, 0x8554, "H81M-C Motherboard(0x1043-0x8554)"},
{0x10EC, 0x8168, 0x1043, 0x859E, "AM1I-A Motherboard(0x1043-0x859E)"},
-{0x10EC, 0x8168, 0x1043, 0x8677, "PRIME B450M-A Motherboard(0x1043-0x8677)"},
+{0x10EC, 0x8168, 0x1043, 0x8677, "Onboard RTL8111H Ethernet(0x1043-0x8677)"},
{0x10EC, 0x8168, 0x105B, 0x0D7C, "D270S/D250S Motherboard(0x105B-0x0D7C)"},
{0x10EC, 0x8168, 0x10EC, 0x8168, "RTL8111/8168 PCI Express Gigabit Ethernet controller(0x10EC-0x8168)"},
{0x10EC, 0x8168, 0x144D, 0xC652, "RTL8168 on a NP300E5C series laptop(0x144D-0xC652)"},
@@ -14040,10 +14179,12 @@ 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)"},
{0x10EC, 0x8168, 0x17AA, 0x3823, "Lenovo V130-15IGM Laptop - Type 81HL(0x17AA-0x3823)"},
+{0x10EC, 0x8168, 0x17AA, 0x5068, "Thinkpad E480/E580(0x17AA-0x5068)"},
{0x10EC, 0x8168, 0x17AA, 0x5124, "ThinkPad E595(0x17AA-0x5124)"},
{0x10EC, 0x8168, 0x1849, 0x8168, "Motherboard (one of many)(0x1849-0x8168)"},
{0x10EC, 0x8168, 0x7470, 0x3468, "TG-3468 Gigabit PCI Express Network Adapter(0x7470-0x3468)"},
@@ -14118,15 +14259,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 +14318,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 +14410,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 +14561,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 +14582,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 +14595,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 +14639,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 +14805,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 +14837,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 +14930,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 +15221,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 +15238,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 +15256,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 +15279,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 +15319,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 +15339,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 +15363,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 +15448,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 +15468,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 +15543,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 +15596,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 +15629,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 +15877,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 +15976,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 +15984,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 +16088,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 +16116,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 +16135,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 +16152,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 +16175,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 +16269,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 +16282,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 +16365,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 +16462,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 +16585,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 +16605,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 +16706,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 +16786,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 +16941,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 +16995,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 +17043,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 +17083,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 +17427,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 +17445,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 +17464,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 +17531,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 +17686,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 +17736,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,81 +17828,113 @@ 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, 0x0010, 0xFFFF, 0xFFFF, "QL5032 (PQFP208) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0010)"},
+{0x11E3, 0x0011, 0xFFFF, 0xFFFF, "QL5032 (PBGA256) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0011)"},
+{0x11E3, 0x0012, 0xFFFF, 0xFFFF, "QL5232 (PQFP208) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0012)"},
+{0x11E3, 0x0012, 0x11E3, 0x1204, "Becker & Hickl SPC-130(0x11E3-0x1204)"},
+{0x11E3, 0x0012, 0x11E3, 0x1207, "Becker & Hickl DDG-200(0x11E3-0x1207)"},
+{0x11E3, 0x0012, 0x11E3, 0x1209, "Becker & Hickl SHM-180(0x11E3-0x1209)"},
+{0x11E3, 0x0012, 0x11E3, 0x120C, "Becker & Hickl PMM-428(0x11E3-0x120C)"},
+{0x11E3, 0x0013, 0xFFFF, 0xFFFF, "QL5232 (PBGA456) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0013)"},
+{0x11E3, 0x0014, 0xFFFF, 0xFFFF, "QL5030 (TQFP144) [QuickPCI] 33 MHz/32-bit PCI Target with Embedded Programmable Logic and Dual Port SRAM(0x0014)"},
+{0x11E3, 0x0015, 0xFFFF, 0xFFFF, "QL5130 (TQFP144) [QuickPCI] 33 MHz/32-bit PCI Target with Embedded Programmable Logic and Dual Port SRAM(0x0015)"},
+{0x11E3, 0x0016, 0xFFFF, 0xFFFF, "QL5130 (PQFP208) [QuickPCI] 33 MHz/32-bit PCI Target with Embedded Programmable Logic and Dual Port SRAM(0x0016)"},
+{0x11E3, 0x0016, 0x11E3, 0x120B, "Becker & Hickl DEL-350(0x11E3-0x120B)"},
+{0x11E3, 0x0017, 0xFFFF, 0xFFFF, "QL5130 (PBGA256) [QuickPCI] 33 MHz/32-bit PCI Target with Embedded Programmable Logic and Dual Port SRAM(0x0017)"},
+{0x11E3, 0x0019, 0xFFFF, 0xFFFF, "QL5332 (PQFP208) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0019)"},
+{0x11E3, 0x001A, 0xFFFF, 0xFFFF, "QL5332 (PBGA256) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x001A)"},
+{0x11E3, 0x001B, 0xFFFF, 0xFFFF, "QL5432 (PQFP208) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x001B)"},
+{0x11E3, 0x001B, 0x11E3, 0x120D, "Becker & Hickl SPC-140(0x11E3-0x120D)"},
+{0x11E3, 0x001B, 0x11E3, 0x1211, "Becker & Hickl GVD-120(0x11E3-0x1211)"},
+{0x11E3, 0x001B, 0x11E3, 0x1212, "Becker & Hickl DDG-210(0x11E3-0x1212)"},
+{0x11E3, 0x001C, 0xFFFF, 0xFFFF, "QL5432 (PBGA456) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x001C)"},
+{0x11E3, 0x001D, 0xFFFF, 0xFFFF, "QL5632 (PQFP208) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x001D)"},
+{0x11E3, 0x001E, 0xFFFF, 0xFFFF, "QL5632 (PBGA280) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x001E)"},
+{0x11E3, 0x001F, 0xFFFF, 0xFFFF, "QL5632 (PBGA484) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x001F)"},
+{0x11E3, 0x0020, 0xFFFF, 0xFFFF, "QL5632 (PBGA516) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0020)"},
+{0x11E3, 0x0021, 0xFFFF, 0xFFFF, "QL5732 (PQFP208) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0021)"},
+{0x11E3, 0x0022, 0xFFFF, 0xFFFF, "QL5732 (PBGA280) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0022)"},
+{0x11E3, 0x0023, 0xFFFF, 0xFFFF, "QL5732 (PBGA484) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0023)"},
+{0x11E3, 0x0024, 0xFFFF, 0xFFFF, "QL5732 (PBGA516) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0024)"},
+{0x11E3, 0x002D, 0xFFFF, 0xFFFF, "QL5022 (TQFP144) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x002D)"},
+{0x11E3, 0x002E, 0xFFFF, 0xFFFF, "QL5022 (PQFP208) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x002E)"},
+{0x11E3, 0x002F, 0xFFFF, 0xFFFF, "QL5020 (TQFP144) [QuickPCI] 33 MHz/32-bit PCI Target with Embedded Programmable Logic and Dual Port SRAM(0x002F)"},
+{0x11E3, 0x0030, 0xFFFF, 0xFFFF, "QL5020 (PQFP208) [QuickPCI] 33 MHz/32-bit PCI Target with Embedded Programmable Logic and Dual Port SRAM(0x0030)"},
{0x11E3, 0x0560, 0xFFFF, 0xFFFF, "QL5064 Companion Design Demo Board(0x0560)"},
{0x11E3, 0x5030, 0xFFFF, 0xFFFF, "PC Watchdog(0x5030)"},
{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 +17945,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 +17979,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 +18018,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 +18105,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 +18127,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 +18188,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)"},
@@ -18085,18 +18275,19 @@ pci_id_t pci_vid_1217[] = {
{0x1217, 0x8331, 0xFFFF, 0xFFFF, "O2 Flash Memory Card(0x8331)"},
{0x1217, 0x8520, 0xFFFF, 0xFFFF, "SD/MMC Card Reader Controller(0x8520)"},
{0x1217, 0x8621, 0xFFFF, 0xFFFF, "SD/MMC Card Reader Controller(0x8621)"},
+{0x1217, 0x8621, 0x17AA, 0x5068, "Thinkpad E480/E580(0x17AA-0x5068)"},
{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 +18335,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 +18370,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 +18388,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 +18404,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 +18434,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 +18458,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 +18515,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 +18538,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 +18556,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 +18575,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 +18617,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 +18653,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 +18677,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 +18693,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 +18748,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 +18800,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)"},
@@ -18689,30 +18880,31 @@ pci_id_t pci_vid_126F[] = {
{0x126F, 0x0820, 0xFFFF, 0xFFFF, "SM820 Lynx3D(0x0820)"},
{0x126F, 0x0910, 0xFFFF, 0xFFFF, "SM910(0x0910)"},
{0x126F, 0x2260, 0xFFFF, 0xFFFF, "SM2260 NVMe SSD Controller(0x2260)"},
+{0x126F, 0x2261, 0xFFFF, 0xFFFF, "SM2261XT x2 NVMe SSD Controller (DRAM-less)(0x2261)"},
{0x126F, 0x2262, 0xFFFF, 0xFFFF, "SM2262/SM2262EN SSD Controller(0x2262)"},
{0x126F, 0x2263, 0xFFFF, 0xFFFF, "SM2263EN/SM2263XT (DRAM-less) NVMe SSD Controllers(0x2263)"},
{0x126F, 0x2269, 0xFFFF, 0xFFFF, "SM2269XT (DRAM-less) NVMe SSD Controller(0x2269)"},
{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 +18968,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 +18978,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 +18998,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 +19008,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 +19127,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 +19166,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 +19186,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 +19239,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 +19298,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 +19375,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 +19394,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 +19459,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 +19536,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 +19545,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 +19557,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 +19631,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 +19676,16 @@ 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, 0xB404, 0xFFFF, 0xFFFF, "PI7C9X2G404 EV/SV PCIe2 4-Port/4-Lane Packet Switch(0xB404)"},
+{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 +19695,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 +19806,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 +19881,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 +20002,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 +20077,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 +20092,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 +20151,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 +20220,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)"},
@@ -20124,8 +20322,25 @@ pci_id_t pci_vid_1344[] = {
{0x1344, 0x51B2, 0x1344, 0x5000, "6.4 TB U.2(0x1344-0x5000)"},
{0x1344, 0x51B2, 0x1344, 0x6000, "12.8TB U.2(0x1344-0x6000)"},
{0x1344, 0x51B7, 0xFFFF, 0xFFFF, "7500 PRO NVMe SSD(0x51B7)"},
+{0x1344, 0x51B7, 0x1028, 0x22E7, "DC NVMe 7500 U.2 SED RI 15.36TB(0x1028-0x22E7)"},
+{0x1344, 0x51B7, 0x1028, 0x22E8, "DC NVMe 7500 U.2 SED RI 7.68TB(0x1028-0x22E8)"},
+{0x1344, 0x51B7, 0x1028, 0x22E9, "DC NVMe 7500 U.2 SED RI 3.84TB(0x1028-0x22E9)"},
+{0x1344, 0x51B7, 0x1028, 0x22EA, "DC NVMe 7500 U.2 SED RI 1.92TB(0x1028-0x22EA)"},
+{0x1344, 0x51B7, 0x1028, 0x22EB, "DC NVMe 7500 U.2 SED RI 960GB(0x1028-0x22EB)"},
+{0x1344, 0x51B7, 0x1028, 0x22EC, "DC NVMe 7500 U.2 ISE RI 15.36TB(0x1028-0x22EC)"},
+{0x1344, 0x51B7, 0x1028, 0x22ED, "DC NVMe 7500 U.2 ISE RI 7.68TB(0x1028-0x22ED)"},
+{0x1344, 0x51B7, 0x1028, 0x22EE, "DC NVMe 7500 U.2 ISE RI 3.84TB(0x1028-0x22EE)"},
+{0x1344, 0x51B7, 0x1028, 0x22EF, "DC NVMe 7500 U.2 ISE RI 1.92TB(0x1028-0x22EF)"},
+{0x1344, 0x51B7, 0x1028, 0x22F0, "DC NVMe 7500 U.2 ISE RI 960GB(0x1028-0x22F0)"},
{0x1344, 0x51B8, 0xFFFF, 0xFFFF, "7500 MAX NVMe SSD(0x51B8)"},
+{0x1344, 0x51B8, 0x1028, 0x22F1, "DC NVMe 7500 U.2 ISE MU 12.8TB(0x1028-0x22F1)"},
+{0x1344, 0x51B8, 0x1028, 0x22F2, "DC NVMe 7500 U.2 ISE MU 6.4TB(0x1028-0x22F2)"},
+{0x1344, 0x51B8, 0x1028, 0x22F3, "DC NVMe 7500 U.2 ISE MU 3.2TB(0x1028-0x22F3)"},
+{0x1344, 0x51B8, 0x1028, 0x22F4, "DC NVMe 7500 U.2 ISE MU 1.6TB(0x1028-0x22F4)"},
+{0x1344, 0x51B8, 0x1028, 0x22F5, "DC NVMe 7500 U.2 ISE MU 800GB(0x1028-0x22F5)"},
{0x1344, 0x51B9, 0xFFFF, 0xFFFF, "6500 ION NVMe SSD(0x51B9)"},
+{0x1344, 0x51B9, 0x1028, 0x22E6, "Ent NVMe 6500 RI 30.72TB(0x1028-0x22E6)"},
+{0x1344, 0x51B9, 0x1028, 0x22F6, "Ent NVMe 6500 RI FIPS 30.72TB(0x1028-0x22F6)"},
{0x1344, 0x51C0, 0xFFFF, 0xFFFF, "7400 PRO NVMe SSD(0x51C0)"},
{0x1344, 0x51C0, 0x1028, 0x2162, "EC NVMe OPAL 7400 RI M.2 480GB(0x1028-0x2162)"},
{0x1344, 0x51C0, 0x1028, 0x2163, "EC NVMe OPAL 7400 RI M.2 960GB(0x1028-0x2163)"},
@@ -20163,7 +20378,38 @@ pci_id_t pci_vid_1344[] = {
{0x1344, 0x51C1, 0x1344, 0x4000, "U.3 3200GB(0x1344-0x4000)"},
{0x1344, 0x51C1, 0x1344, 0x5000, "U.3 6400GB(0x1344-0x5000)"},
{0x1344, 0x51C3, 0xFFFF, 0xFFFF, "7450 PRO NVMe SSD(0x51C3)"},
+{0x1344, 0x51C3, 0x1028, 0x226B, "EC NVMe FIPS 7450 RI M.2 110 960GB(0x1028-0x226B)"},
+{0x1344, 0x51C3, 0x1028, 0x226C, "EC NVMe ISE 7450 RI M.2 80 480GB(0x1028-0x226C)"},
+{0x1344, 0x51C3, 0x1028, 0x226D, "EC NVMe ISE 7450 RI M.2 80 960GB(0x1028-0x226D)"},
+{0x1344, 0x51C3, 0x1028, 0x226E, "EC NVMe SED 7450 RI M.2 80 480GB(0x1028-0x226E)"},
+{0x1344, 0x51C3, 0x1028, 0x226F, "EC NVMe SED 7450 RI M.2 80 960GB(0x1028-0x226F)"},
+{0x1344, 0x51C3, 0x1028, 0x2270, "EC NVMe FIPS 7450 RI M.2 80 480GB(0x1028-0x2270)"},
+{0x1344, 0x51C3, 0x1028, 0x2271, "EC NVMe FIPS 7450 RI M.2 80 960GB(0x1028-0x2271)"},
+{0x1344, 0x51C3, 0x1028, 0x2273, "EC NVMe ISE 7450 RI M.2 110 960GB(0x1028-0x2273)"},
+{0x1344, 0x51C3, 0x1028, 0x2274, "EC NVMe ISE 7450 RI M.2 110 1920GB(0x1028-0x2274)"},
+{0x1344, 0x51C3, 0x1028, 0x2275, "EC NVMe ISE 7450 RI M.2 110 3840GB(0x1028-0x2275)"},
+{0x1344, 0x51C3, 0x1028, 0x2278, "DC NVMe ISE 7450 RI U.2 960GB(0x1028-0x2278)"},
+{0x1344, 0x51C3, 0x1028, 0x2279, "DC NVMe ISE 7450 RI U.2 1.92TB(0x1028-0x2279)"},
+{0x1344, 0x51C3, 0x1028, 0x227A, "DC NVMe ISE 7450 RI U.2 3.84TB(0x1028-0x227A)"},
+{0x1344, 0x51C3, 0x1028, 0x227B, "DC NVMe ISE 7450 RI U.2 7.68TB(0x1028-0x227B)"},
+{0x1344, 0x51C3, 0x1028, 0x227C, "DC NVMe ISE 7450 RI U.2 15.36TB(0x1028-0x227C)"},
+{0x1344, 0x51C3, 0x1028, 0x227D, "DC NVMe SED 7450 RI U.2 960GB(0x1028-0x227D)"},
+{0x1344, 0x51C3, 0x1028, 0x227E, "DC NVMe SED 7450 RI U.2 1.92TB(0x1028-0x227E)"},
+{0x1344, 0x51C3, 0x1028, 0x227F, "DC NVMe SED 7450 RI U.2 3.84TB(0x1028-0x227F)"},
+{0x1344, 0x51C3, 0x1028, 0x2280, "DC NVMe SED 7450 RI U.2 7.68TB(0x1028-0x2280)"},
+{0x1344, 0x51C3, 0x1028, 0x2281, "DC NVMe SED 7450 RI U.2 15.36TB(0x1028-0x2281)"},
{0x1344, 0x51C4, 0xFFFF, 0xFFFF, "7450 MAX NVMe SSD(0x51C4)"},
+{0x1344, 0x51C4, 0x1028, 0x2272, "EC NVMe ISE 7450 MU M.2 80 800GB(0x1028-0x2272)"},
+{0x1344, 0x51C4, 0x1028, 0x228B, "DC NVMe SED 7450 MU U.2 800GB(0x1028-0x228B)"},
+{0x1344, 0x51C4, 0x1028, 0x228C, "DC NVMe ISE 7450 MU U.2 800GB(0x1028-0x228C)"},
+{0x1344, 0x51C4, 0x1028, 0x228D, "DC NVMe SED 7450 MU U.2 1.6TB(0x1028-0x228D)"},
+{0x1344, 0x51C4, 0x1028, 0x228E, "DC NVMe ISE 7450 MU U.2 1.6TB(0x1028-0x228E)"},
+{0x1344, 0x51C4, 0x1028, 0x228F, "DC NVMe SED 7450 MU U.2 3.2TB(0x1028-0x228F)"},
+{0x1344, 0x51C4, 0x1028, 0x2290, "DC NVMe ISE 7450 MU U.2 3.2TB(0x1028-0x2290)"},
+{0x1344, 0x51C4, 0x1028, 0x2291, "DC NVMe SED 7450 MU U.2 6.4TB(0x1028-0x2291)"},
+{0x1344, 0x51C4, 0x1028, 0x2292, "DC NVMe ISE 7450 MU U.2 6.4TB(0x1028-0x2292)"},
+{0x1344, 0x51C4, 0x1028, 0x2293, "DC NVMe SED 7450 MU U.2 12.8TB(0x1028-0x2293)"},
+{0x1344, 0x51C4, 0x1028, 0x2294, "DC NVMe ISE 7450 MU U.2 12.8TB(0x1028-0x2294)"},
{0x1344, 0x51C4, 0x1344, 0x3000, "U.3 1600GB [MTFDKCB1T6TFS/MTFDKCC1T6TFS](0x1344-0x3000)"},
{0x1344, 0x5404, 0xFFFF, 0xFFFF, "2210 NVMe SSD [Cobain](0x5404)"},
{0x1344, 0x5405, 0xFFFF, 0xFFFF, "2300 NVMe SSD [Santana](0x5405)"},
@@ -20172,37 +20418,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 +20465,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 +20491,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 +20601,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 +20630,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 +20647,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 +20678,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 +20722,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 +20799,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 +20867,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 +20884,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 +20977,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 +21045,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 +21126,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 +21153,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 +21256,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 +21268,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 +21295,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 +21304,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 +21351,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 +21480,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 +21563,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 +21617,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 +21710,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 +21753,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 +21773,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 +21844,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 +21868,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 +22037,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)"},
@@ -22400,14 +22647,14 @@ pci_id_t pci_vid_1425[] = {
{0x1425, 0x6002, 0xFFFF, 0xFFFF, "T6225-SO-CR Unified Wire Ethernet Controller(0x6002)"},
{0x1425, 0x6003, 0xFFFF, 0xFFFF, "T6425-CR Unified Wire Ethernet Controller(0x6003)"},
{0x1425, 0x6004, 0xFFFF, 0xFFFF, "T6425-SO-CR Unified Wire Ethernet Controller(0x6004)"},
-{0x1425, 0x6005, 0xFFFF, 0xFFFF, "T6225-OCP-SO Unified Wire Ethernet Controller(0x6005)"},
-{0x1425, 0x6006, 0xFFFF, 0xFFFF, "T62100-OCP-SO Unified Wire Ethernet Controller(0x6006)"},
+{0x1425, 0x6005, 0xFFFF, 0xFFFF, "T6225-SO-OCP3 Unified Wire Ethernet Controller(0x6005)"},
+{0x1425, 0x6006, 0xFFFF, 0xFFFF, "T6225-OCP3 Unified Wire Ethernet Controller(0x6006)"},
{0x1425, 0x6007, 0xFFFF, 0xFFFF, "T62100-LP-CR Unified Wire Ethernet Controller(0x6007)"},
{0x1425, 0x6008, 0xFFFF, 0xFFFF, "T62100-SO-CR Unified Wire Ethernet Controller(0x6008)"},
{0x1425, 0x6009, 0xFFFF, 0xFFFF, "T6210-BT Unified Wire Ethernet Controller(0x6009)"},
{0x1425, 0x600D, 0xFFFF, 0xFFFF, "T62100-CR Unified Wire Ethernet Controller(0x600D)"},
{0x1425, 0x6011, 0xFFFF, 0xFFFF, "T6225-LL-CR Unified Wire Ethernet Controller(0x6011)"},
-{0x1425, 0x6014, 0xFFFF, 0xFFFF, "T61100-OCP-SO Unified Wire Ethernet Controller(0x6014)"},
+{0x1425, 0x6014, 0xFFFF, 0xFFFF, "T62100-SO-OCP3 Unified Wire Ethernet Controller(0x6014)"},
{0x1425, 0x6015, 0xFFFF, 0xFFFF, "T6201-BT Unified Wire Ethernet Controller(0x6015)"},
{0x1425, 0x6080, 0xFFFF, 0xFFFF, "T6225-6080 Unified Wire Ethernet Controller(0x6080)"},
{0x1425, 0x6081, 0xFFFF, 0xFFFF, "T62100-6081 Unified Wire Ethernet Controller(0x6081)"},
@@ -22426,14 +22673,14 @@ pci_id_t pci_vid_1425[] = {
{0x1425, 0x6402, 0xFFFF, 0xFFFF, "T6225-SO-CR Unified Wire Ethernet Controller(0x6402)"},
{0x1425, 0x6403, 0xFFFF, 0xFFFF, "T6425-CR Unified Wire Ethernet Controller(0x6403)"},
{0x1425, 0x6404, 0xFFFF, 0xFFFF, "T6425-SO-CR Unified Wire Ethernet Controller(0x6404)"},
-{0x1425, 0x6405, 0xFFFF, 0xFFFF, "T6225-OCP-SO Unified Wire Ethernet Controller(0x6405)"},
-{0x1425, 0x6406, 0xFFFF, 0xFFFF, "T62100-OCP-SO Unified Wire Ethernet Controller(0x6406)"},
+{0x1425, 0x6405, 0xFFFF, 0xFFFF, "T6225-SO-OCP3 Unified Wire Ethernet Controller(0x6405)"},
+{0x1425, 0x6406, 0xFFFF, 0xFFFF, "T6225-OCP3 Unified Wire Ethernet Controller(0x6406)"},
{0x1425, 0x6407, 0xFFFF, 0xFFFF, "T62100-LP-CR Unified Wire Ethernet Controller(0x6407)"},
{0x1425, 0x6408, 0xFFFF, 0xFFFF, "T62100-SO-CR Unified Wire Ethernet Controller(0x6408)"},
{0x1425, 0x6409, 0xFFFF, 0xFFFF, "T6210-BT Unified Wire Ethernet Controller(0x6409)"},
{0x1425, 0x640D, 0xFFFF, 0xFFFF, "T62100-CR Unified Wire Ethernet Controller(0x640D)"},
{0x1425, 0x6411, 0xFFFF, 0xFFFF, "T6225-LL-CR Unified Wire Ethernet Controller(0x6411)"},
-{0x1425, 0x6414, 0xFFFF, 0xFFFF, "T61100-OCP-SO Unified Wire Ethernet Controller(0x6414)"},
+{0x1425, 0x6414, 0xFFFF, 0xFFFF, "T62100-SO-OCP3 Unified Wire Ethernet Controller(0x6414)"},
{0x1425, 0x6415, 0xFFFF, 0xFFFF, "T6201-BT Unified Wire Ethernet Controller(0x6415)"},
{0x1425, 0x6480, 0xFFFF, 0xFFFF, "T6225-6080 Unified Wire Ethernet Controller(0x6480)"},
{0x1425, 0x6481, 0xFFFF, 0xFFFF, "T62100-6081 Unified Wire Ethernet Controller(0x6481)"},
@@ -22452,14 +22699,14 @@ pci_id_t pci_vid_1425[] = {
{0x1425, 0x6502, 0xFFFF, 0xFFFF, "T6225-SO-CR Unified Wire Storage Controller(0x6502)"},
{0x1425, 0x6503, 0xFFFF, 0xFFFF, "T6425-CR Unified Wire Storage Controller(0x6503)"},
{0x1425, 0x6504, 0xFFFF, 0xFFFF, "T6425-SO-CR Unified Wire Storage Controller(0x6504)"},
-{0x1425, 0x6505, 0xFFFF, 0xFFFF, "T6225-OCP-SO Unified Wire Storage Controller(0x6505)"},
-{0x1425, 0x6506, 0xFFFF, 0xFFFF, "T62100-OCP-SO Unified Wire Storage Controller(0x6506)"},
+{0x1425, 0x6505, 0xFFFF, 0xFFFF, "T6225-SO-OCP3 Unified Wire Storage Controller(0x6505)"},
+{0x1425, 0x6506, 0xFFFF, 0xFFFF, "T6225-OCP3 Unified Wire Storage Controller(0x6506)"},
{0x1425, 0x6507, 0xFFFF, 0xFFFF, "T62100-LP-CR Unified Wire Storage Controller(0x6507)"},
{0x1425, 0x6508, 0xFFFF, 0xFFFF, "T62100-SO-CR Unified Wire Storage Controller(0x6508)"},
{0x1425, 0x6509, 0xFFFF, 0xFFFF, "T6210-BT Unified Wire Storage Controller(0x6509)"},
{0x1425, 0x650D, 0xFFFF, 0xFFFF, "T62100-CR Unified Wire Storage Controller(0x650D)"},
{0x1425, 0x6511, 0xFFFF, 0xFFFF, "T6225-LL-CR Unified Wire Storage Controller(0x6511)"},
-{0x1425, 0x6514, 0xFFFF, 0xFFFF, "T61100-OCP-SO Unified Wire Storage Controller(0x6514)"},
+{0x1425, 0x6514, 0xFFFF, 0xFFFF, "T62100-SO-OCP3 Unified Wire Storage Controller(0x6514)"},
{0x1425, 0x6515, 0xFFFF, 0xFFFF, "T6201-BT Unified Wire Storage Controller(0x6515)"},
{0x1425, 0x6580, 0xFFFF, 0xFFFF, "T6225-6080 Unified Wire Storage Controller(0x6580)"},
{0x1425, 0x6581, 0xFFFF, 0xFFFF, "T62100-6081 Unified Wire Storage Controller(0x6581)"},
@@ -22477,14 +22724,14 @@ pci_id_t pci_vid_1425[] = {
{0x1425, 0x6602, 0xFFFF, 0xFFFF, "T6225-SO-CR Unified Wire Storage Controller(0x6602)"},
{0x1425, 0x6603, 0xFFFF, 0xFFFF, "T6425-CR Unified Wire Storage Controller(0x6603)"},
{0x1425, 0x6604, 0xFFFF, 0xFFFF, "T6425-SO-CR Unified Wire Storage Controller(0x6604)"},
-{0x1425, 0x6605, 0xFFFF, 0xFFFF, "T6225-OCP-SO Unified Wire Storage Controller(0x6605)"},
-{0x1425, 0x6606, 0xFFFF, 0xFFFF, "T62100-OCP-SO Unified Wire Storage Controller(0x6606)"},
+{0x1425, 0x6605, 0xFFFF, 0xFFFF, "T6225-SO-OCP3 Unified Wire Storage Controller(0x6605)"},
+{0x1425, 0x6606, 0xFFFF, 0xFFFF, "T6225-OCP3 Unified Wire Storage Controller(0x6606)"},
{0x1425, 0x6607, 0xFFFF, 0xFFFF, "T62100-LP-CR Unified Wire Storage Controller(0x6607)"},
{0x1425, 0x6608, 0xFFFF, 0xFFFF, "T62100-SO-CR Unified Wire Storage Controller(0x6608)"},
{0x1425, 0x6609, 0xFFFF, 0xFFFF, "T6210-BT Unified Wire Storage Controller(0x6609)"},
{0x1425, 0x660D, 0xFFFF, 0xFFFF, "T62100-CR Unified Wire Storage Controller(0x660D)"},
{0x1425, 0x6611, 0xFFFF, 0xFFFF, "T6225-LL-CR Unified Wire Storage Controller(0x6611)"},
-{0x1425, 0x6614, 0xFFFF, 0xFFFF, "T61100-OCP-SO Unified Wire Storage Controller(0x6614)"},
+{0x1425, 0x6614, 0xFFFF, 0xFFFF, "T62100-SO-OCP3 Unified Wire Storage Controller(0x6614)"},
{0x1425, 0x6615, 0xFFFF, 0xFFFF, "T6201-BT Unified Wire Storage Controller(0x6615)"},
{0x1425, 0x6680, 0xFFFF, 0xFFFF, "T6225-6080 Unified Wire Storage Controller(0x6680)"},
{0x1425, 0x6681, 0xFFFF, 0xFFFF, "T62100-6081 Unified Wire Storage Controller(0x6681)"},
@@ -22502,14 +22749,14 @@ pci_id_t pci_vid_1425[] = {
{0x1425, 0x6802, 0xFFFF, 0xFFFF, "T6225-SO-CR Unified Wire Ethernet Controller [VF](0x6802)"},
{0x1425, 0x6803, 0xFFFF, 0xFFFF, "T6425-CR Unified Wire Ethernet Controller [VF](0x6803)"},
{0x1425, 0x6804, 0xFFFF, 0xFFFF, "T6425-SO-CR Unified Wire Ethernet Controller [VF](0x6804)"},
-{0x1425, 0x6805, 0xFFFF, 0xFFFF, "T6225-OCP-SO Unified Wire Ethernet Controller [VF](0x6805)"},
-{0x1425, 0x6806, 0xFFFF, 0xFFFF, "T62100-OCP-SO Unified Wire Ethernet Controller [VF](0x6806)"},
+{0x1425, 0x6805, 0xFFFF, 0xFFFF, "T6225-SO-OCP3 Unified Wire Ethernet Controller [VF](0x6805)"},
+{0x1425, 0x6806, 0xFFFF, 0xFFFF, "T6225-OCP3 Unified Wire Ethernet Controller [VF](0x6806)"},
{0x1425, 0x6807, 0xFFFF, 0xFFFF, "T62100-LP-CR Unified Wire Ethernet Controller [VF](0x6807)"},
{0x1425, 0x6808, 0xFFFF, 0xFFFF, "T62100-SO-CR Unified Wire Ethernet Controller [VF](0x6808)"},
{0x1425, 0x6809, 0xFFFF, 0xFFFF, "T6210-BT Unified Wire Ethernet Controller [VF](0x6809)"},
{0x1425, 0x680D, 0xFFFF, 0xFFFF, "T62100-CR Unified Wire Ethernet Controller [VF](0x680D)"},
{0x1425, 0x6811, 0xFFFF, 0xFFFF, "T6225-LL-CR Unified Wire Ethernet Controller [VF](0x6811)"},
-{0x1425, 0x6814, 0xFFFF, 0xFFFF, "T61100-OCP-SO Unified Wire Ethernet Controller [VF](0x6814)"},
+{0x1425, 0x6814, 0xFFFF, 0xFFFF, "T62100-SO-OCP3 Unified Wire Ethernet Controller [VF](0x6814)"},
{0x1425, 0x6815, 0xFFFF, 0xFFFF, "T6201-BT Unified Wire Ethernet Controller [VF](0x6815)"},
{0x1425, 0x6880, 0xFFFF, 0xFFFF, "T6225-6080 Unified Wire Ethernet Controller [VF](0x6880)"},
{0x1425, 0x6881, 0xFFFF, 0xFFFF, "T62100-6081 Unified Wire Ethernet Controller [VF](0x6881)"},
@@ -22525,66 +22772,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 +22844,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 +22942,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)"},
@@ -22867,86 +23114,87 @@ pci_id_t pci_vid_144D[] = {
{0x144D, 0xA826, 0x1028, 0x225D, "NVMe PM1745 MU U.2 6.4TB(0x1028-0x225D)"},
{0x144D, 0xA826, 0x1028, 0x225E, "NVMe FIPS PM1745 MU U.2 12.8TB(0x1028-0x225E)"},
{0x144D, 0xA826, 0x1028, 0x225F, "NVMe PM1745 MU U.2 12.8TB(0x1028-0x225F)"},
+{0x144D, 0xA900, 0xFFFF, 0xFFFF, "NVMe SSD Controller PM9DXa(0xA900)"},
{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 +23203,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 +23440,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 +23501,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 +23579,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 +23604,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 +23646,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 +23665,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 +23754,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 +23815,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 +24008,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)"},
@@ -23879,6 +24130,7 @@ pci_id_t pci_vid_14E4[] = {
{0x14E4, 0x168E, 0x193D, 0x1003, "530F-B(0x193D-0x1003)"},
{0x14E4, 0x168E, 0x193D, 0x1006, "530F-L(0x193D-0x1006)"},
{0x14E4, 0x168E, 0x193D, 0x100F, "NIC-ETH522i-Mb-2x10G(0x193D-0x100F)"},
+{0x14E4, 0x168E, 0x4C52, 0x9812, "LREC9812AF Dual-port 10Gb Ethernet Server Adapter(0x4C52-0x9812)"},
{0x14E4, 0x1690, 0xFFFF, 0xFFFF, "NetXtreme BCM57760 Gigabit Ethernet PCIe(0x1690)"},
{0x14E4, 0x1691, 0xFFFF, 0xFFFF, "NetLink BCM57788 Gigabit Ethernet PCIe(0x1691)"},
{0x14E4, 0x1691, 0x1028, 0x04AA, "XPS 8300(0x1028-0x04AA)"},
@@ -23906,6 +24158,7 @@ pci_id_t pci_vid_14E4[] = {
{0x14E4, 0x16A1, 0xFFFF, 0xFFFF, "BCM57840 NetXtreme II 10 Gigabit Ethernet(0x16A1)"},
{0x14E4, 0x16A1, 0x1043, 0x866E, "PEB-10G/57840-2T 10GBase-T Network Adapter(0x1043-0x866E)"},
{0x14E4, 0x16A1, 0x193D, 0x100B, "NIC-ETH521i-Mb-4x10G(0x193D-0x100B)"},
+{0x14E4, 0x16A1, 0x4C52, 0x9814, "LREC9814AF Quad-port 10Gb Ethernet Server Adapter(0x4C52-0x9814)"},
{0x14E4, 0x16A2, 0xFFFF, 0xFFFF, "BCM57840 NetXtreme II 10/20-Gigabit Ethernet(0x16A2)"},
{0x14E4, 0x16A2, 0x103C, 0x1916, "FlexFabric 20Gb 2-port 630FLB Adapter(0x103C-0x1916)"},
{0x14E4, 0x16A2, 0x103C, 0x1917, "FlexFabric 20Gb 2-port 630M Adapter(0x103C-0x1917)"},
@@ -24030,6 +24283,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 +24371,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 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 +24390,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 +24702,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 +25041,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 +25050,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 +25058,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 +25152,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 +25216,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 +25303,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 +25334,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)"},
@@ -25211,88 +25468,89 @@ pci_id_t pci_vid_1542[] = {
{0x1542, 0x9290, 0xFFFF, 0xFFFF, "FPGA Card(0x9290)"},
{0x1542, 0x9300, 0xFFFF, 0xFFFF, "Universal Exhaust Gas Oxygen Sensor Simulator(0x9300)"},
{0x1542, 0x9310, 0xFFFF, 0xFFFF, "Digital Programmable Resistor(0x9310)"},
+{0x1542, 0x9320, 0xFFFF, 0xFFFF, "Arria 10 FPGA Card(0x9320)"},
{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 +25564,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 +25692,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 +25823,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 +25839,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 +25964,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)"},
@@ -25749,6 +26008,10 @@ pci_id_t pci_vid_15B3[] = {
{0x15B3, 0x021F, 0xFFFF, 0xFFFF, "CX8 Family [ConnectX-8 Secure Flash Recovery](0x021F)"},
{0x15B3, 0x0220, 0xFFFF, 0xFFFF, "BF4 Family Flash Recovery [BlueField-4 SoC Flash Recovery](0x0220)"},
{0x15B3, 0x0221, 0xFFFF, 0xFFFF, "BF4 Family Secure Flash Recovery [BlueField-4 Secure Flash Recovery](0x0221)"},
+{0x15B3, 0x0222, 0xFFFF, 0xFFFF, "CX8 PCIe Switch Family [ConnectX-8 PCIe Switch Flash Recovery](0x0222)"},
+{0x15B3, 0x0223, 0xFFFF, 0xFFFF, "CX8 PCIe Switch Family [ConnectX-8 PCIe Switch Secure Flash Recovery-RMA](0x0223)"},
+{0x15B3, 0x0224, 0xFFFF, 0xFFFF, "CX9 Family [ConnectX-9 Flash Recovery](0x0224)"},
+{0x15B3, 0x0225, 0xFFFF, 0xFFFF, "CX9 Family [ConnectX-9 Secure Flash Recovery-RMA](0x0225)"},
{0x15B3, 0x024E, 0xFFFF, 0xFFFF, "MT53100 [Spectrum-2, Flash recovery mode](0x024E)"},
{0x15B3, 0x024F, 0xFFFF, 0xFFFF, "MT53100 [Spectrum-2, Secure Flash recovery mode](0x024F)"},
{0x15B3, 0x0250, 0xFFFF, 0xFFFF, "Spectrum-3, Flash recovery mode(0x0250)"},
@@ -25778,6 +26041,10 @@ 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, 0x0288, 0xFFFF, 0xFFFF, "Arcus2(0x0288)"},
+{0x15B3, 0x0289, 0xFFFF, 0xFFFF, "Arcus2 RMA(0x0289)"},
{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)"},
@@ -25875,6 +26142,8 @@ pci_id_t pci_vid_15B3[] = {
{0x15B3, 0x1020, 0xFFFF, 0xFFFF, "MT28860(0x1020)"},
{0x15B3, 0x1021, 0xFFFF, 0xFFFF, "MT2910 Family [ConnectX-7](0x1021)"},
{0x15B3, 0x1023, 0xFFFF, 0xFFFF, "CX8 Family [ConnectX-8](0x1023)"},
+{0x15B3, 0x1024, 0xFFFF, 0xFFFF, "CX8 PCIe Switch Family [ConnectX-8 PCIe Switch](0x1024)"},
+{0x15B3, 0x1025, 0xFFFF, 0xFFFF, "CX9 Family [ConnectX-9](0x1025)"},
{0x15B3, 0x1974, 0xFFFF, 0xFFFF, "MT28800 Family [ConnectX-5 PCIe Bridge](0x1974)"},
{0x15B3, 0x1975, 0xFFFF, 0xFFFF, "MT416842 Family [BlueField SoC PCIe Bridge](0x1975)"},
{0x15B3, 0x1976, 0xFFFF, 0xFFFF, "MT28908 Family [ConnectX-6 PCIe Bridge](0x1976)"},
@@ -25884,11 +26153,14 @@ pci_id_t pci_vid_15B3[] = {
{0x15B3, 0x197A, 0xFFFF, 0xFFFF, "MT43162 Family [BlueField-3 Lx SoC PCIe Bridge](0x197A)"},
{0x15B3, 0x197B, 0xFFFF, 0xFFFF, "MT43244 Family [BlueField-3 SoC PCIe Bridge](0x197B)"},
{0x15B3, 0x197C, 0xFFFF, 0xFFFF, "ConnectX/BlueField Family mlx5Gen PCIe Bridge [PCIe Bridge](0x197C)"},
+{0x15B3, 0x197D, 0xFFFF, 0xFFFF, "CX8 Family [ConnectX-8 PCIe Bridge](0x197D)"},
+{0x15B3, 0x197E, 0xFFFF, 0xFFFF, "CX9 Family [ConnectX-9 PCIe Bridge](0x197E)"},
{0x15B3, 0x2020, 0xFFFF, 0xFFFF, "MT2892 Family [ConnectX-6 Dx Emulated PCIe Bridge](0x2020)"},
{0x15B3, 0x2021, 0xFFFF, 0xFFFF, "MT42822 Family [BlueField-2 SoC Emulated PCIe Bridge](0x2021)"},
{0x15B3, 0x2023, 0xFFFF, 0xFFFF, "MT2910 Family [ConnectX-7 Emulated PCIe Bridge](0x2023)"},
{0x15B3, 0x2024, 0xFFFF, 0xFFFF, "MT43244 Family [BlueField-3 SoC Emulated PCIe Bridge](0x2024)"},
{0x15B3, 0x2025, 0xFFFF, 0xFFFF, "ConnectX/BlueField Family mlx5Gen Emulated PCIe Bridge [Emulated PCIe Bridge](0x2025)"},
+{0x15B3, 0x2100, 0xFFFF, 0xFFFF, "CX8 Family [CX8 Data Direct Interface](0x2100)"},
{0x15B3, 0x4117, 0xFFFF, 0xFFFF, "MT27712A0-FDCF-AE(0x4117)"},
{0x15B3, 0x4117, 0x1BD4, 0x0039, "SN10XMP2P25(0x1BD4-0x0039)"},
{0x15B3, 0x4117, 0x1BD4, 0x003A, "25G SFP28 SP EO251FM9 Adapter(0x1BD4-0x003A)"},
@@ -25952,6 +26224,8 @@ 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, 0xB202, 0xFFFF, 0xFFFF, "Arcus2(0xB202)"},
{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 +26250,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 +26278,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)"},
@@ -26028,16 +26302,19 @@ pci_id_t pci_vid_15B7[] = {
{0x15B7, 0x5019, 0xFFFF, 0xFFFF, "WD Green SN350 240GB (DRAM-less) / SN560E NVMe SSD(0x5019)"},
{0x15B7, 0x501A, 0xFFFF, 0xFFFF, "SanDisk Ultra 3D / WD Blue SN570 NVMe SSD (DRAM-less)(0x501A)"},
{0x15B7, 0x501D, 0xFFFF, 0xFFFF, "WD Blue SN550 NVMe SSD 2TB (DRAM-less)(0x501D)"},
-{0x15B7, 0x501E, 0xFFFF, 0xFFFF, "PC SN735 NVMe SSD (DRAM-less)(0x501E)"},
+{0x15B7, 0x501E, 0xFFFF, 0xFFFF, "PC SN735 / WD_BLACK SN750 SE NVMe SSD (DRAM-less)(0x501E)"},
{0x15B7, 0x501F, 0xFFFF, 0xFFFF, "WD PC SN735 NVMe SSD 512GB (DRAM-less)(0x501F)"},
{0x15B7, 0x5025, 0xFFFF, 0xFFFF, "WD Blue SN570 NVMe SSD 2TB(0x5025)"},
{0x15B7, 0x5026, 0xFFFF, 0xFFFF, "WD PC SN735 NVMe SSD 1TB (DRAM-less)(0x5026)"},
{0x15B7, 0x5028, 0xFFFF, 0xFFFF, "WD CH SN560 NVMe SSD(0x5028)"},
{0x15B7, 0x5030, 0xFFFF, 0xFFFF, "WD Black SN850X NVMe SSD(0x5030)"},
+{0x15B7, 0x5034, 0xFFFF, 0xFFFF, "WD PC SN5000S M.2 2230 NVMe SSD (DRAM-less)(0x5034)"},
+{0x15B7, 0x5036, 0xFFFF, 0xFFFF, "WD PC SN5000S M.2 2280 NVMe SSD (DRAM-less)(0x5036)"},
{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 +26328,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 +26348,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 +26362,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 +26699,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 +26717,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 +26732,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 +26750,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 +26795,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 +26803,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 +26876,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 +26908,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 +26933,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 +26967,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 +27216,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 +27241,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 +27250,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 +27274,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 +27308,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 +27412,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 +27490,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 +27511,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 +27588,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 +27598,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 +27670,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 +27799,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 +27839,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 +27855,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 +27864,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 +27881,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 +27891,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 +27899,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 +27924,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 +27944,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 +28034,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 +28067,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 +28126,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 +28143,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 +28181,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 +28202,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 +28253,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 +28269,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 +28327,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 +28356,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 +28393,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 +28401,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 +28459,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 +28470,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 +28499,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 +28523,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 +28551,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 +28583,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 +28667,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 +28709,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 +28719,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 +28752,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 +28779,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 +28791,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 +28923,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 +28965,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 +28993,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 +29086,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 +29108,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 +29119,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 +29139,41 @@ 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, 0x0000, 0xFFFF, 0xFFFF, "Physics Processing Unit [PhysX] 100 Series PCI Express Card(0x0000)"},
+{0x1971, 0x1011, 0xFFFF, 0xFFFF, "Physics Processing Unit [PhysX] 100 Series PCI Card(0x1011)"},
{0x1971, 0x1011, 0x1043, 0x0001, "PhysX P1(0x1043-0x0001)"},
+{0x1971, 0x1021, 0xFFFF, 0xFFFF, "Physics Processing Unit [PhysX] 200 Series PCI Express Card(0x1021)"},
}; /* 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 +29183,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 +29226,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 +29244,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 +29319,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 +29476,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 +29485,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 +29505,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 +29517,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 +29539,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 +29565,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 +29575,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 +29600,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 +29617,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 +29641,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 +29699,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 +29741,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 +29797,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 +29847,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 +29857,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 +29888,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 +29918,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 +30017,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 +30047,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 +30068,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)"},
@@ -29789,6 +30108,7 @@ pci_id_t pci_vid_1B4B[] = {
{0x1B4B, 0x2241, 0x1B96, 0x4000, "WD_BLACK AN1500 NVMe SSD(0x1B96-0x4000)"},
{0x1B4B, 0x2241, 0x1D49, 0x0306, "ThinkSystem M.2 NVMe 2-Bay RAID Enablement Kit(0x1D49-0x0306)"},
{0x1B4B, 0x2241, 0x1D49, 0x0307, "ThinkSystem 7mm NVMe 2-Bay Rear RAID Enablement Kit(0x1D49-0x0307)"},
+{0x1B4B, 0x2B42, 0xFFFF, 0xFFFF, "88W8997 2.4/5 GHz Dual-Band 2x2 Wi-Fi® 5 (802.11ac) + Bluetooth® 5.3 Solution(0x2B42)"},
{0x1B4B, 0x2B43, 0xFFFF, 0xFFFF, "NXP 88W9098 Wi-Fi 6 (ax) MAC #1(0x2B43)"},
{0x1B4B, 0x2B44, 0xFFFF, 0xFFFF, "NXP 88W9098 Wi-Fi 6 (ax) MAC #2(0x2B44)"},
{0x1B4B, 0x2B45, 0xFFFF, 0xFFFF, "NXP 88W9098 Bluetooth 5.3(0x2B45)"},
@@ -29830,11 +30150,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 +30164,16 @@ 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_1B61[] = {
+{0x1B61, 0xFFFF, 0xFFFF, 0xFFFF, "Byd Precision Manufacture Co.,Ltd(0x1B61)"},
+}; /* pci_vid_1B61[] */
+
+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 +30181,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 +30190,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 +30200,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 +30213,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 +30240,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 +30327,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 +30340,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 +30363,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 +30394,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 +30409,62 @@ 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)"},
+{0x1BEE, 0x0004, 0xFFFF, 0xFFFF, "CAN-IB120/PCIe Mini(0x0004)"},
+{0x1BEE, 0x0005, 0xFFFF, 0xFFFF, "CAN-IB130/PCIe 104(0x0005)"},
+{0x1BEE, 0x0006, 0xFFFF, 0xFFFF, "CAN-IB230/PCIe 104(0x0006)"},
+{0x1BEE, 0x000E, 0xFFFF, 0xFFFF, "CAN-IB500/PCIe(0x000E)"},
+{0x1BEE, 0x000F, 0xFFFF, 0xFFFF, "CAN-IB600/PCIe(0x000F)"},
+{0x1BEE, 0x0010, 0xFFFF, 0xFFFF, "CAN-IB300/PCI(0x0010)"},
+{0x1BEE, 0x0011, 0xFFFF, 0xFFFF, "CAN-IB400/PCI(0x0011)"},
+{0x1BEE, 0x0012, 0xFFFF, 0xFFFF, "CAN-IB520/PCIe Mini(0x0012)"},
+{0x1BEE, 0x0016, 0xFFFF, 0xFFFF, "CAN-IB410/PMC(0x0016)"},
+{0x1BEE, 0x001C, 0xFFFF, 0xFFFF, "CAN-IB810/PMC(0x001C)"},
+{0x1BEE, 0x001E, 0xFFFF, 0xFFFF, "INpact PCIe(0x001E)"},
+{0x1BEE, 0x001F, 0xFFFF, 0xFFFF, "INpact PCIe Mini(0x001F)"},
+{0x1BEE, 0x0029, 0xFFFF, 0xFFFF, "INpact M.2(0x0029)"},
+{0x1BEE, 0x002D, 0xFFFF, 0xFFFF, "CAN-IB630/PCIe 104(0x002D)"},
+{0x1BEE, 0x002E, 0xFFFF, 0xFFFF, "CAN-IB640/PCIe(0x002E)"},
}; /* 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 +30480,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 +30497,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 +30531,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 +30544,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 +30584,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)"},
@@ -30257,6 +30605,7 @@ pci_id_t pci_vid_1C5C[] = {
{0x1C5C, 0x2429, 0xFFFF, 0xFFFF, "PE6011 NVMe Solid State Drive(0x2429)"},
{0x1C5C, 0x243B, 0xFFFF, 0xFFFF, "PE6110 NVMe Solid State Drive(0x243B)"},
{0x1C5C, 0x243B, 0x1C5C, 0x0100, "PE6110 NVMe Solid State Drive(0x1C5C-0x0100)"},
+{0x1C5C, 0x2527, 0xFFFF, 0xFFFF, "PE4010 NVMe Solid State Drive(0x2527)"},
{0x1C5C, 0x2839, 0xFFFF, 0xFFFF, "PE8000 Series NVMe Solid State Drive(0x2839)"},
{0x1C5C, 0x2839, 0x1028, 0x2143, "DC NVMe SED PE8010 RI U.2 960GB(0x1028-0x2143)"},
{0x1C5C, 0x2839, 0x1028, 0x2144, "DC NVMe PE8010 RI U.2 960GB(0x1028-0x2144)"},
@@ -30283,7 +30632,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)"},
@@ -30386,37 +30735,45 @@ pci_id_t pci_vid_1C5F[] = {
{0x1C5F, 0x003F, 0x1C5F, 0x5445, "NVMe SSD PBlaze7 7946 6400G E1.S(0x1C5F-0x5445)"},
{0x1C5F, 0x003F, 0x1C5F, 0x5450, "NVMe SSD PBlaze7 7946 12800G AIC(0x1C5F-0x5450)"},
{0x1C5F, 0x003F, 0x1C5F, 0x5451, "NVMe SSD PBlaze7 7946 12800G 2.5\" U.2(0x1C5F-0x5451)"},
+{0x1C5F, 0x003F, 0x1EA0, 0x2100, "TP2510 Series U.2 NVMe Datacenter SSD(3.84TB)(0x1EA0-0x2100)"},
+{0x1C5F, 0x003F, 0x1EA0, 0x2101, "TP2511 Series U.2 NVMe Datacenter SSD(3.84TB)(0x1EA0-0x2101)"},
+{0x1C5F, 0x003F, 0x1EA0, 0x2110, "TP2510 Series E3.S NVMe Datacenter SSD(3.84TB)(0x1EA0-0x2110)"},
+{0x1C5F, 0x003F, 0x1EA0, 0x2111, "TP2511 Series E3.S NVMe Datacenter SSD(3.84TB)(0x1EA0-0x2111)"},
+{0x1C5F, 0x003F, 0x1EA0, 0x2200, "TP2510 Series U.2 NVMe Datacenter SSD(7.68TB)(0x1EA0-0x2200)"},
+{0x1C5F, 0x003F, 0x1EA0, 0x2201, "TP2511 Series U.2 NVMe Datacenter SSD(7.68TB)(0x1EA0-0x2201)"},
+{0x1C5F, 0x003F, 0x1EA0, 0x2210, "TP2510 Series E3.S NVMe Datacenter SSD(7.68TB)(0x1EA0-0x2210)"},
+{0x1C5F, 0x003F, 0x1EA0, 0x2211, "TP2511 Series E3.S NVMe Datacenter SSD(7.68TB)(0x1EA0-0x2211)"},
{0x1C5F, 0x0540, 0xFFFF, 0xFFFF, "PBlaze4 NVMe SSD(0x0540)"},
{0x1C5F, 0x0550, 0xFFFF, 0xFFFF, "PBlaze5 700/900(0x0550)"},
{0x1C5F, 0x0555, 0xFFFF, 0xFFFF, "PBlaze5 510/516(0x0555)"},
{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 +30793,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 +30815,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)"},
@@ -30522,26 +30881,30 @@ pci_id_t pci_vid_1CC4[] = {
{0x1CC4, 0x8030, 0x1CC4, 0x2213, "NVMe SSD UH832a E3.S 3.2TB(0x1CC4-0x2213)"},
{0x1CC4, 0x8030, 0x1CC4, 0x2214, "NVMe SSD UH832a E3.S 6.4TB(0x1CC4-0x2214)"},
{0x1CC4, 0x8030, 0x1CC4, 0x2215, "NVMe SSD UH832a E3.S 12.8TB(0x1CC4-0x2215)"},
+{0x1CC4, 0x8030, 0x1CC4, 0x3122, "NVMe SSD UH712a U.2 1.92TB(0x1CC4-0x3122)"},
+{0x1CC4, 0x8030, 0x1CC4, 0x3123, "NVMe SSD UH712a U.2 3.84TB(0x1CC4-0x3123)"},
+{0x1CC4, 0x8030, 0x1CC4, 0x3124, "NVMe SSD UH712a U.2 7.68TB(0x1CC4-0x3124)"},
+{0x1CC4, 0x8030, 0x1CC4, 0x3125, "NVMe SSD UH712a U.2 15.36TB(0x1CC4-0x3125)"},
}; /* 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 +30915,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 +30927,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 +30948,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 +30988,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 +30998,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 +31066,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 +31096,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 +31122,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 +31130,78 @@ 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, 0x0001, 0x4C52, 0x6880, "LREC6880BT Single-port 10Gb Ethernet Network Adapter(0x4C52-0x6880)"},
+{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, 0x04C0, 0x4C52, 0x1053, "LRES1053PT Quad-port 10Gb Ethernet Network Adapter(0x4C52-0x1053)"},
+{0x1D6A, 0x04C0, 0x4C52, 0x2051, "LRES2051PT Single-port 10Gb Ethernet Network Adapter(0x4C52-0x2051)"},
+{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, 0x07B1, 0x4C52, 0x6880, "LREC6880BT Single-port 10Gb Ethernet Network Adapter(0x4C52-0x6880)"},
{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 +31240,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,21 +31315,21 @@ 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)"},
{0x1D79, 0x2264, 0xFFFF, 0xFFFF, "NVMe PCIe SSD 250H(0x2264)"},
-{0x1D79, 0x2267, 0xFFFF, 0xFFFF, "NVMe PCIe SSD 240S/MTE710T(0x2267)"},
+{0x1D79, 0x2267, 0xFFFF, 0xFFFF, "NVMe PCIe SSD 220S/240S/MTE710T(0x2267)"},
{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 +31337,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 +31347,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 +31397,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 +31442,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 +31483,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 +31514,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 +31769,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 +31782,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 +31790,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 +31813,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 +31850,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 +31882,20 @@ 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)"},
+{0x1DF5, 0x2263, 0xFFFF, 0xFFFF, "kimtigo MG931K NVMe SSD (DRAM-less)(0x2263)"},
}; /* 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 +31907,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 +32009,27 @@ 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, 0x002A, 0xFFFF, 0xFFFF, "Exceria Plus G3 NVMe SSD (DRAM-less)(0x002A)"},
+{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 +32040,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)"},
@@ -31647,25 +32060,28 @@ pci_id_t pci_vid_1E36[] = {
{0x1E36, 0x8032, 0xFFFF, 0xFFFF, "S6 [Enflame](0x8032)"},
{0x1E36, 0xC031, 0xFFFF, 0xFFFF, "S30 [Enflame](0xC031)"},
{0x1E36, 0xC032, 0xFFFF, 0xFFFF, "S90 [Enflame](0xC032)"},
-{0x1E36, 0xC033, 0xFFFF, 0xFFFF, "S60 [Enflame](0xC033)"},
+{0x1E36, 0xC033, 0xFFFF, 0xFFFF, "S60G [Enflame](0xC033)"},
+{0x1E36, 0xC035, 0xFFFF, 0xFFFF, "S60 [Enflame](0xC035)"},
}; /* 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 ODP 7.68TB (J5001)(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,12 +32116,43 @@ 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 ODP 15.36TB (J5001)(0x1E3B-0x00C9)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00CA, "Enterprise NVMe SSD U.2 ODP 3.84TB (J5102)(0x1E3B-0x00CA)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00CB, "Enterprise NVMe SSD U.2 ODP 7.68TB (J5102)(0x1E3B-0x00CB)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00CC, "Enterprise NVMe SSD U.2 QDP 3.84TB (J5101)(0x1E3B-0x00CC)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00CD, "Enterprise NVMe SSD U.2 ODP 7.68TB (J5101)(0x1E3B-0x00CD)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00CE, "Enterprise NVMe SSD U.2 QDP 3.84TB (J5101D)(0x1E3B-0x00CE)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00CF, "Enterprise NVMe SSD U.2 ODP 7.68TB (J5101D)(0x1E3B-0x00CF)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00DC, "Enterprise NVMe SSD U.2 ODP 30.72TB with SAMSUNG 32GB DRAM (J5001)(0x1E3B-0x00DC)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00DD, "Enterprise NVMe SSD U.2 ODP 30.72TB with MT 32GB DRAM(J5001)(0x1E3B-0x00DD)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00DE, "Enterprise NVMe SSD U.2 ODP 15.36TB with SK 16GB DRAM(J5001D)(0x1E3B-0x00DE)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00DF, "Enterprise NVMe SSD U.2 ODP 30.72TB with SAMSUNG 32GB DRAM(J5001D)(0x1E3B-0x00DF)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00E7, "Enterprise NVMe SSD U.2 ODP 30.72TB with MT 32GB DRAM(J5001D)(0x1E3B-0x00E7)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00E8, "Enterprise NVMe SSD U.2 QDP 3.20TB (J5301)(0x1E3B-0x00E8)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00E9, "Enterprise NVMe SSD U.2 ODP 6.40TB (J5301)(0x1E3B-0x00E9)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00EA, "Enterprise NVMe SSD U.2 QDP 3.20TB (J5301D)(0x1E3B-0x00EA)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00EB, "Enterprise NVMe SSD U.2 ODP 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)"},
{0x1E3B, 0x0600, 0x1E3B, 0x00F3, "Enterprise NVMe SSD U.2 3.20TB (X2900)(0x1E3B-0x00F3)"},
{0x1E3B, 0x0600, 0x1E3B, 0x00F5, "Enterprise NVMe SSD U.2 0.40TB (X2900P)(0x1E3B-0x00F5)"},
{0x1E3B, 0x0600, 0x1E3B, 0x00F6, "Enterprise NVMe SSD U.2 0.80TB (X2900P)(0x1E3B-0x00F6)"},
+{0x1E3B, 0x0800, 0xFFFF, 0xFFFF, "DP800(0x0800)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x0001, "Enterprise NVMe SSD U.2 QDP 3.84TB(R6100)(0x1E3B-0x0001)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x0007, "Enterprise NVMe SSD U.2 ODP 15.36TB (R6100)(0x1E3B-0x0007)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x000A, "Enterprise NVMe SSD U.2 3.20TB (R6300)(0x1E3B-0x000A)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x000D, "Enterprise NVMe SSD U.2 6.40TB (R6300)(0x1E3B-0x000D)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x0010, "Enterprise NVMe SSD U.2 12.80TB (R6300)(0x1E3B-0x0010)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x0018, "Enterprise NVMe SSD U.2 QDP 3.84TB (R6100C)(0x1E3B-0x0018)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x0019, "Enterprise NVMe SSD U.2 ODP 7.68TB (R6100C)(0x1E3B-0x0019)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x001A, "Enterprise NVMe SSD U.2 3.20TB (R6300C)(0x1E3B-0x001A)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x001B, "Enterprise NVMe SSD U.2 6.40TB (R6300C)(0x1E3B-0x001B)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x001C, "Enterprise NVMe SSD U.2 ODP 7.68TB (R6100)(0x1E3B-0x001C)"},
{0x1E3B, 0x1098, 0xFFFF, 0xFFFF, "Haishen3 NVMe SSD(0x1098)"},
{0x1E3B, 0x1098, 0x1E3B, 0x0001, "Enterprise NVMe SSD U.2 0.8TB (H2100)(0x1E3B-0x0001)"},
{0x1E3B, 0x1098, 0x1E3B, 0x0002, "Enterprise NVMe SSD U.2 0.96TB (H2200)(0x1E3B-0x0002)"},
@@ -31744,22 +32191,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)"},
@@ -31769,93 +32216,101 @@ pci_id_t pci_vid_1E49[] = {
{0x1E49, 0x1011, 0xFFFF, 0xFFFF, "PC210 NVMe SSD(0x1011)"},
{0x1E49, 0x1013, 0xFFFF, 0xFFFF, "PC210 NVMe SSD(0x1013)"},
{0x1E49, 0x1031, 0xFFFF, 0xFFFF, "PC300 NVMe SSD (DRAM-less)(0x1031)"},
+{0x1E49, 0x1033, 0xFFFF, 0xFFFF, "PC300 NVMe SSD (DRAM-less)(0x1033)"},
+{0x1E49, 0x1071, 0xFFFF, 0xFFFF, "PC411 NVMe SSD (DRAM-less)(0x1071)"},
}; /* 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, 0x401E, 0x1E52, 0x0014, "n300(0x1E52-0x0014)"},
+{0x1E52, 0x401E, 0x1E52, 0x0018, "n150(0x1E52-0x0018)"},
{0x1E52, 0xB140, 0xFFFF, 0xFFFF, "Blackhole(0xB140)"},
{0x1E52, 0xFACA, 0xFFFF, 0xFFFF, "Grayskull(0xFACA)"},
+{0x1E52, 0xFACA, 0x1E52, 0x0003, "e150(0x1E52-0x0003)"},
+{0x1E52, 0xFACA, 0x1E52, 0x0007, "e75(0x1E52-0x0007)"},
+{0x1E52, 0xFACA, 0x1E52, 0x000A, "e300(0x1E52-0x000A)"},
}; /* 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 +32326,103 @@ 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)"},
+{0x1EA0, 0x2A22, 0xFFFF, 0xFFFF, "Cloud Intelligent Inference Controller(0x2A22)"},
}; /* 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 +32447,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 +32463,33 @@ 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)"},
+{0x1ED2, 0x1111, 0xFFFF, 0xFFFF, "RNGD(0x1111)"},
+{0x1ED2, 0x1111, 0x0000, 0x1111, "RNGD-S(0x0000-0x1111)"},
+{0x1ED2, 0x1111, 0x0000, 0x2222, "RNGD VF(0x0000-0x2222)"},
+{0x1ED2, 0x1111, 0x0000, 0x3333, "RNGD-S VF(0x0000-0x3333)"},
}; /* 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,9 +32505,10 @@ 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, 0x0222, 0x1ED5, 0x0001, "C3150(0x1ED5-0x0001)"},
{0x1ED5, 0x0223, 0xFFFF, 0xFFFF, "G2S4(0x0223)"},
{0x1ED5, 0x0251, 0xFFFF, 0xFFFF, "G2N10(0x0251)"},
{0x1ED5, 0x02FF, 0xFFFF, 0xFFFF, "MTT HDMI/DP Audio(0x02FF)"},
@@ -32043,16 +32519,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 +32538,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 +32592,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 +32619,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 +32646,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 +32667,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 +32713,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 +32725,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 +32766,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 +32810,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 +32873,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 +32912,109 @@ 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_1FE9[] = {
+{0x1FE9, 0xFFFF, 0xFFFF, 0xFFFF, "MemryX(0x1FE9)"},
+}; /* pci_vid_1FE9[] */
+
+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_202C[] = {
+{0x202C, 0xFFFF, 0xFFFF, 0xFFFF, "CAEN S.p.A.(0x202C)"},
+{0x202C, 0x5818, 0xFFFF, 0xFFFF, "A5818(0x5818)"},
+}; /* pci_vid_202C[] */
+
+static pci_id_t const pci_vid_2036[] = {
+{0x2036, 0xFFFF, 0xFFFF, 0xFFFF, "Netforward Microelectronics Co., Ltd.(0x2036)"},
+{0x2036, 0x1618, 0xFFFF, 0xFFFF, "NF1618 PCI Express Ethernet Controller(0x1618)"},
+{0x2036, 0x1619, 0xFFFF, 0xFFFF, "NF1618 Family Virtual Function(0x1619)"},
+}; /* pci_vid_2036[] */
+
+static pci_id_t const pci_vid_2046[] = {
+{0x2046, 0xFFFF, 0xFFFF, 0xFFFF, "GXMICRO Technology (Shanghai) 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)"},
+{0x22DB, 0x1200, 0xFFFF, 0xFFFF, "NVMe Streamer EP ERD(0x1200)"},
}; /* 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 +33024,91 @@ 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, 0x501C, 0xFFFF, 0xFFFF, "NV2 NVMe SSD E19T (DRAM-less)(0x501C)"},
+{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, 0x5023, 0xFFFF, 0xFFFF, "NV2 NVMe SSD SM2269XT(0x5023)"},
+{0x2646, 0x5021, 0xFFFF, 0xFFFF, "OM8SEP4 Design-In PCIe 4 NVMe SSD (QLC) (DRAM-less)(0x5021)"},
+{0x2646, 0x5022, 0xFFFF, 0xFFFF, "OM8PGP4 Design-In PCIe 4 NVMe SSD (QLC) (DRAM-less)(0x5022)"},
+{0x2646, 0x5023, 0xFFFF, 0xFFFF, "NV2 NVMe SSD SM2269XT (DRAM-less)(0x5023)"},
+{0x2646, 0x5024, 0xFFFF, 0xFFFF, "DC2000B NVMe SSD E18DC(0x5024)"},
}; /* 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 +33139,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 +33173,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 +33237,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 +33256,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 +33284,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 +33333,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 +33404,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 +33570,49 @@ 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, 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, 0xA006, "LREG1006PT Single-port 1.2Gb Network Security Isolation Adapter(0x4C52-0xA006)"},
+{0x4C52, 0x1002, 0x4C52, 0xA007, "LREG1007PT Quad-port 10Gb Smart Ethernet Network Adapter(0x4C52-0xA007)"},
+{0x4C52, 0x1003, 0xFFFF, 0xFFFF, "Smart Network Adapter(0x1003)"},
+{0x4C52, 0x1004, 0xFFFF, 0xFFFF, "Smart Network Adapter(0x1004)"},
+{0x4C52, 0x1004, 0x4C52, 0xB010, "LREG1010PF Single-port 10Gb FPGA Network Security Isolation Adapter(0x4C52-0xB010)"},
+{0x4C52, 0x1004, 0x4C52, 0xB011, "LREG1011PF Dual-port 10Gb FPGA Network Security Isolation Adapter(0x4C52-0xB011)"},
}; /* 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 +33621,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 +33647,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 +33677,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 +33883,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 +33912,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 +33982,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 +34041,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 +34049,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 +34067,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 +34239,8 @@ 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, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{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 +34249,8 @@ 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, 0x0102, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{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 +34335,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 +34358,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 +34477,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)"},
@@ -34292,7 +34859,10 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x0B60, 0x8086, 0x8D08, "NVMe Datacenter SSD [3DNAND] VE 2.5\" U.2 (P5316)(0x8086-0x8D08)"},
{0x8086, 0x0B60, 0x8086, 0x8D1D, "NVMe Datacenter SSD [3DNAND] VE E1.L 9.5/18mm (P5316)(0x8086-0x8D1D)"},
{0x8086, 0x0B60, 0x8086, 0xC008, "NVMe Datacenter SSD [3DNAND] SE U.2 15mm (P5530)(0x8086-0xC008)"},
+{0x8086, 0x0B69, 0xFFFF, 0xFFFF, "Ponte Vecchio XT (2 Tile) [Data Center GPU Max 1450](0x0B69)"},
+{0x8086, 0x0B6E, 0xFFFF, 0xFFFF, "Ponte Vecchio XT (1 Tile) [Data Center GPU Max 1100C](0x0B6E)"},
{0x8086, 0x0BD0, 0xFFFF, 0xFFFF, "Ponte Vecchio XL (2 Tile)(0x0BD0)"},
+{0x8086, 0x0BD4, 0xFFFF, 0xFFFF, "Ponte Vecchio XT (2 Tile) [Data Center GPU Max 1550VG](0x0BD4)"},
{0x8086, 0x0BD5, 0xFFFF, 0xFFFF, "Ponte Vecchio XT (2 Tile) [Data Center GPU Max 1550](0x0BD5)"},
{0x8086, 0x0BD6, 0xFFFF, 0xFFFF, "Ponte Vecchio XT (2 Tile) [Data Center GPU Max 1550](0x0BD6)"},
{0x8086, 0x0BD7, 0xFFFF, 0xFFFF, "Ponte Vecchio XT (2 Tile) [Data Center GPU Max 1350](0x0BD7)"},
@@ -35003,6 +35573,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x10C9, 0x10A9, 0x8028, "UV-BaseIO dual-port GbE(0x10A9-0x8028)"},
{0x8086, 0x10C9, 0x13A3, 0x0037, "DS4100 Secure Multi-Gigabit Server Adapter with Compression(0x13A3-0x0037)"},
{0x8086, 0x10C9, 0x15D9, 0xA811, "H8DGU(0x15D9-0xA811)"},
+{0x8086, 0x10C9, 0x4C52, 0x9212, "LREC9212PT Dual-port 10Gb Ethernet Network Adapter(0x4C52-0x9212)"},
{0x8086, 0x10C9, 0x8086, 0xA01C, "Gigabit ET Dual Port Server Adapter(0x8086-0xA01C)"},
{0x8086, 0x10C9, 0x8086, 0xA03C, "Gigabit ET Dual Port Server Adapter(0x8086-0xA03C)"},
{0x8086, 0x10C9, 0x8086, 0xA04C, "Gigabit ET Dual Port Server Adapter(0x8086-0xA04C)"},
@@ -35020,6 +35591,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x10D3, 0x15D9, 0x0605, "X8SIL(0x15D9-0x0605)"},
{0x8086, 0x10D3, 0x15D9, 0x060A, "X7SPA-H/X7SPA-HF Motherboard(0x15D9-0x060A)"},
{0x8086, 0x10D3, 0x15D9, 0x060D, "C7SIM-Q Motherboard(0x15D9-0x060D)"},
+{0x8086, 0x10D3, 0x4C52, 0x2201, "LRES2201PT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2201)"},
{0x8086, 0x10D3, 0x8086, 0x0001, "Gigabit CT2 Desktop Adapter(0x8086-0x0001)"},
{0x8086, 0x10D3, 0x8086, 0x3578, "Server Board S1200BTLR(0x8086-0x3578)"},
{0x8086, 0x10D3, 0x8086, 0x357A, "Server Board S1200BTS(0x8086-0x357A)"},
@@ -35051,6 +35623,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x10E6, 0x8086, 0xA02F, "Gigabit EF Dual Port Server Adapter(0x8086-0xA02F)"},
{0x8086, 0x10E7, 0xFFFF, 0xFFFF, "82576 Gigabit Network Connection(0x10E7)"},
{0x8086, 0x10E7, 0x103C, 0x31FF, "NC362i Integrated Dual Port BL-c Gigabit Server Adapter(0x103C-0x31FF)"},
+{0x8086, 0x10E7, 0x4C52, 0x9701, "LREC9701EF Single-port 1Gb Ethernet Network Adapter(0x4C52-0x9701)"},
{0x8086, 0x10E8, 0xFFFF, 0xFFFF, "82576 Gigabit Network Connection(0x10E8)"},
{0x8086, 0x10E8, 0x8086, 0xA02B, "Gigabit ET Quad Port Server Adapter(0x8086-0xA02B)"},
{0x8086, 0x10E8, 0x8086, 0xA02C, "Gigabit ET Quad Port Server Adapter(0x8086-0xA02C)"},
@@ -35110,6 +35683,11 @@ 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, 0x1024, "LR-LINK LRES9804BF Quad-port 10Gb Ethernet Server Adapter(0x4C52-0x1024)"},
+{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 +35937,22 @@ 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, 0x12D5, 0xFFFF, 0xFFFF, "Ethernet Controller E830-C for backplane(0x12D5)"},
+{0x8086, 0x12D8, 0xFFFF, 0xFFFF, "Ethernet Controller E830-C for QSFP(0x12D8)"},
+{0x8086, 0x12DA, 0xFFFF, 0xFFFF, "Ethernet Controller E830-C for SFP(0x12DA)"},
+{0x8086, 0x12DC, 0xFFFF, 0xFFFF, "Ethernet Controller E830-XXV for backplane(0x12DC)"},
+{0x8086, 0x12DD, 0xFFFF, 0xFFFF, "Ethernet Controller E830-XXV for QSFP(0x12DD)"},
+{0x8086, 0x12DE, 0xFFFF, 0xFFFF, "Ethernet Controller E830-XXV for SFP(0x12DE)"},
{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)"},
@@ -35372,6 +35962,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1502, 0xFFFF, 0xFFFF, "82579LM Gigabit Network Connection (Lewisville)(0x1502)"},
{0x8086, 0x1502, 0x1028, 0x04A3, "Precision M4600(0x1028-0x04A3)"},
{0x8086, 0x1502, 0x17AA, 0x21CE, "ThinkPad T520(0x17AA-0x21CE)"},
+{0x8086, 0x1502, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x1502, 0x8086, 0x3578, "Server Board S1200BTLR(0x8086-0x3578)"},
{0x8086, 0x1502, 0x8086, 0x357A, "Server Board S1200BTS(0x8086-0x357A)"},
{0x8086, 0x1503, 0xFFFF, 0xFFFF, "82579V Gigabit Network Connection(0x1503)"},
@@ -35452,6 +36043,20 @@ 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, 0x2003, "LRES2003PT Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x2003)"},
+{0x8086, 0x1521, 0x4C52, 0x2005, "LRES2005PT Quad-port 1Gb Ethernet Network Adapter(0x4C52-0x2005)"},
+{0x8086, 0x1521, 0x4C52, 0x2006, "LRES2006PT Six-port 1Gb Ethernet Network Adapter(0x4C52-0x2006)"},
+{0x8086, 0x1521, 0x4C52, 0x2008, "LRES2008PT Eight-port 1Gb Ethernet Network Adapter(0x4C52-0x2008)"},
+{0x8086, 0x1521, 0x4C52, 0x2018, "LRES2018PT Twelve-port 1Gb Ethernet Network Adapter(0x4C52-0x2018)"},
+{0x8086, 0x1521, 0x4C52, 0x2202, "LRES2202PT Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x2202)"},
+{0x8086, 0x1521, 0x4C52, 0x2217, "LRES2217PT Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x2217)"},
+{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, 0x4C52, 0x9712, "LREC9712HT Dual-port 10Gb Ethernet Network Adapter(0x4C52-0x9712)"},
{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)"},
@@ -35466,6 +36071,11 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1522, 0xFFFF, 0xFFFF, "I350 Gigabit Fiber Network Connection(0x1522)"},
{0x8086, 0x1522, 0x108E, 0x7B17, "Quad Port GbE PCIe 2.0 ExpressModule, MMF(0x108E-0x7B17)"},
{0x8086, 0x1522, 0x108E, 0x7B19, "Dual Port GbE PCIe 2.0 Low Profile Adapter, MMF(0x108E-0x7B19)"},
+{0x8086, 0x1522, 0x4C52, 0x1006, "LRES1006PF Six-port 1Gb Ethernet Network Adapter(0x4C52-0x1006)"},
+{0x8086, 0x1522, 0x4C52, 0x2203, "LRES2203PF Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x2203)"},
+{0x8086, 0x1522, 0x4C52, 0x9710, "LREC9710HF Single-port 1Gb Ethernet Network Adapter(0x4C52-0x9710)"},
+{0x8086, 0x1522, 0x4C52, 0x9712, "LREC9712HF Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x9712)"},
+{0x8086, 0x1522, 0x4C52, 0x9714, "LREC9714HF Quad-port 1Gb Ethernet Network Adapter(0x4C52-0x9714)"},
{0x8086, 0x1522, 0x8086, 0x0002, "Ethernet Server Adapter I350-T2(0x8086-0x0002)"},
{0x8086, 0x1522, 0x8086, 0x0003, "Ethernet Server Adapter I350-F4(0x8086-0x0003)"},
{0x8086, 0x1522, 0x8086, 0x0004, "Ethernet Server Adapter I350-F2(0x8086-0x0004)"},
@@ -35480,6 +36090,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1523, 0x103C, 0x18D1, "Ethernet 1Gb 2-port 361FLB Adapter(0x103C-0x18D1)"},
{0x8086, 0x1523, 0x103C, 0x1989, "Ethernet 1Gb 2-port 363i Adapter(0x103C-0x1989)"},
{0x8086, 0x1523, 0x103C, 0x339F, "Ethernet 1Gb 4-port 366M Adapter(0x103C-0x339F)"},
+{0x8086, 0x1523, 0x4C52, 0x9714, "LREC9714HT Quad-port 10Gb Ethernet Network Adapter(0x4C52-0x9714)"},
{0x8086, 0x1523, 0x8086, 0x1F52, "1GbE 4P I350 Mezz(0x8086-0x1F52)"},
{0x8086, 0x1524, 0xFFFF, 0xFFFF, "I350 Gigabit Connection(0x1524)"},
{0x8086, 0x1525, 0xFFFF, 0xFFFF, "82567V-4 Gigabit Network Connection(0x1525)"},
@@ -35505,6 +36116,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1528, 0x1BD4, 0x001A, "10G base-T DP ER102Ti3 Rack Adapter(0x1BD4-0x001A)"},
{0x8086, 0x1528, 0x1BD4, 0x0033, "10G base-T DP EP102Ti3 Adapter(0x1BD4-0x0033)"},
{0x8086, 0x1528, 0x1BD4, 0x0034, "10G base-T DP EP102Ti3A Adapter(0x1BD4-0x0034)"},
+{0x8086, 0x1528, 0x4C52, 0x9802, "LREC9802BT Dual-port 10Gb Ethernet Network Adapter(0x4C52-0x9802)"},
{0x8086, 0x1528, 0x8086, 0x0001, "Ethernet Converged Network Adapter X540-T2(0x8086-0x0001)"},
{0x8086, 0x1528, 0x8086, 0x0002, "Ethernet Converged Network Adapter X540-T1(0x8086-0x0002)"},
{0x8086, 0x1528, 0x8086, 0x001A, "Ethernet Converged Network Adapter X540-T2(0x8086-0x001A)"},
@@ -35530,9 +36142,22 @@ 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, 0x1051, "LRES1051PT Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x1051)"},
+{0x8086, 0x1533, 0x4C52, 0x1210, "LREC9204CT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x1210)"},
+{0x8086, 0x1533, 0x4C52, 0x2057, "LRES2057PT Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x2057)"},
+{0x8086, 0x1533, 0x4C52, 0x2206, "LRES2206PT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2206)"},
+{0x8086, 0x1533, 0x4C52, 0x2210, "LRES2210PT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2210)"},
+{0x8086, 0x1533, 0x4C52, 0x2211, "LRES2211PT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2211)"},
+{0x8086, 0x1533, 0x4C52, 0x2214, "LRES2214PT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2214)"},
+{0x8086, 0x1533, 0x4C52, 0x3002, "LRES3002PT Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x3002)"},
+{0x8086, 0x1533, 0x4C52, 0x3004, "LRES3004PT Quad-port 1Gb Ethernet Network Adapter(0x4C52-0x3004)"},
{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)"},
+{0x8086, 0x1536, 0x4C52, 0x2204, "LRES2204PT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2204)"},
+{0x8086, 0x1536, 0x4C52, 0x2212, "LRES2212PF Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2212)"},
+{0x8086, 0x1536, 0x4C52, 0x2213, "LRES2213PF Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2213)"},
+{0x8086, 0x1536, 0x4C52, 0x6230, "LREC6230PF Single-port 1Gb Ethernet Network Adapter(0x4C52-0x6230)"},
{0x8086, 0x1537, 0xFFFF, 0xFFFF, "I210 Gigabit Backplane Connection(0x1537)"},
{0x8086, 0x1537, 0x1059, 0x0110, "T4005 1GbE interface(0x1059-0x0110)"},
{0x8086, 0x1537, 0x1059, 0x0111, "T4007 1GbE interface(0x1059-0x0111)"},
@@ -35576,6 +36201,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x155D, 0x8086, 0x0001, "Ethernet Server Bypass Adapter X520-SR2(0x8086-0x0001)"},
{0x8086, 0x155D, 0x8086, 0x0002, "Ethernet Server Bypass Adapter X520-LR2(0x8086-0x0002)"},
{0x8086, 0x1560, 0xFFFF, 0xFFFF, "Ethernet Controller X540(0x1560)"},
+{0x8086, 0x1560, 0x4C52, 0x9801, "LREC9801BT Single-port 10Gb Ethernet Network Adapter(0x4C52-0x9801)"},
{0x8086, 0x1563, 0xFFFF, 0xFFFF, "Ethernet Controller X550(0x1563)"},
{0x8086, 0x1563, 0x1028, 0x1FA8, "Ethernet 10G 4P X550/I350 rNDC(0x1028-0x1FA8)"},
{0x8086, 0x1563, 0x1028, 0x1FA9, "Ethernet 10G 4P X550 rNDC(0x1028-0x1FA9)"},
@@ -35590,6 +36216,8 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1563, 0x193D, 0x1008, "560T-B(0x193D-0x1008)"},
{0x8086, 0x1563, 0x193D, 0x1009, "560T-L(0x193D-0x1009)"},
{0x8086, 0x1563, 0x193D, 0x1011, "UN-NIC-ETH563T-sL-2P(0x193D-0x1011)"},
+{0x8086, 0x1563, 0x4C52, 0x1025, "LRES1025PT Dual-port 10Gb Ethernet Network Adapter(0x4C52-0x1025)"},
+{0x8086, 0x1563, 0x4C52, 0x9812, "LREC9812BT Dual-port 10Gb Ethernet Network Adapter(0x4C52-0x9812)"},
{0x8086, 0x1563, 0x8086, 0x0001, "Ethernet Converged Network Adapter X550-T2(0x8086-0x0001)"},
{0x8086, 0x1563, 0x8086, 0x001A, "Ethernet Converged Network Adapter X550-T2(0x8086-0x001A)"},
{0x8086, 0x1563, 0x8086, 0x001B, "Ethernet Server Adapter X550-T2 for OCP(0x8086-0x001B)"},
@@ -35636,12 +36264,17 @@ 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, 0x4C52, 0x9804, "LREC9804BF Quad-port 10Gb Ethernet Server Adapter(0x4C52-0x9804)"},
+{0x8086, 0x1572, 0x4C52, 0x9812, "LREC9812BF Dual-port 10Gb Ethernet Server Adapter(0x4C52-0x9812)"},
{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 +36323,8 @@ 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, 0x4C52, 0x9902, "LREC9902BF Dual-port 40Gb Ethernet Server Adapter(0x4C52-0x9902)"},
{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)"},
@@ -35697,6 +36332,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1583, 0x8086, 0x0004, "Ethernet Server Adapter XL710-Q2OCP(0x8086-0x0004)"},
{0x8086, 0x1583, 0x8086, 0x0006, "Ethernet Converged Network Adapter XL710-Q2(0x8086-0x0006)"},
{0x8086, 0x1584, 0xFFFF, 0xFFFF, "Ethernet Controller XL710 for 40GbE QSFP+(0x1584)"},
+{0x8086, 0x1584, 0x4C52, 0x9901, "LREC9901BF Single-port 40Gb Ethernet Server Adapter(0x4C52-0x9901)"},
{0x8086, 0x1584, 0x8086, 0x0000, "Ethernet Converged Network Adapter XL710-Q1(0x8086-0x0000)"},
{0x8086, 0x1584, 0x8086, 0x0001, "Ethernet Converged Network Adapter XL710-Q1(0x8086-0x0001)"},
{0x8086, 0x1584, 0x8086, 0x0002, "Ethernet Converged Network Adapter XL710-Q1(0x8086-0x0002)"},
@@ -35717,6 +36353,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1589, 0xFFFF, 0xFFFF, "Ethernet Controller X710/X557-AT 10GBASE-T(0x1589)"},
{0x8086, 0x1589, 0x108E, 0x0000, "Quad Port 10GBase-T Adapter(0x108E-0x0000)"},
{0x8086, 0x1589, 0x108E, 0x7B1C, "Quad Port 10GBase-T Adapter(0x108E-0x7B1C)"},
+{0x8086, 0x1589, 0x4C52, 0x9804, "LREC9804BT Quad-port 10Gb Ethernet Network Adapter(0x4C52-0x9804)"},
{0x8086, 0x1589, 0x8086, 0x0000, "Ethernet Converged Network Adapter X710-T(0x8086-0x0000)"},
{0x8086, 0x1589, 0x8086, 0x0001, "Ethernet Converged Network Adapter X710-T4(0x8086-0x0001)"},
{0x8086, 0x1589, 0x8086, 0x0002, "Ethernet Converged Network Adapter X710-T4(0x8086-0x0002)"},
@@ -35742,6 +36379,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 +36399,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 +36422,8 @@ 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, 0x1023, "LRES1023PF Quad-port 25Gb Ethernet Server Adapter(0x4C52-0x1023)"},
+{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 +36438,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 +36451,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)"},
@@ -35839,6 +36484,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x15B6, 0xFFFF, 0xFFFF, "DSL6540 USB 3.1 Controller [Alpine Ridge](0x15B6)"},
{0x8086, 0x15B7, 0xFFFF, 0xFFFF, "Ethernet Connection (2) I219-LM(0x15B7)"},
{0x8086, 0x15B8, 0xFFFF, 0xFFFF, "Ethernet Connection (2) I219-V(0x15B8)"},
+{0x8086, 0x15B8, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0x15B8, 0x1462, 0x7A72, "H270 PC MATE(0x1462-0x7A72)"},
{0x8086, 0x15B9, 0xFFFF, 0xFFFF, "Ethernet Connection (3) I219-LM(0x15B9)"},
{0x8086, 0x15BB, 0xFFFF, 0xFFFF, "Ethernet Connection (7) I219-LM(0x15BB)"},
@@ -35860,6 +36506,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x15D0, 0x8086, 0x0001, "Ethernet SDI Adapter FM10420-100GbE-QDA2(0x8086-0x0001)"},
{0x8086, 0x15D0, 0x8086, 0x0002, "Ethernet SDI Adapter FM10840-MTP2(0x8086-0x0002)"},
{0x8086, 0x15D1, 0xFFFF, 0xFFFF, "Ethernet Controller 10G X550T(0x15D1)"},
+{0x8086, 0x15D1, 0x4C52, 0x9811, "LREC9811BT Single-port 10Gb Ethernet Network Adapter(0x4C52-0x9811)"},
{0x8086, 0x15D1, 0x8086, 0x0002, "Ethernet Converged Network Adapter X550-T1(0x8086-0x0002)"},
{0x8086, 0x15D1, 0x8086, 0x001B, "Ethernet Server Adapter X550-T1 for OCP(0x8086-0x001B)"},
{0x8086, 0x15D1, 0x8086, 0x0021, "Ethernet Converged Network Adapter X550-T1(0x8086-0x0021)"},
@@ -35896,9 +36543,11 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x15EF, 0xFFFF, 0xFFFF, "JHL7540 Thunderbolt 3 Bridge [Titan Ridge DD 2018](0x15EF)"},
{0x8086, 0x15F0, 0xFFFF, 0xFFFF, "JHL7540 Thunderbolt 3 USB Controller [Titan Ridge DD 2018](0x15F0)"},
{0x8086, 0x15F2, 0xFFFF, 0xFFFF, "Ethernet Controller I225-LM(0x15F2)"},
+{0x8086, 0x15F2, 0x4C52, 0x2031, "LRES2031PT Single-port 2.5Gb Ethernet Network Adapter(0x4C52-0x2031)"},
{0x8086, 0x15F2, 0x8086, 0x0001, "Ethernet Network Adapter I225-T1(0x8086-0x0001)"},
{0x8086, 0x15F2, 0x8086, 0x0002, "Ethernet Network Adapter I225-T1(0x8086-0x0002)"},
{0x8086, 0x15F3, 0xFFFF, 0xFFFF, "Ethernet Controller I225-V(0x15F3)"},
+{0x8086, 0x15F3, 0x4C52, 0x2031, "LRES2031PT Single-port 2.5Gb Ethernet Network Adapter(0x4C52-0x2031)"},
{0x8086, 0x15F3, 0x8086, 0x0003, "Intel(R) Ethernet Controller (3) I225-V(0x8086-0x0003)"},
{0x8086, 0x15F4, 0xFFFF, 0xFFFF, "Ethernet Connection (15) I219-LM(0x15F4)"},
{0x8086, 0x15F5, 0xFFFF, 0xFFFF, "Ethernet Connection (15) I219-V(0x15F5)"},
@@ -35915,6 +36564,8 @@ 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, 0x1012, "LRES1012PT Dual-port 10Gb Ethernet Network Adapter(0x4C52-0x1012)"},
+{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)"},
@@ -35990,10 +36641,18 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1898, 0xFFFF, 0xFFFF, "Ethernet Connection E822-L for SFP(0x1898)"},
{0x8086, 0x1899, 0xFFFF, 0xFFFF, "Ethernet Connection E822-L/X557-AT 10GBASE-T(0x1899)"},
{0x8086, 0x189A, 0xFFFF, 0xFFFF, "Ethernet Connection E822-L 1GbE(0x189A)"},
-{0x8086, 0x18A0, 0xFFFF, 0xFFFF, "C4xxx Series QAT(0x18A0)"},
+{0x8086, 0x18A0, 0xFFFF, 0xFFFF, "Atom Processor P5xxx Series QAT(0x18A0)"},
{0x8086, 0x18A1, 0xFFFF, 0xFFFF, "C4XXX Series QAT Virtual Function(0x18A1)"},
+{0x8086, 0x18B3, 0xFFFF, 0xFFFF, "Atom Processor P5xxx Series SATA Controller(0x18B3)"},
+{0x8086, 0x18D0, 0xFFFF, 0xFFFF, "Atom Processor P5xxx Series USB xHCI Controller(0x18D0)"},
+{0x8086, 0x18D3, 0xFFFF, 0xFFFF, "Atom Processor P5xxx Series MEI Controller(0x18D3)"},
+{0x8086, 0x18D6, 0xFFFF, 0xFFFF, "Atom Processor P5xxx Series MEI Controller(0x18D6)"},
+{0x8086, 0x18DF, 0xFFFF, 0xFFFF, "Atom Processor P5xxx Series SMBus Controller(0x18DF)"},
+{0x8086, 0x18E0, 0xFFFF, 0xFFFF, "Atom Processor P5xxx Series SPI Controller(0x18E0)"},
+{0x8086, 0x18E1, 0xFFFF, 0xFFFF, "Atom Processor P5xxx Series Trace Hub(0x18E1)"},
{0x8086, 0x18EE, 0xFFFF, 0xFFFF, "200xx Series QAT(0x18EE)"},
{0x8086, 0x18EF, 0xFFFF, 0xFFFF, "200xx Series QAT Virtual Function(0x18EF)"},
+{0x8086, 0x18F3, 0xFFFF, 0xFFFF, "Atom Processor P5xxx Series SATA Controller(0x18F3)"},
{0x8086, 0x1900, 0xFFFF, 0xFFFF, "Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers(0x1900)"},
{0x8086, 0x1901, 0xFFFF, 0xFFFF, "6th-10th Gen Core Processor PCIe Controller (x16)(0x1901)"},
{0x8086, 0x1902, 0xFFFF, 0xFFFF, "HD Graphics 510(0x1902)"},
@@ -36027,6 +36686,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1911, 0xFFFF, 0xFFFF, "Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model(0x1911)"},
{0x8086, 0x1911, 0x1028, 0x0869, "Vostro 3470(0x1028-0x0869)"},
{0x8086, 0x1911, 0x1028, 0x09BE, "Latitude 7410(0x1028-0x09BE)"},
+{0x8086, 0x1911, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0x1911, 0x1462, 0x7A72, "H270 PC MATE(0x1462-0x7A72)"},
{0x8086, 0x1911, 0x17AA, 0x2247, "ThinkPad T570(0x17AA-0x2247)"},
{0x8086, 0x1911, 0x17AA, 0x224F, "ThinkPad X1 Carbon 5th Gen(0x17AA-0x224F)"},
@@ -36157,6 +36817,8 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1B48, 0xFFFF, 0xFFFF, "82597EX 10GbE Ethernet Controller(0x1B48)"},
{0x8086, 0x1B48, 0x8086, 0xA01F, "PRO/10GbE LR Server Adapter(0x8086-0xA01F)"},
{0x8086, 0x1B48, 0x8086, 0xA11F, "PRO/10GbE LR Server Adapter(0x8086-0xA11F)"},
+{0x8086, 0x1BCD, 0xFFFF, 0xFFFF, "Emmitsburg (C740 Family) USB 3.2 Gen 1 xHCI Controller(0x1BCD)"},
+{0x8086, 0x1BCD, 0x1BD4, 0x00A5, "RS0800I5H16i(0x1BD4-0x00A5)"},
{0x8086, 0x1BD2, 0xFFFF, 0xFFFF, "Sapphire Rapids SATA AHCI Controller(0x1BD2)"},
{0x8086, 0x1BF2, 0xFFFF, 0xFFFF, "Sapphire Rapids SATA AHCI Controller(0x1BF2)"},
{0x8086, 0x1C00, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family Desktop SATA Controller (IDE mode, ports 0-3)(0x1C00)"},
@@ -36164,6 +36826,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1C02, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family 6 port Desktop SATA AHCI Controller(0x1C02)"},
{0x8086, 0x1C02, 0x1028, 0x04AA, "XPS 8300(0x1028-0x04AA)"},
{0x8086, 0x1C02, 0x1043, 0x844D, "P8 series motherboard(0x1043-0x844D)"},
+{0x8086, 0x1C02, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x1C02, 0x8086, 0x200D, "DH61CR motherboard(0x8086-0x200D)"},
{0x8086, 0x1C02, 0x8086, 0x7270, "Server Board S1200BT Family(0x8086-0x7270)"},
{0x8086, 0x1C03, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family 6 port Mobile SATA AHCI Controller(0x1C03)"},
@@ -36214,6 +36877,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1C20, 0x1043, 0x8418, "P8P67 Deluxe Motherboard(0x1043-0x8418)"},
{0x8086, 0x1C20, 0x1043, 0x841B, "P8H67 Series Motherboard(0x1043-0x841B)"},
{0x8086, 0x1C20, 0x17AA, 0x21CF, "ThinkPad T520(0x17AA-0x21CF)"},
+{0x8086, 0x1C20, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x1C20, 0x8086, 0x2008, "DQ67SW board(0x8086-0x2008)"},
{0x8086, 0x1C20, 0x8086, 0x200D, "DH61CR motherboard(0x8086-0x200D)"},
{0x8086, 0x1C20, 0x8086, 0x7270, "Apple MacBookPro8,2 [Core i7, 15\", 2011](0x8086-0x7270)"},
@@ -36224,6 +36888,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1C22, 0x1028, 0x04DA, "Vostro 3750(0x1028-0x04DA)"},
{0x8086, 0x1C22, 0x1043, 0x844D, "P8 series motherboard(0x1043-0x844D)"},
{0x8086, 0x1C22, 0x17AA, 0x21CF, "ThinkPad T520(0x17AA-0x21CF)"},
+{0x8086, 0x1C22, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x1C22, 0x8086, 0x200D, "DH61CR motherboard(0x8086-0x200D)"},
{0x8086, 0x1C22, 0x8086, 0x7270, "Server Board S1200BT Family / Apple MacBook Pro 8,1/8,2(0x8086-0x7270)"},
{0x8086, 0x1C24, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family Thermal Management Controller(0x1C24)"},
@@ -36235,6 +36900,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1C26, 0x1028, 0x04DA, "Vostro 3750(0x1028-0x04DA)"},
{0x8086, 0x1C26, 0x1043, 0x844D, "P8 series motherboard(0x1043-0x844D)"},
{0x8086, 0x1C26, 0x17AA, 0x21CF, "ThinkPad T520(0x17AA-0x21CF)"},
+{0x8086, 0x1C26, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x1C26, 0x8086, 0x200D, "DH61CR motherboard(0x8086-0x200D)"},
{0x8086, 0x1C26, 0x8086, 0x7270, "Server Board S1200BT Family / Apple MacBook Pro 8,1/8,2(0x8086-0x7270)"},
{0x8086, 0x1C27, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family USB Universal Host Controller #1(0x1C27)"},
@@ -36248,22 +36914,26 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1C2D, 0x1028, 0x04DA, "Vostro 3750(0x1028-0x04DA)"},
{0x8086, 0x1C2D, 0x1043, 0x844D, "P8 series motherboard(0x1043-0x844D)"},
{0x8086, 0x1C2D, 0x17AA, 0x21CF, "ThinkPad T520(0x17AA-0x21CF)"},
+{0x8086, 0x1C2D, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x1C2D, 0x8086, 0x200D, "DH61CR motherboard(0x8086-0x200D)"},
{0x8086, 0x1C2D, 0x8086, 0x7270, "Server Board S1200BT Family / Apple MacBook Pro 8,1/8,2(0x8086-0x7270)"},
{0x8086, 0x1C33, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family LAN Controller(0x1C33)"},
{0x8086, 0x1C35, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family VECI Controller(0x1C35)"},
{0x8086, 0x1C3A, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family MEI Controller #1(0x1C3A)"},
+{0x8086, 0x1C3A, 0x1028, 0x0493, "Latitude E6420(0x1028-0x0493)"},
{0x8086, 0x1C3A, 0x1028, 0x04A3, "Precision M4600(0x1028-0x04A3)"},
{0x8086, 0x1C3A, 0x1028, 0x04AA, "XPS 8300(0x1028-0x04AA)"},
{0x8086, 0x1C3A, 0x1028, 0x04B2, "Vostro 3350(0x1028-0x04B2)"},
{0x8086, 0x1C3A, 0x1028, 0x04DA, "Vostro 3750(0x1028-0x04DA)"},
{0x8086, 0x1C3A, 0x1043, 0x844D, "P8 series motherboard(0x1043-0x844D)"},
{0x8086, 0x1C3A, 0x17AA, 0x21CF, "ThinkPad T520(0x17AA-0x21CF)"},
+{0x8086, 0x1C3A, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x1C3A, 0x8086, 0x200D, "DH61CR motherboard(0x8086-0x200D)"},
{0x8086, 0x1C3A, 0x8086, 0x7270, "Apple MacBookPro8,2 [Core i7, 15\", 2011](0x8086-0x7270)"},
{0x8086, 0x1C3B, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family MEI Controller #2(0x1C3B)"},
{0x8086, 0x1C3C, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family IDE-r Controller(0x1C3C)"},
{0x8086, 0x1C3D, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family KT Controller(0x1C3D)"},
+{0x8086, 0x1C3D, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x1C40, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family LPC Controller(0x1C40)"},
{0x8086, 0x1C41, 0xFFFF, 0xFFFF, "Mobile SFF 6 Series Chipset Family LPC Controller(0x1C41)"},
{0x8086, 0x1C42, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family LPC Controller(0x1C42)"},
@@ -36285,6 +36955,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x1C4C, 0xFFFF, 0xFFFF, "Q65 Express Chipset LPC Controller(0x1C4C)"},
{0x8086, 0x1C4D, 0xFFFF, 0xFFFF, "QS67 Express Chipset LPC Controller(0x1C4D)"},
{0x8086, 0x1C4E, 0xFFFF, 0xFFFF, "Q67 Express Chipset LPC Controller(0x1C4E)"},
+{0x8086, 0x1C4E, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x1C4F, 0xFFFF, 0xFFFF, "QM67 Express Chipset LPC Controller(0x1C4F)"},
{0x8086, 0x1C4F, 0x1028, 0x04A3, "Precision M4600(0x1028-0x04A3)"},
{0x8086, 0x1C4F, 0x17AA, 0x21CF, "ThinkPad T520(0x17AA-0x21CF)"},
@@ -36391,10 +37062,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 +37090,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 +37107,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 +37122,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 +37131,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 +37143,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 +37152,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 +37162,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 +37173,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 +37189,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)"},
@@ -36896,10 +37578,12 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x244E, 0x1028, 0x0211, "Optiplex 755(0x1028-0x0211)"},
{0x8086, 0x244E, 0x1028, 0x02DA, "OptiPlex 980(0x1028-0x02DA)"},
{0x8086, 0x244E, 0x1028, 0x04F7, "PowerEdge R320 server(0x1028-0x04F7)"},
+{0x8086, 0x244E, 0x103C, 0x130A, "Z600 Workstation(0x103C-0x130A)"},
{0x8086, 0x244E, 0x103C, 0x2A3B, "Pavilion A1512X(0x103C-0x2A3B)"},
{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,7 +37592,9 @@ 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, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x244E, 0x8086, 0x7270, "Server Board S1200BTS(0x8086-0x7270)"},
{0x8086, 0x2450, 0xFFFF, 0xFFFF, "82801E ISA Bridge (LPC)(0x2450)"},
{0x8086, 0x2452, 0xFFFF, 0xFFFF, "82801E USB Controller(0x2452)"},
@@ -37419,7 +38105,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 +38625,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 +38639,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 +39051,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 +39086,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 +39221,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 +40111,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)"},
@@ -40378,6 +41089,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x4538, 0xFFFF, 0xFFFF, "Elkhart Lake PCI-e Root Complex(0x4538)"},
{0x8086, 0x4555, 0xFFFF, 0xFFFF, "Elkhart Lake [UHD Graphics Gen11 16EU](0x4555)"},
{0x8086, 0x4571, 0xFFFF, 0xFFFF, "Elkhart Lake [UHD Graphics Gen11 32EU](0x4571)"},
+{0x8086, 0x4601, 0xFFFF, 0xFFFF, "Alder Lake-U15 Host and DRAM Controller(0x4601)"},
{0x8086, 0x4602, 0xFFFF, 0xFFFF, "Alder Lake Host and DRAM Controller(0x4602)"},
{0x8086, 0x460D, 0xFFFF, 0xFFFF, "12th Gen Core Processor PCI Express x16 Controller #1(0x460D)"},
{0x8086, 0x461D, 0xFFFF, 0xFFFF, "Alder Lake Innovation Platform Framework Processor Participant(0x461D)"},
@@ -40402,6 +41114,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)"},
@@ -40426,6 +41139,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x46B0, 0xFFFF, 0xFFFF, "AlderLake-P [Iris Xe Graphics](0x46B0)"},
{0x8086, 0x46B1, 0xFFFF, 0xFFFF, "AlderLake-P [Iris Xe Graphics](0x46B1)"},
{0x8086, 0x46B3, 0xFFFF, 0xFFFF, "Alder Lake-UP3 GT1 [UHD Graphics](0x46B3)"},
+{0x8086, 0x46B3, 0x1025, 0x161D, "N22C6 [Extensa 15 EX215-55](0x1025-0x161D)"},
{0x8086, 0x46B6, 0xFFFF, 0xFFFF, "AlderLake-P [Iris Xe Graphics](0x46B6)"},
{0x8086, 0x46B8, 0xFFFF, 0xFFFF, "AlderLake-P [Iris Xe Graphics](0x46B8)"},
{0x8086, 0x46BA, 0xFFFF, 0xFFFF, "AlderLake-P [Iris Xe Graphics](0x46BA)"},
@@ -40435,6 +41149,8 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x46D0, 0xFFFF, 0xFFFF, "Alder Lake-N [UHD Graphics](0x46D0)"},
{0x8086, 0x46D1, 0xFFFF, 0xFFFF, "Alder Lake-N [UHD Graphics](0x46D1)"},
{0x8086, 0x46D2, 0xFFFF, 0xFFFF, "Alder Lake-N [UHD Graphics](0x46D2)"},
+{0x8086, 0x46D3, 0xFFFF, 0xFFFF, "Alder Lake-N [Intel Graphics](0x46D3)"},
+{0x8086, 0x46D4, 0xFFFF, 0xFFFF, "Alder Lake-N [Intel Graphics](0x46D4)"},
{0x8086, 0x4905, 0xFFFF, 0xFFFF, "DG1 [Iris Xe MAX Graphics](0x4905)"},
{0x8086, 0x4906, 0xFFFF, 0xFFFF, "DG1 [Iris Xe Pod](0x4906)"},
{0x8086, 0x4907, 0xFFFF, 0xFFFF, "SG1 [Server GPU SG-18M](0x4907)"},
@@ -40463,21 +41179,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 +41273,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 +41293,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 +41301,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,8 +41377,15 @@ 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, 0x56BE, 0xFFFF, 0xFFFF, "DG2 [Arc Graphics A750E](0x56BE)"},
+{0x8086, 0x56BF, 0xFFFF, 0xFFFF, "DG2 [Arc Graphics A580E](0x56BF)"},
{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, 0x56C2, 0xFFFF, 0xFFFF, "ATS-M [Data Center GPU Flex 170G](0x56C2)"},
{0x8086, 0x5780, 0xFFFF, 0xFFFF, "Thunderbolt 80/120G Bridge [Barlow Ridge Host 80G 2023](0x5780)"},
{0x8086, 0x5781, 0xFFFF, 0xFFFF, "Thunderbolt 80/120G NHI [Barlow Ridge Host 80G 2023](0x5781)"},
{0x8086, 0x5782, 0xFFFF, 0xFFFF, "Thunderbolt 80/120G USB Controller [Barlow Ridge Host 80G 2023](0x5782)"},
@@ -40624,7 +41399,8 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x579E, 0xFFFF, 0xFFFF, "Ethernet Connection E825-C for SFP(0x579E)"},
{0x8086, 0x57A4, 0xFFFF, 0xFFFF, "Thunderbolt Bridge [Barlow Ridge Hub 40G 2023](0x57A4)"},
{0x8086, 0x57A5, 0xFFFF, 0xFFFF, "Thunderbolt USB Controller [Barlow Ridge Hub 40G 2023](0x57A5)"},
-{0x8086, 0x57B1, 0xFFFF, 0xFFFF, "Ethernet Controller E610 1GBASE T(0x57B1)"},
+{0x8086, 0x57B0, 0xFFFF, 0xFFFF, "Ethernet Controller E610 10GBASE T(0x57B0)"},
+{0x8086, 0x57B1, 0xFFFF, 0xFFFF, "Ethernet Controller E610 2.5GBASE T(0x57B1)"},
{0x8086, 0x57B1, 0x8086, 0x0000, "Ethernet Converged Network Adapter E610(0x8086-0x0000)"},
{0x8086, 0x5845, 0xFFFF, 0xFFFF, "QEMU NVM Express Controller(0x5845)"},
{0x8086, 0x5845, 0x1AF4, 0x1100, "QEMU Virtual Machine(0x1AF4-0x1100)"},
@@ -40641,11 +41417,15 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x590B, 0xFFFF, 0xFFFF, "HD Graphics 610(0x590B)"},
{0x8086, 0x590C, 0xFFFF, 0xFFFF, "Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers(0x590C)"},
{0x8086, 0x590F, 0xFFFF, 0xFFFF, "Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers(0x590F)"},
+{0x8086, 0x590F, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
+{0x8086, 0x590F, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0x590F, 0x1462, 0x7A68, "B250 KRAIT GAMING (MS-7A68)(0x1462-0x7A68)"},
{0x8086, 0x590F, 0x1462, 0x7A72, "H270 PC MATE(0x1462-0x7A72)"},
{0x8086, 0x5910, 0xFFFF, 0xFFFF, "Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers(0x5910)"},
{0x8086, 0x5911, 0xFFFF, 0xFFFF, "Xeon E3-1200 v6/7th Gen Core Processor Gaussian Mixture Model(0x5911)"},
{0x8086, 0x5912, 0xFFFF, 0xFFFF, "HD Graphics 630(0x5912)"},
+{0x8086, 0x5912, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
+{0x8086, 0x5912, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0x5912, 0x1462, 0x7A72, "H270 PC MATE(0x1462-0x7A72)"},
{0x8086, 0x5914, 0xFFFF, 0xFFFF, "Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers(0x5914)"},
{0x8086, 0x5914, 0x17AA, 0x225D, "ThinkPad T480(0x17AA-0x225D)"},
@@ -40701,6 +41481,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 +41774,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 +41805,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 #3(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 #21(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 +41826,15 @@ 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, 0x7D41, 0xFFFF, 0xFFFF, "Arrow Lake-U [Intel Graphics](0x7D41)"},
{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-U [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)"},
@@ -41033,6 +41845,8 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0x7E27, 0xFFFF, 0xFFFF, "Meteor Lake-P Serial IO SPI Controller #0(0x7E27)"},
{0x8086, 0x7E28, 0xFFFF, 0xFFFF, "Meteor Lake-P HD Audio Controller(0x7E28)"},
{0x8086, 0x7E30, 0xFFFF, 0xFFFF, "Meteor Lake-P Serial IO SPI Controller #1(0x7E30)"},
+{0x8086, 0x7E40, 0xFFFF, 0xFFFF, "Meteor Lake PCH CNVi WiFi(0x7E40)"},
+{0x8086, 0x7E40, 0x8086, 0x0094, "Wi-Fi 6E AX211 160MHz(0x8086-0x0094)"},
{0x8086, 0x7E46, 0xFFFF, 0xFFFF, "Meteor Lake-P Serial IO SPI Controller #2(0x7E46)"},
{0x8086, 0x7E50, 0xFFFF, 0xFFFF, "Meteor Lake-P Serial IO I2C Controller #4(0x7E50)"},
{0x8086, 0x7E51, 0xFFFF, 0xFFFF, "Meteor Lake-P Serial IO I2C Controller #5(0x7E51)"},
@@ -41425,6 +42239,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)"},
@@ -41772,6 +42587,8 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0xA0F0, 0x8086, 0x0244, "Wi-Fi 6 AX101NGW(0x8086-0x0244)"},
{0x8086, 0xA0FC, 0xFFFF, 0xFFFF, "Tiger Lake-LP Integrated Sensor Hub(0xA0FC)"},
{0x8086, 0xA102, 0xFFFF, 0xFFFF, "Q170/Q150/B150/H170/H110/Z170/CM236 Chipset SATA Controller [AHCI Mode](0xA102)"},
+{0x8086, 0xA102, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
+{0x8086, 0xA102, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0xA103, 0xFFFF, 0xFFFF, "HM170/QM170 Chipset SATA Controller [AHCI Mode](0xA103)"},
{0x8086, 0xA103, 0x1028, 0x06E4, "XPS 15 9550(0x1028-0x06E4)"},
{0x8086, 0xA103, 0x103C, 0x825B, "OMEN-17-w001nv(0x103C-0x825B)"},
@@ -41784,11 +42601,14 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0xA112, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #3(0xA112)"},
{0x8086, 0xA113, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #4(0xA113)"},
{0x8086, 0xA114, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #5(0xA114)"},
+{0x8086, 0xA114, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
{0x8086, 0xA115, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #6(0xA115)"},
{0x8086, 0xA116, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #7(0xA116)"},
{0x8086, 0xA117, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #8(0xA117)"},
{0x8086, 0xA118, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #9(0xA118)"},
+{0x8086, 0xA118, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
{0x8086, 0xA119, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #10(0xA119)"},
+{0x8086, 0xA119, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
{0x8086, 0xA11A, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #11(0xA11A)"},
{0x8086, 0xA11B, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #12(0xA11B)"},
{0x8086, 0xA11C, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #13(0xA11C)"},
@@ -41799,10 +42619,14 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0xA121, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family Power Management Controller(0xA121)"},
{0x8086, 0xA121, 0x1028, 0x06E4, "XPS 15 9550(0x1028-0x06E4)"},
{0x8086, 0xA121, 0x103C, 0x825B, "OMEN-17-w001nv(0x103C-0x825B)"},
+{0x8086, 0xA121, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
+{0x8086, 0xA121, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0xA122, 0xFFFF, 0xFFFF, "Sunrise Point-H cAVS(0xA122)"},
{0x8086, 0xA123, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family SMBus(0xA123)"},
{0x8086, 0xA123, 0x1028, 0x06E4, "XPS 15 9550(0x1028-0x06E4)"},
{0x8086, 0xA123, 0x103C, 0x825B, "OMEN-17-w001nv(0x103C-0x825B)"},
+{0x8086, 0xA123, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
+{0x8086, 0xA123, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0xA124, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family SPI Controller(0xA124)"},
{0x8086, 0xA125, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family Gigabit Ethernet Controller(0xA125)"},
{0x8086, 0xA126, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family Trace Hub(0xA126)"},
@@ -41813,15 +42637,20 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0xA12F, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller(0xA12F)"},
{0x8086, 0xA12F, 0x1028, 0x06E4, "XPS 15 9550(0x1028-0x06E4)"},
{0x8086, 0xA12F, 0x103C, 0x825B, "OMEN-17-w001nv(0x103C-0x825B)"},
+{0x8086, 0xA12F, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
+{0x8086, 0xA12F, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0xA130, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family USB Device Controller (OTG)(0xA130)"},
{0x8086, 0xA131, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family Thermal Subsystem(0xA131)"},
{0x8086, 0xA131, 0x1028, 0x06E4, "XPS 15 9550(0x1028-0x06E4)"},
{0x8086, 0xA131, 0x103C, 0x825B, "OMEN-17-w001nv(0x103C-0x825B)"},
+{0x8086, 0xA131, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0xA133, 0xFFFF, 0xFFFF, "Sunrise Point-H Northpeak ACPI Function(0xA133)"},
{0x8086, 0xA135, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family Integrated Sensor Hub(0xA135)"},
{0x8086, 0xA13A, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family MEI Controller #1(0xA13A)"},
{0x8086, 0xA13A, 0x1028, 0x06E4, "XPS 15 9550(0x1028-0x06E4)"},
{0x8086, 0xA13A, 0x103C, 0x825B, "OMEN-17-w001nv(0x103C-0x825B)"},
+{0x8086, 0xA13A, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
+{0x8086, 0xA13A, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0xA13B, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family MEI Controller #2(0xA13B)"},
{0x8086, 0xA13C, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family IDE Redirection(0xA13C)"},
{0x8086, 0xA13D, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family KT Redirection(0xA13D)"},
@@ -41830,6 +42659,8 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0xA141, 0xFFFF, 0xFFFF, "Sunrise Point-H LPC Controller(0xA141)"},
{0x8086, 0xA142, 0xFFFF, 0xFFFF, "Sunrise Point-H LPC Controller(0xA142)"},
{0x8086, 0xA143, 0xFFFF, 0xFFFF, "H110 Chipset LPC/eSPI Controller(0xA143)"},
+{0x8086, 0xA143, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
+{0x8086, 0xA143, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0xA144, 0xFFFF, 0xFFFF, "H170 Chipset LPC/eSPI Controller(0xA144)"},
{0x8086, 0xA145, 0xFFFF, 0xFFFF, "Z170 Chipset LPC/eSPI Controller(0xA145)"},
{0x8086, 0xA146, 0xFFFF, 0xFFFF, "Q170 Chipset LPC/eSPI Controller(0xA146)"},
@@ -41875,6 +42706,8 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0xA170, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family HD Audio Controller(0xA170)"},
{0x8086, 0xA170, 0x1028, 0x06E4, "XPS 15 9550(0x1028-0x06E4)"},
{0x8086, 0xA170, 0x103C, 0x825B, "OMEN-17-w001nv(0x103C-0x825B)"},
+{0x8086, 0xA170, 0x1043, 0x86C7, "H110I-PLUS Motherboard(0x1043-0x86C7)"},
+{0x8086, 0xA170, 0x1462, 0xF994, "H110M ECO/GAMING(0x1462-0xF994)"},
{0x8086, 0xA171, 0xFFFF, 0xFFFF, "CM238 HD Audio Controller(0xA171)"},
{0x8086, 0xA182, 0xFFFF, 0xFFFF, "C620 Series Chipset Family SATA Controller [AHCI mode](0xA182)"},
{0x8086, 0xA186, 0xFFFF, 0xFFFF, "C620 Series Chipset Family SATA Controller [RAID mode](0xA186)"},
@@ -41985,6 +42818,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)"},
@@ -42015,6 +42849,7 @@ pci_id_t pci_vid_8086[] = {
{0x8086, 0xA304, 0x1028, 0x0869, "Vostro 3470(0x1028-0x0869)"},
{0x8086, 0xA305, 0xFFFF, 0xFFFF, "Z390 Chipset LPC/eSPI Controller(0xA305)"},
{0x8086, 0xA306, 0xFFFF, 0xFFFF, "Q370 Chipset LPC/eSPI Controller(0xA306)"},
+{0x8086, 0xA308, 0xFFFF, 0xFFFF, "300 Series Chipset Family LPC Controller(0xA308)"},
{0x8086, 0xA309, 0xFFFF, 0xFFFF, "Cannon Point-LP LPC Controller(0xA309)"},
{0x8086, 0xA30C, 0xFFFF, 0xFFFF, "QM370 Chipset LPC/eSPI Controller(0xA30C)"},
{0x8086, 0xA30D, 0xFFFF, 0xFFFF, "HM470 Chipset LPC/eSPI Controller(0xA30D)"},
@@ -42085,19 +42920,28 @@ 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, 0xA703, 0xFFFF, 0xFFFF, "Raptor Lake-S Host Bridge/DRAM Controller(0xA703)"},
+{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, 0xA70D, 0xFFFF, 0xFFFF, "Raptor Lake PCI Express 5.0 Graphics Port (PEG010)(0xA70D)"},
{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 +42952,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 +42960,38 @@ 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, 0xB03E, 0xFFFF, 0xFFFF, "Panther Lake NPU(0xB03E)"},
{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 +43037,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 +43056,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,7 +43085,10 @@ 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, 0x2026, "LRES2026PF Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2026)"},
+{0x8088, 0x010A, 0x4C52, 0x2034, "LRES2034PT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2034)"},
{0x8088, 0x010B, 0xFFFF, 0xFFFF, "WX1860AL1 Gigabit Ethernet Controller(0x010B)"},
+{0x8088, 0x010B, 0x4C52, 0x2215, "LRES2215PT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2215)"},
{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)"},
{0x8088, 0x010B, 0x8088, 0x8102, "Single-Port Ethernet Network Adaptor SF100HT (NCSI)(0x8088-0x8102)"},
@@ -42212,103 +43101,119 @@ pci_id_t pci_vid_8088[] = {
{0x8088, 0x011A, 0xFFFF, 0xFFFF, "WX1860A1 Gigabit Ethernet Controller Virtual Function(0x011A)"},
{0x8088, 0x011B, 0xFFFF, 0xFFFF, "WX1860AL1 Gigabit Ethernet Controller Virtual Function(0x011B)"},
{0x8088, 0x1000, 0xFFFF, 0xFFFF, "Ethernet Controller RP1000 Virtual Function for 10GbE SFP+(0x1000)"},
-{0x8088, 0x1001, 0xFFFF, 0xFFFF, "Ethernet Controller RP1000 for 10GbE SFP+(0x1001)"},
+{0x8088, 0x1001, 0xFFFF, 0xFFFF, "Ethernet Controller SP1000A 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)"},
{0x8088, 0x2000, 0xFFFF, 0xFFFF, "Ethernet Controller RP2000 Virtual Function for 10GbE SFP+(0x2000)"},
-{0x8088, 0x2001, 0xFFFF, 0xFFFF, "Ethernet Controller RP2000 for 10GbE SFP+(0x2001)"},
+{0x8088, 0x2001, 0xFFFF, 0xFFFF, "Ethernet Controller WX1820AL for 10GbE SFP+(0x2001)"},
{0x8088, 0x2001, 0x8088, 0x2000, "Ethernet Network Adaptor RP2000 for 10GbE SFP+(0x8088-0x2000)"},
{0x8088, 0x2001, 0x8088, 0x2300, "Ethernet Network Adaptor RP2000-A03 for 10GbE SFP+(0x8088-0x2300)"},
{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, 0x4C52, 0x3032, "LRES3032PF Dual-port 10Gb Ethernet Server Adapter for OCP(0x4C52-0x3032)"},
{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, 0x193D, 0x1088, "NIC-ETH3M0T-3S-4P(0x193D-0x1088)"},
+{0x8848, 0x8308, 0x4C52, 0x1048, "LRES1048PT Quad-port 1Gb Ethernet Network Adapter(0x4C52-0x1048)"},
+{0x8848, 0x8308, 0x4C52, 0x3044, "LRES3044PT Quad-port 1Gb Ethernet Server Adapter for OCP(0x4C52-0x3044)"},
{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)"},
+{0x8848, 0x8318, 0x4C52, 0x3043, "LRES3043PT Dual-port 1Gb Ethernet Server Adapter for OCP(0x4C52-0x3043)"},
}; /* 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)"},
+{0x8888, 0x8504, 0xFFFF, 0xFFFF, "AVMatrix VC42(0x8504)"},
}; /* 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 +43326,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 +43590,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 +43697,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 +43722,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 +43778,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)"},
@@ -42898,144 +43810,147 @@ pci_id_t pci_vid_9D32[] = {
{0x9D32, 0x2001, 0xFFFF, 0xFFFF, "STAR2000E NVMe SSD(0x2001)"},
{0x9D32, 0x2002, 0xFFFF, 0xFFFF, "STAR2000C NVMe SSD(0x2002)"},
{0x9D32, 0x2003, 0xFFFF, 0xFFFF, "STAR2000L NVMe SSD(0x2003)"},
+{0x9D32, 0x2004, 0xFFFF, 0xFFFF, "EAST 2000K SSD(0x2004)"},
+{0x9D32, 0x2008, 0xFFFF, 0xFFFF, "STAR2008 PCIE NVMe SSD Controller(0x2008)"},
+{0x9D32, 0x2010, 0xFFFF, 0xFFFF, "STAR2010 PCIE NVMe Secure SSD Controller(0x2010)"},
{0x9D32, 0xBB5B, 0xFFFF, 0xFFFF, "Asgard AN3+ NVMe SSD(0xBB5B)"},
{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 +43958,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 +44018,60 @@ 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)"},
+{0xC0A9, 0x5421, 0xFFFF, 0xFFFF, "P3 Plus NVMe PCIe SSD (DRAM-less)(0x5421)"},
}; /* 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 +44079,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 +44157,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 +44187,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 +44219,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 +44238,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 +44260,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 +44294,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 +44311,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 +44331,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 +44407,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 +44424,32 @@ 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_F117[] = {
+{0xF117, 0xFFFF, 0xFFFF, 0xFFFF, "Cerio(0xF117)"},
+{0xF117, 0x1000, 0xFFFF, 0xFFFF, "Emulated PCIe Switch(0x1000)"},
+{0xF117, 0x1010, 0xFFFF, 0xFFFF, "Placeholder Device(0x1010)"},
+{0xF117, 0x1020, 0xFFFF, 0xFFFF, "Pseudo-Device(0x1020)"},
+{0xF117, 0x1030, 0xFFFF, 0xFFFF, "Test Device(0x1030)"},
+}; /* pci_vid_F117[] */
+
+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 +44493,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 +44568,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 +44591,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, 798, pci_vid_1000 },
{0x1001, 10, pci_vid_1001 },
-{0x1002, 3236, pci_vid_1002 },
+{0x1002, 3249, pci_vid_1002 },
{0x1003, 2, pci_vid_1003 },
{0x1004, 34, pci_vid_1004 },
{0x1005, 8, pci_vid_1005 },
@@ -43693,7 +44619,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 +44628,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, 689, pci_vid_1022 },
{0x1023, 56, pci_vid_1023 },
{0x1024, 4, pci_vid_1024 },
{0x1025, 59, pci_vid_1025 },
@@ -43726,13 +44652,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 +44668,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 +44682,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 },
@@ -43844,7 +44770,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x10B2, 1, pci_vid_10B2 },
{0x10B3, 3, pci_vid_10B3 },
{0x10B4, 3, pci_vid_10B4 },
-{0x10B5, 259, pci_vid_10B5 },
+{0x10B5, 271, pci_vid_10B5 },
{0x10B6, 25, pci_vid_10B6 },
{0x10B7, 132, pci_vid_10B7 },
{0x10B8, 21, pci_vid_10B8 },
@@ -43884,7 +44810,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, 3316, pci_vid_10DE },
{0x10DF, 127, pci_vid_10DF },
{0x10E0, 7, pci_vid_10E0 },
{0x10E1, 5, pci_vid_10E1 },
@@ -43898,7 +44824,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, 246, pci_vid_10EC },
{0x10ED, 2, pci_vid_10ED },
{0x10EE, 47, pci_vid_10EE },
{0x10EF, 2, pci_vid_10EF },
@@ -43921,14 +44847,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 +44964,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 },
@@ -44143,7 +45069,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x11E0, 1, pci_vid_11E0 },
{0x11E1, 1, pci_vid_11E1 },
{0x11E2, 1, pci_vid_11E2 },
-{0x11E3, 5, pci_vid_11E3 },
+{0x11E3, 37, pci_vid_11E3 },
{0x11E4, 1, pci_vid_11E4 },
{0x11E5, 1, pci_vid_11E5 },
{0x11E6, 1, pci_vid_11E6 },
@@ -44193,7 +45119,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x1214, 1, pci_vid_1214 },
{0x1215, 1, pci_vid_1215 },
{0x1216, 1, pci_vid_1216 },
-{0x1217, 58, pci_vid_1217 },
+{0x1217, 59, pci_vid_1217 },
{0x1218, 1, pci_vid_1218 },
{0x1219, 1, pci_vid_1219 },
{0x121A, 45, pci_vid_121A },
@@ -44278,7 +45204,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x126C, 3, pci_vid_126C },
{0x126D, 1, pci_vid_126D },
{0x126E, 1, pci_vid_126E },
-{0x126F, 19, pci_vid_126F },
+{0x126F, 20, pci_vid_126F },
{0x1270, 1, pci_vid_1270 },
{0x1271, 1, pci_vid_1271 },
{0x1272, 1, pci_vid_1272 },
@@ -44318,7 +45244,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 +45303,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, 28, pci_vid_12D8 },
{0x12D9, 7, pci_vid_12D9 },
{0x12DA, 1, pci_vid_12DA },
{0x12DB, 1, pci_vid_12DB },
@@ -44482,7 +45408,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, 137, pci_vid_1344 },
{0x1345, 1, pci_vid_1345 },
{0x1347, 1, pci_vid_1347 },
{0x1349, 1, pci_vid_1349 },
@@ -44737,7 +45663,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x144A, 15, pci_vid_144A },
{0x144B, 1, pci_vid_144B },
{0x144C, 1, pci_vid_144C },
-{0x144D, 164, pci_vid_144D },
+{0x144D, 165, pci_vid_144D },
{0x144E, 1, pci_vid_144E },
{0x144F, 1, pci_vid_144F },
{0x1450, 1, pci_vid_1450 },
@@ -44853,7 +45779,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 +45811,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, 860, pci_vid_14E4 },
{0x14E5, 1, pci_vid_14E5 },
{0x14E6, 1, pci_vid_14E6 },
{0x14E7, 1, pci_vid_14E7 },
@@ -44979,7 +45905,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x153F, 2, pci_vid_153F },
{0x1540, 1, pci_vid_1540 },
{0x1541, 1, pci_vid_1541 },
-{0x1542, 12, pci_vid_1542 },
+{0x1542, 13, pci_vid_1542 },
{0x1543, 3, pci_vid_1543 },
{0x1544, 1, pci_vid_1544 },
{0x1545, 1, pci_vid_1545 },
@@ -45001,7 +45927,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 +46015,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, 267, pci_vid_15B3 },
{0x15B4, 1, pci_vid_15B4 },
{0x15B5, 1, pci_vid_15B5 },
{0x15B6, 17, pci_vid_15B6 },
-{0x15B7, 30, pci_vid_15B7 },
+{0x15B7, 33, 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 +46052,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 +46150,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 +46169,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 +46193,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 +46201,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 +46227,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 +46237,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,17 +46305,17 @@ 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 },
-{0x1971, 3, pci_vid_1971 },
+{0x1971, 5, pci_vid_1971 },
{0x1974, 7, pci_vid_1974 },
{0x1976, 1, pci_vid_1976 },
{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 +46402,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 },
@@ -45493,9 +46419,10 @@ pci_vid_index_t pci_vid_index[] = {
{0x1B3E, 4, pci_vid_1B3E },
{0x1B40, 1, pci_vid_1B40 },
{0x1B47, 3, pci_vid_1B47 },
-{0x1B4B, 51, pci_vid_1B4B },
+{0x1B4B, 52, pci_vid_1B4B },
{0x1B4C, 1, pci_vid_1B4C },
{0x1B55, 7, pci_vid_1B55 },
+{0x1B61, 1, pci_vid_1B61 },
{0x1B66, 2, pci_vid_1B66 },
{0x1B6F, 5, pci_vid_1B6F },
{0x1B73, 6, pci_vid_1B73 },
@@ -45517,26 +46444,26 @@ pci_vid_index_t pci_vid_index[] = {
{0x1BCF, 2, pci_vid_1BCF },
{0x1BD0, 18, pci_vid_1BD0 },
{0x1BD4, 12, pci_vid_1BD4 },
-{0x1BEE, 3, pci_vid_1BEE },
+{0x1BEE, 18, pci_vid_1BEE },
{0x1BEF, 2, pci_vid_1BEF },
{0x1BF4, 3, pci_vid_1BF4 },
{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 },
{0x1C3B, 3, pci_vid_1C3B },
{0x1C44, 3, pci_vid_1C44 },
{0x1C58, 7, pci_vid_1C58 },
-{0x1C5C, 44, pci_vid_1C5C },
-{0x1C5F, 106, pci_vid_1C5F },
+{0x1C5C, 45, pci_vid_1C5C },
+{0x1C5F, 114, pci_vid_1C5F },
{0x1C63, 2, pci_vid_1C63 },
{0x1C7E, 2, pci_vid_1C7E },
{0x1C7F, 2, pci_vid_1C7F },
@@ -45546,8 +46473,8 @@ 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 },
-{0x1CC4, 48, pci_vid_1CC4 },
+{0x1CC1, 23, pci_vid_1CC1 },
+{0x1CC4, 52, pci_vid_1CC4 },
{0x1CC5, 3, pci_vid_1CC5 },
{0x1CC7, 3, pci_vid_1CC7 },
{0x1CCF, 2, pci_vid_1CCF },
@@ -45561,8 +46488,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 +46499,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, 25, 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 +46520,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,34 +46542,35 @@ 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 },
+{0x1DF5, 3, pci_vid_1DF5 },
{0x1DF7, 4, pci_vid_1DF7 },
{0x1DF8, 9, pci_vid_1DF8 },
{0x1DFC, 2, pci_vid_1DFC },
{0x1E0D, 1, pci_vid_1E0D },
-{0x1E0F, 92, pci_vid_1E0F },
+{0x1E0F, 102, pci_vid_1E0F },
{0x1E17, 1, pci_vid_1E17 },
{0x1E18, 1, pci_vid_1E18 },
{0x1E24, 8, pci_vid_1E24 },
{0x1E26, 1, pci_vid_1E26 },
-{0x1E36, 16, pci_vid_1E36 },
+{0x1E36, 17, 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, 110, 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 },
+{0x1E49, 11, pci_vid_1E49 },
+{0x1E4B, 9, pci_vid_1E4B },
{0x1E4C, 3, pci_vid_1E4C },
{0x1E50, 1, pci_vid_1E50 },
-{0x1E52, 4, pci_vid_1E52 },
+{0x1E52, 9, pci_vid_1E52 },
{0x1E57, 3, pci_vid_1E57 },
{0x1E59, 2, pci_vid_1E59 },
{0x1E5D, 3, pci_vid_1E5D },
@@ -45660,25 +46588,27 @@ 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 },
+{0x1EA0, 5, pci_vid_1EA0 },
{0x1EA7, 3, pci_vid_1EA7 },
{0x1EAB, 3, pci_vid_1EAB },
{0x1EAC, 3, pci_vid_1EAC },
{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 },
-{0x1ED2, 2, pci_vid_1ED2 },
+{0x1ED0, 1, pci_vid_1ED0 },
+{0x1ED2, 6, pci_vid_1ED2 },
{0x1ED3, 1, pci_vid_1ED3 },
-{0x1ED5, 26, pci_vid_1ED5 },
-{0x1ED8, 2, pci_vid_1ED8 },
+{0x1ED5, 27, pci_vid_1ED5 },
+{0x1ED8, 3, pci_vid_1ED8 },
{0x1ED9, 1, pci_vid_1ED9 },
{0x1EE1, 6, pci_vid_1EE1 },
{0x1EE4, 2, pci_vid_1EE4 },
@@ -45699,14 +46629,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 },
@@ -45717,21 +46647,29 @@ pci_vid_index_t pci_vid_index[] = {
{0x1FDE, 3, pci_vid_1FDE },
{0x1FE0, 4, pci_vid_1FE0 },
{0x1FE4, 6, pci_vid_1FE4 },
+{0x1FE9, 1, pci_vid_1FE9 },
{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 },
+{0x202C, 2, pci_vid_202C },
+{0x2036, 3, pci_vid_2036 },
+{0x2046, 1, pci_vid_2046 },
{0x2048, 1, pci_vid_2048 },
{0x20F4, 1, pci_vid_20F4 },
{0x2116, 1, pci_vid_2116 },
{0x21B4, 1, pci_vid_21B4 },
{0x21C3, 1, pci_vid_21C3 },
{0x22B8, 2, pci_vid_22B8 },
-{0x22DB, 1, pci_vid_22DB },
+{0x22DB, 2, 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, 27, pci_vid_2646 },
{0x270B, 1, pci_vid_270B },
{0x270F, 1, pci_vid_270F },
{0x2711, 1, pci_vid_2711 },
@@ -45746,16 +46684,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 +46724,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, 11, 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 +46755,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 +46783,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 +46797,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, 8879, pci_vid_8086 },
+{0x8088, 77, pci_vid_8088 },
{0x80EE, 3, pci_vid_80EE },
{0x8322, 1, pci_vid_8322 },
{0x8384, 1, pci_vid_8384 },
@@ -45864,15 +46807,15 @@ 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, 27, pci_vid_8848 },
{0x8866, 1, pci_vid_8866 },
-{0x8888, 1, pci_vid_8888 },
+{0x8888, 2, pci_vid_8888 },
{0x8912, 1, pci_vid_8912 },
{0x8C4A, 2, pci_vid_8C4A },
{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 },
@@ -45883,7 +46826,7 @@ pci_vid_index_t pci_vid_index[] = {
{0x9850, 1, pci_vid_9850 },
{0x9902, 4, pci_vid_9902 },
{0x9A11, 1, pci_vid_9A11 },
-{0x9D32, 18, pci_vid_9D32 },
+{0x9D32, 21, pci_vid_9D32 },
{0xA000, 1, pci_vid_A000 },
{0xA0A0, 1, pci_vid_A0A0 },
{0xA0F1, 1, pci_vid_A0F1 },
@@ -45924,7 +46867,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, 9, pci_vid_C0A9 },
{0xC0DE, 1, pci_vid_C0DE },
{0xC0FE, 1, pci_vid_C0FE },
{0xCA01, 2, pci_vid_CA01 },
@@ -45973,6 +46916,7 @@ pci_vid_index_t pci_vid_index[] = {
{0xF043, 1, pci_vid_F043 },
{0xF05B, 1, pci_vid_F05B },
{0xF111, 1, pci_vid_F111 },
+{0xF117, 5, pci_vid_F117 },
{0xF15E, 2, pci_vid_F15E },
{0xF1D0, 41, pci_vid_F1D0 },
{0xF5F5, 1, pci_vid_F5F5 },
@@ -45987,9 +46931,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 2381 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 +46970,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 4625ec3..0d3f053 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 fc68b69..531c9d6 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 f87ede3..c744485 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 0a27df6..ba1475f 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 47766ee..ac0770e 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" },
@@ -5739,7 +5804,7 @@ static ws_services_entry_t global_tcp_services_table[] = {
{ 10443, "cirrossp", "CirrosSP Workstation Communication" },
{ 10548, "serverdocs", "Apple Document Sharing Service" },
{ 10631, "printopia", "Printopia Serve" },
- { 10809, "nbd", "Linux Network Block Device" },
+ { 10809, "nbd", "Network Block Device" },
{ 10933, "octopustentacle", "Listen port used by the Octopus Deploy Tentacle deployment agent" },
{ 11103, "origo-sync", "OrigoDB Server Sync Interface" },
{ 11104, "netapp-icmgmt", "NetApp Intercluster Management" },
@@ -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 1ab395c..2b6e29d 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 c3546a3..88260ad 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 4009326..3e701ff 100644
--- a/epan/wslua/init_wslua.c
+++ b/epan/wslua/init_wslua.c
@@ -1392,6 +1392,7 @@ void wslua_init(register_cb cb, gpointer client_data) {
int file_count = 1;
static gboolean first_time = TRUE;
int i;
+ int error;
static hf_register_info hf[] = {
{ &hf_wslua_fake,
@@ -1704,7 +1705,28 @@ void wslua_init(register_cb cb, gpointer client_data) {
lua_tree = NULL;
lua_tvb = NULL;
- Proto_commit(L);
+ /* Unfortunately, by waiting to register the hfi and ei now, Lua
+ * can't figure out which file had the error and provide a traceback,
+ * so no special error handler.
+ */
+ lua_pushcfunction(L, Proto_commit);
+ error = lua_pcall(L, 0, 0, 0);
+ if (error) {
+ switch (error) {
+ case LUA_ERRRUN:
+ report_failure("Lua: Error initializing protocols:\n%s", lua_tostring(L, -1));
+ break;
+ case LUA_ERRMEM:
+ report_failure("Lua: Error initializing protocols: out of memory");
+ break;
+ case LUA_ERRERR:
+ report_failure("Lua: Error initializing protocols: error while retrieving error message");
+ break;
+ default:
+ report_failure("Lua: Error initializing protocols: unknown error %d", error);
+ break;
+ }
+ }
first_time = FALSE;
}
diff --git a/epan/wslua/lua_bitop.c b/epan/wslua/lua_bitop.c
index 2f3c3ee..52be189 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/wslua.h b/epan/wslua/wslua.h
index 0f6a146..c96f4f2 100644
--- a/epan/wslua/wslua.h
+++ b/epan/wslua/wslua.h
@@ -188,8 +188,12 @@ typedef struct _wslua_proto_t {
gboolean expired;
} wslua_proto_t;
+/* a "DissectorTable" object can be different things under the hood,
+ * since its heuristic_new() can create a heur_dissector_list_t that
+ * needs to be deregistered. */
struct _wslua_distbl_t {
dissector_table_t table;
+ heur_dissector_list_t heur_list;
const gchar* name;
const gchar* ui_name;
gboolean created;
diff --git a/epan/wslua/wslua_dissector.c b/epan/wslua/wslua_dissector.c
index 5b18930..4fb7a9a 100644
--- a/epan/wslua/wslua_dissector.c
+++ b/epan/wslua/wslua_dissector.c
@@ -213,6 +213,7 @@ WSLUA_CONSTRUCTOR DissectorTable_new (lua_State *L) {
dt->table = (type == FT_NONE) ?
register_decode_as_next_proto(proto_id, name, ui_name, NULL) :
register_dissector_table(name, ui_name, proto_id, type, base);
+ dt->heur_list = NULL;
dt->name = g_strdup(name);
dt->ui_name = g_strdup(ui_name);
dt->created = TRUE;
@@ -228,7 +229,11 @@ WSLUA_CONSTRUCTOR DissectorTable_new (lua_State *L) {
}
WSLUA_CONSTRUCTOR DissectorTable_heuristic_new(lua_State *L) {
- /* Creates a new heuristic `DissectorTable` for your dissector's use. Returns true iff table was created successfully. */
+ /* Creates a new heuristic `DissectorTable` for your dissector's use. Returns true if table was created successfully.
+ * XXX - Currently it always returns nil.
+
+ @since 4.2.0
+ */
#define WSLUA_ARG_DissectorTable_heuristic_new_TABLENAME 1 /* The short name of the table. Use lower-case alphanumeric, dot, and/or underscores. */
#define WSLUA_ARG_DissectorTable_heuristic_new_PROTO 2 /* The <<lua_class_Proto,`Proto`>> object that uses this dissector table. */
const gchar* name = (const gchar*)luaL_checkstring(L,WSLUA_ARG_DissectorTable_heuristic_new_TABLENAME);
@@ -242,7 +247,29 @@ WSLUA_CONSTRUCTOR DissectorTable_heuristic_new(lua_State *L) {
return 0;
}
- register_heur_dissector_list(name, proto_id);
+ DissectorTable dt;
+ dt = (DissectorTable)g_malloc(sizeof(struct _wslua_distbl_t));
+ dt->table = NULL;
+ dt->heur_list = register_heur_dissector_list(name, proto_id);
+ dt->name = g_strdup(name);
+ dt->ui_name = g_strdup(name);
+ dt->created = TRUE;
+ dt->expired = FALSE;
+
+ lua_rawgeti(L, LUA_REGISTRYINDEX, dissectortable_table_ref);
+ lua_pushstring(L, name);
+ pushDissectorTable(L, dt);
+ lua_settable(L, -3);
+
+#if 0
+ /* Return nil because this is not a regular DissectorTable that could
+ * be used with _try, _set, _add, etc., and so we need to build checks
+ * into the functions similar to File and CaptureInfo so that it
+ * doesn't get used as one. However, not returning it means that it
+ * doesn't get properly garbage collected. */
+ pushDissectorTable(L, dt);
+ WSLUA_RETURN(1); /* The newly created DissectorTable. */
+#endif
return 0;
}
@@ -347,6 +374,7 @@ WSLUA_CONSTRUCTOR DissectorTable_get (lua_State *L) {
if (table) {
DissectorTable dt = (DissectorTable)g_malloc(sizeof(struct _wslua_distbl_t));
dt->table = table;
+ dt->heur_list = NULL;
dt->name = g_strdup(name);
dt->ui_name = NULL;
dt->created = FALSE;
@@ -399,7 +427,7 @@ WSLUA_METHOD DissectorTable_add (lua_State *L) {
g_free (pattern);
} else if ( type == FT_UINT32 || type == FT_UINT16 || type == FT_UINT8 || type == FT_UINT24 ) {
if (lua_isnumber(L, WSLUA_ARG_DissectorTable_add_PATTERN)) {
- int port = (int)luaL_checkinteger(L, WSLUA_ARG_DissectorTable_add_PATTERN);
+ guint32 port = wslua_checkguint32(L, WSLUA_ARG_DissectorTable_add_PATTERN);
dissector_add_uint(dt->name, port, handle);
} else {
/* Not a number, try as range */
@@ -461,7 +489,7 @@ WSLUA_METHOD DissectorTable_set (lua_State *L) {
dissector_add_string(dt->name, pattern,handle);
} else if ( type == FT_UINT32 || type == FT_UINT16 || type == FT_UINT8 || type == FT_UINT24 ) {
if (lua_isnumber(L, WSLUA_ARG_DissectorTable_set_PATTERN)) {
- int port = (int)luaL_checkinteger(L, WSLUA_ARG_DissectorTable_set_PATTERN);
+ guint32 port = wslua_checkguint32(L, WSLUA_ARG_DissectorTable_set_PATTERN);
dissector_delete_all(dt->name, handle);
dissector_add_uint(dt->name, port, handle);
} else {
@@ -517,7 +545,7 @@ WSLUA_METHOD DissectorTable_remove (lua_State *L) {
g_free (pattern);
} else if ( type == FT_UINT32 || type == FT_UINT16 || type == FT_UINT8 || type == FT_UINT24 ) {
if (lua_isnumber(L, WSLUA_ARG_DissectorTable_remove_PATTERN)) {
- int port = (int)luaL_checkinteger(L, WSLUA_ARG_DissectorTable_remove_PATTERN);
+ guint32 port = wslua_checkguint32(L, WSLUA_ARG_DissectorTable_remove_PATTERN);
dissector_delete_uint(dt->name, port, handle);
} else {
/* Not a number, try as range */
@@ -597,7 +625,7 @@ WSLUA_METHOD DissectorTable_try (lua_State *L) {
handled = TRUE;
}
} else if ( type == FT_UINT32 || type == FT_UINT16 || type == FT_UINT8 || type == FT_UINT24 ) {
- int port = (int)luaL_checkinteger(L, WSLUA_ARG_DissectorTable_try_PATTERN);
+ guint32 port = wslua_checkguint32(L, WSLUA_ARG_DissectorTable_try_PATTERN);
len = dissector_try_uint(dt->table,port,tvb->ws_tvb,pinfo->ws_pinfo,ti->tree);
if (len > 0) {
@@ -640,7 +668,7 @@ WSLUA_METHOD DissectorTable_get_dissector (lua_State *L) {
const gchar* pattern = luaL_checkstring(L,WSLUA_ARG_DissectorTable_get_dissector_PATTERN);
handle = dissector_get_string_handle(dt->table,pattern);
} else if ( type == FT_UINT32 || type == FT_UINT16 || type == FT_UINT8 || type == FT_UINT24 ) {
- int port = (int)luaL_checkinteger(L, WSLUA_ARG_DissectorTable_get_dissector_PATTERN);
+ guint32 port = wslua_checkguint32(L, WSLUA_ARG_DissectorTable_get_dissector_PATTERN);
handle = dissector_get_uint_handle(dt->table,port);
}
@@ -770,7 +798,12 @@ int wslua_deregister_dissector_tables(lua_State* L) {
for (lua_pushnil(L); lua_next(L, -2); lua_pop(L, 1)) {
DissectorTable dt = checkDissectorTable(L, -1);
if (dt->created) {
- deregister_dissector_table(dt->name);
+ if (dt->table) {
+ deregister_dissector_table(dt->name);
+ }
+ if (dt->heur_list) {
+ deregister_heur_dissector_list(dt->name);
+ }
}
}
diff --git a/epan/wslua/wslua_file.c b/epan/wslua/wslua_file.c
index 2621a99..d9f1ff9 100644
--- a/epan/wslua/wslua_file.c
+++ b/epan/wslua/wslua_file.c
@@ -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;
diff --git a/epan/wslua/wslua_int64.c b/epan/wslua/wslua_int64.c
index e540d6d..17c00f0 100644
--- a/epan/wslua/wslua_int64.c
+++ b/epan/wslua/wslua_int64.c
@@ -656,7 +656,7 @@ guint64 getUInt64(lua_State *L, int i)
case LUA_TNUMBER:
return wslua_checkguint64(L,i);
case LUA_TSTRING:
- return g_ascii_strtoull(luaL_checkstring(L,i), &end, 10);
+ return g_ascii_strtoull(luaL_checkstring(L,i), &end, 0);
case LUA_TUSERDATA:
if (isInt64(L, i)) {
return (UInt64) toInt64(L, i);
diff --git a/epan/wslua/wslua_proto.c b/epan/wslua/wslua_proto.c
index 363975b..b7f170d 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);
@@ -723,7 +767,7 @@ int Proto_commit(lua_State* L) {
// XXX this will leak resources.
if (f->hfid != -2) {
- return luaL_error(L,"fields can be registered only once");
+ return luaL_error(L,"%s is already registered; fields can be registered only once", f->abbrev);
}
f->hfid = -1;
@@ -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 } };
@@ -754,7 +802,7 @@ int Proto_commit(lua_State* L) {
eiri.eiinfo.summary = e->text;
if (e->ids.ei != EI_INIT_EI || e->ids.hf != -2) {
- return luaL_error(L,"expert fields can be registered only once");
+ return luaL_error(L,"%s is already registered; expert fields can be registered only once", e->abbrev);
}
e->ids.hf = -1;
diff --git a/epan/wslua/wslua_tree.c b/epan/wslua/wslua_tree.c
index 503b8b7..ff2ac78 100644
--- a/epan/wslua/wslua_tree.c
+++ b/epan/wslua/wslua_tree.c
@@ -524,7 +524,7 @@ static int TreeItem_add_item_any(lua_State *L, gboolean little_endian) {
case FT_INT16:
case FT_INT24:
case FT_INT32:
- item = proto_tree_add_int(tree_item->tree,hfid,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,wslua_checkguint32(L,1));
+ item = proto_tree_add_int(tree_item->tree,hfid,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,wslua_checkgint32(L,1));
break;
case FT_FLOAT:
item = proto_tree_add_float(tree_item->tree,hfid,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,(float)luaL_checknumber(L,1));
@@ -664,7 +664,7 @@ WSLUA_METHOD TreeItem_add(lua_State *L) {
which is invalid for this function). If the first argument is a non-<<lua_class_ProtoField,`ProtoField`>> and a non-<<lua_class_Proto,`Proto`>> then this argument can
be either a <<lua_class_TvbRange,`TvbRange`>> or a label, and the value is not in use.
- ==== Example
+ ====== Example
[source,lua]
----
diff --git a/epan/wslua/wslua_tvb.c b/epan/wslua/wslua_tvb.c
index 7951c7d..031023d 100644
--- a/epan/wslua/wslua_tvb.c
+++ b/epan/wslua/wslua_tvb.c
@@ -159,9 +159,9 @@ WSLUA_METHOD Tvb_len(lua_State* L) {
WSLUA_METHOD Tvb_reported_length_remaining(lua_State* L) {
/* Obtain the reported (not captured) length of packet data to end of a <<lua_class_Tvb,`Tvb`>> or 0 if the
offset is beyond the end of the <<lua_class_Tvb,`Tvb`>>. */
-#define Tvb_reported_length_remaining_OFFSET 2 /* offset */
+#define WSLUA_OPTARG_Tvb_reported_length_remaining_OFFSET 2 /* offset */
Tvb tvb = checkTvb(L,1);
- int offset = (int) luaL_optinteger(L, Tvb_reported_length_remaining_OFFSET, 0);
+ int offset = (int) luaL_optinteger(L, WSLUA_OPTARG_Tvb_reported_length_remaining_OFFSET, 0);
lua_pushnumber(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;
diff --git a/extcap/ciscodump.c b/extcap/ciscodump.c
index 54751ed..f9a6109 100644
--- a/extcap/ciscodump.c
+++ b/extcap/ciscodump.c
@@ -103,6 +103,7 @@ enum {
OPT_SSHKEY,
OPT_SSHKEY_PASSPHRASE,
OPT_PROXYCOMMAND,
+ OPT_SSH_SHA1,
OPT_REMOTE_COUNT
};
@@ -2259,6 +2260,9 @@ static int list_config(char *interface, unsigned int remote_port)
printf("arg {number=%u}{call--sshkey-passphrase}{display=SSH key passphrase}"
"{type=password}{tooltip=Passphrase to unlock the SSH private key}"
"{group=Authentication\n", inc++);
+ printf("arg {number=%u}{call=--ssh-sha1}{display=Support SHA-1 keys (deprecated)}"
+ "{type=boolflag}{tooltip=Support keys and key exchange algorithms using SHA-1 (deprecated)}{group=Authentication}"
+ "\n", inc++);
printf("arg {number=%u}{call=--remote-interface}{display=Remote interface}"
"{type=string}{required=true}{tooltip=The remote network interface used for capture"
"}{group=Capture}\n", inc++);
@@ -2343,6 +2347,7 @@ int main(int argc, char *argv[])
extcap_help_add_option(extcap_conf, "--sshkey <public key path>", "the path of the ssh key");
extcap_help_add_option(extcap_conf, "--sshkey-passphrase <public key passphrase>", "the passphrase to unlock public ssh");
extcap_help_add_option(extcap_conf, "--proxycommand <proxy command>", "the command to use as proxy for the ssh connection");
+ extcap_help_add_option(extcap_conf, "--ssh-sha1", "support keys and key exchange using SHA-1 (deprecated)");
extcap_help_add_option(extcap_conf, "--remote-interface <iface>", "the remote capture interface");
extcap_help_add_option(extcap_conf, "--remote-filter <filter>", "a filter for remote capture "
"(default: don't capture data for all interfaces IPs)");
@@ -2407,6 +2412,10 @@ int main(int argc, char *argv[])
ssh_params->proxycommand = g_strdup(ws_optarg);
break;
+ case OPT_SSH_SHA1:
+ ssh_params->ssh_sha1 = true;
+ break;
+
case OPT_REMOTE_INTERFACE:
g_free(remote_interface);
remote_interface = g_strdup(ws_optarg);
diff --git a/extcap/ssh-base.c b/extcap/ssh-base.c
index 124b825..be9717c 100644
--- a/extcap/ssh-base.c
+++ b/extcap/ssh-base.c
@@ -21,6 +21,45 @@
#include <ws_attributes.h>
#include <wsutil/wslog.h>
+/*
+ * The unreleased 0.11.0 version of libssh has the ability to
+ * add algorithms to the default supported list by prepending
+ * "+" to the configuration list. For older versions, we have
+ * to specify all the algorithms we want, but as long as at
+ * least one succeeds the command won't fail. (That means that
+ * it's possible that we won't actually add support for SHA-1,
+ * say if it's running on a system in FIPS mode. We could parse
+ * the returned list to check.)
+ */
+#if LIBSSH_VERSION_INT >= SSH_VERSION_INT(0,11,0)
+#define HOSTKEYS_SHA1 "+ssh-rsa"
+#define KEY_EXCHANGE_SHA1 "+diffie-hellman-group14-sha1,diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1"
+#define HMAC_SHA1 "+hmac-sha1-etm@openssh.com,hmac-sha1"
+#else
+#define HOSTKEYS_SHA1 \
+ "ssh-ed25519," \
+ "ecdsa-sha2-nistp521," \
+ "ecdsa-sha2-nistp384," \
+ "ecdsa-sha2-nistp256," \
+ "sk-ssh-ed25519@openssh.com," \
+ "sk-ecdsa-sha2-nistp256@openssh.com," \
+ "rsa-sha2-512," \
+ "rsa-sha2-256," \
+ "ssh-rsa"
+#define KEY_EXCHANGE_SHA1 \
+ "curve25519-sha256,curve25519-sha256@libssh.org," \
+ "ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521," \
+ "diffie-hellman-group18-sha512,diffie-hellman-group16-sha512," \
+ "diffie-hellman-group-exchange-sha256," \
+ "diffie-hellman-group14-sha256," \
+ "diffie-hellman-group-exchange-sha1," \
+ "diffie-hellman-group14-sha1,diffie-hellman-group1-sha1"
+#define HMAC_SHA1 \
+ "hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com," \
+ "hmac-sha2-256,hmac-sha2-512," \
+ "hmac-sha1-etm@openssh.com,hmac-sha1"
+#endif
+
static void extcap_log(int priority _U_, const char *function, const char *buffer, void *userdata _U_)
{
ws_debug("[%s] %s", function, buffer);
@@ -68,6 +107,31 @@ ssh_session create_ssh_connection(const ssh_params_t* ssh_params, char** err_inf
ssh_set_log_callback(extcap_log);
}
+ if (ssh_params->ssh_sha1) {
+ if (ssh_options_set(sshs, SSH_OPTIONS_HOSTKEYS, HOSTKEYS_SHA1)) {
+ *err_info = ws_strdup_printf("Can't set host keys to allow SHA-1.");
+ goto failure;
+ }
+#if LIBSSH_VERSION_INT >= SSH_VERSION_INT(0,8,3)
+ if (ssh_options_set(sshs, SSH_OPTIONS_PUBLICKEY_ACCEPTED_TYPES, HOSTKEYS_SHA1)) {
+ *err_info = ws_strdup_printf("Can't set public key algorithms to allow SSH-RSA (SHA-1).");
+ goto failure;
+ }
+#endif
+ if (ssh_options_set(sshs, SSH_OPTIONS_KEY_EXCHANGE, KEY_EXCHANGE_SHA1)) {
+ *err_info = ws_strdup_printf("Can't set key exchange methods to allow SHA-1.");
+ goto failure;
+ }
+ if (ssh_options_set(sshs, SSH_OPTIONS_HMAC_C_S, HMAC_SHA1)) {
+ *err_info = ws_strdup_printf("Can't set MAC client to server algorithms to allow SHA-1.");
+ goto failure;
+ }
+ if (ssh_options_set(sshs, SSH_OPTIONS_HMAC_S_C, HMAC_SHA1)) {
+ *err_info = ws_strdup_printf("Can't set MAC server to client algorithms to allow SHA-1.");
+ goto failure;
+ }
+ }
+
if (ssh_params->port != 0) {
port = ssh_params->port;
if (ssh_options_set(sshs, SSH_OPTIONS_PORT, &port)) {
diff --git a/extcap/ssh-base.h b/extcap/ssh-base.h
index 8283bff..9ac5923 100644
--- a/extcap/ssh-base.h
+++ b/extcap/ssh-base.h
@@ -38,7 +38,8 @@
{ "remote-count", ws_required_argument, NULL, OPT_REMOTE_COUNT}, \
{ "sshkey", ws_required_argument, NULL, OPT_SSHKEY}, \
{ "sshkey-passphrase", ws_required_argument, NULL, OPT_SSHKEY_PASSPHRASE}, \
- { "proxycommand", ws_required_argument, NULL, OPT_PROXYCOMMAND}
+ { "proxycommand", ws_required_argument, NULL, OPT_PROXYCOMMAND}, \
+ { "ssh-sha1", ws_no_argument, NULL, OPT_SSH_SHA1}
typedef struct _ssh_params {
char* host;
@@ -48,6 +49,7 @@ typedef struct _ssh_params {
char* sshkey_path;
char* sshkey_passphrase;
char* proxycommand;
+ bool ssh_sha1;
bool debug;
} ssh_params_t;
diff --git a/extcap/sshdump.c b/extcap/sshdump.c
index 1286473..e4cfc79 100644
--- a/extcap/sshdump.c
+++ b/extcap/sshdump.c
@@ -57,6 +57,7 @@ enum {
OPT_SSHKEY,
OPT_SSHKEY_PASSPHRASE,
OPT_PROXYCOMMAND,
+ OPT_SSH_SHA1,
OPT_REMOTE_COUNT,
OPT_REMOTE_SUDO, // Deprecated
OPT_REMOTE_PRIV,
@@ -346,6 +347,9 @@ static int list_config(char *interface, unsigned int remote_port)
printf("arg {number=%u}{call=--proxycommand}{display=ProxyCommand}"
"{type=string}{tooltip=The command to use as proxy for the SSH connection}"
"{group=Authentication}\n", inc++);
+ printf("arg {number=%u}{call=--ssh-sha1}{display=Support SHA-1 keys (deprecated)}"
+ "{type=boolflag}{tooltip=Support keys and key exchange algorithms using SHA-1 (deprecated)}{group=Authentication}"
+ "\n", inc++);
printf("arg {number=%u}{call=--remote-interface}{display=Remote interface}"
"{type=string}{tooltip=The remote network interface used for capture"
"}{group=Capture}\n", inc++);
@@ -475,6 +479,7 @@ int main(int argc, char *argv[])
extcap_help_add_option(extcap_conf, "--sshkey <private key path>", "the path of the SSH key (OpenSSH format)");
extcap_help_add_option(extcap_conf, "--sshkey-passphrase <private key passphrase>", "the passphrase to unlock private SSH key");
extcap_help_add_option(extcap_conf, "--proxycommand <proxy command>", "the command to use as proxy for the SSH connection");
+ extcap_help_add_option(extcap_conf, "--ssh-sha1", "support keys and key exchange using SHA-1 (deprecated)");
extcap_help_add_option(extcap_conf, "--remote-interface <iface>", "the remote capture interface");
extcap_help_add_option(extcap_conf, "--remote-capture-command-select <selection>", "dumpcap, tcpdump or other remote capture command");
extcap_help_add_option(extcap_conf, "--remote-capture-command <capture command>", "the remote capture command");
@@ -546,6 +551,10 @@ int main(int argc, char *argv[])
ssh_params->proxycommand = g_strdup(ws_optarg);
break;
+ case OPT_SSH_SHA1:
+ ssh_params->ssh_sha1 = true;
+ break;
+
case OPT_REMOTE_INTERFACE:
g_free(remote_interface);
remote_interface = g_strdup(ws_optarg);
diff --git a/extcap/wifidump.c b/extcap/wifidump.c
index 489118e..ba3a636 100644
--- a/extcap/wifidump.c
+++ b/extcap/wifidump.c
@@ -59,6 +59,7 @@ enum {
OPT_SSHKEY,
OPT_SSHKEY_PASSPHRASE,
OPT_PROXYCOMMAND,
+ OPT_SSH_SHA1,
OPT_REMOTE_COUNT
};
@@ -456,6 +457,10 @@ static int list_config(char *interface)
printf("arg {number=%u}{call=--sshkey-passphrase}{display=SSH key passphrase}"
"{type=password}{tooltip=Passphrase to unlock the SSH private key}{group=Authentication}\n",
inc++);
+ printf("arg {number=%u}{call=--ssh-sha1}{display=Support SHA-1 keys (deprecated)}"
+ "{type=boolflag}{tooltip=Support keys and key exchange algorithms using SHA-1 (deprecated)}{group=Authentication}"
+ "\n", inc++);
+
// Capture tab
printf("arg {number=%u}{call=--remote-interface}{display=Remote interface}"
@@ -579,6 +584,7 @@ int main(int argc, char *argv[])
extcap_help_add_option(extcap_conf, "--remote-password <password>", "the remote SSH password. If not specified, ssh-agent and ssh-key are used");
extcap_help_add_option(extcap_conf, "--sshkey <public key path>", "the path of the ssh key");
extcap_help_add_option(extcap_conf, "--sshkey-passphrase <public key passphrase>", "the passphrase to unlock public ssh");
+ extcap_help_add_option(extcap_conf, "--ssh-sha1", "support keys and key exchange using SHA-1 (deprecated)");
extcap_help_add_option(extcap_conf, "--remote-interface <iface>", "the remote capture interface");
extcap_help_add_option(extcap_conf, "--remote-channel-frequency <channel_frequency>", "the remote channel frequency in MHz");
extcap_help_add_option(extcap_conf, "--remote-channel-width <channel_width>", "the remote channel width in MHz");
@@ -641,6 +647,10 @@ int main(int argc, char *argv[])
memset(ws_optarg, 'X', strlen(ws_optarg));
break;
+ case OPT_SSH_SHA1:
+ ssh_params->ssh_sha1 = true;
+ break;
+
case OPT_REMOTE_INTERFACE:
g_free(remote_interface);
remote_interface = g_strdup(ws_optarg);
diff --git a/packaging/debian/changelog b/packaging/debian/changelog
index 3240f8b..a9d1562 100644
--- a/packaging/debian/changelog
+++ b/packaging/debian/changelog
@@ -1,4 +1,4 @@
-wireshark (4.2.2) unstable; urgency=low
+wireshark (4.2.5) unstable; urgency=low
* Self-made package
diff --git a/packaging/debian/libwireshark17.symbols b/packaging/debian/libwireshark17.symbols
index 035399c..7f21fc1 100644
--- a/packaging/debian/libwireshark17.symbols
+++ b/packaging/debian/libwireshark17.symbols
@@ -278,6 +278,7 @@ libwireshark.so.17 libwireshark17 #MINVER#
decode_zcl_time_in_100ms@Base 2.5.2
decode_zcl_time_in_minutes@Base 2.5.2
decode_zcl_time_in_seconds@Base 2.5.2
+ decrement_dissection_depth@Base 4.2.4
delete_itu_tcap_subdissector@Base 1.9.1
deregister_depend_dissector@Base 2.1.0
destroy_print_stream@Base 1.12.0~rc1
@@ -997,6 +998,7 @@ libwireshark.so.17 libwireshark17 #MINVER#
ieee802a_add_oui@Base 1.9.1
in_cksum@Base 1.9.1
in_cksum_ret_partial@Base 4.2.0
+ increment_dissection_depth@Base 4.2.4
init_srt_table@Base 1.99.8
init_srt_table_row@Base 1.99.8
ip_checksum@Base 1.99.0
diff --git a/packaging/macosx/ChmodBPF/install-scripts/postinstall b/packaging/macosx/ChmodBPF/install-scripts/postinstall
index 1f11eb3..8f5035d 100755
--- a/packaging/macosx/ChmodBPF/install-scripts/postinstall
+++ b/packaging/macosx/ChmodBPF/install-scripts/postinstall
@@ -32,4 +32,9 @@ chown root:wheel "$CHMOD_BPF_PLIST"
# Clean up our legacy startup item if it's still around.
rm -rf /Library/StartupItems/ChmodBPF
+# Try to bootout first, otherwise bootstrap will fail with
+# "Bootstrap failed: 5: Input/output error"
+# if org.wireshark.ChmodBPF is already loaded.
+launchctl bootout system "$CHMOD_BPF_PLIST" > /dev/null 2>&1
+
launchctl bootstrap system "$CHMOD_BPF_PLIST"
diff --git a/packaging/nsis/CMakeLists.txt b/packaging/nsis/CMakeLists.txt
index d0c4866..5f9043d 100644
--- a/packaging/nsis/CMakeLists.txt
+++ b/packaging/nsis/CMakeLists.txt
@@ -22,7 +22,6 @@ set(WIRESHARK_NSIS_GENERATED_FILES ${WIRESHARK_NSIS_GENERATED_FILES} PARENT_SCOP
set(WIRESHARK_NSIS_FILES
${CMAKE_CURRENT_SOURCE_DIR}/wireshark.nsi
${CMAKE_CURRENT_SOURCE_DIR}/wireshark-common.nsh
- ${CMAKE_CURRENT_SOURCE_DIR}/GetWindowsVersion.nsh
${CMAKE_CURRENT_SOURCE_DIR}/servicelib.nsh
${CMAKE_CURRENT_SOURCE_DIR}/NpcapPage.ini
${CMAKE_CURRENT_SOURCE_DIR}/USBPcapPage.ini
@@ -41,7 +40,6 @@ set(LOGRAY_NSIS_FILES
logray.nsi
uninstall-logray.nsi
logray-common.nsh
- GetWindowsVersion.nsh
servicelib.nsh
NpcapPage.ini
USBPcapPage.ini
diff --git a/packaging/nsis/GetWindowsVersion.nsh b/packaging/nsis/GetWindowsVersion.nsh
deleted file mode 100644
index d020129..0000000
--- a/packaging/nsis/GetWindowsVersion.nsh
+++ /dev/null
@@ -1,190 +0,0 @@
-; GetWindowsVersion 4.1.1 (2015-06-22) - alternate script with server versions
-;
-; https://nsis.sourceforge.io/Get_Windows_version
-;
-; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/
-; Update by Joost Verburg
-; Update (Macro, Define, Windows 7 detection) - John T. Haller of PortableApps.com - 2008-01-07
-; Update (Windows 8 detection) - Marek Mizanin (Zanir) - 2013-02-07
-; Update (Windows 8.1 detection) - John T. Haller of PortableApps.com - 2014-04-04
-; Update (Windows 2008, 2008R2, 2012 and 2012R2 detection) - Francisco Simoões Filho franksimoes@gmail.com - 2014-08-25
-; Update (Windows 10 TP detection) - John T. Haller of PortableApps.com - 2014-10-01
-; Update (Windows 10 TP4 and 2016 detection, and added include guards) - Kairu - 2015-06-22
-;
-; Usage: ${GetWindowsVersion} $R0
-;
-; $R0 contains: 95, 98, ME, NT x.x, 2000, XP, 2003, Vista, 2008, 7, 2008R2,
-; 8, 2012, 8.1, 2012R2, 10.0, 2016 or '' (for unknown)
-
-!ifndef __GET_WINDOWS_VERSION_NSH
-!define __GET_WINDOWS_VERSION_NSH
-
-Function GetWindowsVersion
-
- Push $R0
- Push $R1
- Push $R2
-
- ClearErrors
-
- ; check if Windows NT family
- ReadRegStr $R0 HKLM \
- "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
-
- IfErrors 0 lbl_winnt
-
- ; we are not NT
- ReadRegStr $R0 HKLM \
- "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
-
- StrCpy $R1 $R0 1
- StrCmp $R1 '4' 0 lbl_error
-
- StrCpy $R1 $R0 3
-
- StrCmp $R1 '4.0' lbl_win32_95
- StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
-
- lbl_win32_95:
- StrCpy $R0 '95'
- Goto lbl_done
-
- lbl_win32_98:
- StrCpy $R0 '98'
- Goto lbl_done
-
- lbl_win32_ME:
- StrCpy $R0 'ME'
- Goto lbl_done
-
- lbl_winnt:
-
- ; check if Windows is Client or Server.
- ReadRegStr $R2 HKLM \
- "SOFTWARE\Microsoft\Windows NT\CurrentVersion" InstallationType
-
- StrCpy $R1 $R0 1
-
- StrCmp $R1 '3' lbl_winnt_x
- StrCmp $R1 '4' lbl_winnt_x
-
- StrCpy $R1 $R0 3
-
- StrCmp $R1 '5.0' lbl_winnt_2000
- StrCmp $R1 '5.1' lbl_winnt_XP
- StrCmp $R1 '5.2' lbl_winnt_2003
- StrCmp $R1 '6.0' lbl_winnt_vista_2008
- StrCmp $R1 '6.1' lbl_winnt_7_2008R2
- StrCmp $R1 '6.2' lbl_winnt_8_2012
- StrCmp $R1 '6.3' lbl_winnt_81_2012R2
- StrCmp $R1 '6.4' lbl_winnt_10_2016 ; the early Windows 10 tech previews used version 6.4
-
- StrCpy $R1 $R0 4
-
- StrCmp $R1 '10.0' lbl_winnt_10_2016
- Goto lbl_error
-
- lbl_winnt_x:
- StrCpy $R0 "NT $R0" 6
- Goto lbl_done
-
- lbl_winnt_2000:
- Strcpy $R0 '2000'
- Goto lbl_done
-
- lbl_winnt_XP:
- Strcpy $R0 'XP'
- Goto lbl_done
-
- lbl_winnt_2003:
- Strcpy $R0 '2003'
- Goto lbl_done
-
- ;----------------- Family - Vista / 2008 -------------
- lbl_winnt_vista_2008:
- StrCmp $R2 'Client' go_vista
- StrCmp $R2 'Server' go_2008
-
- go_vista:
- Strcpy $R0 'Vista'
- Goto lbl_done
-
- go_2008:
- Strcpy $R0 '2008'
- Goto lbl_done
- ;-----------------------------------------------------
-
- ;----------------- Family - 7 / 2008R2 -------------
- lbl_winnt_7_2008R2:
- StrCmp $R2 'Client' go_7
- StrCmp $R2 'Server' go_2008R2
-
- go_7:
- Strcpy $R0 '7'
- Goto lbl_done
-
- go_2008R2:
- Strcpy $R0 '2008R2'
- Goto lbl_done
- ;-----------------------------------------------------
-
- ;----------------- Family - 8 / 2012 -------------
- lbl_winnt_8_2012:
- StrCmp $R2 'Client' go_8
- StrCmp $R2 'Server' go_2012
-
- go_8:
- Strcpy $R0 '8'
- Goto lbl_done
-
- go_2012:
- Strcpy $R0 '2012'
- Goto lbl_done
- ;-----------------------------------------------------
-
- ;----------------- Family - 8.1 / 2012R2 -------------
- lbl_winnt_81_2012R2:
- StrCmp $R2 'Client' go_81
- StrCmp $R2 'Server' go_2012R2
-
- go_81:
- Strcpy $R0 '8.1'
- Goto lbl_done
-
- go_2012R2:
- Strcpy $R0 '2012R2'
- Goto lbl_done
- ;-----------------------------------------------------
-
- ;----------------- Family - 10 / 2016 -------------
- lbl_winnt_10_2016:
- StrCmp $R2 'Client' go_10
- StrCmp $R2 'Server' go_2016
-
- go_10:
- Strcpy $R0 '10.0'
- Goto lbl_done
-
- go_2016:
- Strcpy $R0 '2016'
- Goto lbl_done
- ;-----------------------------------------------------
-
- lbl_error:
- Strcpy $R0 ''
- lbl_done:
-
- Pop $R2
- Pop $R1
- Exch $R0
-
-FunctionEnd
-
-!macro GetWindowsVersion OUTPUT_VALUE
- Call GetWindowsVersion
- Pop `${OUTPUT_VALUE}`
-!macroend
-
-!define GetWindowsVersion '!insertmacro "GetWindowsVersion"'
-
-!endif
diff --git a/packaging/nsis/logray.nsi b/packaging/nsis/logray.nsi
index e87e3ca..5aed3b2 100644
--- a/packaging/nsis/logray.nsi
+++ b/packaging/nsis/logray.nsi
@@ -250,11 +250,11 @@ Var WIX_DISPLAYVERSION
Var WIX_UNINSTALLSTRING
; ============================================================================
-; 64-bit support
+; Platform and OS version checks
; ============================================================================
-!include x64.nsh
-!include "GetWindowsVersion.nsh"
+!include x64.nsh
+!include WinVer.nsh
!include WinMessages.nsh
Function .onInit
@@ -266,9 +266,6 @@ Function .onInit
${EndIf}
!endif
- ; Get the Windows version
- ${GetWindowsVersion} $R0
-
; This should match the following:
; - The NTDDI_VERSION and _WIN32_WINNT parts of cmakeconfig.h.in
; - The <compatibility><application> section in image\wireshark.exe.manifest.in
@@ -277,23 +274,13 @@ Function .onInit
; Uncomment to test.
; MessageBox MB_OK "You're running Windows $R0."
- ; Check if we're able to run with this version
- StrCmp $R0 '95' lbl_winversion_unsupported
- StrCmp $R0 '98' lbl_winversion_unsupported
- StrCmp $R0 'ME' lbl_winversion_unsupported
- StrCmp $R0 'NT 4.0' lbl_winversion_unsupported
- StrCmp $R0 '2000' lbl_winversion_unsupported
- StrCmp $R0 'XP' lbl_winversion_unsupported
- StrCmp $R0 '2003' lbl_winversion_unsupported
- StrCmp $R0 'Vista' lbl_winversion_unsupported
- StrCmp $R0 '2008' lbl_winversion_unsupported
- Goto lbl_winversion_supported
-
-lbl_winversion_unsupported:
+
+${If} ${AtMostWin8.1}
+${OrIf} ${AtMostWin2012R2}
MessageBox MB_OK \
- "Windows $R0 is not supported." \
- /SD IDOK
+ "Windows 10, Server 2016, and later are required." /SD IDOK
Quit
+${EndIf}
lbl_winversion_supported:
!insertmacro IsLograyRunning
diff --git a/packaging/nsis/mingw64-qt-mapping.txt b/packaging/nsis/mingw64-qt-mapping.txt
index 40ca2ef..71e1288 100644
--- a/packaging/nsis/mingw64-qt-mapping.txt
+++ b/packaging/nsis/mingw64-qt-mapping.txt
@@ -24,7 +24,9 @@
"lib/qt6/plugins/multimedia/windowsmediaplugin.dll" "multimedia/windowsmediaplugin.dll"
"lib/qt6/plugins/networkinformation/qnetworklistmanager.dll" "networkinformation/qnetworklistmanager.dll"
"lib/qt6/plugins/platforms/qwindows.dll" "platforms/qwindows.dll"
+# 6.7 renamed QWindowsVistaStylePlugin to QModernWindowsStylePlugin
"lib/qt6/plugins/styles/qwindowsvistastyle.dll" "styles/qwindowsvistastyle.dll"
+"lib/qt6/plugins/styles/qmodernwindowsstyle.dll" "styles/qmodernwindowsstyle.dll"
"lib/qt6/plugins/tls/qcertonlybackend.dll" "tls/qcertonlybackend.dll"
"lib/qt6/plugins/tls/qopensslbackend.dll" "tls/qopensslbackend.dll"
"lib/qt6/plugins/tls/qschannelbackend.dll" "tls/qschannelbackend.dll"
diff --git a/packaging/nsis/windeployqt-to-nsis.py b/packaging/nsis/windeployqt-to-nsis.py
index 2881f31..2339cf3 100644
--- a/packaging/nsis/windeployqt-to-nsis.py
+++ b/packaging/nsis/windeployqt-to-nsis.py
@@ -74,6 +74,10 @@ with open(args.outfile, 'w') as f:
line = line.strip()
if not line or line.startswith('#'):
continue
+ if line.startswith('Adding in plugin'):
+ # https://bugreports.qt.io/browse/QTBUG-122257
+ # Affects 6.6.0 - 6.6.2
+ continue
path, relative = line.split(" ")
rel_path = os.path.split(relative)
if len(rel_path) > 1:
@@ -86,6 +90,12 @@ with open(args.outfile, 'w') as f:
path = path.strip('"')
if args.sysroot:
path = os.path.join(args.sysroot, path)
+ if args.mapping and not os.path.isfile(path):
+ # This hack is because Qt 6.7 renamed QWindowsVistaStylePlugin
+ # to QModernWindowsStylePlugin. (This explicit mapping because
+ # windeployqt6 doesn't work well with cross-compiling is
+ # brittle.)
+ continue
file_path = 'File "{}"'.format(path)
print(file_path, file=f)
diff --git a/packaging/nsis/wireshark.nsi b/packaging/nsis/wireshark.nsi
index 5271cd3..0f2d55d 100644
--- a/packaging/nsis/wireshark.nsi
+++ b/packaging/nsis/wireshark.nsi
@@ -282,11 +282,11 @@ Var WIX_DISPLAYVERSION
Var WIX_UNINSTALLSTRING
; ============================================================================
-; 64-bit support
+; Platform and OS version checks
; ============================================================================
-!include x64.nsh
-!include "GetWindowsVersion.nsh"
+!include x64.nsh
+!include WinVer.nsh
!include WinMessages.nsh
Function .onInit
@@ -309,9 +309,6 @@ Function .onInit
${EndIf}
!endif
- ; Get the Windows version
- ${GetWindowsVersion} $R0
-
; This should match the following:
; - The NTDDI_VERSION and _WIN32_WINNT parts of cmakeconfig.h.in
; - The <compatibility><application> section in image\wireshark.exe.manifest.in
@@ -320,49 +317,51 @@ Function .onInit
; Uncomment to test.
; MessageBox MB_OK "You're running Windows $R0."
- ; Check if we're able to run with this version
- StrCmp $R0 '95' lbl_winversion_unsupported
- StrCmp $R0 '98' lbl_winversion_unsupported
- StrCmp $R0 'ME' lbl_winversion_unsupported
- StrCmp $R0 'NT 4.0' lbl_winversion_unsupported_nt4
- StrCmp $R0 '2000' lbl_winversion_unsupported_2000
- StrCmp $R0 'XP' lbl_winversion_unsupported_xp_2003
- StrCmp $R0 '2003' lbl_winversion_unsupported_xp_2003
- StrCmp $R0 'Vista' lbl_winversion_unsupported_vista_2008
- StrCmp $R0 '2008' lbl_winversion_unsupported_vista_2008
- Goto lbl_winversion_supported
-
-lbl_winversion_unsupported:
+${If} ${AtMostWinME}
+ MessageBox MB_OK \
+ "Windows 95, 98, and ME are no longer supported.$\nPlease install Ethereal 0.99.0 instead." \
+ /SD IDOK
+ Quit
+${EndIf}
+
+${If} ${IsWinNT4}
MessageBox MB_OK \
- "Windows $R0 is no longer supported.$\nPlease install Ethereal 0.99.0 instead." \
- /SD IDOK
+ "Windows NT 4.0 is no longer supported.$\nPlease install Wireshark 0.99.4 instead." \
+ /SD IDOK
Quit
+${EndIf}
-lbl_winversion_unsupported_nt4:
+${If} ${IsWin2000}
MessageBox MB_OK \
- "Windows $R0 is no longer supported.$\nPlease install Wireshark 0.99.4 instead." \
- /SD IDOK
+ "Windows 2000 is no longer supported.$\nPlease install Wireshark 1.2 or 1.0 instead." \
+ /SD IDOK
Quit
+${EndIf}
-lbl_winversion_unsupported_2000:
+${If} ${IsWinXP}
+${OrIf} ${IsWin2003}
MessageBox MB_OK \
- "Windows $R0 is no longer supported.$\nPlease install Wireshark 1.2 or 1.0 instead." \
- /SD IDOK
+ "Windows XP and Server 2003 are no longer supported.$\nPlease install ${PROGRAM_NAME} 1.12 or 1.10 instead." \
+ /SD IDOK
Quit
+${EndIf}
-lbl_winversion_unsupported_xp_2003:
+${If} ${IsWinVista}
+${OrIf} ${IsWin2008}
MessageBox MB_OK \
- "Windows $R0 is no longer supported.$\nPlease install ${PROGRAM_NAME} 1.12 or 1.10 instead." \
- /SD IDOK
+ "Windows Vista and Server 2008 are no longer supported.$\nPlease install ${PROGRAM_NAME} 2.2 instead." \
+ /SD IDOK
Quit
+${EndIf}
-lbl_winversion_unsupported_vista_2008:
+${If} ${AtMostWin8.1}
+${OrIf} ${AtMostWin2012R2}
MessageBox MB_OK \
- "Windows $R0 is no longer supported.$\nPlease install ${PROGRAM_NAME} 2.2 instead." \
- /SD IDOK
+ "Windows 7, 8, 8.1, Server 2008R2, and Server 2012 are no longer supported.$\nPlease install ${PROGRAM_NAME} 4.0 instead." \
+ /SD IDOK
Quit
+${EndIf}
-lbl_winversion_supported:
!insertmacro IsWiresharkRunning
; Default control values.
diff --git a/packaging/source/git-export-release.sh.in b/packaging/source/git-export-release.sh.in
index 854af25..a0f876a 100755
--- a/packaging/source/git-export-release.sh.in
+++ b/packaging/source/git-export-release.sh.in
@@ -44,7 +44,7 @@ TARBALL="${DESTDIR}/wireshark-${PROJECT_VERSION}.tar.xz"
# A tarball produced by 'git archive' will have the $Format string
# substituted due to the use of 'export-subst' in .gitattributes.
# shellcheck disable=SC2016
-COMMIT='40459284278611128aac5cef35a563218933f8da'
+COMMIT='4aa814ac25a18ea48d4002351ed45d4b245b0c08'
if [[ $COMMIT != \$F* ]] ; then
# This file was extracted from a tarball produced by git archive
diff --git a/packaging/wix/Prerequisites.wxi b/packaging/wix/Prerequisites.wxi
index 54e8416..aa03a45 100644
--- a/packaging/wix/Prerequisites.wxi
+++ b/packaging/wix/Prerequisites.wxi
@@ -17,7 +17,7 @@
<!-- This should match the following:
- The NTDDI_VERSION and _WIN32_WINNT parts of cmakeconfig.h.in
- The <compatibility><application> section in image\wireshark.exe.manifest.in
- - The GetWindowsVersion parts of packaging\nsis\wireshark.nsi
+ - The WinVer parts of packaging\nsis\wireshark.nsi
-->
<Condition Message="Windows 2000 is no longer supported. Please install $(var.WiresharkName) 1.2 or 1.0 instead.">
<![CDATA[Installed OR (VersionNT < 500) OR (VersionNT > 500)]]>
@@ -35,8 +35,12 @@
<![CDATA[Installed OR (VersionNT < 600) OR (VersionNT > 600)]]>
</Condition>
- <Condition Message="$(var.WiresharkName)$(var.WiresharkVersion) is only supported on Windows 7, Windows Server 2008R2, or higher.">
- <![CDATA[Installed OR (VersionNT >= 601)]]>
+ <Condition Message="Windows 7, 8, 8.1, Server 2008R2, and Server 2012 are no longer supported. Please install $(var.WiresharkName) 4.0 instead.">
+ <![CDATA[Installed OR (VersionNT < 601) OR (VersionNT > 602)]]>
+ </Condition>
+
+ <Condition Message="$(var.WiresharkName)$(var.WiresharkVersion) is only supported on Windows 10, Windows Server 2016, or higher.">
+ <![CDATA[Installed OR (VersionNT >= 603)]]>
</Condition>
<!--
diff --git a/plugins/epan/gryphon/packet-gryphon.c b/plugins/epan/gryphon/packet-gryphon.c
index 6df68a3..08da00f 100644
--- a/plugins/epan/gryphon/packet-gryphon.c
+++ b/plugins/epan/gryphon/packet-gryphon.c
@@ -1118,6 +1118,7 @@ decode_event(tvbuff_t *tvb, int offset, proto_tree *pt)
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
decode_misc (tvbuff_t *tvb, int offset, packet_info* pinfo, proto_tree *pt)
{
tvbuff_t *next_tvb;
@@ -2715,6 +2716,7 @@ resp_restore_session(tvbuff_t *tvb, int offset, proto_tree *pt)
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
cmd_addresp(tvbuff_t *tvb, int offset, packet_info* pinfo, proto_tree *pt)
{
proto_item *item;
@@ -3700,6 +3702,7 @@ get_conversation_data(packet_info* pinfo)
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
decode_command(tvbuff_t *tvb, packet_info* pinfo, int msglen, int offset, int dst, proto_tree *pt)
{
guint32 cmd;
@@ -3751,6 +3754,7 @@ decode_command(tvbuff_t *tvb, packet_info* pinfo, int msglen, int offset, int ds
ft = proto_tree_add_subtree_format(pt, tvb, offset, msglen, ett_gryphon_command_data, NULL,
"Data: (%d byte%s)", msglen, plurality(msglen, "", "s"));
+ increment_dissection_depth(pinfo);
switch (cmd)
{
case CMD_INIT:
@@ -3958,12 +3962,14 @@ decode_command(tvbuff_t *tvb, packet_info* pinfo, int msglen, int offset, int ds
offset += msglen;
break;
}
+ decrement_dissection_depth(pinfo);
}
return offset;
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
decode_response(tvbuff_t *tvb, packet_info* pinfo, int offset, int src, proto_tree *pt)
{
int msglen;
@@ -4042,6 +4048,7 @@ decode_response(tvbuff_t *tvb, packet_info* pinfo, int offset, int src, proto_tr
ft = proto_tree_add_subtree_format(pt, tvb, offset, msglen, ett_gryphon_response_data, NULL,
"Data: (%d byte%s)", msglen, plurality(msglen, "", "s"));
+ increment_dissection_depth(pinfo);
switch (cmd)
{
case CMD_GET_CONFIG:
@@ -4191,6 +4198,7 @@ decode_response(tvbuff_t *tvb, packet_info* pinfo, int offset, int src, proto_tr
proto_tree_add_item(ft, hf_gryphon_data, tvb, offset, msglen, ENC_NA);
offset += msglen;
}
+ decrement_dissection_depth(pinfo);
}
return offset;
@@ -4202,6 +4210,7 @@ decode_response(tvbuff_t *tvb, packet_info* pinfo, int offset, int src, proto_tr
* So, this function will decode a packet and return the offset.
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_gryphon_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean is_msgresp_add)
{
proto_tree *gryphon_tree;
@@ -4273,6 +4282,7 @@ dissect_gryphon_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gbo
body_tree = proto_tree_add_subtree(gryphon_tree, tvb, offset, msglen, ett_gryphon_body, NULL, "Body");
+ increment_dissection_depth(pinfo);
switch (frmtyp) {
case GY_FT_CMD:
offset = decode_command(tvb, pinfo, msglen, offset, dest, body_tree);
@@ -4299,6 +4309,7 @@ dissect_gryphon_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gbo
proto_tree_add_item(body_tree, hf_gryphon_data, tvb, offset, msglen, ENC_NA);
break;
}
+ decrement_dissection_depth(pinfo);
/*debug*/
/*i = msgend - offset;*/
diff --git a/plugins/epan/mate/mate_runtime.c b/plugins/epan/mate/mate_runtime.c
index 41d9c0d..8cda791 100644
--- a/plugins/epan/mate/mate_runtime.c
+++ b/plugins/epan/mate/mate_runtime.c
@@ -18,6 +18,7 @@
typedef struct _mate_range mate_range;
struct _mate_range {
+ tvbuff_t *ds_tvb;
guint start;
guint end;
};
@@ -643,19 +644,84 @@ static void analyze_pdu(mate_config* mc, mate_pdu* pdu) {
}
}
+static proto_node *
+proto_tree_find_node_from_finfo(proto_tree *tree, field_info *finfo)
+{
+ proto_node *pnode = tree;
+ proto_node *child;
+ proto_node *current;
+
+ if (PNODE_FINFO(pnode) == finfo) {
+ return pnode;
+ }
+
+ child = pnode->first_child;
+ while (child != NULL) {
+ current = child;
+ child = current->next;
+ if ((pnode = proto_tree_find_node_from_finfo((proto_tree *)current, finfo))) {
+ return pnode;
+ }
+ }
+
+ return NULL;
+}
+
+/* This returns true if there's no point in searching for the avp among the
+ * ancestor nodes in the tree. That includes if the field is within one
+ * of the ranges, or if the field and all the ranges share the same
+ * data source.
+ */
+static bool
+add_avp(const char *name, field_info *fi, const field_info *ancestor_fi, tmp_pdu_data *data)
+{
+ AVP* avp;
+ char* s;
+ mate_range* curr_range;
+ unsigned start, end;
+ tvbuff_t *ds_tvb;
+ bool all_same_ds = true;
+
+ start = ancestor_fi->start;
+ end = ancestor_fi->start + ancestor_fi->length;
+ ds_tvb = ancestor_fi->ds_tvb;
+
+ for (unsigned j = 0; j < data->ranges->len; j++) {
+
+ curr_range = (mate_range*) g_ptr_array_index(data->ranges,j);
+
+ if (curr_range->ds_tvb == ds_tvb) {
+ if (curr_range->end >= end && curr_range->start <= start) {
+ avp = new_avp_from_finfo(name, fi);
+ if (*dbg_pdu > 4) {
+ s = avp_to_str(avp);
+ dbg_print(dbg_pdu,0,dbg_facility,"add_avp: got %s",s);
+ g_free(s);
+ }
+
+ if (! insert_avp(data->pdu->avpl, avp) ) {
+ delete_avp(avp);
+ }
+ return true;
+ }
+ } else {
+ all_same_ds = false;
+ }
+ }
+
+ return all_same_ds;
+}
+
static void get_pdu_fields(gpointer k, gpointer v, gpointer p) {
int hfid = *((int*) k);
gchar* name = (gchar*) v;
tmp_pdu_data* data = (tmp_pdu_data*) p;
GPtrArray* fis;
field_info* fi;
- guint i,j;
- mate_range* curr_range;
+ guint i;
guint start;
guint end;
- AVP* avp;
- gchar* s;
-
+ tvbuff_t *ds_tvb;
fis = proto_get_finfo_ptr_array(data->tree, hfid);
@@ -666,37 +732,35 @@ static void get_pdu_fields(gpointer k, gpointer v, gpointer p) {
start = fi->start;
end = fi->start + fi->length;
+ ds_tvb = fi->ds_tvb;
dbg_print(dbg_pdu,5,dbg_facility,"get_pdu_fields: found field %s, %i-%i, length %i", fi->hfinfo->abbrev, start, end, fi->length);
- for (j = 0; j < data->ranges->len; j++) {
-
- curr_range = (mate_range*) g_ptr_array_index(data->ranges,j);
-
- if (curr_range->end >= end && curr_range->start <= start) {
- avp = new_avp_from_finfo(name, fi);
-
- if (*dbg_pdu > 4) {
- s = avp_to_str(avp);
- dbg_print(dbg_pdu,0,dbg_facility,"get_pdu_fields: got %s",s);
- g_free(s);
- }
-
- if (! insert_avp(data->pdu->avpl,avp) ) {
- delete_avp(avp);
+ if (!add_avp(name, fi, fi, data)) {
+ /* The field came from a different data source than one of the
+ * ranges (protocol, transport protocol, payload). Search for
+ * the tree node with the field and look to see if one of its
+ * parents is contained within one of the ranges.
+ * (The field, and the hfis for the ranges, were marked as
+ * interesting so this should always work, albeit slower than above.)
+ */
+ for (proto_node *pnode = proto_tree_find_node_from_finfo(data->tree, fi);
+ pnode; pnode = pnode->parent) {
+ field_info *ancestor_fi = PNODE_FINFO(pnode);
+ if (ancestor_fi && ancestor_fi->ds_tvb != ds_tvb) {
+ /* Only check anew when the data source changes. */
+ ds_tvb = ancestor_fi->ds_tvb;
+ if (add_avp(name, fi, ancestor_fi, data)) {
+ /* Go to next field in fis */
+ break;
+ }
}
-
}
}
}
}
}
-static void ptr_array_free(gpointer data, gpointer user_data _U_)
-{
- g_free(data);
-}
-
static mate_pdu* new_pdu(mate_cfg_pdu* cfg, guint32 framenum, field_info* proto, proto_tree* tree) {
mate_pdu* pdu = (mate_pdu*)g_slice_new(mate_max_size);
field_info* cfi;
@@ -732,12 +796,13 @@ static mate_pdu* new_pdu(mate_cfg_pdu* cfg, guint32 framenum, field_info* proto,
pdu->is_stop = FALSE;
pdu->after_release = FALSE;
- data.ranges = g_ptr_array_new();
+ data.ranges = g_ptr_array_new_with_free_func(g_free);
data.pdu = pdu;
data.tree = tree;
/* first we create the proto range */
proto_range = g_new(mate_range, 1);
+ proto_range->ds_tvb = proto->ds_tvb;
proto_range->start = proto->start;
proto_range->end = proto->start + proto->length;
g_ptr_array_add(data.ranges,proto_range);
@@ -764,6 +829,7 @@ static mate_pdu* new_pdu(mate_cfg_pdu* cfg, guint32 framenum, field_info* proto,
if ( range_fi ) {
range = (mate_range *)g_malloc(sizeof(*range));
+ range->ds_tvb = range_fi->ds_tvb;
range->start = range_fi->start;
range->end = range_fi->start + range_fi->length;
g_ptr_array_add(data.ranges,range);
@@ -801,6 +867,7 @@ static mate_pdu* new_pdu(mate_cfg_pdu* cfg, guint32 framenum, field_info* proto,
if ( range_fi ) {
range = (mate_range *)g_malloc(sizeof(*range));
+ range->ds_tvb = range_fi->ds_tvb;
range->start = range_fi->start;
range->end = range_fi->start + range_fi->length;
g_ptr_array_add(data.ranges,range);
@@ -819,7 +886,6 @@ static mate_pdu* new_pdu(mate_cfg_pdu* cfg, guint32 framenum, field_info* proto,
apply_transforms(pdu->cfg->transforms,pdu->avpl);
- g_ptr_array_foreach(data.ranges, ptr_array_free, NULL);
g_ptr_array_free(data.ranges,TRUE);
return pdu;
diff --git a/plugins/epan/mate/packet-mate.c b/plugins/epan/mate/packet-mate.c
index 97774cd..2b36659 100644
--- a/plugins/epan/mate/packet-mate.c
+++ b/plugins/epan/mate/packet-mate.c
@@ -368,6 +368,15 @@ proto_reg_handoff_mate(void)
*/
set_postdissector_wanted_hfids(mate_handle,
mc->wanted_hfids);
+ /* XXX: Due to #17877, any protocol added to the tree with length -1
+ * that changes its length later (and there are many, such as TCP)
+ * doesn't actually change its length unless the tree is visible,
+ * which means that entire range checking work in MATE to split up
+ * multiple PDUs of the target protocol in the same frame doesn't
+ * work. Set the tree as visible as with Lua postdissectors that
+ * need all fields. It's overkill and bad for performance, though.
+ */
+ epan_set_always_visible(TRUE);
initialize_mate_runtime(mc);
}
diff --git a/plugins/epan/opcua/opcua.c b/plugins/epan/opcua/opcua.c
index 7eec5b6..33d966a 100644
--- a/plugins/epan/opcua/opcua.c
+++ b/plugins/epan/opcua/opcua.c
@@ -282,7 +282,7 @@ static int dissect_opcua_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
arbitrary value, so we have to fake the numbers in the stored fragments.
this way Wireshark reassembles the message, as it expects the fragment
sequence numbers to start at 0 */
- for (frag_i = frag_msg->next; frag_i; frag_i = frag_i->next) {}
+ for (frag_i = frag_msg->next; frag_i && frag_i->next; frag_i = frag_i->next) {}
if (frag_i) {
opcua_seqnum = frag_i->offset + 1;
} else {
diff --git a/plugins/epan/opcua/opcua_simpletypes.c b/plugins/epan/opcua/opcua_simpletypes.c
index e913ac6..24bcbbc 100644
--- a/plugins/epan/opcua/opcua_simpletypes.c
+++ b/plugins/epan/opcua/opcua_simpletypes.c
@@ -793,6 +793,7 @@ proto_item* parseDateTime(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U
return item;
}
+// NOLINTNEXTLINE(misc-no-recursion)
void parseDiagnosticInfo(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
static int * const diag_mask[] = {&hf_opcua_diag_mask_symbolicflag,
@@ -827,6 +828,7 @@ void parseDiagnosticInfo(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gi
proto_tree_add_bitmask(subtree, tvb, iOffset, hf_opcua_diag_mask, ett_opcua_diagnosticinfo_encodingmask, diag_mask, ENC_LITTLE_ENDIAN);
iOffset++;
+ increment_dissection_depth(pinfo);
if (EncodingMask & DIAGNOSTICINFO_ENCODINGMASK_SYMBOLICID_FLAG)
{
parseInt32(subtree, tvb, pinfo, &iOffset, hf_opcua_diag_symbolicid);
@@ -855,6 +857,7 @@ void parseDiagnosticInfo(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gi
{
parseDiagnosticInfo(subtree, tvb, pinfo, &iOffset, "Inner DiagnosticInfo");
}
+ decrement_dissection_depth(pinfo);
proto_item_set_end(ti, tvb, iOffset);
*pOffset = iOffset;
@@ -875,6 +878,7 @@ void parseQualifiedName(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gin
proto_item_set_end(ti, tvb, *pOffset);
}
+// NOLINTNEXTLINE(misc-no-recursion)
void parseDataValue(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
static int * const datavalue_mask[] = {&hf_opcua_datavalue_mask_valueflag,
@@ -895,6 +899,7 @@ void parseDataValue(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *p
proto_tree_add_bitmask(subtree, tvb, iOffset, hf_opcua_datavalue_mask, ett_opcua_datavalue_encodingmask, datavalue_mask, ENC_LITTLE_ENDIAN);
iOffset++;
+ increment_dissection_depth(pinfo);
if (EncodingMask & DATAVALUE_ENCODINGBYTE_VALUE)
{
parseVariant(subtree, tvb, pinfo, &iOffset, "Value");
@@ -919,11 +924,13 @@ void parseDataValue(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *p
{
parseUInt16(subtree, tvb, pinfo, &iOffset, hf_opcua_ServerPicoseconds);
}
+ decrement_dissection_depth(pinfo);
proto_item_set_end(ti, tvb, iOffset);
*pOffset = iOffset;
}
+// NOLINTNEXTLINE(misc-no-recursion)
void parseVariant(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
@@ -951,6 +958,7 @@ void parseVariant(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOf
if (EncodingMask & VARIANT_ARRAYMASK)
{
/* type is encoded in bits 0-5 */
+ increment_dissection_depth(pinfo);
switch(EncodingMask & 0x3f)
{
case OpcUaType_Null: break;
@@ -980,6 +988,7 @@ void parseVariant(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOf
case OpcUaType_DataValue: parseArrayComplex(subtree, tvb, pinfo, &iOffset, "DataValue", "DataValue", parseDataValue, ett_opcua_array_DataValue); break;
case OpcUaType_Variant: parseArrayComplex(subtree, tvb, pinfo, &iOffset, "Variant", "Variant", parseVariant, ett_opcua_array_Variant); break;
}
+ decrement_dissection_depth(pinfo);
if (EncodingMask & VARIANT_ARRAYDIMENSIONS)
{
@@ -1009,6 +1018,7 @@ void parseVariant(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOf
else
{
/* type is encoded in bits 0-5 */
+ increment_dissection_depth(pinfo);
switch(EncodingMask & 0x3f)
{
case OpcUaType_Null: break;
@@ -1038,6 +1048,7 @@ void parseVariant(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOf
case OpcUaType_DataValue: parseDataValue(subtree, tvb, pinfo, &iOffset, "Value"); break;
case OpcUaType_Variant: parseVariant(subtree, tvb, pinfo, &iOffset, "Value"); break;
}
+ decrement_dissection_depth(pinfo);
}
proto_item_set_end(ti, tvb, iOffset);
diff --git a/plugins/epan/profinet/packet-dcerpc-pn-io.c b/plugins/epan/profinet/packet-dcerpc-pn-io.c
index 34e08ae..a5afda8 100644
--- a/plugins/epan/profinet/packet-dcerpc-pn-io.c
+++ b/plugins/epan/profinet/packet-dcerpc-pn-io.c
@@ -4519,6 +4519,7 @@ dissect_Diagnosis(tvbuff_t *tvb, int offset, packet_info *pinfo _U_,
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_AlarmUserStructure(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item, guint8 *drep,
guint16 *body_length, guint16 u16UserStructureIdentifier)
@@ -4580,6 +4581,7 @@ dissect_AlarmUserStructure(tvbuff_t *tvb, int offset,
/* dissect the alarm notification block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_AlarmNotification_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow,
guint16 body_length)
@@ -4595,6 +4597,8 @@ dissect_AlarmNotification_block(tvbuff_t *tvb, int offset,
return offset;
}
+ increment_dissection_depth(pinfo);
+
offset = dissect_Alarm_header(tvb, offset, pinfo, tree, item, drep);
offset = dissect_dcerpc_uint32(tvb, offset, pinfo, tree, drep,
@@ -4619,6 +4623,8 @@ dissect_AlarmNotification_block(tvbuff_t *tvb, int offset,
offset = dissect_AlarmUserStructure(tvb, offset, pinfo, tree, item, drep, &body_length, u16UserStructureIdentifier);
}
+ decrement_dissection_depth(pinfo);
+
return offset;
}
@@ -4788,6 +4794,7 @@ dissect_IandM4_block(tvbuff_t *tvb, int offset,
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_IandM5_block(tvbuff_t *tvb, int offset,
packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint8 *drep _U_, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -5299,6 +5306,7 @@ guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
/* dissect the AssetManagementInfo */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_AssetManagementInfo(tvbuff_t *tvb, int offset,
packet_info *pinfo _U_, proto_tree *tree, guint8 *drep)
{
@@ -5321,6 +5329,7 @@ packet_info *pinfo _U_, proto_tree *tree, guint8 *drep)
/* dissect the AssetManagementData block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_AssetManagementData_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item, guint8 *drep,
guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
@@ -5330,7 +5339,9 @@ guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
"Block version %u.%u not implemented yet!", u8BlockVersionHigh, u8BlockVersionLow);
return offset;
}
+ increment_dissection_depth(pinfo);
offset = dissect_AssetManagementInfo(tvb, offset, pinfo, tree, drep);
+ decrement_dissection_depth(pinfo);
return offset;
}
@@ -5490,6 +5501,7 @@ dissect_RecordInputDataObjectElement_block(tvbuff_t *tvb, int offset,
/* dissect the RecordOutputDataObjectElement block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_RecordOutputDataObjectElement_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -6056,6 +6068,7 @@ dissect_SubmoduleListBlock(tvbuff_t *tvb, int offset,
/* dissect the PDevData block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDevData_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -6122,6 +6135,7 @@ dissect_CheckMAUTypeExtension_block(tvbuff_t *tvb, int offset,
/* dissect the PDPortDataAdjust block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDPortData_Adjust_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow,
guint16 u16BodyLength)
@@ -6162,6 +6176,7 @@ dissect_PDPortData_Adjust_block(tvbuff_t *tvb, int offset,
/* dissect the PDPortDataCheck blocks */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDPortData_Check_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow,
guint16 u16BodyLength)
@@ -6359,6 +6374,7 @@ dissect_PDPortDataReal_block(tvbuff_t *tvb, int offset,
/* dissect the PDPortDataRealExtended blocks */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDPortDataRealExtended_block(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree,
proto_item *item, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow, guint16 u16BodyLength)
{
@@ -6395,6 +6411,7 @@ dissect_PDPortDataRealExtended_block(tvbuff_t *tvb, int offset, packet_info *pin
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDInterfaceMrpDataAdjust_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow, guint16 u16BodyLength)
{
@@ -6479,6 +6496,7 @@ dissect_PDInterfaceMrpDataAdjust_block(tvbuff_t *tvb, int offset,
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDInterfaceMrpDataReal_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow, guint16 u16BodyLength)
{
@@ -6556,6 +6574,7 @@ dissect_PDInterfaceMrpDataReal_block(tvbuff_t *tvb, int offset,
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDInterfaceMrpDataCheck_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -7167,6 +7186,7 @@ dissect_CheckPortState_block(tvbuff_t *tvb, int offset,
/* dissect the PDPortFODataReal block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDPortFODataReal_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow,
guint16 u16BodyLength)
@@ -7440,6 +7460,7 @@ dissect_AdjustDCPBoundary_block(tvbuff_t *tvb, int offset,
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_MrpInstanceDataAdjust_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow, guint16 u16BodyLength)
{
@@ -7485,6 +7506,7 @@ dissect_MrpInstanceDataAdjust_block(tvbuff_t *tvb, int offset,
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_MrpInstanceDataReal_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow, guint16 u16BodyLength)
{
@@ -7595,6 +7617,7 @@ dissect_PDInterfaceAdjust_block(tvbuff_t *tvb, int offset,
/* TSNNetworkControlDataReal */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_TSNNetworkControlDataReal_block(tvbuff_t* tvb, int offset,
packet_info* pinfo, proto_tree* tree, proto_item* item _U_, guint8* drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -7707,6 +7730,7 @@ dissect_TSNNetworkControlDataReal_block(tvbuff_t* tvb, int offset,
/* TSNNetworkControlDataAdjust */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_TSNNetworkControlDataAdjust_block(tvbuff_t* tvb, int offset,
packet_info* pinfo, proto_tree* tree, proto_item* item _U_, guint8* drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -7906,6 +7930,7 @@ dissect_TSNSyncTreeData_block(tvbuff_t* tvb, int offset,
/* TSNDomainPortConfigBlock */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_TSNDomainPortConfig_block(tvbuff_t* tvb, int offset,
packet_info* pinfo, proto_tree* tree, proto_item* item _U_, guint8* drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -8066,6 +8091,7 @@ dissect_TSNTimeData_block(tvbuff_t* tvb, int offset,
/* TSNUploadNetworkAttributesBlock */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_TSNUploadNetworkAttributes_block(tvbuff_t* tvb, int offset,
packet_info* pinfo, proto_tree* tree, proto_item* item _U_, guint8* drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -8171,6 +8197,7 @@ dissect_TSNExpectedNeighbor_block(tvbuff_t* tvb, int offset,
/* TSNExpectedNetworkAttributesBlock */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_TSNExpectedNetworkAttributes_block(tvbuff_t* tvb, int offset,
packet_info* pinfo, proto_tree* tree, proto_item* item _U_, guint8* drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -8805,6 +8832,7 @@ dissect_PDSyncData_block(tvbuff_t *tvb, int offset,
/* dissect the PDIRData block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDIRData_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -9209,6 +9237,7 @@ dissect_PDIRBeginEndData_block(tvbuff_t *tvb, int offset,
/* dissect the DiagnosisData block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_DiagnosisData_block(tvbuff_t *tvb, int offset,
packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint8 *drep _U_, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow,
guint16 body_length)
@@ -9257,6 +9286,7 @@ dissect_DiagnosisData_block(tvbuff_t *tvb, int offset,
proto_item_append_text(sub_item, " reserved");
}
offset = offset +2; /* Advance behind ChannelNumber */
+ increment_dissection_depth(pinfo);
/* ChannelProperties */
offset = dissect_ChannelProperties(tvb, offset, pinfo, tree, item, drep);
body_length-=8;
@@ -9281,6 +9311,7 @@ dissect_DiagnosisData_block(tvbuff_t *tvb, int offset,
offset = dissect_AlarmUserStructure(tvb, offset, pinfo, tree, item, drep,
&body_length, u16UserStructureIdentifier);
}
+ decrement_dissection_depth(pinfo);
return offset;
}
@@ -9379,6 +9410,7 @@ dissect_IOCRProperties(tvbuff_t *tvb, int offset,
/* dissect the ARData block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_ARData_block(tvbuff_t *tvb, int offset,
packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint8 *drep _U_, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow, guint16 u16BlockLength)
{
@@ -9419,6 +9451,7 @@ dissect_ARData_block(tvbuff_t *tvb, int offset,
i32EndOffset = offset + u16BlockLength;
offset = dissect_dcerpc_uint16(tvb, offset, pinfo, tree, drep,
hf_pn_io_number_of_ars, &u16NumberOfARs);
+ increment_dissection_depth(pinfo);
/* BlockversionLow: 0 */
if (u8BlockVersionLow == 0) {
while (u16NumberOfARs--) {
@@ -9667,6 +9700,7 @@ dissect_ARData_block(tvbuff_t *tvb, int offset,
proto_item_set_len(ar_item, offset - u32ARDataStart);
}
}
+ decrement_dissection_depth(pinfo);
return offset;
}
@@ -9849,6 +9883,7 @@ dissect_FSParameter_block(tvbuff_t *tvb, int offset,
/* dissect the FSUDataAdjust block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDInterfaceFSUDataAdjust_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow,
guint16 u16BodyLength)
@@ -9878,6 +9913,7 @@ dissect_PDInterfaceFSUDataAdjust_block(tvbuff_t *tvb, int offset,
/* dissect the ARFSUDataAdjust block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_ARFSUDataAdjust_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow,
guint16 u16BodyLength)
@@ -11159,6 +11195,7 @@ dissect_RSInfoBlock_block(tvbuff_t *tvb, int offset,
/* dissect the PDIRSubframeData block 0x022a */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDIRSubframeData_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -12152,6 +12189,7 @@ dissect_CIMSNMPAdjust_block(tvbuff_t *tvb, int offset,
/* dissect the MultipleBlockHeader block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_MultipleBlockHeader_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow,
guint16 u16BodyLength)
@@ -12190,6 +12228,7 @@ dissect_MultipleBlockHeader_block(tvbuff_t *tvb, int offset,
/* dissect Combined Object Container Content block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_COContainerContent_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow,
guint16 u16Index, guint32 *u32RecDataLen, pnio_ar_t **ar)
@@ -12438,6 +12477,7 @@ dissect_RS_AckEvent_block(tvbuff_t *tvb, int offset,
/* dissect one PN-IO block (depending on the block type) */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, guint8 *drep, guint16 *u16Index, guint32 *u32RecDataLen, pnio_ar_t **ar)
{
@@ -12493,6 +12533,7 @@ dissect_block(tvbuff_t *tvb, int offset,
proto_item_append_text(sub_item, " Block_Length: %d greater than remaining Bytes, trying with Blocklen = remaining (%d)", u16BodyLength, remainingBytes);
u16BodyLength = remainingBytes;
}
+ increment_dissection_depth(pinfo);
switch (u16BlockType) {
case(0x0001):
case(0x0002):
@@ -12928,6 +12969,7 @@ dissect_block(tvbuff_t *tvb, int offset,
default:
dissect_pn_undecoded(tvb, offset, pinfo, sub_tree, u16BodyLength);
}
+ decrement_dissection_depth(pinfo);
offset += u16BodyLength;
proto_item_set_len(sub_item, offset - u32SubStart);
@@ -12938,6 +12980,7 @@ dissect_block(tvbuff_t *tvb, int offset,
/* dissect any PN-IO block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_a_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, guint8 *drep)
{
@@ -12956,6 +12999,7 @@ dissect_a_block(tvbuff_t *tvb, int offset,
/* dissect any number of PN-IO blocks */
int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_blocks(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, guint8 *drep)
{
@@ -13909,6 +13953,7 @@ dissect_RecordDataWrite(tvbuff_t *tvb, int offset,
#define PN_IO_MAX_RECURSION_DEPTH 100
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_IODWriteReq(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, guint8 *drep, pnio_ar_t **ar, guint recursion_count)
{
@@ -13921,6 +13966,8 @@ dissect_IODWriteReq(tvbuff_t *tvb, int offset,
return tvb_captured_length(tvb);
}
+ increment_dissection_depth(pinfo);
+
/* IODWriteHeader */
offset = dissect_block(tvb, offset, pinfo, tree, drep, &u16Index, &u32RecDataLen, ar);
@@ -13950,6 +13997,8 @@ dissect_IODWriteReq(tvbuff_t *tvb, int offset,
}
}
+ decrement_dissection_depth(pinfo);
+
return offset;
}
diff --git a/plugins/epan/wimaxasncp/packet-wimaxasncp.c b/plugins/epan/wimaxasncp/packet-wimaxasncp.c
index 082d9ea..4de30ff 100644
--- a/plugins/epan/wimaxasncp/packet-wimaxasncp.c
+++ b/plugins/epan/wimaxasncp/packet-wimaxasncp.c
@@ -1789,6 +1789,7 @@ static void wimaxasncp_dissect_tlv_value(
/* ========================================================================= */
+// NOLINTNEXTLINE(misc-no-recursion)
static guint dissect_wimaxasncp_tlvs(
tvbuff_t *tvb,
packet_info *pinfo,
@@ -1897,8 +1898,9 @@ static guint dissect_wimaxasncp_tlvs(
MIN(length, tvb_captured_length_remaining(tvb, offset)),
length);
- /* N.B. This is a recursive call... */
+ increment_dissection_depth(pinfo);
dissect_wimaxasncp_tlvs(tlv_tvb, pinfo, tlv_tree);
+ decrement_dissection_depth(pinfo);
}
else
{
diff --git a/reordercap.c b/reordercap.c
index ed4a364..a8aba00 100644
--- a/reordercap.c
+++ b/reordercap.c
@@ -276,27 +276,6 @@ main(int argc, char *argv[])
}
DEBUG_PRINT("file_type_subtype is %d\n", wtap_file_type_subtype(wth));
- wtap_dump_params_init(&params, wth);
-
- /* Open outfile (same filetype/encap as input file) */
- if (strcmp(outfile, "-") == 0) {
- pdh = wtap_dump_open_stdout(wtap_file_type_subtype(wth),
- WTAP_UNCOMPRESSED, &params, &err, &err_info);
- } else {
- pdh = wtap_dump_open(outfile, wtap_file_type_subtype(wth),
- WTAP_UNCOMPRESSED, &params, &err, &err_info);
- }
- g_free(params.idb_inf);
- params.idb_inf = NULL;
-
- if (pdh == NULL) {
- cfile_dump_open_failure_message(outfile, err, err_info,
- wtap_file_type_subtype(wth));
- wtap_dump_params_cleanup(&params);
- ret = OUTPUT_FILE_ERROR;
- goto clean_exit;
- }
-
/* Allocate the array of frame pointers. */
frames = g_ptr_array_new();
@@ -332,40 +311,75 @@ main(int argc, char *argv[])
printf("%u frames, %u out of order\n", frames->len, wrong_order_count);
+ wtap_dump_params_init(&params, wth);
+
/* Sort the frames */
+ /* XXX - Does this handle multiple SHBs correctly? */
if (wrong_order_count > 0) {
g_ptr_array_sort(frames, frames_compare);
}
- /* Write out each sorted frame in turn */
- wtap_rec_init(&rec);
- ws_buffer_init(&buf, 1514);
- for (i = 0; i < frames->len; i++) {
- FrameRecord_t *frame = (FrameRecord_t *)frames->pdata[i];
- /* Avoid writing if already sorted and configured to */
- if (write_output_regardless || (wrong_order_count > 0)) {
+ /* Avoid writing if already sorted and configured to */
+ if (write_output_regardless || (wrong_order_count > 0)) {
+ /* Open outfile (same filetype/encap as input file) */
+ if (strcmp(outfile, "-") == 0) {
+ pdh = wtap_dump_open_stdout(wtap_file_type_subtype(wth),
+ WTAP_UNCOMPRESSED, &params, &err, &err_info);
+ } else {
+ pdh = wtap_dump_open(outfile, wtap_file_type_subtype(wth),
+ WTAP_UNCOMPRESSED, &params, &err, &err_info);
+ }
+ g_free(params.idb_inf);
+ params.idb_inf = NULL;
+
+ if (pdh == NULL) {
+ cfile_dump_open_failure_message(outfile, err, err_info,
+ wtap_file_type_subtype(wth));
+ wtap_dump_params_cleanup(&params);
+ ret = OUTPUT_FILE_ERROR;
+ goto clean_exit;
+ }
+
+
+ /* Write out each sorted frame in turn */
+ wtap_rec_init(&rec);
+ ws_buffer_init(&buf, 1514);
+ for (i = 0; i < frames->len; i++) {
+ FrameRecord_t *frame = (FrameRecord_t *)frames->pdata[i];
+
frame_write(frame, wth, pdh, &rec, &buf, infile, outfile);
+
+ g_slice_free(FrameRecord_t, frame);
}
- g_slice_free(FrameRecord_t, frame);
- }
- wtap_rec_cleanup(&rec);
- ws_buffer_free(&buf);
- if (!write_output_regardless && (wrong_order_count == 0)) {
+ wtap_rec_cleanup(&rec);
+ ws_buffer_free(&buf);
+
+
+
+ /* Close outfile */
+ if (!wtap_dump_close(pdh, NULL, &err, &err_info)) {
+ cfile_close_failure_message(outfile, err, err_info);
+ wtap_dump_params_cleanup(&params);
+ ret = OUTPUT_FILE_ERROR;
+ goto clean_exit;
+ }
+ } else {
printf("Not writing output file because input file is already in order.\n");
+
+ /* Free frame memory */
+ for (i = 0; i < frames->len; i++) {
+ FrameRecord_t *frame = (FrameRecord_t *)frames->pdata[i];
+
+ g_slice_free(FrameRecord_t, frame);
+ }
}
+
/* Free the whole array */
g_ptr_array_free(frames, TRUE);
- /* Close outfile */
- if (!wtap_dump_close(pdh, NULL, &err, &err_info)) {
- cfile_close_failure_message(outfile, err, err_info);
- wtap_dump_params_cleanup(&params);
- ret = OUTPUT_FILE_ERROR;
- goto clean_exit;
- }
wtap_dump_params_cleanup(&params);
/* Finally, close infile and release resources. */
diff --git a/resources/file_dlg_win32.rc b/resources/file_dlg_win32.rc
index f674aef..34dbf60 100644
--- a/resources/file_dlg_win32.rc
+++ b/resources/file_dlg_win32.rc
@@ -46,13 +46,13 @@ FONT 8, "MS Shell Dlg"
{
}
-WIRESHARK_EXPORT_SPECIFIED_PACKETS_FILENAME_TEMPLATE DIALOGEX 0, 0, 453, 124
+WIRESHARK_EXPORT_SPECIFIED_PACKETS_FILENAME_TEMPLATE DIALOGEX 0, 0, 453, 136
STYLE WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | DS_3DLOOK | DS_CONTROL
FONT 8, "MS Shell Dlg"
{
CHECKBOX "Compress with gzip", EWFD_GZIP_CB, 67, 0, 100, 8, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
- GROUPBOX "Packet Range", -1, 67, 15, 270, 102
+ GROUPBOX "Packet Range", -1, 67, 15, 270, 114
CONTROL "Captured", EWFD_CAPTURED_BTN, "Button", BS_AUTORADIOBUTTON | WS_GROUP, 232, 26, 45, 10
CONTROL "Displayed", EWFD_DISPLAYED_BTN, "Button", BS_AUTORADIOBUTTON, 282, 26, 47, 10
@@ -64,6 +64,7 @@ FONT 8, "MS Shell Dlg"
CONTROL "Range:", EWFD_RANGE_BTN, "Button", BS_AUTORADIOBUTTON, 73, 86, 35, 10
CONTROL "", EWFD_RANGE_EDIT, RICHEDIT_CLASS, ES_AUTOHSCROLL, 112, 85, 110, 12, WS_EX_CLIENTEDGE
CONTROL "Remove Ignored packets", EWFD_REMOVE_IGN_CB, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 73, 98, 100, 10
+ CONTROL "Include depended upon packets", EWFD_INCLUDE_DPD_CB, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 73, 110, 125, 10
LTEXT "0", EWFD_ALL_PKTS_CAP, 232, 39, 39, 8, SS_RIGHT
LTEXT "0", EWFD_SEL_PKT_CAP, 232, 51, 39, 8, SS_RIGHT
@@ -71,6 +72,7 @@ FONT 8, "MS Shell Dlg"
LTEXT "0", EWFD_FIRST_LAST_CAP, 232, 75, 39, 8, SS_RIGHT
LTEXT "0", EWFD_RANGE_CAP, 232, 87, 39, 8, SS_RIGHT
LTEXT "0", EWFD_IGNORED_CAP, 232, 99, 39, 8, SS_RIGHT
+ LTEXT "0", EWFD_DEPENDED_CAP, 232, 111, 39, 8, SS_RIGHT
LTEXT "0", EWFD_ALL_PKTS_DISP, 282, 39, 41, 8, SS_RIGHT
LTEXT "0", EWFD_SEL_PKT_DISP, 282, 51, 41, 8, SS_RIGHT
@@ -78,6 +80,7 @@ FONT 8, "MS Shell Dlg"
LTEXT "0", EWFD_FIRST_LAST_DISP, 282, 75, 41, 8, SS_RIGHT
LTEXT "0", EWFD_RANGE_DISP, 282, 87, 41, 8, SS_RIGHT
LTEXT "0", EWFD_IGNORED_DISP, 282, 99, 41, 8, SS_RIGHT
+ LTEXT "0", EWFD_DEPENDED_DISP, 282, 111, 41, 8, SS_RIGHT
}
WIRESHARK_MERGEFILENAME_TEMPLATE DIALOGEX 0, 0, 450, 80
@@ -104,11 +107,11 @@ FONT 8, "MS Shell Dlg"
// 164/211, 79, 40/150, 8
}
-WIRESHARK_EXPORTFILENAME_TEMPLATE DIALOGEX 0, 0, 469, 109
+WIRESHARK_EXPORTFILENAME_TEMPLATE DIALOGEX 0, 0, 469, 121
STYLE WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | DS_3DLOOK | DS_CONTROL
FONT 8, "MS Shell Dlg"
{
- GROUPBOX "Packet Range", -1, 67, 0, 270, 106
+ GROUPBOX "Packet Range", -1, 67, 0, 270, 118
CONTROL "Captured", EWFD_CAPTURED_BTN, "Button", BS_AUTORADIOBUTTON | WS_GROUP, 232, 11, 45, 10
CONTROL "Displayed", EWFD_DISPLAYED_BTN, "Button", BS_AUTORADIOBUTTON, 282, 11, 47, 10
@@ -120,6 +123,7 @@ FONT 8, "MS Shell Dlg"
CONTROL "Range:", EWFD_RANGE_BTN, "Button", BS_AUTORADIOBUTTON, 73, 71, 35, 10
CONTROL "", EWFD_RANGE_EDIT, RICHEDIT_CLASS, ES_AUTOHSCROLL, 112, 70, 110, 12, WS_EX_CLIENTEDGE
CONTROL "Remove Ignored packets", EWFD_REMOVE_IGN_CB, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 73, 83, 100, 10
+ CONTROL "Include depended upon packets", EWFD_INCLUDE_DPD_CB, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 73, 95, 125, 10
LTEXT "0", EWFD_ALL_PKTS_CAP, 232, 24, 39, 8, SS_RIGHT
LTEXT "0", EWFD_SEL_PKT_CAP, 232, 36, 39, 8, SS_RIGHT
@@ -127,6 +131,7 @@ FONT 8, "MS Shell Dlg"
LTEXT "0", EWFD_FIRST_LAST_CAP, 232, 60, 39, 8, SS_RIGHT
LTEXT "0", EWFD_RANGE_CAP, 232, 72, 39, 8, SS_RIGHT
LTEXT "0", EWFD_IGNORED_CAP, 232, 84, 39, 8, SS_RIGHT
+ LTEXT "0", EWFD_DEPENDED_CAP, 232, 96, 39, 8, SS_RIGHT
LTEXT "0", EWFD_ALL_PKTS_DISP, 282, 24, 41, 8, SS_RIGHT
LTEXT "0", EWFD_SEL_PKT_DISP, 282, 36, 41, 8, SS_RIGHT
@@ -134,6 +139,7 @@ FONT 8, "MS Shell Dlg"
LTEXT "0", EWFD_FIRST_LAST_DISP, 282, 60, 41, 8, SS_RIGHT
LTEXT "0", EWFD_RANGE_DISP, 282, 72, 41, 8, SS_RIGHT
LTEXT "0", EWFD_IGNORED_DISP, 282, 84, 41, 8, SS_RIGHT
+ LTEXT "0", EWFD_DEPENDED_DISP, 282, 96, 41, 8, SS_RIGHT
GROUPBOX "Packet Format", EWFD_PKT_FORMAT_GB, 344, 0, 134, 106
CONTROL "Packet summary line", EWFD_PKT_SUMMARY_CB, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 350, 15, 84, 10
diff --git a/resources/logray.exe.manifest.in b/resources/logray.exe.manifest.in
index 8488bdf..407861d 100644
--- a/resources/logray.exe.manifest.in
+++ b/resources/logray.exe.manifest.in
@@ -33,15 +33,14 @@
<application>
<!-- This should match the following:
- The NTDDI_VERSION and _WIN32_WINNT parts of cmakeconfig.h.in
- - The GetWindowsVersion parts of packaging\nsis\wireshark.nsi
- - The VersionNT parts of packaging\wix\Prerequisites.wxi
+ - The WinVer parts of packaging\nsis\logray.nsi
-->
<!-- Windows 7 -->
- <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
+ <!-- <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> -->
<!-- Windows 8 -->
- <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
+ <!-- <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> -->
<!-- Windows 8.1 -->
- <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
+ <!-- <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> -->
<!-- Windows 10 & 11 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
diff --git a/resources/wireshark.exe.manifest.in b/resources/wireshark.exe.manifest.in
index b1d932c..8f99610 100644
--- a/resources/wireshark.exe.manifest.in
+++ b/resources/wireshark.exe.manifest.in
@@ -33,15 +33,15 @@
<application>
<!-- This should match the following:
- The NTDDI_VERSION and _WIN32_WINNT parts of cmakeconfig.h.in
- - The GetWindowsVersion parts of packaging\nsis\wireshark.nsi
+ - The WinVer parts of packaging\nsis\wireshark.nsi
- The VersionNT parts of packaging\wix\Prerequisites.wxi
-->
<!-- Windows 7 -->
- <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
+ <!-- <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> -->
<!-- Windows 8 -->
- <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
+ <!-- <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> -->
<!-- Windows 8.1 -->
- <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
+ <!-- <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> -->
<!-- Windows 10 & 11 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
diff --git a/ringbuffer.c b/ringbuffer.c
index 9d810d2..d1433fd 100644
--- a/ringbuffer.c
+++ b/ringbuffer.c
@@ -272,8 +272,8 @@ ringbuf_init(const char *capfile_name, guint num_files, gboolean group_read_acce
gchar *compress_type, gboolean has_nametimenum)
{
unsigned int i;
- char *pfx, *last_pathsep;
- gchar *save_file;
+ char *pfx;
+ char *dir_name, *base_name;
rb_data.files = NULL;
rb_data.curr_file_num = 0;
@@ -304,32 +304,31 @@ ringbuf_init(const char *capfile_name, guint num_files, gboolean group_read_acce
/* set file name prefix/suffix */
- save_file = g_strdup(capfile_name);
- last_pathsep = strrchr(save_file, G_DIR_SEPARATOR);
- pfx = strrchr(save_file,'.');
- if (pfx != NULL && (last_pathsep == NULL || pfx > last_pathsep)) {
- /* The pathname has a "." in it, and it's in the last component
- of the pathname (because there is either only one component,
- i.e. last_pathsep is null as there are no path separators,
- or the "." is after the path separator before the last
- component.
+ base_name = g_path_get_basename(capfile_name);
+ dir_name = g_path_get_dirname(capfile_name);
+ pfx = strrchr(base_name, '.');
+ if (pfx != NULL) {
+ /* The basename has a "." in it.
Treat it as a separator between the rest of the file name and
the file name suffix, and arrange that the names given to the
ring buffer files have the specified suffix, i.e. put the
- changing part of the name *before* the suffix. */
+ changing part of the name *before* the suffix.
+
+ XXX - If we ever handle writing compressed files directly
+ (#19159) make sure we deal with any compression suffix
+ appropriately. */
pfx[0] = '\0';
- rb_data.fprefix = g_strdup(save_file);
+ rb_data.fprefix = g_build_filename(dir_name, base_name, NULL);
pfx[0] = '.'; /* restore capfile_name */
rb_data.fsuffix = g_strdup(pfx);
} else {
- /* Either there's no "." in the pathname, or it's in a directory
- component, so the last component has no suffix. */
- rb_data.fprefix = g_strdup(save_file);
+ /* The last component has no suffix. */
+ rb_data.fprefix = g_strdup(capfile_name);
rb_data.fsuffix = NULL;
}
- g_free(save_file);
- save_file = NULL;
+ g_free(dir_name);
+ g_free(base_name);
/* allocate rb_file structures (only one if unlimited since there is no
need to save all file names in that case) */
diff --git a/sharkd_session.c b/sharkd_session.c
index 18071d7..9e84cbc 100644
--- a/sharkd_session.c
+++ b/sharkd_session.c
@@ -399,6 +399,7 @@ json_prep(char* buf, const jsmntok_t* tokens, int count)
{"dumpconf", "pref", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
{"follow", "follow", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_MANDATORY},
{"follow", "filter", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_MANDATORY},
+ {"follow", "sub_stream", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_OPTIONAL},
{"frame", "frame", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_MANDATORY},
{"frame", "proto", 2, JSMN_PRIMITIVE, SHARKD_JSON_BOOLEAN, SHARKD_OPTIONAL},
{"frame", "ref_frame", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_OPTIONAL},
@@ -631,7 +632,7 @@ json_prep(char* buf, const jsmntok_t* tokens, int count)
{
sharkd_json_error(
rpcid, -32600, NULL,
- "The data type for member %s is not a valid", attr_name
+ "The data type for member %s is not valid", attr_name
);
return FALSE;
}
@@ -1220,11 +1221,16 @@ sharkd_session_process_load(const char *buf, const jsmntok_t *tokens, int count)
* Process status request
*
* Output object with attributes:
- * (m) frames - count of currently loaded frames
- * (m) duration - time difference between time of first frame, and last loaded frame
- * (o) filename - capture filename
- * (o) filesize - capture filesize
- * (o) columns - array of column titles
+ * (m) frames - count of currently loaded frames
+ * (m) duration - time difference between time of first frame, and last loaded frame
+ * (o) filename - capture filename
+ * (o) filesize - capture filesize
+ * (o) columns - array of column titles
+ * (o) column_info - array of column infos, array of object with attributes:
+ * 'title' - column title
+ * 'format' - column format (%x or %Cus:<expr>:<occurrence> if COL_CUSTOM)
+ * 'visible' - true if column is visible
+ * 'resolved' - true if column is resolved
*/
static void
sharkd_session_process_status(void)
@@ -1258,6 +1264,24 @@ sharkd_session_process_status(void)
sharkd_json_value_string(NULL, get_column_title(i));
}
sharkd_json_array_close();
+
+ sharkd_json_array_open("column_info");
+ for (int i = 0; i < cfile.cinfo.num_cols; ++i)
+ {
+ int fmt = get_column_format(i);
+ sharkd_json_object_open(NULL);
+ sharkd_json_value_string("title", get_column_title(i));
+ if (fmt != COL_CUSTOM)
+ {
+ sharkd_json_value_string("format", col_format_to_string(fmt));
+ } else {
+ sharkd_json_value_stringf("format", "%s:%s:%d", col_format_to_string(fmt), get_column_custom_fields(i), get_column_custom_occurrence(i));
+ }
+ sharkd_json_value_anyf("visible", get_column_visible(i) ? "true" : "false");
+ sharkd_json_value_anyf("resolved", get_column_resolved(i) ? "true" : "false");
+ sharkd_json_object_close();
+ }
+ sharkd_json_array_close();
}
sharkd_json_result_epilogue();
@@ -3894,8 +3918,10 @@ sharkd_session_process_tap(char *buf, const jsmntok_t *tokens, int count)
* Process follow request
*
* Input:
- * (m) follow - follow protocol request (e.g. HTTP)
- * (m) filter - filter request (e.g. tcp.stream == 1)
+ * (m) follow - follow protocol request (e.g. HTTP)
+ * (m) filter - filter request (e.g. tcp.stream == 1)
+ * (m) stream - stream index number
+ * (o) sub_stream - follow sub-stream index number (e.g. for HTTP/2 and QUIC streams)
*
* Output object with attributes:
*
@@ -3916,6 +3942,7 @@ sharkd_session_process_follow(char *buf, const jsmntok_t *tokens, int count)
{
const char *tok_follow = json_find_attr(buf, tokens, count, "follow");
const char *tok_filter = json_find_attr(buf, tokens, count, "filter");
+ const char *tok_sub_stream = json_find_attr(buf, tokens, count, "sub_stream");
register_follow_t *follower;
GString *tap_error;
@@ -3934,8 +3961,15 @@ sharkd_session_process_follow(char *buf, const jsmntok_t *tokens, int count)
return;
}
+ guint64 substream_id = SUBSTREAM_UNUSED;
+ if (tok_sub_stream)
+ {
+ ws_strtou64(tok_sub_stream, NULL, &substream_id);
+ }
+
/* follow_reset_stream ? */
follow_info = g_new0(follow_info_t, 1);
+ follow_info->substream_id = substream_id;
/* gui_data, filter_out_filter not set, but not used by dissector */
tap_error = register_tap_listener(get_follow_tap_string(follower), follow_info, tok_filter, 0, NULL, get_follow_tap_handler(follower), NULL, NULL);
@@ -4120,7 +4154,8 @@ static bool
sharkd_follower_visit_layers_cb(const void *key _U_, void *value, void *user_data)
{
register_follow_t *follower = (register_follow_t *) value;
- packet_info *pi = (packet_info *) user_data;
+ epan_dissect_t *edt = (epan_dissect_t *) user_data;
+ packet_info *pi = &edt->pi;
const int proto_id = get_follow_proto_id(follower);
@@ -4132,7 +4167,7 @@ sharkd_follower_visit_layers_cb(const void *key _U_, void *value, void *user_dat
const char *layer_proto = proto_get_protocol_short_name(find_protocol_by_id(proto_id));
char *follow_filter;
- follow_filter = get_follow_conv_func(follower)(NULL, pi, &ignore_stream, &ignore_sub_stream);
+ follow_filter = get_follow_conv_func(follower)(edt, pi, &ignore_stream, &ignore_sub_stream);
json_dumper_begin_array(&dumper);
json_dumper_value_string(&dumper, layer_proto);
@@ -4145,6 +4180,41 @@ sharkd_follower_visit_layers_cb(const void *key _U_, void *value, void *user_dat
return FALSE;
}
+static bool
+sharkd_followers_visit_layers_cb(const void *key _U_, void *value, void *user_data)
+{
+ register_follow_t *follower = (register_follow_t *) value;
+ epan_dissect_t *edt = (epan_dissect_t *) user_data;
+ packet_info *pi = &edt->pi;
+
+ const int proto_id = get_follow_proto_id(follower);
+
+ guint stream;
+ guint sub_stream = (guint) SUBSTREAM_UNUSED;
+
+ if (proto_is_frame_protocol(pi->layers, proto_get_protocol_filter_name(proto_id)))
+ {
+ const char *layer_proto = proto_get_protocol_short_name(find_protocol_by_id(proto_id));
+ char *follow_filter;
+
+ follow_filter = get_follow_conv_func(follower)(edt, pi, (guint *) &stream, (guint *) &sub_stream);
+
+ sharkd_json_object_open(NULL);
+ sharkd_json_value_string("protocol", layer_proto);
+ sharkd_json_value_string("filter", follow_filter);
+ sharkd_json_value_anyf("stream", "%d", stream);
+ if (sub_stream != (guint) SUBSTREAM_UNUSED)
+ {
+ sharkd_json_value_anyf("sub_stream", "%d", sub_stream);
+ }
+ sharkd_json_object_close();
+
+ g_free(follow_filter);
+ }
+
+ return FALSE;
+}
+
struct sharkd_frame_request_data
{
gboolean display_hidden;
@@ -4304,7 +4374,11 @@ sharkd_session_process_frame_cb(epan_dissect_t *edt, proto_tree *tree, struct ep
}
sharkd_json_array_open("fol");
- follow_iterate_followers(sharkd_follower_visit_layers_cb, pi);
+ follow_iterate_followers(sharkd_follower_visit_layers_cb, edt);
+ sharkd_json_array_close();
+
+ sharkd_json_array_open("followers");
+ follow_iterate_followers(sharkd_followers_visit_layers_cb, edt);
sharkd_json_array_close();
sharkd_json_result_epilogue();
@@ -4686,6 +4760,11 @@ sharkd_session_process_intervals(char *buf, const jsmntok_t *tokens, int count)
* (o) fol - array of follow filters:
* [0] - protocol
* [1] - filter string
+ * (o) followers - array of followers with attributes:
+ * protocol - protocol string
+ * filter - filter string
+ * stream - stream index number
+ * sub_stream - sub-stream index number (optional, e.g. for HTTP/2 and QUIC streams)
* (o) i - if frame is ignored
* (o) m - if frame is marked
* (o) bg - color filter - background color in hex
@@ -5836,7 +5915,7 @@ sharkd_session_process(char *buf, const jsmntok_t *tokens, int count)
int
sharkd_session_main(int mode_setting)
{
- char buf[2 * 1024];
+ char buf[8 * 1024];
jsmntok_t *tokens = NULL;
int tokens_max = -1;
diff --git a/test/captures/quic-with-secrets.pcapng b/test/captures/quic-with-secrets.pcapng
new file mode 100644
index 0000000..4968365
--- /dev/null
+++ b/test/captures/quic-with-secrets.pcapng
Binary files differ
diff --git a/test/fixtures_ws.py b/test/fixtures_ws.py
index ceee402..0bd4c39 100644
--- a/test/fixtures_ws.py
+++ b/test/fixtures_ws.py
@@ -182,6 +182,7 @@ def features(cmd_tshark, make_env):
have_gnutls='with GnuTLS' in tshark_v,
have_pkcs11='and PKCS #11 support' in tshark_v,
have_brotli='with brotli' in tshark_v,
+ have_zstd='with Zstandard' in tshark_v,
have_plugins='binary plugins supported' in tshark_v,
)
diff --git a/test/lua/acme_file.lua b/test/lua/acme_file.lua
index f159ba2..59c48dc 100644
--- a/test/lua/acme_file.lua
+++ b/test/lua/acme_file.lua
@@ -438,7 +438,9 @@ function State:get_timestamp(line, file_position, seeking)
self.nstime = NSTime(timet, milli * 1000000)
self.packets[file_position][TTIME] = self.nstime
- timet = timet + (milli/1000)
+ -- For Lua 5.3 and later, make sure we have an integer via a method
+ -- that also works on Lua 5.1. (os.date doesn't handle fractional seconds.)
+ timet = timet + math.floor(milli/1000)
dprint2("found time of ", os.date("%c",timet), " with value=",timet)
return self.nstime, line_pos
diff --git a/test/lua/inspect.lua b/test/lua/inspect.lua
index 6b4aff9..2d96712 100644
--- a/test/lua/inspect.lua
+++ b/test/lua/inspect.lua
@@ -416,7 +416,10 @@ function inspect.marshal(inString, options)
inString = "return " .. inString
end
- local t = assert(loadstring(inString))()
+ -- loadstring was removed after Lua 5.1, load given a string
+ -- argument does the same thing
+ local load = (_VERSION == "Lua 5.1") and loadstring or load
+ local t = assert(load(inString))()
removeIndex(t)
diff --git a/test/lua/proto.lua b/test/lua/proto.lua
index cc03898..b4306c6 100644
--- a/test/lua/proto.lua
+++ b/test/lua/proto.lua
@@ -9,8 +9,9 @@ local testlib = require("testlib")
local OTHER = "other"
-- expected number of runs per type
+-- # of fields test doesn't work on Lua 5.4
local taptests = {
- [OTHER]=48
+ [OTHER]=47
}
testlib.init(taptests)
@@ -156,7 +157,10 @@ local myfields = { pf_trasaction_id, pf_flags,
--dns.fields = myfields
testlib.test(OTHER,"Proto.fields-set", pcall(setValue,dns,"fields",myfields))
testlib.test(OTHER,"Proto.fields-get", pcall(getValue,dns,"fields"))
-testlib.test(OTHER,"Proto.fields-get", #dns.fields == #myfields)
+-- This test doesn't work on Lua 5.4 because the # operator includes the
+-- reference(s) that are the linked list of allocated and free keys,
+-- starting with LUA_RIDX_LAST + 1 == 3.
+-- testlib.test(OTHER,"Proto.fields-get", #dns.fields == #myfields)
local pf_foo = ProtoField.uint16("myfoo.com", "Fooishly", base.DEC, rcodes, 0x000F)
diff --git a/test/lua/protofield.lua b/test/lua/protofield.lua
index 9d2223f..f9ce2dc 100644
--- a/test/lua/protofield.lua
+++ b/test/lua/protofield.lua
@@ -14,7 +14,7 @@ local n_frames = 4
local taptests = {
[FRAME]=n_frames,
[PER_FRAME]=n_frames*8,
- [OTHER]=50,
+ [OTHER]=52,
}
testlib.init(taptests)
@@ -67,6 +67,9 @@ testlib.test(OTHER,"ProtoField-new-bool-mask-none", success)
success = pcall(ProtoField.new, "boolean", "test.boolean6", ftypes.BOOLEAN, nil, base.NONE, nil)
testlib.test(OTHER,"ProtoField-new-bool-mask-nil", success)
+success = pcall(ProtoField.new, "boolean", "test.boolean7", ftypes.BOOLEAN, nil, base.HEX, "0x00FFFFFF00000000")
+testlib.test(OTHER,"ProtoField-new-bool-mask-hex", success)
+
success = pcall(ProtoField.bool, "test.boolean10", nil, 64, nil, 0x1)
testlib.test(OTHER,"ProtoField-bool-mask-trivial", success)
@@ -109,6 +112,9 @@ testlib.test(OTHER,"ProtoField-new-uint64-mask-none", success)
success = pcall(ProtoField.new, "uint64", "test.uint64_6", ftypes.UINT64, nil, base.NONE, nil)
testlib.test(OTHER,"ProtoField-new-uint64-mask-nil", success)
+success = pcall(ProtoField.new, "uint64", "test.uint64_7", ftypes.UINT64, nil, base.HEX, "0x00FFFFFF00000000")
+testlib.test(OTHER,"ProtoField-new-uint64-mask-hex", success)
+
success = pcall(ProtoField.uint64, "test.uint64_10", nil, base.HEX, nil, 0x1)
testlib.test(OTHER,"ProtoField-uint64-mask-trivial", success)
diff --git a/test/lua/verify_globals.lua b/test/lua/verify_globals.lua
index dbed8ce..5e61ffc 100644
--- a/test/lua/verify_globals.lua
+++ b/test/lua/verify_globals.lua
@@ -35,13 +35,20 @@ local ignore = {
"getfenv",
"io.gfind",
"setfenv",
+ "loadstring", -- call load with a string argument
+ "math.log10", -- call math.log with second argument
"math.mod",
+ "module",
"newproxy",
+ "package.loaders", -- renamed package.searchers
+ "package.seeall", -- used with module
"string.gfind",
"table.foreach",
"table.foreachi",
"table.getn",
+ "table.maxn",
"table.setn",
+ "unpack", -- replaced by table.unpack
-- in Lua 5.2+ only
"bit32",
@@ -55,6 +62,14 @@ local ignore = {
"table.pack",
"table.unpack",
+ -- removed in Lua 5.3
+ "math.atan2", -- use math.atan with two arguments
+ "math.cosh",
+ "math.sinh",
+ "math.tanh",
+ "math.pow", -- use x^y
+ "math.frexp",
+ "math.ldexp", -- use x * 2.0^exp
}
diff --git a/test/suite_dfilter/group_function.py b/test/suite_dfilter/group_function.py
index 08c9795..c8a0c52 100644
--- a/test/suite_dfilter/group_function.py
+++ b/test/suite_dfilter/group_function.py
@@ -85,3 +85,11 @@ class TestFunctionNested:
def test_function_nested_1(self, checkDFilterCount):
dfilter = 'abs(min(tcp.srcport, tcp.dstport)) == 80'
checkDFilterCount(dfilter, 1)
+
+ def test_function_nested_2(self, checkDFilterCount):
+ dfilter = 'min(tcp.srcport * 10, tcp.dstport * 10, udp.srcport * 10, udp.dstport * 10) == 800'
+ checkDFilterCount(dfilter, 1)
+
+ def test_function_nested_3(self, checkDFilterCount):
+ dfilter = 'min(len(tcp.payload), len(udp.payload)) == 153'
+ checkDFilterCount(dfilter, 1)
diff --git a/test/suite_dissection.py b/test/suite_dissection.py
index ee90c93..18eb4a2 100644
--- a/test/suite_dissection.py
+++ b/test/suite_dissection.py
@@ -919,7 +919,9 @@ class TestDissectCommunityId:
self.check_baseline(dirs, stdout, 'communityid-filtered.txt')
class TestDecompressMongo:
- def test_decompress_zstd(self, cmd_tshark, capture_file, test_env):
+ def test_decompress_zstd(self, cmd_tshark, features, capture_file, test_env):
+ if not features.have_zstd:
+ pytest.skip('Requires zstd.')
stdout = subprocess.check_output((cmd_tshark,
'-d', 'tcp.port==27017,mongo',
'-r', capture_file('mongo-zstd.pcapng'),
diff --git a/test/suite_sharkd.py b/test/suite_sharkd.py
index db736dc..9d88364 100644
--- a/test/suite_sharkd.py
+++ b/test/suite_sharkd.py
@@ -75,7 +75,23 @@ class TestSharkd:
check_sharkd_session((
{"jsonrpc":"2.0", "id":1, "method":"status"},
), (
- {"jsonrpc":"2.0","id":1,"result":{"frames":0,"duration":0.000000000,"columns":["No.","Time","Source","Destination","Protocol","Length","Info"]}},
+ {"jsonrpc":"2.0","id":1,"result":{"frames":0,"duration":0.000000000,"columns":["No.","Time","Source","Destination","Protocol","Length","Info"],
+ "column_info":[{
+ "title":"No.","format": "%m","visible":True, "resolved":True
+ },{
+ "title": "Time", "format": "%t", "visible":True, "resolved":True
+ },{
+ "title": "Source", "format": "%s", "visible":True, "resolved":True
+ },{
+ "title": "Destination", "format": "%d", "visible":True, "resolved":True
+ },{
+ "title": "Protocol", "format": "%p", "visible":True, "resolved":True
+ },{
+ "title": "Length", "format": "%L", "visible":True, "resolved":True
+ },{
+ "title": "Info", "format": "%i", "visible":True, "resolved":True
+ }]
+ }},
))
def test_sharkd_req_status(self, check_sharkd_session, capture_file):
@@ -88,7 +104,23 @@ class TestSharkd:
{"jsonrpc":"2.0","id":1,"result":{"status":"OK"}},
{"jsonrpc":"2.0","id":2,"result":{"frames": 4, "duration": 0.070345000,
"filename": "dhcp.pcap", "filesize": 1400,
- "columns":["No.","Time","Source","Destination","Protocol","Length","Info"]}},
+ "columns":["No.","Time","Source","Destination","Protocol","Length","Info"],
+ "column_info":[{
+ "title":"No.","format": "%m","visible":True, "resolved":True
+ },{
+ "title": "Time", "format": "%t", "visible":True, "resolved":True
+ },{
+ "title": "Source", "format": "%s", "visible":True, "resolved":True
+ },{
+ "title": "Destination", "format": "%d", "visible":True, "resolved":True
+ },{
+ "title": "Protocol", "format": "%p", "visible":True, "resolved":True
+ },{
+ "title": "Length", "format": "%L", "visible":True, "resolved":True
+ },{
+ "title": "Info", "format": "%i", "visible":True, "resolved":True
+ }]
+ }},
))
def test_sharkd_req_analyse(self, check_sharkd_session, capture_file):
@@ -1075,6 +1107,9 @@ class TestSharkd:
{"jsonrpc":"2.0", "id":4, "method":"follow",
"params":{"follow": "HTTP", "filter": "garbage filter"}
},
+ {"jsonrpc":"2.0", "id":5, "method":"follow",
+ "params":{"follow": "HTTP", "filter": "http", "sub_stream": "garbage sub_stream"}
+ },
), (
{"jsonrpc":"2.0","id":1,"result":{"status":"OK"}},
{"jsonrpc":"2.0","id":2,"error":{"code":-32600,"message":"Mandatory parameter follow is missing"}},
@@ -1082,6 +1117,9 @@ class TestSharkd:
{"jsonrpc":"2.0","id":4,
"error":{"code":-12002,"message":"sharkd_session_process_follow() name=HTTP error=Filter \"garbage filter\" is invalid - \"filter\" was unexpected in this context."}
},
+ {"jsonrpc":"2.0","id":5,
+ "error":{"code":-32600,"message":"The data type for member sub_stream is not valid"}
+ },
))
def test_sharkd_req_follow_no_match(self, check_sharkd_session, capture_file):
@@ -1119,6 +1157,28 @@ class TestSharkd:
},
))
+ def test_sharkd_req_follow_http2(self, check_sharkd_session, capture_file):
+ check_sharkd_session((
+ {"jsonrpc":"2.0", "id":1, "method":"load",
+ "params":{"file": capture_file('quic-with-secrets.pcapng')}
+ },
+ {"jsonrpc":"2.0", "id":2, "method":"follow",
+ "params":{"follow": "HTTP2", "filter": "tcp.stream eq 0 and http2.streamid eq 1", "sub_stream": 1}
+ },
+ ), (
+ {"jsonrpc":"2.0","id":1,"result":{"status":"OK"}},
+ {"jsonrpc":"2.0","id":2,
+ "result":{
+ "shost": "2606:4700:10::6816:826", "sport": "443", "sbytes": 656,
+ "chost": "2001:db8:1::1", "cport": "57098", "cbytes": 109643,
+ "payloads": [
+ {"n": 12, "d": MatchRegExp(r'^.*VuLVVTLGVuO3E9MC45Cgo.*$')},
+ {"n": 19, "s": 1, "d": MatchRegExp(r'^.*7IG1hPTg2NDAwCgo.*$')},
+ {"n": 44, "s": 1, "d": MatchRegExp(r'^.*Pgo8L2h0bWw.*$')},
+ ]}
+ },
+ ))
+
def test_sharkd_req_iograph_bad(self, check_sharkd_session, capture_file):
check_sharkd_session((
{"jsonrpc":"2.0", "id":1, "method":"load",
@@ -1198,7 +1258,30 @@ class TestSharkd:
},
), (
{"jsonrpc":"2.0","id":1,"result":{"status":"OK"}},
- {"jsonrpc":"2.0","id":2,"result":{"fol": [["UDP", "udp.stream eq 1"]]}},
+ {"jsonrpc":"2.0","id":2,"result":{
+ "fol": [["UDP", "udp.stream eq 1"]],
+ "followers": [{"protocol": "UDP","filter": "udp.stream eq 1","stream": 1}]
+ }},
+ ))
+
+ def test_sharkd_req_frame_http2(self, check_sharkd_session, capture_file):
+ check_sharkd_session((
+ {"jsonrpc":"2.0", "id":1, "method":"load",
+ "params":{"file": capture_file('quic-with-secrets.pcapng')}
+ },
+ {"jsonrpc":"2.0", "id":2, "method":"frame",
+ "params":{"frame": 12}
+ },
+ ), (
+ {"jsonrpc":"2.0","id":1,"result":{"status":"OK"}},
+ {"jsonrpc":"2.0","id":2,"result":{
+ "fol": [["HTTP2", "tcp.stream eq 0 and http2.streamid eq 1"],["TCP","tcp.stream eq 0"],["TLS","tcp.stream eq 0"]],
+ "followers": [
+ {"protocol": "HTTP2","filter": "tcp.stream eq 0 and http2.streamid eq 1","stream": 0, "sub_stream": 1},
+ {"protocol": "TCP","filter": "tcp.stream eq 0","stream": 0},
+ {"protocol": "TLS","filter": "tcp.stream eq 0","stream": 0},
+ ]
+ }},
))
def test_sharkd_req_frame_proto(self, check_sharkd_session, capture_file):
@@ -1251,7 +1334,7 @@ class TestSharkd:
{"jsonrpc":"2.0","id":1,"result":{"status":"OK"}},
{"jsonrpc":"2.0","id":2,"error":{"code":-3002,"message":"Frame number is out of range"}},
{"jsonrpc":"2.0","id":3,"result":{"status":"OK"}},
- {"jsonrpc":"2.0","id":4,"result":{"comment":["foo\nbar"],"fol": MatchAny(list)}},
+ {"jsonrpc":"2.0","id":4,"result":{"comment":["foo\nbar"],"fol": MatchAny(list), "followers": MatchAny(list)}},
))
def test_sharkd_req_setconf_bad(self, check_sharkd_session):
diff --git a/text2pcap.c b/text2pcap.c
index aa3a279..e1df716 100644
--- a/text2pcap.c
+++ b/text2pcap.c
@@ -480,6 +480,7 @@ parse_options(int argc, char *argv[], text_import_info_t * const info, wtap_dump
case 'P':
hdr_export_pdu = TRUE;
+ wtap_encap_type = WTAP_ENCAP_WIRESHARK_UPPER_PDU;
info->payload = ws_optarg;
break;
diff --git a/tools/asn2wrs.py b/tools/asn2wrs.py
index 6669be8..7f72443 100755
--- a/tools/asn2wrs.py
+++ b/tools/asn2wrs.py
@@ -1550,21 +1550,19 @@ class EthCtx:
if self.conform.check_item('PDU', tname):
out += self.output_proto_root()
- cycle_size = 0
+ cycle_funcs = []
if self.eth_dep_cycle:
for cur_cycle in self.eth_dep_cycle:
t = self.type[cur_cycle[0]]['ethname']
if t == tname:
- cycle_size = len(cur_cycle)
+ cycle_funcs = cur_cycle
break
- if cycle_size > 0:
+ if len(cycle_funcs) > 1:
out += f'''\
- const int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(wmem_list_tail(actx->pinfo->layers)));
- const unsigned cycle_size = {cycle_size};
- 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);
+ // {' → '.join(cycle_funcs)}
+ actx->pinfo->dissection_depth += {len(cycle_funcs) - 1};
+ increment_dissection_depth(actx->pinfo);
'''
if self.conform.get_fn_presence(self.eth_type[tname]['ref'][0]):
@@ -1578,17 +1576,18 @@ class EthCtx:
# out += self.conform.get_fn_text(tname, 'FN_FTR')
#el
- add_recursion_check = False
+ cycle_funcs = []
if self.eth_dep_cycle:
for cur_cycle in self.eth_dep_cycle:
t = self.type[cur_cycle[0]]['ethname']
if t == tname:
- add_recursion_check = True
+ cycle_funcs = cur_cycle
break
- if add_recursion_check:
- out += '''\
- p_set_proto_depth(actx->pinfo, proto_id, recursion_depth - cycle_size);
+ if len(cycle_funcs) > 1:
+ out += f'''\
+ actx->pinfo->dissection_depth -= {len(cycle_funcs) - 1};
+ decrement_dissection_depth(actx->pinfo);
'''
if self.conform.get_fn_presence(self.eth_type[tname]['ref'][0]):
@@ -1875,8 +1874,6 @@ class EthCtx:
fx.write('\n')
i += 1
fx.write('\n')
- if add_depth_define:
- fx.write('#define MAX_RECURSION_DEPTH 100 // Arbitrarily chosen.\n')
for t in self.eth_type_ord1:
if self.eth_type[t]['import']:
continue
diff --git a/tools/check_typed_item_calls.py b/tools/check_typed_item_calls.py
index 4800203..24520c6 100755
--- a/tools/check_typed_item_calls.py
+++ b/tools/check_typed_item_calls.py
@@ -305,7 +305,8 @@ class ProtoTreeAddItemCheck(APICheck):
'seq_info->txt_enc | ENC_NA',
'BASE_SHOW_UTF_8_PRINTABLE',
'dhcp_secs_endian',
- 'is_mdns ? ENC_UTF_8|ENC_NA : ENC_ASCII|ENC_NA'
+ 'is_mdns ? ENC_UTF_8|ENC_NA : ENC_ASCII|ENC_NA',
+ 'xl_encoding'
}:
global warnings_found
diff --git a/tools/macos-setup-brew.sh b/tools/macos-setup-brew.sh
index 17c92ce..910f7e8 100755
--- a/tools/macos-setup-brew.sh
+++ b/tools/macos-setup-brew.sh
@@ -108,7 +108,6 @@ ADDITIONAL_LIST=(
libsmi
libssh
libxml2
- lua@5.1
lz4
minizip
opus
@@ -140,8 +139,13 @@ fi
install_formulae "${ACTUAL_LIST[@]}"
+if [ $INSTALL_OPTIONAL -ne 0 ] ; then
+ brew install lua@5.1 || printf "Lua 5.1 installation failed.\\n"
+fi
+
if [ $INSTALL_DMG_DEPS -ne 0 ] ; then
- pip3 install dmgbuild
+ printf "Sorry, you'll have to install dmgbuild yourself for the time being.\\n"
+ # pip3 install dmgbuild
fi
if [ $INSTALL_SPARKLE_DEPS -ne 0 ] ; then
@@ -149,7 +153,8 @@ if [ $INSTALL_SPARKLE_DEPS -ne 0 ] ; then
fi
if [ $INSTALL_TEST_DEPS -ne 0 ] ; then
- pip3 install pytest pytest-xdist
+ printf "Sorry, you'll have to install pytest and pytest-xdist yourself for the time being.\\n"
+ # pip3 install pytest pytest-xdist
fi
# Uncomment to add PNG compression utilities used by compress-pngs:
diff --git a/tools/macos-setup.sh b/tools/macos-setup.sh
index ec25bf7..0017ffc 100755
--- a/tools/macos-setup.sh
+++ b/tools/macos-setup.sh
@@ -62,6 +62,14 @@ fi
# XXX: tar, since macOS 10.9, can uncompress xz'ed tarballs,
# so perhaps we could get rid of this now?
#
+# DO NOT UPDATE THIS TO A COMPROMISED VERSION; see
+#
+# https://www.openwall.com/lists/oss-security/2024/03/29/4
+#
+# https://access.redhat.com/security/cve/CVE-2024-3094
+#
+# https://nvd.nist.gov/vuln/detail/CVE-2024-3094
+#
XZ_VERSION=5.2.5
#
diff --git a/tools/make-packet-dcm.py b/tools/make-packet-dcm.py
index 028bde4..51cbcf1 100755
--- a/tools/make-packet-dcm.py
+++ b/tools/make-packet-dcm.py
@@ -196,7 +196,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 */
""" + text_for_rows(cmd_rows) + """
@@ -233,7 +233,7 @@ typedef struct dcm_uid {
""" + "\n".join(f'#define {uid_define_name(uid)} "{uid[0]}"'
for uid in uid_rows if uid[1] != '(Retired)') + """
-static dcm_uid_t dcm_uid_data[] = {
+static dcm_uid_t const dcm_uid_data[] = {
""" + "\n".join(f' {{ {uid_define_name(uid)}, "{uid[1]}", "{uid[3]}"}},'
for uid in uid_rows)+ """
};
diff --git a/tools/make-pci-ids.py b/tools/make-pci-ids.py
index 0a77f76..093637d 100755
--- a/tools/make-pci-ids.py
+++ b/tools/make-pci-ids.py
@@ -44,7 +44,7 @@ typedef struct
uint16_t did;
uint16_t svid;
uint16_t ssid;
- char *name;
+ const char *name;
} pci_id_t;
@@ -52,14 +52,14 @@ typedef struct
{
uint16_t vid;
uint16_t count;
- pci_id_t *ids_ptr;
+ pci_id_t const *ids_ptr;
} pci_vid_index_t;
"""
CODE_POSTFIX = """
-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;
@@ -96,9 +96,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);
@@ -184,7 +184,7 @@ def main():
did = -1
svid = -1
ssid = -1
- out_lines += "pci_id_t pci_vid_%04X[] = {\n" % (vid)
+ out_lines += "static pci_id_t const pci_vid_%04X[] = {\n" % (vid)
out_lines += "{0x%04X, 0xFFFF, 0xFFFF, 0xFFFF, \"%s(0x%04X)\"},\n" % (vid, words[1].strip(), vid)
id_list.append(vid)
continue
@@ -227,7 +227,7 @@ def main():
out_lines += "}; /* pci_vid_%04X[] */\n" % (vid)
count_list.append(entries)
- out_lines += "\npci_vid_index_t pci_vid_index[] = {\n"
+ out_lines += "\nstatic pci_vid_index_t const pci_vid_index[] = {\n"
vendor_count = len(id_list)
device_count = 0
@@ -240,10 +240,10 @@ def main():
out_lines += CODE_POSTFIX
if vendor_count < MIN_VENDOR_COUNT:
- exit_msg(f'Too view vendors. Wanted {MIN_VENDOR_COUNT}, got {vendor_count}.')
+ exit_msg(f'Too few vendors. Wanted {MIN_VENDOR_COUNT}, got {vendor_count}.')
if device_count < MIN_DEVICE_COUNT:
- exit_msg(f'Too view devices. Wanted {MIN_DEVICE_COUNT}, got {device_count}.')
+ exit_msg(f'Too few devices. Wanted {MIN_DEVICE_COUNT}, got {device_count}.')
with open(OUTPUT_FILE, "w", encoding="utf-8") as pci_ids_f:
pci_ids_f.write(out_lines)
diff --git a/tools/make-services.py b/tools/make-services.py
index e608af7..0f832be 100755
--- a/tools/make-services.py
+++ b/tools/make-services.py
@@ -43,7 +43,7 @@ def parse_port(port_str):
if len(p) == 1:
return tuple([int(p[0])])
if len(p) == 2:
- return tuple([int(p[0]), int(p[1])])
+ return tuple(range(int(p[0]), int(p[1]) + 1))
except ValueError:
pass
return ()
diff --git a/tools/make-version.py b/tools/make-version.py
index 4adc7b2..ee660c1 100755
--- a/tools/make-version.py
+++ b/tools/make-version.py
@@ -44,8 +44,8 @@ GIT_ABBREV_LENGTH = 12
# If the text "$Format" is still present, it means that
# git archive did not replace the $Format string, which
# means that this not a git archive.
-GIT_EXPORT_SUBST_H = '40459284278611128aac5cef35a563218933f8da'
-GIT_EXPORT_SUBST_D = 'tag: wireshark-4.2.2, tag: v4.2.2, refs/merge-requests/13920/head, refs/keep-around/40459284278611128aac5cef35a563218933f8da'
+GIT_EXPORT_SUBST_H = '4aa814ac25a18ea48d4002351ed45d4b245b0c08'
+GIT_EXPORT_SUBST_D = 'tag: wireshark-4.2.5, tag: v4.2.5, refs/merge-requests/15651/head, refs/keep-around/4aa814ac25a18ea48d4002351ed45d4b245b0c08'
IS_GIT_ARCHIVE = not GIT_EXPORT_SUBST_H.startswith('$Format')
diff --git a/tools/msys2-setup.sh b/tools/msys2-setup.sh
index 0ca6329..be78607 100644
--- a/tools/msys2-setup.sh
+++ b/tools/msys2-setup.sh
@@ -16,6 +16,7 @@ function print_usage() {
printf "The basic usage installs the needed software\\n\\n"
printf "Usage: %s [--install-optional] [...other options...]\\n" "$0"
printf "\\t--install-optional: install optional software as well\\n"
+ printf "\\t--install-nsis-deps: install packages required to build NSIS installer\\n"
printf "\\t--install-test-deps: install packages required to run all tests\\n"
printf "\\t--install-all: install everything\\n"
printf "\\t[other]: other options are passed as-is to pacman\\n"
@@ -34,11 +35,15 @@ for arg; do
--install-optional)
ADDITIONAL=1
;;
+ --install-nsis-deps)
+ NSISDEPS=1
+ ;;
--install-test-deps)
TESTDEPS=1
;;
--install-all)
ADDITIONAL=1
+ NSISDEPS=1
TESTDEPS=1
;;
*)
@@ -51,9 +56,11 @@ PACKAGE_PREFIX="${MINGW_PACKAGE_PREFIX:-mingw-w64-x86_64}"
#
# Lua packaging is kind of a mess. Lua 5.2 is not available. Some packages have
-# a hard dependy on LuaJIT and it conflicts with Lua 5.1 and vice-versa.
+# a hard dependency on LuaJIT and it conflicts with Lua 5.1 and vice-versa.
# This will probably have to be fixed by the MSYS2 maintainers.
-# XXX Is this still true?
+# XXX Is this still true? We can use Lua 5.3 and 5.4 now, though we still
+# might want to package our own version to use our UTF-8 on Windows patch
+# (though we don't apply that patch yet.)
#
BASIC_LIST="base-devel \
git \
@@ -100,6 +107,8 @@ ADDITIONAL_LIST="${PACKAGE_PREFIX}-asciidoctor \
${PACKAGE_PREFIX}-perl \
${PACKAGE_PREFIX}-ntldd"
+NSISDEPS_LIST="${PACKAGE_PREFIX}-nsis"
+
TESTDEPS_LIST="${PACKAGE_PREFIX}-python-pytest \
${PACKAGE_PREFIX}-python-pytest-xdist"
@@ -110,6 +119,11 @@ then
ACTUAL_LIST="$ACTUAL_LIST $ADDITIONAL_LIST"
fi
+if [ $NSISDEPS -ne 0 ]
+then
+ ACTUAL_LIST="$ACTUAL_LIST $NSISDEPS_LIST"
+fi
+
if [ $TESTDEPS -ne 0 ]
then
ACTUAL_LIST="$ACTUAL_LIST $TESTDEPS_LIST"
@@ -123,6 +137,11 @@ then
printf "\n*** Optional packages not installed. Rerun with --install-optional to have them.\n"
fi
+if [ $NSISDEPS -eq 0 ]
+then
+ printf "\n*** NSIS installer deps not installed. Rerun with --install-nsis-deps to have them.\n"
+fi
+
if [ $TESTDEPS -eq 0 ]
then
printf "\n*** Test deps not installed. Rerun with --install-test-deps to have them.\n"
diff --git a/tools/win-setup.ps1 b/tools/win-setup.ps1
index 0e2f750..93c1bb6 100644
--- a/tools/win-setup.ps1
+++ b/tools/win-setup.ps1
@@ -74,8 +74,8 @@ $X64Archives = @{
"AirPcap/AirPcap_Devpack_4_1_0_1622.zip" = "09d637f28a79b1d2ecb09f35436271a90c0f69bd0a1ee82b803abaaf63c18a69";
"bcg729/bcg729-1.0.4-win64ws.zip" = "9a095fda4c39860d96f0c568830faa6651cd17635f68e27aa6de46c689aa0ee2";
"brotli/brotli-1.0.9-1-win64ws.zip" = "3f8d24aec8668201994327ff8d8542fe507d1d468a500a1aec50d0415f695aab";
- "c-ares/c-ares-1.19.1-1-x64-windows-ws.zip" = "cecd95f125a34b6f1d5dfc9586792077cb70820764ffc10d43b0617c1861ae85";
- "gnutls/gnutls-3.8.2-1-x64-mingw-dynamic-ws.zip" = "6d8d30724e66fdf5370a78b67dbcbbdd00d2c4209cfb6eb43c0ee5a25fe18f1c";
+ "c-ares/c-ares-1.27.0-1-x64-windows-ws.zip" = "c9f1fb4836d55ae3aca0be077d2363678454820f9efad5c09371351a8770b5fc";
+ "gnutls/gnutls-3.8.4-2-x64-mingw-dynamic-ws.zip" = "e875c6c34f633c487ce390e25a4d26a3e27d3dca3f9fdfa1d8fd66026d1e257c";
"krb5/krb5-1.20.1-1-x64-windows-ws.zip" = "a1e5c582afce6e2f72f0f5bd66df2c0f3cc984532a1da5314fc89d7b7f29cdbf";
"libgcrypt/libgcrypt-1.10.2-2-x64-mingw-dynamic-ws.zip" = "477cfce91d791b34df75a5ad83626f1ac2ee147eff7965e52266a4fc3da0f920";
"libilbc/libilbc-2.0.2-4-x64-windows-ws.zip" = "4f35a1ffa03c89bf473f38249282a7867b203988d2b6d3d2f0924764619fd5f5";
@@ -86,7 +86,7 @@ $X64Archives = @{
"lua/lua-5.2.4-unicode-win64-vc14.zip" = "e8968d2c7871ce1ea82cbd29ac1b3a2c59d3dec25e483c5e12de85df66f5d928";
"lz4/lz4-1.9.3-1-win64ws.zip" = "7129515893ffdc439f4ffe9673c4bc43f9042e910bb2607e68dde6b99a1ab058";
"minizip/minizip-1.3-1-x64-windows-ws.zip" = "eb0bb5fffda5328e192d0d7951ff0254e64dcd736d46909fde7db792c1c53bcc";
- "nghttp2/nghttp2-1.57.0-1-x64-windows-ws.zip" = "94afb12d63d0830dc25e5605c30a6a91fe1f7284c1e6ddfff177d961d5b52bbd";
+ "nghttp2/nghttp2-1.61.0-1-x64-windows-ws.zip" = "c9f9976ae890acdee24f4a0a6514b345c4e34121e11f0439ba5d90ba6b122d31";
"nghttp3/nghttp3-1.0.0-1-x64-windows-ws.zip" = "219a0024b79627c00fa1c134085678edbfac72b7b5eaf45db84f36e2553e1638";
"opus/opus-1.3.1-3-win64ws.zip" = "1f7a55a6d2d7215dffa4a43bca8ca05024bd4ba1ac3d0d0c405fd38b09cc2205";
"sbc/sbc-2.0-1-x64-windows-ws.zip" = "d1a58f977dcffa168b11b280bd10228191582d263b7c901e50cde7c1c43d9c04";
@@ -98,11 +98,12 @@ $X64Archives = @{
"zstd/zstd-1.5.2-1-win64ws.zip" = "d920afe636951cfcf144824d9c075d1f2c13387f4739152fe185fd9c09fc58f2";
}
+
$Arm64Archives = @{
"bcg729/bcg729-1.1.1-1-win64armws.zip" = "f4d76b9acf0d0e12e87a020e9805d136a0e8775e061eeec23910a10828153625";
"brotli/brotli-1.0.9-1-win64armws.zip" = "5ba1b62ebc514d55c3eae85a00ff107e587b6e7cb1275e2d33fcddcd49f8e2af";
- "c-ares/c-ares-1.19.1-1-arm64-windows-ws.zip" = "ec13f3ca07c1916872d08d3abaec3eaeac266dc2befdbc15d5a1317f2a1dbe3c";
- "gnutls/gnutls-3.8.2-1-arm64-mingw-dynamic-ws.zip" = "7d47762a46f9d8985deccfbf600b57f7a8076f12bfc722dcd57923ea2812a956";
+ "c-ares/c-ares-1.27.0-1-arm64-windows-ws.zip" = "d96bd88aeed45350b2d14f023bd6d9e5dc63aa3bb0b47da85e4e125d6f74bfcf";
+ "gnutls/gnutls-3.8.4-2-arm64-mingw-dynamic-ws.zip" = "17f28b4a47857db86d9c3f9b7ba12528c8e6368524314fb0fe5ea9303f1a58f9";
"krb5/krb5-1.20.1-1-arm64-windows-ws.zip" = "6afe3185ea7621224544683a89d7c724d32bef6f1b552738dbc713ceb2151437";
"libgcrypt/libgcrypt-1.10.2-2-arm64-mingw-dynamic-ws.zip" = "cd42fa2739a204e129d655e1b0dda83ceb27399812b8b2eccddae4a9ecd8d0ce";
"libilbc/libilbc-2.0.2-4-arm64-windows-ws.zip" = "00a506cc1aac8a2e31856e463a555d899b5a6ccf376485a124104858ccf0be6d";
@@ -113,7 +114,7 @@ $Arm64Archives = @{
"lua/lua-5.2.4-unicode-arm64-windows-vc17.zip" = "5848e23352e35b69f4cdabaca3754c2c5fb11e5461bb92b71e059e558e4b2d12";
"lz4/lz4-1.9.4-1-win64armws.zip" = "59a3ed3f9161be7614a89afd2ca21c43f26dd916afd4aa7bfdc4b148fb10d485";
"minizip/minizip-1.3-1-arm64-windows-ws.zip" = "e5b35d064ff10f1ab1ee9193a0965fd1eb3d1e16eab5a905ab3fea9b14fb5afe";
- "nghttp2/nghttp2-1.57.0-1-arm64-windows-ws.zip" = "3f264dc0ccb48850e07ec136dede5b0ad0e39e31ff2d2e6ab215348ce2d9e570";
+ "nghttp2/nghttp2-1.61.0-1-arm64-windows-ws.zip" = "628822778c1ae540943f4b48bcfd22551826318a66b8082eebc4e99943e743b3";
"nghttp3/nghttp3-1.0.0-1-arm64-windows-ws.zip" = "cf53090b514d3193d75b81562235ae1e7a8a9d462e37f515f9a9a29c6b469236";
"opus/opus-1.4-1-win64armws.zip" = "51d10381360d5691b2022dde5b284266d9b0ce9a3c9bd7e86f9a4ff1a4f7d904";
"sbc/sbc-2.0-1-arm64-windows-ws.zip" = "83cfe4a8b6fa5bae253ecacc1c02e6e4c61b4ad9ad0e5e63f0f30422fb6eac96";
diff --git a/ui/commandline.c b/ui/commandline.c
index 374434e..43c2fdc 100644
--- a/ui/commandline.c
+++ b/ui/commandline.c
@@ -456,9 +456,12 @@ void commandline_override_prefs(int argc, char *argv[], gboolean opt_reset)
}
break;
case PREFS_SET_OBSOLETE:
- cmdarg_err("-o flag \"%s\" specifies obsolete preference",
- ws_optarg);
- exit_application(1);
+ /* obsolete preference, might be a recent setting */
+ if (recent_set_arg(ws_optarg) != PREFS_SET_OK) {
+ cmdarg_err("-o flag \"%s\" specifies obsolete preference",
+ ws_optarg);
+ exit_application(1);
+ }
break;
default:
ws_assert_not_reached();
diff --git a/ui/logray/logray_main_window_slots.cpp b/ui/logray/logray_main_window_slots.cpp
index f0882ed..bf9c05b 100644
--- a/ui/logray/logray_main_window_slots.cpp
+++ b/ui/logray/logray_main_window_slots.cpp
@@ -2057,7 +2057,7 @@ void LograyMainWindow::editTimeShift()
connect(this, SIGNAL(setCaptureFile(capture_file*)),
ts_dialog, SLOT(setCaptureFile(capture_file*)));
- connect(ts_dialog, SIGNAL(timeShifted()), packet_list_, SLOT(applyTimeShift()));
+ connect(ts_dialog, &TimeShiftDialog::timeShifted, packet_list_, &PacketList::applyTimeShift, Qt::QueuedConnection);
ts_dialog->setWindowModality(Qt::ApplicationModal);
ts_dialog->setAttribute(Qt::WA_DeleteOnClose);
diff --git a/ui/qt/export_dissection_dialog.cpp b/ui/qt/export_dissection_dialog.cpp
index 7f2664e..5b09efc 100644
--- a/ui/qt/export_dissection_dialog.cpp
+++ b/ui/qt/export_dissection_dialog.cpp
@@ -172,6 +172,12 @@ void ExportDissectionDialog::show()
void ExportDissectionDialog::dialogAccepted(const QStringList &selected)
{
if (selected.length() > 0) {
+ /* writing might take a while, so hide ourselves so the user
+ * can't click on anything here (this dialog will be closed
+ * and deleted once this function is done), but can access
+ * the ProgressDialog in the main window to cancel the export.
+ */
+ hide();
cf_print_status_t status;
QString file_name = selected[0];
diff --git a/ui/qt/extcap_options_dialog.cpp b/ui/qt/extcap_options_dialog.cpp
index cbac4db..52c360c 100644
--- a/ui/qt/extcap_options_dialog.cpp
+++ b/ui/qt/extcap_options_dialog.cpp
@@ -59,7 +59,8 @@ ExtcapOptionsDialog::ExtcapOptionsDialog(bool startCaptureOnClose, QWidget *pare
ui(new Ui::ExtcapOptionsDialog),
device_name(""),
device_idx(0),
- defaultValueIcon_(StockIcon("x-reset"))
+ defaultValueIcon_(StockIcon("x-reset")),
+ start_capture_on_close_(startCaptureOnClose)
{
ui->setupUi(this);
@@ -123,7 +124,14 @@ void ExtcapOptionsDialog::on_buttonBox_accepted()
/* Starting a new capture with those values */
prefs.extcap_save_on_start = ui->checkSaveOnStart->checkState() == Qt::Checked;
- if (prefs.extcap_save_on_start)
+ /* If the button says "Save" instead of "Start", unconditionally
+ * save. XXX - Why not have both buttons? (#19199)
+ *
+ * XXX - If extcap_save_on_start is the only preference that has
+ * changed, or if it changed from true to false, we should write
+ * out a new preference file with its new value, but don't.
+ */
+ if (prefs.extcap_save_on_start || !start_capture_on_close_)
storeValues();
accept();
@@ -453,25 +461,17 @@ bool ExtcapOptionsDialog::saveOptionToCaptureInfo()
continue;
if (call.length() <= 0) {
- /* BOOLFLAG was cleared, make its value empty */
- if ((*iter)->argument()->arg_type == EXTCAP_ARG_BOOLFLAG) {
- *(*iter)->argument()->pref_valptr[0] = 0;
- }
continue;
}
if (value.compare((*iter)->defaultValue()) == 0) {
- extcap_arg *arg = (*iter)->argument();
-
- // If previous value is not default, set it to default value
- if (arg->default_complex != NULL && arg->default_complex->_val != NULL) {
- g_free(*arg->pref_valptr);
- *arg->pref_valptr = g_strdup(arg->default_complex->_val);
- } else {
- // Set empty value if there is no default value
- *arg->pref_valptr[0] = 0;
- }
- continue;
+ // What _does_ required and also has a default mean (And how is
+ // it different, if at all, from has a default and also placeholder
+ // text)? Will the extcap use the default if we don't pass the
+ // argument (so it's not really required)?
+ // To be safe we can pass the default explicitly.
+ if (!(*iter)->isRequired())
+ continue;
}
gchar * call_string = qstring_strdup(call);
@@ -480,14 +480,6 @@ bool ExtcapOptionsDialog::saveOptionToCaptureInfo()
value_string = qstring_strdup(value);
g_hash_table_insert(ret_args, call_string, value_string);
-
- // For current value we need strdup even it is empty
- value_string = qstring_strdup(prefValue);
- // Update current value with new value
- // We use prefValue because for bool/boolflag it returns value
- // even it is false
- g_free(*(*iter)->argument()->pref_valptr);
- *(*iter)->argument()->pref_valptr = value_string;
}
if (device->external_cap_args_settings != NULL)
diff --git a/ui/qt/extcap_options_dialog.h b/ui/qt/extcap_options_dialog.h
index 230e2d3..bb1d8e8 100644
--- a/ui/qt/extcap_options_dialog.h
+++ b/ui/qt/extcap_options_dialog.h
@@ -54,6 +54,7 @@ private:
QString device_name;
guint device_idx;
QIcon defaultValueIcon_;
+ bool start_capture_on_close_;
ExtcapArgumentList extcapArguments;
diff --git a/ui/qt/models/column_list_model.cpp b/ui/qt/models/column_list_model.cpp
index a0e5c8b..102ffc3 100644
--- a/ui/qt/models/column_list_model.cpp
+++ b/ui/qt/models/column_list_model.cpp
@@ -278,7 +278,7 @@ void ColumnListModel::populate()
QVariant ColumnListModel::data(const QModelIndex &index, int role) const
{
- if (! index.isValid() || index.column() >= store_.count())
+ if (! index.isValid() || index.row() >= store_.count())
return QVariant();
ListElement ne = store_.at(index.row());
diff --git a/ui/qt/models/packet_list_model.cpp b/ui/qt/models/packet_list_model.cpp
index 0ed61d7..8cc0069 100644
--- a/ui/qt/models/packet_list_model.cpp
+++ b/ui/qt/models/packet_list_model.cpp
@@ -186,26 +186,74 @@ void PacketListModel::clear() {
void PacketListModel::invalidateAllColumnStrings()
{
+ // https://bugreports.qt.io/browse/QTBUG-58580
+ // https://bugreports.qt.io/browse/QTBUG-124173
+ // https://codereview.qt-project.org/c/qt/qtbase/+/285280
+ //
+ // In Qt 6, QAbstractItemView::dataChanged determines how much of the
+ // viewport rectangle is covered by the changed indices and only updates
+ // that much. Unfortunately, if the number of indices is very large,
+ // computing the union of the intersecting rectangle takes much longer
+ // than unconditionally updating the entire viewport. It increases linearly
+ // with the total number of packets in the list, unlike updating the
+ // viewport, which scales with the size of the viewport but is unaffected
+ // by undisplayed packets.
+ //
+ // In particular, if the data for all of the model is invalidated, we
+ // know we want to update the entire viewport and very much do not
+ // want to waste time calculating the affected area. (This can take
+ // 1 s with 1.4 M packets, 9 s with 12 M packets.)
+ //
+ // Issuing layoutAboutToBeChanged() and layoutChanged() causes the
+ // QTreeView to clear all the information for each of the view items,
+ // but without clearing the current and selected items (unlike
+ // [begin|end]ResetModel.)
+ //
+ // Theoretically this is less efficient because dataChanged() has a list
+ // of what roles changed and the other signals do not; in practice,
+ // neither QTreeView::dataChanged nor QAbstractItemView::dataChanged
+ // actually use the roles parameter, and just reset everything.
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutAboutToBeChanged();
+#endif
PacketListRecord::invalidateAllRecords();
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutChanged();
+#else
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1),
QVector<int>() << Qt::DisplayRole);
+#endif
}
void PacketListModel::resetColumns()
{
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutAboutToBeChanged();
+#endif
if (cap_file_) {
PacketListRecord::resetColumns(&cap_file_->cinfo);
}
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutChanged();
+#else
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
+#endif
emit headerDataChanged(Qt::Horizontal, 0, columnCount() - 1);
}
void PacketListModel::resetColorized()
{
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutAboutToBeChanged();
+#endif
PacketListRecord::resetColorization();
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutChanged();
+#else
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1),
QVector<int>() << Qt::BackgroundRole << Qt::ForegroundRole);
+#endif
}
void PacketListModel::toggleFrameMark(const QModelIndexList &indeces)
@@ -239,6 +287,9 @@ void PacketListModel::toggleFrameMark(const QModelIndexList &indeces)
void PacketListModel::setDisplayedFrameMark(gboolean set)
{
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutAboutToBeChanged();
+#endif
foreach (PacketListRecord *record, visible_rows_) {
if (set) {
cf_mark_frame(cap_file_, record->frameData());
@@ -246,8 +297,12 @@ void PacketListModel::setDisplayedFrameMark(gboolean set)
cf_unmark_frame(cap_file_, record->frameData());
}
}
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutChanged();
+#else
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1),
QVector<int>() << Qt::BackgroundRole << Qt::ForegroundRole);
+#endif
}
void PacketListModel::toggleFrameIgnore(const QModelIndexList &indeces)
@@ -281,6 +336,9 @@ void PacketListModel::toggleFrameIgnore(const QModelIndexList &indeces)
void PacketListModel::setDisplayedFrameIgnore(gboolean set)
{
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutAboutToBeChanged();
+#endif
foreach (PacketListRecord *record, visible_rows_) {
if (set) {
cf_ignore_frame(cap_file_, record->frameData());
@@ -288,8 +346,12 @@ void PacketListModel::setDisplayedFrameIgnore(gboolean set)
cf_unignore_frame(cap_file_, record->frameData());
}
}
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutChanged();
+#else
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1),
QVector<int>() << Qt::BackgroundRole << Qt::ForegroundRole << Qt::DisplayRole);
+#endif
}
void PacketListModel::toggleFrameRefTime(const QModelIndex &rt_index)
@@ -302,6 +364,9 @@ void PacketListModel::toggleFrameRefTime(const QModelIndex &rt_index)
frame_data *fdata = record->frameData();
if (!fdata) return;
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutAboutToBeChanged();
+#endif
if (fdata->ref_time) {
fdata->ref_time=0;
cap_file_->ref_time_count--;
@@ -332,7 +397,11 @@ void PacketListModel::unsetAllFrameRefTime()
cap_file_->ref_time_count = 0;
cf_reftime_packets(cap_file_);
PacketListRecord::resetColumns(&cap_file_->cinfo);
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutChanged();
+#else
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
+#endif
}
void PacketListModel::addFrameComment(const QModelIndexList &indices, const QByteArray &comment)
diff --git a/ui/qt/packet_list.cpp b/ui/qt/packet_list.cpp
index e74f151..ae6f0f5 100644
--- a/ui/qt/packet_list.cpp
+++ b/ui/qt/packet_list.cpp
@@ -204,6 +204,7 @@ PacketList::PacketList(QWidget *parent) :
tail_at_end_(0),
columns_changed_(false),
set_column_visibility_(false),
+ set_style_sheet_(false),
frozen_current_row_(QModelIndex()),
frozen_selected_rows_(QModelIndexList()),
cur_history_(-1),
@@ -358,11 +359,27 @@ void PacketList::colorsChanged()
}
// Set the style sheet
+ set_style_sheet_ = true;
if(prefs.gui_packet_list_hover_style) {
setStyleSheet(active_style + inactive_style + hover_style);
} else {
setStyleSheet(active_style + inactive_style);
}
+ set_style_sheet_ = false;
+#if \
+ ( \
+ (QT_VERSION >= QT_VERSION_CHECK(6, 5, 4) && QT_VERSION < QT_VERSION_CHECK(6, 6, 0)) \
+ || (QT_VERSION >= QT_VERSION_CHECK(6, 6, 1)) \
+ )
+ // https://bugreports.qt.io/browse/QTBUG-122109
+ // Affects Qt 6.5.4 and later, 6.6.1 and later.
+ // When setting the style sheet, all visible sections are set
+ // to the new minimum DefaultSectionSize (even if it hasn't
+ // changed.) So make sure the new widths aren't saved to recent
+ // and then restore from recent.
+ applyRecentColumnWidths();
+ setColumnVisibility();
+#endif
}
QString PacketList::joinSummaryRow(QStringList col_parts, int row, SummaryCopyType type)
@@ -1021,6 +1038,8 @@ void PacketList::setRecentColumnWidth(int col)
void PacketList::drawCurrentPacket()
{
+ // XXX - Update for multi-select? If more than one packet is Selected,
+ // this changes it so that only the Current packet is Selected.
QModelIndex current_index = currentIndex();
if (selectionModel() && current_index.isValid()) {
selectionModel()->clearSelection();
@@ -1786,7 +1805,7 @@ void PacketList::columnVisibilityTriggered()
void PacketList::sectionResized(int col, int, int new_width)
{
- if (isVisible() && !columns_changed_ && !set_column_visibility_ && new_width > 0) {
+ if (isVisible() && !columns_changed_ && !set_column_visibility_ && !set_style_sheet_ && new_width > 0) {
// Column 1 gets an invalid value (32 on macOS) when we're not yet
// visible.
//
diff --git a/ui/qt/packet_list.h b/ui/qt/packet_list.h
index 7b3fbe1..2b025e2 100644
--- a/ui/qt/packet_list.h
+++ b/ui/qt/packet_list.h
@@ -140,6 +140,7 @@ private:
bool tail_at_end_;
bool columns_changed_;
bool set_column_visibility_;
+ bool set_style_sheet_;
QModelIndex frozen_current_row_;
QModelIndexList frozen_selected_rows_;
QVector<int> selection_history_;
diff --git a/ui/qt/packet_range_group_box.cpp b/ui/qt/packet_range_group_box.cpp
index 143da61..dab4433 100644
--- a/ui/qt/packet_range_group_box.cpp
+++ b/ui/qt/packet_range_group_box.cpp
@@ -113,12 +113,23 @@ void PacketRangeGroupBox::updateCounts() {
pr_ui_->selectedDisplayedLabel->setEnabled(displayed_checked);
if (range_->include_dependents) {
- pr_ui_->selectedCapturedLabel->setText(QString::number(range_->selected_plus_depends_cnt));
- pr_ui_->selectedDisplayedLabel->setText(QString::number(range_->displayed_selected_plus_depends_cnt));
+ label_count = range_->selected_plus_depends_cnt;
} else {
- pr_ui_->selectedCapturedLabel->setText(QString::number(range_->selection_range_cnt));
- pr_ui_->selectedDisplayedLabel->setText(QString::number(range_->displayed_selection_range_cnt));
+ label_count = range_->selection_range_cnt;
}
+ if (range_->remove_ignored) {
+ label_count -= range_->ignored_selection_range_cnt;
+ }
+ pr_ui_->selectedCapturedLabel->setText(QString::number(label_count));
+ if (range_->include_dependents) {
+ label_count = range_->displayed_selected_plus_depends_cnt;
+ } else {
+ label_count = range_->displayed_selection_range_cnt;
+ }
+ if (range_->remove_ignored) {
+ label_count -= range_->displayed_ignored_selection_range_cnt;
+ }
+ pr_ui_->selectedDisplayedLabel->setText(QString::number(label_count));
} else {
if (range_->process == range_process_selected) {
pr_ui_->allButton->setChecked(true);
diff --git a/ui/qt/rtp_player_dialog.cpp b/ui/qt/rtp_player_dialog.cpp
index 7d0ad62..60418cc 100644
--- a/ui/qt/rtp_player_dialog.cpp
+++ b/ui/qt/rtp_player_dialog.cpp
@@ -393,13 +393,13 @@ RtpPlayerDialog::~RtpPlayerDialog()
{
std::lock_guard<std::mutex> lock(init_mutex_);
if (pinstance_ != nullptr) {
- cleanupMarkerStream();
for (int row = 0; row < ui->streamTreeWidget->topLevelItemCount(); row++) {
QTreeWidgetItem *ti = ui->streamTreeWidget->topLevelItem(row);
RtpAudioStream *audio_stream = ti->data(stream_data_col_, Qt::UserRole).value<RtpAudioStream*>();
if (audio_stream)
delete audio_stream;
}
+ cleanupMarkerStream();
delete ui;
pinstance_ = nullptr;
}
@@ -1288,7 +1288,9 @@ void RtpPlayerDialog::playFinished(RtpAudioStream *stream, QAudio::Error error)
}
playing_streams_.removeOne(stream);
if (playing_streams_.isEmpty()) {
- marker_stream_->stop();
+ if (marker_stream_) {
+ marker_stream_->stop();
+ }
updateWidgets();
}
}
diff --git a/ui/qt/sequence_dialog.cpp b/ui/qt/sequence_dialog.cpp
index 2f5b5ed..e5fb7b8 100644
--- a/ui/qt/sequence_dialog.cpp
+++ b/ui/qt/sequence_dialog.cpp
@@ -66,14 +66,14 @@ typedef struct {
SequenceInfo *info;
} sequence_items_t;
-SequenceDialog::SequenceDialog(QWidget &parent, CaptureFile &cf, SequenceInfo *info) :
+SequenceDialog::SequenceDialog(QWidget &parent, CaptureFile &cf, SequenceInfo *info, bool voipFeatures) :
WiresharkDialog(parent, cf),
ui(new Ui::SequenceDialog),
info_(info),
num_items_(0),
packet_num_(0),
sequence_w_(1),
- voipFeaturesEnabled(false)
+ voipFeaturesEnabled(voipFeatures)
{
QAction *action;
@@ -189,6 +189,11 @@ SequenceDialog::SequenceDialog(QWidget &parent, CaptureFile &cf, SequenceInfo *i
close_bt->setDefault(true);
}
+ enableVoIPFeatures();
+
+ // Enable or disable VoIP features before adding the ProgressFrame,
+ // because the layout position depends on whether player_button_ is
+ // visible.
ProgressFrame::addToButtonBox(ui->buttonBox, &parent);
loadGeometry(parent.width(), parent.height() * 4 / 5);
@@ -200,10 +205,7 @@ SequenceDialog::SequenceDialog(QWidget &parent, CaptureFile &cf, SequenceInfo *i
connect(sp, SIGNAL(mousePress(QMouseEvent*)), this, SLOT(diagramClicked(QMouseEvent*)));
connect(sp, SIGNAL(mouseMove(QMouseEvent*)), this, SLOT(mouseMoved(QMouseEvent*)));
connect(sp, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(mouseWheeled(QWheelEvent*)));
-
- // Button must be enabled by VoIP dialogs
- player_button_->setVisible(false);
- player_button_->setEnabled(false);
+ connect(sp, &QCustomPlot::afterLayout, this, &SequenceDialog::layoutAxisLabels);
}
SequenceDialog::~SequenceDialog()
@@ -214,10 +216,10 @@ SequenceDialog::~SequenceDialog()
void SequenceDialog::enableVoIPFeatures()
{
- voipFeaturesEnabled = true;
- player_button_->setVisible(true);
- ui->actionSelectRtpStreams->setVisible(true);
- ui->actionDeselectRtpStreams->setVisible(true);
+ player_button_->setVisible(voipFeaturesEnabled);
+ ui->actionSelectRtpStreams->setVisible(voipFeaturesEnabled);
+ ui->actionDeselectRtpStreams->setVisible(voipFeaturesEnabled);
+ // Buttons and actions are enabled when valid call selected
}
void SequenceDialog::updateWidgets()
@@ -535,12 +537,20 @@ void SequenceDialog::panAxes(int x_pixels, int y_pixels)
double v_pan = 0.0;
h_pan = sp->xAxis2->range().size() * x_pixels / sp->xAxis2->axisRect()->width();
+ // The nodes are placed on integer x values from 0 to num_nodes - 1.
+ // We allow 0.5 of margin around a node (also reflected in the
+ // horizontalScrollBar range.)
if (h_pan < 0) {
h_pan = qMax(h_pan, min_left_ - sp->xAxis2->range().lower);
} else {
- h_pan = qMin(h_pan, info_->sainfo()->num_nodes - sp->xAxis2->range().upper);
+ h_pan = qMin(h_pan, info_->sainfo()->num_nodes - 0.5 - sp->xAxis2->range().upper);
}
+ if (sp->yAxis->rangeReversed()) {
+ // For reversed axes, lower still references the mathemathetically
+ // smaller number than upper, so reverse the direction.
+ y_pixels = -y_pixels;
+ }
v_pan = sp->yAxis->range().size() * y_pixels / sp->yAxis->axisRect()->height();
if (v_pan < 0) {
v_pan = qMax(v_pan, min_top_ - sp->yAxis->range().lower);
@@ -548,7 +558,7 @@ void SequenceDialog::panAxes(int x_pixels, int y_pixels)
v_pan = qMin(v_pan, num_items_ - sp->yAxis->range().upper);
}
- if (h_pan && !(sp->xAxis2->range().contains(min_left_) && sp->xAxis2->range().contains(info_->sainfo()->num_nodes))) {
+ if (h_pan && !(sp->xAxis2->range().contains(min_left_) && sp->xAxis2->range().contains(info_->sainfo()->num_nodes - 0.5))) {
sp->xAxis2->moveRange(h_pan);
sp->replot();
}
@@ -586,13 +596,21 @@ void SequenceDialog::resetAxes(bool keep_lower)
ui->verticalScrollBar->setRange((rmin - 1.0) * 100, (num_items_ - 0.5 - rmin) * 100);
yAxisChanged(sp->yAxis->range());
+ sp->replot(QCustomPlot::rpQueuedReplot);
+}
+
+void SequenceDialog::layoutAxisLabels()
+{
// It would be exceedingly handy if we could do one or both of the
// following:
// - Position an axis label above its axis inline with the tick labels.
// - Anchor a QCPItemText to one of the corners of a QCPAxis.
- // Neither of those appear to be possible, so we first call replot in
- // order to lay out our X axes, place our labels, the call replot again.
- sp->replot(QCustomPlot::rpQueuedReplot);
+ // Neither of those appear to be possible, so we place our labels using
+ // absolute positioning immediately after the layout size and positions
+ // are set, and right before the replot (or print) draw step occurs,
+ // using the new QCustomPlot 2.1.0 QCustomPlot::afterLayout signal.
+
+ QCustomPlot *sp = ui->sequencePlot;
QRect axis_rect = sp->axisRect()->rect();
@@ -606,8 +624,6 @@ void SequenceDialog::resetAxes(bool keep_lower)
+ sp->yAxis2->tickLabelPadding()
+ sp->yAxis2->offset(),
axis_rect.top() / 2);
-
- sp->replot(QCustomPlot::rpRefreshHint);
}
void SequenceDialog::resetView()
diff --git a/ui/qt/sequence_dialog.h b/ui/qt/sequence_dialog.h
index 8c32190..f9935d5 100644
--- a/ui/qt/sequence_dialog.h
+++ b/ui/qt/sequence_dialog.h
@@ -49,9 +49,8 @@ class SequenceDialog : public WiresharkDialog
Q_OBJECT
public:
- explicit SequenceDialog(QWidget &parent, CaptureFile &cf, SequenceInfo *info = NULL);
+ explicit SequenceDialog(QWidget &parent, CaptureFile &cf, SequenceInfo *info = NULL, bool voipFeatures = false);
~SequenceDialog();
- void enableVoIPFeatures();
protected:
void showEvent(QShowEvent *event);
@@ -78,6 +77,7 @@ private slots:
void fillDiagram();
void resetView();
void exportDiagram();
+ void layoutAxisLabels();
void on_buttonBox_clicked(QAbstractButton *button);
void on_actionGoToPacket_triggered();
@@ -123,6 +123,7 @@ private:
QPointer<RtpStreamDialog> rtp_stream_dialog_; // Singleton pattern used
bool voipFeaturesEnabled;
+ void enableVoIPFeatures();
void zoomXAxis(bool in);
void panAxes(int x_pixels, int y_pixels);
void resetAxes(bool keep_lower = false);
diff --git a/ui/qt/tcp_stream_dialog.cpp b/ui/qt/tcp_stream_dialog.cpp
index 49980d8..8d668f6 100644
--- a/ui/qt/tcp_stream_dialog.cpp
+++ b/ui/qt/tcp_stream_dialog.cpp
@@ -45,6 +45,8 @@
// - ACK & RWIN segment ticks in tcptrace graph
// - Add missing elements (retrans, URG, SACK, etc) to tcptrace. It probably makes
// sense to subclass QCPGraph for this.
+// - Allow switching the tracer between graphs when there are two / selecting
+// the other graph, at the very least if base_graph_ is disabled.
// The GTK+ version computes a 20 (or 21!) segment moving average. Comment
// out the line below to use that. By default we use a 1 second MA.
@@ -73,6 +75,7 @@ const QString segment_length_label_ = QObject::tr("Segment Length (B)");
const QString sequence_number_label_ = QObject::tr("Sequence Number (B)");
const QString time_s_label_ = QObject::tr("Time (s)");
const QString window_size_label_ = QObject::tr("Window Size (B)");
+const QString cwnd_label_ = QObject::tr("Unacked (Outstanding) Bytes (B)");
QCPErrorBarsNotSelectable::QCPErrorBarsNotSelectable(QCPAxis *keyAxis, QCPAxis *valueAxis) :
QCPErrorBars(keyAxis, valueAxis)
@@ -292,7 +295,7 @@ TCPStreamDialog::TCPStreamDialog(QWidget *parent, capture_file *cf, tcp_graph_ty
sack2_eb_->setDataPlottable(sack2_graph_);
// RWin graph - displays upper extent of RWIN advertised on reverse packets
- rwin_graph_ = sp->addGraph();
+ rwin_graph_ = sp->addGraph(sp->xAxis, sp->yAxis2);
rwin_graph_->setPen(QPen(QBrush(graph_color_3), pen_width));
rwin_graph_->setLineStyle(QCPGraph::lsStepLeft);
@@ -1579,9 +1582,18 @@ void TCPStreamDialog::fillWindowScale()
}
}
}
+ /* base_graph_ is the one that the tracer is on and allows selecting
+ * segments. XXX - Is the congestion window more interesting to see
+ * the exact value and select?
+ */
base_graph_->setData(cwnd_time, cwnd_size);
rwin_graph_->setData(rel_time, win_size);
- sp->yAxis->setLabel(window_size_label_);
+ sp->yAxis->setLabel(cwnd_label_);
+
+ sp->yAxis2->setLabel(window_size_label_);
+ sp->yAxis2->setLabelColor(QColor(graph_color_3));
+ sp->yAxis2->setTickLabelColor(QColor(graph_color_3));
+ sp->yAxis2->setVisible(true);
}
QString TCPStreamDialog::streamDescription()
@@ -1771,7 +1783,7 @@ void TCPStreamDialog::mouseMoved(QMouseEvent *event)
tracer_->setVisible(false);
hint += "Hover over the graph for details. " + stream_desc_ + "</i></small>";
ui->hintLabel->setText(hint);
- ui->streamPlot->replot();
+ ui->streamPlot->replot(QCustomPlot::rpQueuedReplot);
return;
}
@@ -1786,7 +1798,7 @@ void TCPStreamDialog::mouseMoved(QMouseEvent *event)
.arg(packet_seg->th_ack)
.arg(packet_seg->th_win);
tracer_->setGraphKey(ui->streamPlot->xAxis->pixelToCoord(event->pos().x()));
- sp->replot();
+ sp->replot(QCustomPlot::rpQueuedReplot);
} else {
if (rubber_band_ && rubber_band_->isVisible() && event) {
rubber_band_->setGeometry(QRect(rb_origin_, event->pos()).normalized());
diff --git a/ui/qt/utils/data_printer.cpp b/ui/qt/utils/data_printer.cpp
index 36f1abd..3c3e910 100644
--- a/ui/qt/utils/data_printer.cpp
+++ b/ui/qt/utils/data_printer.cpp
@@ -38,13 +38,45 @@ void DataPrinter::toClipboard(DataPrinter::DumpType type, IDataPrintable * print
// Beginning quote
clipboard_text += QString("\"");
for (int i = 0; i < printData.length(); i++) {
- /* ASCII printable */
- int ch = printData[i];
- if (ch >= 32 && ch <= 126) {
- clipboard_text += QChar(ch);
- }
- else {
- clipboard_text += QString("\\x%1").arg((uint8_t) printData[i], 2, 16, QChar('0'));
+ // backslash and double quote are printable but
+ // must be escaped in a C string.
+ char ch = printData[i];
+ switch (ch) {
+ case '\"':
+ clipboard_text += QString("\\\"");
+ break;
+ case '\\':
+ clipboard_text += QString("\\\\");
+ break;
+ case '\a':
+ clipboard_text += QString("\\a");
+ break;
+ case '\b':
+ clipboard_text += QString("\\b");
+ break;
+ case '\f':
+ clipboard_text += QString("\\f");
+ break;
+ case '\n':
+ clipboard_text += QString("\\n");
+ break;
+ case '\r':
+ clipboard_text += QString("\\r");
+ break;
+ case '\t':
+ clipboard_text += QString("\\t");
+ break;
+ case '\v':
+ clipboard_text += QString("\\v");
+ break;
+ default:
+ // ASCII printable
+ if (ch >= 32 && ch <= 126) {
+ clipboard_text += QChar(ch);
+ }
+ else {
+ clipboard_text += QString("\\%1").arg((uint8_t) printData[i], 3, 8, QChar('0'));
+ }
}
}
// End quote
@@ -54,6 +86,16 @@ void DataPrinter::toClipboard(DataPrinter::DumpType type, IDataPrintable * print
for (int i = 0; i < printData.length(); i++)
clipboard_text += QString("%1").arg((uint8_t) printData[i], 2, 16, QChar('0'));
break;
+ case DP_PrintableText:
+ for (int i = 0; i < printData.length(); i++) {
+ QChar ch(printData[i]);
+ // This interprets ch as Latin-1. We might want to use ASCII
+ // printable only.
+ if (ch.isSpace() || ch.isPrint()) {
+ clipboard_text += ch;
+ }
+ }
+ break;
case DP_Base64:
#if WS_IS_AT_LEAST_GNUC_VERSION(12,1)
DIAG_OFF(stringop-overread)
@@ -219,6 +261,11 @@ QActionGroup * DataPrinter::copyActions(QObject * copyClass, QObject * data)
action->setProperty("printertype", DataPrinter::DP_HexOnly);
connect(action, &QAction::triggered, dpi, &DataPrinter::copyIDataBytes);
+ action = new QAction(tr("…as Printable Text"), actions);
+ action->setToolTip(tr("Copy only the printable text in the packet."));
+ action->setProperty("printertype", DataPrinter::DP_PrintableText);
+ connect(action, &QAction::triggered, dpi, &DataPrinter::copyIDataBytes);
+
action = new QAction(tr("…as a Hex Stream"), actions);
action->setToolTip(tr("Copy packet bytes as a stream of hex."));
action->setProperty("printertype", DataPrinter::DP_HexStream);
diff --git a/ui/qt/utils/data_printer.h b/ui/qt/utils/data_printer.h
index 85f11c3..882b575 100644
--- a/ui/qt/utils/data_printer.h
+++ b/ui/qt/utils/data_printer.h
@@ -30,6 +30,7 @@ public:
DP_HexDump,
DP_HexOnly,
DP_HexStream,
+ DP_PrintableText,
DP_CString,
DP_MimeData,
DP_Base64
diff --git a/ui/qt/voip_calls_dialog.cpp b/ui/qt/voip_calls_dialog.cpp
index b8a54bd..dd5910f 100644
--- a/ui/qt/voip_calls_dialog.cpp
+++ b/ui/qt/voip_calls_dialog.cpp
@@ -603,7 +603,7 @@ void VoipCallsDialog::showSequence()
cur_ga_item = gxx_list_next(cur_ga_item);
}
- SequenceDialog *sequence_dialog = new SequenceDialog(parent_, cap_file_, sequence_info_);
+ SequenceDialog *sequence_dialog = new SequenceDialog(parent_, cap_file_, sequence_info_, true);
// Bypass this dialog and forward signals to parent
connect(sequence_dialog, SIGNAL(rtpStreamsDialogSelectRtpStreams(QVector<rtpstream_id_t *>)), &parent_, SLOT(rtpStreamsDialogSelectRtpStreams(QVector<rtpstream_id_t *>)));
connect(sequence_dialog, SIGNAL(rtpStreamsDialogDeselectRtpStreams(QVector<rtpstream_id_t *>)), &parent_, SLOT(rtpStreamsDialogDeselectRtpStreams(QVector<rtpstream_id_t *>)));
@@ -612,7 +612,6 @@ void VoipCallsDialog::showSequence()
connect(sequence_dialog, SIGNAL(rtpPlayerDialogRemoveRtpStreams(QVector<rtpstream_id_t *>)), &parent_, SLOT(rtpPlayerDialogRemoveRtpStreams(QVector<rtpstream_id_t *>)));
sequence_dialog->setAttribute(Qt::WA_DeleteOnClose);
- sequence_dialog->enableVoIPFeatures();
sequence_dialog->show();
}
diff --git a/ui/qt/widgets/filter_expression_toolbar.cpp b/ui/qt/widgets/filter_expression_toolbar.cpp
index caf91cf..84dabc4 100644
--- a/ui/qt/widgets/filter_expression_toolbar.cpp
+++ b/ui/qt/widgets/filter_expression_toolbar.cpp
@@ -305,8 +305,10 @@ bool FilterExpressionToolBar::eventFilter(QObject *obj, QEvent *event)
QContextMenuEvent *ctx = static_cast<QContextMenuEvent *>(event);
QAction * filterAction = qm->actionAt(ctx->pos());
- if (filterAction)
- customMenu(this, filterAction, ctx->pos());
+ if (filterAction) {
+ QPoint tb_pos = this->mapFromGlobal(ctx->globalPos());
+ customMenu(this, filterAction, tb_pos);
+ }
return true;
}
else if (event->type() == QEvent::ToolTip)
@@ -324,7 +326,7 @@ bool FilterExpressionToolBar::eventFilter(QObject *obj, QEvent *event)
}
}
- return QToolBar::eventFilter(obj, event);
+ return DragDropToolBar::eventFilter(obj, event);
}
void FilterExpressionToolBar::closeMenu(QAction * /*sender*/)
diff --git a/ui/qt/widgets/syntax_line_edit.cpp b/ui/qt/widgets/syntax_line_edit.cpp
index 99ccf7b..f2c3214 100644
--- a/ui/qt/widgets/syntax_line_edit.cpp
+++ b/ui/qt/widgets/syntax_line_edit.cpp
@@ -425,17 +425,23 @@ void SyntaxLineEdit::paintEvent(QPaintEvent *event)
QRect cr = style()->subElementRect(QStyle::SE_LineEditContents, &opt, this);
QPainter painter(this);
- // In my (gcc) testing here, if I add "background: yellow;" to the DisplayFilterCombo
- // stylesheet, when building with Qt 5.15.2 the combobox background is yellow and the
- // text entry area (between the bookmark and apply button) is drawn in the correct
- // base color (white for light mode and black for dark mode), and the correct syntax
- // color otherwise. When building with Qt 6.2.4 and 6.3.1, the combobox background is
- // yellow and the text entry area is always yellow, i.e. QLineEdit isn't painting its
- // background for some reason.
+ // In the attempt to fix https://bugreports.qt.io/browse/QTBUG-81533
+ // the following commit was added to Qt 6.0.0 and later 5.15.3:
+ // https://code.qt.io/cgit/qt/qtbase.git/commit/src/widgets/widgets/qcombobox.cpp?h=5.15&id=6e470764a98434a120eba4fcc6035137cf9c92cf
//
- // It's not clear if this is a bug or just how things work under Qt6. Either way, it's
- // easy to work around.
-#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ // It causes a similar problem to the one it was trying to fix, viz. if I
+ // add "background: yellow;" to the DisplayFilterCombo stylesheet, when
+ // building with Qt 5.15.2 the combobox background is yellow and the text
+ // entry area (between the bookmark and apply button) is drawn in the correct
+ // base color (white for light mode and black for dark mode), and the correct
+ // syntax color otherwise. When building with Qt 5.15.3 and 6.2.4 and 6.3.1,
+ // the combobox background is yellow and the text entry area is always yellow,
+ // i.e. QLineEdit isn't painting its background because the palette from
+ // the combobox is used instead.
+ //
+ // It's not clear if this is a bug or just how things work under Qt6.
+ // Either way, it's easy to work around.
+#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 3)
// Must match CaptureFilterEdit and DisplayFilterEdit stylesheets.
int pad = style()->pixelMetric(QStyle::PM_DefaultFrameWidth) + 1;
QRect full_cr = cr.adjusted(-pad, 0, -1, 0);
diff --git a/ui/qt/wireshark_de.ts b/ui/qt/wireshark_de.ts
index 02a47f2..a42e3c3 100644
--- a/ui/qt/wireshark_de.ts
+++ b/ui/qt/wireshark_de.ts
@@ -2011,6 +2011,14 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<translation>Paketbytes als Hex Dump kopieren</translation>
</message>
<message>
+ <source>…as Printable Text</source>
+ <translation>…als druckbarer Text</translation>
+ </message>
+ <message>
+ <source>Copy only the printable text in the packet.</source>
+ <translation>Nur den druckbaren Text im Paket kopieren.</translation>
+ </message>
+ <message>
<source>…as MIME Data</source>
<translation>...als MIME Daten</translation>
</message>
@@ -7409,11 +7417,11 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
</message>
<message>
<source>Checking this will show only changed preferences.</source>
- <translation type="unfinished"></translation>
+ <translation>Durch Aktivieren dieser Option werden nur geänderte Einstellungen angezeigt</translation>
</message>
<message>
<source>Show changed values</source>
- <translation type="unfinished"></translation>
+ <translation>Zeige geänderte Werte</translation>
</message>
<message>
<source>Preferences</source>
@@ -8078,6 +8086,10 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<translation>Window Größe (B)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[keine Mitschnittdatei]</translation>
</message>
@@ -10037,11 +10049,11 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
</message>
<message>
<source>-</source>
- <translation type="unfinished">-</translation>
+ <translation>-</translation>
</message>
<message>
<source>&lt;small&gt;&lt;i&gt;For complete analysis check SCTP preference Enable Association indexing&lt;/i&gt;&lt;/small&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;small&gt;&lt;i&gt;Zur vollständigen Analyse Association indexing in den Protokolleinstellungen aktivieren&lt;/i&gt;&lt;/small&gt;</translation>
</message>
<message>
<source>Complete List of IP addresses from INIT Chunk:</source>
@@ -11740,51 +11752,51 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<name>TLSKeylogDialog</name>
<message>
<source>Dialog</source>
- <translation type="unfinished">Dialog</translation>
+ <translation>Dialog</translation>
</message>
<message>
<source>Browse…</source>
- <translation type="unfinished"></translation>
+ <translation>Öffnen…</translation>
</message>
<message>
<source>Command line</source>
- <translation type="unfinished"></translation>
+ <translation>Kommandozeile</translation>
</message>
<message>
<source>Run an application with the SSLKEYLOGFILE environment variable set to the file specified by the TLS key log filename preference. This enables TLS decryption in Wireshark. Set the key log file and start the capture before launching the application to ensure that the initial TLS handshakes are captured.</source>
- <translation type="unfinished"></translation>
+ <translation>Eine Applikation mit gesetzter SSLKEYLOGFILE-Umgebungsvariable starten, deren Dateipfad in der TLS-Key-Log-Einstellung festgelegt wurde. Dies ermöglicht die TLS-Entschlüsselung mit Wireshark. Legen Sie den Dateipfad fest und starten Sie den Mitschnitt bevor Sie die Applikation starten, um sicher zu gehen, dass der initiale TLS-Handshake erfasst wird.</translation>
</message>
<message>
<source>&lt;span style=&quot; font-size:small;&quot;&gt;Firefox and Chrome are known to work. If your desired browser is currently running, close it first before launching it below. Command line options are supported.&lt;/span&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;span style=&quot; font-size:small;&quot;&gt;Funktioniert mit Firefox und Chrome. Falls der Browser bereits läuft, diesen vor dem Starten schließen. Kommandozeilen-Optionen werden unterstützt.&lt;/span&gt;</translation>
</message>
<message>
<source>TLS (Pre)-Master-Secret log file path (tls.keylog_file)</source>
- <translation type="unfinished"></translation>
+ <translation>TLS (Pre)-Master-Secret Logdatei-Pfad (tls.keylog_file)</translation>
</message>
<message>
<source>&lt;span style=&quot; font-size:small;&quot;&gt;TLS session secrets will be logged to this file. If you change this field, hit the Save button to update the TLS protocol preferences.&lt;/span&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;span style=&quot; font-size:small;&quot;&gt;TLS-Sitzungsschlüssel werden in diese Datei geschrieben. Wenn das Feld geändert wird, Speichern-Button drücken, um TLS-Protokolleigenschaften zu aktualisieren.&lt;/span&gt;</translation>
</message>
<message>
<source>Launch application with SSLKEYLOGFILE</source>
- <translation type="unfinished"></translation>
+ <translation>Applikation mit SSLKEYLOGFILE starten</translation>
</message>
<message>
<source>Launch</source>
- <translation type="unfinished"></translation>
+ <translation>Starten</translation>
</message>
<message>
<source>Save</source>
- <translation type="unfinished">Speichern</translation>
+ <translation>Speichern</translation>
</message>
<message>
<source>TLS Keylog file</source>
- <translation type="unfinished"></translation>
+ <translation>TLS Keylog Datei</translation>
</message>
<message>
<source>Program to start with SSLKEYLOGFILE</source>
- <translation type="unfinished"></translation>
+ <translation>Programm mit SSLKEYLOGFILE starten</translation>
</message>
</context>
<context>
@@ -13806,11 +13818,11 @@ a:hover {
</message>
<message>
<source>TLS Keylog Launcher</source>
- <translation type="unfinished"></translation>
+ <translation>TLS Keylog Launcher</translation>
</message>
<message>
<source>Release Notes</source>
- <translation type="unfinished"></translation>
+ <translation>Veröffentlichungshinweise</translation>
</message>
<message>
<source>&amp;Options…</source>
diff --git a/ui/qt/wireshark_en.ts b/ui/qt/wireshark_en.ts
index 7f183d0..4478363 100644
--- a/ui/qt/wireshark_en.ts
+++ b/ui/qt/wireshark_en.ts
@@ -2008,6 +2008,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>…as Printable Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy only the printable text in the packet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>…as MIME Data</source>
<translation type="unfinished"></translation>
</message>
@@ -8017,6 +8025,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation type="unfinished"></translation>
</message>
diff --git a/ui/qt/wireshark_es.ts b/ui/qt/wireshark_es.ts
index f4183d9..dc08202 100644
--- a/ui/qt/wireshark_es.ts
+++ b/ui/qt/wireshark_es.ts
@@ -1986,6 +1986,14 @@ Por ejemplo, use 1 hora para tener creado un nuevo archivo cada hora en punto.</
<translation type="unfinished"></translation>
</message>
<message>
+ <source>…as Printable Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy only the printable text in the packet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>…as MIME Data</source>
<translation type="unfinished"></translation>
</message>
@@ -7998,6 +8006,10 @@ Por ejemplo, use 1 hora para tener creado un nuevo archivo cada hora en punto.</
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[no hay archivo de captura]</translation>
</message>
diff --git a/ui/qt/wireshark_fr.ts b/ui/qt/wireshark_fr.ts
index f96a831..7c63477 100644
--- a/ui/qt/wireshark_fr.ts
+++ b/ui/qt/wireshark_fr.ts
@@ -1988,6 +1988,14 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
<translation>Copier les octets du paquet sous forme de vidage Hex.</translation>
</message>
<message>
+ <source>…as Printable Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy only the printable text in the packet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>…as MIME Data</source>
<translation type="unfinished"></translation>
</message>
@@ -8026,6 +8034,10 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
<translation>Taille de fenetres (b)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[pas de fichier de capture]</translation>
</message>
diff --git a/ui/qt/wireshark_it.ts b/ui/qt/wireshark_it.ts
index 19227f6..18daca0 100644
--- a/ui/qt/wireshark_it.ts
+++ b/ui/qt/wireshark_it.ts
@@ -2011,6 +2011,14 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
<translation>Copia i byte del pacchetto come un dump esadecimale.</translation>
</message>
<message>
+ <source>…as Printable Text</source>
+ <translation>...come testo stampabile</translation>
+ </message>
+ <message>
+ <source>Copy only the printable text in the packet.</source>
+ <translation>Copia solo il testo stampabile nel pacchetto.</translation>
+ </message>
+ <message>
<source>…as MIME Data</source>
<translation>…come dati MIME</translation>
</message>
@@ -3302,7 +3310,7 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
<name>FollowStreamAction</name>
<message>
<source>%1 Stream</source>
- <translation>%1 flusso</translation>
+ <translation>Flusso %1</translation>
</message>
</context>
<context>
@@ -8078,6 +8086,10 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
<translation>Dimensione della finestra (B)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation>Byte senza ack (eccezionali) (B)</translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[nessun file di cattura]</translation>
</message>
@@ -9915,7 +9927,7 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
</message>
<message>
<source>%1 streams</source>
- <translation>flussi %1</translation>
+ <translation>%1 flussi</translation>
</message>
<message>
<source>, %1 selected, %2 total packets</source>
diff --git a/ui/qt/wireshark_ja_JP.ts b/ui/qt/wireshark_ja_JP.ts
index a1073f5..610d74d 100644
--- a/ui/qt/wireshark_ja_JP.ts
+++ b/ui/qt/wireshark_ja_JP.ts
@@ -2003,6 +2003,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>16進数ダンプとしてパケットバイト列をコピー</translation>
</message>
<message>
+ <source>…as Printable Text</source>
+ <translation>印刷可能なテキストとして…</translation>
+ </message>
+ <message>
+ <source>Copy only the printable text in the packet.</source>
+ <translation>パケット内の印刷可能なテキストだけをコピー</translation>
+ </message>
+ <message>
<source>…as MIME Data</source>
<translation>MIMEデータとして...</translation>
</message>
@@ -8054,6 +8062,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>ウインドウサイズ(バイト)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation>ACKされていない(未処理の)バイト(B)</translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[キャプチャファイルなし]</translation>
</message>
diff --git a/ui/qt/wireshark_ko.ts b/ui/qt/wireshark_ko.ts
index 495b3d6..8a2f795 100644
--- a/ui/qt/wireshark_ko.ts
+++ b/ui/qt/wireshark_ko.ts
@@ -2004,6 +2004,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>16진수 덤프 형식으로 패킷 바이트를 복사합니다.</translation>
</message>
<message>
+ <source>…as Printable Text</source>
+ <translation>출력 가능한 문자열로 복사</translation>
+ </message>
+ <message>
+ <source>Copy only the printable text in the packet.</source>
+ <translation>패킷 내의 출력 가능한 문자열만 복사합니다.</translation>
+ </message>
+ <message>
<source>…as MIME Data</source>
<translation>MIME 데이터로 복사</translation>
</message>
@@ -7389,11 +7397,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Checking this will show only changed preferences.</source>
- <translation type="unfinished"></translation>
+ <translation>이 옵션을 사용하면 변경된 설정만 표시합니다.</translation>
</message>
<message>
<source>Show changed values</source>
- <translation type="unfinished"></translation>
+ <translation>변경된 값 표시</translation>
</message>
<message>
<source>Preferences</source>
@@ -8051,6 +8059,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>윈도 크기(바이트)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[캡처 파일 없음]</translation>
</message>
diff --git a/ui/qt/wireshark_main_window_slots.cpp b/ui/qt/wireshark_main_window_slots.cpp
index 74943ad..a348bd4 100644
--- a/ui/qt/wireshark_main_window_slots.cpp
+++ b/ui/qt/wireshark_main_window_slots.cpp
@@ -2235,7 +2235,7 @@ void WiresharkMainWindow::editTimeShift()
connect(this, SIGNAL(setCaptureFile(capture_file*)),
ts_dialog, SLOT(setCaptureFile(capture_file*)));
- connect(ts_dialog, SIGNAL(timeShifted()), packet_list_, SLOT(applyTimeShift()));
+ connect(ts_dialog, &TimeShiftDialog::timeShifted, packet_list_, &PacketList::applyTimeShift, Qt::QueuedConnection);
ts_dialog->setWindowModality(Qt::ApplicationModal);
ts_dialog->setAttribute(Qt::WA_DeleteOnClose);
diff --git a/ui/qt/wireshark_pl.ts b/ui/qt/wireshark_pl.ts
index 7569259..65abbd7 100644
--- a/ui/qt/wireshark_pl.ts
+++ b/ui/qt/wireshark_pl.ts
@@ -21,15 +21,15 @@
</message>
<message>
<source>&lt;span size=\&quot;x-large\&quot; weight=\&quot;bold\&quot;&gt;Network Protocol Analyzer&lt;/span&gt;</source>
- <translation>&lt;span size=\&quot;x-large\&quot; weight=\&quot;bold\&quot;&gt;Analizator Protokołów&lt;/span&gt;</translation>
+ <translation>&lt;span size=\&quot;x-large\&quot; weight=\&quot;bold\&quot;&gt;Analizator protokołów sieciowych&lt;/span&gt;</translation>
</message>
<message>
<source>Copy the version information to the clipboard</source>
- <translation type="unfinished"></translation>
+ <translation>Skopiuj informację o wersji do schowka</translation>
</message>
<message>
<source>Copy to Clipboard</source>
- <translation type="unfinished"></translation>
+ <translation>Skopiuj do schowka</translation>
</message>
<message>
<source>Authors</source>
@@ -93,7 +93,7 @@
</message>
<message>
<source>The directory %1 could not be created.</source>
- <translation type="unfinished"></translation>
+ <translation>Nie można utworzyć katalogu %1!</translation>
</message>
<message>
<source>Show in Finder</source>
@@ -109,10 +109,10 @@
</message>
<message numerus="yes">
<source>Copy Row(s)</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>Kopiuj wiersz</numerusform>
+ <numerusform>Kopiuj wiersze</numerusform>
+ <numerusform>Kopiuj wiersze</numerusform>
</translation>
</message>
</context>
@@ -137,7 +137,7 @@
</message>
<message>
<source>Can&apos;t assign %1 to %2.</source>
- <translation type="unfinished"></translation>
+ <translation>Nie można przypisać %1 do %2.</translation>
</message>
</context>
<context>
@@ -229,7 +229,7 @@
</message>
<message>
<source>Ctrl-M</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl-M</translation>
</message>
<message>
<source>Mark/Unmark Cell</source>
@@ -272,7 +272,7 @@
</message>
<message>
<source>LMP Subversion</source>
- <translation type="unfinished">Podwersja LMP</translation>
+ <translation>Podwersja LMP</translation>
</message>
<message>
<source>Manufacturer</source>
@@ -324,11 +324,11 @@
</message>
<message>
<source>LE ISO MTU</source>
- <translation type="unfinished"></translation>
+ <translation>LE ISO MTU</translation>
</message>
<message>
<source>LE ISO Total Packets</source>
- <translation type="unfinished"></translation>
+ <translation>Całkowita liczba pakietów LE ISO</translation>
</message>
<message>
<source>Inquiry Mode</source>
@@ -380,7 +380,7 @@
</message>
<message>
<source>Ctrl+M</source>
- <translation type="unfinished">Ctrl+M</translation>
+ <translation>Ctrl+M</translation>
</message>
<message>
<source>Mark/Unmark Cell</source>
@@ -491,7 +491,7 @@
</message>
<message>
<source>Ctrl-M</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl-M</translation>
</message>
<message>
<source>Mark/Unmark Cell</source>
@@ -724,7 +724,7 @@
<name>ByteViewText</name>
<message>
<source>Allow hover highlighting</source>
- <translation type="unfinished"></translation>
+ <translation>Zezwalaj na podświetlanie po najechaniu myszką</translation>
</message>
<message>
<source>Show bytes as hexadecimal</source>
@@ -732,27 +732,27 @@
</message>
<message>
<source>…as decimal</source>
- <translation type="unfinished"></translation>
+ <translation>…w postaci dziesiętnej</translation>
</message>
<message>
<source>…as octal</source>
- <translation type="unfinished"></translation>
+ <translation>…w postaci ósemkowej</translation>
</message>
<message>
<source>…as bits</source>
- <translation type="unfinished"></translation>
+ <translation>...jako bity</translation>
</message>
<message>
<source>Show text based on packet</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż tekst na podstawie pakietu</translation>
</message>
<message>
<source>…as ASCII</source>
- <translation type="unfinished"></translation>
+ <translation>…jako ASCII</translation>
</message>
<message>
<source>…as EBCDIC</source>
- <translation type="unfinished"></translation>
+ <translation>…jako EBCDIC</translation>
</message>
</context>
<context>
@@ -812,6 +812,32 @@
<source>Automatically detect file type</source>
<translation>Automatycznie wykryj typ pliku</translation>
</message>
+ <message numerus="yes">
+ <source>%1, error after %Ln packet(s)</source>
+ <oldsource>%1, error after %2 packets</oldsource>
+ <translation type="vanished">
+ <numerusform>%1, błąd po wczytaniu %Ln pakiet</numerusform>
+ <numerusform>%1, błąd po wczytaniu %Ln pakietów</numerusform>
+ <numerusform>%1, błąd po wczytaniu %Ln pakietów</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <source>%1, timed out at %Ln packet(s)</source>
+ <oldsource>%1, timed out at %2 packets</oldsource>
+ <translation type="vanished">
+ <numerusform>%1, przekroczenie czasu przy %Ln pakiecie</numerusform>
+ <numerusform>%1, przekroczenie czasu przy %Ln pakiecie</numerusform>
+ <numerusform>%1, przekroczenie czasu przy %Ln pakiecie</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <source>%1, %Ln packet(s)</source>
+ <translation type="vanished">
+ <numerusform>%1, %Ln pakiet</numerusform>
+ <numerusform>%1, %Ln pakiety</numerusform>
+ <numerusform>%1, %Ln pakietów</numerusform>
+ </translation>
+ </message>
<message>
<source>Prepend packets</source>
<translation>Dodaj pakiety na początku</translation>
@@ -874,11 +900,11 @@
</message>
<message>
<source>Unknown file type returned by save as dialog.</source>
- <translation type="unfinished"></translation>
+ <translation>Nieznany typ pliku zwrócony przez okno dialogowe Zapisz jako.</translation>
</message>
<message>
<source>Please report this as a Wireshark issue at https://gitlab.com/wireshark/wireshark/-/issues.</source>
- <translation type="unfinished"></translation>
+ <translation>Zgłoś to jako problem z Wireshark na stronie https://gitlab.com/wireshark/wireshark/-/issues.</translation>
</message>
<message>
<source>directory</source>
@@ -895,26 +921,26 @@
<message numerus="yes">
<source>%1, error after %Ln data record(s)</source>
<oldsource>%1, error after %Ln record(s)</oldsource>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1, błąd po wczytaniu %Ln pakietu</numerusform>
+ <numerusform>%1, błąd po wczytaniu %Ln pakietów</numerusform>
+ <numerusform>%1, błąd po wczytaniu %Ln pakietów</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1, timed out at %Ln data record(s)</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1, przekroczono limit czasu dla %Ln rekordu danych</numerusform>
+ <numerusform>%1, przekroczono limit czasu dla %Ln rekordów danych</numerusform>
+ <numerusform>%1, przekroczono limit czasu dla %Ln rekordów danych</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1, %Ln data record(s)</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1, %Ln rekord danych</numerusform>
+ <numerusform>%1, %Ln rekordy danych</numerusform>
+ <numerusform>%1, %Ln rekordów danych</numerusform>
</translation>
</message>
<message>
@@ -1002,7 +1028,7 @@
</message>
<message>
<source>Section %1</source>
- <translation type="unfinished"></translation>
+ <translation>Sekcja %1</translation>
</message>
<message>
<source>Capture</source>
@@ -1042,7 +1068,7 @@
</message>
<message>
<source>Packet size limit (snaplen)</source>
- <translation type="unfinished"></translation>
+ <translation>Limit rozmiaru pakietu (snaplen)</translation>
</message>
<message>
<source>none</source>
@@ -1102,7 +1128,7 @@
</message>
<message>
<source>Section Comment</source>
- <translation type="unfinished"></translation>
+ <translation>Komentarz sekcji</translation>
</message>
<message>
<source>Packet Comments</source>
@@ -1192,151 +1218,151 @@
<name>CaptureOptionsDialog</name>
<message>
<source>Input</source>
- <translation type="unfinished"></translation>
+ <translation>Wejście</translation>
</message>
<message>
<source>Interface</source>
- <translation type="unfinished">Interfejs</translation>
+ <translation>Interfejs</translation>
</message>
<message>
<source>Traffic</source>
- <translation type="unfinished"></translation>
+ <translation>Ruch</translation>
</message>
<message>
<source>Link-layer Header</source>
- <translation type="unfinished"></translation>
+ <translation>Nagłówek warstwy łącza</translation>
</message>
<message>
<source>Promiscuous</source>
- <translation type="unfinished"></translation>
+ <translation>Tryb mieszany</translation>
</message>
<message>
<source>Snaplen (B)</source>
- <translation type="unfinished"></translation>
+ <translation>Rozmiar przechwyconej ramki (B)</translation>
</message>
<message>
<source>Buffer (MB)</source>
- <translation type="unfinished"></translation>
+ <translation>Bufor (MB)</translation>
</message>
<message>
<source>Monitor Mode</source>
- <translation type="unfinished"></translation>
+ <translation>Tryb monitora</translation>
</message>
<message>
<source>Capture Filter</source>
- <translation type="unfinished"></translation>
+ <translation>Filtr przechwytywania</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;You probably want to enable this. Usually a network card will only capture the traffic sent to its own network address. If you want to capture all traffic that the network card can &amp;quot;see&amp;quot;, mark this option. See the FAQ for some more details of capturing packets from a switched network.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Prawdopodobnie chcesz włączyć to. Zwykle karta sieciowa może przechwytywać tylko ruch wysyłany na jej adres sieciowy. Jeśli chcesz przechwytywać cały ruch sieciowy zaznacz tą opcję. Zobacz FAQ by uzyskać więcej informacji na temat przechwytywania pakietów w sieci przełączalnej.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Prawdopodobnie chcesz włączyć to. Zwykle karta sieciowa może przechwytywać tylko ruch wysyłany na jej adres sieciowy. Jeśli chcesz przechwytywać cały ruch sieciowy zaznacz tą opcję. Zobacz FAQ by uzyskać więcej informacji na temat przechwytywania pakietów w sieci przełączalnej.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Enable promiscuous mode on all interfaces</source>
- <translation type="unfinished"></translation>
+ <translation>Włącz tryb mieszany dla wszystkich interfejsów</translation>
</message>
<message>
<source>Show and hide interfaces, add comments, and manage pipes and remote interfaces.</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż lub ukryj interfejsy, dodaj komentarze i zarządzaj potokami oraz zdalnymi interfejsami.</translation>
</message>
<message>
<source>Manage Interfaces…</source>
- <translation type="unfinished"></translation>
+ <translation>Zarządzaj interfejsami…</translation>
</message>
<message>
<source>Capture filter for selected interfaces:</source>
- <translation type="unfinished"></translation>
+ <translation>Filtr przechwytywania dla wybranych interfejsów:</translation>
</message>
<message>
<source>Compile BPFs</source>
- <translation type="unfinished"></translation>
+ <translation>Kompiluj BPF</translation>
</message>
<message>
<source>Output</source>
- <translation type="unfinished"></translation>
+ <translation>Wyjście</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Enter the file name to which captured data will be written. By default, a temporary file will be used.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Wprowadź nazwę pliku do którego przechwycone dane będą zapisane. Domyślnie będzie użyty plik tymczasowy.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Capture to a permanent file</source>
- <translation type="unfinished"></translation>
+ <translation>Przechwytuj do pliku</translation>
</message>
<message>
<source>File:</source>
- <translation type="unfinished">Plik:</translation>
+ <translation>Plik:</translation>
</message>
<message>
<source>Browse…</source>
- <translation type="unfinished">Przeglądaj…</translation>
+ <translation>Przeglądaj…</translation>
</message>
<message>
<source>Output format:</source>
- <translation type="unfinished"></translation>
+ <translation>Format wyjściowy:</translation>
</message>
<message>
<source>pcapng</source>
- <translation type="unfinished"></translation>
+ <translation>pcapng</translation>
</message>
<message>
<source>pcap</source>
- <translation type="unfinished"></translation>
+ <translation>pcap</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Instead of using a single capture file, multiple files will be created.&lt;/p&gt;&lt;p&gt;The generated file names will contain an incrementing number and the start time of the capture.&lt;/p&gt;&lt;p&gt;NOTE: If enabled, at least one of the new-file criteria MUST be selected.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Zamiast używać pojedyńczego pliku przechwytywania, wiele plików będzie tworzonych.&lt;/p&gt;&lt;p&gt;Użyte nazwy plików będą zawierać zwiększający się liczbę i czas rozpoczęcia przechwytywania.&lt;/p&gt;&lt;p&gt;UWAGA: Jeśli ta opcja jest włączona, MUSI zostać wybrane co najmniej jedno z kryteriów nowego pliku.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Create a new file automatically…</source>
- <translation type="unfinished"></translation>
+ <translation>Stwórz nowy plik automatycznie…</translation>
</message>
<message>
<source>after</source>
- <translation type="unfinished"></translation>
+ <translation>po</translation>
</message>
<message>
<source>Switch to the next file after the specified number of packets have been captured.</source>
- <translation type="unfinished"></translation>
+ <translation>Przełącz do następnego pliku po przechwyceniu określonej liczby pakietów.</translation>
</message>
<message>
<source>packets</source>
- <translation type="unfinished">pakietów</translation>
+ <translation>pakiety</translation>
</message>
<message>
<source>Switch to the next file after the file size exceeds the specified file size.</source>
- <translation type="unfinished"></translation>
+ <translation>Przełącz do następnego pliku, gdy rozmiar pliku przekroczy określony rozmiar pliku.</translation>
</message>
<message>
<source>kilobytes</source>
- <translation type="unfinished"></translation>
+ <translation>kilobajty</translation>
</message>
<message>
<source>megabytes</source>
- <translation type="unfinished"></translation>
+ <translation>megabajty</translation>
</message>
<message>
<source>gigabytes</source>
- <translation type="unfinished"></translation>
+ <translation>gigabajty</translation>
</message>
<message>
<source>Switch to the next file when the time capturing to the current file exceeds the specified time.</source>
- <translation type="unfinished"></translation>
+ <translation>Przełącz do następnego pliku, gdy czas przechwytywania do bieżącego pliku przekroczy określony czas.</translation>
</message>
<message>
<source>seconds</source>
- <translation type="unfinished"></translation>
+ <translation>sekundach</translation>
</message>
<message>
<source>minutes</source>
- <translation type="unfinished"></translation>
+ <translation>minutach</translation>
</message>
<message>
<source>hours</source>
- <translation type="unfinished"></translation>
+ <translation>godzinach</translation>
</message>
<message>
<source>when time is a multiple of</source>
- <translation type="unfinished"></translation>
+ <translation>gdy czas jest wielokrotnością</translation>
</message>
<message>
<source>Switch to the next file when the (wall clock) time is an even multiple of the specified interval.
@@ -1345,19 +1371,19 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>compression</source>
- <translation type="unfinished"></translation>
+ <translation>kompresja</translation>
</message>
<message>
<source>None</source>
- <translation type="unfinished">Brak</translation>
+ <translation>Brak</translation>
</message>
<message>
<source>gzip</source>
- <translation type="unfinished"></translation>
+ <translation>gzip</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;After capturing has switched to the next file and the given number of files has exceeded, the oldest file will be removed.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Kiedy przechwytywanie jest przekierowywane do nowego pliku i liczba plików zostanie przekroczona to skasuj najstarszy plik.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Use a ring buffer with </source>
@@ -1365,155 +1391,155 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>files</source>
- <translation type="unfinished"></translation>
+ <translation>pliki</translation>
</message>
<message>
<source>Options</source>
- <translation type="unfinished">Opcje</translation>
+ <translation>Opcje</translation>
</message>
<message>
<source>Display Options</source>
- <translation type="unfinished"></translation>
+ <translation>Opcje wyświetlania</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Using this option will show the captured packets immediately on the main screen. Please note: this will slow down capturing, so increased packet drops might appear.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Wybierając tą opcję przechwytywane pakiety będą bezpośrednio wyświetlane na ekranie. Uwaga: to może spowalniać przechwytywanie, co może skutkować możliwością zgubienia pakietów.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Update list of packets in real-time</source>
- <translation type="unfinished"></translation>
+ <translation>Aktualizuj listę pakietów czasie rzeczywistym</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This will scroll the &amp;quot;Packet List&amp;quot; automatically to the latest captured packet, when the &amp;quot;Update list of packets in real-time&amp;quot; option is used.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Ta opcja będzie powodowała automatyczne przewijanie &amp;quot;Listy Pakietów&amp;quot;, gdy opcja &amp;quot;Aktualizowania Listy Pakietów w czasie rzeczywistym&amp;quot; jest używana.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Automatically scroll during live capture</source>
- <translation type="unfinished"></translation>
+ <translation>Automatyczne przewijanie podczas przechwytywania</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Show the capture info dialog while capturing.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Pokazuj okno z informacjami przechwytywania podczas przechwytywania.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Show capture information during live capture</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż informacje o przechwytywaniu podczas trwającego przechwytywania</translation>
</message>
<message>
<source>Name Resolution</source>
- <translation type="unfinished"></translation>
+ <translation>Rozwiązywanie nazw</translation>
</message>
<message>
<source>Perform MAC layer name resolution while capturing.</source>
- <translation type="unfinished"></translation>
+ <translation>Rozwiązuj nazwy MAC podczas przechwytywania.</translation>
</message>
<message>
<source>Resolve MAC addresses</source>
- <translation type="unfinished"></translation>
+ <translation>Rozwiązuj adresy MAC</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Perform network layer name resolution while capturing.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Rozwiązuj nazwy sieciowe podczas przechwytywanie.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Resolve network names</source>
- <translation type="unfinished"></translation>
+ <translation>Rozwiązuj nazwy sieciowe</translation>
</message>
<message>
<source>Perform transport layer name resolution while capturing.</source>
- <translation type="unfinished"></translation>
+ <translation>Podczas przechwytywania wykonuj rozwiązywanie nazw warstwy transportowej.</translation>
</message>
<message>
<source>Resolve transport names</source>
- <translation type="unfinished"></translation>
+ <translation>Rozwiązuj nazwy warstwy transportowej</translation>
</message>
<message>
<source>Stop capture automatically after…</source>
- <translation type="unfinished"></translation>
+ <translation>Zatrzymaj przechwytywanie automatycznie po…</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Stop capturing after the specified number of packets have been captured.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Zatrzymaj przechwytywanie po przekroczeniu ustalonej liczby pakietów do przechwycenia.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Stop capturing after the specified number of packets have been captured.</source>
- <translation type="unfinished"></translation>
+ <translation>Zatrzymaj przechwytywanie po przekroczeniu ustalonej liczby pakietów do przechwycenia.</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Stop capturing after the specified number of files have been created.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Zatrzymaj przechwytywanie po stworzeniu określonej liczby plików.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Stop capturing after the specified amount of data has been captured.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Zatrzymaj przechwytywanie po przekroczeniu ustalonego rozmiaru danych.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Stop capturing after the specified amount of data has been captured.</source>
- <translation type="unfinished"></translation>
+ <translation>Zatrzymaj przechwytywanie po przekroczeniu ustalonego rozmiaru danych.</translation>
</message>
<message>
<source>Stop capturing after the specified amount of time has passed.</source>
- <translation type="unfinished"></translation>
+ <translation>Zatrzymaj przechwytywanie po upływie ustalonego czasu.</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Optionally specify a temporary directory for unnamed capture files.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Opcjonalnie, wybierz katalog tymczasowy dla nienazwanych plików przechwytywania.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Directory for temporary files</source>
- <translation type="unfinished"></translation>
+ <translation>Katalog plików tymczasowych</translation>
</message>
<message>
<source>Capture Options</source>
- <translation type="unfinished">Opcje przechytywania</translation>
+ <translation>Opcje przechwytywania</translation>
</message>
<message>
<source>Start</source>
- <translation type="unfinished">Start</translation>
+ <translation>Rozpocznij</translation>
</message>
<message>
<source>Leave blank to use a temporary file</source>
- <translation type="unfinished"></translation>
+ <translation>Pozostaw puste by użyć pliku tymczasowego</translation>
</message>
<message>
<source>Specify a Capture File</source>
- <translation type="unfinished"></translation>
+ <translation>Wybierz plik przechwytywania</translation>
</message>
<message>
<source>Specify temporary directory</source>
- <translation type="unfinished"></translation>
+ <translation>Wybierz katalog tymczasowy</translation>
</message>
<message>
<source>%1: %2</source>
- <translation type="unfinished">%1: %2</translation>
+ <translation>%1: %2</translation>
</message>
<message>
<source>Addresses</source>
- <translation type="unfinished"></translation>
+ <translation>Adresy</translation>
</message>
<message>
<source>Address</source>
- <translation type="unfinished">Adres</translation>
+ <translation>Adres</translation>
</message>
<message>
<source>no addresses</source>
- <translation type="unfinished"></translation>
+ <translation>brak adresu</translation>
</message>
<message>
<source>Error</source>
- <translation type="unfinished"></translation>
+ <translation>Błąd</translation>
</message>
<message>
<source>Multiple files: Requested filesize too large. The filesize cannot be greater than 2 GiB.</source>
- <translation type="unfinished"></translation>
+ <translation>Wiele plików: Żądana wielkość pliku jest zbyt duża. Wielkość pliku nie może być większa niż 2 GiB.</translation>
</message>
<message>
<source>Multiple files: No capture file name given. You must specify a filename if you want to use multiple files.</source>
- <translation type="unfinished"></translation>
+ <translation>Wiele plików: Nie wprowadzono nazwy pliku. Musisz wprowadzić nazwę pliku jeśli zamierzasz używać wielu plików.</translation>
</message>
<message>
<source>Multiple files: No file limit given. You must specify a file size, interval, or number of packets for each file.</source>
- <translation type="unfinished"></translation>
+ <translation>Wiele plików: bez limitu plików. Dla każdego pliku należy określić rozmiar pliku, interwał lub liczbę pakietów.</translation>
</message>
</context>
<context>
@@ -1552,7 +1578,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Interval between updates (ms)</source>
- <translation type="unfinished"></translation>
+ <translation>Odstęp między aktualizacjami (ms)</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;How often the capture notifies the GUI of new packets. Affects how often the GUI updates and the granularity of timers.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
@@ -1642,11 +1668,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Import…</source>
- <translation type="unfinished"></translation>
+ <translation>Importuj...</translation>
</message>
<message>
<source>Export…</source>
- <translation type="unfinished"></translation>
+ <translation>Eksportuj...</translation>
</message>
<message>
<source>Copy coloring rules from another profile.</source>
@@ -1673,7 +1699,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>ColoringRulesModel</name>
<message>
<source>New coloring rule</source>
- <translation type="unfinished"></translation>
+ <translation>Nowa reguła kolorowania</translation>
</message>
<message>
<source>Unable to save coloring rules: %1</source>
@@ -1716,7 +1742,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Resolve Names:</source>
- <translation type="unfinished"></translation>
+ <translation>Rozwiązuj nazwy:</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;p&gt;Show human-readable strings instead of raw values for fields. Only applicable to custom columns with fields that have value strings.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
@@ -1739,27 +1765,27 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>ColumnListModel</name>
<message>
<source>Displayed</source>
- <translation type="unfinished">Wyświetlane</translation>
+ <translation>Wyświetlane</translation>
</message>
<message>
<source>Title</source>
- <translation type="unfinished"></translation>
+ <translation>Tytuł</translation>
</message>
<message>
<source>Type</source>
- <translation type="unfinished"></translation>
+ <translation>Typ</translation>
</message>
<message>
<source>Fields</source>
- <translation type="unfinished"></translation>
+ <translation>Pola</translation>
</message>
<message>
<source>Field Occurrence</source>
- <translation type="unfinished"></translation>
+ <translation>Wystąpienie pola</translation>
</message>
<message>
<source>Resolved</source>
- <translation type="unfinished"></translation>
+ <translation>Rozwiązane</translation>
</message>
<message>
<source>&lt;html&gt;Show human-readable strings instead of raw values for fields. Only applicable to custom columns with fields that have value strings.&lt;/html&gt;</source>
@@ -1767,7 +1793,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>New Column</source>
- <translation type="unfinished"></translation>
+ <translation>Nowa kolumna</translation>
</message>
</context>
<context>
@@ -1778,19 +1804,19 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Add a new column</source>
- <translation type="unfinished"></translation>
+ <translation>Dodaj nową kolumnę</translation>
</message>
<message>
<source>Delete selected column</source>
- <translation type="unfinished"></translation>
+ <translation>Usuń wybraną kolumnę</translation>
</message>
<message>
<source>Show displayed columns only</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż tylko wyświetlane kolumny</translation>
</message>
<message>
<source>Reset all changes</source>
- <translation type="unfinished"></translation>
+ <translation>Zresetuj wszystkie zmiany</translation>
</message>
</context>
<context>
@@ -1812,47 +1838,47 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>ConversationDataModel</name>
<message>
<source>Address A</source>
- <translation type="unfinished"></translation>
+ <translation>Adres A</translation>
</message>
<message>
<source>Port A</source>
- <translation type="unfinished"></translation>
+ <translation>Port A</translation>
</message>
<message>
<source>Address B</source>
- <translation type="unfinished"></translation>
+ <translation>Adres B</translation>
</message>
<message>
<source>Port B</source>
- <translation type="unfinished"></translation>
+ <translation>Port B</translation>
</message>
<message>
<source>Packets</source>
- <translation type="unfinished">Pakiety</translation>
+ <translation>Pakiety</translation>
</message>
<message>
<source>Bytes</source>
- <translation type="unfinished"></translation>
+ <translation>Bajty</translation>
</message>
<message>
<source>Stream ID</source>
- <translation type="unfinished"></translation>
+ <translation>Identyfikator strumienia</translation>
</message>
<message>
<source>Packets A </source>
- <translation type="unfinished"></translation>
+ <translation>Pakiety A</translation>
</message>
<message>
<source>Bytes A </source>
- <translation type="unfinished"></translation>
+ <translation>Bajty A</translation>
</message>
<message>
<source>Packets B </source>
- <translation type="unfinished"></translation>
+ <translation>Pakiety B</translation>
</message>
<message>
<source>Bytes B </source>
- <translation type="unfinished"></translation>
+ <translation>Bajty B</translation>
</message>
<message>
<source>Abs Start</source>
@@ -1864,30 +1890,30 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Duration</source>
- <translation type="unfinished">Czas trwania</translation>
+ <translation>Czas trwania</translation>
</message>
<message>
<source>Bits/s A </source>
- <translation type="unfinished"></translation>
+ <translation>Bitów/sek. A</translation>
</message>
<message>
<source>Bits/s B </source>
- <translation type="unfinished"></translation>
+ <translation>Bitów/sek. B</translation>
</message>
<message>
<source>Total Packets</source>
- <translation type="unfinished"></translation>
+ <translation>Całkowita liczba pakietów</translation>
</message>
<message>
<source>Percent Filtered</source>
- <translation type="unfinished"></translation>
+ <translation>Filtrowane procentowo</translation>
</message>
</context>
<context>
<name>ConversationDialog</name>
<message>
<source>Follow Stream…</source>
- <translation type="unfinished"></translation>
+ <translation>Podążaj za strumieniem...</translation>
</message>
<message>
<source>Follow a TCP or UDP stream.</source>
@@ -1895,7 +1921,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Graph…</source>
- <translation type="unfinished"></translation>
+ <translation>Wykres</translation>
</message>
<message>
<source>Graph a TCP conversation.</source>
@@ -1917,15 +1943,15 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>CopyFromProfileButton</name>
<message>
<source>Copy from</source>
- <translation type="unfinished">Kopiuj z</translation>
+ <translation>Kopiuj z</translation>
</message>
<message>
<source>Copy entries from another profile.</source>
- <translation type="unfinished">Kopiuj z innego profilu.</translation>
+ <translation>Kopiuj z innego profilu.</translation>
</message>
<message>
<source>System default</source>
- <translation type="unfinished"></translation>
+ <translation>Domyślne ustawienie systemowe</translation>
</message>
</context>
<context>
@@ -1943,15 +1969,15 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>CredentialsModel</name>
<message>
<source>Click to select the packet</source>
- <translation type="unfinished"></translation>
+ <translation>Kliknij by wybrać pakiet</translation>
</message>
<message>
<source>Click to select the packet with username</source>
- <translation type="unfinished"></translation>
+ <translation>Kliknij, aby wybrać pakiet z nazwą użytkownika</translation>
</message>
<message>
<source>Username not available</source>
- <translation type="unfinished"></translation>
+ <translation>Nazwa użytkownika jest nie dostępna</translation>
</message>
<message>
<source>Packet No.</source>
@@ -1959,15 +1985,15 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Protocol</source>
- <translation type="unfinished">Protokół</translation>
+ <translation>Protokół</translation>
</message>
<message>
<source>Username</source>
- <translation type="unfinished"></translation>
+ <translation>Nazwa użytkownika</translation>
</message>
<message>
<source>Additional Info</source>
- <translation type="unfinished"></translation>
+ <translation>Dodatkowe informacje</translation>
</message>
</context>
<context>
@@ -1982,15 +2008,23 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>…as Hex Dump</source>
- <translation type="unfinished"></translation>
+ <translation>…jako Hex Dump</translation>
</message>
<message>
<source>Copy packet bytes as a hex dump.</source>
<translation>Kopiuj bajty pakietu jako Hex.</translation>
</message>
<message>
+ <source>…as Printable Text</source>
+ <translation>…drukowalny tekst</translation>
+ </message>
+ <message>
+ <source>Copy only the printable text in the packet.</source>
+ <translation>Kopiuj tylko drukowalny tekst z pakietu.</translation>
+ </message>
+ <message>
<source>…as MIME Data</source>
- <translation type="unfinished"></translation>
+ <translation>…jako dane MIME</translation>
</message>
<message>
<source>…as C String</source>
@@ -2002,7 +2036,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>…as a Hex Stream</source>
- <translation type="unfinished"></translation>
+ <translation>…jako strumień Hex</translation>
</message>
<message>
<source>Copy packet bytes as a stream of hex.</source>
@@ -2041,7 +2075,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Decode As…</source>
- <translation type="unfinished"></translation>
+ <translation>Dekoduj jako...</translation>
</message>
<message>
<source>Open </source>
@@ -2115,11 +2149,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>DisplayFilterCombo</name>
<message>
<source>Display filter selector</source>
- <translation type="unfinished"></translation>
+ <translation>Wyświetl selektor filtrów</translation>
</message>
<message>
<source>Select from previously used filters.</source>
- <translation type="unfinished"></translation>
+ <translation>Wybierz z uprzednio używanych filtrów.</translation>
</message>
</context>
<context>
@@ -2134,7 +2168,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Display Filter Expression…</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Wyrażenie filtru wyświetlania...</translation>
</message>
<message>
<source>Apply a display filter %1 &lt;%2/&gt;</source>
@@ -2146,11 +2180,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Clear display filter</source>
- <translation type="unfinished"></translation>
+ <translation>Wyczyść filtr wyświetlania</translation>
</message>
<message>
<source>Apply display filter</source>
- <translation type="unfinished"></translation>
+ <translation>Zastosuj filtr wyświetlania</translation>
</message>
<message>
<source>Left align buttons</source>
@@ -2162,11 +2196,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Current filter: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Bieżący filtr: %1</translation>
</message>
<message>
<source>Invalid filter: </source>
- <translation type="unfinished">Błędny filtr: </translation>
+ <translation>Błędny filtr: </translation>
</message>
<message>
<source>Save this filter</source>
@@ -2229,11 +2263,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Any</source>
- <translation type="unfinished">Każdy</translation>
+ <translation>Każdy</translation>
</message>
<message>
<source>All</source>
- <translation type="unfinished"></translation>
+ <translation>Wszystkie</translation>
</message>
<message>
<source>Match against this value.</source>
@@ -2310,7 +2344,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>DissectorTablesProxyModel</name>
<message>
<source>Table Type</source>
- <translation type="unfinished"></translation>
+ <translation>Typ Tabeli</translation>
</message>
<message>
<source>String</source>
@@ -2357,7 +2391,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>in</source>
- <translation type="unfinished"></translation>
+ <translation>w</translation>
</message>
<message>
<source>Enable All</source>
@@ -2377,27 +2411,27 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Everywhere</source>
- <translation type="unfinished"></translation>
+ <translation>Wszędzie</translation>
</message>
<message>
<source>Only Protocols</source>
- <translation type="unfinished"></translation>
+ <translation>Tylko protokoły</translation>
</message>
<message>
<source>Only Description</source>
- <translation type="unfinished"></translation>
+ <translation>Tylko opis</translation>
</message>
<message>
<source>Only enabled protocols</source>
- <translation type="unfinished"></translation>
+ <translation>Tylko włączone protokoły</translation>
</message>
<message>
<source>Only disabled protocols</source>
- <translation type="unfinished"></translation>
+ <translation>Tylko wyłączone protokoły</translation>
</message>
<message>
<source>any protocol</source>
- <translation type="unfinished"></translation>
+ <translation>dowolny protokół</translation>
</message>
<message>
<source>non-heuristic protocols</source>
@@ -2423,67 +2457,67 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>EndpointDataModel</name>
<message>
<source>Address</source>
- <translation type="unfinished">Adres</translation>
+ <translation>Adres</translation>
</message>
<message>
<source>Port</source>
- <translation type="unfinished"></translation>
+ <translation>Port</translation>
</message>
<message>
<source>Packets</source>
- <translation type="unfinished">Pakiety</translation>
+ <translation>Pakiety</translation>
</message>
<message>
<source>Bytes</source>
- <translation type="unfinished"></translation>
+ <translation>Bajty</translation>
</message>
<message>
<source>Tx Packets</source>
- <translation type="unfinished"></translation>
+ <translation>Wysłane pakiety</translation>
</message>
<message>
<source>Tx Bytes</source>
- <translation type="unfinished"></translation>
+ <translation>Bajty Tx</translation>
</message>
<message>
<source>Rx Packets</source>
- <translation type="unfinished"></translation>
+ <translation>Pakiety Rx</translation>
</message>
<message>
<source>Rx Bytes</source>
- <translation type="unfinished"></translation>
+ <translation>Bajty Rx</translation>
</message>
<message>
<source>Country</source>
- <translation type="unfinished"></translation>
+ <translation>Kraj</translation>
</message>
<message>
<source>City</source>
- <translation type="unfinished"></translation>
+ <translation>Miasto</translation>
</message>
<message>
<source>Latitude</source>
- <translation type="unfinished"></translation>
+ <translation>Szerokość geograficzna</translation>
</message>
<message>
<source>Longitude</source>
- <translation type="unfinished"></translation>
+ <translation>Długość geograficzna</translation>
</message>
<message>
<source>AS Number</source>
- <translation type="unfinished"></translation>
+ <translation>Numer AS</translation>
</message>
<message>
<source>AS Organization</source>
- <translation type="unfinished"></translation>
+ <translation>Organizacja AS</translation>
</message>
<message>
<source>Total Packets</source>
- <translation type="unfinished"></translation>
+ <translation>Całkowita liczba pakietów</translation>
</message>
<message>
<source>Percent Filtered</source>
- <translation type="unfinished"></translation>
+ <translation>Filtrowane procentowo</translation>
</message>
</context>
<context>
@@ -2498,11 +2532,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Open in browser</source>
- <translation type="unfinished"></translation>
+ <translation>Otwórz w przeglądarce</translation>
</message>
<message>
<source>Save As…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz jako…</translation>
</message>
<message>
<source>Map file error</source>
@@ -2521,35 +2555,35 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>EthernetAddressModel</name>
<message>
<source>Type</source>
- <translation type="unfinished"></translation>
+ <translation>Typ</translation>
</message>
<message>
<source>Name</source>
- <translation type="unfinished"></translation>
+ <translation>Nazwa</translation>
</message>
<message>
<source>Address</source>
- <translation type="unfinished">Adres</translation>
+ <translation>Adres</translation>
</message>
<message>
<source>All entries</source>
- <translation type="unfinished"></translation>
+ <translation>Wszystkie wpisy</translation>
</message>
<message>
<source>Hosts</source>
- <translation type="unfinished"></translation>
+ <translation>Hosty</translation>
</message>
<message>
<source>Ethernet Addresses</source>
- <translation type="unfinished">Adresy Ethernet</translation>
+ <translation>Adresy Ethernet</translation>
</message>
<message>
<source>Ethernet Manufacturers</source>
- <translation type="unfinished">Producenci Ethernet</translation>
+ <translation>Producenci Ethernet</translation>
</message>
<message>
<source>Ethernet Well-Known Addresses</source>
- <translation type="unfinished">Dobrze znane adresy Ethernet</translation>
+ <translation>Powszechnie znane adresy Ethernet</translation>
</message>
</context>
<context>
@@ -2728,7 +2762,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Content Type:</source>
- <translation type="unfinished"></translation>
+ <translation>Typ zawartości</translation>
</message>
<message>
<source>Searching for objects</source>
@@ -2744,7 +2778,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Preview</source>
- <translation type="unfinished"></translation>
+ <translation>Podgląd</translation>
</message>
<message>
<source>All Content-Types</source>
@@ -2760,11 +2794,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Save Object As…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz obiekt jako...</translation>
</message>
<message>
<source>Save All Objects In…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz wszystkie obiekty w...</translation>
</message>
</context>
<context>
@@ -2805,14 +2839,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>ExtArgSelector</name>
<message>
<source>Reload data</source>
- <translation type="unfinished"></translation>
+ <translation>Załaduj ponownie dane</translation>
</message>
</context>
<context>
<name>ExtcapArgumentFileSelection</name>
<message>
<source>Clear</source>
- <translation type="unfinished"></translation>
+ <translation>Wyczyść</translation>
</message>
<message>
<source>All Files (</source>
@@ -2824,7 +2858,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Select File</source>
- <translation type="unfinished"></translation>
+ <translation>Wybierz plik</translation>
</message>
</context>
<context>
@@ -2840,15 +2874,15 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Save</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz</translation>
</message>
<message>
<source>Default</source>
- <translation type="unfinished">Domyślnie</translation>
+ <translation>Domyślnie</translation>
</message>
<message>
<source>Restore default value of the item</source>
- <translation type="unfinished"></translation>
+ <translation>Przywróć domyślną wartość elementu</translation>
</message>
<message>
<source>Extcap Help cannot be found</source>
@@ -2860,7 +2894,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Save parameter(s) on capture start</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz parametry przy starcie przechwytywania</translation>
</message>
</context>
<context>
@@ -2899,10 +2933,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<message numerus="yes">
<source>%Ln File(s) in Set</source>
<oldsource>%1 File%2 in Set</oldsource>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%Ln plik w zbiorze</numerusform>
+ <numerusform>%Ln pliki w zbiorze</numerusform>
+ <numerusform>%Ln plików w zbiorze</numerusform>
</translation>
</message>
</context>
@@ -2933,27 +2967,27 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>FilterAction</name>
<message>
<source>Selected</source>
- <translation type="unfinished">Wybrany</translation>
+ <translation>Wybrane</translation>
</message>
<message>
<source>Not Selected</source>
- <translation type="unfinished">Nie wybrany</translation>
+ <translation>Nie wybrane</translation>
</message>
<message>
<source>…and Selected</source>
- <translation type="unfinished"></translation>
+ <translation>…i wybrane</translation>
</message>
<message>
<source>…or Selected</source>
- <translation type="unfinished"></translation>
+ <translation>…lub wybrane</translation>
</message>
<message>
<source>…and not Selected</source>
- <translation type="unfinished"></translation>
+ <translation>…i nie wybrane</translation>
</message>
<message>
<source>…or not Selected</source>
- <translation type="unfinished"></translation>
+ <translation>…lub nie wybrane</translation>
</message>
</context>
<context>
@@ -2986,7 +3020,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Open </source>
- <translation type="unfinished">Otwórz</translation>
+ <translation>Otwórz</translation>
</message>
<message>
<source>New capture filter</source>
@@ -3027,7 +3061,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Comment:</source>
- <translation type="unfinished"></translation>
+ <translation>Komentarz</translation>
</message>
<message>
<source>Enter a comment for the filter button</source>
@@ -3035,15 +3069,15 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Missing label.</source>
- <translation type="unfinished"></translation>
+ <translation>Brak etykiety.</translation>
</message>
<message>
<source>Missing filter expression.</source>
- <translation type="unfinished"></translation>
+ <translation>Brak wyrażenia filtru.</translation>
</message>
<message>
<source>Invalid filter expression.</source>
- <translation type="unfinished"></translation>
+ <translation>Błędne wyrażenie filtru.</translation>
</message>
</context>
<context>
@@ -3054,26 +3088,26 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Edytuj</translation>
</message>
<message>
<source>Disable</source>
- <translation type="unfinished"></translation>
+ <translation>Wyłącz</translation>
</message>
<message>
<source>Remove</source>
- <translation type="unfinished"></translation>
+ <translation>Usuń</translation>
</message>
</context>
<context>
<name>FilterListModel</name>
<message>
<source>Filter Name</source>
- <translation type="unfinished"></translation>
+ <translation>Nazwa filtra</translation>
</message>
<message>
<source>Filter Expression</source>
- <translation type="unfinished"></translation>
+ <translation>Wyrażenie filtru</translation>
</message>
</context>
<context>
@@ -3178,7 +3212,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Global configuration</source>
- <translation type="unfinished"></translation>
+ <translation>Konfiguracja globalna</translation>
</message>
<message>
<source>dfilters, preferences, ethers, …</source>
@@ -3206,7 +3240,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Personal Plugins</source>
- <translation type="unfinished"></translation>
+ <translation>Wtyczki osobiste</translation>
</message>
<message>
<source>binary plugins</source>
@@ -3214,19 +3248,19 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Global Plugins</source>
- <translation type="unfinished"></translation>
+ <translation>Globalne wtyczki</translation>
</message>
<message>
<source>Personal Lua Plugins</source>
- <translation type="unfinished"></translation>
+ <translation>Osobiste wtyczki Lua</translation>
</message>
<message>
<source>Global Lua Plugins</source>
- <translation type="unfinished"></translation>
+ <translation>Globalne wtyczki Lua</translation>
</message>
<message>
<source>Lua scripts</source>
- <translation type="unfinished"></translation>
+ <translation>Skrypty Lua</translation>
</message>
<message>
<source>Personal Extcap path</source>
@@ -3250,7 +3284,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>MIB/PIB path</source>
- <translation type="unfinished"></translation>
+ <translation>ścieżka MIB/PIB</translation>
</message>
<message>
<source>SMI MIB/PIB search path</source>
@@ -3258,19 +3292,19 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>macOS Extras</source>
- <translation type="unfinished"></translation>
+ <translation>Dodatki do macOS</translation>
</message>
<message>
<source>Extra macOS packages</source>
- <translation type="unfinished"></translation>
+ <translation>Dodatkowe pakiety macOS</translation>
</message>
<message>
<source>Name</source>
- <translation type="unfinished"></translation>
+ <translation>Nazwa</translation>
</message>
<message>
<source>Location</source>
- <translation type="unfinished"></translation>
+ <translation>Lokalizacja</translation>
</message>
<message>
<source>Typical Files</source>
@@ -3281,7 +3315,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>FollowStreamAction</name>
<message>
<source>%1 Stream</source>
- <translation type="unfinished"></translation>
+ <translation>%1 Strumień</translation>
</message>
</context>
<context>
@@ -3295,6 +3329,22 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<source>Print</source>
<translation>Drukuj</translation>
</message>
+ <message numerus="yes">
+ <source>%Ln client pkt(s), </source>
+ <translation type="vanished">
+ <numerusform>%Ln pakiet klienta,</numerusform>
+ <numerusform>%Ln pakiety klienta,</numerusform>
+ <numerusform>%Ln pakietów klienta,</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <source>%Ln server pkt(s), </source>
+ <translation type="vanished">
+ <numerusform>%Ln pakiet serwera,</numerusform>
+ <numerusform>%Ln pakiety serwera,</numerusform>
+ <numerusform>%Ln pakietów serwera,</numerusform>
+ </translation>
+ </message>
<message>
<source>ASCII</source>
<translation>ASCII</translation>
@@ -3325,7 +3375,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Save as…</source>
- <translation type="unfinished">Zapisz jako…</translation>
+ <translation>Zapisz jako…</translation>
</message>
<message>
<source>Back</source>
@@ -3337,26 +3387,26 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message numerus="yes">
<source>%Ln &lt;span style=&quot;color: %1; background-color:%2&quot;&gt;client&lt;/span&gt; pkt(s), </source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%Ln pakiet &lt;span style=&quot;color: %1; background-color:%2&quot;&gt;klienta&lt;/span&gt;, </numerusform>
+ <numerusform>%Ln pakiety &lt;span style=&quot;color: %1; background-color:%2&quot;&gt;klienta&lt;/span&gt;, </numerusform>
+ <numerusform>%Ln pakietów &lt;span style=&quot;color: %1; background-color:%2&quot;&gt;klienta&lt;/span&gt;, </numerusform>
</translation>
</message>
<message numerus="yes">
<source>%Ln &lt;span style=&quot;color: %1; background-color:%2&quot;&gt;server&lt;/span&gt; pkt(s), </source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%Ln pakiet &lt;span style=&quot;color: %1; background-color:%2&quot;&gt;serwera&lt;/span&gt;,</numerusform>
+ <numerusform>%Ln pakiety &lt;span style=&quot;color: %1; background-color:%2&quot;&gt;serwera&lt;/span&gt;, </numerusform>
+ <numerusform>%Ln pakietów &lt;span style=&quot;color: %1; background-color:%2&quot;&gt;serwera&lt;/span&gt;, </numerusform>
</translation>
</message>
<message numerus="yes">
<source>%Ln turn(s).</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%Ln próba.</numerusform>
+ <numerusform>%Ln próby.</numerusform>
+ <numerusform>%Ln prób.</numerusform>
</translation>
</message>
<message>
@@ -3389,7 +3439,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>%1 stream not found on the selected packet.</source>
- <translation type="unfinished"></translation>
+ <translation>Nie znaleziono strumienia %1 w wybranym pakiecie.</translation>
</message>
<message>
<source>Entire conversation (%1)</source>
@@ -3405,7 +3455,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Save Stream Content As…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz zawartość strumienia jako...</translation>
</message>
<message>
<source>[Stream output truncated]</source>
@@ -3413,10 +3463,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message numerus="yes">
<source>%Ln total stream(s).</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%Ln strumień.</numerusform>
+ <numerusform>%Ln strumienie.</numerusform>
+ <numerusform>%Ln strumieni.</numerusform>
</translation>
</message>
<message numerus="yes">
@@ -3442,7 +3492,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<message>
<source>Show data as</source>
<oldsource>Show and save data as</oldsource>
- <translation type="unfinished"></translation>
+ <translation>Pokazuj dane jako</translation>
</message>
<message>
<source>Stream</source>
@@ -3481,7 +3531,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>System Default</source>
- <translation type="unfinished"></translation>
+ <translation>Domyślne ustawienie systemowe</translation>
</message>
<message>
<source>Solid</source>
@@ -3501,11 +3551,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Style:</source>
- <translation type="unfinished"></translation>
+ <translation>Styl:</translation>
</message>
<message>
<source>Gradient</source>
- <translation type="unfinished"></translation>
+ <translation>Gradient</translation>
</message>
<message>
<source>Sample inactive selected item</source>
@@ -3530,7 +3580,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<message>
<source>Sample warning filter</source>
<oldsource>Sample deprecated filter</oldsource>
- <translation type="unfinished"></translation>
+ <translation>Przykładowy filtr z ostrzeżeniem</translation>
</message>
<message>
<source>Example GIF query packets have jumbo window sizes</source>
@@ -3687,7 +3737,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Enter code</source>
- <translation type="unfinished"></translation>
+ <translation>Wprowadź kod</translation>
</message>
<message>
<source>Evaluate</source>
@@ -3695,7 +3745,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Clear</source>
- <translation type="unfinished"></translation>
+ <translation>Wyczyść</translation>
</message>
<message>
<source>Use %1 to evaluate.</source>
@@ -3804,15 +3854,15 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Clear all graphs.</source>
- <translation type="unfinished"></translation>
+ <translation>Wyczyść wszystkie wykresy.</translation>
</message>
<message>
<source>Move this graph upwards.</source>
- <translation type="unfinished"></translation>
+ <translation>Przesuń ten wykres w górę.</translation>
</message>
<message>
<source>Move this graph downwards.</source>
- <translation type="unfinished"></translation>
+ <translation>Przesuń ten wykres w dół.</translation>
</message>
<message>
<source>Mouse</source>
@@ -3848,11 +3898,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Automatic update</source>
- <translation type="unfinished"></translation>
+ <translation>Automatyczna aktualizacja</translation>
</message>
<message>
<source>Enable legend</source>
- <translation type="unfinished"></translation>
+ <translation>Włącz legendę</translation>
</message>
<message>
<source>Reset</source>
@@ -4057,11 +4107,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>I/O Graphs</source>
- <translation type="unfinished"></translation>
+ <translation>Wykresy I/O</translation>
</message>
<message>
<source>Save As…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz jako...</translation>
</message>
<message>
<source>Copy</source>
@@ -4069,7 +4119,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Copy graphs from another profile.</source>
- <translation type="unfinished"></translation>
+ <translation>Skopiuj wykresy z innego profilu.</translation>
</message>
<message>
<source>1 ms</source>
@@ -4077,11 +4127,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>2 ms</source>
- <translation type="unfinished">100 ms {2 ?}</translation>
+ <translation>2 ms</translation>
</message>
<message>
<source>5 ms</source>
- <translation type="unfinished">100 ms {5 ?}</translation>
+ <translation>5 ms</translation>
</message>
<message>
<source>10 ms</source>
@@ -4089,11 +4139,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>20 ms</source>
- <translation type="unfinished">100 ms {20 ?}</translation>
+ <translation>20 ms</translation>
</message>
<message>
<source>50 ms</source>
- <translation type="unfinished">100 ms {50 ?}</translation>
+ <translation>50 ms</translation>
</message>
<message>
<source>100 ms</source>
@@ -4101,47 +4151,47 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>200 ms</source>
- <translation type="unfinished">100 ms {200 ?}</translation>
+ <translation>200 ms</translation>
</message>
<message>
<source>500 ms</source>
- <translation type="unfinished">100 ms {500 ?}</translation>
+ <translation>500 ms</translation>
</message>
<message>
<source>2 sec</source>
- <translation type="unfinished">10 s {2 ?}</translation>
+ <translation>2 sek.</translation>
</message>
<message>
<source>5 sec</source>
- <translation type="unfinished">10 s {5 ?}</translation>
+ <translation>5 sek.</translation>
</message>
<message>
<source>Wireshark I/O Graphs: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Wireshark wykres we./wy.: %1</translation>
</message>
<message>
<source>Filtered packets</source>
- <translation type="unfinished"></translation>
+ <translation>Filtrowane pakiety</translation>
</message>
<message>
<source>Filtered events</source>
- <translation type="unfinished"></translation>
+ <translation>Filtrowane zdarzenia</translation>
</message>
<message>
<source>All Packets</source>
- <translation type="unfinished"></translation>
+ <translation>Wszystkie pakiety</translation>
</message>
<message>
<source>TCP Errors</source>
- <translation type="unfinished"></translation>
+ <translation>Błędy TCP</translation>
</message>
<message>
<source>All Events</source>
- <translation type="unfinished"></translation>
+ <translation>Wszystkie zdarzenia</translation>
</message>
<message>
<source>Access Denied</source>
- <translation type="unfinished"></translation>
+ <translation>Brak dostępu</translation>
</message>
<message>
<source>Hover over the graph for details.</source>
@@ -4153,7 +4203,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>No events in interval</source>
- <translation type="unfinished"></translation>
+ <translation>Brak zdarzeń w danym czasie</translation>
</message>
<message>
<source>Click to select packet</source>
@@ -4165,11 +4215,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Click to select event</source>
- <translation type="unfinished"></translation>
+ <translation>Kliknij, aby wybrać zdarzenie</translation>
</message>
<message>
<source>Event</source>
- <translation type="unfinished">Event</translation>
+ <translation>Zdarzenie</translation>
</message>
<message>
<source>%1 (%2s%3).</source>
@@ -4209,7 +4259,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Save Graph As…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz wykres jako...</translation>
</message>
</context>
<context>
@@ -4384,7 +4434,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Please select an IAX2 packet.</source>
- <translation type="unfinished"></translation>
+ <translation>Wybierz pakiet IAX2.</translation>
</message>
<message>
<source> G: Go to packet, N: Next problem packet</source>
@@ -4408,7 +4458,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Save Graph As…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz wykres jako...</translation>
</message>
<message>
<source>Can&apos;t save in a file: Wrong length of captured packets.</source>
@@ -4452,11 +4502,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Saving %1…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisywanie %1...</translation>
</message>
<message>
<source>Analyzing IAX2</source>
- <translation type="unfinished"></translation>
+ <translation>Analizowanie IAX2</translation>
</message>
<message>
<source>Save forward stream CSV</source>
@@ -4540,7 +4590,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Regular Expression</source>
- <translation type="unfinished">Wyrażenie regularne</translation>
+ <translation>Wyrażenie regularne</translation>
</message>
<message>
<source>Import a file formatted according to a custom regular expression</source>
@@ -4564,7 +4614,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>How data is encoded</source>
- <translation type="unfinished"></translation>
+ <translation>Jak dane są kodowane</translation>
</message>
<message>
<source>encodingRegexExample</source>
@@ -4576,7 +4626,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>iI&lt;</source>
- <translation type="unfinished"></translation>
+ <translation>iI&lt;</translation>
</message>
<message>
<source>List of characters indicating outgoing packets</source>
@@ -4584,7 +4634,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>oO&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>oO&gt;</translation>
</message>
<message>
<source>Timestamp format:</source>
@@ -4604,11 +4654,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>IP version:</source>
- <translation type="unfinished"></translation>
+ <translation>Wersja protokołu IP:</translation>
</message>
<message>
<source>Interface name:</source>
- <translation type="unfinished"></translation>
+ <translation>Nazwa interfejsu:</translation>
</message>
<message>
<source>The name of the interface to write to the import capture file</source>
@@ -4648,7 +4698,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>%H:%M:%S.%f</source>
- <translation type="unfinished"></translation>
+ <translation>%H:%M:%S.%f</translation>
</message>
<message>
<source>timestampExampleLabel</source>
@@ -4664,35 +4714,35 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Prefix each frame with an Ethernet and IP header</source>
- <translation type="unfinished"></translation>
+ <translation>Poprzedź każdą ramkę nagłówkami Ethernet i IPv4</translation>
</message>
<message>
<source>IP</source>
- <translation type="unfinished"></translation>
+ <translation>IP</translation>
</message>
<message>
<source>Prefix each frame with an Ethernet, IP and UDP header</source>
- <translation type="unfinished"></translation>
+ <translation>Poprzedź każdą ramkę nagłówkami Ethernet, IPv4 i UDP</translation>
</message>
<message>
<source>Prefix each frame with an Ethernet, IP and TCP header</source>
- <translation type="unfinished"></translation>
+ <translation>Poprzedź każdą ramkę nagłówkami Ethernet, IPv4 i TCP</translation>
</message>
<message>
<source>Prefix each frame with an Ethernet, IP and SCTP header</source>
- <translation type="unfinished"></translation>
+ <translation>Poprzedź każdą ramkę nagłówkami Ethernet, IPv4 i SCTP</translation>
</message>
<message>
<source>Prefix each frame with an Ethernet, IP and SCTP (DATA) header</source>
- <translation type="unfinished"></translation>
+ <translation>Poprzedź każdą ramkę nagłówkami Ethernet, IPv4 i SCTP (dane)</translation>
</message>
<message>
<source>Source address:</source>
- <translation type="unfinished"></translation>
+ <translation>Adres źródłowy:</translation>
</message>
<message>
<source>Destination address:</source>
- <translation type="unfinished"></translation>
+ <translation>Adres docelowy:</translation>
</message>
<message>
<source>Dissector</source>
@@ -4700,15 +4750,15 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>The IP protocol ID for each frame</source>
- <translation type="unfinished"></translation>
+ <translation>Identyfikator protokołu IP dla każdej ramki</translation>
</message>
<message>
<source>The IP source address for each frame</source>
- <translation type="unfinished"></translation>
+ <translation>Źródłowy adres IP dla każdej ramki</translation>
</message>
<message>
<source>The IP destination address for each frame</source>
- <translation type="unfinished"></translation>
+ <translation>Docelowy adres IP dla każdej ramki</translation>
</message>
<message>
<source>The UDP, TCP or SCTP source port for each frame</source>
@@ -4792,15 +4842,15 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>The IP Version to use for the dummy IP header</source>
- <translation type="unfinished"></translation>
+ <translation>Wersja protokołu IP, która ma być używana dla pustego nagłówka IP</translation>
</message>
<message>
<source>The maximum size of the frames to write to the import capture file (max 256kiB)</source>
- <translation type="unfinished"></translation>
+ <translation>Maksymalny rozmiar ramek do zapisu w importowanym pliku (maks. 256kiB)</translation>
</message>
<message>
<source>Supported fields are data, dir, time, seqno</source>
- <translation type="unfinished"></translation>
+ <translation>Obsługiwane pola to data, dir, time, seqno</translation>
</message>
<message>
<source>Missing capturing group data (use (?</source>
@@ -4823,19 +4873,19 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>InterfaceFrame</name>
<message>
<source>Frame</source>
- <translation type="unfinished">Ramka</translation>
+ <translation>Ramka</translation>
</message>
<message>
<source>Wired</source>
- <translation type="unfinished"></translation>
+ <translation>Przewodowy</translation>
</message>
<message>
<source>AirPCAP</source>
- <translation type="unfinished"></translation>
+ <translation>AirPCAP</translation>
</message>
<message>
<source>Pipe</source>
- <translation type="unfinished"></translation>
+ <translation>Potok</translation>
</message>
<message>
<source>STDIN</source>
@@ -4843,11 +4893,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Bluetooth</source>
- <translation type="unfinished"></translation>
+ <translation>Bluetooth</translation>
</message>
<message>
<source>Wireless</source>
- <translation type="unfinished"></translation>
+ <translation>Bezprzewodowy</translation>
</message>
<message>
<source>Dial-Up</source>
@@ -4855,151 +4905,151 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>USB</source>
- <translation type="unfinished"></translation>
+ <translation>USB</translation>
</message>
<message>
<source>External Capture</source>
- <translation type="unfinished"></translation>
+ <translation>Zewnętrznie przechwytywany</translation>
</message>
<message>
<source>Virtual</source>
- <translation type="unfinished"></translation>
+ <translation>Wirtualny</translation>
</message>
<message>
<source>Remote interfaces</source>
- <translation type="unfinished"></translation>
+ <translation>Zdalne interfejsy</translation>
</message>
<message>
<source>Show hidden interfaces</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż ukryte interfejsy</translation>
</message>
<message>
<source>External capture interfaces disabled.</source>
- <translation type="unfinished"></translation>
+ <translation>Zewnętrzne interfejsy przechwytywania wyłączone.</translation>
</message>
<message>
<source>&lt;p&gt;Local interfaces are unavailable because no packet capture driver is installed.&lt;/p&gt;&lt;p&gt;You can fix this by installing &lt;a href=&quot;https://npcap.com/&quot;&gt;Npcap&lt;/a&gt;.&lt;/p&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;p&gt;Interfejsy lokalne są niedostępne, ponieważ nie zainstalowano sterownika przechwytywania pakietów.&lt;/p&gt;&lt;p&gt;Możesz to naprawić, instalując &lt;a href=&quot;https://npcap.com/&quot;&gt;Npcap&lt;/a&gt;.&lt;/p&gt;</translation>
</message>
<message>
<source>&lt;p&gt;Local interfaces are unavailable because the packet capture driver isn&apos;t loaded.&lt;/p&gt;&lt;p&gt;You can fix this by running &lt;pre&gt;net start npcap&lt;/pre&gt; if you have Npcap installed or &lt;pre&gt;net start npf&lt;/pre&gt; if you have WinPcap installed. Both commands must be run as Administrator.&lt;/p&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;p&gt;Interfejsy lokalne są niedostępne, ponieważ sterownik przechwytywania pakietów nie jest załadowany.&lt;/p&gt;&lt;p&gt;Możesz to naprawić, uruchamiając&lt;pre&gt;net start npcap&lt;/pre&gt; jeśli masz zainstalowany Npcap lub &lt;pre&gt;net start npf&lt;/pre&gt; jeśli masz zainstalowany WinPcap. Obydwa polecenia należy uruchomić jako Administrator.&lt;/p&gt;</translation>
</message>
<message>
<source>&lt;p&gt;You don&apos;t have permission to capture on local interfaces.&lt;/p&gt;&lt;p&gt;You can fix this by &lt;a href=&quot;file://%1&quot;&gt;installing ChmodBPF&lt;/a&gt;.&lt;/p&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;p&gt;Nie masz uprawnień do przechwytywania na interfejsach lokalnych. &lt;/p&gt;&lt;p&gt;Możesz to naprawić &lt;a href=&quot;file://%1&quot;&gt;instalując ChmodBPF&lt;/a&gt;.&lt;/p&gt;</translation>
</message>
<message>
<source>You don&apos;t have permission to capture on local interfaces.</source>
- <translation type="unfinished"></translation>
+ <translation>Nie masz uprawnień do przechwytywania na interfejsach lokalnych.</translation>
</message>
<message>
<source>No interfaces found.</source>
- <translation type="unfinished"></translation>
+ <translation>Nie znaleziono interfejsów.</translation>
</message>
<message>
<source>Interfaces not loaded (due to preference). Go to Capture </source>
- <translation type="unfinished"></translation>
+ <translation>Interfejsy nie zostały załadowane (ze względu na preferencje). Przejdź do Przechwytywania</translation>
</message>
<message>
<source>Start capture</source>
- <translation type="unfinished"></translation>
+ <translation>Rozpocznij przechwytywanie</translation>
</message>
<message>
<source>Hide Interface</source>
- <translation type="unfinished"></translation>
+ <translation>Ukryj interfejs</translation>
</message>
</context>
<context>
<name>InterfaceSortFilterModel</name>
<message>
<source>No interfaces to be displayed. %1 interfaces hidden.</source>
- <translation type="unfinished"></translation>
+ <translation>Brak interfejsów do wyświetlenia. %1 interfejsów ukrytych.</translation>
</message>
</context>
<context>
<name>InterfaceToolbar</name>
<message>
<source>Frame</source>
- <translation type="unfinished">Ramka</translation>
+ <translation>Ramka</translation>
</message>
<message>
<source>Select interface</source>
- <translation type="unfinished"></translation>
+ <translation>Wybrany interfejs</translation>
</message>
<message>
<source>Interface</source>
- <translation type="unfinished">Interfejs</translation>
+ <translation>Interfejs</translation>
</message>
</context>
<context>
<name>InterfaceToolbarLineEdit</name>
<message>
<source>Apply changes</source>
- <translation type="unfinished">Zastosuj zmiany</translation>
+ <translation>Zastosuj zmiany</translation>
</message>
</context>
<context>
<name>InterfaceTreeModel</name>
<message>
<source>Show</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż</translation>
</message>
<message>
<source>Friendly Name</source>
- <translation type="unfinished"></translation>
+ <translation>Przyjazna nazwa</translation>
</message>
<message>
<source>Interface Name</source>
- <translation type="unfinished"></translation>
+ <translation>Nazwa interfejsu</translation>
</message>
<message>
<source>No interfaces found.</source>
- <translation type="unfinished"></translation>
+ <translation>Nie znaleziono interfejsów.</translation>
</message>
<message>
<source>This version of Wireshark was built without packet capture support.</source>
- <translation type="unfinished"></translation>
+ <translation>Ta wersja programu Wireshark została zbudowana bez obsługi przechwytywania pakietów.</translation>
</message>
<message>
<source>Local Pipe Path</source>
- <translation type="unfinished"></translation>
+ <translation>Ścieżka lokalnego potoku</translation>
</message>
<message>
<source>Comment</source>
- <translation type="unfinished"></translation>
+ <translation>Komentarz</translation>
</message>
<message>
<source>Link-Layer Header</source>
- <translation type="unfinished"></translation>
+ <translation>Nagłówek warstwy łącza</translation>
</message>
<message>
<source>Promiscuous</source>
- <translation type="unfinished"></translation>
+ <translation>Tryb mieszany</translation>
</message>
<message>
<source>Snaplen (B)</source>
- <translation type="unfinished"></translation>
+ <translation>Rozmiar przechwyconej ramki (B)</translation>
</message>
<message>
<source>Buffer (MB)</source>
- <translation type="unfinished"></translation>
+ <translation>Bufor (MB)</translation>
</message>
<message>
<source>Monitor Mode</source>
- <translation type="unfinished"></translation>
+ <translation>Tryb monitora</translation>
</message>
<message>
<source>Capture Filter</source>
- <translation type="unfinished"></translation>
+ <translation>Filtr przechwytywania</translation>
</message>
<message>
<source>Addresses</source>
- <translation type="unfinished"></translation>
+ <translation>Adresy</translation>
</message>
<message>
<source>Address</source>
- <translation type="unfinished">Adres</translation>
+ <translation>Adres</translation>
</message>
<message>
<source>Extcap interface: %1</source>
@@ -5007,22 +5057,22 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>No addresses</source>
- <translation type="unfinished"></translation>
+ <translation>Brak adresów</translation>
</message>
<message>
<source>No capture filter</source>
- <translation type="unfinished"></translation>
+ <translation>Brak filtru przechwytywania</translation>
</message>
<message>
<source>Capture filter</source>
- <translation type="unfinished">Filtr przechwytywania</translation>
+ <translation>Filtr przechwytywania</translation>
</message>
</context>
<context>
<name>LBMLBTRMTransportDialog</name>
<message>
<source>LBT-RM Transport Statistics</source>
- <translation type="unfinished"></translation>
+ <translation>Statystyki transportu LBT-RM</translation>
</message>
<message>
<source>Sources</source>
@@ -5307,7 +5357,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>LBMLBTRUTransportDialog</name>
<message>
<source>LBT-RU Transport Statistics</source>
- <translation type="unfinished"></translation>
+ <translation>Statystyki transportu LBT-RU</translation>
</message>
<message>
<source>Sources</source>
@@ -5860,7 +5910,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Packet Diagram</source>
- <translation type="unfinished"></translation>
+ <translation>Diagram pakietu</translation>
</message>
<message>
<source>None</source>
@@ -5876,23 +5926,23 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Packet List settings:</source>
- <translation type="unfinished"></translation>
+ <translation>Ustawienia listy pakietów:</translation>
</message>
<message>
<source>Show packet separator</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż separator pakietów</translation>
</message>
<message>
<source>Show column definition in column context menu</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż definicję kolumny w menu kontekstowym kolumny</translation>
</message>
<message>
<source>Allow the list to be sorted</source>
- <translation type="unfinished"></translation>
+ <translation>Pozwól na sortowanie listy</translation>
</message>
<message>
<source>Maximum number of cached rows (affects sorting)</source>
- <translation type="unfinished"></translation>
+ <translation>Maksymalna liczba wierszy w pamięci podręcznej (wpływa na sortowanie)</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;If more than this many rows are displayed, then sorting by columns that require packet dissection will be disabled. Increasing this number increases memory consumption by caching column values.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
@@ -5900,19 +5950,19 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Enable mouse-over colorization</source>
- <translation type="unfinished"></translation>
+ <translation>Włącz kolorowanie po najechaniu myszką</translation>
</message>
<message>
<source>Status Bar settings:</source>
- <translation type="unfinished"></translation>
+ <translation>Ustawienia paska stanu:</translation>
</message>
<message>
<source>Show selected packet number</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż numer wybranego pakietu</translation>
</message>
<message>
<source>Show file load time</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż czas ładowania pliku</translation>
</message>
</context>
<context>
@@ -5931,7 +5981,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>MAC Statistics</source>
- <translation type="unfinished">Statystyki MAC</translation>
+ <translation>Statystyki MAC</translation>
</message>
</context>
<context>
@@ -6024,11 +6074,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Switch the direction of the connection (view the opposite flow).&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Zmień kierunek przepływu w połączeniu.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Zmień kierunek przepływu w połączeniu (przepływ w przeciwnym kierunku).&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Switch Direction</source>
- <translation type="unfinished">Odwróć kierunek</translation>
+ <translation>Odwróć kierunek</translation>
</message>
<message>
<source>Reset Graph</source>
@@ -6232,7 +6282,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Save As…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz jako...</translation>
</message>
<message>
<source>%1 %2 (%3s seq %4 len %5)</source>
@@ -6276,7 +6326,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Save Graph As…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz wykres jako...</translation>
</message>
</context>
<context>
@@ -6347,7 +6397,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>RLC Statistics</source>
- <translation type="unfinished">Statystyki RLC</translation>
+ <translation>Statystyki RLC</translation>
</message>
</context>
<context>
@@ -6370,23 +6420,23 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Manage Profiles…</source>
- <translation type="unfinished"></translation>
+ <translation>Zarządzaj profilami...</translation>
</message>
<message>
<source>New…</source>
- <translation type="unfinished"></translation>
+ <translation>Nowy...</translation>
</message>
<message>
<source>Edit…</source>
- <translation type="unfinished"></translation>
+ <translation>Edytuj...</translation>
</message>
<message>
<source>Import</source>
- <translation type="unfinished">Importuj</translation>
+ <translation>Importuj</translation>
</message>
<message>
<source>Export</source>
- <translation type="unfinished">Eksportuj</translation>
+ <translation>Eksportuj</translation>
</message>
<message>
<source>Delete</source>
@@ -6425,10 +6475,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<message numerus="yes">
<source>%Ln byte(s)</source>
<oldsource>, %1 bytes</oldsource>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%Ln bajt</numerusform>
+ <numerusform>%Ln bajty</numerusform>
+ <numerusform>%Ln bajtów</numerusform>
</translation>
</message>
<message>
@@ -6450,7 +6500,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source> %1 Selected: %2 (%3%)</source>
- <translation type="unfinished"></translation>
+ <translation> %1 Wybranych: %2 (%3%)</translation>
</message>
<message>
<source> %1 Marked: %2 (%3%)</source>
@@ -6467,7 +6517,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source> %1 Comments: %2</source>
- <translation type="unfinished"></translation>
+ <translation> %1 Komentarzy: %2</translation>
</message>
<message>
<source> %1 Load time: %2:%3.%4</source>
@@ -6479,19 +6529,19 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>From Zip File...</source>
- <translation type="unfinished"></translation>
+ <translation>Z pliku ZIP....</translation>
</message>
<message>
<source>From Directory...</source>
- <translation type="unfinished"></translation>
+ <translation>Z katalogu...</translation>
</message>
<message>
<source>Selected Personal Profile...</source>
- <translation type="unfinished"></translation>
+ <translation>Wybrany profil osobisty...</translation>
</message>
<message>
<source>All Personal Profiles...</source>
- <translation type="unfinished"></translation>
+ <translation>Wszystkie profile osobiste...</translation>
</message>
<message>
<source>Packets: %1</source>
@@ -6559,7 +6609,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Display autocompletion for filter text</source>
- <translation type="unfinished"></translation>
+ <translation>Wyświetl autouzupełnianie tekstu filtra</translation>
</message>
<message>
<source>Main toolbar style:</source>
@@ -6579,7 +6629,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Window title</source>
- <translation type="unfinished"></translation>
+ <translation>Nazwa okna</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Custom window title to be appended to the existing title&lt;br/&gt;%F = file path of the capture file&lt;br/&gt;%P = profile name&lt;br/&gt;%S = a conditional separator (&amp;quot; - &amp;quot;) that only shows when surrounded by variables with values or static text&lt;br/&gt;%V = version info&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
@@ -6626,19 +6676,19 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Add a pipe to capture from or remove an existing pipe from the list.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Dodaj lub usuń rurę z listy.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Dodaj lub usuń potok z listy.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Pipes</source>
- <translation>Rury</translation>
+ <translation>Potoki</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Add a new pipe using default settings.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Dodaj nową rurę używając domyślnych ustawień.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Dodaj nowy potok używając domyślnych ustawień.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Remove the selected pipe from the list.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Usuń wybraną rurę z listy.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Usuń wybrany potok z listy.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Remote Interfaces</source>
@@ -6666,7 +6716,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>This version of Wireshark does not save pipe settings.</source>
- <translation>Ta wersja Wiresharka nie obsługuje ustawień rur.</translation>
+ <translation>Ta wersja programu Wireshark nie obsługuje ustawień potoków.</translation>
</message>
<message>
<source>This version of Wireshark does not save remote settings.</source>
@@ -6678,69 +6728,69 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>New Pipe</source>
- <translation>Nowa rura</translation>
+ <translation>Nowy potok</translation>
</message>
</context>
<context>
<name>ManufDialog</name>
<message>
<source>MAC Address Blocks</source>
- <translation type="unfinished"></translation>
+ <translation>Bloki adresów MAC</translation>
</message>
<message>
<source>Search MAC address or address prefix. Special purpose bits are masked.</source>
- <translation type="unfinished"></translation>
+ <translation>Wyszukaj adres MAC lub prefiks adresu. Bity specjalnego przeznaczenia są maskowane.</translation>
</message>
<message>
<source>MAC Address</source>
- <translation type="unfinished"></translation>
+ <translation>Adres MAC</translation>
</message>
<message>
<source>Search vendor name using a case-insentitive regular expression.</source>
- <translation type="unfinished"></translation>
+ <translation>Wyszukaj nazwę producenta, używając wyrażenia regularnego nieuwzględniającego wielkości liter.</translation>
</message>
<message>
<source>Vendor Name</source>
- <translation type="unfinished"></translation>
+ <translation>Nazwa producenta</translation>
</message>
<message>
<source>Show short name column.</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż kolumnę krótkiej nazwy.</translation>
</message>
<message>
<source>Short name</source>
- <translation type="unfinished"></translation>
+ <translation>Krótka nazwa</translation>
</message>
<message>
<source>Select all</source>
- <translation type="unfinished"></translation>
+ <translation>Zaznacz wszystkie</translation>
</message>
<message>
<source>Copy</source>
- <translation type="unfinished">Kopiuj</translation>
+ <translation>Kopiuj</translation>
</message>
<message>
<source>Find</source>
- <translation type="unfinished">Znajdź</translation>
+ <translation>Znajdź</translation>
</message>
<message>
<source>Clear</source>
- <translation type="unfinished"></translation>
+ <translation>Wyczyść</translation>
</message>
</context>
<context>
<name>ManufTableModel</name>
<message>
<source>Address Block</source>
- <translation type="unfinished"></translation>
+ <translation>Blok adresowy</translation>
</message>
<message>
<source>Short Name</source>
- <translation type="unfinished">Krótka Nazwa</translation>
+ <translation>Krótka Nazwa</translation>
</message>
<message>
<source>Vendor Name</source>
- <translation type="unfinished"></translation>
+ <translation>Nazwa producenta</translation>
</message>
</context>
<context>
@@ -6954,54 +7004,54 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>PacketCommentDialog</name>
<message>
<source>Edit Packet Comment</source>
- <translation type="unfinished"></translation>
+ <translation>Edytuj komentarz pakietu</translation>
</message>
<message>
<source>Add Packet Comment</source>
- <translation type="unfinished"></translation>
+ <translation>Dodaj komentarz pakietu</translation>
</message>
</context>
<context>
<name>PacketDiagram</name>
<message>
<source>Packet diagram</source>
- <translation type="unfinished"></translation>
+ <translation>Diagram pakietu</translation>
</message>
<message>
<source>Show Field Values</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż wartości pól</translation>
</message>
<message>
<source>Save Diagram As…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz diagram jako…</translation>
</message>
<message>
<source>Copy as Raster Image</source>
- <translation type="unfinished"></translation>
+ <translation>Skopiuj jako obraz rastrowy</translation>
</message>
<message>
<source>…as SVG</source>
- <translation type="unfinished"></translation>
+ <translation>...jako SVG</translation>
</message>
<message>
<source>Portable Network Graphics (*.png)</source>
- <translation type="unfinished">Obraz PNG (*.png)</translation>
+ <translation>Obraz PNG (*.png)</translation>
</message>
<message>
<source>Windows Bitmap (*.bmp)</source>
- <translation type="unfinished">Bitmapa Windows (*.bmp)</translation>
+ <translation>Bitmapa Windows (*.bmp)</translation>
</message>
<message>
<source>JPEG File Interchange Format (*.jpeg *.jpg)</source>
- <translation type="unfinished">Obraz JPEG (*.jpeg *.jpg)</translation>
+ <translation>Obraz JPEG (*.jpeg *.jpg)</translation>
</message>
<message>
<source>Scalable Vector Graphics (*.svg)</source>
- <translation type="unfinished"></translation>
+ <translation>Obraz PNG (*.png)</translation>
</message>
<message>
<source>Save Graph As…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz wykres jako...</translation>
</message>
</context>
<context>
@@ -7016,7 +7066,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Show packet bytes</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż bajty pakietu</translation>
</message>
<message>
<source>Packet %1</source>
@@ -7036,10 +7086,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message numerus="yes">
<source>%Ln byte(s)</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%Ln bajt</numerusform>
+ <numerusform>%Ln bajty</numerusform>
+ <numerusform>%Ln bajtów</numerusform>
</translation>
</message>
</context>
@@ -7118,7 +7168,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>PacketList</name>
<message>
<source>Protocol Preferences</source>
- <translation type="unfinished">Ustawienia protokołów</translation>
+ <translation>Ustawienia protokołów</translation>
</message>
<message>
<source>Summary as Text</source>
@@ -7126,15 +7176,15 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>…as CSV</source>
- <translation type="unfinished"></translation>
+ <translation>...jako CSV</translation>
</message>
<message>
<source>…as YAML</source>
- <translation type="unfinished"></translation>
+ <translation>...jako YAML</translation>
</message>
<message>
<source>Decode As…</source>
- <translation type="unfinished"></translation>
+ <translation>Dekoduj jako...</translation>
</message>
<message>
<source>Frame %1: %2
@@ -7152,54 +7202,54 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>PacketListHeader</name>
<message>
<source>Align Left</source>
- <translation type="unfinished"></translation>
+ <translation>Wyrównaj do lewej</translation>
</message>
<message>
<source>Align Center</source>
- <translation type="unfinished"></translation>
+ <translation>Wyrównaj do środka</translation>
</message>
<message>
<source>Align Right</source>
- <translation type="unfinished"></translation>
+ <translation>Wyrównaj do prawej</translation>
</message>
<message>
<source>Edit Column</source>
- <translation type="unfinished"></translation>
+ <translation>Edytuj kolumnę</translation>
</message>
<message>
<source>Resize to Contents</source>
- <translation type="unfinished"></translation>
+ <translation>Dopasuj szerokość do zawartości</translation>
</message>
<message>
<source>Column Preferences…</source>
- <translation type="unfinished"></translation>
+ <translation>Ustawienia kolumny</translation>
</message>
<message>
<source>Resize Column to Width…</source>
- <translation type="unfinished"></translation>
+ <translation>Zmień rozmiar kolumny do szerokości…</translation>
</message>
<message>
<source>Resolve Names</source>
- <translation type="unfinished"></translation>
+ <translation>Rozwiązuj nazwy</translation>
</message>
<message>
<source>Remove this Column</source>
- <translation type="unfinished"></translation>
+ <translation>Usuń tę kolumnę</translation>
</message>
<message>
<source>Column %1</source>
- <translation type="unfinished"></translation>
+ <translation>Kolumna %1</translation>
</message>
<message>
<source>Width:</source>
- <translation type="unfinished"></translation>
+ <translation>Szerokość:</translation>
</message>
</context>
<context>
<name>PacketListModel</name>
<message>
<source>Column</source>
- <translation type="unfinished"></translation>
+ <translation>Kolumna</translation>
</message>
<message>
<source>%1 can only be sorted with %2 or fewer visible rows; increase cache size in Layout preferences</source>
@@ -7207,11 +7257,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Sorting &quot;%1&quot;…</source>
- <translation type="unfinished"></translation>
+ <translation>Sortowanie &quot;%1&quot;...</translation>
</message>
<message>
<source>Sorting …</source>
- <translation type="unfinished"></translation>
+ <translation>Sortowanie ...</translation>
</message>
</context>
<context>
@@ -7273,18 +7323,18 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>PathSelectionDelegate</name>
<message>
<source>Open a pipe</source>
- <translation type="unfinished"></translation>
+ <translation>Otwórz potok</translation>
</message>
</context>
<context>
<name>PathSelectionEdit</name>
<message>
<source>Browse</source>
- <translation type="unfinished"></translation>
+ <translation>Przeglądaj</translation>
</message>
<message>
<source>Select a path</source>
- <translation type="unfinished"></translation>
+ <translation>Wybierz ścieżkę</translation>
</message>
</context>
<context>
@@ -7310,35 +7360,35 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>PortsModel</name>
<message>
<source>All entries</source>
- <translation type="unfinished"></translation>
+ <translation>Wszystkie wpisy</translation>
</message>
<message>
<source>tcp</source>
- <translation type="unfinished"></translation>
+ <translation>tcp</translation>
</message>
<message>
<source>udp</source>
- <translation type="unfinished"></translation>
+ <translation>udp</translation>
</message>
<message>
<source>sctp</source>
- <translation type="unfinished"></translation>
+ <translation>sctp</translation>
</message>
<message>
<source>dccp</source>
- <translation type="unfinished"></translation>
+ <translation>dccp</translation>
</message>
<message>
<source>Name</source>
- <translation type="unfinished"></translation>
+ <translation>Nazwa</translation>
</message>
<message>
<source>Port</source>
- <translation type="unfinished"></translation>
+ <translation>Port</translation>
</message>
<message>
<source>Type</source>
- <translation type="unfinished"></translation>
+ <translation>Typ</translation>
</message>
</context>
<context>
@@ -7357,11 +7407,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Browse…</source>
- <translation type="unfinished">Przeglądaj…</translation>
+ <translation>Przeglądaj…</translation>
</message>
<message>
<source>Open %1 preferences…</source>
- <translation type="unfinished"></translation>
+ <translation>Otwórz ustawienia %1…</translation>
</message>
<message>
<source>Invalid value.</source>
@@ -7380,7 +7430,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Show changed values</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż zmienione wartości</translation>
</message>
<message>
<source>Preferences</source>
@@ -7423,7 +7473,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>RSA Keys</source>
- <translation type="unfinished"></translation>
+ <translation>Klucze RSA</translation>
</message>
</context>
<context>
@@ -7462,11 +7512,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>&amp;Print…</source>
- <translation type="unfinished">Drukuj…</translation>
+ <translation>&amp;Drukuj…</translation>
</message>
<message>
<source>Page &amp;Setup…</source>
- <translation type="unfinished"></translation>
+ <translation>Ustawienia &amp;strony</translation>
</message>
<message>
<source>%1 %2 total packets, %3 shown</source>
@@ -7485,7 +7535,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>ProfileDialog</name>
<message>
<source>Search for profile …</source>
- <translation type="unfinished"></translation>
+ <translation>Wyszukaj profil…</translation>
</message>
<message>
<source>Create a new profile using default settings.</source>
@@ -7493,7 +7543,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Remove this profile. System provided profiles cannot be removed. The default profile will be reset upon deletion.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Usuń ten profil. Profili dostarczonych przez system nie można usunąć. Domyślny profil zostanie zresetowany po usunięciu.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Copy this profile.</source>
@@ -7506,36 +7556,36 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<message>
<source>Import</source>
<comment>noun</comment>
- <translation type="unfinished">Importuj</translation>
+ <translation>Importuj</translation>
</message>
<message>
<source>Export</source>
<comment>noun</comment>
- <translation type="unfinished">Eksportuj</translation>
+ <translation>Eksportuj</translation>
</message>
<message>
<source>From Zip File...</source>
- <translation type="unfinished"></translation>
+ <translation>Z pliku ZIP....</translation>
</message>
<message>
<source>From Directory...</source>
- <translation type="unfinished"></translation>
+ <translation>Z katalogu...</translation>
</message>
<message numerus="yes">
<source>%Ln Selected Personal Profile(s)...</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%Ln wybrany profil osobisty...</numerusform>
+ <numerusform>%Ln wybrane profile osobiste...</numerusform>
+ <numerusform>%Ln wybranych profili osobistych...</numerusform>
</translation>
</message>
<message>
<source>All Personal Profiles...</source>
- <translation type="unfinished"></translation>
+ <translation>Wszystkie profile osobiste...</translation>
</message>
<message>
<source>New profile</source>
- <translation type="unfinished"></translation>
+ <translation>Nowy profil</translation>
</message>
<message>
<source>Profile Error</source>
@@ -7543,83 +7593,99 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Exporting profiles</source>
- <translation type="unfinished"></translation>
+ <translation>Eksportowanie profili</translation>
</message>
<message>
<source>No profiles found for export</source>
- <translation type="unfinished"></translation>
+ <translation>Nie znaleziono profili do eksportu</translation>
</message>
<message>
<source>Select zip file for export</source>
- <translation type="unfinished"></translation>
+ <translation>Wybierz plik ZIP do wyeksportowania</translation>
+ </message>
+ <message numerus="yes">
+ <source>… %Ln selected personal profile(s)</source>
+ <translation type="vanished">
+ <numerusform>... %Ln wybrany profil osobisty</numerusform>
+ <numerusform>... %Ln wybrane profile osobiste</numerusform>
+ <numerusform>... %Ln wybranych profili osobistych</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <source>%Ln selected personal profile(s)</source>
+ <translation type="vanished">
+ <numerusform>%Ln wybrany profil osobisty</numerusform>
+ <numerusform>%Ln wybrane profile osobiste</numerusform>
+ <numerusform>%Ln wybranych profili osobistych</numerusform>
+ </translation>
</message>
<message>
<source>An import of profiles is not allowed, while changes are pending</source>
- <translation type="unfinished"></translation>
+ <translation>Import profili nie jest dozwolony, dopóki oczekujące zmiany nie zostaną wprowadzone</translation>
</message>
<message>
<source>An import is pending to be saved. Additional imports are not allowed</source>
- <translation type="unfinished"></translation>
+ <translation>Import oczekuje na zapisanie. Kolejny import nie jest dozwolony</translation>
</message>
<message>
<source>An export of profiles is only allowed for personal profiles</source>
- <translation type="unfinished"></translation>
+ <translation>Eksport profili jest dozwolony tylko w przypadku profili osobistych</translation>
</message>
<message>
<source>An export of profiles is not allowed, while changes are pending</source>
- <translation type="unfinished"></translation>
+ <translation>Eksport profili nie jest dozwolony, dopóki oczekujące zmiany nie zostaną wprowadzone</translation>
</message>
<message numerus="yes">
<source>%Ln profile(s) exported</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%Ln profil wyeksportowany</numerusform>
+ <numerusform>%Ln profile wyeksportowane</numerusform>
+ <numerusform>%Ln profili wyeksportowanych</numerusform>
</translation>
</message>
<message>
<source>Select zip file for import</source>
- <translation type="unfinished"></translation>
+ <translation>Wybierz plik ZIP do zaimportowania</translation>
</message>
<message>
<source>Select directory for import</source>
- <translation type="unfinished"></translation>
+ <translation>Wybierz katalog do zaimportowania</translation>
</message>
<message>
<source>Zip File (*.zip)</source>
- <translation type="unfinished"></translation>
+ <translation>Plik ZIP (*.zip)</translation>
</message>
<message>
<source>Error</source>
- <translation type="unfinished"></translation>
+ <translation>Błąd</translation>
</message>
<message>
<source>An error has occurred while exporting profiles</source>
- <translation type="unfinished"></translation>
+ <translation>Wystąpił błąd podczas eksportowania profili</translation>
</message>
<message>
<source>No profiles found for import in %1</source>
- <translation type="unfinished"></translation>
+ <translation>Nie znaleziono profili do zaimportowania w %1</translation>
</message>
<message numerus="yes">
<source>%Ln profile(s) imported</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%Ln profil zaimportowany</numerusform>
+ <numerusform>%Ln profile zaimportowane</numerusform>
+ <numerusform>%Ln profili zaimportowanych</numerusform>
</translation>
</message>
<message numerus="yes">
<source>, %Ln profile(s) skipped</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>, %Ln profil pominięto</numerusform>
+ <numerusform>, %Ln profile pominięto</numerusform>
+ <numerusform>, %Ln profili pominięto</numerusform>
</translation>
</message>
<message>
<source>Importing profiles</source>
- <translation type="unfinished"></translation>
+ <translation>Importowanie profili</translation>
</message>
<message numerus="yes">
<source>%Ln profile(s) selected</source>
@@ -7634,123 +7700,123 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>ProfileModel</name>
<message>
<source>Resetting to default</source>
- <translation type="unfinished"></translation>
+ <translation>Resetowanie do ustawień domyślnych</translation>
</message>
<message>
<source>Imported profile</source>
- <translation type="unfinished"></translation>
+ <translation>Zaimportowany profil</translation>
</message>
<message>
<source>This is a system provided profile</source>
- <translation type="unfinished"></translation>
+ <translation>To jest profil dostarczony z tym oprogramowaniem.</translation>
</message>
<message>
<source>A profile change for this name is pending</source>
- <translation type="unfinished"></translation>
+ <translation>Zmiana nazwy dla tego profilu oczekuje</translation>
</message>
<message>
<source> (See: %1)</source>
- <translation type="unfinished"></translation>
+ <translation> (Zobacz: %1)</translation>
</message>
<message>
<source>This is an invalid profile definition</source>
- <translation type="unfinished"></translation>
+ <translation>To jest nieprawidłowa definicja profilu</translation>
</message>
<message>
<source>A profile already exists with this name</source>
- <translation type="unfinished"></translation>
+ <translation>Profil o tej nazwie już istnieje</translation>
</message>
<message>
<source>A profile with this name is being deleted</source>
- <translation type="unfinished"></translation>
+ <translation>Profil o tej nazwie jest usuwany</translation>
</message>
<message>
<source>Created from default settings</source>
- <translation type="unfinished"></translation>
+ <translation>Utworzono z domyślnych ustawień</translation>
</message>
<message>
<source>system provided</source>
- <translation type="unfinished"></translation>
+ <translation>dostarczone przez system</translation>
</message>
<message>
<source>deleted</source>
- <translation type="unfinished"></translation>
+ <translation>usunięte</translation>
</message>
<message>
<source>copy</source>
<comment>noun</comment>
- <translation type="unfinished"></translation>
+ <translation>kopiuj</translation>
</message>
<message>
<source>Exporting profiles while changes are pending is not allowed</source>
- <translation type="unfinished"></translation>
+ <translation>Eksportowanie profili w czasie, gdy zmiany oczekują, jest niedozwolone</translation>
</message>
<message>
<source>No profiles found to export</source>
- <translation type="unfinished"></translation>
+ <translation>Nie znaleziono profili do eksportu</translation>
</message>
<message>
<source>Can&apos;t delete profile directory</source>
- <translation type="unfinished"></translation>
+ <translation>Nie można usunąć katalogu profilu</translation>
</message>
<message>
<source>A profile name cannot contain the following characters: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Nazwa profilu nie może zawierać następujących znaków: %1</translation>
</message>
<message>
<source>A profile name cannot contain the &apos;/&apos; character</source>
- <translation type="unfinished"></translation>
+ <translation>Nazwa profilu nie może zawierać znaku &apos;/&apos;</translation>
</message>
<message>
<source>A profile cannot start or end with a period (.)</source>
- <translation type="unfinished"></translation>
+ <translation>Profil nie może zaczynać się ani kończyć kropką (.)</translation>
</message>
<message>
<source>Default</source>
- <translation type="unfinished">Domyślnie</translation>
+ <translation>Domyślnie</translation>
</message>
<message>
<source>Global</source>
- <translation type="unfinished"></translation>
+ <translation>Globalne</translation>
</message>
<message>
<source>Personal</source>
- <translation type="unfinished"></translation>
+ <translation>Osobiste</translation>
</message>
<message>
<source>Renamed from: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Przemianowano z %1</translation>
</message>
<message>
<source>Copied from: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Skopiowano z: %1</translation>
</message>
<message>
<source>renamed to %1</source>
- <translation type="unfinished"></translation>
+ <translation>przemianowano do %1</translation>
</message>
<message>
<source>Profile</source>
- <translation type="unfinished"></translation>
+ <translation>Profil</translation>
</message>
<message>
<source>Type</source>
- <translation type="unfinished"></translation>
+ <translation>Typ</translation>
</message>
</context>
<context>
<name>ProfileSortModel</name>
<message>
<source>All profiles</source>
- <translation type="unfinished"></translation>
+ <translation>Wszystkie profile</translation>
</message>
<message>
<source>Personal profiles</source>
- <translation type="unfinished"></translation>
+ <translation>Profile osobiste</translation>
</message>
<message>
<source>Global profiles</source>
- <translation type="unfinished"></translation>
+ <translation>Profile globalne</translation>
</message>
</context>
<context>
@@ -7761,7 +7827,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Loading</source>
- <translation type="unfinished">Wczytywanie</translation>
+ <translation>Wczytywanie</translation>
</message>
</context>
<context>
@@ -7780,67 +7846,67 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Expand Subtrees</source>
- <translation type="unfinished"></translation>
+ <translation>Rozwiń poddrzewa</translation>
</message>
<message>
<source>Collapse Subtrees</source>
- <translation type="unfinished"></translation>
+ <translation>Zwiń poddrzewa</translation>
</message>
<message>
<source>Expand All</source>
- <translation type="unfinished">Rozwiń wszystko</translation>
+ <translation>Rozwiń wszystko</translation>
</message>
<message>
<source>Collapse All</source>
- <translation type="unfinished">Zwiń wszystko</translation>
+ <translation>Zwiń wszystko</translation>
</message>
<message>
<source>Copy</source>
- <translation type="unfinished">Kopiuj</translation>
+ <translation>Kopiuj</translation>
</message>
<message>
<source>All Visible Items</source>
- <translation type="unfinished">Wszystkie widoczne pozycje</translation>
+ <translation>Wszystkie widoczne pozycje</translation>
</message>
<message>
<source>All Visible Selected Tree Items</source>
- <translation type="unfinished">Wszystkie widoczne pozycje wybranego poddrzewa</translation>
+ <translation>Wszystkie widoczne pozycje wybranego poddrzewa</translation>
</message>
<message>
<source>Description</source>
- <translation type="unfinished">Opis</translation>
+ <translation>Opis</translation>
</message>
<message>
<source>Field Name</source>
- <translation type="unfinished">Nazwa pola</translation>
+ <translation>Nazwa pola</translation>
</message>
<message>
<source>Value</source>
- <translation type="unfinished">Wartość</translation>
+ <translation>Wartość</translation>
</message>
<message>
<source>As Filter</source>
- <translation type="unfinished">Jako filtr</translation>
+ <translation>Jako filtr</translation>
</message>
<message>
<source>Wiki Protocol Page</source>
- <translation type="unfinished">Strona Wiki Protokołów</translation>
+ <translation>Strona Wiki Protokołów</translation>
</message>
<message>
<source>Filter Field Reference</source>
- <translation type="unfinished">Odwołania filtru pola</translation>
+ <translation>Odwołania filtru pola</translation>
</message>
<message>
<source>Copied </source>
- <translation type="unfinished"></translation>
+ <translation>Skopiowano</translation>
</message>
<message>
<source>Wiki Page for %1</source>
- <translation type="unfinished">Strona Wiki dla %1</translation>
+ <translation>Strona Wiki dla %1</translation>
</message>
<message>
<source>&lt;p&gt;The Wireshark Wiki is maintained by the community.&lt;/p&gt;&lt;p&gt;The page you are about to load might be wonderful, incomplete, wrong, or nonexistent.&lt;/p&gt;&lt;p&gt;Proceed to the wiki?&lt;/p&gt;</source>
- <translation type="unfinished">&lt;p&gt;Strona Wiki Wiresharka jest zarządzania przez społeczność.&lt;/p&gt;&lt;p&gt;Strona którą chcesz wczytać może być wspaniała, niekompletna, błędna lub nie istnieć.&lt;/p&gt;&lt;p&gt;Kontynuować wczytywanie strony Wiki?&lt;/p&gt;</translation>
+ <translation>&lt;p&gt;Strona Wiki Wiresharka jest zarządzania przez społeczność.&lt;/p&gt;&lt;p&gt;Strona którą chcesz wczytać może być wspaniała, niekompletna, błędna lub nie istnieć.&lt;/p&gt;&lt;p&gt;Kontynuować wczytywanie strony Wiki?&lt;/p&gt;</translation>
</message>
<message>
<source>Colorize with Filter</source>
@@ -7915,7 +7981,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Copy short names</source>
- <translation type="unfinished"></translation>
+ <translation>Skopiuj krótkie nazwy</translation>
</message>
<message>
<source>Copy short protocol names in use.</source>
@@ -7923,19 +7989,19 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Disable unused protocols</source>
- <translation type="unfinished"></translation>
+ <translation>Wyłącz nieużywane protokoły</translation>
</message>
<message>
<source>Disable all protocols but those listed.</source>
- <translation type="unfinished"></translation>
+ <translation>Wyłącz wszystkie protokoły oprócz tych wymienionych.</translation>
</message>
<message>
<source>Re-enable unused protocols</source>
- <translation type="unfinished"></translation>
+ <translation>Włącz ponownie nieużywane protokoły</translation>
</message>
<message>
<source>Re-enable protocols that were disabled in this dialog.</source>
- <translation type="unfinished"></translation>
+ <translation>Włącz ponownie protokoły, które zostały wyłączone w tym oknie dialogowym.</translation>
</message>
<message>
<source>Protocol Hierarchy Statistics</source>
@@ -7955,19 +8021,19 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>protocol short names</source>
- <translation type="unfinished"></translation>
+ <translation>krótkie nazwy protokołu</translation>
</message>
<message>
<source>Protocols</source>
- <translation type="unfinished"></translation>
+ <translation>Protokoły</translation>
</message>
<message>
<source>Disable unused</source>
- <translation type="unfinished"></translation>
+ <translation>Wyłącz nieużywane</translation>
</message>
<message>
<source>Revert changes</source>
- <translation type="unfinished"></translation>
+ <translation>Wycofaj zmiany</translation>
</message>
<message>
<source>No display filter.</source>
@@ -7979,11 +8045,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Unused protocols have been disabled.</source>
- <translation type="unfinished"></translation>
+ <translation>Nieużywane protokoły zostały wyłączone.</translation>
</message>
<message>
<source>Protocol changes have been reverted.</source>
- <translation type="unfinished"></translation>
+ <translation>Zmiany dotyczące protokołu zostały cofnięte.</translation>
</message>
</context>
<context>
@@ -8006,7 +8072,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Open %1 preferences…</source>
- <translation type="unfinished"></translation>
+ <translation>Otwórz ustawienia %1…</translation>
</message>
</context>
<context>
@@ -8036,6 +8102,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Rozmiar okna (B)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[nie załadowano pliku przechytywania]</translation>
</message>
@@ -8057,7 +8127,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Prepare as Filter</source>
- <translation type="unfinished"></translation>
+ <translation>Przygotuj jako filtr</translation>
</message>
<message>
<source>Find</source>
@@ -8089,19 +8159,19 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>…and Selected</source>
- <translation type="unfinished"></translation>
+ <translation>…i wybrane</translation>
</message>
<message>
<source>…or Selected</source>
- <translation type="unfinished"></translation>
+ <translation>…lub wybrane</translation>
</message>
<message>
<source>…and not Selected</source>
- <translation type="unfinished"></translation>
+ <translation>…i nie wybrane</translation>
</message>
<message>
<source>…or not Selected</source>
- <translation type="unfinished"></translation>
+ <translation>…lub nie wybrane</translation>
</message>
<message>
<source>A </source>
@@ -8301,31 +8371,31 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>LCID 32</source>
- <translation type="unfinished">LCID 32</translation>
+ <translation>LCID 32</translation>
</message>
<message>
<source>LCID 33</source>
- <translation type="unfinished">LCID 33</translation>
+ <translation>LCID 33</translation>
</message>
<message>
<source>LCID 34</source>
- <translation type="unfinished">LCID 34</translation>
+ <translation>LCID 34</translation>
</message>
<message>
<source>LCID 35</source>
- <translation type="unfinished">LCID 35</translation>
+ <translation>LCID 35</translation>
</message>
<message>
<source>LCID 36</source>
- <translation type="unfinished">LCID 36</translation>
+ <translation>LCID 36</translation>
</message>
<message>
<source>LCID 37</source>
- <translation type="unfinished">LCID 37</translation>
+ <translation>LCID 37</translation>
</message>
<message>
<source>LCID 38</source>
- <translation type="unfinished">LCID 38</translation>
+ <translation>LCID 38</translation>
</message>
<message>
<source>TM</source>
@@ -8433,11 +8503,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Edit…</source>
- <translation type="unfinished"></translation>
+ <translation>Edytuj...</translation>
</message>
<message>
<source>Browse…</source>
- <translation type="unfinished">Przeglądaj…</translation>
+ <translation>Przeglądaj…</translation>
</message>
</context>
<context>
@@ -8549,23 +8619,23 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Hosts</source>
- <translation type="unfinished"></translation>
+ <translation>Hosty</translation>
</message>
<message>
<source>Search for entry (min 3 characters)</source>
- <translation type="unfinished"></translation>
+ <translation>Wyszukaj wpis (min. 3 znaki)</translation>
</message>
<message>
<source>Ports</source>
- <translation type="unfinished"></translation>
+ <translation>Porty</translation>
</message>
<message>
<source>Search for port or name</source>
- <translation type="unfinished"></translation>
+ <translation>Wyszukaj port lub nazwę</translation>
</message>
<message>
<source>Capture File Comments</source>
- <translation type="unfinished"></translation>
+ <translation>Komentarze pliku przechwytywania</translation>
</message>
<message>
<source>Comment</source>
@@ -8747,7 +8817,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>RsaKeysFrame</name>
<message>
<source>RSA Keys</source>
- <translation type="unfinished"></translation>
+ <translation>Klucze RSA</translation>
</message>
<message>
<source>RSA private keys are loaded from a file or PKCS #11 token.</source>
@@ -8759,11 +8829,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Add new token…</source>
- <translation type="unfinished"></translation>
+ <translation>Dodaj nowy token…</translation>
</message>
<message>
<source>Remove key</source>
- <translation type="unfinished"></translation>
+ <translation>Usuń klucz</translation>
</message>
<message>
<source>PKCS #11 provider libraries.</source>
@@ -8771,11 +8841,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Add new provider…</source>
- <translation type="unfinished"></translation>
+ <translation>Dodaj nowego dostawcę…</translation>
</message>
<message>
<source>Remove provider</source>
- <translation type="unfinished"></translation>
+ <translation>Usuń dostawcę</translation>
</message>
<message>
<source>Add PKCS #11 token or key</source>
@@ -8795,31 +8865,31 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Enter PIN or password for %1 (it will be stored unencrypted)</source>
- <translation type="unfinished"></translation>
+ <translation>Wprowadź PIN lub hasło dla %1 (będzie przechowywane w postaci niezaszyfrowanej)</translation>
</message>
<message>
<source>Enter PIN or password for key</source>
- <translation type="unfinished"></translation>
+ <translation>Wprowadź PIN lub hasło do klucza</translation>
</message>
<message>
<source>Key could not be added: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Nie można dodać klucza: %1</translation>
</message>
<message>
<source>RSA private key (*.pem *.p12 *.pfx *.key);;All Files (</source>
- <translation type="unfinished"></translation>
+ <translation>Klucz prywatny RSA (*.pem *.p12 *.pfx *.key);;Wszystkie pliki (</translation>
</message>
<message>
<source>Select RSA private key file</source>
- <translation type="unfinished"></translation>
+ <translation>Wybierz plik klucza prywatnego RSA</translation>
</message>
<message>
<source>Libraries (*.dll)</source>
- <translation type="unfinished"></translation>
+ <translation>Biblioteki (*.dll)</translation>
</message>
<message>
<source>Libraries (*.so)</source>
- <translation type="unfinished"></translation>
+ <translation>Biblioteki (*.so)</translation>
</message>
<message>
<source>Select PKCS #11 Provider Library</source>
@@ -8827,7 +8897,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Changes will apply after a restart</source>
- <translation type="unfinished"></translation>
+ <translation>Zmiany zostaną zastosowane po ponownym uruchomieniu</translation>
</message>
<message>
<source>PKCS #11 provider %1 will be removed after the next restart.</source>
@@ -8875,7 +8945,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Stream %1</source>
- <translation type="unfinished"></translation>
+ <translation>Strumień %1</translation>
</message>
<message>
<source>Stream %1 Jitter</source>
@@ -8891,7 +8961,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source> %1 streams, </source>
- <translation type="unfinished"></translation>
+ <translation>%1 strumieni,</translation>
</message>
<message>
<source>Save one stream CSV</source>
@@ -8903,7 +8973,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>&amp;Analyze</source>
- <translation type="unfinished">Analizuj</translation>
+ <translation>&amp;Analizuj</translation>
</message>
<message>
<source>Open the analysis window for the selected stream(s)</source>
@@ -8915,11 +8985,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>&amp;Add to List</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Dodaj do listy</translation>
</message>
<message>
<source>&amp;Remove from List</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Usuń z listy</translation>
</message>
<message>
<source>Replace existing list in RTP Analysis Dialog with new one</source>
@@ -8943,11 +9013,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>&amp;Export</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Eksportuj</translation>
</message>
<message>
<source>Open export menu</source>
- <translation type="unfinished"></translation>
+ <translation>Otwórz menu eksportowania</translation>
</message>
<message>
<source>CSV</source>
@@ -8955,7 +9025,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Save tables as CSV.</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz tabele jako CSV.</translation>
</message>
<message>
<source>Current Tab Stream CSV</source>
@@ -9007,15 +9077,15 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Prepare &amp;Filter</source>
- <translation type="unfinished"></translation>
+ <translation>Przygotuj &amp;filtr</translation>
</message>
<message>
<source>Prepare a filter matching the selected stream(s).</source>
- <translation type="unfinished">Przygotuj filtr dla zaznaczonych strumieni.</translation>
+ <translation>Przygotuj filtr pasujący do wybranego(ych) strumieni.</translation>
</message>
<message>
<source>&amp;Current Tab</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Bieżąca karta</translation>
</message>
<message>
<source>Prepare a filter matching current tab.</source>
@@ -9023,7 +9093,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>&amp;All Tabs</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Wszystkie karty</translation>
</message>
<message>
<source>Prepare a filter matching all tabs.</source>
@@ -9035,7 +9105,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Save Graph As…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz wykres jako...</translation>
</message>
<message>
<source> G: Go to packet, N: Next problem packet</source>
@@ -9077,7 +9147,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Play</source>
- <translation type="unfinished"></translation>
+ <translation>Odtwórz</translation>
</message>
<message>
<source>Source Address</source>
@@ -9125,11 +9195,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Pause/unpause playback</source>
- <translation type="unfinished"></translation>
+ <translation>Wstrzymaj/wznów odtwarzanie</translation>
</message>
<message>
<source>Stop playback</source>
- <translation type="unfinished"></translation>
+ <translation>Zatrzymaj odtwarzanie</translation>
</message>
<message>
<source>Enable/disable skipping of silence during playback</source>
@@ -9202,7 +9272,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>&amp;Export</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Eksportuj</translation>
</message>
<message>
<source>Export audio of all unmuted selected channels or export payload of one channel.</source>
@@ -9258,7 +9328,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Mute</source>
- <translation type="unfinished"></translation>
+ <translation>Wycisz</translation>
</message>
<message>
<source>Mute selected streams</source>
@@ -9266,7 +9336,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Unmute</source>
- <translation type="unfinished"></translation>
+ <translation>Wyłącz wyciszenie</translation>
</message>
<message>
<source>Unmute selected streams</source>
@@ -9290,51 +9360,51 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Remove Streams</source>
- <translation type="unfinished"></translation>
+ <translation>Usuń strumienie</translation>
</message>
<message>
<source>Remove selected streams from the list</source>
- <translation type="unfinished"></translation>
+ <translation>Usuń wybrane strumienie z listy</translation>
</message>
<message>
<source>All</source>
- <translation type="unfinished"></translation>
+ <translation>Wszystkie</translation>
</message>
<message>
<source>Select all</source>
- <translation type="unfinished"></translation>
+ <translation>Zaznacz wszystkie</translation>
</message>
<message>
<source>None</source>
- <translation type="unfinished">Brak</translation>
+ <translation>Brak</translation>
</message>
<message>
<source>Clear selection</source>
- <translation type="unfinished"></translation>
+ <translation>Wyczyść wybór</translation>
</message>
<message>
<source>Invert</source>
- <translation type="unfinished">Przełącz</translation>
+ <translation>Przełącz</translation>
</message>
<message>
<source>Invert selection</source>
- <translation type="unfinished"></translation>
+ <translation>Odwróć wybór</translation>
</message>
<message>
<source>Play/Pause</source>
- <translation type="unfinished"></translation>
+ <translation>Odtwórz/Wstrzymaj</translation>
</message>
<message>
<source>Start playing or pause playing</source>
- <translation type="unfinished"></translation>
+ <translation>Rozpocznij odtwarzanie lub wstrzymaj odtwarzanie</translation>
</message>
<message>
<source>Stop</source>
- <translation type="unfinished"></translation>
+ <translation>Zatrzymaj</translation>
</message>
<message>
<source>Stop playing</source>
- <translation type="unfinished"></translation>
+ <translation>Zatrzymaj odtwarzanie</translation>
</message>
<message>
<source>I&amp;naudible streams</source>
@@ -9350,7 +9420,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>&amp;Select</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Wybrane</translation>
</message>
<message>
<source>Select inaudible streams</source>
@@ -9358,7 +9428,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>&amp;Deselect</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Odznacz</translation>
</message>
<message>
<source>Deselect inaudible streams</source>
@@ -9366,15 +9436,15 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Prepare &amp;Filter</source>
- <translation type="unfinished"></translation>
+ <translation>Przygotuj &amp;filtr</translation>
</message>
<message>
<source>Prepare a filter matching the selected stream(s).</source>
- <translation type="unfinished">Przygotuj filtr dla zaznaczonych strumieni.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>R&amp;efresh streams</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Odśwież strumienie</translation>
</message>
<message>
<source>Read captured packets from capture in progress to player</source>
@@ -9434,7 +9504,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>To Left</source>
- <translation type="unfinished"></translation>
+ <translation>Do lewej</translation>
</message>
<message>
<source>Left + Right</source>
@@ -9442,7 +9512,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>To Right</source>
- <translation type="unfinished"></translation>
+ <translation>W prawo</translation>
</message>
<message>
<source>Invert Muting</source>
@@ -9454,7 +9524,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Select</source>
- <translation type="unfinished"></translation>
+ <translation>Wybrane</translation>
</message>
<message>
<source>Audio Routing</source>
@@ -9462,7 +9532,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>&amp;Play Streams</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Odtwarzaj strumienie</translation>
</message>
<message>
<source>Open RTP player dialog</source>
@@ -9478,7 +9548,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>&amp;Add to playlist</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Dodaj do listy odtwarzania</translation>
</message>
<message>
<source>Add new set to existing playlist in RTP Player</source>
@@ -9486,7 +9556,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>&amp;Remove from playlist</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Usuń z listy odtwarzania</translation>
</message>
<message>
<source>Remove selected streams from playlist in RTP Player</source>
@@ -9494,11 +9564,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>No Audio</source>
- <translation type="unfinished"></translation>
+ <translation>Brak audio</translation>
</message>
<message>
<source>Decoding streams...</source>
- <translation type="unfinished"></translation>
+ <translation>Dekodowanie strumieni...</translation>
</message>
<message>
<source>Out of Sequence</source>
@@ -9522,11 +9592,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>%1 streams</source>
- <translation type="unfinished">%1 strumieni</translation>
+ <translation>%1 strumieni</translation>
</message>
<message>
<source>, %1 selected</source>
- <translation type="unfinished"></translation>
+ <translation>, wybrano %1</translation>
</message>
<message>
<source>, %1 not muted</source>
@@ -9542,15 +9612,15 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Playback of stream %1 failed!</source>
- <translation type="unfinished"></translation>
+ <translation>Odtwarzanie strumienia %1 nie powiodło się!</translation>
</message>
<message>
<source>Automatic</source>
- <translation type="unfinished"></translation>
+ <translation>Automatycznie</translation>
</message>
<message>
<source>WAV (*.wav)</source>
- <translation type="unfinished"></translation>
+ <translation>WAV (*.wav)</translation>
</message>
<message>
<source>Sun Audio (*.au)</source>
@@ -9558,11 +9628,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Save audio</source>
- <translation type="unfinished">Zapisz audio</translation>
+ <translation>Zapisz audio</translation>
</message>
<message>
<source>Raw (*.raw)</source>
- <translation type="unfinished"></translation>
+ <translation>Raw (*.raw)</translation>
</message>
<message>
<source>Save payload</source>
@@ -9570,7 +9640,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Warning</source>
- <translation type="unfinished"></translation>
+ <translation>Ostrzeżenie</translation>
</message>
<message>
<source>No stream selected or none of selected streams provide audio</source>
@@ -9578,7 +9648,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Error</source>
- <translation type="unfinished"></translation>
+ <translation>Błąd</translation>
</message>
<message>
<source>All selected streams must use same play rate. Manual set of Output Audio Rate might help.</source>
@@ -9590,7 +9660,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Save failed!</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisywanie nie powiodło się!</translation>
</message>
<message>
<source>Can&apos;t write header of AU file</source>
@@ -9645,11 +9715,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Start Time</source>
- <translation type="unfinished">Czas startu</translation>
+ <translation>Czas startu</translation>
</message>
<message>
<source>Duration</source>
- <translation type="unfinished">Czas trwania</translation>
+ <translation>Czas trwania</translation>
</message>
<message>
<source>Payload</source>
@@ -9693,7 +9763,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Time of Day</source>
- <translation type="unfinished">Czas dnia</translation>
+ <translation>Czas dnia</translation>
</message>
<message>
<source>Find &amp;Reverse</source>
@@ -9701,15 +9771,15 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Prepare &amp;Filter</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Przygotuj &amp;filtr</translation>
</message>
<message>
<source>&amp;Export</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Eksportuj</translation>
</message>
<message>
<source>&amp;Analyze</source>
- <translation type="unfinished">Analizuj</translation>
+ <translation>&amp;Analizuj</translation>
</message>
<message>
<source>Open the analysis window for the selected stream(s) and add it to it</source>
@@ -9749,7 +9819,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Shift+R</source>
- <translation type="unfinished"></translation>
+ <translation>Shift+R</translation>
</message>
<message>
<source>Find Only &amp;Singles</source>
@@ -9761,7 +9831,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Ctrl+R</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+R</translation>
</message>
<message>
<source>Mark Packets</source>
@@ -9777,27 +9847,27 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>All</source>
- <translation type="unfinished"></translation>
+ <translation>Wszystkie</translation>
</message>
<message>
<source>Select all</source>
- <translation type="unfinished"></translation>
+ <translation>Zaznacz wszystkie</translation>
</message>
<message>
<source>None</source>
- <translation type="unfinished">Brak</translation>
+ <translation>Brak</translation>
</message>
<message>
<source>Clear selection</source>
- <translation type="unfinished"></translation>
+ <translation>Wyczyść wybór</translation>
</message>
<message>
<source>Invert</source>
- <translation type="unfinished">Przełącz</translation>
+ <translation>Przełącz</translation>
</message>
<message>
<source>Invert selection</source>
- <translation type="unfinished"></translation>
+ <translation>Odwróć wybór</translation>
</message>
<message>
<source>Go To Setup</source>
@@ -9833,11 +9903,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Cop&amp;y</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Kopiuj</translation>
</message>
<message>
<source>Open copy menu</source>
- <translation type="unfinished"></translation>
+ <translation>Otwórz menu kopiowania</translation>
</message>
<message>
<source>Copy as CSV</source>
@@ -9861,7 +9931,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Select</source>
- <translation type="unfinished"></translation>
+ <translation>Wybrane</translation>
</message>
<message>
<source>as CSV</source>
@@ -9995,7 +10065,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>-</source>
- <translation type="unfinished">-</translation>
+ <translation>-</translation>
</message>
<message>
<source>&lt;small&gt;&lt;i&gt;For complete analysis check SCTP preference Enable Association indexing&lt;/i&gt;&lt;/small&gt;</source>
@@ -10035,7 +10105,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Warning</source>
- <translation type="unfinished"></translation>
+ <translation>Ostrzeżenie</translation>
</message>
<message>
<source>Could not find SCTP Association with id: %1</source>
@@ -10303,7 +10373,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Save Graph As…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz wykres jako...</translation>
</message>
</context>
<context>
@@ -10422,7 +10492,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Searching for %1…</source>
- <translation type="unfinished"></translation>
+ <translation>Wyszukiwanie %1…</translation>
</message>
<message>
<source>No packet contained those bytes.</source>
@@ -10465,18 +10535,18 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message numerus="yes">
<source>%Ln node(s)</source>
- <translation type="unfinished">
- <numerusform>%Ln node</numerusform>
- <numerusform>%Ln nodes</numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%Ln węzeł</numerusform>
+ <numerusform>%Ln węzły</numerusform>
+ <numerusform>%Ln węzłów</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%Ln item(s)</source>
- <translation type="unfinished">
- <numerusform>%Ln item</numerusform>
- <numerusform>%Ln items</numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%Ln obiekt</numerusform>
+ <numerusform>%Ln obiekty</numerusform>
+ <numerusform>%Ln obiektów</numerusform>
</translation>
</message>
<message>
@@ -10501,7 +10571,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Save Graph As…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz wykres jako...</translation>
</message>
<message>
<source>Flow</source>
@@ -10613,7 +10683,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Reset &amp;Diagram</source>
- <translation type="unfinished"></translation>
+ <translation>Resetuj &amp;diagram</translation>
</message>
<message>
<source>Reset the diagram to its initial state.</source>
@@ -10625,15 +10695,15 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>&amp;Reset Diagram</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Resetuj diagram</translation>
</message>
<message>
<source>Reset the diagram to its initial state</source>
- <translation type="unfinished"></translation>
+ <translation>Resetuj diagram do stanu początkowego.</translation>
</message>
<message>
<source>&amp;Export</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Eksportuj</translation>
</message>
<message>
<source>Export diagram</source>
@@ -10851,10 +10921,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message numerus="yes">
<source>Frame %1, %2, %Ln byte(s).</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>Ramka %1, %2, %Ln bajt.</numerusform>
+ <numerusform>Ramka %1, %2, %Ln bajty.</numerusform>
+ <numerusform>Ramka %1, %2, %Ln bajtów.</numerusform>
</translation>
</message>
<message>
@@ -10939,23 +11009,23 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Save as…</source>
- <translation type="unfinished">Zapisz jako…</translation>
+ <translation>Zapisz jako…</translation>
</message>
<message>
<source>Save Selected Packet Bytes As…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz zaznaczone bajty pakietu jako</translation>
</message>
<message numerus="yes">
<source>Displaying %Ln byte(s).</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>Wyświetlanych %Ln bajt.</numerusform>
+ <numerusform>Wyświetlane bajty: %Ln.</numerusform>
+ <numerusform>Wyświetlanych bajtów: %Ln.</numerusform>
</translation>
</message>
<message>
<source>JSON</source>
- <translation type="unfinished"></translation>
+ <translation>JSON</translation>
</message>
<message>
<source>Regex Find:</source>
@@ -11022,7 +11092,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Applying changed preferences</source>
- <translation type="unfinished"></translation>
+ <translation>Stosowanie zmienionych preferencji</translation>
</message>
<message>
<source>(Unknown action)</source>
@@ -11048,7 +11118,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Display filter:</source>
- <translation type="unfinished"></translation>
+ <translation>Filtr wyświetlania:</translation>
</message>
</context>
<context>
@@ -11101,15 +11171,15 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>SyntaxLineEdit</name>
<message>
<source>Invalid filter: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Błędny filtr: %1</translation>
</message>
<message>
<source>&quot;%1&quot; is deprecated in favour of &quot;%2&quot;. See Help section 6.4.8 for details.</source>
- <translation type="unfinished"></translation>
+ <translation>&quot;%1&quot; jest przestarzałe na rzecz &quot;%2&quot;.. Aby uzyskać szczegółowe informacje, zobacz sekcję Pomocy 6.4.8.</translation>
</message>
<message>
<source>%1</source>
- <translation type="unfinished"></translation>
+ <translation>%1</translation>
</message>
</context>
<context>
@@ -11298,7 +11368,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Segment Length</source>
- <translation type="unfinished"></translation>
+ <translation>Długość segmentu</translation>
</message>
<message>
<source>Display graph of Mean Transmitted Bytes vs Time</source>
@@ -11614,7 +11684,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Save As…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz jako...</translation>
</message>
<message>
<source>No Capture Data</source>
@@ -11690,7 +11760,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Save Graph As…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz wykres jako...</translation>
</message>
</context>
<context>
@@ -11701,11 +11771,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Browse…</source>
- <translation type="unfinished">Przeglądaj…</translation>
+ <translation>Przeglądaj…</translation>
</message>
<message>
<source>Command line</source>
- <translation type="unfinished"></translation>
+ <translation>Wiersz poleceń</translation>
</message>
<message>
<source>Run an application with the SSLKEYLOGFILE environment variable set to the file specified by the TLS key log filename preference. This enables TLS decryption in Wireshark. Set the key log file and start the capture before launching the application to ensure that the initial TLS handshakes are captured.</source>
@@ -11729,11 +11799,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Launch</source>
- <translation type="unfinished"></translation>
+ <translation>Uruchom</translation>
</message>
<message>
<source>Save</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz</translation>
</message>
<message>
<source>TLS Keylog file</source>
@@ -11789,15 +11859,15 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Collapse All</source>
- <translation type="unfinished">Zwiń wszystko</translation>
+ <translation>Zwiń wszystko</translation>
</message>
<message>
<source>Expand All</source>
- <translation type="unfinished">Rozwiń wszystko</translation>
+ <translation>Rozwiń wszystko</translation>
</message>
<message>
<source>Save Statistics As…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisz statystyki jako...</translation>
</message>
<message>
<source>Plain text file (*.txt);;Comma separated values (*.csv);;XML document (*.xml);;YAML document (*.yaml)</source>
@@ -11880,7 +11950,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Unable to create temporary file</source>
- <translation type="unfinished"></translation>
+ <translation>Nie można utworzyć pliku tymczasowego</translation>
</message>
</context>
<context>
@@ -11934,7 +12004,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>TrafficTree</name>
<message>
<source>Resize all columns to content</source>
- <translation type="unfinished"></translation>
+ <translation>Dopasuj szerokość kolumn do zawartości</translation>
</message>
<message>
<source>Filter on stream id</source>
@@ -11946,27 +12016,27 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>as CSV</source>
- <translation type="unfinished">jako CSV</translation>
+ <translation>jako CSV</translation>
</message>
<message>
<source>Copy all values of this page to the clipboard in CSV (Comma Separated Values) format.</source>
- <translation type="unfinished"></translation>
+ <translation>Kopiuj wszystkie wartości z tej strony w CSV (Comma Separated Values) do schowka.</translation>
</message>
<message>
<source>as YAML</source>
- <translation type="unfinished">jako YAML</translation>
+ <translation>jako YAML</translation>
</message>
<message>
<source>Copy all values of this page to the clipboard in the YAML data serialization format.</source>
- <translation type="unfinished"></translation>
+ <translation>Kopiuj wszystkie wartości z tej strony w formacie YAML do schowka.</translation>
</message>
<message>
<source>as JSON</source>
- <translation type="unfinished"></translation>
+ <translation>jako JSON</translation>
</message>
<message>
<source>Copy all values of this page to the clipboard in the JSON data serialization format.</source>
- <translation type="unfinished"></translation>
+ <translation>Kopiuj wszystkie wartości z tej strony w formacie JSON do schowka.</translation>
</message>
<message>
<source>Save data as raw</source>
@@ -11981,34 +12051,34 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>TrafficTreeHeaderView</name>
<message>
<source>Less than</source>
- <translation type="unfinished"></translation>
+ <translation>Mniej niż</translation>
</message>
<message>
<source>Greater than</source>
- <translation type="unfinished"></translation>
+ <translation>Większy niż</translation>
</message>
<message>
<source>Equal</source>
- <translation type="unfinished"></translation>
+ <translation>Równy</translation>
</message>
<message>
<source>Columns to display</source>
- <translation type="unfinished"></translation>
+ <translation>Kolumny do wyświetlenia</translation>
</message>
<message>
<source>Filter %1 by</source>
- <translation type="unfinished"></translation>
+ <translation>Filtruj %1 według</translation>
</message>
<message>
<source>Enter filter value</source>
- <translation type="unfinished"></translation>
+ <translation>Wprowadź wartość filtra</translation>
</message>
</context>
<context>
<name>TrafficTypesModel</name>
<message>
<source>Protocol</source>
- <translation type="unfinished">Protokół</translation>
+ <translation>Protokół</translation>
</message>
</context>
<context>
@@ -12107,7 +12177,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Limit to display filter</source>
- <translation type="unfinished"></translation>
+ <translation>Ogranicz do filtru wyświetlania</translation>
</message>
<message>
<source>Time of Day</source>
@@ -12123,7 +12193,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Prepare &amp;Filter</source>
- <translation type="unfinished"></translation>
+ <translation>Przygotuj &amp;filtr</translation>
</message>
<message>
<source>Prepare a filter matching the selected calls(s).</source>
@@ -12131,31 +12201,31 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Cop&amp;y</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Kopiuj</translation>
</message>
<message>
<source>Open copy menu</source>
- <translation type="unfinished"></translation>
+ <translation>Otwórz menu kopiowania</translation>
</message>
<message>
<source>All</source>
- <translation type="unfinished"></translation>
+ <translation>Wszystkie</translation>
</message>
<message>
<source>Select all</source>
- <translation type="unfinished"></translation>
+ <translation>Zaznacz wszystkie</translation>
</message>
<message>
<source>None</source>
- <translation type="unfinished">Brak</translation>
+ <translation>Brak</translation>
</message>
<message>
<source>Invert</source>
- <translation type="unfinished">Przełącz</translation>
+ <translation>Przełącz</translation>
</message>
<message>
<source>Invert selection</source>
- <translation type="unfinished"></translation>
+ <translation>Odwróć wybór</translation>
</message>
<message>
<source>Select related RTP streams</source>
@@ -12179,11 +12249,11 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Clear selection</source>
- <translation type="unfinished"></translation>
+ <translation>Wyczyść wybór</translation>
</message>
<message>
<source>Display time as time of day</source>
- <translation type="unfinished"></translation>
+ <translation>Wyświetlaj czas jako porę dnia</translation>
</message>
<message>
<source>Copy as CSV</source>
@@ -12219,7 +12289,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Select</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Wybrane</translation>
</message>
</context>
<context>
@@ -12371,7 +12441,49 @@ a:hover {
&lt;/tr&gt;&lt;/table&gt;
&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link {
+ color: palette(text);
+ text-decoration: none;
+}
+a:hover {
+ color: palette(text);
+ text-decoration: underline;
+}
+&lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+
+&lt;table&gt;&lt;tr&gt;
+&lt;th&gt;&lt;a href=&quot;https://www.wireshark.org/docs/wsug_html_chunked/&quot;&gt;Podręcznik użytkownika&lt;/a&gt;&lt;/th&gt;
+
+&lt;td style=&quot;padding-left: 8px; padding-right: 8px;&quot;&gt;·&lt;/td&gt;
+
+&lt;th&gt;&lt;a href=&quot;https://gitlab.com/wireshark/wireshark/-/wikis/&quot;&gt;Wiki&lt;/a&gt;&lt;/th&gt;
+
+&lt;td style=&quot;padding-left: 8px; padding-right: 8px;&quot;&gt;·&lt;/td&gt;
+
+&lt;th&gt;&lt;a href=&quot;https://ask.wireshark.org/&quot;&gt;Q&amp;A - Pytania i odpowiedzi&lt;/a&gt;&lt;/th&gt;
+
+&lt;td style=&quot;padding-left: 8px; padding-right: 8px;&quot;&gt;·&lt;/td&gt;
+
+&lt;th&gt;&lt;a href=&quot;https://www.wireshark.org/lists/&quot;&gt;Listy mailingowe&lt;/a&gt;&lt;/th&gt;
+
+&lt;td style=&quot;padding-left: 8px; padding-right: 8px;&quot;&gt;·&lt;/td&gt;
+
+&lt;th&gt;&lt;a href=&quot;https://sharkfest.wireshark.org/&quot;&gt;SharkFest&lt;/a&gt;&lt;/th&gt;
+
+&lt;td style=&quot;padding-left: 8px; padding-right: 8px;&quot;&gt;·&lt;/td&gt;
+
+&lt;th&gt;&lt;a href=&quot;https://discord.com/invite/ts9GZCjGj5&quot;&gt;Wireshark na Discord&lt;/a&gt;&lt;/th&gt;
+
+&lt;td style=&quot;padding-left: 8px; padding-right: 8px;&quot;&gt;·&lt;/td&gt;
+
+&lt;th&gt;&lt;a href=&quot;https://wiresharkfoundation.org/donate/&quot;&gt;Donacja&lt;/a&gt;&lt;/th&gt;
+
+&lt;/tr&gt;&lt;/table&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Show in Finder</source>
@@ -12383,7 +12495,7 @@ a:hover {
</message>
<message>
<source>Welcome to %1</source>
- <translation type="unfinished"></translation>
+ <translation>Witamy w %1</translation>
</message>
<message>
<source>All interfaces shown</source>
@@ -12391,10 +12503,10 @@ a:hover {
</message>
<message numerus="yes">
<source>%n interface(s) shown, %1 hidden</source>
- <translation type="unfinished">
- <numerusform>%n interface shown, %1 hidden</numerusform>
- <numerusform>%n interfaces shown, %1 hidden</numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%n wyświetlany interfejs, %1 ukrytych</numerusform>
+ <numerusform>%n wyświetlane interfejsy, %1 ukrytych</numerusform>
+ <numerusform>%n wyświetlanych interfejsów, %1 ukrytych</numerusform>
</translation>
</message>
<message>
@@ -12403,7 +12515,7 @@ a:hover {
</message>
<message>
<source>You are running Wireshark </source>
- <translation>Wireshark uruchomiony </translation>
+ <translation>Używasz Wireshark </translation>
</message>
<message>
<source> You receive automatic updates.</source>
@@ -12423,7 +12535,7 @@ a:hover {
</message>
<message>
<source>Remove from list</source>
- <translation type="unfinished"></translation>
+ <translation>Usuń z listy</translation>
</message>
</context>
<context>
@@ -12563,7 +12675,7 @@ a:hover {
</message>
<message>
<source>Prepare as Filter</source>
- <translation type="unfinished"></translation>
+ <translation>Przygotuj jako filtr</translation>
</message>
<message>
<source>SCTP</source>
@@ -12587,7 +12699,7 @@ a:hover {
</message>
<message>
<source>&amp;Capture</source>
- <translation>Prze&amp;chwytuj</translation>
+ <translation>Prze&amp;chwytywanie</translation>
</message>
<message>
<source>&amp;Help</source>
@@ -12595,15 +12707,15 @@ a:hover {
</message>
<message>
<source>&amp;Go</source>
- <translation>Idź</translation>
+ <translation>&amp;Idź</translation>
</message>
<message>
<source>&amp;View</source>
- <translation>Widok</translation>
+ <translation>&amp;Widok</translation>
</message>
<message>
<source>&amp;Analyze</source>
- <translation>Analizuj</translation>
+ <translation>&amp;Analiza</translation>
</message>
<message>
<source>Follow</source>
@@ -12643,7 +12755,7 @@ a:hover {
</message>
<message>
<source>Packet Comments</source>
- <translation type="unfinished">Komentarze pakietu</translation>
+ <translation>Komentarze pakietu</translation>
</message>
<message>
<source>Main Toolbar</source>
@@ -12663,7 +12775,7 @@ a:hover {
</message>
<message>
<source>&amp;Start</source>
- <translation>&amp;Start</translation>
+ <translation>&amp;Rozpocznij</translation>
</message>
<message>
<source>Start capturing packets</source>
@@ -12671,7 +12783,7 @@ a:hover {
</message>
<message>
<source>S&amp;top</source>
- <translation>S&amp;top</translation>
+ <translation>Za&amp;trzymaj</translation>
</message>
<message>
<source>Stop capturing packets</source>
@@ -12695,7 +12807,7 @@ a:hover {
</message>
<message>
<source>Rawshark</source>
- <translation type="unfinished"></translation>
+ <translation>RawShark</translation>
</message>
<message>
<source>Dumpcap</source>
@@ -12711,7 +12823,7 @@ a:hover {
</message>
<message>
<source>Text2pcap</source>
- <translation type="unfinished"></translation>
+ <translation>Text2pcap</translation>
</message>
<message>
<source>Website</source>
@@ -12819,7 +12931,7 @@ a:hover {
</message>
<message>
<source>Export TLS Session Keys…</source>
- <translation type="unfinished"></translation>
+ <translation>Eksportuj klucze sesji TLS...</translation>
</message>
<message>
<source>List Files</source>
@@ -12859,7 +12971,7 @@ a:hover {
</message>
<message>
<source>&amp;Restart</source>
- <translation>&amp;Restart</translation>
+ <translation>Z&amp;restartuj</translation>
</message>
<message>
<source>Restart current capture</source>
@@ -12867,23 +12979,23 @@ a:hover {
</message>
<message>
<source>As &amp;CSV…</source>
- <translation type="unfinished"></translation>
+ <translation>Jako &amp;CSV...</translation>
</message>
<message>
<source>As &quot;C&quot; &amp;Arrays…</source>
- <translation type="unfinished"></translation>
+ <translation>Jako tablica w języku C…</translation>
</message>
<message>
<source>As P&amp;SML XML…</source>
- <translation type="unfinished"></translation>
+ <translation>Jako P&amp;SML XML…</translation>
</message>
<message>
<source>As P&amp;DML XML…</source>
- <translation type="unfinished"></translation>
+ <translation>Jako P&amp;DML XML…</translation>
</message>
<message>
<source>As &amp;JSON…</source>
- <translation type="unfinished"></translation>
+ <translation>Jako &amp;JSON…</translation>
</message>
<message>
<source>Description</source>
@@ -12939,7 +13051,7 @@ a:hover {
</message>
<message>
<source>&amp;DTN</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;DTN</translation>
</message>
<message>
<source>Osmux</source>
@@ -12960,7 +13072,7 @@ a:hover {
</message>
<message>
<source>FAQs</source>
- <translation type="unfinished"></translation>
+ <translation>FAQ</translation>
</message>
<message>
<source>Next Packet in Conversation</source>
@@ -12988,19 +13100,19 @@ a:hover {
</message>
<message>
<source>Previous Packet In History</source>
- <translation type="unfinished"></translation>
+ <translation>Poprzedni pakiet w historii</translation>
</message>
<message>
<source>Go to the previous packet in your selection history</source>
- <translation type="unfinished"></translation>
+ <translation>Idź do poprzedniego pakietu w wybranej historii</translation>
</message>
<message>
<source>Collapse Subtrees</source>
- <translation type="unfinished"></translation>
+ <translation>Zwiń poddrzewa</translation>
</message>
<message>
<source>Collapse the current packet detail</source>
- <translation type="unfinished"></translation>
+ <translation>Zwiń szczegóły bieżącego pakietu</translation>
</message>
<message>
<source>Go to Packet…</source>
@@ -13081,7 +13193,7 @@ a:hover {
<message>
<source>&amp;Mark/Unmark Packet(s)</source>
<oldsource>&amp;Mark/Unmark Packet</oldsource>
- <translation type="unfinished"></translation>
+ <translation>&amp;Zaznacz/odznacz pakiet</translation>
</message>
<message>
<source>Mark All Displayed</source>
@@ -13114,7 +13226,7 @@ a:hover {
<message>
<source>&amp;Ignore/Unignore Packet(s)</source>
<oldsource>&amp;Ignore/Unignore Packet</oldsource>
- <translation type="unfinished"></translation>
+ <translation>&amp;Ignoruj/odignoruj pakiet</translation>
</message>
<message>
<source>Ignore All Displayed</source>
@@ -13162,15 +13274,15 @@ a:hover {
</message>
<message>
<source>Delete All Packet Comments</source>
- <translation type="unfinished"></translation>
+ <translation>Usuń komentarze pakietów</translation>
</message>
<message>
<source>Remove all packet comments in the capture file</source>
- <translation type="unfinished"></translation>
+ <translation>Usuń wszystkie komentarze do pakietów z pliku przechwytywania</translation>
</message>
<message>
<source>&amp;Configuration Profiles…</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Konfiguracja profili…</translation>
</message>
<message>
<source>Configuration profiles</source>
@@ -13238,7 +13350,7 @@ a:hover {
</message>
<message>
<source>HTTP/2 Stream</source>
- <translation type="unfinished"></translation>
+ <translation>Strumienie HTTP/2</translation>
</message>
<message>
<source>SIP Call</source>
@@ -13406,7 +13518,7 @@ a:hover {
</message>
<message>
<source>&amp;LTP</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;LTP</translation>
</message>
<message>
<source>LTP segment and block statistics</source>
@@ -13422,7 +13534,7 @@ a:hover {
</message>
<message>
<source>Osmux packet counts</source>
- <translation type="unfinished"></translation>
+ <translation>Liczba pakietów Osmux</translation>
</message>
<message>
<source>RTSP packet counts</source>
@@ -13446,7 +13558,7 @@ a:hover {
</message>
<message>
<source>F1AP</source>
- <translation type="unfinished"></translation>
+ <translation>F1AP</translation>
</message>
<message>
<source>F1AP Messages</source>
@@ -13454,7 +13566,7 @@ a:hover {
</message>
<message>
<source>NGAP</source>
- <translation type="unfinished"></translation>
+ <translation>NGAP</translation>
</message>
<message>
<source>NGAP Messages</source>
@@ -13526,7 +13638,7 @@ a:hover {
</message>
<message>
<source>Strip Headers…</source>
- <translation type="unfinished"></translation>
+ <translation>Usuń nagłówki…</translation>
</message>
<message>
<source>Strip headers and export higher level encapsulations to file</source>
@@ -13534,7 +13646,7 @@ a:hover {
</message>
<message>
<source>&amp;I/O Graphs</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Wykresy wej./wyj.</translation>
</message>
<message>
<source>&amp;Conversations</source>
@@ -13542,7 +13654,7 @@ a:hover {
</message>
<message>
<source>&amp;Endpoints</source>
- <translation type="unfinished"></translation>
+ <translation>Punkty krańcowe</translation>
</message>
<message>
<source>Shrink the main window text</source>
@@ -13558,7 +13670,7 @@ a:hover {
</message>
<message>
<source>Reset appearance layout to default size</source>
- <translation type="unfinished"></translation>
+ <translation>Resetuje układ do rozmiarów domyślnych</translation>
</message>
<message>
<source>Seconds Since First Captured Packet</source>
@@ -13570,27 +13682,27 @@ a:hover {
</message>
<message>
<source>Tenths of a millisecond</source>
- <translation type="unfinished"></translation>
+ <translation>Dziesiętne milisekundy</translation>
</message>
<message>
<source>Hundredths of a millisecond</source>
- <translation type="unfinished"></translation>
+ <translation>Setne milisekundy</translation>
</message>
<message>
<source>Tenths of a microsecond</source>
- <translation type="unfinished"></translation>
+ <translation>Dziesiętne mikrosekundy</translation>
</message>
<message>
<source>Hundredths of a microsecond</source>
- <translation type="unfinished"></translation>
+ <translation>Setne mikrosekundy</translation>
</message>
<message>
<source>Packet &amp;Diagram</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Diagram pakietu</translation>
</message>
<message>
<source>Show or hide the packet diagram</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż lub ukryj diagram pakietów</translation>
</message>
<message>
<source>Show each conversation hash table</source>
@@ -13646,11 +13758,11 @@ a:hover {
</message>
<message>
<source>Display Filter Expression…</source>
- <translation type="unfinished"></translation>
+ <translation>Wyrażenie filtru wyświetlania...</translation>
</message>
<message>
<source>REGISTER_STAT_GROUP_RSERPOOL</source>
- <translation type="unfinished"></translation>
+ <translation>REGISTER_STAT_GROUP_RSERPOOL</translation>
</message>
<message>
<source>Start of &quot;REGISTER_STAT_GROUP_RSERPOOL&quot;</source>
@@ -13678,7 +13790,7 @@ a:hover {
</message>
<message>
<source>Go to &amp;Linked Packet</source>
- <translation type="unfinished"></translation>
+ <translation>Idź do podlinkowanego pakietu</translation>
</message>
<message>
<source>UDP Multicast Streams</source>
@@ -13718,7 +13830,7 @@ a:hover {
</message>
<message>
<source>MAC Address Blocks</source>
- <translation type="unfinished"></translation>
+ <translation>Bloki adresów MAC</translation>
</message>
<message>
<source>TLS Keylog Launcher</source>
@@ -13726,7 +13838,7 @@ a:hover {
</message>
<message>
<source>Release Notes</source>
- <translation type="unfinished"></translation>
+ <translation>Informacje o wydaniu</translation>
</message>
<message>
<source>&amp;Options…</source>
@@ -13746,15 +13858,15 @@ a:hover {
</message>
<message>
<source>As Plain &amp;Text</source>
- <translation type="unfinished"></translation>
+ <translation>Jako &amp;tekst</translation>
</message>
<message>
<source>As &amp;CSV</source>
- <translation type="unfinished"></translation>
+ <translation>Jako &amp;CSV</translation>
</message>
<message>
<source>As &amp;YAML</source>
- <translation type="unfinished"></translation>
+ <translation>Jako &amp;YAML</translation>
</message>
<message>
<source>All Visible Items</source>
@@ -14082,7 +14194,7 @@ a:hover {
</message>
<message>
<source>&amp;Supported Protocols</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Obsługiwane Protokoły</translation>
</message>
<message>
<source>MAP Summary</source>
@@ -14094,7 +14206,7 @@ a:hover {
</message>
<message>
<source>RLC &amp;Graph</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Wykres RLC</translation>
</message>
<message>
<source>&amp;Coloring Rules…</source>
@@ -14115,7 +14227,7 @@ a:hover {
</message>
<message>
<source>RTP Player</source>
- <translation type="unfinished">Odtwarzacz RTP</translation>
+ <translation>Odtwarzacz RTP</translation>
</message>
<message>
<source>Play selected stream. Press CTRL key for playing reverse stream too.</source>
@@ -14156,59 +14268,59 @@ a:hover {
</message>
<message>
<source>Open &amp;Recent</source>
- <translation type="unfinished"></translation>
+ <translation>Ostatnio otwarte</translation>
</message>
<message>
<source>Name Resol&amp;ution</source>
- <translation type="unfinished"></translation>
+ <translation>Ro&amp;związywanie nazw</translation>
</message>
<message>
<source>Service &amp;Response Time</source>
- <translation type="unfinished"></translation>
+ <translation>Czas odpowiedzi serwisu</translation>
</message>
<message>
<source>&amp;RTP</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;RTP</translation>
</message>
<message>
<source>S&amp;CTP</source>
- <translation type="unfinished"></translation>
+ <translation>S&amp;CTP</translation>
</message>
<message>
<source>&amp;ANSI</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;ANSI</translation>
</message>
<message>
<source>&amp;GSM</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;GSM</translation>
</message>
<message>
<source>&amp;LTE</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;LTE</translation>
</message>
<message>
<source>&amp;MTP3</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;MTP3</translation>
</message>
<message>
<source>&amp;Open</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Otwórz</translation>
</message>
<message>
<source>&amp;Quit</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Zamknij</translation>
</message>
<message>
<source>&amp;Close</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Zamknij</translation>
</message>
<message>
<source>Display &amp;Filters…</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Filtry wyświetlania…</translation>
</message>
<message>
<source>&amp;Unmark All Displayed</source>
- <translation type="unfinished"></translation>
+ <translation>Odzaznacz wszystkie wyświetlane</translation>
</message>
<message>
<source>All VoIP Calls</source>
@@ -14426,23 +14538,23 @@ a:hover {
</message>
<message>
<source>Check for Updates…</source>
- <translation type="unfinished"></translation>
+ <translation>Sprawdź aktualizacje...</translation>
</message>
<message>
<source>Unable to drop files during capture.</source>
- <translation type="unfinished"></translation>
+ <translation>Nie można porzucić pliku podczas przechwytywania.</translation>
</message>
<message>
<source>Unknown file type returned by merge dialog.</source>
- <translation type="unfinished"></translation>
+ <translation>Nieznany typ pliku zwrócony przez okno dialogowe łączenia plików.</translation>
</message>
<message>
<source>Please report this as a Wireshark issue at https://gitlab.com/wireshark/wireshark/-/issues.</source>
- <translation type="unfinished"></translation>
+ <translation>Zgłoś to jako problem z Wireshark na stronie https://gitlab.com/wireshark/wireshark/-/issues.</translation>
</message>
<message>
<source>Unknown file type returned by export dialog.</source>
- <translation type="unfinished"></translation>
+ <translation>Nieznany typ pliku zwrócony przez okno dialogowe eksportu.</translation>
</message>
<message>
<source>Do you want to stop the capture and save the captured packets%1?</source>
@@ -14472,7 +14584,7 @@ a:hover {
</message>
<message>
<source>There is no &quot;rtp.ssrc&quot; field in this version of Wireshark.</source>
- <translation type="unfinished"></translation>
+ <translation>Brak pola &quot;rtp.ssrc&quot; w tej wersji programu Wireshark.</translation>
</message>
<message>
<source>Please select an RTPv2 packet with an SSRC value</source>
@@ -14484,7 +14596,7 @@ a:hover {
</message>
<message>
<source>Show or hide the toolbar</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż lub ukryj pasek narzędziowy</translation>
</message>
<message>
<source>Continue &amp;without Saving</source>
@@ -14510,7 +14622,7 @@ a:hover {
</message>
<message>
<source>Merging files.</source>
- <translation type="unfinished"></translation>
+ <translation>Łączenie plików.</translation>
</message>
<message>
<source>%1: %2</source>
@@ -14532,6 +14644,15 @@ a:hover {
<source>No Keys</source>
<translation>Brak kluczy</translation>
</message>
+ <message numerus="yes">
+ <source>Export SSL Session Keys (%Ln key(s))</source>
+ <oldsource>Export SSL Session Keys (%1 key%2</oldsource>
+ <translation type="vanished">
+ <numerusform>Eksportuj klucze sesji SSL (%Ln klucz)</numerusform>
+ <numerusform>Eksportuj klucze sesji SSL (%Ln klucze)</numerusform>
+ <numerusform>Eksportuj klucze sesji SSL (%Ln kluczy)</numerusform>
+ </translation>
+ </message>
<message>
<source>Raw data (*.bin *.dat *.raw);;All Files (</source>
<translation>Surowe dane (*.bin *.dat *.raw);;Dowolny plik (</translation>
@@ -14542,7 +14663,7 @@ a:hover {
</message>
<message>
<source>Are you sure you want to remove all packet comments?</source>
- <translation type="unfinished"></translation>
+ <translation>Czy na pewno chcesz usunąć wszystkie komentarze do pakietów?</translation>
</message>
<message>
<source>Unable to build conversation filter.</source>
@@ -14562,11 +14683,11 @@ a:hover {
</message>
<message>
<source>No interface selected.</source>
- <translation type="unfinished"></translation>
+ <translation>Nie wybrano interfejsu.</translation>
</message>
<message>
<source>Saving %1…</source>
- <translation type="unfinished"></translation>
+ <translation>Zapisywanie %1...</translation>
</message>
<message>
<source>Configure all extcaps before start of capture.</source>
@@ -14574,37 +14695,37 @@ a:hover {
</message>
<message>
<source>Invalid capture filter.</source>
- <translation type="unfinished"></translation>
+ <translation>Niepoprawny filtr przechwytywania</translation>
</message>
<message>
<source>(empty comment)</source>
<comment>placeholder for empty comment</comment>
- <translation type="unfinished"></translation>
+ <translation>(pusty komentarz)</translation>
</message>
<message>
<source>Add New Comment…</source>
- <translation type="unfinished"></translation>
+ <translation>Dodaj nowy komentarz...</translation>
</message>
<message>
<source>Edit &quot;%1&quot;</source>
<comment>edit packet comment</comment>
- <translation type="unfinished"></translation>
+ <translation>Edytuj &quot;%1&quot;</translation>
</message>
<message>
<source>Delete &quot;%1&quot;</source>
<comment>delete packet comment</comment>
- <translation type="unfinished"></translation>
+ <translation>Usuń &quot;%1&quot;</translation>
</message>
<message>
<source>Delete packet comments</source>
- <translation type="unfinished"></translation>
+ <translation>Usuń komentarze pakietów</translation>
</message>
<message numerus="yes">
<source>Delete comments from %n packet(s)</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>Usuń komentarze z %n pakietu</numerusform>
+ <numerusform>Usuń komentarze z %n pakietów</numerusform>
+ <numerusform>Usuń komentarze z %n pakietów</numerusform>
</translation>
</message>
<message>
@@ -14613,31 +14734,31 @@ a:hover {
</message>
<message>
<source> before reloading Lua plugins</source>
- <translation type="unfinished"></translation>
+ <translation>przed ponownym załadowaniem wtyczek Lua</translation>
</message>
<message>
<source>Please wait while Wireshark is initializing…</source>
- <translation type="unfinished"></translation>
+ <translation>Proszę czekać, trwa uruchamianie programu Wireshark</translation>
</message>
<message>
<source> before updating</source>
- <translation type="unfinished"></translation>
+ <translation>przed aktualizacją</translation>
</message>
<message>
<source>There are no TLS Session Keys to save.</source>
- <translation type="unfinished"></translation>
+ <translation>Nie ma żadnych kluczy sesji SSL do zapisu.</translation>
</message>
<message numerus="yes">
<source>Export TLS Session Keys (%Ln key(s))</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>Eksportuj klucze sesji TLS (%Ln klucz)</numerusform>
+ <numerusform>Eksportuj klucze sesji TLS (%Ln klucze)</numerusform>
+ <numerusform>Eksportuj klucze sesji TLS (%Ln kluczy)</numerusform>
</translation>
</message>
<message>
<source>TLS Session Keys (*.keys *.txt);;All Files (</source>
- <translation type="unfinished"></translation>
+ <translation>Klucze sesji SSL (*.keys *.txt);; Dowolny plik (</translation>
</message>
<message>
<source>No TLS Secrets</source>
@@ -14653,31 +14774,31 @@ a:hover {
</message>
<message>
<source>No filter available. Try another %1.</source>
- <translation type="unfinished"></translation>
+ <translation>Brak dostępnego filtra. Spróbuj innego %1.</translation>
</message>
<message>
<source>column</source>
- <translation type="unfinished"></translation>
+ <translation>kolumna</translation>
</message>
<message>
<source>item</source>
- <translation type="unfinished"></translation>
+ <translation>pozycja</translation>
</message>
<message>
<source>The &quot;%1&quot; column already exists.</source>
- <translation type="unfinished"></translation>
+ <translation>Kolumna &quot;%1&quot; już istnieje.</translation>
</message>
<message>
<source>The &quot;%1&quot; column already exists as &quot;%2&quot;.</source>
- <translation type="unfinished"></translation>
+ <translation>Kolumna &quot;%1&quot; już istnieje jako &quot;%2&quot;.</translation>
</message>
<message>
<source>RTP packet search failed</source>
- <translation type="unfinished"></translation>
+ <translation>Wyszukiwanie pakietu RTP nie powiodło się</translation>
</message>
<message>
<source>No Interface Selected.</source>
- <translation type="unfinished"></translation>
+ <translation>Nie wybrano interfejsu.</translation>
</message>
<message>
<source> before restarting the capture</source>
diff --git a/ui/qt/wireshark_ru.ts b/ui/qt/wireshark_ru.ts
index d37b305..870d0df 100644
--- a/ui/qt/wireshark_ru.ts
+++ b/ui/qt/wireshark_ru.ts
@@ -1992,6 +1992,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Копировать байты пакета в виде шестнадцатеричного дампа.</translation>
</message>
<message>
+ <source>…as Printable Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy only the printable text in the packet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>…as MIME Data</source>
<translation type="unfinished"></translation>
</message>
@@ -8047,6 +8055,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Размер окна (Б)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[нет файла захвата]</translation>
</message>
diff --git a/ui/qt/wireshark_sv.ts b/ui/qt/wireshark_sv.ts
index e9e52f6..d9936d0 100644
--- a/ui/qt/wireshark_sv.ts
+++ b/ui/qt/wireshark_sv.ts
@@ -1988,6 +1988,14 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
<translation>Kopiera paketbyte som en hex-dump.</translation>
</message>
<message>
+ <source>…as Printable Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy only the printable text in the packet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>…as MIME Data</source>
<translation type="unfinished"></translation>
</message>
@@ -8027,6 +8035,10 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
<translation>Fönsterstorlek (B)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[ingen fångstfil]</translation>
</message>
diff --git a/ui/qt/wireshark_tr_TR.ts b/ui/qt/wireshark_tr_TR.ts
index e088563..1328942 100644
--- a/ui/qt/wireshark_tr_TR.ts
+++ b/ui/qt/wireshark_tr_TR.ts
@@ -1984,6 +1984,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Paket baytlarını hex dökümü olarak kopyalayın.</translation>
</message>
<message>
+ <source>…as Printable Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy only the printable text in the packet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>…as MIME Data</source>
<translation type="unfinished"></translation>
</message>
@@ -8007,6 +8015,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Pencere Boyutu (B)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[yakalama dosyası yok]</translation>
</message>
diff --git a/ui/qt/wireshark_uk.ts b/ui/qt/wireshark_uk.ts
index 54831f2..4720152 100644
--- a/ui/qt/wireshark_uk.ts
+++ b/ui/qt/wireshark_uk.ts
@@ -1991,6 +1991,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>…as Printable Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy only the printable text in the packet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>…as MIME Data</source>
<translation type="unfinished"></translation>
</message>
@@ -7988,6 +7996,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Розмір Вікна (Б)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation type="unfinished"></translation>
</message>
diff --git a/ui/qt/wireshark_zh_CN.ts b/ui/qt/wireshark_zh_CN.ts
index cd0cdd3..13b953b 100644
--- a/ui/qt/wireshark_zh_CN.ts
+++ b/ui/qt/wireshark_zh_CN.ts
@@ -1982,6 +1982,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>将分组字节复制为十六进制转储。</translation>
</message>
<message>
+ <source>…as Printable Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy only the printable text in the packet.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>…as MIME Data</source>
<translation type="unfinished"></translation>
</message>
@@ -8002,6 +8010,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>窗口大小 (B)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[无捕获文件]</translation>
</message>
diff --git a/ui/recent.c b/ui/recent.c
index bc1f34e..1906bfb 100644
--- a/ui/recent.c
+++ b/ui/recent.c
@@ -1361,6 +1361,8 @@ read_set_recent_pair_static(gchar *key, const gchar *value,
recent.gui_additional_toolbars = prefs_get_string_list(value);
} else if (strcmp(key, RECENT_GUI_INTERFACE_TOOLBAR_SHOW) == 0) {
recent.interface_toolbars = prefs_get_string_list(value);
+ } else {
+ return PREFS_SET_NO_SUCH_PREF;
}
return PREFS_SET_OK;
diff --git a/ui/ssl_key_export.c b/ui/ssl_key_export.c
index fe72a75..f077ef0 100644
--- a/ui/ssl_key_export.c
+++ b/ui/ssl_key_export.c
@@ -26,7 +26,7 @@ ssl_session_key_count(void)
{
int count = 0;
ssl_master_key_map_t *mk_map = tls_get_master_key_map(FALSE);
- if (!mk_map)
+ if (!mk_map || !mk_map->used_crandom)
return count;
GHashTableIter iter;
diff --git a/ui/tap-rtp-analysis.c b/ui/tap-rtp-analysis.c
index bd2438f..92c5a79 100644
--- a/ui/tap-rtp-analysis.c
+++ b/ui/tap-rtp-analysis.c
@@ -129,6 +129,7 @@ static const mimetype_and_clock mimetype_and_clock_map[] = {
{"MP2P", 90000}, /* [RFC2250],[RFC3555] */
{"MP4V-ES", 90000}, /* [RFC3016] */
{"mpa-robust", 90000}, /* [RFC3119] */
+ {"opus", 48000}, /* [RFC7587] */
{"pointer", 90000}, /* [RFC2862] */
{"raw", 90000}, /* [RFC4175] */
{"red", 1000}, /* [RFC4102] */
diff --git a/ui/win32/file_dlg_win32.cpp b/ui/win32/file_dlg_win32.cpp
index a301912..6261c91 100644
--- a/ui/win32/file_dlg_win32.cpp
+++ b/ui/win32/file_dlg_win32.cpp
@@ -1383,7 +1383,8 @@ range_update_dynamics(HWND dlg_hwnd, packet_range_t *range) {
bool filtered_active = false;
TCHAR static_val[STATIC_LABEL_CHARS];
uint32_t ignored_cnt = 0, displayed_ignored_cnt = 0;
- uint32_t displayed_cnt;
+ uint32_t depended_cnt = 0, displayed_depended_cnt = 0;
+ uint32_t label_cnt;
bool range_valid = true;
cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_DISPLAYED_BTN);
@@ -1393,43 +1394,50 @@ range_update_dynamics(HWND dlg_hwnd, packet_range_t *range) {
/* RANGE_SELECT_ALL */
cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_ALL_PKTS_CAP);
EnableWindow(cur_ctrl, !filtered_active);
+ label_cnt = g_cf->count;
if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), g_cf->count - range->ignored_cnt);
- } else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), g_cf->count);
+ label_cnt -= range->ignored_cnt;
}
+ StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), label_cnt);
SetWindowText(cur_ctrl, static_val);
cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_ALL_PKTS_DISP);
EnableWindow(cur_ctrl, filtered_active);
if (range->include_dependents)
- displayed_cnt = range->displayed_plus_dependents_cnt;
+ label_cnt = range->displayed_plus_dependents_cnt;
else
- displayed_cnt = range->displayed_cnt;
+ label_cnt = range->displayed_cnt;
if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), displayed_cnt - range->displayed_ignored_cnt);
- } else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), displayed_cnt);
+ label_cnt -= range->displayed_ignored_cnt;
}
+ StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), label_cnt);
SetWindowText(cur_ctrl, static_val);
/* RANGE_SELECT_CURR */
cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_SEL_PKT_CAP);
EnableWindow(cur_ctrl, range->selection_range_cnt > 0 && !filtered_active);
- if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%d"), range->selection_range_cnt - range->ignored_selection_range_cnt);
+ if (range->include_dependents) {
+ label_cnt = range->selected_plus_depends_cnt;
} else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%d"), range->selection_range_cnt);
+ label_cnt = range->selection_range_cnt;
}
+ if (range->remove_ignored) {
+ label_cnt -= range->ignored_selection_range_cnt;
+ }
+ StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%d"), label_cnt);
SetWindowText(cur_ctrl, static_val);
cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_SEL_PKT_DISP);
EnableWindow(cur_ctrl, range->displayed_selection_range_cnt > 0 && filtered_active);
- if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%d"), range->displayed_selection_range_cnt - range->displayed_ignored_selection_range_cnt);
+ if (range->include_dependents) {
+ label_cnt = range->displayed_selected_plus_depends_cnt;
} else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%d"), range->displayed_selection_range_cnt);
+ label_cnt = range->displayed_selection_range_cnt;
+ }
+ if (range->remove_ignored) {
+ label_cnt -= range->displayed_ignored_selection_range_cnt;
}
+ StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%d"), label_cnt);
SetWindowText(cur_ctrl, static_val);
/* RANGE_SELECT_MARKED */
@@ -1438,20 +1446,28 @@ range_update_dynamics(HWND dlg_hwnd, packet_range_t *range) {
cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_MARKED_CAP);
EnableWindow(cur_ctrl, g_cf->marked_count && !filtered_active);
- if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), g_cf->marked_count - range->ignored_marked_cnt);
+ if (range->include_dependents) {
+ label_cnt = range->marked_plus_depends_cnt;
} else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), g_cf->marked_count);
+ label_cnt = g_cf->marked_count;
+ }
+ if (range->remove_ignored) {
+ label_cnt -= range->ignored_marked_cnt;
}
+ StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%d"), label_cnt);
SetWindowText(cur_ctrl, static_val);
cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_MARKED_DISP);
EnableWindow(cur_ctrl, g_cf->marked_count && filtered_active);
- if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->displayed_marked_cnt - range->displayed_ignored_marked_cnt);
+ if (range->include_dependents) {
+ label_cnt = range->displayed_marked_plus_depends_cnt;
} else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->displayed_marked_cnt);
+ label_cnt = range->displayed_marked_cnt;
+ }
+ if (range->remove_ignored) {
+ label_cnt -= range->displayed_ignored_marked_cnt;
}
+ StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%d"), label_cnt);
SetWindowText(cur_ctrl, static_val);
/* RANGE_SELECT_MARKED_RANGE */
@@ -1460,20 +1476,28 @@ range_update_dynamics(HWND dlg_hwnd, packet_range_t *range) {
cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_FIRST_LAST_CAP);
EnableWindow(cur_ctrl, range->mark_range_cnt && !filtered_active);
- if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->mark_range_cnt - range->ignored_mark_range_cnt);
+ if (range->include_dependents) {
+ label_cnt = range->mark_range_plus_depends_cnt;
} else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->mark_range_cnt);
+ label_cnt = range->mark_range_cnt;
+ }
+ if (range->remove_ignored) {
+ label_cnt -= range->ignored_mark_range_cnt;
}
+ StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%d"), label_cnt);
SetWindowText(cur_ctrl, static_val);
cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_FIRST_LAST_DISP);
EnableWindow(cur_ctrl, range->displayed_mark_range_cnt && filtered_active);
- if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->displayed_mark_range_cnt - range->displayed_ignored_mark_range_cnt);
+ if (range->include_dependents) {
+ label_cnt = range->displayed_mark_range_plus_depends_cnt;
} else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->displayed_mark_range_cnt);
+ label_cnt = range->displayed_mark_range_cnt;
}
+ if (range->remove_ignored) {
+ label_cnt -= range->displayed_ignored_mark_range_cnt;
+ }
+ StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%d"), label_cnt);
SetWindowText(cur_ctrl, static_val);
/* RANGE_SELECT_USER */
@@ -1484,20 +1508,29 @@ range_update_dynamics(HWND dlg_hwnd, packet_range_t *range) {
cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_RANGE_CAP);
EnableWindow(cur_ctrl, !filtered_active);
- if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->user_range_cnt - range->ignored_user_range_cnt);
+ if (range->include_dependents) {
+ label_cnt = range->user_range_plus_depends_cnt;
} else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->user_range_cnt);
+ label_cnt = range->user_range_cnt;
}
+ if (range->remove_ignored) {
+ label_cnt -= range->ignored_user_range_cnt;
+ }
+ StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%d"), label_cnt);
SetWindowText(cur_ctrl, static_val);
cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_RANGE_DISP);
EnableWindow(cur_ctrl, filtered_active);
+ if (range->include_dependents) {
+ label_cnt = range->displayed_user_range_plus_depends_cnt;
+ } else {
+ label_cnt = range->displayed_user_range_cnt;
+ }
if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->displayed_user_range_cnt - range->displayed_ignored_user_range_cnt);
+ label_cnt -= range->displayed_ignored_user_range_cnt;
} else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->displayed_user_range_cnt);
}
+ StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), label_cnt);
SetWindowText(cur_ctrl, static_val);
break;
case CVT_SYNTAX_ERROR:
@@ -1562,6 +1595,49 @@ range_update_dynamics(HWND dlg_hwnd, packet_range_t *range) {
StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), displayed_ignored_cnt);
SetWindowText(cur_ctrl, static_val);
+ /* RANGE_REMOVE_IGNORED_PACKETS */
+ switch(range->process) {
+ case(range_process_all):
+ depended_cnt = 0;
+ displayed_depended_cnt = range->displayed_plus_dependents_cnt - range->displayed_cnt;
+ break;
+ case(range_process_selected):
+ depended_cnt = range->selected_plus_depends_cnt - range->selection_range_cnt;
+ displayed_depended_cnt = range->displayed_selected_plus_depends_cnt - range->displayed_selection_range_cnt;
+ break;
+ case(range_process_marked):
+ depended_cnt = range->marked_plus_depends_cnt - range->cf->marked_count;
+ displayed_depended_cnt = range->displayed_marked_plus_depends_cnt - range->displayed_marked_cnt;
+ break;
+ case(range_process_marked_range):
+ depended_cnt = range->mark_range_plus_depends_cnt - range->mark_range_cnt;
+ displayed_depended_cnt = range->displayed_mark_range_plus_depends_cnt - range->displayed_mark_range_cnt;
+ break;
+ case(range_process_user_range):
+ depended_cnt = range->user_range_plus_depends_cnt - range->user_range_cnt;
+ displayed_depended_cnt = range->displayed_user_range_plus_depends_cnt - range->displayed_user_range_cnt;
+ break;
+ default:
+ ws_assert_not_reached();
+ }
+
+ cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_INCLUDE_DPD_CB);
+ if (filtered_active) {
+ EnableWindow(cur_ctrl, displayed_depended_cnt);
+ } else {
+ EnableWindow(cur_ctrl, depended_cnt);
+ }
+
+ cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_DEPENDED_CAP);
+ EnableWindow(cur_ctrl, depended_cnt && !filtered_active);
+ StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), depended_cnt);
+ SetWindowText(cur_ctrl, static_val);
+
+ cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_DEPENDED_DISP);
+ EnableWindow(cur_ctrl, displayed_depended_cnt && filtered_active);
+ StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), displayed_depended_cnt);
+ SetWindowText(cur_ctrl, static_val);
+
cur_ctrl = GetDlgItem(GetParent(dlg_hwnd), IDOK);
EnableWindow(cur_ctrl, range_valid);
}
@@ -1610,6 +1686,10 @@ range_handle_wm_initdialog(HWND dlg_hwnd, packet_range_t *range) {
ws_assert_not_reached();
}
SendMessage(cur_ctrl, BM_SETCHECK, true, 0);
+
+ /* Set the include depended upon checkbox */
+ cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_INCLUDE_DPD_CB);
+ SendMessage(cur_ctrl, BM_SETCHECK, range->include_dependents, 0);
}
static void
@@ -1678,6 +1758,14 @@ range_handle_wm_command(HWND dlg_hwnd, HWND ctrl, WPARAM w_param, packet_range_t
}
range_update_dynamics(dlg_hwnd, range);
break;
+ case (BN_CLICKED << 16) | EWFD_INCLUDE_DPD_CB:
+ if (SendMessage(ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED) {
+ range->include_dependents = true;
+ } else {
+ range->include_dependents = false;
+ }
+ range_update_dynamics(dlg_hwnd, range);
+ break;
}
}
diff --git a/ui/win32/file_dlg_win32.h b/ui/win32/file_dlg_win32.h
index 0edee0b..2bb2fb4 100644
--- a/ui/win32/file_dlg_win32.h
+++ b/ui/win32/file_dlg_win32.h
@@ -142,20 +142,23 @@ void win32_export_file (HWND h_wnd, const wchar_t *title, capture_file *cf, expo
#define EWFD_RANGE_BTN 1006
#define EWFD_RANGE_EDIT 1007
#define EWFD_REMOVE_IGN_CB 1008
-
-#define EWFD_ALL_PKTS_CAP 1009
-#define EWFD_SEL_PKT_CAP 1010
-#define EWFD_MARKED_CAP 1011
-#define EWFD_FIRST_LAST_CAP 1012
-#define EWFD_RANGE_CAP 1013
-#define EWFD_IGNORED_CAP 1014
-
-#define EWFD_ALL_PKTS_DISP 1015
-#define EWFD_SEL_PKT_DISP 1016
-#define EWFD_MARKED_DISP 1017
-#define EWFD_FIRST_LAST_DISP 1018
-#define EWFD_RANGE_DISP 1019
-#define EWFD_IGNORED_DISP 1020
+#define EWFD_INCLUDE_DPD_CB 1009
+
+#define EWFD_ALL_PKTS_CAP 1010
+#define EWFD_SEL_PKT_CAP 1011
+#define EWFD_MARKED_CAP 1012
+#define EWFD_FIRST_LAST_CAP 1013
+#define EWFD_RANGE_CAP 1014
+#define EWFD_IGNORED_CAP 1015
+#define EWFD_DEPENDED_CAP 1016
+
+#define EWFD_ALL_PKTS_DISP 1017
+#define EWFD_SEL_PKT_DISP 1018
+#define EWFD_MARKED_DISP 1019
+#define EWFD_FIRST_LAST_DISP 1020
+#define EWFD_RANGE_DISP 1021
+#define EWFD_IGNORED_DISP 1022
+#define EWFD_DEPENDED_DISP 1023
/* Merge dialog defines. Overlays Open dialog defines above. */
#define EWFD_MERGE_PREPEND_BTN 1050
diff --git a/wiretap/CMakeLists.txt b/wiretap/CMakeLists.txt
index 7a7b51e..fe5ef69 100644
--- a/wiretap/CMakeLists.txt
+++ b/wiretap/CMakeLists.txt
@@ -175,7 +175,7 @@ set_target_properties(wiretap PROPERTIES
PREFIX "lib"
COMPILE_DEFINITIONS "WS_BUILD_DLL"
LINK_FLAGS "${WS_LINK_FLAGS}"
- VERSION "14.1.0" SOVERSION 14
+ VERSION "14.1.5" SOVERSION 14
FOLDER "DLLs"
INSTALL_RPATH "${LIBRARY_INSTALL_RPATH}"
)
diff --git a/wiretap/blf.c b/wiretap/blf.c
index 9c08c5e..176db32 100644
--- a/wiretap/blf.c
+++ b/wiretap/blf.c
@@ -5,7 +5,7 @@
*
* File format support for the Binary Log File (BLF) file format from
* Vector Informatik decoder
- * Copyright (c) 2021-2022 by Dr. Lars Voelker <lars.voelker@technica-engineering.de>
+ * Copyright (c) 2021-2024 by Dr. Lars Voelker <lars.voelker@technica-engineering.de>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
@@ -420,15 +420,11 @@ fix_endianness_blf_flexrayrcvmessage(blf_flexrayrcvmessage_t *header) {
}
static void
-fix_endianness_blf_linmessage(blf_linmessage_t *header) {
- header->channel = GUINT16_FROM_LE(header->channel);
-}
-
-static void
-fix_endianness_blf_linmessage_trailer(blf_linmessage_trailer_t *header) {
- header->crc = GUINT16_FROM_LE(header->crc);
+fix_endianness_blf_linmessage(blf_linmessage_t* message) {
+ message->channel = GUINT16_FROM_LE(message->channel);
+ message->crc = GUINT16_FROM_LE(message->crc);
/* skip the optional part
- header->res2 = GUINT32_FROM_LE(header->res2);
+ message->res2 = GUINT32_FROM_LE(message->res2);
*/
}
@@ -877,14 +873,11 @@ blf_read_bytes(blf_params_t *params, guint64 real_pos, void *target_buffer, unsi
/* this is only called once on open to figure out the layout of the file */
static gboolean
-blf_scan_file_for_logcontainers(blf_params_t *params) {
+blf_scan_file_for_logcontainers(blf_params_t *params, int *err, gchar **err_info) {
blf_blockheader_t header;
blf_logcontainerheader_t logcontainer_header;
blf_log_container_t tmp;
- int err;
- gchar *err_info;
-
guint64 current_start_pos;
guint64 current_real_start = 0;
@@ -893,15 +886,16 @@ blf_scan_file_for_logcontainers(blf_params_t *params) {
/* Find Object */
while (1) {
- if (!wtap_read_bytes_or_eof(params->fh, &header, sizeof header, &err, &err_info)) {
+ if (!wtap_read_bytes_or_eof(params->fh, &header, sizeof header, err, err_info)) {
ws_debug("we found end of file");
/* lets ignore some bytes at the end since some implementations think it is ok to add a few zero bytes */
- if (err == WTAP_ERR_SHORT_READ) {
- err = 0;
+ if (*err == WTAP_ERR_SHORT_READ) {
+ *err = 0;
}
- return TRUE;
+ /* Either succeed on an EOF or fail. */
+ return *err == 0;
}
fix_endianness_blf_blockheader(&header);
@@ -912,36 +906,53 @@ blf_scan_file_for_logcontainers(blf_params_t *params) {
break;
}
- /* we are moving back and try again but 1 byte later */
- /* TODO: better understand how this paddings works... */
+ /*
+ * we are moving back and try again but 1 byte later
+ * TODO: better understand how this paddings works...
+ * Note that, in at least one capture - the Example.blf
+ * file attached to
+ * https://gitlab.com/wireshark/wireshark/-/issues/19269 -
+ * one of the log container objects is aligned on a 2-byte
+ * bundary but *not* on a 4-byte boundary, with 3 bytes
+ * of padding.
+ */
current_start_pos++;
- if (file_seek(params->fh, current_start_pos, SEEK_SET, &err) < 0) {
+ if (file_seek(params->fh, current_start_pos, SEEK_SET, err) < 0) {
return FALSE;
}
}
+ if (header.header_length < sizeof(blf_blockheader_t)) {
+ *err = WTAP_ERR_BAD_FILE;
+ *err_info = ws_strdup("blf: log container header length too short");
+ return FALSE;
+ }
+
if (header.header_type != BLF_HEADER_TYPE_DEFAULT) {
- ws_debug("unknown header type, I know only BLF_HEADER_TYPE_DEFAULT (1)");
+ *err = WTAP_ERR_UNSUPPORTED;
+ *err_info = ws_strdup_printf("blf: unknown header type (%u), I know only BLF_HEADER_TYPE_DEFAULT (1)", header.header_type);
+ return FALSE;
+ }
+
+ if (header.object_length < header.header_length) {
+ *err = WTAP_ERR_BAD_FILE;
+ *err_info = ws_strdup("blf: log container header object length less than log container header length");
return FALSE;
}
switch (header.object_type) {
case BLF_OBJTYPE_LOG_CONTAINER:
- if (header.header_length < sizeof(blf_blockheader_t)) {
- ws_debug("log container header length too short");
- return FALSE;
- }
-
/* skip unknown header part if needed */
if (header.header_length - sizeof(blf_blockheader_t) > 0) {
/* seek over unknown header part */
- if (file_seek(params->fh, current_start_pos + header.header_length, SEEK_SET, &err) < 0) {
+ if (file_seek(params->fh, current_start_pos + header.header_length, SEEK_SET, err) < 0) {
ws_debug("cannot seek file for skipping unknown header bytes in log container");
return FALSE;
}
}
- if (!wtap_read_bytes_or_eof(params->fh, &logcontainer_header, sizeof(blf_logcontainerheader_t), &err, &err_info)) {
+ /* Read the log container header */
+ if (!wtap_read_bytes_or_eof(params->fh, &logcontainer_header, sizeof(blf_logcontainerheader_t), err, err_info)) {
ws_debug("not enough bytes for log container header");
return FALSE;
}
@@ -961,7 +972,7 @@ blf_scan_file_for_logcontainers(blf_params_t *params) {
/* set up next start position */
current_real_start += logcontainer_header.uncompressed_size;
- if (file_seek(params->fh, current_start_pos + MAX(MAX(16, header.object_length), header.header_length), SEEK_SET, &err) < 0) {
+ if (file_seek(params->fh, current_start_pos + MAX(MAX(16, header.object_length), header.header_length), SEEK_SET, err) < 0) {
ws_debug("cannot seek file for skipping log container bytes");
return FALSE;
}
@@ -973,7 +984,7 @@ blf_scan_file_for_logcontainers(blf_params_t *params) {
ws_debug("we found a non BLF log container on top level. this is unexpected.");
/* TODO: maybe create "fake Log Container" for this */
- if (file_seek(params->fh, current_start_pos + MAX(MAX(16, header.object_length), header.header_length), SEEK_SET, &err) < 0) {
+ if (file_seek(params->fh, current_start_pos + MAX(MAX(16, header.object_length), header.header_length), SEEK_SET, err) < 0) {
return FALSE;
}
}
@@ -1261,7 +1272,7 @@ static guint8 canfd_dlc_to_length[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 16, 20, 2
static gboolean
blf_can_fill_buf_and_rec(blf_params_t *params, int *err, gchar **err_info, guint32 canid, guint8 payload_length, guint8 payload_length_valid, guint64 start_position,
- guint32 flags, guint64 object_timestamp, guint16 channel) {
+ guint32 flags, guint64 object_timestamp, guint16 channel, guint8 canfd_flags) {
guint8 tmpbuf[8];
guint caplen, len;
@@ -1270,7 +1281,7 @@ blf_can_fill_buf_and_rec(blf_params_t *params, int *err, gchar **err_info, guint
tmpbuf[2] = (canid & 0x0000ff00) >> 8;
tmpbuf[3] = (canid & 0x000000ff);
tmpbuf[4] = payload_length;
- tmpbuf[5] = 0;
+ tmpbuf[5] = canfd_flags;
tmpbuf[6] = 0;
tmpbuf[7] = 0;
@@ -1327,7 +1338,7 @@ blf_read_canmessage(blf_params_t *params, int *err, gchar **err_info, gint64 blo
payload_length = 0;
}
- if (!blf_can_fill_buf_and_rec(params, err, err_info, canid, payload_length, payload_length, data_start + sizeof(canheader), flags, object_timestamp, canheader.channel)) {
+ if (!blf_can_fill_buf_and_rec(params, err, err_info, canid, payload_length, payload_length, data_start + sizeof(canheader), flags, object_timestamp, canheader.channel, 0)) {
return FALSE;
}
@@ -1359,6 +1370,7 @@ blf_read_canfdmessage(blf_params_t *params, int *err, gchar **err_info, gint64 b
guint32 canid;
guint8 payload_length;
guint8 payload_length_valid;
+ guint8 canfd_flags;
if (object_length < (data_start - block_start) + (int) sizeof(canheader)) {
*err = WTAP_ERR_BAD_FILE;
@@ -1378,11 +1390,13 @@ blf_read_canfdmessage(blf_params_t *params, int *err, gchar **err_info, gint64 b
canfd = (canheader.canfdflags & BLF_CANFDMESSAGE_CANFDFLAG_EDL) == BLF_CANFDMESSAGE_CANFDFLAG_EDL;
if (canfd) {
payload_length = canfd_dlc_to_length[canheader.dlc];
+ canfd_flags = (canheader.canfdflags & BLF_CANFDMESSAGE_CANFDFLAG_EDL) << 2 | (canheader.canfdflags & BLF_CANFDMESSAGE_CANFDFLAG_ESI) >> 1 | (canheader.canfdflags & BLF_CANFDMESSAGE_CANFDFLAG_BRS) >> 1;
} else {
if (canheader.dlc > 8) {
ws_debug("regular CAN tries more than 8 bytes?");
}
payload_length = can_dlc_to_length[canheader.dlc];
+ canfd_flags = 0;
}
if (payload_length > canheader.validDataBytes) {
@@ -1404,7 +1418,7 @@ blf_read_canfdmessage(blf_params_t *params, int *err, gchar **err_info, gint64 b
payload_length_valid = (guint8)(object_length - (data_start - block_start));
}
- if (!blf_can_fill_buf_and_rec(params, err, err_info, canid, payload_length, payload_length_valid, data_start + sizeof(canheader), flags, object_timestamp, canheader.channel)) {
+ if (!blf_can_fill_buf_and_rec(params, err, err_info, canid, payload_length, payload_length_valid, data_start + sizeof(canheader), flags, object_timestamp, canheader.channel, canfd_flags)) {
return FALSE;
}
@@ -1421,6 +1435,7 @@ blf_read_canfdmessage64(blf_params_t *params, int *err, gchar **err_info, gint64
guint32 canid;
guint8 payload_length;
guint8 payload_length_valid;
+ guint8 canfd_flags;
if (object_length < (data_start - block_start) + (int) sizeof(canheader)) {
*err = WTAP_ERR_BAD_FILE;
@@ -1440,11 +1455,13 @@ blf_read_canfdmessage64(blf_params_t *params, int *err, gchar **err_info, gint64
canfd = (canheader.flags & BLF_CANFDMESSAGE64_FLAG_EDL) == BLF_CANFDMESSAGE64_FLAG_EDL;
if (canfd) {
payload_length = canfd_dlc_to_length[canheader.dlc];
+ canfd_flags = (canheader.flags & BLF_CANFDMESSAGE64_FLAG_EDL) >> 10 | (canheader.flags & BLF_CANFDMESSAGE64_FLAG_ESI) >> 13 | (canheader.flags & BLF_CANFDMESSAGE64_FLAG_BRS) >> 13;
} else {
if (canheader.dlc > 8) {
ws_debug("regular CAN tries more than 8 bytes?");
}
payload_length = can_dlc_to_length[canheader.dlc];
+ canfd_flags = 0;
}
if (payload_length > canheader.validDataBytes) {
@@ -1466,7 +1483,7 @@ blf_read_canfdmessage64(blf_params_t *params, int *err, gchar **err_info, gint64
payload_length_valid = (guint8)(object_length - (data_start - block_start));
}
- if (!blf_can_fill_buf_and_rec(params, err, err_info, canid, payload_length, payload_length_valid, data_start + sizeof(canheader), flags, object_timestamp, canheader.channel)) {
+ if (!blf_can_fill_buf_and_rec(params, err, err_info, canid, payload_length, payload_length_valid, data_start + sizeof(canheader), flags, object_timestamp, canheader.channel, canfd_flags)) {
return FALSE;
}
@@ -1680,6 +1697,7 @@ blf_read_canfderror64(blf_params_t *params, int *err, gchar **err_info, gint64 b
tmpbuf[2] = (canid & 0x0000ff00) >> 8;
tmpbuf[3] = (canid & 0x000000ff);
tmpbuf[4] = payload_length;
+ // Don't set FDF, ESI and BRS flags, since error messages are always encapsulated in Classic CAN frames
ws_buffer_assure_space(params->buf, sizeof(tmpbuf));
ws_buffer_append(params->buf, tmpbuf, sizeof(tmpbuf));
@@ -1911,20 +1929,20 @@ blf_read_flexrayrcvmessageex(blf_params_t *params, int *err, gchar **err_info, g
/* Frame Header */
tmpbuf[2] = ((0x0700 & frheader.frameId) >> 8);
- if ((frheader.data & BLF_FLEXRAYRCVMSG_DATA_FLAG_PAYLOAD_PREAM) == BLF_FLEXRAYRCVMSG_DATA_FLAG_PAYLOAD_PREAM) {
+ if ((frheader.frameFlags & BLF_FLEXRAYRCVMSG_FRAME_FLAG_PAYLOAD_PREAM) == BLF_FLEXRAYRCVMSG_FRAME_FLAG_PAYLOAD_PREAM) {
tmpbuf[2] |= BLF_DLT_FLEXRAY_PPI;
}
- if ((frheader.data & BLF_FLEXRAYRCVMSG_DATA_FLAG_SYNC) == BLF_FLEXRAYRCVMSG_DATA_FLAG_SYNC) {
+ if ((frheader.frameFlags & BLF_FLEXRAYRCVMSG_FRAME_FLAG_SYNC) == BLF_FLEXRAYRCVMSG_FRAME_FLAG_SYNC) {
tmpbuf[2] |= BLF_DLT_FLEXRAY_SFI;
}
- if ((frheader.data & BLF_FLEXRAYRCVMSG_DATA_FLAG_NULL_FRAME) != BLF_FLEXRAYRCVMSG_DATA_FLAG_NULL_FRAME) {
+ if ((frheader.frameFlags & BLF_FLEXRAYRCVMSG_FRAME_FLAG_NULL_FRAME) != BLF_FLEXRAYRCVMSG_FRAME_FLAG_NULL_FRAME) {
/* NFI needs to be inversed !? */
tmpbuf[2] |= BLF_DLT_FLEXRAY_NFI;
}
- if ((frheader.data & BLF_FLEXRAYRCVMSG_DATA_FLAG_STARTUP) == BLF_FLEXRAYRCVMSG_DATA_FLAG_STARTUP) {
+ if ((frheader.frameFlags & BLF_FLEXRAYRCVMSG_FRAME_FLAG_STARTUP) == BLF_FLEXRAYRCVMSG_FRAME_FLAG_STARTUP) {
tmpbuf[2] |= BLF_DLT_FLEXRAY_STFI;
}
@@ -1951,75 +1969,47 @@ blf_read_flexrayrcvmessageex(blf_params_t *params, int *err, gchar **err_info, g
}
static gboolean
-blf_read_linmessage(blf_params_t *params, int *err, gchar **err_info, gint64 block_start, gint64 data_start, gint64 object_length, guint32 flags, guint64 object_timestamp) {
- blf_linmessage_t linheader;
- blf_linmessage_trailer_t lintrailer;
+blf_read_linmessage(blf_params_t* params, int* err, gchar** err_info, gint64 block_start, gint64 data_start, gint64 object_length, guint32 flags, guint64 object_timestamp) {
+ blf_linmessage_t linmessage;
guint8 payload_length;
- guint8 payload_length_valid;
- guint caplen, len;
+ guint len;
- if (object_length < (data_start - block_start) + (int)sizeof(linheader)) {
+ if (object_length < (data_start - block_start) + (int)sizeof(linmessage)) {
*err = WTAP_ERR_BAD_FILE;
- *err_info = ws_strdup_printf("blf: LIN_MESSAGE: not enough bytes for linmessage header in object");
- ws_debug("not enough bytes for linmessage header in object");
+ *err_info = ws_strdup_printf("blf: LIN_MESSAGE: not enough bytes for linmessage in object");
+ ws_debug("not enough bytes for linmessage in object");
return FALSE;
}
- if (!blf_read_bytes(params, data_start, &linheader, sizeof(linheader), err, err_info)) {
- ws_debug("not enough bytes for linmessage header in file");
+ if (!blf_read_bytes(params, data_start, &linmessage, sizeof(linmessage), err, err_info)) {
+ ws_debug("not enough bytes for linmessage in file");
return FALSE;
}
- fix_endianness_blf_linmessage(&linheader);
+ fix_endianness_blf_linmessage(&linmessage);
- if (linheader.dlc > 15) {
- linheader.dlc = 15;
- }
-
- payload_length = linheader.dlc;
- payload_length_valid = payload_length;
+ linmessage.dlc &= 0x0f;
+ linmessage.id &= 0x3f;
- if (payload_length_valid > object_length - (data_start - block_start)) {
- ws_debug("shortening LIN payload because buffer is too short!");
- payload_length_valid = (guint8)(object_length - (data_start - block_start));
- }
+ payload_length = MIN(linmessage.dlc, 8);
guint8 tmpbuf[8];
tmpbuf[0] = 1; /* message format rev = 1 */
tmpbuf[1] = 0; /* reserved */
tmpbuf[2] = 0; /* reserved */
tmpbuf[3] = 0; /* reserved */
- tmpbuf[4] = (linheader.dlc << 4) | 0; /* dlc (4bit) | type (2bit) | checksum type (2bit) */
- tmpbuf[5] = linheader.id;
- tmpbuf[6] = 0; /* checksum */
+ tmpbuf[4] = (linmessage.dlc << 4) | 0; /* dlc (4bit) | type (2bit) | checksum type (2bit) */
+ tmpbuf[5] = linmessage.id; /* parity (2bit) | id (6bit) */
+ tmpbuf[6] = (guint8)(linmessage.crc & 0xff); /* checksum */
tmpbuf[7] = 0; /* errors */
- ws_buffer_assure_space(params->buf, sizeof(tmpbuf) + payload_length_valid);
+ ws_buffer_assure_space(params->buf, sizeof(tmpbuf) + payload_length);
ws_buffer_append(params->buf, tmpbuf, sizeof(tmpbuf));
- caplen = sizeof(tmpbuf) + payload_length_valid;
+ ws_buffer_append(params->buf, linmessage.data, payload_length);
len = sizeof(tmpbuf) + payload_length;
- if (payload_length_valid > 0 && !blf_read_bytes(params, data_start + 4, ws_buffer_end_ptr(params->buf), payload_length_valid, err, err_info)) {
- ws_debug("copying can payload failed");
- return FALSE;
- }
- params->buf->first_free += payload_length_valid;
-
- if (object_length < (data_start - block_start) + (int)sizeof(linheader) + payload_length_valid + (int)sizeof(lintrailer)) {
- *err = WTAP_ERR_BAD_FILE;
- *err_info = ws_strdup_printf("blf: LIN_MESSAGE: not enough bytes for linmessage trailer");
- ws_debug("not enough bytes for linmessage trailer");
- return FALSE;
- }
- if (!blf_read_bytes(params, data_start + sizeof(linheader) + payload_length_valid, &lintrailer, sizeof(lintrailer), err, err_info)) {
- ws_debug("not enough bytes for linmessage trailer in file");
- return FALSE;
- }
- fix_endianness_blf_linmessage_trailer(&lintrailer);
- /* we are not using it right now since the CRC is too big to convert */
-
- blf_init_rec(params, flags, object_timestamp, WTAP_ENCAP_LIN, linheader.channel, UINT16_MAX, caplen, len);
- blf_add_direction_option(params, lintrailer.dir);
+ blf_init_rec(params, flags, object_timestamp, WTAP_ENCAP_LIN, linmessage.channel, UINT16_MAX, len, len);
+ blf_add_direction_option(params, linmessage.dir);
return TRUE;
}
@@ -2404,9 +2394,7 @@ static gboolean blf_seek_read(wtap *wth, gint64 seek_off, wtap_rec *rec, Buffer
return TRUE;
}
-static void blf_close(wtap *wth) {
- blf_t *blf = (blf_t *)wth->priv;
-
+static void blf_free(blf_t *blf) {
if (blf != NULL && blf->log_containers != NULL) {
for (guint i = 0; i < blf->log_containers->len; i++) {
blf_log_container_t *log_container = &g_array_index(blf->log_containers, blf_log_container_t, i);
@@ -2422,10 +2410,12 @@ static void blf_close(wtap *wth) {
g_hash_table_destroy(blf->channel_to_iface_ht);
blf->channel_to_iface_ht = NULL;
}
+}
- /* TODO: do we need to reverse the wtap_add_idb? how? */
+static void blf_close(wtap *wth) {
+ blf_free((blf_t *)wth->priv);
- return;
+ /* TODO: do we need to reverse the wtap_add_idb? how? */
}
wtap_open_return_val
@@ -2461,8 +2451,17 @@ blf_open(wtap *wth, int *err, gchar **err_info) {
}
/* This seems to be an BLF! */
- /* skip unknown part of header */
- file_seek(wth->fh, header.header_length, SEEK_SET, err);
+ /* Check for a valid header length */
+ if (header.header_length < sizeof(blf_blockheader_t)) {
+ *err = WTAP_ERR_BAD_FILE;
+ *err_info = ws_strdup("blf: file header length too short");
+ return WTAP_OPEN_ERROR;
+ }
+
+ /* skip past the header, which may include padding/reserved space */
+ if (file_seek(wth->fh, header.header_length, SEEK_SET, err) < 0) {
+ return WTAP_OPEN_ERROR;
+ }
struct tm timestamp;
timestamp.tm_year = (header.start_date.year > 1970) ? header.start_date.year - 1900 : 70;
@@ -2493,7 +2492,11 @@ blf_open(wtap *wth, int *err, gchar **err_info) {
params.blf_data->current_real_seek_pos = 0;
/* lets check out the layout of all log containers */
- blf_scan_file_for_logcontainers(&params);
+ if (!blf_scan_file_for_logcontainers(&params, err, err_info)) {
+ /* That didn't work. */
+ blf_free(blf);
+ return WTAP_OPEN_ERROR;
+ }
wth->priv = (void *)blf;
wth->file_encap = WTAP_ENCAP_NONE;
diff --git a/wiretap/blf.h b/wiretap/blf.h
index d372f95..fb9e117 100644
--- a/wiretap/blf.h
+++ b/wiretap/blf.h
@@ -3,7 +3,7 @@
* Binary Log File (BLF) file format from Vector Informatik decoder
* for the Wiretap library.
*
- * Copyright (c) 2021-2022 by Dr. Lars Voelker <lars.voelker@technica-engineering.de>
+ * Copyright (c) 2021-2024 by Dr. Lars Voelker <lars.voelker@technica-engineering.de>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
@@ -276,6 +276,10 @@ typedef struct blf_canerrorext {
/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/CanFdErrorFrame64.h */
+#define BLF_CANERROR64_FLAG_FDF 0x01
+#define BLF_CANERROR65_FLAG_BRS 0x02
+#define BLF_CANERROR65_FLAG_ESI 0x04
+
typedef struct blf_canfderror64 {
guint8 channel;
guint8 dlc;
@@ -367,14 +371,14 @@ typedef struct blf_flexraymessage {
#define BLF_FLEXRAYRCVMSG_CHANNELMASK_B 0x02
#define BLF_FLEXRAYRCVMSG_CHANNELMASK_AB 0x03
-#define BLF_FLEXRAYRCVMSG_DATA_FLAG_NULL_FRAME 0x00000001
-#define BLF_FLEXRAYRCVMSG_DATA_FLAG_VALID_DATA 0x00000002
-#define BLF_FLEXRAYRCVMSG_DATA_FLAG_SYNC 0x00000004
-#define BLF_FLEXRAYRCVMSG_DATA_FLAG_STARTUP 0x00000008
-#define BLF_FLEXRAYRCVMSG_DATA_FLAG_PAYLOAD_PREAM 0x00000010
-#define BLF_FLEXRAYRCVMSG_DATA_FLAG_RES_20 0x00000020
-#define BLF_FLEXRAYRCVMSG_DATA_FLAG_ERROR 0x00000040
-#define BLF_FLEXRAYRCVMSG_DATA_FLAG_RES_80 0x00000080
+#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_NULL_FRAME 0x00000001
+#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_VALID_DATA 0x00000002
+#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_SYNC 0x00000004
+#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_STARTUP 0x00000008
+#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_PAYLOAD_PREAM 0x00000010
+#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_RES_20 0x00000020
+#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_ERROR 0x00000040
+#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_RES_80 0x00000080
typedef struct blf_flexrayrcvmessage {
guint16 channel;
@@ -443,9 +447,7 @@ typedef struct blf_linmessage {
guint16 channel;
guint8 id;
guint8 dlc;
-} blf_linmessage_t;
-
-typedef struct blf_linmessage_trailer {
+ guint8 data[8];
guint8 fsmId;
guint8 fsmState;
guint8 headerTime;
@@ -456,7 +458,7 @@ typedef struct blf_linmessage_trailer {
/* This field is optional and skipping does not hurt us.
guint32 res2;
*/
-} blf_linmessage_trailer_t;
+} blf_linmessage_t;
/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/AppText.h */
diff --git a/wiretap/file_access.c b/wiretap/file_access.c
index 01317da..ca4d2f6 100644
--- a/wiretap/file_access.c
+++ b/wiretap/file_access.c
@@ -2680,7 +2680,7 @@ wtap_dump_close(wtap_dumper *wdh, gboolean *needs_reload,
*needs_reload = wdh->needs_reload;
g_free(wdh->priv);
wtap_block_array_free(wdh->interface_data);
- wtap_block_array_free(wdh->dsbs_initial);
+ wtap_block_array_unref(wdh->dsbs_initial);
g_free(wdh);
return ret;
}
diff --git a/wiretap/pcap-common.c b/wiretap/pcap-common.c
index 3a60794..a4b02cb 100644
--- a/wiretap/pcap-common.c
+++ b/wiretap/pcap-common.c
@@ -1931,13 +1931,26 @@ struct usb_device_setup_hdr {
PBSWAP64((guint8 *)fieldp); \
}
-struct can_socketcan_hdr {
- guint32 can_id; /* CAN ID and flags */
- guint8 payload_length; /* Frame payload length */
- guint8 padding;
- guint8 reserved1;
- guint8 reserved2;
-};
+/*
+ * Offset and length of the CAN ID field in the CAN classic/CAN FD
+ * SocketCAN header.
+ */
+#define CAN_CANFD_CAN_ID_OFFSET 0
+#define CAN_CANFD_CAN_ID_LEN 4
+
+/*
+ * Offsets and lengths of fields in the CAN XL SocketCAN header.
+ */
+#define CANXL_PRIORITY_VCID_OFFSET 0
+#define CANXL_PRIORITY_VCID_LEN 4
+#define CANXL_FLAGS_OFFSET (CANXL_PRIORITY_VCID_OFFSET + CANXL_PRIORITY_VCID_LEN)
+#define CANXL_FLAGS_LEN 1
+#define CANXL_SDU_TYPE_OFFSET (CANXL_FLAGS_OFFSET + CANXL_FLAGS_LEN)
+#define CANXL_SDU_TYPE_LEN 1
+#define CANXL_PAYLOAD_LENGTH_OFFSET (CANXL_SDU_TYPE_OFFSET + CANXL_SDU_TYPE_LEN)
+#define CANXL_PAYLOAD_LENGTH_LEN 2
+#define CANXL_ACCEPTANCE_FIELD_OFFSET (CANXL_PAYLOAD_LENGTH_OFFSET + CANXL_PAYLOAD_LENGTH_LEN)
+#define CANXL_ACCEPTANCE_FIELD_LEN 4
/*
* CAN fake link-layer headers in Linux cooked packets.
@@ -1951,15 +1964,65 @@ struct can_socketcan_hdr {
/*
* The protocols we have to check for.
*/
-#define LINUX_SLL_P_CAN 0x000C /* Controller Area Network */
+#define LINUX_SLL_P_CAN 0x000C /* Controller Area Network classic */
#define LINUX_SLL_P_CANFD 0x000D /* Controller Area Network flexible data rate */
+#define LINUX_SLL_P_CANXL 0x000E /* Controller Area Network extended length */
+
+static void
+pcap_byteswap_can_socketcan_pseudoheader(guint packet_size, guint16 protocol,
+ guint8 *pd)
+{
+ switch (protocol) {
+
+ case LINUX_SLL_P_CAN:
+ case LINUX_SLL_P_CANFD:
+ /*
+ * CAN classic or CAN FD; byte-swap the ID/flags field
+ * into our host byte order.
+ *
+ * Make sure we have the entire field.
+ */
+ if (packet_size < (CAN_CANFD_CAN_ID_OFFSET + CAN_CANFD_CAN_ID_LEN)) {
+ /* Not enough data to have the full CAN ID */
+ return;
+ }
+ PBSWAP32(&pd[CAN_CANFD_CAN_ID_OFFSET]);
+ break;
+
+ case LINUX_SLL_P_CANXL:
+ /*
+ * CAN classic or CAN FD; byte-swap the priority-and-VCID
+ * field, the payload length, ad the acceptance field
+ * into our host byte order.
+ */
+ if (packet_size < (CANXL_PRIORITY_VCID_OFFSET + CANXL_PRIORITY_VCID_LEN)) {
+ /* Not enough data to have the full priority/VCID field */
+ return;
+ }
+ PBSWAP32(&pd[CANXL_PRIORITY_VCID_OFFSET]);
+ if (packet_size < (CANXL_PAYLOAD_LENGTH_OFFSET + CANXL_PAYLOAD_LENGTH_LEN)) {
+ /* Not enough data to have the full payload length field */
+ return;
+ }
+ PBSWAP16(&pd[CANXL_PAYLOAD_LENGTH_OFFSET]);
+ if (packet_size < (CANXL_ACCEPTANCE_FIELD_OFFSET + CANXL_ACCEPTANCE_FIELD_LEN)) {
+ /* Not enough data to have the full payload length field */
+ return;
+ }
+ PBSWAP32(&pd[CANXL_ACCEPTANCE_FIELD_OFFSET]);
+ break;
+
+ default:
+ /* Not a CAN packet; nothing to fix */
+ return;
+ }
+}
static void
pcap_byteswap_linux_sll_pseudoheader(wtap_rec *rec, guint8 *pd)
{
guint packet_size;
guint16 protocol;
- struct can_socketcan_hdr *can_socketcan_phdr;
/*
* Minimum of captured and actual length (just in case the
@@ -1975,26 +2038,12 @@ pcap_byteswap_linux_sll_pseudoheader(wtap_rec *rec, guint8 *pd)
return;
}
- protocol = pntoh16(&pd[LINUX_SLL_PROTOCOL_OFFSET]);
- if (protocol != LINUX_SLL_P_CAN && protocol != LINUX_SLL_P_CANFD) {
- /* Not a CAN packet; nothing to fix */
- return;
- }
-
/*
- * Greasy hack, but we never directly dereference any of
- * the fields in *can_socketcan_phdr, we just get offsets
- * of and addresses of its members and byte-swap it with a
- * byte-at-a-time macro, so it's alignment-safe.
+ * Byte-swap the SocketCAN pseudoheader, if we have one.
*/
- can_socketcan_phdr = (struct can_socketcan_hdr *)(void *)(pd + LINUX_SLL_LEN);
-
- if (packet_size < LINUX_SLL_LEN + sizeof(can_socketcan_phdr->can_id)) {
- /* Not enough data to have the full CAN ID */
- return;
- }
-
- PBSWAP32((guint8 *)&can_socketcan_phdr->can_id);
+ protocol = pntoh16(&pd[LINUX_SLL_PROTOCOL_OFFSET]);
+ pcap_byteswap_can_socketcan_pseudoheader(packet_size - LINUX_SLL_LEN,
+ protocol, pd + LINUX_SLL_LEN);
}
static void
@@ -2002,7 +2051,6 @@ pcap_byteswap_linux_sll2_pseudoheader(wtap_rec *rec, guint8 *pd)
{
guint packet_size;
guint16 protocol;
- struct can_socketcan_hdr *can_socketcan_phdr;
/*
* Minimum of captured and actual length (just in case the
@@ -2018,26 +2066,12 @@ pcap_byteswap_linux_sll2_pseudoheader(wtap_rec *rec, guint8 *pd)
return;
}
- protocol = pntoh16(&pd[LINUX_SLL2_PROTOCOL_OFFSET]);
- if (protocol != LINUX_SLL_P_CAN && protocol != LINUX_SLL_P_CANFD) {
- /* Not a CAN packet; nothing to fix */
- return;
- }
-
/*
- * Greasy hack, but we never directly dereference any of
- * the fields in *can_socketcan_phdr, we just get offsets
- * of and addresses of its members and byte-swap it with a
- * byte-at-a-time macro, so it's alignment-safe.
+ * Byte-swap the SocketCAN pseudoheader, if we have one.
*/
- can_socketcan_phdr = (struct can_socketcan_hdr *)(void *)(pd + LINUX_SLL2_LEN);
-
- if (packet_size < LINUX_SLL2_LEN + sizeof(can_socketcan_phdr->can_id)) {
- /* Not enough data to have the full CAN ID */
- return;
- }
-
- PBSWAP32((guint8 *)&can_socketcan_phdr->can_id);
+ protocol = pntoh16(&pd[LINUX_SLL2_PROTOCOL_OFFSET]);
+ pcap_byteswap_can_socketcan_pseudoheader(packet_size - LINUX_SLL2_LEN,
+ protocol, pd + LINUX_SLL2_LEN);
}
static void
diff --git a/wiretap/pcapng.c b/wiretap/pcapng.c
index 85c635f..f5c3b32 100644
--- a/wiretap/pcapng.c
+++ b/wiretap/pcapng.c
@@ -16,10 +16,10 @@
*/
#include "config.h"
-#include "wtap_opttypes.h"
-
#define WS_LOG_DOMAIN LOG_DOMAIN_WIRETAP
+#include "wtap_opttypes.h"
+
#include <stdlib.h>
#include <string.h>
#include <errno.h>
@@ -4368,7 +4368,6 @@ static guint32 pcapng_compute_packet_hash_option_size(wtap_optval_t *optval)
{
packet_hash_opt_t* hash = &optval->packet_hash;
guint32 size;
- guint32 pad;
switch (hash->type) {
case OPT_HASH_CRC32:
@@ -4388,12 +4387,25 @@ static guint32 pcapng_compute_packet_hash_option_size(wtap_optval_t *optval)
size = hash->hash_bytes->len;
break;
}
+ /* XXX - What if the size of the hash bytes doesn't match the
+ * expected size? We can:
+ * 1) Return 0, and omit it when writing
+ * 2) Return hash_bytes->len, and write it out exactly as we have it
+ * 3) Return the correct size here, and when writing err or possibly
+ * truncate.
+ */
+ /* Account for the size of the algorithm type field. */
+ size += 1;
+#if 0
+ /* compute_block_option_size() handles padding. */
+ uint32_t pad;
if ((size % 4)) {
pad = 4 - (size % 4);
} else {
pad = 0;
}
size += pad;
+#endif
return size;
}
@@ -4401,7 +4413,6 @@ static guint32 pcapng_compute_packet_verdict_option_size(wtap_optval_t *optval)
{
packet_verdict_opt_t* verdict = &optval->packet_verdictval;
guint32 size;
- guint32 pad;
switch (verdict->type) {
@@ -4410,23 +4421,31 @@ static guint32 pcapng_compute_packet_verdict_option_size(wtap_optval_t *optval)
break;
case packet_verdict_linux_ebpf_tc:
- size = 9;
+ size = 8;
break;
case packet_verdict_linux_ebpf_xdp:
- size = 9;
+ size = 8;
break;
default:
size = 0;
break;
}
+ /* Account for the type octet */
+ if (size) {
+ size += 1;
+ }
+#if 0
+ /* compute_block_option_size() handles padding. */
+ uint32_t pad;
if ((size % 4)) {
pad = 4 - (size % 4);
} else {
pad = 0;
}
size += pad;
+#endif
return size;
}
@@ -4468,6 +4487,15 @@ compute_block_option_size(wtap_block_t block _U_, guint option_id, wtap_opttype_
/*
* Are we writing this option?
*/
+ /*
+ * XXX: The option length field is 16 bits. If size > 65535 (how?
+ * was the block was obtained from some format other than pcapng?),
+ * are we going to silently omit the option (in which case we shouldn't
+ * add the size here), or err out when writing it (in which case
+ * it's probably fine to add the size or not?) Adding it here and
+ * then omitting it when writing, as some of the routines do, means
+ * creating a corrupt file.
+ */
if (size != 0) {
/*
* Yes. Add the size of the option header to the size of the
@@ -4922,7 +4950,8 @@ static gboolean pcapng_write_packet_verdict_option(wtap_dumper *wdh, guint optio
switch (verdict->type) {
case packet_verdict_hardware:
- size = verdict->data.verdict_bytes->len;
+ /* Include type octet */
+ size = verdict->data.verdict_bytes->len + 1;
if (size > 65535) {
/*
* Too big to fit in the option.
@@ -4941,8 +4970,8 @@ static gboolean pcapng_write_packet_verdict_option(wtap_dumper *wdh, guint optio
if (!wtap_dump_file_write(wdh, &type, sizeof(guint8), err))
return FALSE;
- if (!wtap_dump_file_write(wdh, verdict->data.verdict_bytes->data, size,
- err))
+ if (!wtap_dump_file_write(wdh, verdict->data.verdict_bytes->data,
+ verdict->data.verdict_bytes->len, err))
return FALSE;
break;
@@ -4992,6 +5021,63 @@ static gboolean pcapng_write_packet_verdict_option(wtap_dumper *wdh, guint optio
return TRUE;
}
+static gboolean pcapng_write_packet_hash_option(wtap_dumper *wdh, unsigned option_id, wtap_optval_t *optval, int *err)
+{
+ packet_hash_opt_t* hash = &optval->packet_hash;
+ struct pcapng_option_header option_hdr;
+ uint8_t type;
+ size_t size;
+ const uint32_t zero_pad = 0;
+ uint32_t pad;
+
+ size = pcapng_compute_packet_hash_option_size(optval);
+
+ if (size > 65535) {
+ /*
+ * Too big to fit in the option.
+ * Don't write anything.
+ *
+ * XXX - truncate it? Report an error?
+ */
+ return TRUE;
+ }
+
+ if (size > hash->hash_bytes->len + 1) {
+ /*
+ * We don't have enough bytes to write.
+ * pcapng_compute_packet_hash_option_size() should return 0 if
+ * we want to silently omit the option instead, or should return
+ * the length if we want to blindly copy it.
+ * XXX - Is this the best error type?
+ */
+ *err = WTAP_ERR_UNWRITABLE_REC_DATA;
+ return FALSE;
+ }
+
+ type = hash->type;
+
+ option_hdr.type = option_id;
+ /* Include type byte */
+ option_hdr.value_length = (uint16_t)size;
+ if (!wtap_dump_file_write(wdh, &option_hdr, 4, err))
+ return FALSE;
+
+ if (!wtap_dump_file_write(wdh, &type, sizeof(uint8_t), err))
+ return FALSE;
+
+ if (!wtap_dump_file_write(wdh, hash->hash_bytes->data, size - 1,
+ err))
+ return FALSE;
+
+ /* write padding (if any) */
+ if ((size % 4)) {
+ pad = 4 - (size % 4);
+ if (!wtap_dump_file_write(wdh, &zero_pad, pad, err))
+ return FALSE;
+ }
+ return TRUE;
+}
+
static gboolean write_block_option(wtap_block_t block, guint option_id, wtap_opttype_e option_type _U_, wtap_optval_t *optval, void* user_data)
{
write_options_t* options = (write_options_t*)user_data;
@@ -5231,8 +5317,14 @@ static gboolean write_wtap_epb_option(wtap_dumper *wdh, wtap_block_t block _U_,
return FALSE;
break;
case OPT_PKT_VERDICT:
- if (!pcapng_write_packet_verdict_option(wdh, OPT_EPB_QUEUE, optval,
+ if (!pcapng_write_packet_verdict_option(wdh, OPT_EPB_VERDICT, optval,
err))
+ return false;
+ break;
+ case OPT_PKT_HASH:
+ if (!pcapng_write_packet_hash_option(wdh, OPT_EPB_HASH, optval,
+ err))
+ return false;
break;
default:
/* Unknown options - write by datatype? */
diff --git a/wiretap/wtap.h b/wiretap/wtap.h
index 93bcca4..2b25c03 100644
--- a/wiretap/wtap.h
+++ b/wiretap/wtap.h
@@ -1478,7 +1478,8 @@ typedef struct addrinfo_lists {
* @note The shb_hdr and idb_inf arguments will be used until
* wtap_dump_close() is called, but will not be free'd by the dumper. If
* you created them, you must free them yourself after wtap_dump_close().
- * dsbs_initial will be freed by wtap_dump_close(),
+ * dsbs_initial will be unreferenced by wtap_dump_close(), so to reuse
+ * them for another dump file, call wtap_block_array_ref() before closing.
* dsbs_growing typically refers to another wth->dsbs.
* nrbs_growing typically refers to another wth->nrbs.
*
diff --git a/wiretap/wtap_opttypes.c b/wiretap/wtap_opttypes.c
index 7dfbf1a..98ffe4d 100644
--- a/wiretap/wtap_opttypes.c
+++ b/wiretap/wtap_opttypes.c
@@ -466,6 +466,32 @@ void wtap_block_array_free(GArray* block_array)
g_array_free(block_array, TRUE);
}
+void wtap_block_array_ref(GArray* block_array)
+{
+ unsigned block;
+
+ if (block_array == NULL)
+ return;
+
+ for (block = 0; block < block_array->len; block++) {
+ wtap_block_ref(g_array_index(block_array, wtap_block_t, block));
+ }
+ g_array_ref(block_array);
+}
+
+void wtap_block_array_unref(GArray* block_array)
+{
+ unsigned block;
+
+ if (block_array == NULL)
+ return;
+
+ for (block = 0; block < block_array->len; block++) {
+ wtap_block_unref(g_array_index(block_array, wtap_block_t, block));
+ }
+ g_array_unref(block_array);
+}
+
/*
* Make a copy of a block.
*/
diff --git a/wiretap/wtap_opttypes.h b/wiretap/wtap_opttypes.h
index f3d9efb..91dafd6 100644
--- a/wiretap/wtap_opttypes.h
+++ b/wiretap/wtap_opttypes.h
@@ -615,6 +615,29 @@ wtap_block_unref(wtap_block_t block);
WS_DLL_PUBLIC void
wtap_block_array_free(GArray* block_array);
+/** Decrement the reference count of an array of blocks
+ *
+ * Decrement the reference count of each block in the array
+ * and the GArray itself. Any element whose reference count
+ * drops to 0 will be freed. If the GArray and every block
+ * has a reference count of 1, this is the same as
+ * wtap_block_array_free().
+ *
+ * @param[in] block_array Array of blocks to be dereferenced
+ */
+WS_DLL_PUBLIC void
+wtap_block_array_unref(GArray* block_array);
+
+/** Increment the reference count of an array of blocks
+ *
+ * Increment the reference count of each block in the array
+ * and the GArray itself.
+ *
+ * @param[in] block_array Array of blocks to be referenced
+ */
+WS_DLL_PUBLIC void
+wtap_block_array_ref(GArray* block_array);
+
/** Provide type of a block
*
* @param[in] block Block from which to retrieve mandatory data
diff --git a/writecap/pcapio.c b/writecap/pcapio.c
index e5a8c9d..58c4917 100644
--- a/writecap/pcapio.c
+++ b/writecap/pcapio.c
@@ -425,7 +425,7 @@ pcapng_write_interface_description_block(FILE* pfile,
}
/* 11 - IDB_FILTER */
- if ((filter != NULL) && (strlen(filter) > 0) && (strlen(filter) < UINT16_MAX)) {
+ if ((filter != NULL) && (strlen(filter) > 0) && (strlen(filter) < UINT16_MAX - 1)) {
/* No, this isn't a string, it has an extra type byte */
options_length += (uint32_t)(sizeof(struct ws_option) +
(uint16_t)(ADD_PADDING(strlen(filter)+ 1)));
@@ -496,7 +496,8 @@ pcapng_write_interface_description_block(FILE* pfile,
}
/* 11 - IDB_FILTER - write filter string if applicable
- * We only write version 1 of the filter, pcapng string
+ * We write out the libpcap filter expression, not the
+ * generated BPF code.
*/
if ((filter != NULL) && (strlen(filter) > 0) && (strlen(filter) < UINT16_MAX - 1)) {
option.type = IDB_FILTER;
diff --git a/wsutil/cpu_info.c b/wsutil/cpu_info.c
index f9e6aa2..8b06b07 100644
--- a/wsutil/cpu_info.c
+++ b/wsutil/cpu_info.c
@@ -201,7 +201,7 @@ get_cpu_info(GString *str)
/*
* Allocate a buffer for the subkey.
*/
- subkey_buf = (wchar_t *)g_malloc(max_subkey_len * sizeof (wchar_t));
+ subkey_buf = g_new(wchar_t, max_subkey_len);
if (subkey_buf == NULL) {
/* Just give up. */
g_tree_destroy(model_names);
@@ -383,6 +383,7 @@ get_cpu_info(GString *str)
*/
uint32_t CPUInfo[4];
char CPUBrandString[0x40];
+ char *model_name;
unsigned nExIds;
/*
diff --git a/wsutil/to_str.c b/wsutil/to_str.c
index d15576d..d3e4153 100644
--- a/wsutil/to_str.c
+++ b/wsutil/to_str.c
@@ -225,7 +225,10 @@ bytes_to_str_punct_maxlen(wmem_allocator_t *scope,
int truncated = 0;
ws_return_str_if(!src, scope);
- ws_return_str_if(!src_size, scope);
+
+ if (!src_size) {
+ return wmem_strdup(scope, "");
+ }
if (!punct)
return bytes_to_str_maxlen(scope, src, src_size, max_bytes_len);
@@ -264,7 +267,10 @@ bytes_to_str_maxlen(wmem_allocator_t *scope,
int truncated = 0;
ws_return_str_if(!src, scope);
- ws_return_str_if(!src_size, scope);
+
+ if (!src_size) {
+ return wmem_strdup(scope, "");
+ }
if (max_bytes_len == 0 || max_bytes_len > src_size) {
max_bytes_len = src_size;
diff --git a/wsutil/wmem/wmem_map.c b/wsutil/wmem/wmem_map.c
index ea76f45..047b845 100644
--- a/wsutil/wmem/wmem_map.c
+++ b/wsutil/wmem/wmem_map.c
@@ -231,8 +231,8 @@ wmem_map_contains(wmem_map_t *map, const void *key)
{
wmem_map_item_t *item;
- /* Make sure we have a table */
- if (map->table == NULL) {
+ /* Make sure we have map and a table */
+ if (map == NULL || map->table == NULL) {
return false;
}
@@ -255,8 +255,8 @@ wmem_map_lookup(wmem_map_t *map, const void *key)
{
wmem_map_item_t *item;
- /* Make sure we have a table */
- if (map->table == NULL) {
+ /* Make sure we have map and a table */
+ if (map == NULL || map->table == NULL) {
return NULL;
}
@@ -279,8 +279,8 @@ wmem_map_lookup_extended(wmem_map_t *map, const void *key, const void **orig_key
{
wmem_map_item_t *item;
- /* Make sure we have a table */
- if (map->table == NULL) {
+ /* Make sure we have map and a table */
+ if (map == NULL || map->table == NULL) {
return false;
}
@@ -310,8 +310,8 @@ wmem_map_remove(wmem_map_t *map, const void *key)
wmem_map_item_t **item, *tmp;
void *value;
- /* Make sure we have a table */
- if (map->table == NULL) {
+ /* Make sure we have map and a table */
+ if (map == NULL || map->table == NULL) {
return NULL;
}
@@ -341,8 +341,8 @@ wmem_map_steal(wmem_map_t *map, const void *key)
{
wmem_map_item_t **item, *tmp;
- /* Make sure we have a table */
- if (map->table == NULL) {
+ /* Make sure we have map and a table */
+ if (map == NULL || map->table == NULL) {
return false;
}
@@ -395,7 +395,7 @@ wmem_map_foreach(wmem_map_t *map, GHFunc foreach_func, void * user_data)
unsigned i;
/* Make sure we have a table */
- if (map->table == NULL) {
+ if (map == NULL || map->table == NULL) {
return;
}
@@ -415,7 +415,7 @@ wmem_map_foreach_remove(wmem_map_t *map, GHRFunc foreach_func, void * user_data)
unsigned i, deleted = 0;
/* Make sure we have a table */
- if (map->table == NULL) {
+ if (map == NULL || map->table == NULL) {
return 0;
}
diff --git a/wsutil/wmem/wmem_map.h b/wsutil/wmem/wmem_map.h
index a6886dd..cb296fb 100644
--- a/wsutil/wmem/wmem_map.h
+++ b/wsutil/wmem/wmem_map.h
@@ -79,7 +79,7 @@ G_GNUC_MALLOC;
/** Inserts a value into the map.
*
- * @param map The map to insert into.
+ * @param map The map to insert into. Must not be NULL.
* @param key The key to insert by.
* @param value The value to insert.
* @return The previous value stored at this key if any, or NULL.
@@ -90,7 +90,7 @@ wmem_map_insert(wmem_map_t *map, const void *key, void *value);
/** Check if a value is in the map.
*
- * @param map The map to search in.
+ * @param map The map to search in. May be NULL.
* @param key The key to lookup.
* @return true if the key is in the map, otherwise false.
*/
@@ -100,7 +100,7 @@ wmem_map_contains(wmem_map_t *map, const void *key);
/** Lookup a value in the map.
*
- * @param map The map to search in.
+ * @param map The map to search in. May be NULL.
* @param key The key to lookup.
* @return The value stored at the key if any, or NULL.
*/
@@ -111,7 +111,7 @@ wmem_map_lookup(wmem_map_t *map, const void *key);
/** Lookup a value in the map, returning the key, value, and a boolean which
* is true if the key is found.
*
- * @param map The map to search in.
+ * @param map The map to search in. May be NULL.
* @param key The key to lookup.
* @param orig_key (optional) The key that was determined to be a match, if any.
* @param value (optional) The value stored at the key, if any.
@@ -124,7 +124,7 @@ wmem_map_lookup_extended(wmem_map_t *map, const void *key, const void **orig_key
/** Remove a value from the map. If no value is stored at that key, nothing
* happens.
*
- * @param map The map to remove from.
+ * @param map The map to remove from. May be NULL.
* @param key The key of the value to remove.
* @return The (removed) value stored at the key if any, or NULL.
*/
@@ -135,7 +135,7 @@ wmem_map_remove(wmem_map_t *map, const void *key);
/** Remove a key and value from the map but does not destroy (free) them. If no
* value is stored at that key, nothing happens.
*
- * @param map The map to remove from.
+ * @param map The map to remove from. May be NULL.
* @param key The key of the value to remove.
* @return true if key is found false if not.
*/
@@ -157,7 +157,7 @@ wmem_map_get_keys(wmem_allocator_t *list_allocator, wmem_map_t *map);
* of the calls is unpredictable, since it is based on the internal
* storage of data.
*
- * @param map The map to use
+ * @param map The map to use. May be NULL.
* @param foreach_func the function to call for each key/value pair
* @param user_data user data to pass to the function
*/
@@ -170,7 +170,7 @@ wmem_map_foreach(wmem_map_t *map, GHFunc foreach_func, void * user_data);
* the map. The order of the calls is unpredictable, since it is
* based on the internal storage of data.
*
- * @param map The map to use
+ * @param map The map to use. May be NULL.
* @param foreach_func the function to call for each key/value pair
* @param user_data user data to pass to the function
* @return The number of items removed