diff options
Diffstat (limited to '')
131 files changed, 4713 insertions, 2124 deletions
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 7ea23317..345a7bab 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 dd025492..67a5e645 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 @@ -232,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 @@ -262,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. @@ -345,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 @@ -372,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 @@ -528,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 @@ -573,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 @@ -624,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 @@ -633,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 @@ -812,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 @@ -856,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. @@ -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> @@ -4338,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> @@ -5249,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> @@ -5300,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 132e4a94..155e0a43 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 4) +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) @@ -1,1175 +1,1506 @@ -commit cde7eb73a1b -Author: Niels Widger <niels@qacafe.com> -Date: Mon Mar 25 13:58:54 2024 -0400 +commit 7263aefcb0 +Author: Gerald Combs <gerald@wireshark.org> +Date: Mon May 13 15:55:35 2024 -0700 - sharkd: Add "column_info" field to "status" method + Prep for 4.2.5 - Add new `column_info` field to `sharkd`'s `status` method which - contains additional column information. A new `column_info` field was - added because the existing `columns` field is a simple string array - and therefore new fields could not be added to it in a - backwards-compatible manner. The new `column_info` field includes - each column's title, format string (i.e. `%x` or - `%Cus:<expr>:<occurrence>` if `COL_CUSTOM`) as well as booleans - indicating if the column is visible or resolved. +commit e02689beb6 +Author: John Thacker <johnthacker@gmail.com> +Date: Mon May 13 22:06:46 2024 +0000 - The existing `sharkd` unit tests `test_sharkd_req_status_no_pcap` and - `test_sharkd_req_status` have been updated to check for the new - `column_info` field. + Qt: Fix RTP Player crash - (cherry picked from commit a7236f6a57802cddb8d57f21d904bea729051b09) + 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.) -commit 99655aa204c -Author: John Thacker <johnthacker@gmail.com> -Date: Wed Mar 27 09:52:21 2024 -0400 + Fix #19596 - IPPUSB: Avoid (mostly harmless) string overread + (cherry picked from commit 7698e03ba13e2e9966c84fbd800f8ab6c25983ef) - The result of tvb_get_ptr and the CHUNKED_END array are not - null terminated (but are guaranteed to be CHUNK_LENGTH_MIN), - so memcmp is more appropriate than strncmp, as the later will - call strlen, which goes outside the desired range. It's a read, - not a write, and it will be thrown away because it will always - compare larger than CHUNK_LENGTH_MIN, but there's no reason to - do it. It also, at least on some versions of gcc and some compiler - options, causes a stringop-overread warning that becomes an error. + Co-authored-by: John Thacker <johnthacker@gmail.com> - For good practice, replace the tvb_get_ptr + memcmp call with - tvb_memeql. +commit 8be6839369 +Author: Gerald Combs <gerald@wireshark.org> +Date: Mon May 13 13:07:00 2024 -0700 - (cherry picked from commit 3a7b6188972e5fc59ce7df053e660b4f200795f8) + GitLab CI: Fix a couple of separators -commit e6abb97eb87 +commit 01a8f70b09 Author: John Thacker <johnthacker@gmail.com> -Date: Tue Mar 26 19:03:31 2024 -0400 - - Qt: Apply the fix for SyntaxComboBoxes to Qt 5.15.3 +Date: Wed Oct 18 20:59:53 2023 -0400 - The change that caused SyntaxLineEdit backgrounds not to be applied - when inside a QComboBox (#18175, caused by Qt trying to fix - https://bugreports.qt.io/browse/QTBUG-81533) was backported to - Qt 5.15.3, so apply it on those versions as well. + GitLab CI: Switch the openSUSE builds to 15.5 - There might well be a better way to work around this, but this - is simple enough and works. + (cherry picked from commit a274d763df69d2a3d91f6478f6deb29c0c039952) - Fix #18996 +commit 1b9e1eccc8 +Author: Gerald Combs <gerald@wireshark.org> +Date: Mon May 13 12:41:37 2024 -0700 - (cherry picked from commit 24b27a78e2cb2c64f1b359c920fd5f2fa051396a) + GitLab CI: Quote a variable -commit c05c751df5a +commit c637058453 Author: Gerald Combs <gerald@wireshark.org> -Date: Mon Mar 25 16:29:53 2024 -0700 +Date: Mon May 13 12:01:53 2024 -0700 - Prep for 4.2.4 + GitLab CI: Try to add back Lua on macOS -commit bff2e50c192 -Author: Gerald Combs <gerald@wireshark.org> -Date: Sat Mar 23 17:16:46 2024 -0700 +commit 9118420bb8 +Author: John Thacker <johnthacker@gmail.com> +Date: Mon May 13 14:52:45 2024 +0000 - DVB-S2: Add a null check + Packaging: Get MinGW cross-compiling working with Qt 6.7 - (cherry picked from commit 105da2927f217e21216b0d1f3e5c6f4022d28ac6) + 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. -commit 4bd1e2d4deb -Author: Gerald Combs <gerald@wireshark.org> -Date: Sat Mar 23 17:12:04 2024 -0700 + (cherry picked from commit 169392ce60ebf3d1fdc090ebf08ecdb313edb145) - ISO 7816: Add a null check + Co-authored-by: John Thacker <johnthacker@gmail.com> - (cherry picked from commit 45342588857f4410c7e2c7d11c72105010e459b3) +commit e93ac94572 +Author: John Thacker <johnthacker@gmail.com> +Date: Mon May 13 13:37:23 2024 +0000 -commit c430b886679 -Author: Gerald Combs <gerald@wireshark.org> -Date: Sat Mar 23 17:03:35 2024 -0700 + wslua: Fix segfault when registering a field / ei twice - H.264+H.265: Add null checks + 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. - Make sure our field pointers are valid. Found by scan-build. + Fix #19194 - (cherry picked from commit 0cc1a5f11077094266b2bd3ddf272aa0a5c7ae88) + (cherry picked from commit 70a3c9f82913d6c70ddc57d19976f80a676c9c56) - Conflicts: - epan/dissectors/packet-h264.c - epan/dissectors/packet-h265.c + Co-authored-by: John Thacker <johnthacker@gmail.com> -commit 9cc50ba9757 -Author: Gerald Combs <gerald@wireshark.org> -Date: Sun Mar 24 09:24:14 2024 +0000 +commit 7f380a2a9d +Author: John Thacker <johnthacker@gmail.com> +Date: Mon May 13 13:06:21 2024 +0000 - [Automatic update for 2024-03-24] + GitLab CI: Fix the Documentation job artifacts - Update manuf, services enterprise numbers, translations, and other items. + (cherry picked from commit 674e79c29e8144bb61ef4b3248be9fcb33c8dc9b) -commit 73cae3cda13 -Author: Gerald Combs <gerald@wireshark.org> -Date: Sat Mar 23 10:37:13 2024 -0700 + Co-authored-by: Gerald Combs <gerald@wireshark.org> - Add recursion checks to SoulSeek, SML, and Socks +commit 8c1ba39798 +Author: John Thacker <johnthacker@gmail.com> +Date: Mon May 13 12:35:29 2024 +0000 - (cherry picked from commit 5366c18d28774f30c463d95df0e5e58d61f85897) + GitLab CI: Install ruby-dev in the Documentation job -commit 092d48aec06 -Author: Gerald Combs <gerald@wireshark.org> -Date: Sat Mar 23 11:53:04 2024 -0700 + (cherry picked from commit 520fb7848ec713eadd9a0b149197d793789e9c52) - Recursion updates for Gryphon, MATE, OpcUa, PNIO, and WiMAX ASN CP + Co-authored-by: Gerald Combs <gerald@wireshark.org> - (cherry picked from commit 6d4375846b07b827c73be6474c34dc68284414ab) +commit 235136144c +Author: John Thacker <johnthacker@gmail.com> +Date: Sun May 12 08:53:46 2024 -0400 - Conflicts: - plugins/epan/mate/mate_runtime.c - plugins/epan/opcua/opcua_simpletypes.c + Revert "Lua: Replace lua_pushnumber with lua_pushinteger where apropriate." -commit 76c41d8dc0a -Author: Gerald Combs <gerald@wireshark.org> -Date: Sat Mar 23 10:19:43 2024 -0700 + This reverts commit 8cac5932f79b87deda26480769a266ff344036e6. - Add recursion checks to LLRP, MQ PCF, OPSI, and OSC +commit f12b53ac0f +Author: John Thacker <johnthacker@gmail.com> +Date: Sun May 12 08:53:24 2024 -0400 - (cherry picked from commit f9e954497fb9900dfc62fd55b870f0d859147ec6) + Revert "wslua: Fix support for Lua 5.1 and 5.2 on 32bit" -commit f0678f3ae71 -Author: Guy Harris <gharris@sonic.net> -Date: Fri Mar 22 12:23:04 2024 -0700 + This reverts commit f8fd960cb8f5378c8ab6b20b4bc7f0b73498d057. - expert: register ei_unreassembled with proto_unreassembled. +commit 4ed940da8c +Author: John Thacker <johnthacker@gmail.com> +Date: Sun May 12 08:53:11 2024 -0400 - We have two pseudo-protocols, not one, and proto_unreassembled is - intended for "Wireshark didn't reassemble this, so we ran past the end - of the first segment" type errors. Have two separate ei_register_info[] - arrays, one for errors deemed "malformed" and one for errors deemed - "unreassembled", and register them with the appropriate protocols. + Revert "Lua: Revert a mistaken change to lua_pushinteger" - (cherry picked from commit e4a33420689431c6c399946fb3c6203cf687b5a2) + This reverts commit f2dc894cb2e50668a3f80bfdffed1932f8e35459. -commit 0ef35722a7f +commit a88ec0adc0 Author: Gerald Combs <gerald@wireshark.org> -Date: Thu Mar 21 09:25:29 2024 -0700 - - USBVIDEO: Add a class data type check +Date: Sun May 12 09:26:48 2024 +0000 - Make sure our class data type is USB_CONV_VIDEO before trying to use it. + [Automatic update for 2024-05-12] - Fixes #19717 + Update manuf, services enterprise numbers, translations, and other items. - (cherry picked from commit 0e1bad2875f2d73a6d67169eeb9f1cdb7554e1c2) +commit e8d6cf7c66 +Author: John Thacker <johnthacker@gmail.com> +Date: Sat May 11 13:12:25 2024 +0000 -commit a9c7dcd27eb -Author: Gerald Combs <gerald@wireshark.org> -Date: Thu Mar 21 13:03:14 2024 -0700 + lua: Deregister heuristic lists added via heuristic_new on reload - Windows: Upgrade c-ares to 1.27.0 + Heuristic dissectors lists don't necessarily (and don't usually) + have the name of a given dissector handle. - (cherry picked from commit c733727c76a012b43d4026071e51e9a0d56559f3) + 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. -commit 02218b1fb77 -Author: John Thacker <johnthacker@gmail.com> -Date: Wed Mar 20 12:02:51 2024 -0400 + Fix #19603 - TFTP: Fix export objects in single pass tshark + (backported from commit 2b2b032af2bdb33345534db33445a2aad24c6217) - We cannot know during the first pass if the capture file contains - the last block of a TFTP transfer, so we have to copy the blocks - regardless (if we have no missing blocks yet.) +commit 0711fa7b1e +Author: mistral13 <mistral@gmx.ch> +Date: Wed Oct 11 22:17:50 2023 +0200 - Fix #19715 + btmesh: Various fixes from master - (cherry picked from commit e640ecd591fdc837ee2ed79b1e39bee5b34829e3) + 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 b0288cb8fb4 -Author: Gerald Combs <gerald@wireshark.org> -Date: Wed Mar 20 09:54:17 2024 -0700 + Fixed some code indent while already visiting this file. - Add recursion checks to EXTREME MESH, LwM2M-TLV, MPLS ECHO, SNA, and TCAP + Ping #19388 - (cherry picked from commit 1ed5bd8dd2c7b1a8c79c60fb368717728f0d15c4) + (cherry picked from commit d3fab19401caf09e2e65047d2843db9d3caf2131) + (cherry picked from commit 50f322ec1702f4ce0e2d94a19509a82b3fb3df24) + (cherry picked from commit 38d05ad97a4a2158b834f973a5b6a034c78edc7b) + (cherry picked from commit a4527fa0418605318c8986bc8947a606e72043a9) -commit b03e1136fc4 -Author: Guy Harris <gharris@sonic.net> -Date: Tue Mar 19 11:43:18 2024 -0700 +commit 949aa570f3 +Author: John Thacker <johnthacker@gmail.com> +Date: Fri May 10 10:42:03 2024 -0400 - mac-lte: fix more bogus casts. + Lua: Fix DissectorTable on certain Lua versions (e.g., 32 bit) - It is *not* safe to pass a pointer to anything other than a pointer to a - guint32/uint32_t as the last argument to proto_tree_add_item_ret_uint(). + 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.) - Doing so, and then making the compiler's complaint about that because - you want your code to compile, means that a full 32 bits will be written - to, even though they're being written to somethiing smaller than 32 - bits, so *something* outside of the item to be stored into will be - written. If you're *lucky*, that will be padding. If you're *not* - lucky, it could be anothr variable, or something else in memory. + Note that Lua_Integer can 32 bit on 64 bit platforms; it can also + be 64 bit on 32 bit platforms. - Don't do that. + Fix #18367 - (cherry picked from commit 3ea56842a3750d760d1742e534eab424e81d9a41) + (backported from commit 4049ea7e6c4009158cbf91b0bf3300759d2106d6) -commit 34bf4d1d361 -Author: Matan Perelman <matan1008@gmail.com> -Date: Tue Mar 19 09:07:13 2024 +0200 +commit f2dc894cb2 +Author: John Thacker <johnthacker@gmail.com> +Date: Fri May 10 10:08:00 2024 -0400 - mac-lte: Fix memory access in LONG_BSR_LCID + Lua: Revert a mistaken change to lua_pushinteger - Before this change, when reaching LCID Group 2 in LONG_BSR_LCID parsing, - the call to `proto_tree_add_item_ret_uint` with `(guint32*)&buffer_size[2]` - would access memory beyond the array since the array contains 4 elements - of type guin8. The invalid access sometimes created an unexpected write - to the `lcids` array, changing the LCID and causing a wrong dissection - of the matching body. + The value read from a file here is allowed to be a floating point number, + it should not be pushed as a Lua_Integer. - (cherry picked from commit 5de524bc2027b6d65480849f780169a9553506e2) + (backported from commit 1428fe28e663c8c6057d583d336b84014f169de1) -commit 4fc3be24f0d -Author: John Thacker <johnthacker@gmail.com> -Date: Mon Mar 18 10:14:44 2024 -0400 +commit 077104f6dc +Author: Gerald Combs <gerald@wireshark.org> +Date: Wed May 8 14:17:01 2024 -0700 - MinGW+NSIS: Install NSIS package in setup script + Windows: Upgrade GnuTLS to 3.8.4 - (cherry picked from commit 4c5f838c5881f11a91635ba330d9a5b0f70fa86b) + (cherry picked from commit b119b9d6010f7ec0210f83297df365c2e1dec1ae) -commit 36afc6b15f5 +commit 6ab3e8ed88 Author: John Thacker <johnthacker@gmail.com> -Date: Mon Mar 18 09:43:16 2024 -0400 +Date: Thu May 9 14:08:33 2024 +0000 - MinGW+NSIS: Work around QTBug-122257 when building + GitLab CI: Remove LUA_FIND_VERSIONS ANY - For one status message type, windeployqt --list ignores the - verbosity setting and prints them to standard out in - Qt 6.6.0 - 6.6.2. Work around that so that MSYS2 builds work. + That was added briefly but support removed in + commit 759c0feab351de2b20946ececf2949ab52592ccd and it + results in Lua not being found. - https://bugreports.qt.io/browse/QTBUG-122257 + (cherry picked from commit eccf1104d6e310eaf78a0bf063425179c81a7150) - (cherry picked from commit 3cff44e4a06e5c0aa09e090538e0cea08e5a45d8) + Co-authored-by: John Thacker <johnthacker@gmail.com> -commit 3bc3389128b +commit 38c5a89ac4 Author: Gerald Combs <gerald@wireshark.org> -Date: Sun Mar 17 12:52:39 2024 -0700 +Date: Tue May 7 16:48:37 2024 -0700 - Add recursion checks to DCOM, MPEG PES, PROXY, Snort config, and Thread + Windows: Upgrade nghttp2 to 1.61.0 - (cherry picked from commit 6653bfd82ed86417578a31525de67e5f1e299a89) + (cherry picked from commit fe51f8424f9a5dcae514745b919b6139c3c568fd) - Conflicts: - epan/dissectors/packet-snort-config.c +commit 5e96f900a9 +Author: John Thacker <johnthacker@gmail.com> +Date: Tue May 7 06:38:31 2024 -0400 -commit b8146867260 -Author: Gerald Combs <gerald@wireshark.org> -Date: Sun Mar 17 10:37:39 2024 -0700 + gitlab-ci: Remove docker tag from jobs - Add recursion checks to DICOM, FC-SWILS, PIM, RSL, and WASSP + The small SaaS runner on Linux had the docker (plus all other tags) + removed, causing all the jobs with that tag to get stuck. - (cherry picked from commit e9f0d2c22a23bf279753884fd9a8980d2ae13642) + 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 218d89ff7db -Author: Gerald Combs <gerald@wireshark.org> -Date: Sun Mar 17 09:25:25 2024 -0700 +commit 94ac8729f3 +Author: John Thacker <johnthacker@gmail.com> +Date: Sun May 5 13:59:27 2024 +0000 - Add recursion checks to DCCP, KNX/IP, PANA, SOME/IP, and WLCCP + MATE: Handle fields that are in different data sources - (cherry picked from commit db886b4acbc761e730d2364e3759019266404275) + 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. -commit 9c9a8a5defe -Author: Gerald Combs <gerald@wireshark.org> -Date: Sat Mar 16 10:35:37 2024 -0700 + 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. - Add recursion checks to CSN.1, GSM A-bis OML, NAS-5GS, SolarEdge, and WMIO + 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. - (cherry picked from commit 73b6bf25e27796352774f7d95ef053c1da1d1cfd) + Fix #19619 - Conflicts: - epan/dissectors/packet-wmio.c + (cherry picked from commit 4ec5c7f78f9af35b2cebe92c4dd7eab033a1aa82) + + Co-authored-by: John Thacker <johnthacker@gmail.com> -commit 248cb260566 +commit 48c0364590 Author: Gerald Combs <gerald@wireshark.org> -Date: Sun Mar 17 09:24:41 2024 +0000 +Date: Sun May 5 09:25:22 2024 +0000 - [Automatic update for 2024-03-17] + [Automatic update for 2024-05-05] Update manuf, services enterprise numbers, translations, and other items. -commit 9042c92dd95 -Author: Gerald Combs <gerald@wireshark.org> -Date: Sat Mar 16 09:44:46 2024 -0700 +commit cb267b4e52 +Author: Martin Nyhus <martin@nyhus.dev> +Date: Wed May 1 17:17:06 2024 +0200 - Add recursion checks to CQL, GSM GSUP, MSWSP, RSVP, and WTP + ZigBee TLV: fix infinite loop in deeply nested packets - (cherry picked from commit 277d965657060085e14990d7eafc596f0b1f0ed0) + 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. -commit cc138f8ea22 -Author: Gerald Combs <gerald@wireshark.org> -Date: Fri Mar 15 14:31:15 2024 -0700 + 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. - Add recursion checks to COSE, GQUIC, SUA, and XML + 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 7122291d5d0df839f4dd404cad13d93e36bd04a0) + (cherry picked from commit 9ab952b9641bb07d796499487e8d8691d52a6902) -commit 8cac5932f79 -Author: Anders Broman <a.broman58@gmail.com> -Date: Mon Mar 4 12:22:54 2024 +0100 +commit 37c53eab86 +Author: John Thacker <johnthacker@gmail.com> +Date: Thu May 2 23:29:30 2024 +0000 - Lua: Replace lua_pushnumber with lua_pushinteger where apropriate. + Qt: Fix an typo of row vs count in columnListModel - (cherry picked from commit 4e997a93ea4c494b5fdae5b14829feffafa6f453) + 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. -commit 77897acfb46 -Author: Gerald Combs <gerald@wireshark.org> -Date: Tue Mar 12 19:28:43 2024 -0700 + Related to #19821 (but not sufficient.) - Add recursion checks to COROSYNC/TOTEMSRP, HSMS, ProtoBuf, RTLS, and YAMI + (cherry picked from commit 704fe87abd1e83a3451ba4abb2001ef7349d5c71) - (cherry picked from commit 5b29346f9b7e4c67401afc2015b880de760eb73b) + Co-authored-by: John Thacker <johnthacker@gmail.com> -commit efed69f77b8 +commit a338e8117c Author: John Thacker <johnthacker@gmail.com> -Date: Thu Mar 14 20:43:24 2024 -0400 +Date: Wed May 1 11:41:24 2024 +0000 + + LAPD: Set source address - Lua: Don't test for removed functions + 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. - atan2, cosh, sinh, tanh, pow, frexp, ldexp, and log10 were - removed from Lua 5.3. (log10 was removed in Lua 5.2), along - with other functions. + 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. - Don't test for or promise their existence. People using them in dissectors - will have to use workarounds. The most common ones have native - implementations - anyone using hyperbolic sine in a dissector will - have to find some other workaound. + Fixup 7ac827fd74cf7b1eac80d54b5ce0001f15a587e3 - Related to #10881 + (cherry picked from commit 1da57b5ad536acd1d138d363825bc7aad7ad1f4b) - (backported from ad69c29f8e89b4f77ae4c63fa1b65da2ec57d648) + Co-authored-by: John Thacker <johnthacker@gmail.com> -commit 12b34c36d3a +commit 8b916c603e Author: John Thacker <johnthacker@gmail.com> -Date: Sun Mar 3 17:46:26 2024 -0500 +Date: Tue Apr 30 23:20:17 2024 +0000 - Lua: In tests, use load instead of loadstring on Lua > 5.1 + Qt: Fix ProgressFrame location in non-VoIP Flow Graph - loadstring was removed after Lua 5.1. load given a string argument - has the same behavior as loadstring did. Test for the Lua version - in order to use the appropriate function. + 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. - Related to #10881 + 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 5e4d7dd565b9262c38847ff33688b675996d2546) + (cherry picked from commit a95dec6ef9612d80598547a346825639e16c4e51) -commit 4791b23c6c6 + Co-authored-by: John Thacker <johnthacker@gmail.com> + +commit a862720a7e Author: John Thacker <johnthacker@gmail.com> -Date: Wed Mar 13 08:39:38 2024 -0400 +Date: Tue Apr 30 22:41:28 2024 +0000 + + Qt: Use afterLayout signal for Flow Graph y axis labels - wsutil: Allow converting zero length bytestrings again + 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. - Prior to 3.6, we allowed the bytes_to_str function to convert - an empty (but non NULL) hex byte string to an empty string, - and some uses expected that, e.g. in the UATs. Allow that again. + 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. - Fix #19705 + 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 eb585523846961c8bfef20d7206a265e76825cd8) + (cherry picked from commit 84fe646b78d62dcc5540d7a2950a06b0f86de0e7) -commit 9dbd02ff654 + Co-authored-by: John Thacker <johnthacker@gmail.com> + +commit 51a925ce40 Author: John Thacker <johnthacker@gmail.com> -Date: Tue Mar 12 23:29:14 2024 -0400 +Date: Mon Apr 29 01:45:43 2024 +0000 + + ptp: multiple tlv_pathsequence in announce message - Qt: queue TCP stream graph replots during mouse moves + (cherry picked from commit 7ef8501c347d4336a1cb62b4b312f8c93b92efff) - For a mouseMove event, don't immediately replot but queue - the replot for the next event loop iteration. This dramatically - improves performance on Linux for graphs with a large number - of points when moving the mouse for graphs. + 32b82d47 Update file packet-ptp.c + 746c18cf ptp: multiple tlv_pathsequence in announce message - (cherry picked from commit 1ea44a05e95d71d458750ee3f57fbf9801989e5f) + 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 -commit 4577621fc2f -Author: Jaap Keuter <jaap.keuter@xs4all.nl> -Date: Wed Mar 13 01:13:02 2024 +0000 + GitLab CI: Fix the Documentation job - SNMP set correct req/resp relation when req's are repeated. + Remove a duplicate `cd`. Use the same pattern for the guides when + zipping and copying. - (cherry picked from commit 97bef124aea9d15fb202b8e9c412d4c575025d15) + (cherry picked from commit 4f8f52dea0db04dfefaefcba47e8ba16b2d29e2e) - ab0f0c24 SNMP set correct req/resp relation when req's are repeated. + Co-authored-by: Gerald Combs <gerald@wireshark.org> -commit 59c270da82f +commit d705e804ed Author: John Thacker <johnthacker@gmail.com> -Date: Tue Mar 12 09:44:36 2024 -0400 +Date: Sun Apr 28 18:40:52 2024 +0000 - dfilter: Fix parsing of single character hex character escapes + ipars: Fix truncation warning - Fix parsing of C-style hex escape character constants with only - one hex digit. + MAX_EOM_MSG_SIZE is defined to be too small for the value placed in + for an unknown type. - Prevents errors like: + 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; - Error: '\x1' is too long to be a valid character constant. + (cherry picked from commit 4320031c97b3528bc96ab5d366bab8b7fdb2a243) - (cherry picked from commit e05dfae55318c3b4e0f3176decdc2d06941fb729) + Co-authored-by: John Thacker <johnthacker@gmail.com> -commit 29ab3749d3a -Author: Gerald Combs <gerald@wireshark.org> -Date: Sun Mar 10 11:59:21 2024 -0700 +commit f2b9b7b582 +Author: John Thacker <johnthacker@gmail.com> +Date: Sun Apr 28 17:38:21 2024 +0000 - Add recursion checks to BVLC, DOCSIS MAC MGMT, MsgPack, RTMPT, and ZigBee ZCL + c-ares: Suppress deprecation warnings - (cherry picked from commit 9bfa8d9142ba9efa38827346486c895df9dce9cc) + 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. -commit a6cdd65539b -Author: Gerald Combs <gerald@wireshark.org> -Date: Sun Mar 10 10:25:14 2024 -0700 + 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. - Add recursion checks to BT SDP, GTPv2, NHRP, SCTP, and Windows common + Ping #19763 - (cherry picked from commit 128c298122e71147f7fa3d7b6df2d7f0fde4eb7a) + (cherry picked from commit e1a6557d34ff45073e3e75923bf3f6521ebc2b16) - Conflicts: - epan/dissectors/packet-sctp.c + Co-authored-by: John Thacker <johnthacker@gmail.com> -commit 022b66008bf -Author: Gerald Combs <gerald@wireshark.org> -Date: Sat Mar 9 17:22:34 2024 -0800 +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." - Add recursion checks to BT BNEP, DOF, ICQ, Q.2931, and S7COMM + 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. - (cherry picked from commit e50ef0effb253534c1e8afa9102aa6d52f9cbd12) + On the ARM architecture this is what seems to happen: -commit f170401f909 + 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 Mar 10 09:24:40 2024 +0000 +Date: Sun Apr 28 09:25:05 2024 +0000 - [Automatic update for 2024-03-10] + [Automatic update for 2024-04-28] Update manuf, services enterprise numbers, translations, and other items. -commit 59c773d6540 -Author: Gerald Combs <gerald@wireshark.org> -Date: Sat Mar 9 10:56:40 2024 -0800 +commit e63cbbb720 +Author: John Thacker <johnthacker@gmail.com> +Date: Fri Apr 26 13:15:27 2024 +0000 - Add recursion checks to BGP, Etch, LI5G, RPL, and SIMULCRYPT + 5co-rap: Use ITEM_LABEL_LENGTH for snprintf in CF_FUNCs - (cherry picked from commit 6f2514fba5fca8cbdc0b3513979a68f56424f868) + At least one case cases a format truncation warning in recent + versions of clang. -commit 53e8374919d -Author: Gerald Combs <gerald@wireshark.org> -Date: Sat Mar 9 10:32:56 2024 -0800 + (cherry picked from commit f1dd3bf4f2c95571e854d3e35536021ba9aa053d) + + Co-authored-by: John Thacker <johnthacker@gmail.com> - Add recursion checks to BFCP, EDONKEY, QNET, RTPS, and XMPP +commit 43225b77d8 +Author: John Thacker <johnthacker@gmail.com> +Date: Fri Apr 26 11:35:25 2024 +0000 - (cherry picked from commit 709404e401cfb36fdeb38f0bc1bd481b7309c1d9) + 5co-legacy: Use ITEM_LABEL_LENGTH for snprintf in CF_FUNCs -commit 4c3c98e2abc -Author: Gerald Combs <gerald@wireshark.org> -Date: Sat Mar 9 12:29:15 2024 -0800 + 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> - GitLab CI+tools: Homebrew recently adopted PEP 668 +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. - Attempting to install Python packages using pip under Homebrew now - returns + (cherry picked from commit f0462182da63155ffde38d51da7dbedc9fd2d0a6) - ``` - error: externally-managed-environment - × This environment is externally managed - ╰─> To install Python packages system-wide, try brew install - xyz, where xyz is the package you are trying to - install. +commit ae4f2529db +Author: Niels Widger <niels@qacafe.com> +Date: Tue Apr 23 12:27:43 2024 +0000 - If you wish to install a non-brew-packaged Python package, - create a virtual environment using python3 -m venv path/to/venv. - Then use path/to/venv/bin/python and path/to/venv/bin/pip. + sharkd: Fix SIP follow filter returned in "frame" command - If you wish to install a non-brew packaged Python application, - it may be easiest to use pipx install xyz, which will manage a - virtual environment for you. Make sure you have pipx installed. - note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. - ``` + `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. - Install pytest and pytest-xdist in a venv for now. + `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. - (cherry picked from commit 77ec5a5068f9c68e67957c7978ef340b1e00536a) + 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`. -commit 7be4bbb413d -Author: John Thacker <johnthacker@gmail.com> -Date: Wed Mar 6 20:40:42 2024 -0500 + (cherry picked from commit 9778cc82207520547e22c39f11ca3c1ac52c8aea) - t38: Allocate forced defragmented memory in correct scope + Co-authored-by: Niels Widger <niels@qacafe.com> - Fragment data can't be allocated in pinfo->pool scope, as it - outlives the frame. Set it to be freed when the associated tvb - is freed, as done in the main reassemble.c code. +commit f8fd960cb8 +Author: Balint Reczey <balint@balintreczey.hu> +Date: Sat Apr 20 18:57:17 2024 +0200 - Fix #19695 + wslua: Fix support for Lua 5.1 and 5.2 on 32bit - (cherry picked from commit 6fd3af5e999c71df67c2cdcefb96d0dc4afa5341) + 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. -commit eb894c6bca6 + 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: Sun Mar 3 20:11:02 2024 -0500 +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) - Lua: Convert the time to an integer in tests + Co-authored-by: John Thacker <johnthacker@gmail.com> - Apparently in Lua 5.3, os.date doesn't like being handed a - value with fractional seconds. Convert the time to an integer - via a method that also works on Lua 5.1 +commit 4e70db8cf0 +Author: Yaniv Michael Kaul <yaniv.kaul@scylladb.com> +Date: Thu Apr 25 16:46:21 2024 +0300 - Related to #10881 + Release-4.2: CQL: take into account NULL and unset values - (cherry picked from commit 61e8d3392ae476516c22fa727e01a21846f2a487) + From https://gitlab.com/wireshark/wireshark/-/commit/291822a25cfaf54a3556c19d5d47af7efb1bdf48 to stable branch. -commit 1b3e1c9e8ec + 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: Mon Mar 4 17:11:21 2024 -0500 +Date: Thu Apr 25 15:17:47 2024 +0000 - Lua: Make tests work on Lua 5.4 + Qt: Fix Window scaling graph axis labels - Lua tables are stored with reference values that default to - a one-up counter starting at 1. To reduce the number of necessary - reallocations, the allocated but previously freed entries form - a linked list. Starting with the head of the freelist, each - reference points to the index number of the next freed reference - in the list, or 0 as a sentinel value. The head always present - and is 0 if nothing has been deleted. + 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. - On Lua 5.4 the head of the list is always index 3 (LUA_RIDX_LAST + 1). - On earlier Lua, 0 is used. + Fix #17425. Fix #15016 - Various C API functions like lua_next and lua_len (and thus the length - operator #) do not distinguish between these values that refer to - table indices and those that refer to objects we've stored in them. - We can distinguish by checking whether or not the value for a particular - key is one of our classes, e.g. a ProtoField, or a lua_Number. Our - setters should assure that we aren't putting any lua_Numbers into - the tables. + (cherry picked from commit 259bbbff2a5257319ff69aa32cc377fc501eb022) - Related to #10881 + Co-authored-by: John Thacker <johnthacker@gmail.com> - (cherry picked from commit 2188257743e44c98806df3968d756500f9697309) +commit 47199b51b9 +Author: John Thacker <johnthacker@gmail.com> +Date: Thu Apr 25 14:39:26 2024 +0000 -commit 3959fc563dc -Author: Anders Broman <a.broman58@gmail.com> -Date: Wed Feb 21 21:34:10 2024 +0100 + TLS: SM3 and SM2 are not in TLS (Signature|Hash)Algorithm registries - LUA: Make it compile with LUA 5.4 + 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.) - (cherry picked from commit f9e052b88ed2303f2f2b52d0808cded1f5736576) + 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. -commit 3a10e3984ba -Author: Anders Broman <a.broman58@gmail.com> -Date: Wed Feb 21 21:23:28 2024 +0100 + 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.) - LUA bitop: Convery our lua_bitop.c to work with 5.3 and 5.4 + Fix #19801 - The code is written by Andrew Engelbrecht and found here: - https://github.com/LuaJIT/LuaJIT/issues/384 + (cherry picked from commit ea5ed37426c9489b66ea32cec818d68c584a5a85) - (cherry picked from commit 926344c16c2147d06689cbde3c1e08aa6b5d6e93) + Co-authored-by: John Thacker <johnthacker@gmail.com> -commit 2283c1efd4d +commit dc29e276dd Author: John Thacker <johnthacker@gmail.com> -Date: Tue Mar 5 09:19:39 2024 -0500 +Date: Thu Apr 25 11:04:41 2024 +0000 - ICMPv6: Remove recursion check from 0 length option path + E212: update MNC information - Fixup 972bb56d0ab3fc825955d58bee629ba13c1e1a99 + 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)) - Fix #19688 + https://www.itu.int/pub/T-SP-E.212B-2023 + https://www.itu.int/pub/T-SP-OB.1280 - (cherry picked from commit ba82fcdef633214518aa2ea7f7a99f54e6bb03f3) + Fix #19800 -commit 7d7be263168 -Author: Gerald Combs <gerald@wireshark.org> -Date: Sun Mar 3 17:38:10 2024 -0800 + (cherry picked from commit a2eaaa4e8804189ef50406fb6b2783d492367949) - ASAP: More recursion updates + Co-authored-by: John Thacker <johnthacker@gmail.com> - Check against pinfo->flags.in_error_pkt. +commit 22a9b5ab5d +Author: Gian Lorenzo Meocci <gianlorenzo.meocci@athonet.com> +Date: Wed Apr 24 09:37:25 2024 +0200 - (cherry picked from commit d46e93b274aec46d75ca91dcd4e6f4f7a4b9f420) + fix pfcp outer header desc -commit 79fdafac830 -Author: Gerald Combs <gerald@wireshark.org> -Date: Mon Mar 4 14:13:59 2024 -0800 +commit 52d644b084 +Author: Niels Widger <niels@qacafe.com> +Date: Wed Apr 24 12:26:07 2024 +0000 - Add recursion checks to Bencode, BT-DHT, ErlDP, H.233, and H.264 + sharkd: Improve sub-stream support in "frame" and "follow" methods - (cherry picked from commit f38f79d6e14c5a278d5e08ba1b96f9f4c0e600e0) + 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). -commit 175347ef5e2 -Author: Gerald Combs <gerald@wireshark.org> -Date: Mon Mar 4 11:33:20 2024 -0800 + 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.: - Add recursion checks and suppressions to BEEP, Kafka, and OpenFlow + "fol": [["TCP", "tcp.stream eq 0"], ["TLS", "tcp.stream eq 0"]] - (cherry picked from commit fcde25cfb8dc0d86904aaeaab8b50e87e1985fc0) + 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: -commit 18b84f7734d -Author: Gerald Combs <gerald@wireshark.org> -Date: Mon Mar 4 10:51:16 2024 -0800 + "followers": [{"protocol": "TCP", "filter": "tcp.stream eq 0"}, {"protocol": "TLS", "filter": "tcp.stream eq 0"}] - Add recursion checks to Banana, ISAKMP, KINK, M2UA, and M3UA + Updated existing and added new `sharkd` unit tests to validate + behavior of new fields/arguments. - (cherry picked from commit 48e65f0c54b05dbc3d082dc645e3d111b46e9055) + (cherry picked from commit 289a159042e3b81c2c135031dd4da9590aea848e) -commit d238e207d84 -Author: Gerald Combs <gerald@wireshark.org> -Date: Sun Mar 3 17:53:45 2024 -0800 + Co-authored-by: Niels Widger <niels@qacafe.com> - Remove our recursion checks in ICMPv6 and NETLINK +commit 15b77707dd +Author: John Thacker <johnthacker@gmail.com> +Date: Wed Apr 24 22:41:03 2024 +0000 - We'll run out of packet before we run out of stack in each case. + github/workflow: fix macos - (cherry picked from commit 972bb56d0ab3fc825955d58bee629ba13c1e1a99) + For macos-latest runner on Github using macos14 on arm there is only Python + >= 3.11 available. -commit 4a83b8f470b -Author: Gerald Combs <gerald@wireshark.org> -Date: Sun Mar 3 09:25:02 2024 +0000 + We have to install pytest and dmgbuild manually - [Automatic update for 2024-03-03] + (cherry picked from commit f186f44a711b1ba831173238c49a8e280697ae1e) - Update manuf, services enterprise numbers, translations, and other items. + Co-authored-by: Uli Heilmeier <uh@heilmeier.eu> -commit 13e199a4a56 -Author: Gerald Combs <gerald@wireshark.org> -Date: Sat Mar 2 18:42:13 2024 -0800 +commit 06a5e5c445 +Author: John Thacker <johnthacker@gmail.com> +Date: Wed Apr 24 10:55:41 2024 +0000 - ASAP: Make sure pinfo is set + SSH: Handle "curve25519-sha256@libssh.org" KEX name - Fixes #19685. + 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.' - (cherry picked from commit dc84bddc1f245512c56aa3f5e617db9fff729796) + Handle the other name in ssh_kex_hash_type. It is already accounted + for in other functions. -commit 0a90847b7e9 -Author: Gerald Combs <gerald@wireshark.org> -Date: Sat Mar 2 15:37:37 2024 -0800 + Fix #19240 - Add recursion checks to BACnet, CIP, IPP, LISP, and NETLINK + (cherry picked from commit 6966cdb73e6f5dc2e6a03136b07b8ed59c7ff65a) - (cherry picked from commit c4d62f97615f85b24f86a0ab2a8aa0d62851b6e5) + Co-authored-by: John Thacker <johnthacker@gmail.com> -commit 129b918b14a -Author: Gerald Combs <gerald@wireshark.org> -Date: Sat Mar 2 11:58:35 2024 -0800 +commit 1a88d0c734 +Author: Christian Krump <christian.krump@br-automation.com> +Date: Tue Apr 23 10:58:35 2024 +0200 - Add recursion checks to ASAP, iSCSI, JXTA, MBIM, and MQTT-SN + EPLv2: modified limitation of valid SDO segment size - (cherry picked from commit c49e1f2ceacac3e7a808f95c88d4eabf81c996e5) + (cherry picked from commit a9f783600fc787ce891f1eda8e242793cc436fc8) -commit 2d24f6d995e +commit 585a3dc48c Author: Gerald Combs <gerald@wireshark.org> -Date: Sat Mar 2 10:46:44 2024 -0800 +Date: Tue Apr 23 13:27:56 2024 -0700 - Add recursion checks to AMQP, GNW, LDP, CFLOW, and RDP + GitLab CI: after_script updates - (cherry picked from commit 3948fe5132f9641b662c888efb74b1bd01216cc9) + In GitLab 17 and later, after_script will run when a job is cancelled. + Update our various jobs accordingly. -commit 80e5533370b -Author: Gerald Combs <gerald@wireshark.org> -Date: Fri Mar 1 13:48:31 2024 -0800 + (cherry picked from commit e03a58958e065c7e2dc7e15a90978fa5d57edcf6) - Add recursion checks to various protocols + Conflicts: + .gitlab-ci.yml - (cherry picked from commit d0c09f485951a0b014102e8fc82aa5b854d9c33b) +commit 0c45a5d772 +Author: John Thacker <johnthacker@gmail.com> +Date: Tue Apr 23 03:03:28 2024 +0000 -commit e7f8b65fdf0 -Author: Gerald Combs <gerald@wireshark.org> -Date: Fri Mar 1 09:32:00 2024 -0800 + lldpd: move hf_lldp_tlv_enable_system_cap* to capabilities_enabled_tree - Rebuild our ASN.1 dissectors + (cherry picked from commit e267bfdd88a7fe190f52906ac98a3b03035c580f) - Switch to simple recursion checks. + Co-authored-by: Paul Donald <newtwen+github@gmail.com> -commit 406c023c621 -Author: Gerald Combs <gerald@wireshark.org> -Date: Wed Feb 28 17:13:45 2024 -0800 +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. - epan: Add simple recursion checks + (cherry picked from commit e40ec77006f159f816038e5295851f0caf218a7a) - Add a "dissection_depth" element to packet_info, and add - increment_dissection_depth and decrement_dissection_depth. Assert if our - dissection depth exceeds the gui_max_tree_depth preference. + Co-authored-by: Anders Broman <a.broman58@gmail.com> - Use them to replace some of the current p_get_proto_depth and - p_set_proto_depth calls. +commit 98fa3eff88 +Author: Pascal Quantin <pascal@wireshark.org> +Date: Mon Apr 22 15:40:52 2024 +0200 - Get rid of PINFO_LAYER_MAX_RECURSION_DEPTH and use the - gui_max_tree_depth preference in call_dissector and - dissector_try_heuristic. + NAS 5GS: fix dissection of NAS message container IE - (cherry picked from commit 4f35c3a34a33f06fb86d4567715d2e935f506cd5) + 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/file-blf.c - epan/dissectors/packet-smb2.c + epan/dissectors/packet-nas_5gs.c -commit 783048838e2 +commit 6ed87c1638 Author: John Thacker <johnthacker@gmail.com> -Date: Thu Feb 29 18:38:14 2024 -0500 +Date: Mon Apr 22 13:14:34 2024 +0000 - tools: Parse ranges in make-services.py + QUIC: handle connection migrations for zero length CIDs - The new services parsing was only putting the first and last port - of a range into the static C array data. This was a regression - in 4.2 compared to 4.0 + 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. - (cherry picked from commit 95f6f94f8bd711660959d7d6b7ca0fffcd2f7630) + 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. -commit 9c374bbfa1e -Author: John Thacker <johnthacker@gmail.com> -Date: Wed Feb 28 18:16:20 2024 -0500 + (cherry picked from commit 95a9fc5c0fa569cc7c5026f0ef235736b99848eb) + + Co-authored-by: Max Schrötter <mail@schrc3b6.de> - docs: Explicitly set wildcard when including dissection-options tags +commit c77f142c0e +Author: Anders Broman <a.broman58@gmail.com> +Date: Sun Apr 21 18:34:09 2024 +0000 - The double wildcard is implied on recent versions of asciidoctor, - but explicitly specifying doesn't hurt, and fixes the includes on - some older versions (such as that with RHEL 8.) + NR-RRC: Add callable dissectors for SIB messages - https://docs.asciidoctor.org/asciidoc/latest/directives/include-tagged-regions/#tag-filtering - (backported from commit bb37fcb0260eb06692ec127ceb05597c678bf4a7) + Add callable dissectors for SIB messages. + Add dis table + Fix column display for single SIB message. -commit c8e98a245cb -Author: Niels Widger <niels@qacafe.com> -Date: Mon Feb 26 13:51:53 2024 -0500 + (cherry picked from commit dfec2284f34dae9ee515539d5ce5bb9f14762e3c) - sharkd: Increase JSON buffer size from 2048 to 8192 bytes + Co-authored-by: Anders Broman <a.broman58@gmail.com> - This commit increases the maximum size for the JSON commands processed - by `sharkd` from 2048 to 8192 bytes. The primary reason for this - change is to allow larger filters in `filter0`...`filter9` arguments - which, combined with the outer JSON boilerplate, can cause a command - to quickly hit the existing 2048-byte limit. +commit 77ccc7ece0 +Author: Guy Harris <gharris@sonic.net> +Date: Mon Apr 22 09:15:13 2024 +0000 - (cherry picked from commit 8989c732fc0b78039c72b695e7c7099948ea5491) + tipc: fix byte count. -commit 57741bfc81d -Author: John Thacker <johnthacker@gmail.com> -Date: Tue Feb 27 20:25:05 2024 -0500 + 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. - prefs: Fix null defererences, remove obsolete function + (cherry picked from commit aea66ddc3336a095e6201b633a78014bd3af3a1d) - Null dereference check to fix Coverity CIDs 1399640 and 1399641. - Remove a function that has been unused for a decade. + 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: Sun Apr 21 09:25:15 2024 +0000 - (cherry picked from commit 7dc0f853c6eed609f13fb2786c3cfa833dc850b5) + [Automatic update for 2024-04-21] -commit aeffdcf8206 + 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: Wed Feb 28 06:59:45 2024 -0500 +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) - JSON-3GPP: Don't crash on empty suppFeat JSON value + Co-authored-by: John Thacker <johnthacker@gmail.com> - Return straightaway if the length is 0 or less. (It shouldn't - be less unless the JSON dissector has issues, but if it's - -1 it might not raise an exception adding the string because of - the longstanding feature of -1 length for a FT_STRING meaning - "to the end of the tvb.") +commit b8d61cd977 +Author: Pascal Quantin <pascal@wireshark.org> +Date: Sat Apr 20 12:12:00 2024 +0000 - Fix #19677 + GSM RP: fix dissection of SMS in 5G Nf interface - (cherry picked from commit ade326dbf56afb361158f7246572d5a96b7493dc) + Closes #19773 -commit 005a3e8fdf7 + (cherry picked from commit 9dffc3834ea0f7439a2e2d2f55350b6d5e2596c5) + + Co-authored-by: Pascal Quantin <pascal@wireshark.org> + +commit a7661fd568 Author: John Thacker <johnthacker@gmail.com> -Date: Tue Feb 27 09:02:55 2024 -0500 +Date: Thu Apr 18 15:37:18 2024 +0000 + + Windows: Add include depended upon packets checkbox + + Non-Windows already has this checkbox. - ENRP: Check for invalid parameter & error cause lengths + 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. - The value in the length field in ENRP parameters and error causes - include the length and types, and must be at least 4. In particular, - not erring on zero can cause an infinite loop. + 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. - https://datatracker.ietf.org/doc/html/rfc5354 + Follow up to dcc9cbffefe0598eadec11cbc1869943a26219c5 + Fix #19772 - Fix #19674 + (cherry picked from commit 90d7ecf6971b89a918f61d95a9bce77d74f8cb64) - (backported from commit 84ffa648eaaa6292c5332df236b10d70f7cf07d0) + Co-authored-by: John Thacker <johnthacker@gmail.com> -commit 4cc9f9bbbf7 -Author: Triton Circonflexe <triton@kumal.info> -Date: Sat Feb 24 21:39:31 2024 +0100 +commit bd26249852 +Author: Alexis La Goutte <alexis.lagoutte@gmail.com> +Date: Fri Apr 19 06:50:41 2024 +0000 - Thrift: Fix recursion check + Zigbee Direct: Fixed UUID mismatch with join, pjoin & leave characteristics - Previous recursion check only worked with generic dissector. - The introduced changes cover the sub-dissectors as well. + (cherry picked from commit 8b802bffd12e3bbd80bb6e6e501309bb7fee8124) - Remove the existing check as it counted basic types as well. - Add a check at every place where a sub-tree is created: - - containers (list, set, map) - - structures + Co-authored-by: Cole Wu <chw@exegin.com> - (cherry picked from commit 4eaf10bc4e46762b1e304baf188d0767907e1914) +commit 0e5038cf89 +Author: Alexis La Goutte <alexis.lagoutte@gmail.com> +Date: Thu Apr 18 11:13:55 2024 +0000 -commit 3243e000415 + 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 Feb 22 08:54:12 2024 -0500 +Date: Thu Apr 18 11:56:00 2024 +0000 + + Qt: Fix removing ignored packets from selected range - Qt: Work around QTBUG-122109 when applying packet list style sheet + Correctly remove ignored packets from the selected packet + range on non-Windows, which for some reason has never done this. + The Windows dialog has. - https://bugreports.qt.io/browse/QTBUG-122109 + (cherry picked from commit 317177d1d079a1054f2b8935c30c376d67dd7eb5) - A bug introduced by the fix for https://bugreports.qt.io/browse/QTBUG-116013 - causes all visible sections to reset to the default section size whenever a - style sheet is applied (even if defaultSectionSize didn't change.) + Co-authored-by: John Thacker <johnthacker@gmail.com> - Make sure that before applying a style sheet we prevent our recent - column widths from being updated, and then restore column widths - from the recent values afterwards. +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. - This affects versions 6.5.4 (commercial only, 6.5.3 is the last free - release) and 6.6.1 and 6.6.2. + 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. - (cherry picked from commit ea38f142e89f81181fe397da0875a7df05787162) + Fix #19766 -commit 854dd3c85f0 -Author: Patrik Thunström <patrik.thunstroem@technica-engineering.de> -Date: Sun Feb 25 00:07:45 2024 +0100 + (backported from commit b36749f56a4b2a9f1931aa0ab472dbf7420a75e3) - CSV Export: Last column no longer exported when hidden. +commit 9c5c64b4cb +Author: Gerald Combs <gerald@wireshark.org> +Date: Mon Apr 15 16:06:46 2024 -0700 - Prior to fix the last column no matter if hidden or not was - always included when exporting packet dissections to CSV. + pcapng: Fix logging - Fixes #19666. + WS_LOG_DOMAIN must be defined after including config.h and before + including wslog.h. - (cherry picked from commit 30c0ab964ff62ef95b1a0ec9c04ebbbb0cd51c43) + (cherry picked from commit 09b83c0ecee60641439b67ed5931714492ae38c1) -commit 535a868fab5 +commit b822d573e0 Author: Gerald Combs <gerald@wireshark.org> -Date: Sun Feb 25 09:26:26 2024 +0000 +Date: Sun Apr 14 09:25:33 2024 +0000 - [Automatic update for 2024-02-25] + [Automatic update for 2024-04-14] Update manuf, services enterprise numbers, translations, and other items. -commit 459c0d50cb9 +commit 2ece4fa7dc Author: John Thacker <johnthacker@gmail.com> -Date: Fri Feb 23 07:56:18 2024 -0500 +Date: Fri Apr 12 07:19:12 2024 -0400 - Inject TLS Secrets: Check for NULL used secrets map + ieee1905: Fix bit ordering of HE-MCS set - The GUI menu item should probably be disabled without a capture file - too. + 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 #19667 + Fix #19737 - (cherry picked from commit ac90d8c83437c4eb120f8d64025f2ca07269f35e) + (cherry picked from commit 179bf05a4d4e64427fa7e7805f1d4e134874cca8) -commit 315e14a35d5 -Author: Gerald Combs <gerald@wireshark.org> -Date: Thu Feb 22 18:35:09 2024 -0800 +commit cee6caf8ea +Author: John Thacker <johnthacker@gmail.com> +Date: Wed Apr 10 12:16:02 2024 -0400 - ICMPv6: Add a recursion check + Qt: Hide export dissections dialog when accepting - Fix + 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. - ``` - wireshark/epan/dissectors/packet-icmpv6.c:1709:1: warning: function 'dissect_icmpv6_nd_opt' is within a recursive call chain [misc-no-recursion] - 1709 | dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) - | ^ - wireshark/epan/dissectors/packet-icmpv6.c:1709:1: note: example recursive call chain, starting from function 'dissect_icmpv6_nd_opt' - wireshark/epan/dissectors/packet-icmpv6.c:2247:30: note: Frame #1: function 'dissect_icmpv6_nd_opt' calls function 'dissect_icmpv6_nd_opt' here: - 2247 | opt_offset = dissect_icmpv6_nd_opt(tvb, opt_offset, pinfo, icmp6opt_tree); - | ^ - wireshark/epan/dissectors/packet-icmpv6.c:2247:30: note: ... which was the starting point of the recursive call chain; there may be other cycles - ``` + 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 0eb0d6fdb4394872e68ed2c8c9d2cc1a1bc85db9) + (cherry picked from commit e84adf41da08c60ff329f3e91bb948e2e1e33753) -commit 27d5c37e714 -Author: Gerald Combs <gerald@wireshark.org> -Date: Thu Feb 22 18:50:24 2024 -0800 +commit 7fb337faf8 +Author: John Thacker <johnthacker@gmail.com> +Date: Wed Apr 10 10:28:45 2024 -0400 - SMB2: Add recursion checks + Qt: Fix crash when closing TimeShiftDialog before redissection done - (cherry picked from commit 1515b211e20354e097092de0b52e50862e64ce36) + 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. - Conflicts: - epan/dissectors/packet-smb2.c + 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. -commit db9610c3896 -Author: Gerald Combs <gerald@wireshark.org> -Date: Thu Feb 22 18:29:49 2024 -0800 + To prevent, make the connection between the TimeShiftDialog and + the PacketList a Qt::QueuedConnection. - DHCPv6: Add a recursion check + (cherry picked from commit ea70c16e05d0f1f0779bec6e89153a67d07d6cfa) - Fix +commit 799735b9c0 +Author: Dr. Lars Völker <lars.voelker@technica-engineering.de> +Date: Fri Mar 22 18:23:07 2024 +0100 - ``` - wireshark/epan/dissectors/packet-dhcpv6.c:1846:1: warning: function 'dhcpv6_option' is within a recursive call chain [misc-no-recursion] - 1846 | dhcpv6_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree, - | ^ - wireshark/epan/dissectors/packet-dhcpv6.c:1846:1: note: example recursive call chain, starting from function 'dhcpv6_option' - wireshark/epan/dissectors/packet-dhcpv6.c:2052:28: note: Frame #1: function 'dhcpv6_option' calls function 'dhcpv6_option' here: - 2052 | temp_optlen += dhcpv6_option(tvb, pinfo, subtree, - | ^ - wireshark/epan/dissectors/packet-dhcpv6.c:2052:28: note: ... which was the starting point of the recursive call chain; there may be other cycles - wireshark/epan/dissectors/packet-dhcpv6.c:2958:1: warning: function 'dissect_dhcpv6' is within a recursive call chain [misc-no-recursion] - 2958 | dissect_dhcpv6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, - | ^ - ``` + BLF: Fixing Flags Decoding in FlexRayRcvMessage(Ex) (BUGFIX) - (cherry picked from commit 5a04c4ecee4a40851c8fd0f7de0ee96d257bb752) + Flags should have been in the FrameFlags byte. -commit cd5c51f50f7 -Author: Gerald Combs <gerald@wireshark.org> -Date: Wed Feb 21 15:01:00 2024 -0800 + (cherry picked from commit 823b49f6c338ddc0e99315e05e3e3fb5c557456c) - AllJoyn: Add recursion checks +commit 6288f7c592 +Author: Giovanni Musto <giovanni.musto@partner.italdesign.it> +Date: Wed Dec 13 14:26:36 2023 +0100 - (cherry picked from commit 8b0e90d62e283d3aa7b00aa17a55a53bde362da4) + BLF: Fix BLF_OBJTYPE_CAN_FD_ERROR_64 not decoded as error -commit 3b7f2c1ca79 -Author: Gerald Combs <gerald@wireshark.org> -Date: Wed Feb 21 14:27:58 2024 -0800 + (cherry picked from commit 7b4d667f306c4ffb6c181280bdb47d01826eb3e6) - 6LoWPAN: Add recursion checks +commit 1c7dbe91da +Author: Guy Harris <gharris@sonic.net> +Date: Sat Nov 18 14:53:33 2023 -0800 - (cherry picked from commit 34c90f7a3d31c74c7f66a71dcd23eed326718190) + blf: expand a comment. -commit 5d2c25d97e6 -Author: Gerald Combs <gerald@wireshark.org> -Date: Wed Feb 21 11:53:18 2024 -0800 + 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". - TN5250: Add a recursion check + [skip ci] - (cherry picked from commit 282bd19e887a56496011d14b1bf7bdde40f9216e) + (cherry picked from commit 8c22a6cc0240123750347173acef964a3909da34) -commit 0e272f66bd2 -Author: Gerald Combs <gerald@wireshark.org> -Date: Wed Feb 21 11:08:42 2024 -0800 +commit 559a6f89f7 +Author: Guy Harris <gharris@sonic.net> +Date: Sat Nov 18 11:27:26 2023 -0800 - MONGO: Add a recursion check + blf: check the validity of the header length field. - (cherry picked from commit 7183ac40da718b4a0531f84adf090e9a97c1297a) + (cherry picked from commit 3e296c041f233b6605f4004bec7e4be1acd34b70) -commit d8231096d5c -Author: John Thacker <johnthacker@gmail.com> -Date: Tue Feb 20 22:58:58 2024 -0500 +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. - text2pcap: Set encapsulation to WIRESHARK_UPPER_PDU with -P + Always check for errors from file_seek(). - The documentation, both man page and help, claims that text2pcap - automatically sets the encapsulation to WIRESHARK_UPPER_PDU if - -P is given. Make the behavior match the documentation. + (cherry picked from commit ae5c7ff41bdd031f7d29151501f42bfcc68d662d) - (cherry picked from commit 339d6d4aba6f51f32c9483ea4dab5790b713d247) +commit 91e1ec23d7 +Author: Giovanni Musto <giovanni.musto@partner.italdesign.it> +Date: Mon Oct 23 09:30:29 2023 +0200 -commit a29a21fb697 + 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: Tue Feb 20 15:22:07 2024 -0800 - - RBM: Add a recursion check - - Fix - - ``` - wireshark/epan/dissectors/file-rbm.c:196:13: warning: function 'dissect_rbm_array' is within a recursive call chain [misc-no-recursion] - 196 | static void dissect_rbm_array(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value_str) - | ^ - wireshark/epan/dissectors/file-rbm.c:410:13: note: example recursive call chain, starting from function 'dissect_rbm_object' - 410 | static void dissect_rbm_object(tvbuff_t* tvb, packet_info* pinfo, proto_tree* ptree, guint* offset, gchar** type, gchar** value) - | ^ - wireshark/epan/dissectors/file-rbm.c:439:4: note: Frame #1: function 'dissect_rbm_object' calls function 'dissect_rbm_string' here: - 439 | dissect_rbm_string(tvb, pinfo, tree, offset, &value_local); - | ^ - wireshark/epan/dissectors/file-rbm.c:325:2: note: Frame #2: function 'dissect_rbm_string' calls function 'dissect_rbm_object' here: - 325 | dissect_rbm_object(tvb, pinfo, tree, offset, NULL, NULL); - | ^ - wireshark/epan/dissectors/file-rbm.c:325:2: note: ... which was the starting point of the recursive call chain; there may be other cycles - wireshark/epan/dissectors/file-rbm.c:222:13: warning: function 'dissect_rbm_hash' is within a recursive call chain [misc-no-recursion] - 222 | static void dissect_rbm_hash(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value_str) - | ^ - wireshark/epan/dissectors/file-rbm.c:321:13: warning: function 'dissect_rbm_string' is within a recursive call chain [misc-no-recursion] - 321 | static void dissect_rbm_string(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value) - | ^ - wireshark/epan/dissectors/file-rbm.c:329:13: warning: function 'dissect_rbm_regex' is within a recursive call chain [misc-no-recursion] - 329 | static void dissect_rbm_regex(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value) - | ^ - wireshark/epan/dissectors/file-rbm.c:344:13: warning: function 'dissect_rbm_userclass' is within a recursive call chain [misc-no-recursion] - 344 | static void dissect_rbm_userclass(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value) - | ^ - wireshark/epan/dissectors/file-rbm.c:355:13: warning: function 'dissect_rbm_variable' is within a recursive call chain [misc-no-recursion] - 355 | static void dissect_rbm_variable(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value_str) - | ^ - wireshark/epan/dissectors/file-rbm.c:368:13: warning: function 'dissect_rbm_struct' is within a recursive call chain [misc-no-recursion] - 368 | static void dissect_rbm_struct(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value) - | ^ - wireshark/epan/dissectors/file-rbm.c:374:13: warning: function 'dissect_rbm_drb' is within a recursive call chain [misc-no-recursion] - 374 | static void dissect_rbm_drb(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset) - | ^ - wireshark/epan/dissectors/file-rbm.c:383:13: warning: function 'dissect_rbm_rubyobject' is within a recursive call chain [misc-no-recursion] - 383 | static void dissect_rbm_rubyobject(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset) - | ^ - wireshark/epan/dissectors/file-rbm.c:400:13: warning: function 'dissect_rbm_extended' is within a recursive call chain [misc-no-recursion] - 400 | static void dissect_rbm_extended(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset) - | ^ - wireshark/epan/dissectors/file-rbm.c:410:13: warning: function 'dissect_rbm_object' is within a recursive call chain [misc-no-recursion] - 410 | static void dissect_rbm_object(tvbuff_t* tvb, packet_info* pinfo, proto_tree* ptree, guint* offset, gchar** type, gchar** value) - | ^ - wireshark/epan/dissectors/file-rbm.c:535:6: warning: function 'dissect_rbm_inline' is within a recursive call chain [misc-no-recursion] - 535 | void dissect_rbm_inline(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** type, gchar** value) - | ^ - ``` - - (cherry picked from commit d7b15ff6d19763cc29f3cc4677aef28aed2879df) - -commit ec470ca63d8 +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 Feb 15 19:39:52 2024 -0500 +Date: Thu Apr 4 20:27:45 2024 -0400 - extcap: Fix writing preferences to file + reordercap: Handle IDBs in the middle of the file - Do not change the preference pointer inside the Extcap Options - Dialog. That changes the real preference value, which disturbs - the check inside prefs_store_ext_multiple that storeValues() calls - for whether a pref has changed or not. Since the prefs are already - changed to their new value, we won't realize that we need to write - out a new preference 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.) - The other changes in #18487 are sufficent to fix the problem - identified there (though it's a bit unclear what "required" means - in combination with a default, and whether we have to send the - default value for the required parameter or can omit it.) + 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) - If the button says "Save", then save the preferences regardless - of what the "extcap Save on Start" preference says. + Fix #19740 - Fix #19639. Related to #18487 + (cherry picked from commit 0c637a2b5ebaf6bf24f406e5e01a39860d4a4daa) - (cherry picked from commit 268e7425416f0f482bc001c0ca8010c425db49c9) +commit f47c873dd8 +Author: mverkleij <mail@mverkleij.nl> +Date: Fri Mar 15 14:43:29 2024 +0100 -commit c1584528c32 -Author: Gerald Combs <gerald@wireshark.org> -Date: Tue Feb 20 14:28:59 2024 -0800 + Fix reordercap -n flag generating empty output file - JPEG: Add a recursion check + (cherry picked from commit ef64dcf32879353f02057ada93c0b0add78cad3c) + (cherry picked from commit e6ad1f677ea970b85d08066135cd8ec10d23075c) - Fix +commit b6ba652b5b +Author: John Thacker <johnthacker@gmail.com> +Date: Thu Apr 4 07:12:45 2024 -0400 - ``` - /builds/wireshark/wireshark/epan/dissectors/file-jpeg.c:773:1: warning: function 'process_tiff_ifd_chain' is within a recursive call chain [misc-no-recursion] - 773 | process_tiff_ifd_chain(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, - | ^ - /builds/wireshark/wireshark/epan/dissectors/file-jpeg.c:773:1: note: example recursive call chain, starting from function 'process_tiff_ifd_chain' - /builds/wireshark/wireshark/epan/dissectors/file-jpeg.c:896:37: note: Frame #1: function 'process_tiff_ifd_chain' calls function 'process_tiff_ifd_chain' here: - 896 | process_tiff_ifd_chain(tree, tvb, pinfo, encoding, - | ^ - /builds/wireshark/wireshark/epan/dissectors/file-jpeg.c:896:37: note: ... which was the starting point of the recursive call chain; there may be other cycles - ``` + Qt: Ensure Copy Bytes as C String is a valid C string - (cherry picked from commit 46c652102f432577961cac534f20fc88fa6c11cf) + 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. -commit 69f9eab216b -Author: Gerald Combs <gerald@wireshark.org> -Date: Tue Feb 20 14:03:02 2024 -0800 - - BLF: Add a recursion check - - Fix - - ``` - wireshark/epan/dissectors/file-blf.c:498:1: warning: function 'dissect_blf_lobj' is within a recursive call chain [misc-no-recursion] - 498 | dissect_blf_lobj(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, gint offset_orig) { - | ^ - wireshark/epan/dissectors/file-blf.c:886:1: note: example recursive call chain, starting from function 'dissect_blf_next_object' - 886 | dissect_blf_next_object(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset) { - | ^ - wireshark/epan/dissectors/file-blf.c:893:32: note: Frame #1: function 'dissect_blf_next_object' calls function 'dissect_blf_lobj' here: - 893 | int bytes_parsed = dissect_blf_lobj(tvb, pinfo, tree, offset); - | ^ - wireshark/epan/dissectors/file-blf.c:580:27: note: Frame #2: function 'dissect_blf_lobj' calls function 'dissect_blf_next_object' here: - 580 | tmp = dissect_blf_next_object(sub_tvb, pinfo, subtree, offset_sub); - | ^ - wireshark/epan/dissectors/file-blf.c:580:27: note: ... which was the starting point of the recursive call chain; there may be other cycles - wireshark/epan/dissectors/file-blf.c:886:1: warning: function 'dissect_blf_next_object' is within a recursive call chain [misc-no-recursion] - 886 | dissect_blf_next_object(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset) { - | ^ - ``` - - (cherry picked from commit 3b2c961eeb3eda36a0253cc5111396a4d6a424e0) - -commit 4861d841305 -Author: Gerald Combs <gerald@wireshark.org> -Date: Tue Feb 20 09:41:29 2024 -0800 + Escape double quotes and backslash. Use the simple escapes of + non printable characters too (optional, but looks nicer.) - ISIS LSP: Add a recursion check + 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 + Fix #19735 - ``` - wireshark/epan/dissectors/packet-isis-lsp.c:3431:1: warning: function 'dissect_sub_clv_tlv_22_22_23_141_222_223' is within a recursive call chain [misc-no-recursion] - 3431 | dissect_sub_clv_tlv_22_22_23_141_222_223(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, - | ^ - wireshark/epan/dissectors/packet-isis-lsp.c:3431:1: note: example recursive call chain, starting from function 'dissect_sub_clv_tlv_22_22_23_141_222_223' - wireshark/epan/dissectors/packet-isis-lsp.c:3541:21: note: Frame #1: function 'dissect_sub_clv_tlv_22_22_23_141_222_223' calls function 'dissect_sub_clv_tlv_22_22_23_141_222_223' here: - 3541 | dissect_sub_clv_tlv_22_22_23_141_222_223(tvb, pinfo, subtree, local_offset, local_len); - | ^ - wireshark/epan/dissectors/packet-isis-lsp.c:3541:21: note: ... which was the starting point of the recursive call chain; there may be other cycles - ``` + (cherry picked from commit 7130e33d30acb871538e540054ef8293912ed33a) - Add Clang-Tidy suppressions as well. +commit 5a58585792 +Author: Nardi Ivan <nardi.ivan@gmail.com> +Date: Wed Jan 17 10:02:25 2024 +0100 - (cherry picked from commit 16d85df6f447b082afce8cf183d187d6144f2870) + LUA: allow conversion from string to uint64 in any base -commit 4557986660b -Author: Gerald Combs <gerald@wireshark.org> -Date: Tue Feb 20 09:41:29 2024 -0800 + This is handy when you want to specify a mask in hex format - GIOP: Add a recursion check + (cherry picked from commit 534cc08ebc9fb82b965cefdf164ae02da3827f4d) - Add Clang-Tidy suppressions as well. +commit e067aa55f3 +Author: Guy Harris <gharris@sonic.net> +Date: Sun Mar 31 12:10:56 2024 -0700 - (cherry picked from commit 45f9dae43cc9f6253bc8e8f2d12afa47a8925e62) + wslua: put the example of use for treeitem:add at the right level. -commit 37eb42985eb -Author: Gerald Combs <gerald@wireshark.org> -Date: Tue Feb 20 09:24:00 2024 -0800 + 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 - ENRP: Add a recursion check + 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. - Add Clang-Tidy suppressions as well. + Fix #19724 - (cherry picked from commit 6c52cdf959a4da6a4bf148713cb341b40f06355b) + (cherry picked from commit 7c744e7933794b09e7af4d9703194ad0b01be282) -commit e1299a0ef50 +commit 1f0bc61bbc Author: Gerald Combs <gerald@wireshark.org> -Date: Sun Feb 18 09:24:20 2024 +0000 +Date: Sun Mar 31 09:24:23 2024 +0000 - [Automatic update for 2024-02-18] + [Automatic update for 2024-03-31] Update manuf, services enterprise numbers, translations, and other items. -commit d3ad478c920 -Author: Noan <noan.perrot@gmail.com> -Date: Tue Nov 28 09:36:44 2023 +0000 +commit e9965fe303 +Author: John Thacker <johnthacker@gmail.com> +Date: Sat Mar 30 08:07:26 2024 -0400 - Fix parse number of scalability structures in VP9 + Mongo: Ensure the offset advances - (cherry picked from commit 8873aba1a03fb2fdf618807a416d528b52143bd8) + 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. - 92ceaf04 Fix parse number of scalability structures - d40a502b Fix parse number of scalability structures in VP9 + Fix #19726 -commit 6f399ff8e6f -Author: Gerald Combs <gerald@wireshark.org> -Date: Sun Feb 18 10:09:57 2024 -0800 + (cherry picked from commit 38c0efcee8d22d922e446888b268effc3ccf725f) + +commit 17bff1a32f +Author: Guy Harris <gharris@sonic.net> +Date: Fri Mar 29 22:31:04 2024 -0700 - tools: Don't assume that Homebrew has Lua 5.1 + macos-setup: Add a warning about a comparomised version of XZ. [skip ci] - (cherry picked from commit deac878dd56a4c04fc4dc9f198167314262c0af7) + (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. -commit 9dbb5482ef0 + 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: Wed Feb 14 13:18:50 2024 -0800 +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: Add release notes artifacts + cpu_info: fix missing decl in else macro block - (cherry picked from commit d54031eda9e94e9c7ab28e8a70b2509dc20cdfc9) + (cherry picked from commit 318e8d3161ac23a7f486a74500d4d2b05403a58a) -commit 4520e9eb867 +commit c9f47f9ff5 Author: Gerald Combs <gerald@wireshark.org> -Date: Wed Feb 14 13:32:10 2024 -0800 +Date: Wed Mar 27 14:40:37 2024 -0700 - Version: 4.2.3 → 4.2.4 + Version: 4.2.4 → 4.2.5 [skip ci] @@ -1,4 +1,4 @@ -Wireshark 4.2.4 Release Notes +Wireshark 4.2.5 Release Notes What is Wireshark? @@ -16,7 +16,7 @@ Wireshark 4.2.4 Release Notes Bug Fixes 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.4 or later by hand. + need to download and install[2] Wireshark 4.2.5 or later by hand. The following bugs have been fixed: @@ -32,21 +32,27 @@ Wireshark 4.2.4 Release Notes New and Updated Capture File Support - pcap and pcapng + There is no new or updated capture file support in this release. + + 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.4. 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.3[3] + • Wireshark 4.2.4[3] + + • Wireshark 4.2.3[4] - • Wireshark 4.2.2[4] + • Wireshark 4.2.2[5] - • Wireshark 4.2.1[5] + • Wireshark 4.2.1[6] - • Wireshark 4.2.0[6] + • Wireshark 4.2.0[7] Getting Wireshark @@ -58,7 +64,7 @@ Wireshark 4.2.4 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[7] on the Wireshark web site. + be found on the download page[8] on the Wireshark web site. File Locations @@ -73,37 +79,38 @@ Wireshark 4.2.4 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[8] 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[9]. + 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[10]. + Bugs and feature requests can be reported on the issue tracker[11]. You can learn protocol analysis and meet Wireshark’s developers at - SharkFest[11]. + 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[12]. + at wiresharkfoundation.org[13]. Frequently Asked Questions - A complete FAQ is available on the Wireshark web site[13]. + A complete FAQ is available on the Wireshark web site[14]. References 1. https://wiresharkfoundation.org 2. https://www.wireshark.org/download.html - 3. https://www.wireshark.org/docs/relnotes/wireshark-4.2.2.html - 4. https://www.wireshark.org/docs/relnotes/wireshark-4.2.2.html - 5. https://www.wireshark.org/docs/relnotes/wireshark-4.2.1.html - 6. https://www.wireshark.org/docs/relnotes/wireshark-4.2.0.html - 7. https://www.wireshark.org/download.html - 8. https://ask.wireshark.org/ - 9. https://www.wireshark.org/lists/ - 10. https://gitlab.com/wireshark/wireshark/-/issues - 11. https://sharkfest.wireshark.org - 12. https://wiresharkfoundation.org - 13. https://www.wireshark.org/faq.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/doc/release-notes.adoc b/doc/release-notes.adoc index bb66460d..137c591b 100644 --- a/doc/release-notes.adoc +++ b/doc/release-notes.adoc @@ -24,20 +24,52 @@ If you are upgrading Wireshark 4.2.0 or 4.2.1 on Windows you will need to https: The following vulnerabilities have been fixed: -* wssalink:2024-06[] -T.38 dissector crash. -wsbuglink:19695[]. -cveidlink:2024-2955[]. -// Fixed in master: 6fd3af5e99 -// Fixed in release-4.2: 7be4bbb413d -// Fixed in release-4.0: c04f268605c -// Fixed in release-3.6: n/a -// CVSS AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H +* 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 -// * Fuzz job crash: fuzz-2024-03-07-7208.pcap. wsbuglink:19695[]. - -Additionally, CVE-2024-24478, CVE-2024-24479, and CVE-2024-24476 were recently assigned to Wireshark without any coordination with the Wireshark project. -As far as we can determine, each one is based on invalid assumptions and we have requested that they be rejected. +// * 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-10[] +// Foo dissector {crash,infinite loop,memory leak}. +// wsbuglink:xxx[]. +// cveidlink:2024-xxx[]. +// Fixed in master: xxx +// Fixed in release-4.2: xxx +// Fixed in release-4.0: xxx +// Fixed in release-3.6: xxx +// CVSS AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H +// CWE-125 The following bugs have been fixed: @@ -46,16 +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. -* Extcap with configuration never starts; "Configure all extcaps before start of capture." is shown instead. wsbuglink:18487[]. -* Packet Dissection CSV Export includes last column even if hidden. wsbuglink:19666[]. -* Inject TLS secrets closes Wireshark on Windows. wsbuglink:19667[]. -* Fuzz job issue: fuzz-2024-02-27-7196.pcap. wsbuglink:19674[]. -* Wireshark crashes when adding another port to the HTTP dissector. wsbuglink:19677[]. -* Fuzz job issue: fuzz-2024-03-03-7204.pcap. wsbuglink:19685[]. -* Fuzz job issue: randpkt-2024-03-05-8004.pcap. wsbuglink:19688[]. -* When adding a new row to a table an error report may be inserted. wsbuglink:19705[]. -* '--export-objects' does not work as expected on tshark version later than 3.2.10. wsbuglink:19715[]. -* Fuzz job issue: fuzz-2024-03-21-7215.pcap. wsbuglink:19717[]. +* 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 @@ -73,179 +114,59 @@ 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.4.. | ag packet- | sort -u) +// ag -A1 '(define PSNAME|proto_register_protocol[^_])' $(git diff --name-only v4.2.5.. | ag packet- | sort -u) [commaize] -- -6LoWPAN -AllJoyn -AFP -AMQP -ASAP -Babel -BACnet -Banana -BEEP -Bencode -BFCP -BGP -BT-DHT -BT BNEP -BT SDP -BVLC -CIP -CMIP -CMP -COROSYNC/TOTEMSRP -COSE +5co_legacy +5co_rap +BT Mesh CQL -CSN.1 -DAP -DCCP -DICOM -DCOM -DHCPv6 -DISP DOCSIS MAC MGMT -DOF -DVB-S2 -E2AP -EDONKEY -ENRP -ErlDP -Etch -EXTREME MESH -FC-SWILS -GNW -GIOP -GLOW -GOOSE +E.212 +EPL +FC FZS GQUIC -GSM A-bis OML -GSUP -GTPv2 -H.223 -H.225.0 -H.245 -H.248 -H.264 -H.265 -HSMS +GRPC +GSM RP +HTTP2 ICMPv6 -ICQ -IEEE1609dot2 -IPP -IPPUSB -ISAKMP -iSCSI -ISIS LSP -ISO 7816 -ISUP -ITS -JSON 3GPP -JXTA -Kafka -KINK -KNX/IP -LDAP -LDP -5GLI -LISP TCP -LISP -LLRP -LwM2M-TLV -M2UA -M3UA -MAC-LTE -MBIM -MMS +IEEE 1905 +IEEE 802.11 +IPARS +JSON-3GPP +LAPD +LLDP +MATE MONGO -MPEG PES -MPLS Echo -MQ PCF -MQTT-SN -MSDP -MsgPack -MS-WSP -NAS-5GS -CFLOW -NETLINK -NHRP -OpenFlow -OpenWire -OPSI -OSC -P22 -P7 -PANA -PIM -ProtoBuf -PROXY -Q.2931 -QNET -RDP -RESP -RPL -RSL -RSVP -RTLS -RTMPT -RTPS -S7COMM -SCTP -SIMULCRYPT -SoulSeek -SMB2 -SML -SNA -SNMP -Socks -SolarEdge -SOME/IP -SUA -T.38 -TCAP -TEAP -TFTP -Thread -Thrift -TN5250 -USBHID -USBVIDEO -VP9 -WASSP -WLCCP -WTP -X.509IF -X.509SAT -XML -XMPP -YAMI -Z39.50 -ZigBee ZCL -Gryphon -PNIO -WiMAX ASN CP +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. -// Add one file type per line between the -- delimiters. -// [commaize] -// -- -// -- - -=== Updated File Format Decoding Support - -// There is no updated file format 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 -JPEG -RBM +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] +// -- +// -- + // === New and Updated Capture Interfaces support // === New and Updated Codec support @@ -257,7 +178,8 @@ RBM 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.2.html[Wireshark 4.2.3] +* 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/docbook/attributes.adoc b/docbook/attributes.adoc index 7c7085e4..aa8ba785 100644 --- a/docbook/attributes.adoc +++ b/docbook/attributes.adoc @@ -1,6 +1,6 @@ // Common attributes -:wireshark-version: 4.2.4 +: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 533aa77e..326da346 100644 --- a/docbook/wsug_src/capinfos-h.txt +++ b/docbook/wsug_src/capinfos-h.txt @@ -1,4 +1,4 @@ -Capinfos (Wireshark) 4.2.4 (v4.2.4rc0-1-g9dbb5482ef05) +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 bd81eecf..6736a664 100644 --- a/docbook/wsug_src/dumpcap-h.txt +++ b/docbook/wsug_src/dumpcap-h.txt @@ -1,4 +1,4 @@ -Dumpcap (Wireshark) 4.2.4 (v4.2.4rc0-1-g9dbb5482ef05) +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 2f8299fb..a701129f 100644 --- a/docbook/wsug_src/editcap-h.txt +++ b/docbook/wsug_src/editcap-h.txt @@ -1,4 +1,4 @@ -Editcap (Wireshark) 4.2.4 (v4.2.4rc0-1-g9dbb5482ef05) +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 ce75957c..dd307bd5 100644 --- a/docbook/wsug_src/mergecap-h.txt +++ b/docbook/wsug_src/mergecap-h.txt @@ -1,4 +1,4 @@ -Mergecap (Wireshark) 4.2.4 (v4.2.4rc0-1-g9dbb5482ef05) +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 f088b94d..6cd4526d 100644 --- a/docbook/wsug_src/rawshark-h.txt +++ b/docbook/wsug_src/rawshark-h.txt @@ -1,4 +1,4 @@ -Rawshark (Wireshark) 4.2.4 (v4.2.4rc0-1-g9dbb5482ef05) +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 ad4ee8d1..87937f6b 100644 --- a/docbook/wsug_src/reordercap-h.txt +++ b/docbook/wsug_src/reordercap-h.txt @@ -1,4 +1,4 @@ -Reordercap (Wireshark) 4.2.4 (v4.2.4rc0-1-g9dbb5482ef05) +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 938f5e5d..aa38748a 100644 --- a/docbook/wsug_src/text2pcap-h.txt +++ b/docbook/wsug_src/text2pcap-h.txt @@ -1,4 +1,4 @@ -Text2pcap (Wireshark) 4.2.4 (v4.2.4rc0-1-g9dbb5482ef05) +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 37a0d363..6dd29473 100644 --- a/docbook/wsug_src/tshark-h.txt +++ b/docbook/wsug_src/tshark-h.txt @@ -1,4 +1,4 @@ -TShark (Wireshark) 4.2.4 (v4.2.4rc0-1-g9dbb5482ef05) +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 5e3edb99..c7e6e5b9 100644 --- a/docbook/wsug_src/wireshark-h.txt +++ b/docbook/wsug_src/wireshark-h.txt @@ -1,4 +1,4 @@ -Wireshark 4.2.4 (v4.2.4rc0-1-g9dbb5482ef05) +Wireshark 4.2.5 (v4.2.5rc0-7-ge9965fe30342) Interactively dump and analyze network traffic. See https://www.wireshark.org for more information. @@ -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 3a3d19c0..051e19e4 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.4" 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/dissectors/asn1/nr-rrc/nr-rrc.cnf b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf index 5df5e1d2..c9181191 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 cbfb67cc..88f72f7a 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/packet-5co-legacy.c b/epan/dissectors/packet-5co-legacy.c index 273d2a69..5558cf03 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 06aae10f..4aaabed6 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-btmesh.c b/epan/dissectors/packet-btmesh.c index 8aa913d2..a0d930fc 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-cql.c b/epan/dissectors/packet-cql.c index 32b03ec2..668ba722 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; @@ -1430,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; @@ -1442,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 { @@ -1504,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); } } } @@ -2503,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-docsis-macmgmt.c b/epan/dissectors/packet-docsis-macmgmt.c index e3bf924a..de21249a 100644 --- a/epan/dissectors/packet-docsis-macmgmt.c +++ b/epan/dissectors/packet-docsis-macmgmt.c @@ -3844,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); @@ -3884,7 +3885,6 @@ dissect_attrs (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree) ti = proto_tree_add_item (attr_tree, hf_docsis_bpkmattr_cm_id, tvb, pos, length, ENC_NA); attr_subtree = proto_item_add_subtree(ti, ett_docsis_bpkmattr_cmid); attr_tvb = tvb_new_subset_length (tvb, pos, length); - // We recurse here, but we're limited by our packet length and the depth check in proto_tree_add_node. dissect_attrs (attr_tvb, pinfo, attr_subtree); break; case BPKM_DISPLAY_STR: @@ -4019,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-e212.c b/epan/dissectors/packet-e212.c index 4030a3c4..a51328c4 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-epl.c b/epan/dissectors/packet-epl.c index 4dbc5156..4dcd4195 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-fcfzs.c b/epan/dissectors/packet-fcfzs.c index 4cbf5193..82a55f70 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-gquic.c b/epan/dissectors/packet-gquic.c index 372bd405..c6aea314 100644 --- a/epan/dissectors/packet-gquic.c +++ b/epan/dissectors/packet-gquic.c @@ -1435,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); @@ -1491,7 +1492,6 @@ dissect_gquic_tag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *gquic_tree, gui scfg_tag_number = tvb_get_guint32(tvb, tag_offset_start + tag_offset, ENC_LITTLE_ENDIAN); tag_offset += 4; - // We recurse here, but we're limited by tree depth checks in epan dissect_gquic_tag(tvb, pinfo, tag_tree, tag_offset_start + tag_offset, scfg_tag_number); tag_offset += tag_len - 4 - 4; } @@ -1714,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 a459fde2..b71a272b 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 66c02b2f..f20e8a77 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-http2.c b/epan/dissectors/packet-http2.c index 5def945a..fa51d447 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; @@ -3157,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( @@ -3238,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 */ @@ -4867,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 f3b961de..e7d188ba 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 08b29344..4a085f5f 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} }; @@ -1820,12 +1822,16 @@ static int dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, /* 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); @@ -2228,7 +2234,9 @@ static int dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, /* 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 */ @@ -2267,7 +2275,9 @@ static int dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, /* 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) ) { @@ -2415,7 +2425,9 @@ static int dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, /* 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) ) { @@ -2903,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, @@ -2920,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){ @@ -3128,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. */ @@ -3852,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-ieee1905.c b/epan/dissectors/packet-ieee1905.c index e26da6f3..2c98c4de 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 15e43f8e..67d4be52 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-ipars.c b/epan/dissectors/packet-ipars.c index 4b3a4bbd..3115ec0a 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-json_3gpp.c b/epan/dissectors/packet-json_3gpp.c index 8cb4cadb..d44f9198 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; @@ -1287,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-lapd.c b/epan/dissectors/packet-lapd.c index fcae4e19..cea2b3e6 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-lldp.c b/epan/dissectors/packet-lldp.c index d70c379d..307a1d3f 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-mongo.c b/epan/dissectors/packet-mongo.c index db23a063..346b1324 100644 --- a/epan/dissectors/packet-mongo.c +++ b/epan/dissectors/packet-mongo.c @@ -831,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; @@ -840,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; diff --git a/epan/dissectors/packet-nas_5gs.c b/epan/dissectors/packet-nas_5gs.c index 915ae1c0..26bb927f 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; } @@ -10292,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"); @@ -10308,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*/ @@ -10329,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-nr-rrc.c b/epan/dissectors/packet-nr-rrc.c index 1086fac9..6f2eb414 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-per.c b/epan/dissectors/packet-per.c index 4a4ac7c8..1a0f3ee3 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 6a57c584..6565bfb3 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-ptp.c b/epan/dissectors/packet-ptp.c index 09d499b8..c87fc521 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-quic.c b/epan/dissectors/packet-quic.c index a41ce9cc..cabc2c50 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-ssh.c b/epan/dissectors/packet-ssh.c index 1b919590..4f2b0ff5 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-tipc.c b/epan/dissectors/packet-tipc.c index fb41797d..a556ed6a 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 a2572b7b..2a60d835 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 } }; diff --git a/epan/dissectors/packet-zbee-direct.c b/epan/dissectors/packet-zbee-direct.c index 971eb9bc..e8e8eda6 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-tlv.c b/epan/dissectors/packet-zbee-tlv.c index 77abd2a7..1ba6e49a 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/usb.c b/epan/dissectors/usb.c index 1f830e38..0c76303e 100644 --- a/epan/dissectors/usb.c +++ b/epan/dissectors/usb.c @@ -8175,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" }, diff --git a/epan/enterprises.c b/epan/enterprises.c index ec8cd0a0..2c87c7ee 100644 --- a/epan/enterprises.c +++ b/epan/enterprises.c @@ -8,7 +8,7 @@ * SPDX-License-Identifier: GPL-2.0-or-later */ -/* (last updated 2024-03-22) */ +/* (last updated 2024-05-10) */ #include "config.h" @@ -19,12 +19,12 @@ typedef struct { uint32_t max_idx; - const char* values[61692]; + const char* values[61884]; } global_enterprises_table_t; static global_enterprises_table_t table = { - 61691, + 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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -61376,7 +61376,7 @@ static global_enterprises_table_t table = "Kirill Sluzhaev", // 61347 "Limited Liability Company ""Thunder Soft""", // 61348 "北京中科恒伦科技有限公司 (Beijing Zhongke Henglun Technology Co., Ltd.)", // 61349 - "SMARTGEN(ZHENGZHOU) TECHNOLOGY CO.,LTD", // 61350 + "smartgen", // 61350 "Telekomi Kosoves", // 61351 "Parta Networks", // 61352 "Polar Wind Medical Center, Inc.", // 61353 @@ -61597,7 +61597,7 @@ static global_enterprises_table_t table = "Shanghai Pingbo Info & Tech Ltd.", // 61568 "Matthew Gardner", // 61569 "Bence Skorka", // 61570 - "Asseco SEE d.o.o Beograd", // 61571 + "ASEE Solutions d.o.o Beograd", // 61571 "BNGSOFT ltd.", // 61572 "Code Fox", // 61573 "Stadt Troisdorf", // 61574 @@ -61717,7 +61717,199 @@ static global_enterprises_table_t table = "oruga.de", // 61688 "Ricon İletişim AŞ", // 61689 "ThinkCloud", // 61690 - "Public Joint Stock Company Mobile TeleSystems (PJSC MTS)" // 61691 + "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/manuf-data.c b/epan/manuf-data.c index ed5992ff..6d262cfa 100644 --- a/epan/manuf-data.c +++ b/epan/manuf-data.c @@ -39,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 }, @@ -150,8 +151,10 @@ 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 }, @@ -346,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 }, @@ -362,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 }, @@ -1030,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" }, @@ -2892,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" }, @@ -3289,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." }, @@ -5505,7 +5510,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x00, 0x14, 0x35 }, "CityCom", "CityCom Corp." }, { { 0x00, 0x14, 0x36 }, "QwertyElektr", "Qwerty Elektronik AB" }, { { 0x00, 0x14, 0x37 }, "GSTeletech", "GSTeletech Co.,Ltd." }, - { { 0x00, 0x14, 0x38 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x00, 0x14, 0x38 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x00, 0x14, 0x39 }, "BlonderTongu", "Blonder Tongue Laboratories, Inc" }, { { 0x00, 0x14, 0x3A }, "RaytalkInter", "Raytalk International Srl" }, { { 0x00, 0x14, 0x3B }, "Sensovation", "Sensovation AG" }, @@ -7012,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" }, @@ -8203,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." }, @@ -9639,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" }, @@ -10916,7 +10921,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x00, 0x4C, 0xE5 }, "SichuanTiany", "Sichuan Tianyi Comheart Telecom Co.,LTD" }, { { 0x00, 0x4D, 0x32 }, "AndonHealth", "Andon Health Co.,Ltd." }, { { 0x00, 0x4E, 0x01 }, "Dell", "Dell Inc." }, - { { 0x00, 0x4E, 0x35 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x00, 0x4E, 0x35 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x00, 0x4F, 0x1A }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" }, { { 0x00, 0x50, 0x00 }, "NexoCommunic", "Nexo Communications, Inc." }, { { 0x00, 0x50, 0x01 }, "Yamashita", "Yamashita Systems Corp." }, @@ -12321,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" }, @@ -13316,7 +13322,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x00, 0xFC, 0x8D }, "HitronTechno", "Hitron Technologies. Inc" }, { { 0x00, 0xFC, 0xBA }, "Cisco", "Cisco Systems, Inc" }, { { 0x00, 0xFD, 0x22 }, "Cisco", "Cisco Systems, Inc" }, - { { 0x00, 0xFD, 0x45 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x00, 0xFD, 0x45 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x00, 0xFD, 0x4C }, "Nevatec", "Nevatec" }, { { 0x00, 0xFE, 0xC8 }, "Cisco", "Cisco Systems, Inc" }, { { 0x02, 0x07, 0x01 }, "RacalDatacom", "Racal-Datacom" }, @@ -13333,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" }, @@ -13342,7 +13349,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x04, 0x04, 0xEA }, "ValensSemico", "Valens Semiconductor Ltd." }, { { 0x04, 0x05, 0xDD }, "CultraviewDi", "Shenzhen Cultraview Digital Technology Co., Ltd" }, { { 0x04, 0x07, 0x2E }, "VTechElectro", "VTech Electronics Ltd." }, - { { 0x04, 0x09, 0x73 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x04, 0x09, 0x73 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x04, 0x09, 0x86 }, "Arcadyan", "Arcadyan Corporation" }, { { 0x04, 0x09, 0xA5 }, "HFR", "HFR, Inc." }, { { 0x04, 0x0A, 0x83 }, "AlcatelLucen", "Alcatel-Lucent" }, @@ -13352,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" }, @@ -13417,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." }, @@ -13523,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." }, @@ -13576,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." }, @@ -13641,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." }, @@ -13833,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" }, @@ -13854,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" }, @@ -14007,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." }, @@ -14029,7 +14043,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x08, 0x95, 0x42 }, "Apple", "Apple, Inc." }, { { 0x08, 0x96, 0xAD }, "Cisco", "Cisco Systems, Inc" }, { { 0x08, 0x96, 0xD7 }, "AVM", "AVM GmbH" }, - { { 0x08, 0x97, 0x34 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x08, 0x97, 0x34 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x08, 0x97, 0x58 }, "StrongRising", "Shenzhen Strong Rising Electronics Co.,Ltd DongGuan Subsidiary" }, { { 0x08, 0x97, 0x98 }, "CompalInform", "Compal Information (Kunshan) Co., Ltd." }, { { 0x08, 0x99, 0xE8 }, "KEMAS", "KEMAS GmbH" }, @@ -14067,6 +14081,7 @@ 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" }, @@ -14143,7 +14158,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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 – WW Corporate Headquarters" }, + { { 0x08, 0xF1, 0xEA }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x08, 0xF2, 0xF4 }, "NetOnePartne", "Net One Partners Co.,Ltd." }, { { 0x08, 0xF3, 0xFB }, "Cisco", "Cisco Systems, Inc" }, { { 0x08, 0xF4, 0x58 }, "HuaweiDevice", "Huawei Device Co., Ltd." }, @@ -14182,6 +14197,7 @@ 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" }, @@ -14217,6 +14233,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -14225,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" }, @@ -14332,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" }, @@ -14363,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" }, @@ -14414,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." }, @@ -14439,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" }, @@ -14471,6 +14492,7 @@ 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." }, @@ -14548,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" }, @@ -14595,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." }, @@ -14616,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" }, @@ -14700,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" }, @@ -14770,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" }, @@ -14809,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" }, @@ -14862,7 +14889,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x14, 0x00, 0xE9 }, "MitelNetwork", "Mitel Networks Corporation" }, { { 0x14, 0x01, 0x52 }, "SamsungElect", "Samsung Electronics Co.,Ltd" }, { { 0x14, 0x01, 0x9C }, "Ubyon", "Ubyon Inc." }, - { { 0x14, 0x02, 0xEC }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x14, 0x02, 0xEC }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x14, 0x04, 0x67 }, "SNKTechnolog", "SNK Technologies Co.,Ltd." }, { { 0x14, 0x06, 0x4C }, "VoglElectron", "Vogl Electronic GmbH" }, { { 0x14, 0x07, 0x08 }, "CpPlus", "Cp Plus Gmbh & Co. Kg" }, @@ -14887,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" }, @@ -14913,6 +14941,7 @@ 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" }, @@ -15013,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" }, @@ -15062,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" }, @@ -15092,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" }, @@ -15112,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" }, @@ -15333,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" }, @@ -15362,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" }, @@ -15383,13 +15415,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -15602,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" }, @@ -15706,6 +15739,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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." }, @@ -15771,7 +15805,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x1C, 0x97, 0xC5 }, "Ynomia", "Ynomia Pty Ltd" }, { { 0x1C, 0x97, 0xFB }, "CoolBitX", "CoolBitX Ltd." }, { { 0x1C, 0x98, 0xC1 }, "CloudNetwork", "Cloud Network Technology Singapore Pte. Ltd." }, - { { 0x1C, 0x98, 0xEC }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x1C, 0x98, 0xEC }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x1C, 0x99, 0x4C }, "MurataManufa", "Murata Manufacturing Co., Ltd." }, { { 0x1C, 0x99, 0x57 }, "Intel", "Intel Corporate" }, { { 0x1C, 0x9C, 0x26 }, "ZoovelTechno", "Zoovel Technologies" }, @@ -15863,6 +15897,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -15874,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" }, @@ -15889,6 +15925,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -15966,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." }, @@ -15987,7 +16025,7 @@ 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" }, @@ -16026,7 +16064,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x20, 0x65, 0x8E }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" }, { { 0x20, 0x66, 0xCF }, "FreeboxSas", "Freebox Sas" }, { { 0x20, 0x66, 0xFD }, "Constell8", "Constell8 Nv" }, - { { 0x20, 0x67, 0x7C }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x20, 0x67, 0x7C }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x20, 0x67, 0xB1 }, "Pluto", "Pluto inc." }, { { 0x20, 0x67, 0xE0 }, "iCommSemicon", "Shenzhen iComm Semiconductor CO.,LTD" }, { { 0x20, 0x68, 0x9D }, "LiteonTechno", "Liteon Technology Corporation" }, @@ -16094,7 +16132,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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." }, @@ -16103,7 +16141,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x20, 0xA5, 0xCB }, "Apple", "Apple, Inc." }, { { 0x20, 0xA6, 0x0C }, "XiaomiCommun", "Xiaomi Communications Co Ltd" }, { { 0x20, 0xA6, 0x80 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" }, - { { 0x20, 0xA6, 0xCD }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x20, 0xA6, 0xCD }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x20, 0xA7, 0x66 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" }, { { 0x20, 0xA7, 0x83 }, "miControl", "miControl GmbH" }, { { 0x20, 0xA7, 0x87 }, "BointecTaiwa", "Bointec Taiwan Corporation Limited" }, @@ -16165,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." }, @@ -16251,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)" }, @@ -16299,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" }, @@ -16343,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" }, @@ -16380,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" }, @@ -16412,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." }, @@ -16497,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." }, @@ -16533,8 +16577,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x24, 0xF0, 0xFF }, "GHT", "GHT Co., Ltd." }, { { 0x24, 0xF1, 0x28 }, "Telstra", "Telstra" }, { { 0x24, 0xF1, 0x50 }, "GuangzhouQia", "Guangzhou Qi'an Technology Co., Ltd." }, - { { 0x24, 0xF2, 0x7F }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 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" }, @@ -16607,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" }, @@ -16681,6 +16727,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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." }, @@ -16763,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." }, @@ -16772,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" }, @@ -16795,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" }, @@ -16839,7 +16889,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x28, 0xDB, 0x81 }, "GuaoElectron", "Shanghai Guao Electronic Technology Co., Ltd" }, { { 0x28, 0xDB, 0xA7 }, "SiliconLabor", "Silicon Laboratories" }, { { 0x28, 0xDE, 0x59 }, "DomusNTW", "Domus NTW CORP." }, - { { 0x28, 0xDE, 0x65 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" }, + { { 0x28, 0xDE, 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." }, @@ -17185,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." }, @@ -17224,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" }, @@ -17288,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." }, @@ -17298,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" }, @@ -17325,7 +17379,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x30, 0x3E, 0xAD }, "SonavoxCanad", "Sonavox Canada Inc" }, { { 0x30, 0x3F, 0x5D }, "PtHanSungEle", "Pt Han Sung Electoronics Indonesia" }, { { 0x30, 0x3F, 0x7B }, "YOUHUATechno", "Shenzhen YOUHUA Technology Co., Ltd" }, - { { 0x30, 0x3F, 0xBB }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x30, 0x3F, 0xBB }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x30, 0x40, 0x74 }, "zte", "zte corporation" }, { { 0x30, 0x41, 0x74 }, "AltecLansing", "Altec Lansing Llc" }, { { 0x30, 0x42, 0x25 }, "BurgWächter", "Burg-Wächter Kg" }, @@ -17445,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" }, @@ -17592,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." }, @@ -17651,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" }, @@ -17676,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" }, @@ -17764,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" }, @@ -17846,7 +17903,7 @@ 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." }, @@ -17860,6 +17917,7 @@ 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" }, @@ -17934,7 +17992,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x34, 0xFA, 0x9F }, "RuckusWirele", "Ruckus Wireless" }, { { 0x34, 0xFC, 0x6F }, "Alcea", "Alcea" }, { { 0x34, 0xFC, 0xA1 }, "Micronetunio", "Micronet union Technology(Chengdu)Co., Ltd." }, - { { 0x34, 0xFC, 0xB9 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x34, 0xFC, 0xB9 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x34, 0xFC, 0xEF }, "LGElectronic", "LG Electronics (Mobile Communications)" }, { { 0x34, 0xFD, 0x6A }, "Apple", "Apple, Inc." }, { { 0x34, 0xFE, 0x1C }, "ChoungHwaTec", "Choung Hwa Tech Co.,Ltd" }, @@ -17960,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." }, @@ -17969,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." }, @@ -17978,11 +18037,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x38, 0x16, 0xD1 }, "SamsungElect", "Samsung Electronics Co.,Ltd" }, { { 0x38, 0x17, 0x30 }, "UlrichLipper", "Ulrich Lippert GmbH & Co KG" }, { { 0x38, 0x17, 0x66 }, "Promzakaz", "Promzakaz Ltd." }, - { { 0x38, 0x17, 0xC3 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x38, 0x17, 0xC3 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x38, 0x17, 0xE1 }, "VantivaUSA", "Vantiva USA LLC" }, { { 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." }, @@ -17994,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." }, @@ -18009,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)" }, @@ -18098,6 +18159,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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." }, @@ -18160,6 +18222,7 @@ 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" }, @@ -18189,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" }, @@ -18392,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" }, @@ -18506,6 +18570,7 @@ 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" }, @@ -18538,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." }, @@ -18563,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" }, @@ -18628,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" }, @@ -18654,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." }, @@ -18770,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" }, @@ -18803,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." }, @@ -18892,11 +18963,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x40, 0xB8, 0x37 }, "Sony", "Sony Corporation" }, { { 0x40, 0xB8, 0x9A }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." }, { { 0x40, 0xB8, 0xC2 }, "Osmozis", "Osmozis" }, - { { 0x40, 0xB9, 0x3C }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 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" }, @@ -18949,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" }, @@ -19006,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" }, @@ -19037,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." }, @@ -19063,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" }, @@ -19080,7 +19154,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x44, 0x47, 0xCC }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." }, { { 0x44, 0x48, 0x91 }, "HDMILicensin", "HDMI Licensing, LLC" }, { { 0x44, 0x48, 0xB9 }, "MitraStarTec", "MitraStar Technology Corp." }, - { { 0x44, 0x48, 0xC1 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 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" }, @@ -19109,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" }, @@ -19145,6 +19219,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -19163,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" }, @@ -19194,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" }, @@ -19327,13 +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" }, @@ -19385,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" }, @@ -19401,6 +19479,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -19423,7 +19502,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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 – WW Corporate Headquarters" }, + { { 0x48, 0x4A, 0xE9 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x48, 0x4B, 0xAA }, "Apple", "Apple, Inc." }, { { 0x48, 0x4B, 0xD4 }, "VantivaUSA", "Vantiva USA LLC" }, { { 0x48, 0x4C, 0x29 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" }, @@ -19547,8 +19626,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x48, 0x9D, 0xD1 }, "SamsungElect", "Samsung Electronics Co.,Ltd" }, { { 0x48, 0x9E, 0x9D }, "HuiZhouGaosh", "Hui Zhou Gaoshengda Technology Co.,LTD" }, { { 0x48, 0x9E, 0xBD }, "HP", "HP Inc." }, - { { 0x48, 0x9E, 0xCB }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 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" }, @@ -19573,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." }, @@ -19633,11 +19714,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x48, 0xDD, 0x0C }, "eero", "eero inc." }, { { 0x48, 0xDD, 0x9D }, "ItelMobile", "Itel Mobile Limited" }, { { 0x48, 0xDF, 0x1C }, "NECFibreOpti", "Wuhan NEC Fibre Optic Communications industry Co. Ltd" }, - { { 0x48, 0xDF, 0x37 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x48, 0xDF, 0x37 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x48, 0xE1, 0x5C }, "Apple", "Apple, Inc." }, { { 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" }, @@ -19742,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" }, @@ -19883,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." }, @@ -19912,7 +19996,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x4C, 0xAE, 0x13 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" }, { { 0x4C, 0xAE, 0x1C }, "SaiNXTTechno", "SaiNXT Technologies LLP" }, { { 0x4C, 0xAE, 0x31 }, "ShengHaiElec", "ShengHai Electronics (Shenzhen) Ltd" }, - { { 0x4C, 0xAE, 0xA3 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 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" }, @@ -19970,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." }, @@ -20034,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" }, @@ -20100,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." }, @@ -20285,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." }, @@ -20343,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" }, @@ -20365,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" }, @@ -20546,7 +20634,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x54, 0x75, 0xD0 }, "Cisco", "Cisco Systems, Inc" }, { { 0x54, 0x76, 0xB2 }, "RaisecomTech", "Raisecom Technology CO., LTD" }, { { 0x54, 0x77, 0x87 }, "EardaTechnol", "Earda Technologies co Ltd" }, - { { 0x54, 0x77, 0x8A }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x54, 0x77, 0x8A }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x54, 0x78, 0x1A }, "Cisco", "Cisco Systems, Inc" }, { { 0x54, 0x78, 0x85 }, "GiecDigital", "Shenzhen Giec Digital Co.,Ltd" }, { { 0x54, 0x78, 0xC9 }, "AMPAKTechnol", "AMPAK Technology,Inc." }, @@ -20559,7 +20647,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x54, 0x7F, 0xA8 }, "TELCOsro", "TELCO systems, s.r.o." }, { { 0x54, 0x7F, 0xBC }, "iodyne", "iodyne" }, { { 0x54, 0x7F, 0xEE }, "Cisco", "Cisco Systems, Inc" }, - { { 0x54, 0x80, 0x28 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x54, 0x80, 0x28 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x54, 0x81, 0x2D }, "PAXComputerT", "PAX Computer Technology(Shenzhen) Ltd." }, { { 0x54, 0x81, 0xAD }, "EagleResearc", "Eagle Research Corporation" }, { { 0x54, 0x83, 0x3A }, "ZyxelCommuni", "Zyxel Communications Corporation" }, @@ -20654,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" }, @@ -20695,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." }, @@ -20709,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." }, @@ -20839,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" }, @@ -20956,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." }, @@ -20969,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." }, @@ -21009,6 +21103,7 @@ 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" }, @@ -21045,6 +21140,7 @@ 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" }, @@ -21064,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" }, @@ -21202,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" }, @@ -21231,7 +21329,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x5C, 0xA1, 0xE0 }, "EmbedWayTech", "EmbedWay Technologies" }, { { 0x5C, 0xA3, 0x9D }, "SamsungElect", "Samsung Electro Mechanics Co., Ltd." }, { { 0x5C, 0xA3, 0xEB }, "SKODADIGITAL", "SKODA DIGITAL s.r.o." }, - { { 0x5C, 0xA4, 0x7D }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" }, + { { 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" }, @@ -21258,13 +21356,14 @@ 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" }, { { 0x5C, 0xB6, 0xCC }, "NovaCommTech", "NovaComm Technologies Inc." }, { { 0x5C, 0xB8, 0xCB }, "AllisCommuni", "Allis Communications" }, { { 0x5C, 0xB9, 0x01 }, "HewlettPacka", "Hewlett Packard" }, - { { 0x5C, 0xBA, 0x2C }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x5C, 0xBA, 0x2C }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x5C, 0xBA, 0x37 }, "Microsoft", "Microsoft Corporation" }, { { 0x5C, 0xBA, 0xEF }, "ChongqingFug", "Chongqing Fugui Electronics Co.,Ltd." }, { { 0x5C, 0xBB, 0xEE }, "zte", "zte corporation" }, @@ -21339,7 +21438,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x5C, 0xEA, 0x1D }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." }, { { 0x5C, 0xEB, 0x4E }, "RSTAHLHMI", "R. STAHL HMI Systems GmbH" }, { { 0x5C, 0xEB, 0x68 }, "CheerstarTec", "Cheerstar Technology Co., Ltd" }, - { { 0x5C, 0xED, 0x8C }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x5C, 0xED, 0x8C }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x5C, 0xED, 0xF4 }, "SamsungElect", "Samsung Electronics Co.,Ltd" }, { { 0x5C, 0xEE, 0x79 }, "GlobalDigite", "Global Digitech Co LTD" }, { { 0x5C, 0xF2, 0x07 }, "SpecoTechnol", "Speco Technologies" }, @@ -21427,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." }, @@ -21438,6 +21537,7 @@ 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" }, @@ -21543,6 +21643,7 @@ 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." }, @@ -21705,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" }, @@ -21736,6 +21839,7 @@ 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" }, @@ -21917,6 +22021,7 @@ 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" }, @@ -21936,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" }, @@ -22052,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" }, @@ -22129,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" }, @@ -22185,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" }, @@ -22321,6 +22428,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -22329,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" }, @@ -22670,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." }, @@ -22692,7 +22803,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x6C, 0xC3, 0x74 }, "TexasInstrum", "Texas Instruments" }, { { 0x6C, 0xC3, 0xB2 }, "CiscoMeraki", "Cisco Meraki" }, { { 0x6C, 0xC4, 0x1E }, "NEXSEC", "NEXSEC Incorporated" }, - { { 0x6C, 0xC4, 0x9F }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" }, + { { 0x6C, 0xC4, 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)" }, @@ -22748,7 +22859,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -22759,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." }, @@ -22783,7 +22895,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x70, 0x0F, 0xC7 }, "IkinloopTech", "Shenzhen Ikinloop Technology Co.,Ltd." }, { { 0x70, 0x0F, 0xEC }, "Poindus", "Poindus Systems Corp." }, { { 0x70, 0x10, 0x5C }, "Cisco", "Cisco Systems, Inc" }, - { { 0x70, 0x10, 0x6F }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x70, 0x10, 0x6F }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x70, 0x11, 0x0E }, "zte", "zte corporation" }, { { 0x70, 0x11, 0x24 }, "Apple", "Apple, Inc." }, { { 0x70, 0x11, 0x35 }, "Livesecu", "Livesecu co., Ltd" }, @@ -22841,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" }, @@ -22928,6 +23042,7 @@ 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" }, @@ -23130,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" }, @@ -23138,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" }, @@ -23181,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." }, @@ -23364,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" }, @@ -23416,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" }, @@ -23521,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" }, @@ -23562,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." }, @@ -23571,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" }, @@ -23582,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" }, @@ -23774,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." }, @@ -23849,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" }, @@ -23859,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" }, @@ -23938,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" }, @@ -23961,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." }, @@ -24010,7 +24139,7 @@ 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" }, @@ -24054,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." }, @@ -24115,7 +24245,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x7C, 0xA2, 0x9B }, "DSignT", "D.SignT GmbH & Co. KG" }, { { 0x7C, 0xA4, 0x49 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" }, { { 0x7C, 0xA6, 0x1D }, "Mhl", "Mhl, Llc" }, - { { 0x7C, 0xA6, 0x2A }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x7C, 0xA6, 0x2A }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x7C, 0xA7, 0xB0 }, "BilianElectr", "Shenzhen Bilian Electronic Co.,Ltd" }, { { 0x7C, 0xA9, 0x6B }, "SyrotechNetw", "Syrotech Networks. Ltd." }, { { 0x7C, 0xA9, 0x7D }, "Objenious", "Objenious" }, @@ -24144,6 +24274,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -24211,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." }, @@ -24261,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" }, @@ -24315,7 +24448,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x80, 0x2F, 0xDE }, "ZurichInstru", "Zurich Instruments AG" }, { { 0x80, 0x30, 0x49 }, "LiteonTechno", "Liteon Technology Corporation" }, { { 0x80, 0x30, 0xDC }, "TexasInstrum", "Texas Instruments" }, - { { 0x80, 0x30, 0xE0 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x80, 0x30, 0xE0 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x80, 0x31, 0xF0 }, "SamsungElect", "Samsung Electronics Co.,Ltd" }, { { 0x80, 0x32, 0x53 }, "Intel", "Intel Corporate" }, { { 0x80, 0x34, 0x28 }, "MicrochipTec", "Microchip Technology Inc." }, @@ -24448,7 +24581,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x80, 0x8A, 0xF7 }, "Nanoleaf", "Nanoleaf" }, { { 0x80, 0x8B, 0x5C }, "RunhuichengT", "Shenzhen Runhuicheng Technology Co., Ltd" }, { { 0x80, 0x8C, 0x97 }, "KaonGroup", "Kaon Group Co., Ltd." }, - { { 0x80, 0x8D, 0xB7 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x80, 0x8D, 0xB7 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x80, 0x8F, 0x1D }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." }, { { 0x80, 0x8F, 0xE8 }, "Intelbras", "Intelbras" }, { { 0x80, 0x91, 0x2A }, "LihRongelect", "Lih Rong electronic Enterprise Co., Ltd." }, @@ -24661,7 +24794,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -24718,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." }, @@ -24741,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" }, @@ -24800,6 +24935,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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." }, @@ -24876,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." }, @@ -24922,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." }, @@ -24985,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." }, @@ -25012,7 +25149,7 @@ 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" }, @@ -25124,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." }, @@ -25261,7 +25399,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x88, 0xE8, 0xF8 }, "YongTaiElect", "Yong Tai Electronic (Dongguan) Ltd." }, { { 0x88, 0xE9, 0x0F }, "innomdlelab", "innomdlelab" }, { { 0x88, 0xE9, 0x17 }, "Tamaggo", "Tamaggo" }, - { { 0x88, 0xE9, 0xA4 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x88, 0xE9, 0xA4 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x88, 0xE9, 0xFE }, "Apple", "Apple, Inc." }, { { 0x88, 0xED, 0x1C }, "CudoCommunic", "Cudo Communication Co., Ltd." }, { { 0x88, 0xEF, 0x16 }, "ARRISGroup", "ARRIS Group, Inc." }, @@ -25307,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" }, @@ -25321,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" }, @@ -25451,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" }, @@ -25478,7 +25618,7 @@ 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" }, @@ -25545,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" }, @@ -25664,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" }, @@ -25681,7 +25823,7 @@ 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" }, @@ -25742,7 +25884,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x90, 0x48, 0x9A }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." }, { { 0x90, 0x49, 0x92 }, "YSTenTechnol", "YSTen Technology Co.,Ltd" }, { { 0x90, 0x49, 0xFA }, "Intel", "Intel Corporate" }, - { { 0x90, 0x4C, 0x81 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x90, 0x4C, 0x81 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x90, 0x4C, 0xE5 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." }, { { 0x90, 0x4D, 0x4A }, "SagemcomBroa", "Sagemcom Broadband SAS" }, { { 0x90, 0x4D, 0xC3 }, "Flonidan", "Flonidan A/S" }, @@ -25753,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." }, @@ -25768,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" }, @@ -25866,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" }, @@ -25905,6 +26050,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -25921,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" }, @@ -25932,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" }, @@ -25990,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" }, @@ -26022,6 +26171,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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." }, @@ -26033,7 +26183,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x94, 0x16, 0x73 }, "PointCore", "Point Core SARL" }, { { 0x94, 0x17, 0x00 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" }, { { 0x94, 0x18, 0x65 }, "Netgear", "Netgear" }, - { { 0x94, 0x18, 0x82 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x94, 0x18, 0x82 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x94, 0x19, 0x3A }, "Elvaco", "Elvaco AB" }, { { 0x94, 0x1C, 0x56 }, "ActiontecEle", "Actiontec Electronics, Inc" }, { { 0x94, 0x1D, 0x1C }, "TLabWest", "TLab West Systems AB" }, @@ -26083,10 +26233,10 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x94, 0x3E, 0xE4 }, "WiSATechnolo", "WiSA Technologies Inc" }, { { 0x94, 0x3F, 0x0C }, "Genexis", "Genexis B.V." }, { { 0x94, 0x3F, 0xBB }, "JSCRPCIstokn", "JSC RPC Istok named after Shokin" }, - { { 0x94, 0x3F, 0xC2 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x94, 0x3F, 0xC2 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x94, 0x3F, 0xD6 }, "Apple", "Apple, Inc." }, { { 0x94, 0x40, 0xA2 }, "AnywaveCommu", "Anywave Communication Technologies, Inc." }, - { { 0x94, 0x40, 0xC9 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x94, 0x40, 0xC9 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x94, 0x40, 0xF3 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" }, { { 0x94, 0x41, 0xC1 }, "MiniCam", "Mini-Cam Limited" }, { { 0x94, 0x43, 0x4D }, "Ciena", "Ciena Corporation" }, @@ -26102,6 +26252,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -26122,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" }, @@ -26205,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" }, @@ -26224,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." }, @@ -26258,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" }, @@ -26325,7 +26479,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x94, 0xEB, 0xCD }, "BlackBerryRT", "BlackBerry RTS" }, { { 0x94, 0xEE, 0x9F }, "HMDGlobal", "HMD Global Oy" }, { { 0x94, 0xEF, 0x49 }, "BDRThermeaGr", "BDR Thermea Group B.V" }, - { { 0x94, 0xF1, 0x28 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x94, 0xF1, 0x28 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x94, 0xF1, 0x9E }, "HuizhouMaoro", "Huizhou Maorong Intelligent Technology Co.,Ltd" }, { { 0x94, 0xF2, 0x78 }, "ElmaElectron", "Elma Electronic" }, { { 0x94, 0xF2, 0xBB }, "ValeoVision", "Valeo Vision Systems" }, @@ -26366,6 +26520,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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." }, @@ -26382,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" }, @@ -26432,7 +26588,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -26520,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." }, @@ -26534,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" }, @@ -26571,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" }, @@ -26651,7 +26809,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x98, 0xF1, 0x81 }, "NewH3CTechno", "New H3C Technologies Co., Ltd" }, { { 0x98, 0xF1, 0x99 }, "NECPlatforms", "NEC Platforms, Ltd." }, { { 0x98, 0xF2, 0x17 }, "CastlenetTec", "Castlenet Technology Inc." }, - { { 0x98, 0xF2, 0xB3 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 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." }, @@ -26700,13 +26858,15 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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, 0x1A, 0x25 }, "Apple", "Apple, Inc." }, - { { 0x9C, 0x1C, 0x12 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" }, + { { 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" }, @@ -26753,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" }, @@ -26875,7 +27035,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0x9C, 0x8B, 0xA0 }, "Apple", "Apple, Inc." }, { { 0x9C, 0x8B, 0xF1 }, "Warehouse", "The Warehouse Limited" }, { { 0x9C, 0x8C, 0x6E }, "SamsungElect", "Samsung Electronics Co.,Ltd" }, - { { 0x9C, 0x8C, 0xD8 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0x9C, 0x8C, 0xD8 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0x9C, 0x8D, 0x1A }, "INTEGprocess", "INTEG process group inc" }, { { 0x9C, 0x8D, 0x7C }, "Alpsalpine", "Alpsalpine Co,.Ltd" }, { { 0x9C, 0x8D, 0xD3 }, "LeontonTechn", "Leonton Technologies" }, @@ -26920,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." }, @@ -26963,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" }, @@ -26977,10 +27139,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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, 0xDC, 0x71 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 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" }, { { 0x9C, 0xDF, 0x03 }, "HarmanBecker", "Harman/Becker Automotive Systems GmbH" }, @@ -27078,7 +27241,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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." }, @@ -27129,6 +27292,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -27139,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" }, @@ -27169,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." }, @@ -27248,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" }, @@ -27266,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" }, @@ -27395,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." }, @@ -27771,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" }, @@ -27824,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" }, @@ -27841,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." }, @@ -27871,6 +28039,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0xA8, 0x6D, 0x5F }, "RaisecomTech", "Raisecom Technology CO., LTD" }, { { 0xA8, 0x6D, 0xAA }, "Intel", "Intel Corporate" }, { { 0xA8, 0x6E, 0x4E }, "HuaweiDevice", "Huawei Device Co., Ltd." }, + { { 0xA8, 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." }, @@ -27953,6 +28122,7 @@ 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" }, @@ -27970,13 +28140,14 @@ 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." }, { { 0xA8, 0xBB, 0xCF }, "Apple", "Apple, Inc." }, { { 0xA8, 0xBC, 0x9C }, "CloudLightTe", "Cloud Light Technology Limited" }, { { 0xA8, 0xBD, 0x1A }, "HoneyBee", "Honey Bee (Hong Kong) Limited" }, - { { 0xA8, 0xBD, 0x27 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0xA8, 0xBD, 0x27 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0xA8, 0xBD, 0x3A }, "UnionManTech", "Union Man Technology Co.,Ltd" }, { { 0xA8, 0xBE, 0x27 }, "Apple", "Apple, Inc." }, { { 0xA8, 0xBF, 0x3C }, "HDVPhoelectr", "HDV Phoelectron Technology Limited" }, @@ -28198,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" }, @@ -28284,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" }, @@ -28310,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" }, @@ -28436,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" }, @@ -28472,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" }, @@ -28502,6 +28676,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -28557,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" }, @@ -28672,7 +28848,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0xB0, 0xB4, 0x48 }, "TexasInstrum", "Texas Instruments" }, { { 0xB0, 0xB5, 0xC3 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" }, { { 0xB0, 0xB5, 0xE8 }, "Ruroc", "Ruroc LTD" }, - { { 0xB0, 0xB8, 0x67 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0xB0, 0xB8, 0x67 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0xB0, 0xB8, 0xD5 }, "NanjingNengr", "Nanjing Nengrui Auto Equipment CO.,Ltd" }, { { 0xB0, 0xB9, 0x8A }, "Netgear", "Netgear" }, { { 0xB0, 0xBB, 0x8B }, "WavetelTechn", "Wavetel Technology Limited" }, @@ -28814,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" }, @@ -28853,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." }, @@ -28884,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" }, @@ -28919,7 +29097,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0xB4, 0x79, 0x47 }, "Nutanix", "Nutanix" }, { { 0xB4, 0x79, 0xA7 }, "SamsungElect", "Samsung Electro-Mechanics(Thailand)" }, { { 0xB4, 0x79, 0xC8 }, "RuckusWirele", "Ruckus Wireless" }, - { { 0xB4, 0x7A, 0xF1 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0xB4, 0x7A, 0xF1 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0xB4, 0x7C, 0x29 }, "GuzidiTechno", "Shenzhen Guzidi Technology Co.,Ltd" }, { { 0xB4, 0x7C, 0x59 }, "JiangsuHengx", "Jiangsu Hengxin Technology Co.,Ltd." }, { { 0xB4, 0x7C, 0x9C }, "AmazonTechno", "Amazon Technologies Inc." }, @@ -29018,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" }, @@ -29159,13 +29338,14 @@ 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." }, @@ -29230,7 +29410,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0xB8, 0x6A, 0x97 }, "EdgecoreNetw", "Edgecore Networks Corporation" }, { { 0xB8, 0x6A, 0xF1 }, "SagemcomBroa", "Sagemcom Broadband SAS" }, { { 0xB8, 0x6B, 0x23 }, "Toshiba", "Toshiba" }, - { { 0xB8, 0x6C, 0xE0 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0xB8, 0x6C, 0xE0 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0xB8, 0x6C, 0xE8 }, "SamsungElect", "Samsung Electronics Co.,Ltd" }, { { 0xB8, 0x70, 0xF4 }, "CompalInform", "Compal Information (Kunshan) Co., Ltd." }, { { 0xB8, 0x74, 0x24 }, "ViessmannEle", "Viessmann Elektronik GmbH" }, @@ -29255,7 +29435,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0xB8, 0x80, 0x4F }, "TexasInstrum", "Texas Instruments" }, { { 0xB8, 0x81, 0x98 }, "Intel", "Intel Corporate" }, { { 0xB8, 0x81, 0xFA }, "Apple", "Apple, Inc." }, - { { 0xB8, 0x83, 0x03 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0xB8, 0x83, 0x03 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0xB8, 0x85, 0x7B }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" }, { { 0xB8, 0x85, 0x84 }, "Dell", "Dell Inc." }, { { 0xB8, 0x86, 0x87 }, "LiteonTechno", "Liteon Technology Corporation" }, @@ -29350,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" }, @@ -29379,7 +29560,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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." }, @@ -29405,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" }, @@ -29511,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." }, @@ -29532,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" }, @@ -29545,6 +29729,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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." }, @@ -29553,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" }, @@ -29656,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." }, @@ -29676,7 +29863,7 @@ 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" }, @@ -29743,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." }, @@ -29907,6 +30094,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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." }, @@ -29923,6 +30111,7 @@ 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." }, @@ -29935,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" }, @@ -29954,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" }, @@ -30030,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" }, @@ -30063,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." }, @@ -30151,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" }, @@ -30216,6 +30410,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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." }, @@ -30280,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" }, @@ -30290,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." }, @@ -30598,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" }, @@ -30611,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" }, @@ -30634,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" }, @@ -30704,7 +30905,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0xC8, 0xB2, 0x9B }, "Intel", "Intel Corporate" }, { { 0xC8, 0xB3, 0x73 }, "CiscoLinksys", "Cisco-Linksys, LLC" }, { { 0xC8, 0xB4, 0x22 }, "AskeyCompute", "Askey Computer Corp" }, - { { 0xC8, 0xB5, 0xAD }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0xC8, 0xB5, 0xAD }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0xC8, 0xB5, 0xB7 }, "Apple", "Apple, Inc." }, { { 0xC8, 0xB6, 0xD3 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" }, { { 0xC8, 0xB6, 0xFE }, "Fitbit", "Fitbit, Inc." }, @@ -30786,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." }, @@ -30832,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" }, @@ -31006,6 +31209,7 @@ 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" }, @@ -31018,7 +31222,7 @@ 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" }, @@ -31113,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" }, @@ -31209,7 +31413,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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." }, @@ -31271,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" }, @@ -31287,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." }, @@ -31322,13 +31527,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0xD0, 0x65, 0xCA }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" }, { { 0xD0, 0x66, 0x6D }, "BusLanTechno", "Shenzhen Bus-Lan Technology Co., Ltd." }, { { 0xD0, 0x66, 0x7B }, "SamsungElect", "Samsung Electronics Co.,Ltd" }, - { { 0xD0, 0x67, 0x26 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 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" }, @@ -31399,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" }, @@ -31451,7 +31658,7 @@ 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" }, @@ -31579,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" }, @@ -31826,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" }, @@ -31862,7 +32070,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0xD4, 0xF5, 0x13 }, "TexasInstrum", "Texas Instruments" }, { { 0xD4, 0xF5, 0x27 }, "Siemens", "Siemens Ag" }, { { 0xD4, 0xF5, 0x47 }, "Google", "Google, Inc." }, - { { 0xD4, 0xF5, 0xEF }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0xD4, 0xF5, 0xEF }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0xD4, 0xF6, 0x3F }, "Iea", "Iea S.R.L." }, { { 0xD4, 0xF7, 0x56 }, "zte", "zte corporation" }, { { 0xD4, 0xF7, 0x86 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" }, @@ -31963,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" }, @@ -32077,7 +32286,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0xD8, 0x91, 0x2A }, "ZyxelCommuni", "Zyxel Communications Corporation" }, { { 0xD8, 0x91, 0x36 }, "DoverFueling", "Dover Fueling Solutions" }, { { 0xD8, 0x93, 0x41 }, "GeneralElect", "General Electric Global Research" }, - { { 0xD8, 0x94, 0x03 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 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" }, @@ -32159,7 +32368,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -32172,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" }, @@ -32184,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." }, @@ -32381,9 +32592,10 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0xDC, 0x66, 0x3A }, "ApacerTechno", "Apacer Technology Inc." }, { { 0xDC, 0x66, 0x72 }, "SamsungElect", "Samsung Electronics Co.,Ltd" }, { { 0xDC, 0x67, 0x23 }, "baroxKommuni", "barox Kommunikation GmbH" }, - { { 0xDC, 0x68, 0x0C }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 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" }, @@ -32460,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." }, @@ -32483,7 +32696,7 @@ 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" }, @@ -32557,6 +32770,7 @@ 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" }, @@ -32599,7 +32813,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0xE0, 0x05, 0xC5 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." }, { { 0xE0, 0x06, 0x30 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" }, { { 0xE0, 0x06, 0xE6 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." }, - { { 0xE0, 0x07, 0x1B }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 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." }, @@ -32625,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" }, @@ -32719,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" }, @@ -33053,6 +33269,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -33121,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" }, @@ -33211,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" }, @@ -33264,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" }, @@ -33276,7 +33495,7 @@ 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" }, @@ -33288,7 +33507,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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." }, @@ -33298,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" }, @@ -33345,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" }, @@ -33445,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." }, @@ -33499,6 +33721,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -33557,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" }, @@ -33595,7 +33819,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0xE8, 0xF3, 0x75 }, "Nokia", "Nokia" }, { { 0xE8, 0xF4, 0x08 }, "Intel", "Intel Corporate" }, { { 0xE8, 0xF6, 0x54 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" }, - { { 0xE8, 0xF7, 0x24 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0xE8, 0xF7, 0x24 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0xE8, 0xF7, 0x2F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" }, { { 0xE8, 0xF7, 0x91 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" }, { { 0xE8, 0xF8, 0xD0 }, "NokiaShangha", "Nokia Shanghai Bell Co., Ltd." }, @@ -33629,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." }, @@ -33692,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." }, @@ -33721,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." }, @@ -33752,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" }, @@ -33761,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." }, @@ -33822,7 +34049,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0xEC, 0x9A, 0x74 }, "HewlettPacka", "Hewlett Packard" }, { { 0xEC, 0x9B, 0x2D }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." }, { { 0xEC, 0x9B, 0x5B }, "Nokia", "Nokia Corporation" }, - { { 0xEC, 0x9B, 0x8B }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0xEC, 0x9B, 0x8B }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0xEC, 0x9B, 0xF3 }, "SamsungElect", "Samsung Electro-Mechanics(Thailand)" }, { { 0xEC, 0x9C, 0x32 }, "SichuanAILin", "Sichuan AI-Link Technology Co., Ltd." }, { { 0xEC, 0x9E, 0xCD }, "ArtesynEmbed", "Artesyn Embedded Technologies" }, @@ -33918,7 +34145,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0xEC, 0xE9, 0x15 }, "STI", "STI Ltd" }, { { 0xEC, 0xE9, 0xF8 }, "GuangZhouTRI", "Guang Zhou TRI-SUN Electronics Technology Co., Ltd" }, { { 0xEC, 0xEA, 0x03 }, "DarfonLighti", "Darfon Lighting Corp" }, - { { 0xEC, 0xEB, 0xB8 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0xEC, 0xEB, 0xB8 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0xEC, 0xED, 0x73 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" }, { { 0xEC, 0xEE, 0xD8 }, "ZTLXNetworkT", "ZTLX Network Technology Co.,Ltd" }, { { 0xEC, 0xEF, 0x17 }, "SunplusTechn", "Sunplus Technology Co., Ltd." }, @@ -33942,7 +34169,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0xEC, 0xFA, 0xBC }, "Espressif", "Espressif Inc." }, { { 0xEC, 0xFA, 0xF4 }, "SenRaTech", "SenRa Tech Pvt. Ltd" }, { { 0xEC, 0xFC, 0x55 }, "AEberle", "A. Eberle GmbH & Co. KG" }, - { { 0xEC, 0xFC, 0xC6 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" }, + { { 0xEC, 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" }, @@ -33955,6 +34182,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -33970,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)" }, @@ -34051,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" }, @@ -34059,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." }, @@ -34138,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" }, @@ -34154,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" }, @@ -34219,6 +34449,7 @@ 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." }, @@ -34287,7 +34518,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 0xF4, 0x03, 0x21 }, "BeNeXt", "BeNeXt B.V." }, { { 0xF4, 0x03, 0x2A }, "AmazonTechno", "Amazon Technologies Inc." }, { { 0xF4, 0x03, 0x2F }, "Reduxio", "Reduxio Systems" }, - { { 0xF4, 0x03, 0x43 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" }, + { { 0xF4, 0x03, 0x43 }, "HewlettPacka", "Hewlett Packard Enterprise" }, { { 0xF4, 0x04, 0x4C }, "ValenceTech", "ValenceTech Limited" }, { { 0xF4, 0x05, 0x95 }, "SagemcomBroa", "Sagemcom Broadband SAS" }, { { 0xF4, 0x06, 0x16 }, "Apple", "Apple, Inc." }, @@ -34344,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" }, @@ -34488,11 +34719,13 @@ static const manuf_oui24_t global_manuf_oui24_table[] = { { { 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" }, @@ -34730,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." }, @@ -34780,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" }, @@ -35007,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" }, @@ -35213,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." }, @@ -35291,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" }, @@ -35708,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" }, @@ -36456,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." }, @@ -37351,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" }, @@ -37381,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." }, @@ -39621,9 +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." }, @@ -40219,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." }, @@ -40459,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" }, @@ -41518,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" }, @@ -42994,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." }, @@ -43648,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" }, @@ -45799,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" }, @@ -47274,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." }, @@ -47638,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" }, @@ -49381,12 +49698,15 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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." }, @@ -49476,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" }, @@ -49493,11 +49814,13 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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." }, @@ -49507,6 +49830,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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." }, @@ -49530,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" }, @@ -49583,9 +49910,11 @@ 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" }, @@ -49607,6 +49936,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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" }, @@ -49726,6 +50056,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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" }, @@ -49761,6 +50092,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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" }, @@ -49770,10 +50102,12 @@ 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" }, @@ -49845,6 +50179,8 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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." }, @@ -49868,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" }, @@ -49887,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" }, @@ -49918,6 +50256,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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" }, @@ -49929,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" }, @@ -49942,6 +50284,7 @@ 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." }, @@ -49971,6 +50314,7 @@ 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" }, @@ -49978,6 +50322,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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" }, @@ -50006,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" }, @@ -50028,6 +50374,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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." }, @@ -50040,10 +50387,12 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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" }, @@ -50092,6 +50441,7 @@ 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." }, @@ -50101,6 +50451,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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." }, @@ -50121,6 +50472,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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." }, @@ -50187,6 +50539,7 @@ 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" }, @@ -50256,11 +50609,13 @@ 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." }, @@ -50273,6 +50628,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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" }, @@ -50402,10 +50758,12 @@ 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" }, @@ -50444,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." }, @@ -50454,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" }, @@ -50525,6 +50886,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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" }, @@ -50562,6 +50924,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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" }, @@ -50574,6 +50937,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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" }, @@ -50582,6 +50946,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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" }, @@ -50630,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" }, @@ -50639,6 +51005,7 @@ 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" }, @@ -50649,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." }, @@ -50657,6 +51025,7 @@ 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" }, @@ -50673,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." }, @@ -50711,14 +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" }, @@ -50743,6 +51116,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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" }, @@ -50777,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." }, @@ -50806,6 +51183,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = { { { 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" }, @@ -50848,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." }, @@ -50864,6 +51243,7 @@ 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" }, @@ -50883,6 +51263,7 @@ 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" }, @@ -50936,7 +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" }, diff --git a/epan/packet.c b/epan/packet.c index 5a4c70a1..19b54bc3 100644 --- a/epan/packet.c +++ b/epan/packet.c @@ -3165,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 @@ -3429,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); } diff --git a/epan/packet.h b/epan/packet.h index ecfa85a0..80003c6f 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, diff --git a/epan/pci-ids.c b/epan/pci-ids.c index f506c147..6758407c 100644 --- a/epan/pci-ids.c +++ b/epan/pci-ids.c @@ -6,8 +6,8 @@ * * List of PCI ID's * - * Version: 2024.02.02 - * Date: 2024-02-02 14:41:33 + * 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/. @@ -609,6 +609,7 @@ static pci_id_t const 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)"}, @@ -917,7 +918,7 @@ static pci_id_t const 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)"}, @@ -3858,6 +3859,7 @@ static pci_id_t const 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)"}, @@ -4039,6 +4041,7 @@ static pci_id_t const 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)"}, @@ -4068,6 +4071,7 @@ static pci_id_t const pci_vid_1002[] = { {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)"}, @@ -5793,6 +5797,7 @@ static pci_id_t const 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[] */ static pci_id_t const pci_vid_1023[] = { @@ -9735,6 +9740,7 @@ static pci_id_t const 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)"}, @@ -9769,7 +9775,13 @@ static pci_id_t const 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)"}, @@ -9817,6 +9829,11 @@ static pci_id_t const 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)"}, @@ -12383,6 +12400,9 @@ static pci_id_t const 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)"}, @@ -12392,13 +12412,18 @@ static pci_id_t const 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)"}, @@ -12413,10 +12438,15 @@ static pci_id_t const 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)"}, @@ -12436,6 +12466,7 @@ static pci_id_t const 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)"}, @@ -12946,9 +12977,13 @@ static pci_id_t const 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)"}, @@ -12966,6 +13001,7 @@ static pci_id_t const 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)"}, @@ -12981,6 +13017,10 @@ static pci_id_t const 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)"}, @@ -12989,6 +13029,7 @@ static pci_id_t const 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)"}, @@ -13036,7 +13077,9 @@ static pci_id_t const 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)"}, @@ -13076,8 +13119,14 @@ static pci_id_t const 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)"}, @@ -13122,6 +13171,8 @@ static pci_id_t const 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)"}, @@ -13136,15 +13187,19 @@ static pci_id_t const 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)"}, @@ -13170,6 +13225,7 @@ static pci_id_t const 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)"}, @@ -13177,6 +13233,7 @@ static pci_id_t const pci_vid_10DE[] = { {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)"}, @@ -13336,6 +13393,7 @@ static pci_id_t const 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)"}, @@ -13352,6 +13410,7 @@ static pci_id_t const pci_vid_10DE[] = { {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)"}, @@ -13365,6 +13424,7 @@ static pci_id_t const 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)"}, @@ -13461,7 +13521,7 @@ static pci_id_t const 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)"}, @@ -13540,8 +13600,10 @@ static pci_id_t const 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)"}, @@ -13570,6 +13632,9 @@ static pci_id_t const 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)"}, @@ -13629,6 +13694,8 @@ static pci_id_t const 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)"}, @@ -13661,6 +13728,7 @@ static pci_id_t const pci_vid_10DE[] = { {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)"}, @@ -13669,6 +13737,7 @@ static pci_id_t const pci_vid_10DE[] = { {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)"}, @@ -13683,6 +13752,7 @@ static pci_id_t const 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)"}, @@ -13690,7 +13760,11 @@ static pci_id_t const 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)"}, @@ -13985,6 +14059,7 @@ static pci_id_t const 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)"}, @@ -13994,6 +14069,7 @@ static pci_id_t const 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)"}, @@ -14092,7 +14168,7 @@ static pci_id_t const 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)"}, @@ -14108,6 +14184,7 @@ static pci_id_t const pci_vid_10EC[] = { {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)"}, @@ -17770,6 +17847,38 @@ static pci_id_t const pci_vid_11E2[] = { 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)"}, @@ -18166,6 +18275,7 @@ static pci_id_t const 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[] */ @@ -18770,6 +18880,7 @@ static pci_id_t const 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)"}, @@ -19565,6 +19676,7 @@ static pci_id_t const 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, 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)"}, @@ -20210,8 +20322,25 @@ static pci_id_t const 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)"}, @@ -20249,7 +20378,38 @@ static pci_id_t const 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)"}, @@ -22487,14 +22647,14 @@ static pci_id_t const 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)"}, @@ -22513,14 +22673,14 @@ static pci_id_t const 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)"}, @@ -22539,14 +22699,14 @@ static pci_id_t const 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)"}, @@ -22564,14 +22724,14 @@ static pci_id_t const 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)"}, @@ -22589,14 +22749,14 @@ static pci_id_t const 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)"}, @@ -22954,6 +23114,7 @@ static pci_id_t const 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[] */ @@ -23969,6 +24130,7 @@ static pci_id_t const 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)"}, @@ -23996,6 +24158,7 @@ static pci_id_t const 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)"}, @@ -24208,7 +24371,7 @@ static pci_id_t const pci_vid_14E4[] = { {0x14E4, 0x1751, 0x14E4, 0x5425, "NetXtreme-E Quad-port 25G SFP28 Ethernet OCP 3.0 Adapter (BCM957504-N425G)(0x14E4-0x5425)"}, {0x14E4, 0x1751, 0x14E4, 0xD142, "NetXtreme-E P425D BCM57504 4x25G SFP28 PCIE(0x14E4-0xD142)"}, {0x14E4, 0x1752, 0xFFFF, 0xFFFF, "BCM57502 NetXtreme-E 10Gb/25Gb/40Gb/50Gb Ethernet(0x1752)"}, -{0x14E4, 0x1760, 0xFFFF, 0xFFFF, "BCM57608 NetXtreme-E 10Gb/25Gb/50Gb/100Gb/200Gb/400Gb Ethernet(0x1760)"}, +{0x14E4, 0x1760, 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)"}, @@ -25305,6 +25468,7 @@ static pci_id_t const 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[] */ @@ -25844,6 +26008,10 @@ static pci_id_t const 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)"}, @@ -25875,6 +26043,8 @@ static pci_id_t const pci_vid_15B3[] = { {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)"}, @@ -25972,6 +26142,8 @@ static pci_id_t const 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)"}, @@ -25981,11 +26153,14 @@ static pci_id_t const 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)"}, @@ -26050,6 +26225,7 @@ static pci_id_t const pci_vid_15B3[] = { {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)"}, @@ -26126,12 +26302,14 @@ static pci_id_t const 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[] */ @@ -28989,8 +29167,10 @@ static pci_id_t const pci_vid_196E[] = { 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[] */ static pci_id_t const pci_vid_1974[] = { @@ -29928,6 +30108,7 @@ static pci_id_t const 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)"}, @@ -29983,6 +30164,10 @@ static pci_id_t const pci_vid_1B55[] = { {0x1B55, 0xF1C4, 0xFFFF, 0xFFFF, "Dual ASI-RX/TX-CI card(0xF1C4)"}, }; /* pci_vid_1B55[] */ +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)"}, @@ -30228,6 +30413,21 @@ 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[] */ static pci_id_t const pci_vid_1BEF[] = { @@ -30405,6 +30605,7 @@ static pci_id_t const 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)"}, @@ -30534,6 +30735,14 @@ static pci_id_t const 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)"}, @@ -30672,6 +30881,10 @@ static pci_id_t const 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[] */ static pci_id_t const pci_vid_1CC5[] = { @@ -30963,12 +31176,16 @@ static pci_id_t const pci_vid_1D69[] = { 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, 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)"}, @@ -31103,7 +31320,7 @@ static pci_id_t const pci_vid_1D79[] = { {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[] */ @@ -31668,6 +31885,7 @@ static pci_id_t const pci_vid_1DF3[] = { 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[] */ static pci_id_t const pci_vid_1DF7[] = { @@ -31791,6 +32009,7 @@ static pci_id_t const 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)"}, @@ -31841,7 +32060,8 @@ static pci_id_t const 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[] */ static pci_id_t const pci_vid_1E38[] = { @@ -31861,7 +32081,7 @@ static pci_id_t const pci_vid_1E3A[] = { static pci_id_t const pci_vid_1E3B[] = { {0x1E3B, 0xFFFF, 0xFFFF, 0xFFFF, "DapuStor Corporation(0x1E3B)"}, {0x1E3B, 0x0600, 0xFFFF, 0xFFFF, "NVMe SSD Controller DP600(0x0600)"}, -{0x1E3B, 0x0600, 0x1E3B, 0x0006, "Enterprise NVMe SSD U.2 QDP 7.68TB (J5000)(0x1E3B-0x0006)"}, +{0x1E3B, 0x0600, 0x1E3B, 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)"}, @@ -31900,23 +32120,39 @@ static pci_id_t const pci_vid_1E3B[] = { {0x1E3B, 0x0600, 0x1E3B, 0x00BE, "Enterprise NVMe SSD U.2 QDP 30.72TB (R5100)(0x1E3B-0x00BE)"}, {0x1E3B, 0x0600, 0x1E3B, 0x00C1, "Enterprise NVMe SSD U.2 QDP 25.60TB (R5300D)(0x1E3B-0x00C1)"}, {0x1E3B, 0x0600, 0x1E3B, 0x00C4, "Enterprise NVMe SSD U.2 QDP 30.72TB (R5100D)(0x1E3B-0x00C4)"}, -{0x1E3B, 0x0600, 0x1E3B, 0x00C9, "Enterprise NVMe SSD U.2 15.36TB (J5000)(0x1E3B-0x00C9)"}, -{0x1E3B, 0x0600, 0x1E3B, 0x00CA, "Enterprise NVMe SSD U.2 3.84TB (J5102)(0x1E3B-0x00CA)"}, -{0x1E3B, 0x0600, 0x1E3B, 0x00CB, "Enterprise NVMe SSD U.2 7.68TB (J5102)(0x1E3B-0x00CB)"}, -{0x1E3B, 0x0600, 0x1E3B, 0x00CC, "Enterprise NVMe SSD U.2 3.84TB (J5101)(0x1E3B-0x00CC)"}, -{0x1E3B, 0x0600, 0x1E3B, 0x00CD, "Enterprise NVMe SSD U.2 7.68TB (J5101)(0x1E3B-0x00CD)"}, -{0x1E3B, 0x0600, 0x1E3B, 0x00CE, "Enterprise NVMe SSD U.2 3.84TB (J5101D)(0x1E3B-0x00CE)"}, -{0x1E3B, 0x0600, 0x1E3B, 0x00CF, "Enterprise NVMe SSD U.2 7.68TB (J5101D)(0x1E3B-0x00CF)"}, -{0x1E3B, 0x0600, 0x1E3B, 0x00E8, "Enterprise NVMe SSD U.2 3.20TB (J5301)(0x1E3B-0x00E8)"}, -{0x1E3B, 0x0600, 0x1E3B, 0x00E9, "Enterprise NVMe SSD U.2 6.40TB (J5301)(0x1E3B-0x00E9)"}, -{0x1E3B, 0x0600, 0x1E3B, 0x00EA, "Enterprise NVMe SSD U.2 3.20TB (J5301D)(0x1E3B-0x00EA)"}, -{0x1E3B, 0x0600, 0x1E3B, 0x00EB, "Enterprise NVMe SSD U.2 6.40TB (J5301D)(0x1E3B-0x00EB)"}, +{0x1E3B, 0x0600, 0x1E3B, 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)"}, @@ -31980,6 +32216,8 @@ static pci_id_t const 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[] */ static pci_id_t const pci_vid_1E4B[] = { @@ -32007,8 +32245,13 @@ static pci_id_t const pci_vid_1E50[] = { 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[] */ static pci_id_t const pci_vid_1E57[] = { @@ -32134,6 +32377,7 @@ static pci_id_t const pci_vid_1EA0[] = { {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[] */ static pci_id_t const pci_vid_1EA7[] = { @@ -32235,6 +32479,10 @@ static pci_id_t const 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[] */ static pci_id_t const pci_vid_1ED3[] = { @@ -32260,6 +32508,7 @@ static pci_id_t const pci_vid_1ED5[] = { {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)"}, @@ -32663,6 +32912,10 @@ static pci_id_t const pci_vid_1FE4[] = { {0x1FE4, 0x1600, 0x1FE4, 0x0078, "Enterprise NVMe SSD U.2 3.20TB(HP630)(0x1FE4-0x0078)"}, }; /* pci_vid_1FE4[] */ +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)"}, @@ -32698,8 +32951,19 @@ static pci_id_t const pci_vid_2004[] = { {0x2004, 0xFFFF, 0xFFFF, 0xFFFF, "Smart Link Ltd.(0x2004)"}, }; /* pci_vid_2004[] */ +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, "Shenzhen Inovance Technology Co., Ltd.(0x2046)"}, +{0x2046, 0xFFFF, 0xFFFF, 0xFFFF, "GXMICRO Technology (Shanghai) Co., Ltd.(0x2046)"}, }; /* pci_vid_2046[] */ static pci_id_t const pci_vid_2048[] = { @@ -32729,6 +32993,7 @@ static pci_id_t const pci_vid_22B8[] = { 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[] */ static pci_id_t const pci_vid_2304[] = { @@ -32770,11 +33035,13 @@ static pci_id_t const pci_vid_2646[] = { {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, 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, "OM8SEP4 Design-In PCIe 4 NVMe SSD (QLC) (DRAM-less)(0x5021)"}, -{0x2646, 0x5023, 0xFFFF, 0xFFFF, "NV2 NVMe SSD SM2269XT(0x5023)"}, +{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[] */ static pci_id_t const pci_vid_270B[] = { @@ -33334,13 +33601,15 @@ static pci_id_t const pci_vid_4C4D[] = { static pci_id_t const pci_vid_4C52[] = { {0x4C52, 0xFFFF, 0xFFFF, 0xFFFF, "LR-LINK(0x4C52)"}, {0x4C52, 0x1001, 0xFFFF, 0xFFFF, "Smart Network Adapter(0x1001)"}, -{0x4C52, 0x1001, 0x4C52, 0xA006, "LREG1006PT Single-port 1.2Gb Network Security Isolation Adapter(0x4C52-0xA006)"}, {0x4C52, 0x1001, 0x4C52, 0xA008, "LREG1008PT Single-port 1Gb Smart Ethernet Network Adapter(0x4C52-0xA008)"}, {0x4C52, 0x1001, 0x4C52, 0xA009, "LREG1009PT Single-port 2.5Gb Smart Ethernet Network Adapter(0x4C52-0xA009)"}, {0x4C52, 0x1002, 0xFFFF, 0xFFFF, "Smart Network Adapter(0x1002)"}, +{0x4C52, 0x1002, 0x4C52, 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, 0x1003, 0x4C52, 0xB010, "LREG1010PF Single-port 10Gb FPGA Network Security Isolation Adapter(0x4C52-0xB010)"}, +{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[] */ static pci_id_t const pci_vid_4C53[] = { @@ -33971,6 +34240,7 @@ static pci_id_t const pci_vid_8086[] = { {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)"}, @@ -33980,6 +34250,7 @@ static pci_id_t const pci_vid_8086[] = { {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)"}, @@ -34588,7 +34859,10 @@ static pci_id_t const 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)"}, @@ -35299,6 +35573,7 @@ static pci_id_t const 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)"}, @@ -35316,6 +35591,7 @@ static pci_id_t const 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)"}, @@ -35347,6 +35623,7 @@ static pci_id_t const 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)"}, @@ -35406,6 +35683,7 @@ static pci_id_t const 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)"}, @@ -35663,6 +35941,12 @@ static pci_id_t const pci_vid_8086[] = { {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)"}, @@ -35678,6 +35962,7 @@ static pci_id_t const 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)"}, @@ -35760,10 +36045,18 @@ static pci_id_t const pci_vid_8086[] = { {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)"}, @@ -35778,6 +36071,11 @@ static pci_id_t const 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)"}, @@ -35792,6 +36090,7 @@ static pci_id_t const 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)"}, @@ -35817,6 +36116,7 @@ static pci_id_t const 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)"}, @@ -35842,10 +36142,22 @@ static pci_id_t const 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)"}, @@ -35889,6 +36201,7 @@ static pci_id_t const 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)"}, @@ -35903,6 +36216,8 @@ static pci_id_t const 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)"}, @@ -35952,6 +36267,8 @@ static pci_id_t const pci_vid_8086[] = { {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)"}, @@ -36007,6 +36324,7 @@ static pci_id_t const pci_vid_8086[] = { {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)"}, @@ -36014,6 +36332,7 @@ static pci_id_t const 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)"}, @@ -36034,6 +36353,7 @@ static pci_id_t const 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)"}, @@ -36102,6 +36422,7 @@ static pci_id_t const 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)"}, @@ -36163,6 +36484,7 @@ static pci_id_t const 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)"}, @@ -36184,6 +36506,7 @@ static pci_id_t const 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)"}, @@ -36220,9 +36543,11 @@ static pci_id_t const 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)"}, @@ -36239,6 +36564,7 @@ static pci_id_t const 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)"}, @@ -36315,10 +36641,18 @@ static pci_id_t const 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)"}, @@ -36352,6 +36686,7 @@ static pci_id_t const 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)"}, @@ -36482,6 +36817,8 @@ static pci_id_t const 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)"}, @@ -36489,6 +36826,7 @@ static pci_id_t const 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)"}, @@ -36539,6 +36877,7 @@ static pci_id_t const 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)"}, @@ -36549,6 +36888,7 @@ static pci_id_t const 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)"}, @@ -36560,6 +36900,7 @@ static pci_id_t const 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)"}, @@ -36573,22 +36914,26 @@ static pci_id_t const 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)"}, @@ -36610,6 +36955,7 @@ static pci_id_t const 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)"}, @@ -37232,6 +37578,7 @@ static pci_id_t const 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)"}, @@ -37247,6 +37594,7 @@ static pci_id_t const pci_vid_8086[] = { {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)"}, @@ -40741,6 +41089,7 @@ static pci_id_t const 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)"}, @@ -40790,6 +41139,7 @@ static pci_id_t const 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)"}, @@ -40799,6 +41149,8 @@ static pci_id_t const 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)"}, @@ -41029,8 +41381,11 @@ static pci_id_t const pci_vid_8086[] = { {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)"}, @@ -41044,7 +41399,8 @@ static pci_id_t const 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)"}, @@ -41061,11 +41417,15 @@ static pci_id_t const 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)"}, @@ -41445,11 +41805,11 @@ static pci_id_t const pci_vid_8086[] = { {0x8086, 0x7AB4, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #13(0x7AB4)"}, {0x8086, 0x7AB8, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #1(0x7AB8)"}, {0x8086, 0x7AB9, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #2(0x7AB9)"}, -{0x8086, 0x7ABA, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #?-?-?-?-(0x7ABA)"}, +{0x8086, 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 #?-?-?-?-(0x7AC4)"}, +{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)"}, @@ -41468,11 +41828,12 @@ static pci_id_t const pci_vid_8086[] = { {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 [Intel Graphics](0x7D67)"}, +{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)"}, @@ -41484,6 +41845,8 @@ static pci_id_t const 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)"}, @@ -42224,6 +42587,8 @@ static pci_id_t const 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)"}, @@ -42236,11 +42601,14 @@ static pci_id_t const 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)"}, @@ -42251,10 +42619,14 @@ static pci_id_t const 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)"}, @@ -42265,15 +42637,20 @@ static pci_id_t const 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)"}, @@ -42282,6 +42659,8 @@ static pci_id_t const 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)"}, @@ -42327,6 +42706,8 @@ static pci_id_t const 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)"}, @@ -42468,6 +42849,7 @@ static pci_id_t const 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)"}, @@ -42538,10 +42920,12 @@ static pci_id_t const 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)"}, @@ -42607,6 +42991,7 @@ static pci_id_t const pci_vid_8086[] = { {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)"}, @@ -42700,9 +43085,10 @@ static pci_id_t const pci_vid_8088[] = { {0x8088, 0x0108, 0x8088, 0x0420, "Qual-Port Ethernet Network Adaptor SF400HT-S(0x8088-0x0420)"}, {0x8088, 0x0109, 0xFFFF, 0xFFFF, "WX1860-LC Gigabit Ethernet Controller(0x0109)"}, {0x8088, 0x010A, 0xFFFF, 0xFFFF, "WX1860A1 Gigabit Ethernet Controller(0x010A)"}, -{0x8088, 0x010A, 0x4C52, 0x2023, "LRES2034PT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2023)"}, {0x8088, 0x010A, 0x4C52, 0x2026, "LRES2026PF Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2026)"}, +{0x8088, 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)"}, @@ -42715,7 +43101,7 @@ static pci_id_t const 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)"}, @@ -42725,7 +43111,7 @@ static pci_id_t const pci_vid_8088[] = { {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)"}, @@ -42773,6 +43159,7 @@ static pci_id_t const pci_vid_8820[] = { 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)"}, @@ -42790,10 +43177,13 @@ static pci_id_t const pci_vid_8848[] = { {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[] */ static pci_id_t const pci_vid_8866[] = { @@ -42802,6 +43192,7 @@ static pci_id_t const pci_vid_8866[] = { 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[] */ static pci_id_t const pci_vid_8912[] = { @@ -43419,6 +43810,9 @@ static pci_id_t const 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[] */ @@ -43637,6 +44031,7 @@ static pci_id_t const pci_vid_C0A9[] = { {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[] */ static pci_id_t const pci_vid_C0DE[] = { @@ -44041,6 +44436,14 @@ static pci_id_t const pci_vid_F111[] = { {0xF111, 0xFFFF, 0xFFFF, 0xFFFF, "Framework Computer Inc.(0xF111)"}, }; /* pci_vid_F111[] */ +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)"}, @@ -44193,9 +44596,9 @@ static pci_vid_index_t const pci_vid_index[] = { {0x0E55, 1, pci_vid_0E55 }, {0x0EAC, 2, pci_vid_0EAC }, {0x0F62, 1, pci_vid_0F62 }, -{0x1000, 797, pci_vid_1000 }, +{0x1000, 798, pci_vid_1000 }, {0x1001, 10, pci_vid_1001 }, -{0x1002, 3246, pci_vid_1002 }, +{0x1002, 3249, pci_vid_1002 }, {0x1003, 2, pci_vid_1003 }, {0x1004, 34, pci_vid_1004 }, {0x1005, 8, pci_vid_1005 }, @@ -44225,7 +44628,7 @@ static pci_vid_index_t const pci_vid_index[] = { {0x101F, 1, pci_vid_101F }, {0x1020, 1, pci_vid_1020 }, {0x1021, 1, pci_vid_1021 }, -{0x1022, 688, pci_vid_1022 }, +{0x1022, 689, pci_vid_1022 }, {0x1023, 56, pci_vid_1023 }, {0x1024, 4, pci_vid_1024 }, {0x1025, 59, pci_vid_1025 }, @@ -44367,7 +44770,7 @@ static pci_vid_index_t const 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 }, @@ -44407,7 +44810,7 @@ static pci_vid_index_t const pci_vid_index[] = { {0x10DB, 1, pci_vid_10DB }, {0x10DC, 6, pci_vid_10DC }, {0x10DD, 3, pci_vid_10DD }, -{0x10DE, 3259, pci_vid_10DE }, +{0x10DE, 3316, pci_vid_10DE }, {0x10DF, 127, pci_vid_10DF }, {0x10E0, 7, pci_vid_10E0 }, {0x10E1, 5, pci_vid_10E1 }, @@ -44421,7 +44824,7 @@ static pci_vid_index_t const pci_vid_index[] = { {0x10E9, 1, pci_vid_10E9 }, {0x10EA, 10, pci_vid_10EA }, {0x10EB, 3, pci_vid_10EB }, -{0x10EC, 243, pci_vid_10EC }, +{0x10EC, 246, pci_vid_10EC }, {0x10ED, 2, pci_vid_10ED }, {0x10EE, 47, pci_vid_10EE }, {0x10EF, 2, pci_vid_10EF }, @@ -44666,7 +45069,7 @@ static pci_vid_index_t const 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 }, @@ -44716,7 +45119,7 @@ static pci_vid_index_t const 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 }, @@ -44801,7 +45204,7 @@ static pci_vid_index_t const 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 }, @@ -44906,7 +45309,7 @@ static pci_vid_index_t const pci_vid_index[] = { {0x12D5, 3, pci_vid_12D5 }, {0x12D6, 1, pci_vid_12D6 }, {0x12D7, 1, pci_vid_12D7 }, -{0x12D8, 27, pci_vid_12D8 }, +{0x12D8, 28, pci_vid_12D8 }, {0x12D9, 7, pci_vid_12D9 }, {0x12DA, 1, pci_vid_12DA }, {0x12DB, 1, pci_vid_12DB }, @@ -45005,7 +45408,7 @@ static pci_vid_index_t const pci_vid_index[] = { {0x1341, 1, pci_vid_1341 }, {0x1342, 1, pci_vid_1342 }, {0x1343, 1, pci_vid_1343 }, -{0x1344, 89, pci_vid_1344 }, +{0x1344, 137, pci_vid_1344 }, {0x1345, 1, pci_vid_1345 }, {0x1347, 1, pci_vid_1347 }, {0x1349, 1, pci_vid_1349 }, @@ -45260,7 +45663,7 @@ static pci_vid_index_t const 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 }, @@ -45408,7 +45811,7 @@ static pci_vid_index_t const pci_vid_index[] = { {0x14E1, 1, pci_vid_14E1 }, {0x14E2, 1, pci_vid_14E2 }, {0x14E3, 1, pci_vid_14E3 }, -{0x14E4, 858, pci_vid_14E4 }, +{0x14E4, 860, pci_vid_14E4 }, {0x14E5, 1, pci_vid_14E5 }, {0x14E6, 1, pci_vid_14E6 }, {0x14E7, 1, pci_vid_14E7 }, @@ -45502,7 +45905,7 @@ static pci_vid_index_t const 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 }, @@ -45612,11 +46015,11 @@ static pci_vid_index_t const pci_vid_index[] = { {0x15B0, 1, pci_vid_15B0 }, {0x15B1, 1, pci_vid_15B1 }, {0x15B2, 1, pci_vid_15B2 }, -{0x15B3, 255, pci_vid_15B3 }, +{0x15B3, 267, pci_vid_15B3 }, {0x15B4, 1, pci_vid_15B4 }, {0x15B5, 1, pci_vid_15B5 }, {0x15B6, 17, pci_vid_15B6 }, -{0x15B7, 31, pci_vid_15B7 }, +{0x15B7, 33, pci_vid_15B7 }, {0x15B8, 11, pci_vid_15B8 }, {0x15B9, 1, pci_vid_15B9 }, {0x15BA, 1, pci_vid_15BA }, @@ -45906,7 +46309,7 @@ static pci_vid_index_t const pci_vid_index[] = { {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 }, @@ -46016,9 +46419,10 @@ static pci_vid_index_t const 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 }, @@ -46040,7 +46444,7 @@ static pci_vid_index_t const 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 }, @@ -46058,8 +46462,8 @@ static pci_vid_index_t const pci_vid_index[] = { {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 }, @@ -46070,7 +46474,7 @@ static pci_vid_index_t const pci_vid_index[] = { {0x1CB5, 2, pci_vid_1CB5 }, {0x1CB8, 1, pci_vid_1CB8 }, {0x1CC1, 23, pci_vid_1CC1 }, -{0x1CC4, 48, pci_vid_1CC4 }, +{0x1CC4, 52, pci_vid_1CC4 }, {0x1CC5, 3, pci_vid_1CC5 }, {0x1CC7, 3, pci_vid_1CC7 }, {0x1CCF, 2, pci_vid_1CCF }, @@ -46102,7 +46506,7 @@ static pci_vid_index_t const pci_vid_index[] = { {0x1D62, 1, pci_vid_1D62 }, {0x1D65, 2, pci_vid_1D65 }, {0x1D69, 3, pci_vid_1D69 }, -{0x1D6A, 21, pci_vid_1D6A }, +{0x1D6A, 25, pci_vid_1D6A }, {0x1D6C, 42, pci_vid_1D6C }, {0x1D72, 1, pci_vid_1D72 }, {0x1D78, 62, pci_vid_1D78 }, @@ -46144,29 +46548,29 @@ static pci_vid_index_t const pci_vid_index[] = { {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, 101, 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, 2, pci_vid_1E3A }, -{0x1E3B, 94, pci_vid_1E3B }, +{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 }, +{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 }, @@ -46187,7 +46591,7 @@ static pci_vid_index_t const pci_vid_index[] = { {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 }, @@ -46201,9 +46605,9 @@ static pci_vid_index_t const pci_vid_index[] = { {0x1EC9, 1, pci_vid_1EC9 }, {0x1ECA, 2, pci_vid_1ECA }, {0x1ED0, 1, pci_vid_1ED0 }, -{0x1ED2, 2, pci_vid_1ED2 }, +{0x1ED2, 6, pci_vid_1ED2 }, {0x1ED3, 1, pci_vid_1ED3 }, -{0x1ED5, 26, pci_vid_1ED5 }, +{0x1ED5, 27, pci_vid_1ED5 }, {0x1ED8, 3, pci_vid_1ED8 }, {0x1ED9, 1, pci_vid_1ED9 }, {0x1EE1, 6, pci_vid_1EE1 }, @@ -46243,6 +46647,7 @@ static pci_vid_index_t const 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 }, @@ -46250,6 +46655,8 @@ static pci_vid_index_t const pci_vid_index[] = { {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 }, @@ -46257,12 +46664,12 @@ static pci_vid_index_t const pci_vid_index[] = { {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 }, {0x256C, 2, pci_vid_256C }, -{0x2646, 25, pci_vid_2646 }, +{0x2646, 27, pci_vid_2646 }, {0x270B, 1, pci_vid_270B }, {0x270F, 1, pci_vid_270F }, {0x2711, 1, pci_vid_2711 }, @@ -46320,7 +46727,7 @@ static pci_vid_index_t const pci_vid_index[] = { {0x4B43, 1, pci_vid_4B43 }, {0x4C48, 1, pci_vid_4C48 }, {0x4C4D, 3, pci_vid_4C4D }, -{0x4C52, 9, pci_vid_4C52 }, +{0x4C52, 11, pci_vid_4C52 }, {0x4C53, 6, pci_vid_4C53 }, {0x4CA1, 1, pci_vid_4CA1 }, {0x4D51, 2, pci_vid_4D51 }, @@ -46390,8 +46797,8 @@ static pci_vid_index_t const pci_vid_index[] = { {0x7FED, 1, pci_vid_7FED }, {0x8008, 4, pci_vid_8008 }, {0x807D, 1, pci_vid_807D }, -{0x8086, 8763, pci_vid_8086 }, -{0x8088, 76, 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 }, @@ -46400,9 +46807,9 @@ static pci_vid_index_t const pci_vid_index[] = { {0x8686, 3, pci_vid_8686 }, {0x8800, 2, pci_vid_8800 }, {0x8820, 2, pci_vid_8820 }, -{0x8848, 23, 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 }, @@ -46419,7 +46826,7 @@ static pci_vid_index_t const 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 }, @@ -46460,7 +46867,7 @@ static pci_vid_index_t const pci_vid_index[] = { {0xBD11, 1, pci_vid_BD11 }, {0xBDBD, 37, pci_vid_BDBD }, {0xC001, 1, pci_vid_C001 }, -{0xC0A9, 8, pci_vid_C0A9 }, +{0xC0A9, 9, pci_vid_C0A9 }, {0xC0DE, 1, pci_vid_C0DE }, {0xC0FE, 1, pci_vid_C0FE }, {0xCA01, 2, pci_vid_CA01 }, @@ -46509,6 +46916,7 @@ static pci_vid_index_t const 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 }, @@ -46523,7 +46931,7 @@ static pci_vid_index_t const pci_vid_index[] = { {0xFFFD, 2, pci_vid_FFFD }, {0xFFFE, 2, pci_vid_FFFE }, {0xFFFF, 1, pci_vid_FFFF }, -}; /* We have 2376 VIDs */ +}; /* We have 2381 VIDs */ static pci_vid_index_t const *get_vid_index(uint16_t vid) { diff --git a/epan/services-data.c b/epan/services-data.c index a5f42924..ac0770e0 100644 --- a/epan/services-data.c +++ b/epan/services-data.c @@ -5804,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" }, diff --git a/epan/wslua/init_wslua.c b/epan/wslua/init_wslua.c index 9217a4ab..3e701ffc 100644 --- a/epan/wslua/init_wslua.c +++ b/epan/wslua/init_wslua.c @@ -969,7 +969,7 @@ add_table_symbol(const char *table, const char *name, int value) lua_getglobal(L, table); /* Set symbol in table. */ lua_pushstring(L, name); - lua_pushinteger(L, value); + lua_pushnumber(L, value); lua_settable(L, -3); /* Pop table from stack. */ lua_pop(L, 1); @@ -979,7 +979,7 @@ static void add_global_symbol(const char *name, int value) { /* Set symbol in global environment. */ - lua_pushinteger(L, value); + lua_pushnumber(L, value); lua_setglobal(L, name); } @@ -988,7 +988,7 @@ add_pi_severity_symbol(const char *name, int value) { lua_getglobal(L, WSLUA_EXPERT_TABLE); lua_getfield(L, -1, WSLUA_EXPERT_SEVERITY_TABLE); - lua_pushinteger(L, value); + lua_pushnumber(L, value); lua_setfield(L, -2, name); lua_pop(L, 2); } @@ -998,7 +998,7 @@ add_pi_group_symbol(const char *name, int value) { lua_getglobal(L, WSLUA_EXPERT_TABLE); lua_getfield(L, -1, WSLUA_EXPERT_GROUP_TABLE); - lua_pushinteger(L, value); + lua_pushnumber(L, value); lua_setfield(L, -2, name); lua_pop(L, 2); } @@ -1007,7 +1007,7 @@ static void add_menu_group_symbol(const char *name, int value) { /* Set symbol in global environment. */ - lua_pushinteger(L, value); + lua_pushnumber(L, value); char *str = g_strdup(name); char *s = strstr(str, "_GROUP_"); if (s == NULL) @@ -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/lrexlib/pcre2/lpcre2.c b/epan/wslua/lrexlib/pcre2/lpcre2.c index ee1926f8..f24cbec8 100644 --- a/epan/wslua/lrexlib/pcre2/lpcre2.c +++ b/epan/wslua/lrexlib/pcre2/lpcre2.c @@ -432,7 +432,7 @@ static int Lpcre2_jit_compile (lua_State *L) { #define SET_INFO_FIELD(L,ud,what,name,valtype) { \ valtype val; \ if (0 == pcre2_pattern_info (ud->pr, what, &val)) { \ - lua_pushinteger (L, val); \ + lua_pushnumber (L, val); \ lua_setfield (L, -2, name); \ } \ } diff --git a/epan/wslua/make-taps.py b/epan/wslua/make-taps.py index ed677ff5..14c5a397 100755 --- a/epan/wslua/make-taps.py +++ b/epan/wslua/make-taps.py @@ -34,18 +34,18 @@ def get_tap_info(tap_name, header_file, struct_name, enum_types): types = { 'gchar[]': 'lua_pushstring(L,(const char*)v->STR);', 'gchar*': 'lua_pushstring(L,(const char*)v->STR);', - 'guint': 'lua_pushinteger(L,(lua_Integer)v->STR);', - 'guint8': 'lua_pushinteger(L,(lua_Integer)v->STR);', - 'guint16': 'lua_pushinteger(L,(lua_Integer)v->STR);', - 'guint32': 'lua_pushinteger(L,(lua_Integer)v->STR);', - 'gint': 'lua_pushinteger(L,(lua_Integer)v->STR);', - 'gint8': 'lua_pushinteger(L,(lua_Integer)v->STR);', - 'gint16': 'lua_pushinteger(L,(lua_Integer)v->STR);', - 'gint32': 'lua_pushinteger(L,(lua_Integer)v->STR);', + 'guint': 'lua_pushnumber(L,(lua_Number)v->STR);', + 'guint8': 'lua_pushnumber(L,(lua_Number)v->STR);', + 'guint16': 'lua_pushnumber(L,(lua_Number)v->STR);', + 'guint32': 'lua_pushnumber(L,(lua_Number)v->STR);', + 'gint': 'lua_pushnumber(L,(lua_Number)v->STR);', + 'gint8': 'lua_pushnumber(L,(lua_Number)v->STR);', + 'gint16': 'lua_pushnumber(L,(lua_Number)v->STR);', + 'gint32': 'lua_pushnumber(L,(lua_Number)v->STR);', 'gboolean': 'lua_pushboolean(L,(int)v->STR);', 'address': '{ Address a = (Address)g_malloc(sizeof(address)); copy_address(a, &(v->STR)); pushAddress(L,a); }', 'address*': '{ Address a = (Address)g_malloc(sizeof(address)); copy_address(a, v->STR); pushAddress(L,a); }', - 'int': 'lua_pushinteger(L,(lua_Integer)v->STR);', + 'int': 'lua_pushnumber(L,(lua_Number)v->STR);', 'nstime_t': 'lua_pushnumber(L,(lua_Number)nstime_to_sec(&(v->STR)));', 'nstime_t*': 'lua_pushnumber(L,(lua_Number)nstime_to_sec(v->STR));', } @@ -79,7 +79,7 @@ def get_tap_info(tap_name, header_file, struct_name, enum_types): for enum in enum_types: m = re.search(fr'typedef\s+enum[^{{]*{{([^}}]*)}}[\s\n]*{enum}[\s\n]*;', buf, flags=re.DOTALL) if m: - types[enum] = f'lua_pushinteger(L,(lua_Integer)v->STR); /* {enum} */' + types[enum] = f'lua_pushnumber(L,(lua_Number)v->STR); /* {enum} */' econsts = m.group(1).splitlines() econsts = [re.sub(r'\s+', '', item) for item in econsts] econsts = [re.sub(',', '', item) for item in econsts] @@ -183,9 +183,9 @@ def main(): c_body += f'\n\t/*\n\t * {enum}\n\t */\n\tlua_newtable(L);\n' for econst in enums[enum]: c_body += f'''\ - lua_pushinteger(L,(lua_Integer){econst}); + lua_pushnumber(L,(lua_Number){econst}); lua_setglobal(L,"{econst}"); - lua_pushinteger(L,(lua_Integer){econst}); + lua_pushnumber(L,(lua_Number){econst}); lua_pushstring(L,"{econst}"); lua_settable(L,-3); ''' diff --git a/epan/wslua/wslua.h b/epan/wslua/wslua.h index 0f6a146e..c96f4f2c 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_byte_array.c b/epan/wslua/wslua_byte_array.c index b0449912..6e6ae304 100644 --- a/epan/wslua/wslua_byte_array.c +++ b/epan/wslua/wslua_byte_array.c @@ -214,7 +214,7 @@ WSLUA_METHOD ByteArray_get_index(lua_State* L) { luaL_argerror(L,2,"index out of range"); return 0; } - lua_pushinteger(L,ba->data[idx]); + lua_pushnumber(L,ba->data[idx]); WSLUA_RETURN(1); /* The value [0-255] of the byte. */ } @@ -255,7 +255,7 @@ WSLUA_METHOD ByteArray_le_int(lua_State* L) { value |= (guint8)ba->data[offset + i]; } - lua_pushinteger(L, value); + lua_pushnumber(L, value); WSLUA_RETURN(1); /* The value of the little endian encoded signed integer beginning at given offset with given length. */ } @@ -337,7 +337,7 @@ WSLUA_METHOD ByteArray_le_uint(lua_State* L) { value |= (guint8)ba->data[offset + i]; } - lua_pushinteger(L, value); + lua_pushnumber(L, value); WSLUA_RETURN(1); /* The value of the little endian encoded unsigned integer beginning at given offset with given length. */ } @@ -419,7 +419,7 @@ WSLUA_METHOD ByteArray_int(lua_State* L) { value |= (guint8)ba->data[offset + i]; } - lua_pushinteger(L, value); + lua_pushnumber(L, value); WSLUA_RETURN(1); /* The value of the big endian encoded 32 bit signed integer beginning at given offset with given length. */ } @@ -501,7 +501,7 @@ WSLUA_METHOD ByteArray_uint(lua_State* L) { value |= (guint8)ba->data[offset + i]; } - lua_pushinteger(L, value); + lua_pushnumber(L, value); WSLUA_RETURN(1); /* The value of the big endian encoded 32 bit unsigned integer beginning at given offset with given length. */ } @@ -551,7 +551,7 @@ WSLUA_METHOD ByteArray_len(lua_State* L) { /* Obtain the length of a <<lua_class_ByteArray,`ByteArray`>>. */ ByteArray ba = checkByteArray(L,1); - lua_pushinteger(L,(lua_Integer)ba->len); + lua_pushnumber(L,(lua_Number)ba->len); WSLUA_RETURN(1); /* The length of the <<lua_class_ByteArray,`ByteArray`>>. */ } diff --git a/epan/wslua/wslua_dissector.c b/epan/wslua/wslua_dissector.c index 6181ffbf..4fb7a9a1 100644 --- a/epan/wslua/wslua_dissector.c +++ b/epan/wslua/wslua_dissector.c @@ -107,7 +107,7 @@ WSLUA_METHOD Dissector_call(lua_State* L) { are normal conditions and possibly don't need the Lua traceback. */ if (error) { WSLUA_ERROR(Dissector_call,error); } - lua_pushinteger(L,(lua_Integer)len); + lua_pushnumber(L,(lua_Number)len); WSLUA_RETURN(1); /* Number of bytes dissected. Note that some dissectors always return number of bytes in incoming buffer, so be aware. */ } @@ -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) { @@ -618,7 +646,7 @@ WSLUA_METHOD DissectorTable_try (lua_State *L) { if (error) { WSLUA_ERROR(DissectorTable_try,error); } - lua_pushinteger(L,(lua_Integer)len); + lua_pushnumber(L,(lua_Number)len); WSLUA_RETURN(1); /* Number of bytes dissected. Note that some dissectors always return number of bytes in incoming buffer, so be aware. */ } @@ -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_field.c b/epan/wslua/wslua_field.c index d7d3e9d7..17db1974 100644 --- a/epan/wslua/wslua_field.c +++ b/epan/wslua/wslua_field.c @@ -50,7 +50,7 @@ WSLUA_METAMETHOD FieldInfo__len(lua_State* L) { */ FieldInfo fi = checkFieldInfo(L,1); - lua_pushinteger(L,fi->ws_fi->length); + lua_pushnumber(L,fi->ws_fi->length); return 1; } @@ -61,7 +61,7 @@ WSLUA_METAMETHOD FieldInfo__unm(lua_State* L) { */ FieldInfo fi = checkFieldInfo(L,1); - lua_pushinteger(L,fi->ws_fi->start); + lua_pushnumber(L,fi->ws_fi->start); return 1; } @@ -91,13 +91,13 @@ WSLUA_METAMETHOD FieldInfo__call(lua_State* L) { case FT_UINT24: case FT_UINT32: case FT_FRAMENUM: - lua_pushinteger(L,(lua_Integer)(fvalue_get_uinteger(fi->ws_fi->value))); + lua_pushnumber(L,(lua_Number)(fvalue_get_uinteger(fi->ws_fi->value))); return 1; case FT_INT8: case FT_INT16: case FT_INT24: case FT_INT32: - lua_pushinteger(L,(lua_Integer)(fvalue_get_sinteger(fi->ws_fi->value))); + lua_pushnumber(L,(lua_Number)(fvalue_get_sinteger(fi->ws_fi->value))); return 1; case FT_FLOAT: case FT_DOUBLE: @@ -268,7 +268,7 @@ static int FieldInfo_get_type(lua_State* L) { FieldInfo fi = checkFieldInfo(L,1); if (fi->ws_fi->hfinfo) { - lua_pushinteger(L, fi->ws_fi->hfinfo->type); + lua_pushnumber(L, fi->ws_fi->hfinfo->type); } else { lua_pushnil(L); @@ -710,7 +710,7 @@ static int Field_get_type(lua_State* L) { Field f = checkField(L,1); header_field_info* hfinfo = NULL; - GET_HFINFO_MEMBER(lua_pushinteger, type); + GET_HFINFO_MEMBER(lua_pushnumber, type); return 1; } diff --git a/epan/wslua/wslua_file.c b/epan/wslua/wslua_file.c index ff74760f..d9f1ff99 100644 --- a/epan/wslua/wslua_file.c +++ b/epan/wslua/wslua_file.c @@ -152,7 +152,7 @@ static int File_read_number (lua_State *L, FILE_T ft) { buff[buff_end] = '\0'; if (buff_end > 0 && num_digits > 0 && sscanf(buff, "%lf", &d) == 1) { - lua_pushinteger(L, d); + lua_pushnumber(L, d); return 1; } else { @@ -355,7 +355,7 @@ WSLUA_METHOD File_seek(lua_State* L) { return 2; } - lua_pushinteger(L, (lua_Integer)(file_tell(f->file))); + lua_pushnumber(L, (lua_Number)(file_tell(f->file))); } else { offset = wtap_dump_file_seek(f->wdh, offset, mode[op], &err); @@ -374,7 +374,7 @@ WSLUA_METHOD File_seek(lua_State* L) { return 2; } - lua_pushinteger(L, (lua_Integer)(offset)); + lua_pushnumber(L, (lua_Number)(offset)); } WSLUA_RETURN(1); /* The current file cursor position as a number. */ diff --git a/epan/wslua/wslua_file_handler.c b/epan/wslua/wslua_file_handler.c index 47f72d45..f0c9ad83 100644 --- a/epan/wslua/wslua_file_handler.c +++ b/epan/wslua/wslua_file_handler.c @@ -326,7 +326,7 @@ wslua_filehandler_seek_read_packet(wtap *wth, gint64 seek_off, wtap_rec *rec, Bu fp = push_File(L, wth->random_fh); fc = push_CaptureInfo(L, wth, FALSE); fi = push_FrameInfo(L, rec, buf); - lua_pushinteger(L, (lua_Integer)seek_off); + lua_pushnumber(L, (lua_Number)seek_off); switch ( lua_pcall(L,4,1,1) ) { case 0: @@ -474,7 +474,7 @@ wslua_filehandler_can_write_encap(int encap, void* data) INIT_FILEHANDLER_ROUTINE(can_write_encap,WTAP_ERR_UNWRITABLE_ENCAP,NULL,NULL); - lua_pushinteger(L, encap); + lua_pushnumber(L, encap); switch ( lua_pcall(L,1,1,1) ) { case 0: @@ -842,7 +842,7 @@ WSLUA_FUNCTION wslua_register_filehandler(lua_State* L) { fh->registered = TRUE; registered_file_handlers = g_slist_prepend(registered_file_handlers, fh); - lua_pushinteger(L, fh->file_type); + lua_pushnumber(L, fh->file_type); WSLUA_RETURN(1); /* the new type number for this file reader/write */ } @@ -1207,7 +1207,7 @@ WSLUA_ATTRIBUTE_GET(FileHandler,supported_comment_types,{ \ break;\ } \ } \ - lua_pushinteger(L, (lua_Integer)supported_comment_types); \ + lua_pushnumber(L, (lua_Number)supported_comment_types); \ }); WSLUA_ATTRIBUTE_SET(FileHandler,supported_comment_types, { \ guint supported_comment_types; \ diff --git a/epan/wslua/wslua_frame_info.c b/epan/wslua/wslua_frame_info.c index 72701d6f..401abd73 100644 --- a/epan/wslua/wslua_frame_info.c +++ b/epan/wslua/wslua_frame_info.c @@ -89,7 +89,7 @@ WSLUA_METHOD FrameInfo_read_data(lua_State* L) { g_free(err_info); /* is this right? */ } else lua_pushnil(L); - lua_pushinteger(L, err); + lua_pushnumber(L, err); return 3; } @@ -120,7 +120,7 @@ static int FrameInfo_get_comment (lua_State* L) { lua_createtable(L, n_comments, 0); for (i = 0; i < n_comments; i++) { comment = NULL; - lua_pushinteger(L, i+1); + lua_pushnumber(L, i+1); if (WTAP_OPTTYPE_SUCCESS == wtap_block_get_nth_string_option_value(block, OPT_COMMENT, i, &comment)) { lua_pushstring(L, comment); @@ -371,7 +371,7 @@ WSLUA_METHOD FrameInfoConst_write_data(lua_State* L) { if (!wtap_dump_file_write(fh->wdh, fi->pd, (size_t)(len), &err)) { lua_pushboolean(L, FALSE); lua_pushfstring(L, "FrameInfoConst write_data() error: %s", g_strerror(err)); - lua_pushinteger(L, err); + lua_pushnumber(L, err); return 3; } @@ -403,7 +403,7 @@ static int FrameInfoConst_get_comment (lua_State* L) { lua_createtable(L, n_comments, 0); for (i = 0; i < n_comments; i++) { comment = NULL; - lua_pushinteger(L, i+1); + lua_pushnumber(L, i+1); if (WTAP_OPTTYPE_SUCCESS == wtap_block_get_nth_string_option_value(block, OPT_COMMENT, i, &comment)) { lua_pushstring(L, comment); diff --git a/epan/wslua/wslua_int64.c b/epan/wslua/wslua_int64.c index e540d6d2..17c00f06 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_pinfo.c b/epan/wslua/wslua_pinfo.c index 3e60715e..a735d601 100644 --- a/epan/wslua/wslua_pinfo.c +++ b/epan/wslua/wslua_pinfo.c @@ -308,7 +308,7 @@ static int Pinfo_get_match(lua_State *L) { if (pinfo->ws_pinfo->match_string) { lua_pushstring(L,pinfo->ws_pinfo->match_string); } else { - lua_pushinteger(L,(lua_Integer)(pinfo->ws_pinfo->match_uint)); + lua_pushnumber(L,(lua_Number)(pinfo->ws_pinfo->match_uint)); } return 1; diff --git a/epan/wslua/wslua_pref.c b/epan/wslua/wslua_pref.c index 3d6ed540..234170d3 100644 --- a/epan/wslua/wslua_pref.c +++ b/epan/wslua/wslua_pref.c @@ -515,9 +515,9 @@ WSLUA_METAMETHOD Prefs__index(lua_State* L) { if ( g_str_equal(prefs_p->name,name) ) { switch (prefs_p->type) { case PREF_BOOL: lua_pushboolean(L, prefs_p->value.b); break; - case PREF_UINT: lua_pushinteger(L,(lua_Integer)prefs_p->value.u); break; + case PREF_UINT: lua_pushnumber(L,(lua_Number)prefs_p->value.u); break; case PREF_STRING: lua_pushstring(L,prefs_p->value.s); break; - case PREF_ENUM: lua_pushinteger(L,(lua_Integer)prefs_p->value.e); break; + case PREF_ENUM: lua_pushnumber(L,(lua_Number)prefs_p->value.e); break; case PREF_RANGE: { char *push_str = range_convert_range(NULL, prefs_p->value.r); diff --git a/epan/wslua/wslua_proto.c b/epan/wslua/wslua_proto.c index 92a1d192..b7f170d7 100644 --- a/epan/wslua/wslua_proto.c +++ b/epan/wslua/wslua_proto.c @@ -767,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; @@ -802,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_struct.c b/epan/wslua/wslua_struct.c index 440a0900..7d62dc09 100644 --- a/epan/wslua/wslua_struct.c +++ b/epan/wslua/wslua_struct.c @@ -410,7 +410,7 @@ WSLUA_CONSTRUCTOR Struct_pack (lua_State *L) { * given endianness and size. If the integer type is signed, this makes * the Lua number be +/- correctly as well. */ -static lua_Integer getinteger (const gchar *buff, int endian, +static lua_Number getinteger (const gchar *buff, int endian, int issigned, int size) { Uinttype l = 0; int i; @@ -427,12 +427,12 @@ static lua_Integer getinteger (const gchar *buff, int endian, } } if (!issigned) - return (lua_Integer)l; + return (lua_Number)l; else { /* signed format */ Uinttype mask = (Uinttype)(~((Uinttype)0)) << (size*8 - 1); if (l & mask) /* negative value? */ l |= mask; /* signal extension */ - return (lua_Integer)(Inttype)l; + return (lua_Number)(Inttype)l; } } @@ -470,8 +470,8 @@ WSLUA_CONSTRUCTOR Struct_unpack (lua_State *L) { case 'b': case 'B': case 'h': case 'H': case 'l': case 'L': case 'T': case 'i': case 'I': { /* integer types */ int issigned = g_ascii_islower(opt); - lua_Integer res = getinteger(data+pos, h.endian, issigned, (int)size); - lua_pushinteger(L, res); + lua_Number res = getinteger(data+pos, h.endian, issigned, (int)size); + lua_pushnumber(L, res); break; } case 'e': { diff --git a/epan/wslua/wslua_tree.c b/epan/wslua/wslua_tree.c index 5d8dc7c7..ff2ac781 100644 --- a/epan/wslua/wslua_tree.c +++ b/epan/wslua/wslua_tree.c @@ -123,7 +123,7 @@ try_add_packet_field(lua_State *L, TreeItem tree_item, TvbRange tvbr, const int item = proto_tree_add_item_ret_int(tree_item->tree, hfid, tvbr->tvb->ws_tvb, tvbr->offset, tvbr->len, encoding, &ret); - lua_pushinteger(L, (lua_Integer)ret); + lua_pushnumber(L, (lua_Number)ret); lua_pushinteger(L, tvbr->offset + tvbr->len); } break; @@ -152,7 +152,7 @@ try_add_packet_field(lua_State *L, TreeItem tree_item, TvbRange tvbr, const int item = proto_tree_add_item_ret_uint(tree_item-> tree, hfid, tvbr->tvb->ws_tvb, tvbr->offset, tvbr->len, encoding, &ret); - lua_pushinteger(L, (lua_Integer)ret); + lua_pushnumber(L, (lua_Number)ret); lua_pushinteger(L, tvbr->offset + tvbr->len); } break; @@ -502,7 +502,7 @@ static int TreeItem_add_item_any(lua_State *L, gboolean little_endian) { switch(type) { case FT_PROTOCOL: item = proto_tree_add_item(tree_item->tree,hfid,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,ENC_NA); - lua_pushinteger(L,0); + lua_pushnumber(L,0); lua_insert(L,1); break; case FT_BOOLEAN: @@ -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 f315e83e..031023d0 100644 --- a/epan/wslua/wslua_tvb.c +++ b/epan/wslua/wslua_tvb.c @@ -135,7 +135,7 @@ WSLUA_METHOD Tvb_reported_len(lua_State* L) { /* Obtain the reported length (length on the network) of a <<lua_class_Tvb,`Tvb`>>. */ Tvb tvb = checkTvb(L,1); - lua_pushinteger(L,tvb_reported_length(tvb->ws_tvb)); + lua_pushnumber(L,tvb_reported_length(tvb->ws_tvb)); WSLUA_RETURN(1); /* The reported length of the <<lua_class_Tvb,`Tvb`>>. */ } @@ -143,7 +143,7 @@ WSLUA_METHOD Tvb_captured_len(lua_State* L) { /* Obtain the captured length (amount saved in the capture process) of a <<lua_class_Tvb,`Tvb`>>. */ Tvb tvb = checkTvb(L,1); - lua_pushinteger(L,tvb_captured_length(tvb->ws_tvb)); + lua_pushnumber(L,tvb_captured_length(tvb->ws_tvb)); WSLUA_RETURN(1); /* The captured length of the <<lua_class_Tvb,`Tvb`>>. */ } @@ -152,18 +152,18 @@ WSLUA_METHOD Tvb_len(lua_State* L) { Same as captured_len; kept only for backwards compatibility */ Tvb tvb = checkTvb(L,1); - lua_pushinteger(L,tvb_captured_length(tvb->ws_tvb)); + lua_pushnumber(L,tvb_captured_length(tvb->ws_tvb)); WSLUA_RETURN(1); /* The captured length of the <<lua_class_Tvb,`Tvb`>>. */ } 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_pushinteger(L,tvb_reported_length_remaining(tvb->ws_tvb, offset)); + lua_pushnumber(L,tvb_reported_length_remaining(tvb->ws_tvb, offset)); WSLUA_RETURN(1); /* The captured length of the <<lua_class_Tvb,`Tvb`>>. */ } @@ -210,7 +210,7 @@ WSLUA_METHOD Tvb_offset(lua_State* L) { /* Returns the raw offset (from the beginning of the source <<lua_class_Tvb,`Tvb`>>) of a sub <<lua_class_Tvb,`Tvb`>>. */ Tvb tvb = checkTvb(L,1); - lua_pushinteger(L,tvb_raw_offset(tvb->ws_tvb)); + lua_pushnumber(L,tvb_raw_offset(tvb->ws_tvb)); WSLUA_RETURN(1); /* The raw offset of the <<lua_class_Tvb,`Tvb`>>. */ } @@ -441,16 +441,16 @@ WSLUA_METHOD TvbRange_uint(lua_State* L) { switch (tvbr->len) { case 1: - lua_pushinteger(L,tvb_get_guint8(tvbr->tvb->ws_tvb,tvbr->offset)); + lua_pushnumber(L,tvb_get_guint8(tvbr->tvb->ws_tvb,tvbr->offset)); return 1; case 2: - lua_pushinteger(L,tvb_get_ntohs(tvbr->tvb->ws_tvb,tvbr->offset)); + lua_pushnumber(L,tvb_get_ntohs(tvbr->tvb->ws_tvb,tvbr->offset)); return 1; case 3: - lua_pushinteger(L,tvb_get_ntoh24(tvbr->tvb->ws_tvb,tvbr->offset)); + lua_pushnumber(L,tvb_get_ntoh24(tvbr->tvb->ws_tvb,tvbr->offset)); return 1; case 4: - lua_pushinteger(L,tvb_get_ntohl(tvbr->tvb->ws_tvb,tvbr->offset)); + lua_pushnumber(L,tvb_get_ntohl(tvbr->tvb->ws_tvb,tvbr->offset)); WSLUA_RETURN(1); /* The unsigned integer value. */ default: luaL_error(L,"TvbRange:uint() does not handle %d byte integers",tvbr->len); @@ -474,16 +474,16 @@ WSLUA_METHOD TvbRange_le_uint(lua_State* L) { switch (tvbr->len) { case 1: /* XXX unsigned anyway */ - lua_pushinteger(L,(lua_Integer)(guint)tvb_get_guint8(tvbr->tvb->ws_tvb,tvbr->offset)); + lua_pushnumber(L,(lua_Number)(guint)tvb_get_guint8(tvbr->tvb->ws_tvb,tvbr->offset)); return 1; case 2: - lua_pushinteger(L,tvb_get_letohs(tvbr->tvb->ws_tvb,tvbr->offset)); + lua_pushnumber(L,tvb_get_letohs(tvbr->tvb->ws_tvb,tvbr->offset)); return 1; case 3: - lua_pushinteger(L,tvb_get_letoh24(tvbr->tvb->ws_tvb,tvbr->offset)); + lua_pushnumber(L,tvb_get_letoh24(tvbr->tvb->ws_tvb,tvbr->offset)); return 1; case 4: - lua_pushinteger(L,tvb_get_letohl(tvbr->tvb->ws_tvb,tvbr->offset)); + lua_pushnumber(L,tvb_get_letohl(tvbr->tvb->ws_tvb,tvbr->offset)); WSLUA_RETURN(1); /* The unsigned integer value */ default: luaL_error(L,"TvbRange:le_uint() does not handle %d byte integers",tvbr->len); @@ -594,16 +594,16 @@ WSLUA_METHOD TvbRange_int(lua_State* L) { switch (tvbr->len) { case 1: - lua_pushinteger(L,tvb_get_gint8(tvbr->tvb->ws_tvb,tvbr->offset)); + lua_pushnumber(L,tvb_get_gint8(tvbr->tvb->ws_tvb,tvbr->offset)); return 1; case 2: - lua_pushinteger(L,tvb_get_ntohis(tvbr->tvb->ws_tvb,tvbr->offset)); + lua_pushnumber(L,tvb_get_ntohis(tvbr->tvb->ws_tvb,tvbr->offset)); return 1; case 3: - lua_pushinteger(L,tvb_get_ntohi24(tvbr->tvb->ws_tvb,tvbr->offset)); + lua_pushnumber(L,tvb_get_ntohi24(tvbr->tvb->ws_tvb,tvbr->offset)); return 1; case 4: - lua_pushinteger(L,tvb_get_ntohil(tvbr->tvb->ws_tvb,tvbr->offset)); + lua_pushnumber(L,tvb_get_ntohil(tvbr->tvb->ws_tvb,tvbr->offset)); WSLUA_RETURN(1); /* The signed integer value. */ /* * XXX: @@ -633,16 +633,16 @@ WSLUA_METHOD TvbRange_le_int(lua_State* L) { switch (tvbr->len) { case 1: - lua_pushinteger(L,tvb_get_gint8(tvbr->tvb->ws_tvb,tvbr->offset)); + lua_pushnumber(L,tvb_get_gint8(tvbr->tvb->ws_tvb,tvbr->offset)); return 1; case 2: - lua_pushinteger(L,tvb_get_letohis(tvbr->tvb->ws_tvb,tvbr->offset)); + lua_pushnumber(L,tvb_get_letohis(tvbr->tvb->ws_tvb,tvbr->offset)); return 1; case 3: - lua_pushinteger(L,tvb_get_letohi24(tvbr->tvb->ws_tvb,tvbr->offset)); + lua_pushnumber(L,tvb_get_letohi24(tvbr->tvb->ws_tvb,tvbr->offset)); return 1; case 4: - lua_pushinteger(L,tvb_get_letohil(tvbr->tvb->ws_tvb,tvbr->offset)); + lua_pushnumber(L,tvb_get_letohil(tvbr->tvb->ws_tvb,tvbr->offset)); WSLUA_RETURN(1); /* The signed integer value. */ default: luaL_error(L,"TvbRange:le_int() does not handle %d byte integers",tvbr->len); @@ -1237,13 +1237,13 @@ WSLUA_METHOD TvbRange_bitfield(lua_State* L) { } if (len <= 8) { - lua_pushinteger(L,(lua_Integer)(guint)tvb_get_bits8(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len)); + lua_pushnumber(L,(lua_Number)(guint)tvb_get_bits8(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len)); return 1; } else if (len <= 16) { - lua_pushinteger(L,tvb_get_bits16(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len, FALSE)); + lua_pushnumber(L,tvb_get_bits16(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len, FALSE)); return 1; } else if (len <= 32) { - lua_pushinteger(L,tvb_get_bits32(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len, FALSE)); + lua_pushnumber(L,tvb_get_bits32(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len, FALSE)); return 1; } else if (len <= 64) { pushUInt64(L,tvb_get_bits64(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len, FALSE)); @@ -1334,7 +1334,7 @@ WSLUA_METHOD TvbRange_len(lua_State* L) { luaL_error(L,"expired tvb"); return 0; } - lua_pushinteger(L,(lua_Integer)tvbr->len); + lua_pushnumber(L,(lua_Number)tvbr->len); return 1; } @@ -1347,7 +1347,7 @@ WSLUA_METHOD TvbRange_offset(lua_State* L) { luaL_error(L,"expired tvb"); return 0; } - lua_pushinteger(L,(lua_Integer)tvbr->offset); + lua_pushnumber(L,(lua_Number)tvbr->offset); return 1; } diff --git a/epan/wslua/wslua_wtap.c b/epan/wslua/wslua_wtap.c index 9fa27879..524ed7c3 100644 --- a/epan/wslua/wslua_wtap.c +++ b/epan/wslua/wslua_wtap.c @@ -85,7 +85,7 @@ WSLUA_FUNCTION wslua_wtap_name_to_file_type_subtype(lua_State* LS) { if (filetype == -1) lua_pushnil(LS); else - lua_pushinteger(LS,filetype); + lua_pushnumber(LS,filetype); WSLUA_RETURN(1); /* The filetype value for the file type with that name, or nil if there is no such file type. */ } @@ -96,7 +96,7 @@ WSLUA_FUNCTION wslua_wtap_pcap_file_type_subtype(lua_State* LS) { @since 3.2.12, 3.4.4 */ lua_Number filetype = wtap_pcap_file_type_subtype(); - lua_pushinteger(LS,filetype); + lua_pushnumber(LS,filetype); WSLUA_RETURN(1); /* The filetype value for pcap files. */ } @@ -107,7 +107,7 @@ WSLUA_FUNCTION wslua_wtap_pcap_nsec_file_type_subtype(lua_State* LS) { @since 3.2.12, 3.4.4 */ lua_Number filetype = wtap_pcap_nsec_file_type_subtype(); - lua_pushinteger(LS,filetype); + lua_pushnumber(LS,filetype); WSLUA_RETURN(1); /* The filetype value for nanosecond-resolution pcap files. */ } @@ -118,7 +118,7 @@ WSLUA_FUNCTION wslua_wtap_pcapng_file_type_subtype(lua_State* LS) { @since 3.2.12, 3.4.4 */ lua_Number filetype = wtap_pcapng_file_type_subtype(); - lua_pushinteger(LS,filetype); + lua_pushnumber(LS,filetype); WSLUA_RETURN(1); /* The filetype value for pcapng files. */ } @@ -148,7 +148,7 @@ extern void wslua_init_wtap_filetypes(lua_State* LS) { * it. */ lua_pushstring(LS, entry->name); - lua_pushinteger(LS, entry->ft); + lua_pushnumber(LS, entry->ft); /* * The -3 is the index, relative to the top of the stack, of * the table; the two elements on top of it are the ft and diff --git a/packaging/debian/changelog b/packaging/debian/changelog index 0a5e254b..a9d1562f 100644 --- a/packaging/debian/changelog +++ b/packaging/debian/changelog @@ -1,4 +1,4 @@ -wireshark (4.2.4) unstable; urgency=low +wireshark (4.2.5) unstable; urgency=low * Self-made package diff --git a/packaging/nsis/mingw64-qt-mapping.txt b/packaging/nsis/mingw64-qt-mapping.txt index 40ca2ef6..71e1288c 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 f3e3e9a5..2339cf34 100644 --- a/packaging/nsis/windeployqt-to-nsis.py +++ b/packaging/nsis/windeployqt-to-nsis.py @@ -90,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/source/git-export-release.sh.in b/packaging/source/git-export-release.sh.in index 51adfb73..a0f876a4 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='1fe5bce8d665c0d64e1af63545421c67596db165' +COMMIT='4aa814ac25a18ea48d4002351ed45d4b245b0c08' if [[ $COMMIT != \$F* ]] ; then # This file was extracted from a tarball produced by git archive diff --git a/plugins/epan/mate/mate_runtime.c b/plugins/epan/mate/mate_runtime.c index 41d9c0de..8cda791a 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 97774cd1..2b36659e 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/reordercap.c b/reordercap.c index ed4a3649..a8aba004 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(¶ms, 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, ¶ms, &err, &err_info); - } else { - pdh = wtap_dump_open(outfile, wtap_file_type_subtype(wth), - WTAP_UNCOMPRESSED, ¶ms, &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(¶ms); - 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(¶ms, 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, ¶ms, &err, &err_info); + } else { + pdh = wtap_dump_open(outfile, wtap_file_type_subtype(wth), + WTAP_UNCOMPRESSED, ¶ms, &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(¶ms); + 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(¶ms); + 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(¶ms); - ret = OUTPUT_FILE_ERROR; - goto clean_exit; - } wtap_dump_params_cleanup(¶ms); /* Finally, close infile and release resources. */ diff --git a/resources/file_dlg_win32.rc b/resources/file_dlg_win32.rc index f674aef0..34dbf60d 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/sharkd_session.c b/sharkd_session.c index 8c378260..9e84cbc1 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; } @@ -3917,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: * @@ -3939,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; @@ -3957,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); @@ -4143,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); @@ -4155,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); @@ -4168,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; @@ -4327,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(); @@ -4709,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 diff --git a/test/captures/quic-with-secrets.pcapng b/test/captures/quic-with-secrets.pcapng Binary files differnew file mode 100644 index 00000000..4968365a --- /dev/null +++ b/test/captures/quic-with-secrets.pcapng diff --git a/test/lua/protofield.lua b/test/lua/protofield.lua index 9d2223f6..f9ce2dc0 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/suite_sharkd.py b/test/suite_sharkd.py index d8c1ef2f..9d883647 100644 --- a/test/suite_sharkd.py +++ b/test/suite_sharkd.py @@ -1107,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"}}, @@ -1114,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): @@ -1151,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", @@ -1230,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): @@ -1283,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/tools/macos-setup.sh b/tools/macos-setup.sh index ec25bf71..0017ffcf 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-version.py b/tools/make-version.py index 69470995..ee660c19 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 = '1fe5bce8d665c0d64e1af63545421c67596db165' -GIT_EXPORT_SUBST_D = 'tag: wireshark-4.2.4, tag: v4.2.4, refs/merge-requests/15008/head, refs/keep-around/1fe5bce8d665c0d64e1af63545421c67596db165' +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/win-setup.ps1 b/tools/win-setup.ps1 index 741c44d5..93c1bb61 100644 --- a/tools/win-setup.ps1 +++ b/tools/win-setup.ps1 @@ -75,7 +75,7 @@ $X64Archives = @{ "bcg729/bcg729-1.0.4-win64ws.zip" = "9a095fda4c39860d96f0c568830faa6651cd17635f68e27aa6de46c689aa0ee2"; "brotli/brotli-1.0.9-1-win64ws.zip" = "3f8d24aec8668201994327ff8d8542fe507d1d468a500a1aec50d0415f695aab"; "c-ares/c-ares-1.27.0-1-x64-windows-ws.zip" = "c9f1fb4836d55ae3aca0be077d2363678454820f9efad5c09371351a8770b5fc"; - "gnutls/gnutls-3.8.3-1-x64-mingw-dynamic-ws.zip" = "0d8f99029319e1967fd916586eecfd776a9b564614468b233b6eda8bc23ca20d"; + "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.27.0-1-arm64-windows-ws.zip" = "d96bd88aeed45350b2d14f023bd6d9e5dc63aa3bb0b47da85e4e125d6f74bfcf"; - "gnutls/gnutls-3.8.3-1-arm64-mingw-dynamic-ws.zip" = "b9f0ee9cfe5012241aa5b9832212ea31408edf9bfc968762a2cfb091202fcc4b"; + "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/logray/logray_main_window_slots.cpp b/ui/logray/logray_main_window_slots.cpp index f0882ed5..bf9c05bc 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 7f2664ec..5b09efcd 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/models/column_list_model.cpp b/ui/qt/models/column_list_model.cpp index a0e5c8ba..102ffc31 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 0ed61d74..8cc00691 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 a065eacc..ae6f0f51 100644 --- a/ui/qt/packet_list.cpp +++ b/ui/qt/packet_list.cpp @@ -1038,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(); diff --git a/ui/qt/packet_range_group_box.cpp b/ui/qt/packet_range_group_box.cpp index 143da613..dab44333 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 7d0ad62d..60418cc8 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 2f5b5ede..e5fb7b87 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 8c321907..f9935d5b 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 88f6b757..8d668f62 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() diff --git a/ui/qt/utils/data_printer.cpp b/ui/qt/utils/data_printer.cpp index a96e1ed4..3c3e910a 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 @@ -57,6 +89,8 @@ void DataPrinter::toClipboard(DataPrinter::DumpType type, IDataPrintable * print 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; } diff --git a/ui/qt/voip_calls_dialog.cpp b/ui/qt/voip_calls_dialog.cpp index b8a54bd7..dd5910f8 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/wireshark_de.ts b/ui/qt/wireshark_de.ts index 28d3c38b..a42e3c32 100644 --- a/ui/qt/wireshark_de.ts +++ b/ui/qt/wireshark_de.ts @@ -8086,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> diff --git a/ui/qt/wireshark_en.ts b/ui/qt/wireshark_en.ts index 2dab6ca4..4478363c 100644 --- a/ui/qt/wireshark_en.ts +++ b/ui/qt/wireshark_en.ts @@ -8025,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 3f5a016c..dc082029 100644 --- a/ui/qt/wireshark_es.ts +++ b/ui/qt/wireshark_es.ts @@ -8006,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 29e8c5ac..7c63477f 100644 --- a/ui/qt/wireshark_fr.ts +++ b/ui/qt/wireshark_fr.ts @@ -8034,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 772d32cd..18daca04 100644 --- a/ui/qt/wireshark_it.ts +++ b/ui/qt/wireshark_it.ts @@ -8086,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> diff --git a/ui/qt/wireshark_ja_JP.ts b/ui/qt/wireshark_ja_JP.ts index 0d1e1f7f..610d74df 100644 --- a/ui/qt/wireshark_ja_JP.ts +++ b/ui/qt/wireshark_ja_JP.ts @@ -8062,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 94c1648f..8a2f795f 100644 --- a/ui/qt/wireshark_ko.ts +++ b/ui/qt/wireshark_ko.ts @@ -8059,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 74943adc..a348bd47 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 efd144dc..65abbd71 100644 --- a/ui/qt/wireshark_pl.ts +++ b/ui/qt/wireshark_pl.ts @@ -1262,7 +1262,7 @@ </message> <message> <source>Show and hide interfaces, add comments, and manage pipes and remote interfaces.</source> - <translation>Pokaż lub ukryj interfejsy, dodaj komentarze i zarządzaj interfejsami pipe oraz zdalnymi.</translation> + <translation>Pokaż lub ukryj interfejsy, dodaj komentarze i zarządzaj potokami oraz zdalnymi interfejsami.</translation> </message> <message> <source>Manage Interfaces…</source> @@ -4885,7 +4885,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour </message> <message> <source>Pipe</source> - <translation type="unfinished"></translation> + <translation>Potok</translation> </message> <message> <source>STDIN</source> @@ -5013,7 +5013,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour </message> <message> <source>Local Pipe Path</source> - <translation type="unfinished"></translation> + <translation>Ścieżka lokalnego potoku</translation> </message> <message> <source>Comment</source> @@ -6676,19 +6676,19 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour </message> <message> <source><html><head/><body><p>Add a pipe to capture from or remove an existing pipe from the list.</p></body></html></source> - <translation><html><head/><body><p>Dodaj lub usuń rurę z listy.</p></body></html></translation> + <translation><html><head/><body><p>Dodaj lub usuń potok z listy.</p></body></html></translation> </message> <message> <source>Pipes</source> - <translation>Rury</translation> + <translation>Potoki</translation> </message> <message> <source><html><head/><body><p>Add a new pipe using default settings.</p></body></html></source> - <translation><html><head/><body><p>Dodaj nową rurę używając domyślnych ustawień.</p></body></html></translation> + <translation><html><head/><body><p>Dodaj nowy potok używając domyślnych ustawień.</p></body></html></translation> </message> <message> <source><html><head/><body><p>Remove the selected pipe from the list.</p></body></html></source> - <translation><html><head/><body><p>Usuń wybraną rurę z listy.</p></body></html></translation> + <translation><html><head/><body><p>Usuń wybrany potok z listy.</p></body></html></translation> </message> <message> <source>Remote Interfaces</source> @@ -6716,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> @@ -6728,7 +6728,7 @@ 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> @@ -7323,7 +7323,7 @@ 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> @@ -8102,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> diff --git a/ui/qt/wireshark_ru.ts b/ui/qt/wireshark_ru.ts index 20dc0e3a..870d0df6 100644 --- a/ui/qt/wireshark_ru.ts +++ b/ui/qt/wireshark_ru.ts @@ -8055,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 abe7fef8..d9936d05 100644 --- a/ui/qt/wireshark_sv.ts +++ b/ui/qt/wireshark_sv.ts @@ -8035,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 06f0cafa..1328942d 100644 --- a/ui/qt/wireshark_tr_TR.ts +++ b/ui/qt/wireshark_tr_TR.ts @@ -8015,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 12517ff4..4720152d 100644 --- a/ui/qt/wireshark_uk.ts +++ b/ui/qt/wireshark_uk.ts @@ -7996,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 38dfcbbd..13b953b6 100644 --- a/ui/qt/wireshark_zh_CN.ts +++ b/ui/qt/wireshark_zh_CN.ts @@ -8010,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/win32/file_dlg_win32.cpp b/ui/win32/file_dlg_win32.cpp index a301912e..6261c915 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 0edee0bb..2bb2fb4d 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 f267c647..fe5ef693 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.4" 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 9c08c5ec..176db32f 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(¶ms); + if (!blf_scan_file_for_logcontainers(¶ms, 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 d372f952..fb9e117c 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 01317da0..ca4d2f69 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/pcapng.c b/wiretap/pcapng.c index 85c635fc..f5c3b320 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 93bcca42..2b25c03f 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 7dfbf1a1..98ffe4dd 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 f3d9efbd..91dafd6c 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 e5a8c9de..58c49179 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 f9e6aa25..8b06b070 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; /* |