]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Merge pull request #7620 from keszybz/two-docs
authorLennart Poettering <lennart@poettering.net>
Sat, 23 Dec 2017 11:40:48 +0000 (12:40 +0100)
committerGitHub <noreply@github.com>
Sat, 23 Dec 2017 11:40:48 +0000 (12:40 +0100)
Two docs

245 files changed:
.mailmap
CODING_STYLE
ENVIRONMENT.md
NEWS
TODO
TRANSIENT-SETTINGS.md
catalog/meson.build
catalog/systemd.catalog.in
catalog/systemd.fr.catalog.in
catalog/systemd.pl.catalog.in
catalog/systemd.ru.catalog.in
coccinelle/const-strlen.cocci [new file with mode: 0644]
coccinelle/debug-logging.cocci [new file with mode: 0644]
coccinelle/equals-null.cocci [new file with mode: 0644]
coccinelle/isempty.cocci
coccinelle/memzero.cocci [new file with mode: 0644]
hwdb/20-OUI.hwdb
hwdb/20-acpi-vendor.hwdb
hwdb/20-acpi-vendor.hwdb.patch
hwdb/20-pci-vendor-model.hwdb
hwdb/20-usb-vendor-model.hwdb
hwdb/60-sensor.hwdb
hwdb/70-pointingstick.hwdb
hwdb/acpi_id_registry.html
hwdb/ids_parser.py
hwdb/ma-large.txt
hwdb/ma-medium.txt
hwdb/ma-small.txt
hwdb/pci.ids
hwdb/pnp_id_registry.html
hwdb/usb.ids
man/bootctl.xml
man/daemon.xml
man/file-hierarchy.xml
man/sd_notify.xml
man/systemctl.xml
man/systemd-coredump.xml
man/systemd-mount.xml
man/systemd-nspawn.xml
man/systemd-resolve.xml
man/systemd-run.xml
man/systemd-socket-activate.xml
man/systemd.dnssd.xml
man/systemd.environment-generator.xml
man/systemd.exec.xml
man/systemd.generator.xml
man/systemd.mount.xml
man/systemd.service.xml
man/systemd.swap.xml
man/systemd.unit.xml
man/systemd.xml
meson.build
src/analyze/analyze-verify.c
src/analyze/analyze.c
src/basic/btrfs-ctree.h
src/basic/btrfs-util.c
src/basic/btrfs-util.h
src/basic/calendarspec.c
src/basic/cgroup-util.c
src/basic/clock-util.c
src/basic/device-nodes.c
src/basic/device-nodes.h
src/basic/ether-addr-util.c
src/basic/fd-util.c
src/basic/fileio.c
src/basic/fileio.h
src/basic/fs-util.c
src/basic/hostname-util.c
src/basic/hostname-util.h
src/basic/journal-importer.c
src/basic/label.c
src/basic/label.h
src/basic/log.c
src/basic/log.h
src/basic/macro.h
src/basic/missing.h
src/basic/mount-util.c
src/basic/path-util.c
src/basic/process-util.c
src/basic/process-util.h
src/basic/signal-util.c
src/basic/socket-util.c
src/basic/stat-util.c
src/basic/stat-util.h
src/basic/string-util.c
src/basic/terminal-util.c
src/basic/time-util.c
src/basic/unit-name.c
src/basic/util.c
src/basic/verbs.c
src/basic/verbs.h
src/basic/xattr-util.c
src/boot/bootctl.c
src/boot/efi/measure.c
src/busctl/busctl.c
src/core/automount.c
src/core/dbus-cgroup.c
src/core/dbus-execute.c
src/core/dbus-path.c
src/core/dbus-path.h
src/core/dbus-service.c
src/core/dbus-timer.c
src/core/dynamic-user.c
src/core/execute.c
src/core/ima-setup.c
src/core/load-fragment-gperf.gperf.m4
src/core/machine-id-setup.c
src/core/main.c
src/core/manager.c
src/core/mount-setup.c
src/core/path.c
src/core/service.c
src/core/shutdown.c
src/core/slice.c
src/core/smack-setup.c
src/core/umount.c
src/coredump/coredump.c
src/coredump/coredumpctl.c
src/coredump/stacktrace.c
src/cryptsetup/cryptsetup-generator.c
src/cryptsetup/cryptsetup.c
src/fsck/fsck.c
src/fstab-generator/fstab-generator.c
src/journal-remote/journal-remote.c
src/journal-remote/journal-upload.c
src/journal/audit-type.h
src/journal/journal-file.c
src/journal/journal-qrcode.c
src/journal/journal-send.c
src/journal/journalctl.c
src/journal/journald-console.c
src/journal/journald-kmsg.c
src/journal/journald-native.c
src/journal/journald-server.c
src/journal/journald-server.h
src/journal/journald-stream.c
src/journal/journald-syslog.c
src/journal/test-journal-send.c
src/libsystemd-network/sd-dhcp-lease.c
src/libsystemd/sd-bus/bus-introspect.c
src/libsystemd/sd-bus/bus-match.c
src/libsystemd/sd-bus/bus-message.c
src/libsystemd/sd-bus/bus-objects.c
src/libsystemd/sd-bus/bus-socket.c
src/libsystemd/sd-bus/bus-track.c
src/libsystemd/sd-device/device-enumerator.c
src/libsystemd/sd-device/device-private.c
src/libsystemd/sd-device/sd-device.c
src/libsystemd/sd-network/sd-network.c
src/locale/keymap-util.c
src/login/logind-seat.c
src/login/logind-user.c
src/machine/machine.c
src/machine/machinectl.c
src/machine/machined-dbus.c
src/machine/machined.c
src/mount/mount-tool.c
src/network/netdev/netdev.c
src/network/netdev/netdev.h
src/network/networkctl.c
src/network/networkd-dhcp4.c
src/network/networkd-ipv6-proxy-ndp.c
src/network/networkd-link.c
src/network/networkd-manager.c
src/network/networkd-network-gperf.gperf
src/network/networkd-route.h
src/network/networkd-routing-policy-rule.c
src/network/networkd-routing-policy-rule.h
src/network/test-network.c
src/nspawn/nspawn-patch-uid.c
src/nspawn/nspawn-stub-pid1.c
src/nspawn/nspawn.c
src/nss-systemd/nss-systemd.c
src/resolve/resolv.conf
src/resolve/resolve-tool.c
src/resolve/resolved-dns-cache.c
src/resolve/resolved-dns-rr.c
src/resolve/resolved-dns-scope.c
src/resolve/resolved-dns-scope.h
src/resolve/resolved-dns-transaction.c
src/resolve/resolved-dns-transaction.h
src/resolve/resolved-link.c
src/resolve/resolved-manager.c
src/resolve/resolved-resolv-conf.c
src/resolve/resolved-resolv-conf.h
src/run/run.c
src/shared/ask-password-api.c
src/shared/bootspec.c
src/shared/bootspec.h
src/shared/bus-unit-util.c
src/shared/condition.c
src/shared/condition.h
src/shared/dissect-image.c
src/shared/dns-domain.c
src/shared/generator.c
src/shared/generator.h
src/shared/logs-show.c
src/shared/machine-pool.c
src/shared/seccomp-util.c
src/shared/sysctl-util.c
src/shared/utmp-wtmp.c
src/sysctl/sysctl.c
src/systemctl/systemctl.c
src/systemd/sd-messages.h
src/test/test-cgroup-util.c
src/test/test-condition.c
src/test/test-dns-domain.c
src/test/test-fileio.c
src/test/test-hexdecoct.c
src/test/test-process-util.c
src/test/test-unit-name.c
src/timedate/timedatectl.c
src/timesync/timesyncd-manager.c
src/tmpfiles/tmpfiles.c
src/udev/meson.build
src/udev/net/link-config.c
src/udev/udev-event.c
src/udev/udev-node.c
src/udev/udev-rules.c
src/udev/udevadm-control.c
src/udev/udevadm-info.c
src/udev/udevd.c
src/vconsole/vconsole-setup.c
src/veritysetup/veritysetup-generator.c
test/TEST-01-BASIC/Makefile
test/TEST-13-NSPAWN-SMOKE/Makefile
test/TEST-13-NSPAWN-SMOKE/test.sh
test/TEST-16-EXTEND-TIMEOUT/Makefile [new symlink]
test/TEST-16-EXTEND-TIMEOUT/assess.sh [new file with mode: 0755]
test/TEST-16-EXTEND-TIMEOUT/extend_timeout_test_service.sh [new file with mode: 0755]
test/TEST-16-EXTEND-TIMEOUT/test.sh [new file with mode: 0755]
test/TEST-16-EXTEND-TIMEOUT/testsuite-fail-runtime.service [new file with mode: 0644]
test/TEST-16-EXTEND-TIMEOUT/testsuite-fail-start.service [new file with mode: 0644]
test/TEST-16-EXTEND-TIMEOUT/testsuite-fail-stop.service [new file with mode: 0644]
test/TEST-16-EXTEND-TIMEOUT/testsuite-success-all.service [new file with mode: 0644]
test/TEST-16-EXTEND-TIMEOUT/testsuite-success-runtime.service [new file with mode: 0644]
test/TEST-16-EXTEND-TIMEOUT/testsuite-success-start.service [new file with mode: 0644]
test/TEST-16-EXTEND-TIMEOUT/testsuite-success-stop.service [new file with mode: 0644]
test/TEST-16-EXTEND-TIMEOUT/testsuite.service [new file with mode: 0644]
test/TEST-17-UDEV-WANTS/Makefile
test/TEST-18-FAILUREACTION/Makefile
test/TEST-19-DELEGATE/Makefile
test/udev-test.pl
tools/check-includes.pl
tools/meson-hwdb-update.sh

index 5f021b6b7412b4758c689fecfab8cfe48bb6e398..55bd44b677bb9a72d6b12c14b348cf350124c53f 100644 (file)
--- a/.mailmap
+++ b/.mailmap
@@ -132,3 +132,13 @@ Dmitriy Geels <dmitriy.geels@gmail.com>
 Beniamino Galvani <bgalvani@redhat.com> <bengal@users.noreply.github.com>
 Justin Capella <justincapella@gmail.com> <b1tninja@users.noreply.github.com>
 Daniel Șerbănescu <dasj19@users.noreply.github.com>
+Stanislav Angelovič <angelovic.s@gmail.com>
+Torsten Hilbrich <torsten.hilbrich@gmx.net>
+Tinu Weber <takeya@bluewin.ch>
+Gwendal Grignou <gwendal@chromium.org>
+José Bollo <jose.bollo@iot.bzh> <jobol@nonadev.net>
+Patryk Kocielnik <longer44@gmail.com>
+Lukáš Říha <cedel@centrum.cz>
+Alan Robertson <aroberts@zen.iomart.com> <alanjrobertson@gmail.com>
+Martin Steuer <martinsteuer@gmx.de>
+Matthias-Christian Ott <ott@mirix.org> <ott@users.noreply.github.com>
index b090db370f005bd62ea1fe437d9ba16fa90a12c5..ae818126cb92218f0508da598a2410a36ec8c9dd 100644 (file)
@@ -1,9 +1,11 @@
 - 8ch indent, no tabs, except for files in man/ which are 2ch indent,
   and still no tabs
 
-- We prefer /* comments */ over // comments, please. This is not C++, after
-  all. (Yes we know that C99 supports both kinds of comments, but still,
-  please!)
+- We prefer /* comments */ over // comments in code you commit, please. This
+  way // comments are left for developers to use for local, temporary
+  commenting of code for debug purposes (i.e. uncommittable stuff), making such
+  comments easily discernable from explanatory, documenting code comments
+  (i.e. committable stuff).
 
 - Don't break code lines too eagerly. We do *not* force line breaks at
   80ch, all of today's screens should be much larger than that. But
   proper event, instead of doing time-based poll loops.
 
 - To determine the length of a constant string "foo", don't bother
-  with sizeof("foo")-1, please use strlen("foo") directly. gcc knows
-  strlen() anyway and turns it into a constant expression if possible.
+  with sizeof("foo")-1, please use STRLEN() instead.
 
 - If you want to concatenate two or more strings, consider using
   strjoin() rather than asprintf(), as the latter is a lot
index 4ae561a8924624c59ac64d161ac60a98d5d05644..581bf3c2384d10046584d1a1ababdf9623823889 100644 (file)
@@ -13,10 +13,21 @@ documented in the proper man pages.
 
 All tools:
 
+* `$SYSTEMD_OFFLINE=[0|1]` — if set to `1`, then `systemctl` will
+  refrain from talking to PID 1; this has the same effect as the historical
+  detection of `chroot()`.  Setting this variable to `0` instead has a similar
+  effect as `SYSTEMD_IGNORE_CHROOT=1`; i.e. tools will try to
+  communicate with PID 1 even if a `chroot()` environment is detected.
+  You almost certainly want to set this to `1` if you maintain a package build system
+  or similar and are trying to use a modern container system and not plain
+  `chroot()`.
+
 * `$SYSTEMD_IGNORE_CHROOT=1` — if set, don't check whether being invoked in a
-  chroot() environment. This is particularly relevant for systemctl, as it will
-  not alter its behaviour for chroot() environments if set. (Normally it
-  refrains from talking to PID 1 in such a case.)
+  `chroot()` environment. This is particularly relevant for systemctl, as it
+  will not alter its behaviour for `chroot()` environments if set.  Normally it
+  refrains from talking to PID 1 in such a case; turning most operations such
+  as `start` into no-ops.  If that's what's explicitly desired, you might
+  consider setting `SYSTEMD_OFFLINE=1`.
 
 * `$SD_EVENT_PROFILE_DELAYS=1` — if set, the sd-event event loop implementation
   will print latency information at runtime.
diff --git a/NEWS b/NEWS
index bbb481e922de174210d4e5f05be8e2d599b65f3d..1def98212de362e14e4fca2403378b2e4ca2c574 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,18 +1,19 @@
 systemd System and Service Manager
 
-CHANGES WITH 236 in spe:
+CHANGES WITH 236:
 
         * The modprobe.d/ drop-in for the bonding.ko kernel module introduced
           in v235 has been extended to also set the dummy.ko module option
           numdummies=0, preventing the kernel from automatically creating
           dummy0. All dummy interfaces must now be explicitly created.
 
-        * Unknown specifiers are now rejected. This applies to units and
-          tmpfiles.d configuration. Any percent characters that are followed by
-          a letter or digit that are not supposed to be interpreted as the
-          beginning of a specifier should be escaped by doubling ("%%").
-          (So "size=5%" is still accepted, as well as "size=5%,foo=bar", but
-          not "LABEL=x%y%z" since %y and %z are not valid specifiers today.)
+        * Unknown '%' specifiers in configuration files are now rejected. This
+          applies to units and tmpfiles.d configuration. Any percent characters
+          that are followed by a letter or digit that are not supposed to be
+          interpreted as the beginning of a specifier should be escaped by
+          doubling ("%%").  (So "size=5%" is still accepted, as well as
+          "size=5%,foo=bar", but not "LABEL=x%y%z" since %y and %z are not
+          valid specifiers today.)
 
         * systemd-resolved now maintains a new dynamic
           /run/systemd/resolve/stub-resolv.conf compatibility file. It is
@@ -32,6 +33,17 @@ CHANGES WITH 236 in spe:
           enabled in /etc/nsswitch.conf to ensure the UIDs assigned to these
           services are resolved properly.
 
+        * In /etc/fstab two new mount options are now understood:
+          x-systemd.makefs and x-systemd.growfs. The former has the effect that
+          the configured file system is formatted before it is mounted, the
+          latter that the file system is resized to the full block device size
+          after it is mounted (i.e. if the file system is smaller than the
+          partition it resides on, it's grown). This is similar to the fsck
+          logic in /etc/fstab, and pulls in systemd-makefs@.service and
+          systemd-growfs@.service as necessary, similar to
+          systemd-fsck@.service. Resizing is currently only supported on ext4
+          and btrfs.
+
         * In systemd-networkd, the IPv6 RA logic now optionally may announce
           DNS server and domain information.
 
@@ -155,25 +167,63 @@ CHANGES WITH 236 in spe:
           store again, ahead of POLLHUP or POLLERR when they are removed
           anyway.
 
-        Contributions from: aeywalee, Alan Jenkins, Alessandro Ghedini, Andrew
-        Jeddeloh, Antonio Rojas, Ari, bleep_blop, Carsten Strotmann, Christian
-        Brauner, Christian Hesse, Collin Eggert, Daniel Lockyer, Daniel Rusek,
-        Dimitri John Ledkov, Evgeny Vereshchagin, Florian Klink, Franck Bui,
-        gwendalcr, Hans de Goede, Jakub Wilk, Jérémy Rosen, jobol, John Lin,
-        juga0, Krzysztof Nowicki, Lars Karlitski, Lars Kellogg-Stedman, Lauri
-        Tirkkonen, Lennart Poettering, longersson, Lubomir Rintel, Lucas
-        Werkmeister, lukas, Lukáš Nykrýn, Lukasz Rubaszewski, Maciej
-        S. Szmigiero, macrothian, Mantas Mikulėnas, martingh, Mathieu
-        Trudel-Lapierre, Matija Skala, Michael Biebl, Michael Vogt, Michal
-        Sekletar, Mike Gilbert, Muhammet Kara, myrkr, Neil Brown, Ondrej
-        Kozina, Patrik Flykt, Peter Hutterer, Piotr Drąg, Razvan Cojocaru,
-        Robin McCorkell, Roland Hieber, Sergey Ptashnick, Shawn Landden, Shuang
-        Liu, Simon Arlott, Simon Peeters, Stefan Agner, Susant Sahani, Sylvain
-        Plantefève, Thomas Blume, Tom Stellard, Topi Miettinen, Vito Caputo,
-        Vladislav Vishnyakov, WaLyong Cho, Yu Watanabe, Zbigniew
+        * A new document UIDS-GIDS.md has been added to the source tree, that
+          documents the UID/GID range and assignment assumptions and
+          requirements of systemd.
+
+        * The watchdog device PID 1 will ping may now be configured through the
+          WatchdogDevice= configuration file setting, or by setting the
+          systemd.watchdog_service= kernel commandline option.
+
+        * systemd-resolved's gained support for registering DNS-SD services on
+          the local network using MulticastDNS. Services may either be
+          registered by dropping in a .dnssd file in /etc/systemd/dnssd/ (or
+          the same dir below /run, /usr/lib), or through its D-Bus API.
+
+        * The sd_notify() protocol can now with EXTEND_TIMEOUT_USEC=microsecond
+          extend the effective start, runtime, and stop time. The service must
+          continue to send EXTEND_TIMEOUT_USEC within the period specified to
+          prevent the service manager from making the service as timedout.
+
+        * systemd-resolved's DNSSEC support gained support for RFC 8080
+          (Ed25519 keys and signatures).
+
+        * The systemd-resolve command line tool gained a new set of options
+          --set-dns=, --set-domain=, --set-llmnr=, --set-mdns=, --set-dnssec=,
+          --set-nta= and --revert to configure per-interface DNS configuration
+          dynamically during runtime. It's useful for pushing DNS information
+          into systemd-resolved from DNS hook scripts that various interface
+          managing software supports (such as pppd).
+
+        * systemd-nspawn gained a new --network-namespace-path= command line
+          option, which may be used to make a container join an existing
+          network namespace, by specifying a path to a "netns" file.
+
+        Contributions from: Alan Jenkins, Alan Robertson, Alessandro Ghedini,
+        Andrew Jeddeloh, Antonio Rojas, Ari, asavah, bleep_blop, Carsten
+        Strotmann, Christian Brauner, Christian Hesse, Clinton Roy, Collin
+        Eggert, Cong Wang, Daniel Black, Daniel Lockyer, Daniel Rusek, Dimitri
+        John Ledkov, Dmitry Rozhkov, Dongsu Park, Edward A. James, Evgeny
+        Vereshchagin, Florian Klink, Franck Bui, Gwendal Grignou, Hans de
+        Goede, Harald Hoyer, Hristo Venev, Iago López Galeiras, Ikey Doherty,
+        Jakub Wilk, Jérémy Rosen, Jiahui Xie, John Lin, José Bollo, Josef
+        Andersson, juga0, Krzysztof Nowicki, Kyle Walker, Lars Karlitski, Lars
+        Kellogg-Stedman, Lauri Tirkkonen, Lennart Poettering, Lubomir Rintel,
+        Luca Bruno, Lucas Werkmeister, Lukáš Nykrýn, Lukáš Říha, Lukasz
+        Rubaszewski, Maciej S. Szmigiero, Mantas Mikulėnas, Marcus Folkesson,
+        Martin Steuer, Mathieu Trudel-Lapierre, Matija Skala,
+        Matthias-Christian Ott, Max Resch, Michael Biebl, Michael Vogt, Michal
+        Koutný, Michal Sekletar, Mike Gilbert, Muhammet Kara, Neil Brown, Olaf
+        Hering, Ondrej Kozina, Patrik Flykt, Patryk Kocielnik, Peter Hutterer,
+        Piotr Drąg, Razvan Cojocaru, Robin McCorkell, Roland Hieber, Saran
+        Tunyasuvunakool, Sergey Ptashnick, Shawn Landden, Shuang Liu, Simon
+        Arlott, Simon Peeters, Stanislav Angelovič, Stefan Agner, Susant
+        Sahani, Sylvain Plantefève, Thomas Blume, Thomas Haller, Tiago Salem
+        Herrmann, Tinu Weber, Tom Stellard, Topi Miettinen, Torsten Hilbrich,
+        Vito Caputo, Vladislav Vishnyakov, WaLyong Cho, Yu Watanabe, Zbigniew
         Jędrzejewski-Szmek, Zeal Jagannatha
 
-        — Berlin, 2017-12-XX
+        — Berlin, 2017-12-14
 
 CHANGES WITH 235:
 
diff --git a/TODO b/TODO
index 9f8327ca283c4d6a6b00446a54496ee17e048620..b022b601ef3b7a56b4b7631643c941f6b7cba20c 100644 (file)
--- a/TODO
+++ b/TODO
@@ -24,6 +24,10 @@ Janitorial Clean-ups:
 
 Features:
 
+* implement transient socket unit.
+
+* make systemd-run create transient path and socket unit.
+
 * make use of ethtool veth peer info in machined, for automatically finding out
   host-side interface pointing to the container.
 
@@ -657,6 +661,11 @@ Features:
     Benefit: nspawn --ephemeral would start working nicely with the journal.
   - assign MESSAGE_ID to log messages about failed services
 
+* add a test if all entries in the catalog are properly formatted.
+    (Adding dashes in a catalog entry currently results in the catalog entry
+     being silently skipped. journalctl --update-catalog must warn about this,
+     and we should also have a unit test to check that all our message are OK.)
+
 * document:
   - document that deps in [Unit] sections ignore Alias= fields in
     [Install] units of other units, unless those units are disabled
index 17fe0604ec1d23a9e283ae88c146947f2db3f6a3..789ffe0dcfad3596fb9efccc906f443271764f69 100644 (file)
@@ -325,7 +325,7 @@ Most timer unit settings are available to transient units.
 ✓ OnStartupSec=
 ✓ OnUnitActiveSec=
 ✓ OnUnitInactiveSec=
-  Persistent=
+ Persistent=
 ✓ WakeSystem=
 ✓ RemainAfterElapse=
 ✓ AccuracySec=
@@ -421,17 +421,17 @@ Swap units are currently not available at all as transient units:
 
 ## Path Unit Settings
 
-Path units are currently not available at all as transient units:
+Most path unit settings are available to transient units.
 
 ```
-  PathExists=
-  PathExistsGlob=
-  PathChanged=
-  PathModified=
-  DirectoryNotEmpty=
+ PathExists=
+ PathExistsGlob=
+ PathChanged=
+ PathModified=
+ DirectoryNotEmpty=
   Unit=
-  MakeDirectory=
-  DirectoryMode=
+ MakeDirectory=
+ DirectoryMode=
 ```
 
 ## Install Section
index baebd45ea4fbda3f8de34d329a3dab2d7d9d6925..69f970388a9a83ea10ddef17cdc1f31eff6b31c1 100644 (file)
@@ -44,3 +44,7 @@ foreach file : in_files
                 install : true,
                 install_dir : catalogdir)
 endforeach
+
+meson.add_install_script('sh', '-c',
+                         'test -n "$DESTDIR" || @0@/journalctl --update-catalog'
+                         .format(rootbindir))
index c637af7ca2357eb4c95a11d337ce01620cff2c00..118fe860fe3ba31b35895d8f6e0083b5c4eca882 100644 (file)
@@ -201,7 +201,7 @@ Subject: System shutdown initiated
 Defined-By: systemd
 Support: %SUPPORT_URL%
 
-Systemd shutdown has been initiated. The shutdown has now begun and
+System shutdown has been initiated. The shutdown has now begun and
 all system services are terminated and all file systems unmounted.
 
 -- 7d4958e842da4a758f6c1cdc7b36dcc5
@@ -359,3 +359,20 @@ Defined-By: systemd
 Support: %SUPPORT_URL%
 
 The unit @UNIT@ completed and consumed the indicated resources.
+
+-- 50876a9db00f4c40bde1a2ad381c3a1b
+Subject: The system is configured in a way that might cause problems
+Defined-By: systemd
+Support: %SUPPORT_URL%
+
+The following "tags" are possible:
+- "split-usr" — /usr is a separate file system and was not mounted when systemd
+  was booted
+- "cgroups-missing" — the kernel was compiled without cgroup support or access
+  to expected interface files is resticted
+- "var-run-bad" — /var/run is not a symlink to /run
+- "overflowuid-not-65534" — the kernel user ID used for "unknown" users (with
+  NFS or user namespaces) is not 65534
+- "overflowgid-not-65534" — the kernel group ID used for "unknown" users (with
+  NFS or user namespaces) is not 65534
+Current system is tagged as @TAINT@.
index 36c87147a77357d3a1c3f944fb52cd2c8b01a0ff..6df3b00f3d9a1929811c05d312c9d86c60c5a2bf 100644 (file)
@@ -346,3 +346,21 @@ Defined-By: systemd
 Support: %SUPPORT_URL%
 
 L'unité (unit) @UNIT@ s'est arrêtée et a consommé les ressources indiquées.
+
+-- 50876a9db00f4c40bde1a2ad381c3a1b
+Subject: Le système est configuré d'une manière qui pourrait causer des problèmes
+Defined-By: systemd
+Support: %SUPPORT_URL%
+
+Les étiquettes suivantes sont possibles :
+- "split-usr" — /usr est un système de fichiers séparé et nétait pas
+  monté quand systemd a été démarré
+- "cgroups-missing" — le noyau a été compilé sans le support des groupes
+  de contrôle (cgroups) ou l'accès aux fichiers d'interface est restreint
+- "var-run-bad" — /var/run n'est pas un lien symbolique vers /run
+- "overflowuid-not-65534" — l'ID utilisé par le noyau pour l'utilisateur
+  "unknown" (avec NFS ou l'espace de noms utilisateurs) n'est pas 65534
+- "overflowgid-not-65534" — l'ID utilisé par le noyau pour le groupe
+  "unknown" (avec NFS ou l'espace de noms utilisateurs) n'est pas 65534
+
+Le présent système est étiqueté @TAINT@.
index 3641db2e66d8b173c5f26a8a5cdee61ed41e35d1..3352a59a271c2a7b9f663ae22e5f404ddfdf36bb 100644 (file)
@@ -49,7 +49,7 @@ Support: %SUPPORT_URL%
 
 @JOURNAL_NAME@ (@JOURNAL_PATH@) obecnie używa @CURRENT_USE_PRETTY@.
 Maksymalnie może używać @MAX_USE_PRETTY@.
-Zostawianie co najmniej @DISK_KEEP_FREE_PRETTY@ wolnego (z obecnie dostępnego @DISK_AVAILABLE_PRETTY@ miejsca na dysku).
+Zostawianie co najmniej @DISK_KEEP_FREE_PRETTY@ wolnego (z obecnie dostępnego @DISK_AVAILABLE_PRETTY@ miejsca na dysku).
 Wymuszone ograniczenie użycia wynosi więc @LIMIT_PRETTY@, z czego @AVAILABLE_PRETTY@ jest nadal dostępne.
 
 Ograniczenia kontrolujące ilość miejsca na dysku używanego przez dziennik
@@ -94,13 +94,13 @@ Zwykle wskazuje to na błąd programistyczny w danym programie i powinno zosta
 zgłoszone jego producentowi jako błąd.
 
 -- 5aadd8e954dc4b1a8c954d63fd9e1137
-Subject: Plik core został skrócony do @SIZE_LIMIT@ B.
+Subject: Plik core został skrócony do @SIZE_LIMIT@B.
 Defined-By: systemd
 Support: %SUPPORT_URL%
 Documentation: man:coredump.conf(5)
 
 Proces miał więcej zmapowanej pamięci niż maksimum dla przetwarzania i miejsca
-skonfigurowane przez systemd-coredump(8). Tylko pierwsze @SIZE_LIMIT@ B
+skonfigurowane przez systemd-coredump(8). Tylko pierwsze @SIZE_LIMIT@B
 zostało zapisanych. Ten plik core może nadal być używalny, ale narzędzia typu
 gdb(1) będą ostrzegały o skróceniu pliku.
 
@@ -144,7 +144,7 @@ Subject: Zmiana czasu
 Defined-By: systemd
 Support: %SUPPORT_URL%
 
-Zegar systemowy został zmieniony na @REALTIME@ μs po 1 stycznia 1970.
+Zegar systemowy został zmieniony na @REALTIME@μs po 1 stycznia 1970.
 
 -- 45f82f4aef7a4bbf942ce861d1f20990
 Subject: Zmiana strefy czasowej na @TIMEZONE@
@@ -163,11 +163,11 @@ uruchamiania systemu zostały uruchomione. Proszę zauważyć, że nie oznacza
 to, że komputer jest bezczynny, jako że usługi mogą wciąż kończyć proces
 uruchamiania.
 
-Uruchamianie jądra zajęło @KERNEL_USEC@ μs.
+Uruchamianie jądra zajęło @KERNEL_USEC@μs.
 
-Uruchamianie początkowego dysku RAM zajęło @INITRD_USEC@ μs.
+Uruchamianie początkowego dysku RAM zajęło @INITRD_USEC@μs.
 
-Uruchamianie przestrzeni użytkownika zajęło @USERSPACE_USEC@ μs.
+Uruchamianie przestrzeni użytkownika zajęło @USERSPACE_USEC@μs.
 
 -- eed00a68ffd84e31882105fd973abdd1
 Subject: Ukończono uruchamianie menedżera użytkownika
@@ -179,7 +179,7 @@ Wszystkie usługi zakolejkowane do włączenia zostały uruchomione.
 Proszę zauważyć, że inne usługi mogą być nadal uruchamiane
 lub zostać uruchomione później.
 
-Uruchamianie menedżera zajęło @USERSPACE_USEC@ μs.
+Uruchamianie menedżera zajęło @USERSPACE_USEC@μs.
 
 -- 6bbd95ee977941e497c48be27c254128
 Subject: Przejście do stanu uśpienia @SLEEP@
@@ -200,7 +200,7 @@ Subject: Zainicjowano wyłączenie systemu
 Defined-By: systemd
 Support: %SUPPORT_URL%
 
-Zainicjowano wyłączenie systemd. Wyłączenie zostało rozpoczęte i wszystkie
+Zainicjowano wyłączenie systemu. Wyłączenie zostało rozpoczęte i wszystkie
 usługi systemowe zostały zakończone, a wszystkie systemy plików odmontowane.
 
 -- 7d4958e842da4a758f6c1cdc7b36dcc5
@@ -353,3 +353,22 @@ Defined-By: systemd
 Support: %SUPPORT_URL%
 
 Jednostka @UNIT@ została ukończona, zużywając wskazane zasoby.
+
+-- 50876a9db00f4c40bde1a2ad381c3a1b
+Subject: System jest skonfigurowany w sposób, który może powodować problemy
+Defined-By: systemd
+Support: %SUPPORT_URL%
+
+Możliwe są następujące „etykiety”:
+• „split-usr” — /usr jest oddzielnym systemem plików, który nie był
+  zamontowany w czasie uruchomienia systemd,
+• „cgroups-missing” — jądro zostało skompilowane bez obsługi cgroups
+  lub dostęp do oczekiwanych plików interfejsu jest ograniczony,
+• „var-run-bad” — /var/run nie jest dowiązaniem symbolicznym do /run,
+• „overflowuid-not-65534” — identyfikator użytkownika dla „nieznanych”
+  użytkowników (przy wykorzystaniu przestrzeni nazw użytkowników lub NFS)
+  nie wynosi 65534,
+• „overflowgid-not-65534” — identyfikator grupy dla „nieznanych”
+  użytkowników (przy wykorzystaniu przestrzeni nazw użytkowników lub NFS)
+  nie wynosi 65534.
+Obecny system ma etykietę „@TAINT@”.
index 25ee6acfbafcce4e801835eb7ede9a876bb54d3a..be6410b508f93be69beaa53f41e871c6741413ba 100644 (file)
@@ -396,3 +396,24 @@ Defined-By: systemd
 Support: %SUPPORT_URL%
 
 Юнит @UNIT@ завершен. Приводится статистика по потребленным им ресурсам.
+
+# Subject: The system is configured in a way that might cause problems
+-- 50876a9db00f4c40bde1a2ad381c3a1b
+Subject: Выявлены потенциальные проблемы в конфигурации системы
+Defined-By: systemd
+Support: %SUPPORT_URL%
+
+Перечень всех возможных меток, указывающих на проблемы конфигурации:
+- "split-usr" — каталог /usr расположен на отдельной файловой системе,
+  которая не была смонтирована на момент запуска systemd
+- "cgroups-missing" — ядро собрано без поддержки контрольных групп, либо
+  отсутствуют права для доступа к интерфейсным файлам контрольных групп
+- "var-run-bad" — /var/run не является символьной ссылкой на /run
+- "overflowuid-not-65534" — используемый ядром UID для "неизвестных"
+  пользователей (применяется в NFS и пространствах имен пользователей)
+  не равен 65534
+- "overflowgid-not-65534" — используемый ядром GID для "неизвестных"
+  пользователей (применяется в NFS и пространствах имен пользователей)
+  не равен 65534
+
+В вашей системе присутствуют следующие проблемы: @TAINT@.
diff --git a/coccinelle/const-strlen.cocci b/coccinelle/const-strlen.cocci
new file mode 100644 (file)
index 0000000..38bf9b1
--- /dev/null
@@ -0,0 +1,10 @@
+@@
+constant s;
+@@
+- sizeof(s)-1
++ STRLEN(s)
+@@
+constant s;
+@@
+- strlen(s)
++ STRLEN(s)
diff --git a/coccinelle/debug-logging.cocci b/coccinelle/debug-logging.cocci
new file mode 100644 (file)
index 0000000..9084cf7
--- /dev/null
@@ -0,0 +1,8 @@
+@@
+@@
+- _unlikely_(log_get_max_level() >= LOG_DEBUG)
++ DEBUG_LOGGING
+@@
+@@
+- log_get_max_level() >= LOG_DEBUG
++ DEBUG_LOGGING
diff --git a/coccinelle/equals-null.cocci b/coccinelle/equals-null.cocci
new file mode 100644 (file)
index 0000000..957d828
--- /dev/null
@@ -0,0 +1,14 @@
+@@
+expression e;
+statement s;
+@@
+- if (e == NULL)
++ if (!e)
+s
+@@
+expression e;
+statement s;
+@@
+- if (e != NULL)
++ if (e)
+s
index 1374ee40d75f5f953183bf02f5e7b3304f300d72..d8d52758892e8e0735d256bc3ae30ccec906b6e3 100644 (file)
@@ -6,10 +6,55 @@ expression s;
 @@
 expression s;
 @@
+- strv_length(s) <= 0
++ strv_isempty(s)
+@@
+expression s;
+@@
+- strv_length(s) > 0
++ !strv_isempty(s)
+@@
+expression s;
+@@
+- strv_length(s) != 0
++ !strv_isempty(s)
+@@
+expression s;
+@@
 - strlen(s) == 0
 + isempty(s)
 @@
 expression s;
 @@
+- strlen(s) <= 0
++ isempty(s)
+@@
+expression s;
+@@
+- strlen(s) > 0
++ !isempty(s)
+@@
+expression s;
+@@
+- strlen(s) != 0
++ !isempty(s)
+@@
+expression s;
+@@
 - strlen_ptr(s) == 0
 + isempty(s)
+@@
+expression s;
+@@
+- strlen_ptr(s) <= 0
++ isempty(s)
+@@
+expression s;
+@@
+- strlen_ptr(s) > 0
++ !isempty(s)
+@@
+expression s;
+@@
+- strlen_ptr(s) != 0
++ !isempty(s)
diff --git a/coccinelle/memzero.cocci b/coccinelle/memzero.cocci
new file mode 100644 (file)
index 0000000..ebdc3f6
--- /dev/null
@@ -0,0 +1,30 @@
+@@
+expression s;
+@@
+- memset(&s, 0, sizeof(s))
++ zero(s)
+@@
+expression s;
+@@
+- memset(s, 0, sizeof(*s))
++ zero(*s)
+@@
+expression s;
+@@
+- bzero(&s, sizeof(s))
++ zero(s)
+@@
+expression s;
+@@
+- bzero(s, sizeof(*s))
++ zero(*s)
+@@
+expression a, b;
+@@
+- memset(a, 0, b)
++ memzero(a, b)
+@@
+expression a, b;
+@@
+- bzero(a, b)
++ memzero(a, b)
index 1eec2977b728dfc8ffe3fec6d7f839cb19e68616..20d168c488ffe32af5efb359fcdb92b3855de6f8 100644 (file)
@@ -1329,7 +1329,7 @@ OUI:0001B8*
  ID_OUI_FROM_DATABASE=Netsensity, Inc.
 
 OUI:0001B9*
- ID_OUI_FROM_DATABASE=SKF Condition Monitoring
+ ID_OUI_FROM_DATABASE=SKF (U.K.) Limited
 
 OUI:0001BA*
  ID_OUI_FROM_DATABASE=IC-Net, Inc.
@@ -2763,7 +2763,7 @@ OUI:000396*
  ID_OUI_FROM_DATABASE=EZ Cast Co., Ltd.
 
 OUI:000397*
- ID_OUI_FROM_DATABASE=Watchfront Limited
+ ID_OUI_FROM_DATABASE=FireBrick Limited
 
 OUI:000398*
  ID_OUI_FROM_DATABASE=WISI
@@ -6480,7 +6480,7 @@ OUI:000888*
  ID_OUI_FROM_DATABASE=OULLIM Information Technology Inc,.
 
 OUI:000889*
- ID_OUI_FROM_DATABASE=Echostar Technologies Corp
+ ID_OUI_FROM_DATABASE=Dish Technologies Corp
 
 OUI:00088A*
  ID_OUI_FROM_DATABASE=Minds@Work
@@ -14916,7 +14916,7 @@ OUI:001385*
  ID_OUI_FROM_DATABASE=Add-On Technology Co., LTD.
 
 OUI:001386*
- ID_OUI_FROM_DATABASE=ABB Inc./Totalflow
+ ID_OUI_FROM_DATABASE=ABB Inc/Totalflow
 
 OUI:001387*
  ID_OUI_FROM_DATABASE=27M Technologies AB
@@ -21906,10 +21906,10 @@ OUI:001BD7*
  ID_OUI_FROM_DATABASE=Cisco SPVTG
 
 OUI:001BD8*
- ID_OUI_FROM_DATABASE=DVTel LTD
+ ID_OUI_FROM_DATABASE=FLIR Systems Inc
 
 OUI:001BD9*
- ID_OUI_FROM_DATABASE=Edgewater Computer Systems
+ ID_OUI_FROM_DATABASE=Edgewater Wireless Systems Inc
 
 OUI:001BDA*
  ID_OUI_FROM_DATABASE=UTStarcom Inc
@@ -28686,7 +28686,7 @@ OUI:0024AE*
  ID_OUI_FROM_DATABASE=Morpho
 
 OUI:0024AF*
- ID_OUI_FROM_DATABASE=Echostar Technologies Corp
+ ID_OUI_FROM_DATABASE=Dish Technologies Corp
 
 OUI:0024B0*
  ID_OUI_FROM_DATABASE=ESAB AB
@@ -30590,6 +30590,9 @@ OUI:002D76*
 OUI:002EC7*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
+OUI:002FD9*
+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
+
 OUI:003000*
  ID_OUI_FROM_DATABASE=ALLWELL TECHNOLOGY CORP.
 
@@ -31427,12 +31430,18 @@ OUI:003A9D*
 OUI:003AAF*
  ID_OUI_FROM_DATABASE=BlueBit Ltd.
 
+OUI:003C10*
+ ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+
 OUI:003CC5*
  ID_OUI_FROM_DATABASE=WONWOO Engineering Co., Ltd
 
 OUI:003D41*
  ID_OUI_FROM_DATABASE=Hatteland Computer AS
 
+OUI:003DE8*
+ ID_OUI_FROM_DATABASE=LG Electronics (Mobile Communications)
+
 OUI:003EE1*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
@@ -33878,6 +33887,9 @@ OUI:0070B0*
 OUI:0070B3*
  ID_OUI_FROM_DATABASE=DATA RECALL LTD.
 
+OUI:007147*
+ ID_OUI_FROM_DATABASE=Amazon Technologies Inc.
+
 OUI:0071C2*
  ID_OUI_FROM_DATABASE=PEGATRON CORPORATION
 
@@ -36198,7 +36210,7 @@ OUI:00A0D4*
  ID_OUI_FROM_DATABASE=RADIOLAN,  INC.
 
 OUI:00A0D5*
- ID_OUI_FROM_DATABASE=SIERRA WIRELESS INC.
+ ID_OUI_FROM_DATABASE=Sierra Wireless Inc
 
 OUI:00A0D6*
  ID_OUI_FROM_DATABASE=SBE, Inc.
@@ -36551,6 +36563,9 @@ OUI:00BD3A*
 OUI:00BD82*
  ID_OUI_FROM_DATABASE=Shenzhen YOUHUA Technology Co., Ltd
 
+OUI:00BE75*
+ ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+
 OUI:00BE9E*
  ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
 
@@ -36560,6 +36575,9 @@ OUI:00BF15*
 OUI:00BF61*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
+OUI:00BF77*
+ ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+
 OUI:00C000*
  ID_OUI_FROM_DATABASE=LANOPTICS, LTD.
 
@@ -37989,7 +38007,7 @@ OUI:00D0CD*
  ID_OUI_FROM_DATABASE=ATAN TECHNOLOGY INC.
 
 OUI:00D0CE*
- ID_OUI_FROM_DATABASE=ASYST ELECTRONIC
+ ID_OUI_FROM_DATABASE=iSystem Labs
 
 OUI:00D0CF*
  ID_OUI_FROM_DATABASE=MORETON BAY
@@ -39143,6 +39161,9 @@ OUI:0403D6*
 OUI:0404EA*
  ID_OUI_FROM_DATABASE=Valens Semiconductor Ltd.
 
+OUI:040973*
+ ID_OUI_FROM_DATABASE=Hewlett Packard Enterprise
+
 OUI:040A83*
  ID_OUI_FROM_DATABASE=Alcatel-Lucent
 
@@ -39272,6 +39293,9 @@ OUI:044E06*
 OUI:044E5A*
  ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
 
+OUI:044EAF*
+ ID_OUI_FROM_DATABASE=LG Innotek
+
 OUI:044F17*
  ID_OUI_FROM_DATABASE=HUMAX Co., Ltd.
 
@@ -39425,6 +39449,9 @@ OUI:04766E*
 OUI:047863*
  ID_OUI_FROM_DATABASE=Shanghai MXCHIP Information Technology Co., Ltd.
 
+OUI:047970*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:047D50*
  ID_OUI_FROM_DATABASE=Shenzhen Kang Ying Technology Co.Ltd.
 
@@ -39512,6 +39539,9 @@ OUI:04A3F3*
 OUI:04A82A*
  ID_OUI_FROM_DATABASE=Nokia Corporation
 
+OUI:04AC44*
+ ID_OUI_FROM_DATABASE=Holtek Semiconductor Inc.
+
 OUI:04B0E7*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
@@ -39563,6 +39593,9 @@ OUI:04C1B9*
 OUI:04C23E*
  ID_OUI_FROM_DATABASE=HTC Corporation
 
+OUI:04C241*
+ ID_OUI_FROM_DATABASE=Nokia
+
 OUI:04C5A4*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -39573,7 +39606,7 @@ OUI:04C991*
  ID_OUI_FROM_DATABASE=Phistek INC.
 
 OUI:04C9D9*
- ID_OUI_FROM_DATABASE=Echostar Technologies Corp
+ ID_OUI_FROM_DATABASE=Dish Technologies Corp
 
 OUI:04CB1D*
  ID_OUI_FROM_DATABASE=Traka plc
@@ -39584,6 +39617,9 @@ OUI:04CE14*
 OUI:04CF25*
  ID_OUI_FROM_DATABASE=MANYCOLORS, INC.
 
+OUI:04D13A*
+ ID_OUI_FROM_DATABASE=Xiaomi Communications Co Ltd
+
 OUI:04D3CF*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
@@ -39647,6 +39683,9 @@ OUI:04E676*
 OUI:04E9E5*
  ID_OUI_FROM_DATABASE=PJRC.COM, LLC
 
+OUI:04ECBB*
+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
+
 OUI:04EE91*
  ID_OUI_FROM_DATABASE=x-fabric GmbH
 
@@ -40187,6 +40226,9 @@ OUI:08184C*
 OUI:0819A6*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
+OUI:081DC4*
+ ID_OUI_FROM_DATABASE=Thermo Fisher Scientific Messtechnik GmbH
+
 OUI:081DFB*
  ID_OUI_FROM_DATABASE=Shanghai Mexon Communication Technology Co.,Ltd
 
@@ -40553,6 +40595,9 @@ OUI:08E5DA*
 OUI:08E672*
  ID_OUI_FROM_DATABASE=JEBSEE ELECTRONICS CO.,LTD.
 
+OUI:08E689*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:08E84F*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
@@ -40667,6 +40712,9 @@ OUI:0C0400*
 OUI:0C0535*
  ID_OUI_FROM_DATABASE=Juniper Systems
 
+OUI:0C08B4*
+ ID_OUI_FROM_DATABASE=HUMAX Co., Ltd.
+
 OUI:0C1105*
  ID_OUI_FROM_DATABASE=Ringslink (Xiamen) Network Communication Technologies Co., Ltd
 
@@ -40709,6 +40757,9 @@ OUI:0C1DC2*
 OUI:0C2026*
  ID_OUI_FROM_DATABASE=noax Technologies AG
 
+OUI:0C2369*
+ ID_OUI_FROM_DATABASE=Honeywell SPS
+
 OUI:0C2576*
  ID_OUI_FROM_DATABASE=LONGCHEER TELECOMMUNICATION LIMITED
 
@@ -40754,6 +40805,9 @@ OUI:0C3E9F*
 OUI:0C413E*
  ID_OUI_FROM_DATABASE=Microsoft Corporation
 
+OUI:0C41E9*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:0C45BA*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
@@ -40793,6 +40847,9 @@ OUI:0C51F7*
 OUI:0C5203*
  ID_OUI_FROM_DATABASE=AGM GROUP LIMITED
 
+OUI:0C5415*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
 OUI:0C54A5*
  ID_OUI_FROM_DATABASE=PEGATRON CORPORATION
 
@@ -40835,12 +40892,18 @@ OUI:0C6127*
 OUI:0C61CF*
  ID_OUI_FROM_DATABASE=Texas Instruments
 
+OUI:0C62A6*
+ ID_OUI_FROM_DATABASE=Hui Zhou Gaoshengda Technology Co.,LTD
+
 OUI:0C63FC*
  ID_OUI_FROM_DATABASE=Nanjing Signway Technology Co., Ltd
 
 OUI:0C6803*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
+OUI:0C6ABC*
+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
+
 OUI:0C6AE6*
  ID_OUI_FROM_DATABASE=Stanley Security Solutions
 
@@ -40850,6 +40913,9 @@ OUI:0C6E4F*
 OUI:0C6F9C*
  ID_OUI_FROM_DATABASE=Shaw Communications Inc.
 
+OUI:0C704A*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:0C715D*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
@@ -40913,6 +40979,9 @@ OUI:0C8910*
 OUI:0C8A87*
  ID_OUI_FROM_DATABASE=AgLogica Holdings, Inc
 
+OUI:0C8BD3*
+ ID_OUI_FROM_DATABASE=ITEL MOBILE LIMITED
+
 OUI:0C8BFD*
  ID_OUI_FROM_DATABASE=Intel Corporate
 
@@ -40979,6 +41048,9 @@ OUI:0CA8A7*
 OUI:0CAC05*
  ID_OUI_FROM_DATABASE=Unitend Technologies Inc.
 
+OUI:0CAE7D*
+ ID_OUI_FROM_DATABASE=Texas Instruments
+
 OUI:0CAF5A*
  ID_OUI_FROM_DATABASE=GENUS POWER INFRASTRUCTURES LIMITED
 
@@ -41036,6 +41108,9 @@ OUI:0CC66A*
 OUI:0CC6AC*
  ID_OUI_FROM_DATABASE=DAGS
 
+OUI:0CC6CC*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:0CC731*
  ID_OUI_FROM_DATABASE=Currant, Inc.
 
@@ -41186,6 +41261,9 @@ OUI:0CF019*
 OUI:0CF0B4*
  ID_OUI_FROM_DATABASE=Globalsat International Technology Ltd
 
+OUI:0CF346*
+ ID_OUI_FROM_DATABASE=Xiaomi Communications Co Ltd
+
 OUI:0CF361*
  ID_OUI_FROM_DATABASE=Java Information
 
@@ -41352,7 +41430,7 @@ OUI:101C0C*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
 OUI:101D51*
- ID_OUI_FROM_DATABASE=ON-Q LLC dba ON-Q Mesh Networks
+ ID_OUI_FROM_DATABASE=8Mesh Networks
 
 OUI:101DC0*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
@@ -41594,6 +41672,9 @@ OUI:109FA9*
 OUI:10A13B*
  ID_OUI_FROM_DATABASE=FUJIKURA RUBBER LTD.
 
+OUI:10A4B9*
+ ID_OUI_FROM_DATABASE=Baidu Online Network Technology (Beijing) Co., Ltd
+
 OUI:10A4BE*
  ID_OUI_FROM_DATABASE=SHENZHEN BILIAN ELECTRONIC CO.,LTD
 
@@ -41648,6 +41729,9 @@ OUI:10BF48*
 OUI:10C07C*
  ID_OUI_FROM_DATABASE=Blu-ray Disc Association
 
+OUI:10C25A*
+ ID_OUI_FROM_DATABASE=Technicolor CH USA Inc.
+
 OUI:10C2BA*
  ID_OUI_FROM_DATABASE=UTT Co., Ltd.
 
@@ -41738,6 +41822,9 @@ OUI:10E68F*
 OUI:10E6AE*
  ID_OUI_FROM_DATABASE=Source Technologies, LLC
 
+OUI:10E7C6*
+ ID_OUI_FROM_DATABASE=Hewlett Packard
+
 OUI:10E878*
  ID_OUI_FROM_DATABASE=Nokia
 
@@ -41774,6 +41861,9 @@ OUI:10F681*
 OUI:10F96F*
  ID_OUI_FROM_DATABASE=LG Electronics (Mobile Communications)
 
+OUI:10F9EB*
+ ID_OUI_FROM_DATABASE=Industria Fueguina de Relojería Electrónica s.a.
+
 OUI:10F9EE*
  ID_OUI_FROM_DATABASE=Nokia Corporation
 
@@ -42008,6 +42098,9 @@ OUI:144C1A*
 OUI:144D67*
  ID_OUI_FROM_DATABASE=Zioncom Electronics (Shenzhen) Ltd.
 
+OUI:144E34*
+ ID_OUI_FROM_DATABASE=Remote Solution
+
 OUI:144FD70*
  ID_OUI_FROM_DATABASE=annapurnalabs
 
@@ -42101,6 +42194,9 @@ OUI:146A0B*
 OUI:146B72*
  ID_OUI_FROM_DATABASE=Shenzhen Fortune Ship Technology Co., Ltd.
 
+OUI:146B9C*
+ ID_OUI_FROM_DATABASE=SHENZHEN BILIAN ELECTRONIC CO.,LTD
+
 OUI:146E0A*
  ID_OUI_FROM_DATABASE=Private
 
@@ -42197,6 +42293,9 @@ OUI:14A51A*
 OUI:14A62C*
  ID_OUI_FROM_DATABASE=S.M. Dezac S.A.
 
+OUI:14A72B*
+ ID_OUI_FROM_DATABASE=currentoptronics Pvt.Ltd
+
 OUI:14A78B*
  ID_OUI_FROM_DATABASE=Zhejiang Dahua Technology Co., Ltd.
 
@@ -42383,6 +42482,9 @@ OUI:180C77*
 OUI:180CAC*
  ID_OUI_FROM_DATABASE=CANON INC.
 
+OUI:180F76*
+ ID_OUI_FROM_DATABASE=D-Link International
+
 OUI:18104E*
  ID_OUI_FROM_DATABASE=CEDINT-UPM
 
@@ -42458,6 +42560,9 @@ OUI:182D98*
 OUI:183009*
  ID_OUI_FROM_DATABASE=Woojin Industrial Systems Co., Ltd.
 
+OUI:1831BF*
+ ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC.
+
 OUI:1832A2*
  ID_OUI_FROM_DATABASE=LAON TECHNOLOGY CO., LTD.
 
@@ -42521,12 +42626,18 @@ OUI:1848D8*
 OUI:184A6F*
  ID_OUI_FROM_DATABASE=Alcatel-Lucent Shanghai Bell Co., Ltd
 
+OUI:184C08*
+ ID_OUI_FROM_DATABASE=Rockwell Automation
+
 OUI:184E94*
  ID_OUI_FROM_DATABASE=MESSOA TECHNOLOGIES INC.
 
 OUI:184F32*
  ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd.
 
+OUI:18502A*
+ ID_OUI_FROM_DATABASE=SOARNEX
+
 OUI:185207*
  ID_OUI_FROM_DATABASE=SICHUAN TIANYI COMHEART TELECOMCO., LTD
 
@@ -42686,6 +42797,9 @@ OUI:18922C*
 OUI:1893D7*
  ID_OUI_FROM_DATABASE=Texas Instruments
 
+OUI:1894C6*
+ ID_OUI_FROM_DATABASE=ShenZhen Chenyee Technology Co., Ltd.
+
 OUI:1897FF*
  ID_OUI_FROM_DATABASE=TechFaith Wireless Technology Limited
 
@@ -42746,6 +42860,9 @@ OUI:189C5D*
 OUI:189EFC*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
+OUI:18A28A*
+ ID_OUI_FROM_DATABASE=Essel-T Co., Ltd
+
 OUI:18A3E8*
  ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
 
@@ -42956,6 +43073,9 @@ OUI:1C0FAF*
 OUI:1C0FCF*
  ID_OUI_FROM_DATABASE=Sypro Optics GmbH
 
+OUI:1C1161*
+ ID_OUI_FROM_DATABASE=Ciena Corporation
+
 OUI:1C11E1*
  ID_OUI_FROM_DATABASE=Wartsila Finland Oy
 
@@ -43514,6 +43634,9 @@ OUI:1C9E46*
 OUI:1C9ECB*
  ID_OUI_FROM_DATABASE=Beijing Nari Smartchip Microelectronics Company Limited
 
+OUI:1CA0B8*
+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co., Ltd.
+
 OUI:1CA0D30*
  ID_OUI_FROM_DATABASE=OOO Tekhnotronika
 
@@ -43592,6 +43715,9 @@ OUI:1CAF05*
 OUI:1CAFF7*
  ID_OUI_FROM_DATABASE=D-Link International
 
+OUI:1CB044*
+ ID_OUI_FROM_DATABASE=ASKEY COMPUTER CORP
+
 OUI:1CB094*
  ID_OUI_FROM_DATABASE=HTC Corporation
 
@@ -43844,6 +43970,9 @@ OUI:200CC8*
 OUI:200E95*
  ID_OUI_FROM_DATABASE=IEC – TC9 WG43
 
+OUI:200F70*
+ ID_OUI_FROM_DATABASE=FOXTECH
+
 OUI:20107A*
  ID_OUI_FROM_DATABASE=Gemtek Technology Co., Ltd.
 
@@ -43889,12 +44018,18 @@ OUI:202CB7*
 OUI:202D07*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
+OUI:202D23*
+ ID_OUI_FROM_DATABASE=Collinear Networks Inc.
+
 OUI:202DF8*
  ID_OUI_FROM_DATABASE=Digital Media Cartridge Ltd.
 
 OUI:2031EB*
  ID_OUI_FROM_DATABASE=HDSN
 
+OUI:20365B*
+ ID_OUI_FROM_DATABASE=Megafone Limited
+
 OUI:203706*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -44009,6 +44144,9 @@ OUI:20635F*
 OUI:206432*
  ID_OUI_FROM_DATABASE=SAMSUNG ELECTRO MECHANICS CO., LTD.
 
+OUI:20677C*
+ ID_OUI_FROM_DATABASE=Hewlett Packard Enterprise
+
 OUI:2067B1*
  ID_OUI_FROM_DATABASE=Pluto inc.
 
@@ -44339,6 +44477,9 @@ OUI:240995*
 OUI:240A11*
  ID_OUI_FROM_DATABASE=TCT mobile ltd
 
+OUI:240A63*
+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
+
 OUI:240A64*
  ID_OUI_FROM_DATABASE=AzureWave Technology Inc.
 
@@ -44375,6 +44516,9 @@ OUI:241148*
 OUI:2411D0*
  ID_OUI_FROM_DATABASE=Chongqing Ehs Science and Technology Development Co.,Ltd.
 
+OUI:24181D*
+ ID_OUI_FROM_DATABASE=SAMSUNG ELECTRO-MECHANICS(THAILAND)
+
 OUI:241A8C*
  ID_OUI_FROM_DATABASE=Squarehead Technology AS
 
@@ -44408,6 +44552,9 @@ OUI:24240E*
 OUI:242642*
  ID_OUI_FROM_DATABASE=SHARP Corporation.
 
+OUI:2429FE*
+ ID_OUI_FROM_DATABASE=KYOCERA Corporation
+
 OUI:242FFA*
  ID_OUI_FROM_DATABASE=Toshiba Global Commerce Solutions
 
@@ -44585,6 +44732,9 @@ OUI:24792A*
 OUI:247C4C*
  ID_OUI_FROM_DATABASE=Herman Miller
 
+OUI:247E12*
+ ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+
 OUI:247F20*
  ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
 
@@ -44744,6 +44894,9 @@ OUI:24C9A1*
 OUI:24C9DE*
  ID_OUI_FROM_DATABASE=Genoray
 
+OUI:24CACB*
+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
+
 OUI:24CBE7*
  ID_OUI_FROM_DATABASE=MYK, Inc.
 
@@ -44852,6 +45005,9 @@ OUI:24FD52*
 OUI:24FD5B*
  ID_OUI_FROM_DATABASE=SmartThings, Inc.
 
+OUI:2802D8*
+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+
 OUI:2804E0*
  ID_OUI_FROM_DATABASE=FERMAX ELECTRONICA S.A.U.
 
@@ -44942,18 +45098,42 @@ OUI:282C021*
 OUI:282C022*
  ID_OUI_FROM_DATABASE=Shenzhen emb-star technology co. LTD
 
+OUI:282C023*
+ ID_OUI_FROM_DATABASE=Dexin Digital Technology Corp. Ltd.
+
+OUI:282C024*
+ ID_OUI_FROM_DATABASE=EFENTO T P SZYDŁOWSKI K ZARĘBA SPÓŁKA JAWNA
+
+OUI:282C025*
+ ID_OUI_FROM_DATABASE=LLC MICROTEH
+
 OUI:282C026*
  ID_OUI_FROM_DATABASE=Lookman Electroplast Industries Ltd
 
 OUI:282C027*
  ID_OUI_FROM_DATABASE=Telecom and Microelectonic Industries
 
+OUI:282C028*
+ ID_OUI_FROM_DATABASE=Shenzhen Neoway Technology Co.,Ltd.
+
 OUI:282C029*
  ID_OUI_FROM_DATABASE=Systec Intelligent Building Technology (Tianjin) Co.,Ltd.
 
+OUI:282C02A*
+ ID_OUI_FROM_DATABASE=Tokin Limited
+
+OUI:282C02B*
+ ID_OUI_FROM_DATABASE=ThirdReality, Inc
+
 OUI:282C02C*
  ID_OUI_FROM_DATABASE=Epoch International Enterprises, Inc.
 
+OUI:282C02D*
+ ID_OUI_FROM_DATABASE=SHENZHEN DOMENOR TECHNOLOGY LLC
+
+OUI:282C02E*
+ ID_OUI_FROM_DATABASE=Capintec, Inc.
+
 OUI:282CB2*
  ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD.
 
@@ -45038,6 +45218,9 @@ OUI:28395E*
 OUI:2839E7*
  ID_OUI_FROM_DATABASE=Preceno Technology Pte.Ltd.
 
+OUI:283B82*
+ ID_OUI_FROM_DATABASE=D-Link International
+
 OUI:283B96*
  ID_OUI_FROM_DATABASE=Cool Control LTD
 
@@ -45090,7 +45273,7 @@ OUI:2856C1*
  ID_OUI_FROM_DATABASE=Harman International
 
 OUI:285767*
- ID_OUI_FROM_DATABASE=Echostar Technologies Corp
+ ID_OUI_FROM_DATABASE=Dish Technologies Corp
 
 OUI:2857BE*
  ID_OUI_FROM_DATABASE=Hangzhou Hikvision Digital Technology Co.,Ltd.
@@ -45914,6 +46097,9 @@ OUI:2C5FF3*
 OUI:2C600C*
  ID_OUI_FROM_DATABASE=QUANTA COMPUTER INC.
 
+OUI:2C61F6*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:2C625A*
  ID_OUI_FROM_DATABASE=Finest Security Systems Co., Ltd
 
@@ -46043,6 +46229,9 @@ OUI:2C922C*
 OUI:2C9464*
  ID_OUI_FROM_DATABASE=Cincoze Co., Ltd.
 
+OUI:2C9569*
+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
+
 OUI:2C957F*
  ID_OUI_FROM_DATABASE=zte corporation
 
@@ -46229,6 +46418,9 @@ OUI:2CD2E7*
 OUI:2CD444*
  ID_OUI_FROM_DATABASE=FUJITSU LIMITED
 
+OUI:2CD974*
+ ID_OUI_FROM_DATABASE=Hui Zhou Gaoshengda Technology Co.,LTD
+
 OUI:2CDCAD*
  ID_OUI_FROM_DATABASE=Wistron Neweb Corporation
 
@@ -46349,6 +46541,9 @@ OUI:301966*
 OUI:301A28*
  ID_OUI_FROM_DATABASE=Mako Networks Ltd
 
+OUI:301F9A*
+ ID_OUI_FROM_DATABASE=IEEE Registration Authority
+
 OUI:30215B*
  ID_OUI_FROM_DATABASE=Shenzhen Ostar Display Electronic Co.,Ltd
 
@@ -46412,6 +46607,9 @@ OUI:304487*
 OUI:3044A1*
  ID_OUI_FROM_DATABASE=Shanghai Nanchao Information Technology
 
+OUI:304511*
+ ID_OUI_FROM_DATABASE=Texas Instruments
+
 OUI:30469A*
  ID_OUI_FROM_DATABASE=NETGEAR
 
@@ -46511,6 +46709,9 @@ OUI:30786B*
 OUI:3078C2*
  ID_OUI_FROM_DATABASE=Innowireless, Co. Ltd.
 
+OUI:307BAC*
+ ID_OUI_FROM_DATABASE=New H3C Technologies Co., Ltd
+
 OUI:307C30*
  ID_OUI_FROM_DATABASE=RIM
 
@@ -46605,7 +46806,7 @@ OUI:30B164*
  ID_OUI_FROM_DATABASE=Power Electronics International Inc.
 
 OUI:30B216*
- ID_OUI_FROM_DATABASE=Hytec Geraetebau GmbH
+ ID_OUI_FROM_DATABASE=ABB AG - Power Grids - Grid Automation
 
 OUI:30B3A2*
  ID_OUI_FROM_DATABASE=Shenzhen Heguang Measurement & Control Technology Co.,Ltd
@@ -46628,6 +46829,9 @@ OUI:30B62D*
 OUI:30B64F*
  ID_OUI_FROM_DATABASE=Juniper Networks
 
+OUI:30B7D4*
+ ID_OUI_FROM_DATABASE=Hitron Technologies. Inc
+
 OUI:30C01B*
  ID_OUI_FROM_DATABASE=Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd
 
@@ -46745,6 +46949,9 @@ OUI:30FC68*
 OUI:30FD11*
  ID_OUI_FROM_DATABASE=MACROTECH (USA) INC.
 
+OUI:30FD38*
+ ID_OUI_FROM_DATABASE=Google, Inc.
+
 OUI:30FE31*
  ID_OUI_FROM_DATABASE=Nokia
 
@@ -46805,6 +47012,9 @@ OUI:340286*
 OUI:34029B*
  ID_OUI_FROM_DATABASE=CloudBerry Technologies Private Limited
 
+OUI:3403DE*
+ ID_OUI_FROM_DATABASE=Texas Instruments
+
 OUI:34049E0*
  ID_OUI_FROM_DATABASE=GoChip Inc.
 
@@ -47066,6 +47276,9 @@ OUI:3456FE*
 OUI:345760*
  ID_OUI_FROM_DATABASE=MitraStar Technology Corp.
 
+OUI:345A06*
+ ID_OUI_FROM_DATABASE=SHARP Corporation
+
 OUI:345B11*
  ID_OUI_FROM_DATABASE=EVI HEAT AB
 
@@ -47135,9 +47348,18 @@ OUI:3478D7*
 OUI:347A60*
  ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
 
+OUI:347C25*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:347E39*
  ID_OUI_FROM_DATABASE=Nokia Danmark A/S
 
+OUI:347E5C*
+ ID_OUI_FROM_DATABASE=Sonos, Inc.
+
+OUI:347ECA*
+ ID_OUI_FROM_DATABASE=NEXTWILL
+
 OUI:3480B3*
  ID_OUI_FROM_DATABASE=Xiaomi Communications Co Ltd
 
@@ -47411,6 +47633,9 @@ OUI:34D270*
 OUI:34D2C4*
  ID_OUI_FROM_DATABASE=RENA GmbH Print Systeme
 
+OUI:34D712*
+ ID_OUI_FROM_DATABASE=Smartisan Digital Co., Ltd
+
 OUI:34D7B4*
  ID_OUI_FROM_DATABASE=Tributary Systems, Inc.
 
@@ -47849,9 +48074,15 @@ OUI:3876CA*
 OUI:3876D1*
  ID_OUI_FROM_DATABASE=Euronda SpA
 
+OUI:387862*
+ ID_OUI_FROM_DATABASE=Sony Mobile Communications AB
+
 OUI:387B47*
  ID_OUI_FROM_DATABASE=AKELA, Inc.
 
+OUI:3880DF*
+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC, a Lenovo Company
+
 OUI:388345*
  ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD.
 
@@ -48080,9 +48311,15 @@ OUI:38DBBB*
 OUI:38DE60*
  ID_OUI_FROM_DATABASE=Mohlenhoff GmbH
 
+OUI:38DEAD*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
 OUI:38E08E*
  ID_OUI_FROM_DATABASE=Mitsubishi Electric Corporation
 
+OUI:38E1AA*
+ ID_OUI_FROM_DATABASE=zte corporation
+
 OUI:38E2DD*
  ID_OUI_FROM_DATABASE=zte corporation
 
@@ -48092,6 +48329,9 @@ OUI:38E3C5*
 OUI:38E595*
  ID_OUI_FROM_DATABASE=SHENZHEN GONGJIN ELECTRONICS CO.,LT
 
+OUI:38E60A*
+ ID_OUI_FROM_DATABASE=Xiaomi Communications Co Ltd
+
 OUI:38E7D8*
  ID_OUI_FROM_DATABASE=HTC Corporation
 
@@ -48131,6 +48371,9 @@ OUI:38F23E*
 OUI:38F33F*
  ID_OUI_FROM_DATABASE=TATSUNO CORPORATION
 
+OUI:38F554*
+ ID_OUI_FROM_DATABASE=HISENSE ELECTRIC CO.,LTD
+
 OUI:38F557*
  ID_OUI_FROM_DATABASE=JOLATA, INC.
 
@@ -48212,6 +48455,9 @@ OUI:38FF36*
 OUI:3C02B1*
  ID_OUI_FROM_DATABASE=Creation Technologies LP
 
+OUI:3C0461*
+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
+
 OUI:3C04BF*
  ID_OUI_FROM_DATABASE=PRAVIS SYSTEMS Co.Ltd.,
 
@@ -48266,6 +48512,9 @@ OUI:3C15C2*
 OUI:3C15EA*
  ID_OUI_FROM_DATABASE=TESCOM CO., LTD.
 
+OUI:3C1710*
+ ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
+
 OUI:3C189F*
  ID_OUI_FROM_DATABASE=Nokia Corporation
 
@@ -48413,6 +48662,9 @@ OUI:3C46D8*
 OUI:3C4711*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
+OUI:3C479B*
+ ID_OUI_FROM_DATABASE=Theissen Training Systems, Inc.
+
 OUI:3C4937*
  ID_OUI_FROM_DATABASE=ASSMANN Electronic GmbH
 
@@ -48431,6 +48683,9 @@ OUI:3C4E47*
 OUI:3C5282*
  ID_OUI_FROM_DATABASE=Hewlett Packard
 
+OUI:3C574F*
+ ID_OUI_FROM_DATABASE=China Mobile Group Device Co.,Ltd.
+
 OUI:3C57BD*
  ID_OUI_FROM_DATABASE=Kessler Crane Inc.
 
@@ -48743,6 +48998,9 @@ OUI:3CD9CE*
 OUI:3CDA2A*
  ID_OUI_FROM_DATABASE=zte corporation
 
+OUI:3CDCBC*
+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+
 OUI:3CDD89*
  ID_OUI_FROM_DATABASE=SOMO HOLDINGS & TECH. CO.,LTD.
 
@@ -48767,6 +49025,9 @@ OUI:3CE5B4*
 OUI:3CE624*
  ID_OUI_FROM_DATABASE=LG Display
 
+OUI:3CE824*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:3CEA4F*
  ID_OUI_FROM_DATABASE=2Wire Inc
 
@@ -49169,6 +49430,9 @@ OUI:40984E*
 OUI:40987B*
  ID_OUI_FROM_DATABASE=Aisino Corporation
 
+OUI:4098AD*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:409922*
  ID_OUI_FROM_DATABASE=AzureWave Technology Inc.
 
@@ -49310,6 +49574,9 @@ OUI:40BC73*
 OUI:40BC8B*
  ID_OUI_FROM_DATABASE=itelio GmbH
 
+OUI:40BD32*
+ ID_OUI_FROM_DATABASE=Texas Instruments
+
 OUI:40BD9E*
  ID_OUI_FROM_DATABASE=Physio-Control, Inc
 
@@ -49337,6 +49604,9 @@ OUI:40C8CB*
 OUI:40CBA8*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
+OUI:40CBC0*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:40CD3A*
  ID_OUI_FROM_DATABASE=Z3 Technology
 
@@ -49832,6 +50102,9 @@ OUI:449B78*
 OUI:449CB5*
  ID_OUI_FROM_DATABASE=Alcomp, Inc
 
+OUI:449EF9*
+ ID_OUI_FROM_DATABASE=vivo Mobile Communication Co., Ltd.
+
 OUI:449F7F*
  ID_OUI_FROM_DATABASE=DataCore Software Corporation
 
@@ -50021,6 +50294,9 @@ OUI:44FB42*
 OUI:44FDA3*
  ID_OUI_FROM_DATABASE=Everysight LTD.
 
+OUI:44FFBA*
+ ID_OUI_FROM_DATABASE=zte corporation
+
 OUI:480031*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
@@ -50063,6 +50339,9 @@ OUI:48174C*
 OUI:481842*
  ID_OUI_FROM_DATABASE=Shanghai Winaas Co. Equipment Co. Ltd.
 
+OUI:4818FA*
+ ID_OUI_FROM_DATABASE=Nocsys
+
 OUI:481A84*
  ID_OUI_FROM_DATABASE=Pointer Telocation Ltd
 
@@ -50369,6 +50648,9 @@ OUI:48BA4E*
 OUI:48BCA6*
  ID_OUI_FROM_DATABASE=​ASUNG TECHNO CO.,Ltd
 
+OUI:48BD3D*
+ ID_OUI_FROM_DATABASE=New H3C Technologies Co., Ltd
+
 OUI:48BE2D*
  ID_OUI_FROM_DATABASE=Symanitron
 
@@ -50393,6 +50675,9 @@ OUI:48C58D*
 OUI:48C663*
  ID_OUI_FROM_DATABASE=GTO Access Systems LLC
 
+OUI:48C796*
+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+
 OUI:48C862*
  ID_OUI_FROM_DATABASE=Simo Wireless,Inc.
 
@@ -50792,6 +51077,9 @@ OUI:4C7625*
 OUI:4C774F*
  ID_OUI_FROM_DATABASE=Embedded Wireless Labs
 
+OUI:4C776D*
+ ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+
 OUI:4C7872*
  ID_OUI_FROM_DATABASE=Cav. Uff. Giacomo Cimberio S.p.A.
 
@@ -50817,7 +51105,7 @@ OUI:4C8120*
  ID_OUI_FROM_DATABASE=Taicang T&W Electronics
 
 OUI:4C82CF*
- ID_OUI_FROM_DATABASE=Echostar Technologies Corp
+ ID_OUI_FROM_DATABASE=Dish Technologies Corp
 
 OUI:4C83DE*
  ID_OUI_FROM_DATABASE=Cisco SPVTG
@@ -50882,6 +51170,9 @@ OUI:4CAA16*
 OUI:4CAB33*
  ID_OUI_FROM_DATABASE=KST technology
 
+OUI:4CABFC*
+ ID_OUI_FROM_DATABASE=zte corporation
+
 OUI:4CAC0A*
  ID_OUI_FROM_DATABASE=zte corporation
 
@@ -50942,6 +51233,9 @@ OUI:4CBCA5*
 OUI:4CBD8F*
  ID_OUI_FROM_DATABASE=Hangzhou Hikvision Digital Technology Co.,Ltd.
 
+OUI:4CC206*
+ ID_OUI_FROM_DATABASE=Somfy
+
 OUI:4CC452*
  ID_OUI_FROM_DATABASE=Shang Hai Tyd. Electon Technology Ltd.
 
@@ -51053,6 +51347,9 @@ OUI:4CEDDE*
 OUI:4CEEB0*
  ID_OUI_FROM_DATABASE=SHC Netzwerktechnik GmbH
 
+OUI:4CEFC0*
+ ID_OUI_FROM_DATABASE=Amazon Technologies Inc.
+
 OUI:4CF02E*
  ID_OUI_FROM_DATABASE=Vifa Denmark A/S
 
@@ -51167,6 +51464,9 @@ OUI:500FF5*
 OUI:5011EB*
  ID_OUI_FROM_DATABASE=SilverNet Ltd
 
+OUI:501479*
+ ID_OUI_FROM_DATABASE=iRobot Corporation
+
 OUI:5014B5*
  ID_OUI_FROM_DATABASE=Richfit Information Technology Co., Ltd
 
@@ -51182,6 +51482,9 @@ OUI:501AA5*
 OUI:501AC5*
  ID_OUI_FROM_DATABASE=Microsoft
 
+OUI:501CB0*
+ ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+
 OUI:501CBF*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -51374,12 +51677,21 @@ OUI:50680A*
 OUI:506A03*
  ID_OUI_FROM_DATABASE=NETGEAR
 
+OUI:506B4B*
+ ID_OUI_FROM_DATABASE=Mellanox Technologies, Inc.
+
 OUI:506B8D*
  ID_OUI_FROM_DATABASE=Nutanix
 
+OUI:506CBE*
+ ID_OUI_FROM_DATABASE=InnosiliconTechnology Ltd
+
 OUI:506E92*
  ID_OUI_FROM_DATABASE=Innocent Technology Co., Ltd.
 
+OUI:506F77*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:506F98*
  ID_OUI_FROM_DATABASE=Sehaj Synergy Technologies Private Limited
 
@@ -51461,6 +51773,9 @@ OUI:5092B9*
 OUI:50934F*
  ID_OUI_FROM_DATABASE=Gradual Tecnologia Ltda.
 
+OUI:509551*
+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
+
 OUI:509772*
  ID_OUI_FROM_DATABASE=Westinghouse Digital
 
@@ -51638,6 +51953,9 @@ OUI:50D753*
 OUI:50DA00*
  ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited
 
+OUI:50DCE7*
+ ID_OUI_FROM_DATABASE=Amazon Technologies Inc.
+
 OUI:50DD4F*
  ID_OUI_FROM_DATABASE=Automation Components, Inc
 
@@ -51890,6 +52208,9 @@ OUI:543B30*
 OUI:543D37*
  ID_OUI_FROM_DATABASE=Ruckus Wireless
 
+OUI:543E64*
+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
+
 OUI:5440AD*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
@@ -52130,6 +52451,9 @@ OUI:54A54B*
 OUI:54A619*
  ID_OUI_FROM_DATABASE=Alcatel-Lucent Shanghai Bell Co., Ltd
 
+OUI:54A65C*
+ ID_OUI_FROM_DATABASE=Technicolor CH USA Inc.
+
 OUI:54A9D4*
  ID_OUI_FROM_DATABASE=Minibar Systems
 
@@ -52151,6 +52475,9 @@ OUI:54B620*
 OUI:54B753*
  ID_OUI_FROM_DATABASE=Hunan Fenghui Yinjia Science And Technology Co.,Ltd
 
+OUI:54B7E5*
+ ID_OUI_FROM_DATABASE=Rayson Technology Co., Ltd.
+
 OUI:54B802*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
@@ -52379,6 +52706,9 @@ OUI:5820B1*
 OUI:582136*
  ID_OUI_FROM_DATABASE=KMB systems, s.r.o.
 
+OUI:5821E9*
+ ID_OUI_FROM_DATABASE=TWPI
+
 OUI:58238C*
  ID_OUI_FROM_DATABASE=Technicolor CH USA Inc.
 
@@ -52541,6 +52871,9 @@ OUI:587A4D*
 OUI:587A62*
  ID_OUI_FROM_DATABASE=Texas Instruments
 
+OUI:587A6A*
+ ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
+
 OUI:587BE9*
  ID_OUI_FROM_DATABASE=AirPro Technology India Pvt. Ltd
 
@@ -52646,6 +52979,9 @@ OUI:58B035*
 OUI:58B0D4*
  ID_OUI_FROM_DATABASE=ZuniData Systems Inc.
 
+OUI:58B3FC*
+ ID_OUI_FROM_DATABASE=SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.
+
 OUI:58B42D*
  ID_OUI_FROM_DATABASE=YSTen Technology Co.,Ltd
 
@@ -52706,6 +53042,9 @@ OUI:58D67A*
 OUI:58D6D3*
  ID_OUI_FROM_DATABASE=Dairy Cheq Inc
 
+OUI:58D759*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:58D9D5*
  ID_OUI_FROM_DATABASE=Tenda Technology Co.,Ltd.Dongguan branch
 
@@ -53048,6 +53387,9 @@ OUI:5C5819*
 OUI:5C5948*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
+OUI:5C5AEA*
+ ID_OUI_FROM_DATABASE=FORD
+
 OUI:5C5B35*
  ID_OUI_FROM_DATABASE=Mist Systems, Inc.
 
@@ -53642,6 +53984,9 @@ OUI:605718*
 OUI:605BB4*
  ID_OUI_FROM_DATABASE=AzureWave Technology Inc.
 
+OUI:605F8D*
+ ID_OUI_FROM_DATABASE=eero inc.
+
 OUI:60601F*
  ID_OUI_FROM_DATABASE=SZ DJI TECHNOLOGY CO.,LTD
 
@@ -53672,6 +54017,9 @@ OUI:60699B*
 OUI:606BBD*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
+OUI:606BFF*
+ ID_OUI_FROM_DATABASE=Nintendo Co.,Ltd
+
 OUI:606C66*
  ID_OUI_FROM_DATABASE=Intel Corporate
 
@@ -53717,6 +54065,9 @@ OUI:6083B2*
 OUI:60843B*
  ID_OUI_FROM_DATABASE=Soladigm, Inc.
 
+OUI:6084BD*
+ ID_OUI_FROM_DATABASE=BUFFALO.INC
+
 OUI:608645*
  ID_OUI_FROM_DATABASE=Avery Weigh-Tronix, LLC
 
@@ -53756,6 +54107,12 @@ OUI:609217*
 OUI:609620*
  ID_OUI_FROM_DATABASE=Private
 
+OUI:6097DD*
+ ID_OUI_FROM_DATABASE=MicroSys Electronics GmbH
+
+OUI:609813*
+ ID_OUI_FROM_DATABASE=Shanghai Visking Digital Technology Co. LTD
+
 OUI:6099D1*
  ID_OUI_FROM_DATABASE=Vuzix / Lenovo
 
@@ -54053,6 +54410,9 @@ OUI:64006A*
 OUI:6400F1*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
+OUI:6402CB*
+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
+
 OUI:6405BE*
  ID_OUI_FROM_DATABASE=NEW LIGHT LED
 
@@ -54113,6 +54473,9 @@ OUI:641A22*
 OUI:641C67*
  ID_OUI_FROM_DATABASE=DIGIBRAS INDUSTRIA DO BRASILS/A
 
+OUI:641CB0*
+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+
 OUI:641E81*
  ID_OUI_FROM_DATABASE=Dowslake Microsystems
 
@@ -54338,6 +54701,9 @@ OUI:64899A*
 OUI:648D9E*
  ID_OUI_FROM_DATABASE=IVT Electronic Co.,Ltd
 
+OUI:649829*
+ ID_OUI_FROM_DATABASE=Integrated Device Technology (Malaysia) Sdn. Bhd.
+
 OUI:64995D*
  ID_OUI_FROM_DATABASE=LGE
 
@@ -54446,6 +54812,9 @@ OUI:64BC11*
 OUI:64C354*
  ID_OUI_FROM_DATABASE=Avaya Inc
 
+OUI:64C3D6*
+ ID_OUI_FROM_DATABASE=Juniper Networks
+
 OUI:64C5AA*
  ID_OUI_FROM_DATABASE=South African Broadcasting Corporation
 
@@ -54458,6 +54827,9 @@ OUI:64C6AF*
 OUI:64C944*
  ID_OUI_FROM_DATABASE=LARK Technologies, Inc
 
+OUI:64CB5D*
+ ID_OUI_FROM_DATABASE=SIA TeleSet
+
 OUI:64CBA3*
  ID_OUI_FROM_DATABASE=Pointmobile
 
@@ -54509,6 +54881,9 @@ OUI:64DB43*
 OUI:64DB81*
  ID_OUI_FROM_DATABASE=Syszone Co., Ltd.
 
+OUI:64DB8B*
+ ID_OUI_FROM_DATABASE=Hangzhou Hikvision Digital Technology Co.,Ltd.
+
 OUI:64DBA0*
  ID_OUI_FROM_DATABASE=Select Comfort
 
@@ -54770,6 +55145,9 @@ OUI:6854F5*
 OUI:6854FD*
  ID_OUI_FROM_DATABASE=Amazon Technologies Inc.
 
+OUI:68572D*
+ ID_OUI_FROM_DATABASE=HANGZHOU AIXIANGJI TECHNOLOGY CO., LTD
+
 OUI:6858C5*
  ID_OUI_FROM_DATABASE=ZF TRW Automotive
 
@@ -54941,6 +55319,9 @@ OUI:68974B*
 OUI:6897E8*
  ID_OUI_FROM_DATABASE=Society of Motion Picture &amp; Television Engineers
 
+OUI:689861*
+ ID_OUI_FROM_DATABASE=Beacon Inc
+
 OUI:6899CD*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -54989,6 +55370,9 @@ OUI:68A86D*
 OUI:68AAD2*
  ID_OUI_FROM_DATABASE=DATECS LTD.,
 
+OUI:68AB1E*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:68AB8A*
  ID_OUI_FROM_DATABASE=RF IDeas
 
@@ -55055,6 +55439,9 @@ OUI:68D1FD*
 OUI:68D247*
  ID_OUI_FROM_DATABASE=Portalis LC
 
+OUI:68D482*
+ ID_OUI_FROM_DATABASE=SHENZHEN GONGJIN ELECTRONICS CO.,LT
+
 OUI:68D925*
  ID_OUI_FROM_DATABASE=ProSys Development Services
 
@@ -55109,6 +55496,9 @@ OUI:68EDA4*
 OUI:68EE96*
  ID_OUI_FROM_DATABASE=Cisco SPVTG
 
+OUI:68EF43*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:68EFBD*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -55139,6 +55529,9 @@ OUI:68FB95*
 OUI:68FCB3*
  ID_OUI_FROM_DATABASE=Next Level Security Systems, Inc.
 
+OUI:68FEDA*
+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
+
 OUI:6C0273*
  ID_OUI_FROM_DATABASE=Shenzhen Jin Yun Video Equipment Co., Ltd.
 
@@ -55286,12 +55679,18 @@ OUI:6C4B7F*
 OUI:6C4B90*
  ID_OUI_FROM_DATABASE=LiteON
 
+OUI:6C4D73*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:6C4E86*
  ID_OUI_FROM_DATABASE=Third Millennium Systems Ltd.
 
 OUI:6C504D*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
+OUI:6C54CD*
+ ID_OUI_FROM_DATABASE=LAMPEX ELECTRONICS LIMITED
+
 OUI:6C5697*
  ID_OUI_FROM_DATABASE=Amazon Technologies Inc.
 
@@ -55505,6 +55904,9 @@ OUI:6CB4A7*
 OUI:6CB56B*
  ID_OUI_FROM_DATABASE=HUMAX Co., Ltd.
 
+OUI:6CB6CA*
+ ID_OUI_FROM_DATABASE=DIVUS GmbH
+
 OUI:6CB749*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
@@ -55532,6 +55934,9 @@ OUI:6CC217*
 OUI:6CC26B*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
+OUI:6CC4D5*
+ ID_OUI_FROM_DATABASE=HMD Global Oy
+
 OUI:6CCA08*
  ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
 
@@ -55565,6 +55970,9 @@ OUI:6CE3B6*
 OUI:6CE4CE*
  ID_OUI_FROM_DATABASE=Villiger Security Solutions AG
 
+OUI:6CE4DA*
+ ID_OUI_FROM_DATABASE=NEC Platforms, Ltd.
+
 OUI:6CE873*
  ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD.
 
@@ -55631,6 +56039,9 @@ OUI:700258*
 OUI:700514*
  ID_OUI_FROM_DATABASE=LG Electronics (Mobile Communications)
 
+OUI:7006AC*
+ ID_OUI_FROM_DATABASE=Eastcompeace Technology Co., Ltd
+
 OUI:700BC0*
  ID_OUI_FROM_DATABASE=Dewav Technology Company
 
@@ -55658,6 +56069,9 @@ OUI:701404*
 OUI:7014A6*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
+OUI:70169F*
+ ID_OUI_FROM_DATABASE=EtherCAT Technology Group
+
 OUI:70188B*
  ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd.
 
@@ -55751,6 +56165,9 @@ OUI:7038EE*
 OUI:703A0E*
  ID_OUI_FROM_DATABASE=Aruba Networks
 
+OUI:703A73*
+ ID_OUI_FROM_DATABASE=Shenzhen Sundray Technologies Company Limited
+
 OUI:703ACB*
  ID_OUI_FROM_DATABASE=Google, Inc.
 
@@ -55820,6 +56237,9 @@ OUI:7054D2*
 OUI:7054F5*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
+OUI:7055F8*
+ ID_OUI_FROM_DATABASE=Cerebras Systems Inc
+
 OUI:705681*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
@@ -55841,6 +56261,9 @@ OUI:705A0F*
 OUI:705A9E*
  ID_OUI_FROM_DATABASE=Technicolor CH USA Inc.
 
+OUI:705AAC*
+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+
 OUI:705AB6*
  ID_OUI_FROM_DATABASE=COMPAL INFORMATION (KUNSHAN) CO., LTD.
 
@@ -55877,6 +56300,9 @@ OUI:70661B*
 OUI:706879*
  ID_OUI_FROM_DATABASE=Saijo Denki International Co., Ltd.
 
+OUI:70695A*
+ ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+
 OUI:706BB9*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -56189,6 +56615,9 @@ OUI:70B3D5030*
 OUI:70B3D5031*
  ID_OUI_FROM_DATABASE=SHENZHEN GAONA ELECTRONIC CO.LTD
 
+OUI:70B3D5032*
+ ID_OUI_FROM_DATABASE=iFreecomm Technology Co., Ltd
+
 OUI:70B3D5033*
  ID_OUI_FROM_DATABASE=Sailmon BV
 
@@ -56273,6 +56702,9 @@ OUI:70B3D5063*
 OUI:70B3D5066*
  ID_OUI_FROM_DATABASE=North Pole Engineering, Inc.
 
+OUI:70B3D5069*
+ ID_OUI_FROM_DATABASE=ONDEMAND LABORATORY Co., Ltd.
+
 OUI:70B3D506B*
  ID_OUI_FROM_DATABASE=U-Tech
 
@@ -56282,6 +56714,9 @@ OUI:70B3D506C*
 OUI:70B3D5070*
  ID_OUI_FROM_DATABASE=Lumiplan Duhamel
 
+OUI:70B3D5075*
+ ID_OUI_FROM_DATABASE=Mo-Sys Engineering Ltd
+
 OUI:70B3D5077*
  ID_OUI_FROM_DATABASE=InAccess Networks SA
 
@@ -56318,6 +56753,9 @@ OUI:70B3D5087*
 OUI:70B3D5088*
  ID_OUI_FROM_DATABASE=OptiScan Biomedical Corp.
 
+OUI:70B3D508A*
+ ID_OUI_FROM_DATABASE=MB connect line GmbH Fernwartungssysteme
+
 OUI:70B3D508D*
  ID_OUI_FROM_DATABASE=Clover Electronics Technology Co., Ltd.
 
@@ -56339,12 +56777,18 @@ OUI:70B3D5092*
 OUI:70B3D5094*
  ID_OUI_FROM_DATABASE=Circuitlink Pty Ltd
 
+OUI:70B3D5096*
+ ID_OUI_FROM_DATABASE=HAVELSAN A.Ş.
+
 OUI:70B3D5097*
  ID_OUI_FROM_DATABASE=Avant Technologies
 
 OUI:70B3D5099*
  ID_OUI_FROM_DATABASE=Schwer+Kopka GmbH
 
+OUI:70B3D509B*
+ ID_OUI_FROM_DATABASE=Jacarta Ltd
+
 OUI:70B3D509D*
  ID_OUI_FROM_DATABASE=P&S GmbH
 
@@ -56387,6 +56831,9 @@ OUI:70B3D50AB*
 OUI:70B3D50AE*
  ID_OUI_FROM_DATABASE=Norsat International Inc.
 
+OUI:70B3D50AF*
+ ID_OUI_FROM_DATABASE=KMtronic ltd
+
 OUI:70B3D50B0*
  ID_OUI_FROM_DATABASE=Raven Systems Design, Inc
 
@@ -56507,6 +56954,12 @@ OUI:70B3D50F0*
 OUI:70B3D50F1*
  ID_OUI_FROM_DATABASE=Beijing One City Science & Technology Co., LTD
 
+OUI:70B3D50F3*
+ ID_OUI_FROM_DATABASE=MonsoonRF, Inc.
+
+OUI:70B3D50F8*
+ ID_OUI_FROM_DATABASE=Special Services Group, LLC
+
 OUI:70B3D50FA*
  ID_OUI_FROM_DATABASE=InsideRF Co., Ltd.
 
@@ -56648,6 +57101,9 @@ OUI:70B3D5140*
 OUI:70B3D5142*
  ID_OUI_FROM_DATABASE=DAVE SRL
 
+OUI:70B3D5144*
+ ID_OUI_FROM_DATABASE=GS Elektromedizinsiche Geräte G. Stemple GmbH
+
 OUI:70B3D5146*
  ID_OUI_FROM_DATABASE=3City Electronics
 
@@ -56684,6 +57140,9 @@ OUI:70B3D5153*
 OUI:70B3D515C*
  ID_OUI_FROM_DATABASE=Woods Hole Oceanographic Institution
 
+OUI:70B3D515D*
+ ID_OUI_FROM_DATABASE=Vtron Pty Ltd
+
 OUI:70B3D515F*
  ID_OUI_FROM_DATABASE=SAVRONİK ELEKTRONİK
 
@@ -56852,6 +57311,9 @@ OUI:70B3D51B6*
 OUI:70B3D51B8*
  ID_OUI_FROM_DATABASE=OES Inc.
 
+OUI:70B3D51B9*
+ ID_OUI_FROM_DATABASE=RELISTE Ges.m.b.H.
+
 OUI:70B3D51BB*
  ID_OUI_FROM_DATABASE=EFENTO T P SZYDŁOWSKI K ZARĘBA SPÓŁKA JAWNA
 
@@ -56867,6 +57329,12 @@ OUI:70B3D51C7*
 OUI:70B3D51C8*
  ID_OUI_FROM_DATABASE=LDA audio video profesional S.L.
 
+OUI:70B3D51CB*
+ ID_OUI_FROM_DATABASE=MatchX GmbH
+
+OUI:70B3D51D0*
+ ID_OUI_FROM_DATABASE=Shenzhen INVT Electric Co.,Ltd
+
 OUI:70B3D51D4*
  ID_OUI_FROM_DATABASE=Brinkmann Audio GmbH
 
@@ -56936,6 +57404,9 @@ OUI:70B3D5204*
 OUI:70B3D5205*
  ID_OUI_FROM_DATABASE=Esource Srl
 
+OUI:70B3D5207*
+ ID_OUI_FROM_DATABASE=Savari Inc
+
 OUI:70B3D5208*
  ID_OUI_FROM_DATABASE=DSP DESIGN LTD
 
@@ -56972,6 +57443,9 @@ OUI:70B3D5216*
 OUI:70B3D5217*
  ID_OUI_FROM_DATABASE=Tecnint HTE SRL
 
+OUI:70B3D521B*
+ ID_OUI_FROM_DATABASE=Lab241 Co.,Ltd.
+
 OUI:70B3D521D*
  ID_OUI_FROM_DATABASE=iRF - Intelligent RF Solutions, LLC
 
@@ -56990,6 +57464,9 @@ OUI:70B3D5226*
 OUI:70B3D5227*
  ID_OUI_FROM_DATABASE=Montalvo
 
+OUI:70B3D5228*
+ ID_OUI_FROM_DATABASE=HEITEC AG
+
 OUI:70B3D5229*
  ID_OUI_FROM_DATABASE=CONTROL SYSTEMS Srl
 
@@ -57041,6 +57518,9 @@ OUI:70B3D524B*
 OUI:70B3D524D*
  ID_OUI_FROM_DATABASE=INFO CREATIVE (HK) LTD
 
+OUI:70B3D524F*
+ ID_OUI_FROM_DATABASE=ELBIT SYSTEMS BMD AND LAND EW - ELISRA LTD
+
 OUI:70B3D5250*
  ID_OUI_FROM_DATABASE=Datum Electronics Limited
 
@@ -57062,6 +57542,9 @@ OUI:70B3D525A*
 OUI:70B3D525B*
  ID_OUI_FROM_DATABASE=GID Industrial
 
+OUI:70B3D525D*
+ ID_OUI_FROM_DATABASE=Mimo Networks
+
 OUI:70B3D5260*
  ID_OUI_FROM_DATABASE=ModuSystems, Inc
 
@@ -57194,6 +57677,9 @@ OUI:70B3D52AC*
 OUI:70B3D52AD*
  ID_OUI_FROM_DATABASE=Opgal Optronic Industries
 
+OUI:70B3D52AE*
+ ID_OUI_FROM_DATABASE=Alere Technologies AS
+
 OUI:70B3D52B0*
  ID_OUI_FROM_DATABASE=Beijing Zhongyi Yue Tai Technology Co., Ltd
 
@@ -57206,6 +57692,9 @@ OUI:70B3D52B3*
 OUI:70B3D52B4*
  ID_OUI_FROM_DATABASE=Foerster-Technik GmbH
 
+OUI:70B3D52B7*
+ ID_OUI_FROM_DATABASE=Matrix Orbital Corporation
+
 OUI:70B3D52B9*
  ID_OUI_FROM_DATABASE=BELECTRIC GmbH
 
@@ -57329,6 +57818,9 @@ OUI:70B3D5300*
 OUI:70B3D5303*
  ID_OUI_FROM_DATABASE=Fuchu Giken, Inc.
 
+OUI:70B3D5304*
+ ID_OUI_FROM_DATABASE=Transas Marine Limited
+
 OUI:70B3D5305*
  ID_OUI_FROM_DATABASE=CAITRON Industrial Solutions GmbH
 
@@ -57407,6 +57899,9 @@ OUI:70B3D533C*
 OUI:70B3D533E*
  ID_OUI_FROM_DATABASE=Dynamic Connect (Suzhou) Hi-Tech Electronic Co.,Ltd.
 
+OUI:70B3D5340*
+ ID_OUI_FROM_DATABASE=Renesas Electronics
+
 OUI:70B3D5341*
  ID_OUI_FROM_DATABASE=Vtron Pty Ltd
 
@@ -57443,6 +57938,9 @@ OUI:70B3D534E*
 OUI:70B3D5350*
  ID_OUI_FROM_DATABASE=Tickster AB
 
+OUI:70B3D5351*
+ ID_OUI_FROM_DATABASE=KST technology
+
 OUI:70B3D5352*
  ID_OUI_FROM_DATABASE=Globalcom Engineering SPA
 
@@ -57485,6 +57983,9 @@ OUI:70B3D5365*
 OUI:70B3D5367*
  ID_OUI_FROM_DATABASE=Living Water
 
+OUI:70B3D5368*
+ ID_OUI_FROM_DATABASE=White Matter LLC
+
 OUI:70B3D536A*
  ID_OUI_FROM_DATABASE=Becton Dickinson
 
@@ -57605,6 +58106,9 @@ OUI:70B3D53AF*
 OUI:70B3D53B2*
  ID_OUI_FROM_DATABASE=Sicon srl
 
+OUI:70B3D53B5*
+ ID_OUI_FROM_DATABASE=Preston Industries dba PolyScience
+
 OUI:70B3D53B7*
  ID_OUI_FROM_DATABASE=Paul Scherrer Institut (PSI)
 
@@ -57746,6 +58250,9 @@ OUI:70B3D5408*
 OUI:70B3D540A*
  ID_OUI_FROM_DATABASE=Monroe Electronics, Inc.
 
+OUI:70B3D5410*
+ ID_OUI_FROM_DATABASE=Avant Technologies, Inc
+
 OUI:70B3D5412*
  ID_OUI_FROM_DATABASE=TATTILE SRL
 
@@ -57899,6 +58406,9 @@ OUI:70B3D547C*
 OUI:70B3D547F*
  ID_OUI_FROM_DATABASE=ASE GmbH
 
+OUI:70B3D5480*
+ ID_OUI_FROM_DATABASE=Emergency Lighting Products Limited
+
 OUI:70B3D5482*
  ID_OUI_FROM_DATABASE=Aeryon Labs Inc
 
@@ -57956,6 +58466,9 @@ OUI:70B3D549E*
 OUI:70B3D549F*
  ID_OUI_FROM_DATABASE=B.P.A. SRL
 
+OUI:70B3D54A0*
+ ID_OUI_FROM_DATABASE=FLUDIA
+
 OUI:70B3D54A1*
  ID_OUI_FROM_DATABASE=Herholdt Controls srl
 
@@ -58040,6 +58553,9 @@ OUI:70B3D54CF*
 OUI:70B3D54D1*
  ID_OUI_FROM_DATABASE=Contraves Advanced Devices Sdn. Bhd.
 
+OUI:70B3D54D4*
+ ID_OUI_FROM_DATABASE=Nortek Global HVAC
+
 OUI:70B3D54D5*
  ID_OUI_FROM_DATABASE=Moog Rekofa  GmbH
 
@@ -58061,6 +58577,9 @@ OUI:70B3D54DE*
 OUI:70B3D54DF*
  ID_OUI_FROM_DATABASE=Nidec Avtron Automation Corp
 
+OUI:70B3D54E1*
+ ID_OUI_FROM_DATABASE=Grupo Epelsa S.L.
+
 OUI:70B3D54E5*
  ID_OUI_FROM_DATABASE=viZaar industrial imaging AG
 
@@ -58085,6 +58604,9 @@ OUI:70B3D54F4*
 OUI:70B3D54F8*
  ID_OUI_FROM_DATABASE=Private
 
+OUI:70B3D54F9*
+ ID_OUI_FROM_DATABASE=OptoPrecision GmbH
+
 OUI:70B3D54FC*
  ID_OUI_FROM_DATABASE=Mettler Toledo
 
@@ -58148,6 +58670,9 @@ OUI:70B3D5523*
 OUI:70B3D5524*
  ID_OUI_FROM_DATABASE=Wuxi New Optical Communication Co.,Ltd.
 
+OUI:70B3D5525*
+ ID_OUI_FROM_DATABASE=Plantiga Technologies Inc
+
 OUI:70B3D5528*
  ID_OUI_FROM_DATABASE=Aplex Technology Inc.
 
@@ -58412,15 +58937,24 @@ OUI:70B3D55D6*
 OUI:70B3D55D8*
  ID_OUI_FROM_DATABASE=LYNX Technik AG
 
+OUI:70B3D55DA*
+ ID_OUI_FROM_DATABASE=Valk Welding B.V.
+
 OUI:70B3D55DB*
  ID_OUI_FROM_DATABASE=Movicom LLC
 
+OUI:70B3D55DC*
+ ID_OUI_FROM_DATABASE=FactoryLab B.V.
+
 OUI:70B3D55E0*
  ID_OUI_FROM_DATABASE=Hexagon Metrology SAS
 
 OUI:70B3D55E2*
  ID_OUI_FROM_DATABASE=Grossenbacher Systeme AG
 
+OUI:70B3D55E3*
+ ID_OUI_FROM_DATABASE=Imecon Engineering SrL
+
 OUI:70B3D55E4*
  ID_OUI_FROM_DATABASE=DSP DESIGN
 
@@ -58475,6 +59009,9 @@ OUI:70B3D55FF*
 OUI:70B3D5600*
  ID_OUI_FROM_DATABASE=Stellwerk GmbH
 
+OUI:70B3D5602*
+ ID_OUI_FROM_DATABASE=Quantum Opus, LLC
+
 OUI:70B3D5605*
  ID_OUI_FROM_DATABASE=Aplex Technology Inc.
 
@@ -58508,6 +59045,9 @@ OUI:70B3D560F*
 OUI:70B3D5610*
  ID_OUI_FROM_DATABASE=POLVISION
 
+OUI:70B3D5611*
+ ID_OUI_FROM_DATABASE=Avionica
+
 OUI:70B3D5615*
  ID_OUI_FROM_DATABASE=JSC OTZVUK
 
@@ -58545,7 +59085,7 @@ OUI:70B3D5630*
  ID_OUI_FROM_DATABASE=LGE
 
 OUI:70B3D5631*
- ID_OUI_FROM_DATABASE=SENSO2ME bvba
+ ID_OUI_FROM_DATABASE=SENSO2ME
 
 OUI:70B3D5634*
  ID_OUI_FROM_DATABASE=idaqs Co.,Ltd.
@@ -58565,9 +59105,15 @@ OUI:70B3D563B*
 OUI:70B3D563C*
  ID_OUI_FROM_DATABASE=Pivothead
 
+OUI:70B3D563D*
+ ID_OUI_FROM_DATABASE=Storbyte, Inc.
+
 OUI:70B3D563E*
  ID_OUI_FROM_DATABASE=RIKEN OPTECH CORPORATION
 
+OUI:70B3D563F*
+ ID_OUI_FROM_DATABASE=YG COMPANY CO., LTD
+
 OUI:70B3D5640*
  ID_OUI_FROM_DATABASE=Electronic Equipment Company Pvt. Ltd.
 
@@ -58643,6 +59189,9 @@ OUI:70B3D5666*
 OUI:70B3D566B*
  ID_OUI_FROM_DATABASE=Innitive B.V.
 
+OUI:70B3D5670*
+ ID_OUI_FROM_DATABASE=Particle sizing systems
+
 OUI:70B3D5671*
  ID_OUI_FROM_DATABASE=Sea Shell Corporation
 
@@ -58667,6 +59216,9 @@ OUI:70B3D567B*
 OUI:70B3D5682*
  ID_OUI_FROM_DATABASE=Rosslare Enterprises Limited
 
+OUI:70B3D5689*
+ ID_OUI_FROM_DATABASE=Prisma Telecom Testing Srl
+
 OUI:70B3D568C*
  ID_OUI_FROM_DATABASE=ND METER
 
@@ -58787,6 +59339,9 @@ OUI:70B3D56DF*
 OUI:70B3D56E0*
  ID_OUI_FROM_DATABASE=ABB SPA - DMPC
 
+OUI:70B3D56E1*
+ ID_OUI_FROM_DATABASE=Shanghai Holystar Information Technology Co.,Ltd
+
 OUI:70B3D56E4*
  ID_OUI_FROM_DATABASE=Institute of Power Engineering, Gdansk Division
 
@@ -58802,9 +59357,15 @@ OUI:70B3D56E7*
 OUI:70B3D56E8*
  ID_OUI_FROM_DATABASE=Blu Wireless Technology Ltd
 
+OUI:70B3D56E9*
+ ID_OUI_FROM_DATABASE=Krontech
+
 OUI:70B3D56EA*
  ID_OUI_FROM_DATABASE=Edgeware AB
 
+OUI:70B3D56EB*
+ ID_OUI_FROM_DATABASE=QUANTAFLOW
+
 OUI:70B3D56EC*
  ID_OUI_FROM_DATABASE=CRDE
 
@@ -58841,12 +59402,18 @@ OUI:70B3D56FD*
 OUI:70B3D56FF*
  ID_OUI_FROM_DATABASE=AKEO PLUS
 
+OUI:70B3D5700*
+ ID_OUI_FROM_DATABASE=University Of Groningen
+
 OUI:70B3D5702*
  ID_OUI_FROM_DATABASE=Sensor Highway Ltd
 
 OUI:70B3D5703*
  ID_OUI_FROM_DATABASE=StromIdee GmbH
 
+OUI:70B3D5704*
+ ID_OUI_FROM_DATABASE=Melecs EWS GmbH
+
 OUI:70B3D5705*
  ID_OUI_FROM_DATABASE=Digital Matter Pty Ltd
 
@@ -58862,6 +59429,9 @@ OUI:70B3D570F*
 OUI:70B3D5710*
  ID_OUI_FROM_DATABASE=Guardian Controls International Ltd
 
+OUI:70B3D5711*
+ ID_OUI_FROM_DATABASE=X-Laser LLC
+
 OUI:70B3D5712*
  ID_OUI_FROM_DATABASE=APG Cash Drawer, LLC
 
@@ -58952,6 +59522,9 @@ OUI:70B3D5741*
 OUI:70B3D5742*
  ID_OUI_FROM_DATABASE=YUYAMA MFG Co.,Ltd
 
+OUI:70B3D5743*
+ ID_OUI_FROM_DATABASE=EA Elektroautomatik GmbH & Co. KG
+
 OUI:70B3D5745*
  ID_OUI_FROM_DATABASE=TMSI LLC
 
@@ -58997,6 +59570,9 @@ OUI:70B3D575C*
 OUI:70B3D575D*
  ID_OUI_FROM_DATABASE=Nanjing Magewell Electronics Co., Ltd.
 
+OUI:70B3D575E*
+ ID_OUI_FROM_DATABASE=Cardinal Health
+
 OUI:70B3D5760*
  ID_OUI_FROM_DATABASE=QUALITTEQ LLC
 
@@ -59069,6 +59645,9 @@ OUI:70B3D5781*
 OUI:70B3D5782*
  ID_OUI_FROM_DATABASE=thou&tech
 
+OUI:70B3D5784*
+ ID_OUI_FROM_DATABASE=Shenzhen bayue software co. LTD
+
 OUI:70B3D5785*
  ID_OUI_FROM_DATABASE=Density Inc.
 
@@ -59114,6 +59693,9 @@ OUI:70B3D57A1*
 OUI:70B3D57A2*
  ID_OUI_FROM_DATABASE=Alpha ESS Co., Ltd.
 
+OUI:70B3D57A3*
+ ID_OUI_FROM_DATABASE=Impulse Automation
+
 OUI:70B3D57A4*
  ID_OUI_FROM_DATABASE=Potter Electric Signal Co. LLC
 
@@ -59136,7 +59718,7 @@ OUI:70B3D57AB*
  ID_OUI_FROM_DATABASE=Microgate Srl
 
 OUI:70B3D57AD*
- ID_OUI_FROM_DATABASE=Insitu Inc
+ ID_OUI_FROM_DATABASE=Insitu, Inc
 
 OUI:70B3D57AE*
  ID_OUI_FROM_DATABASE=Exi Flow Measurement Ltd
@@ -59168,6 +59750,12 @@ OUI:70B3D57B8*
 OUI:70B3D57B9*
  ID_OUI_FROM_DATABASE=QIAGEN Instruments AG
 
+OUI:70B3D57BF*
+ ID_OUI_FROM_DATABASE=Stone Three
+
+OUI:70B3D57C0*
+ ID_OUI_FROM_DATABASE=TORGOVYY DOM  TEHNOLOGIY LLC
+
 OUI:70B3D57C1*
  ID_OUI_FROM_DATABASE=Data Sciences International
 
@@ -59240,6 +59828,9 @@ OUI:70B3D57E8*
 OUI:70B3D57E9*
  ID_OUI_FROM_DATABASE=Mecsel Oy
 
+OUI:70B3D57EA*
+ ID_OUI_FROM_DATABASE=Waterkotte GmbH
+
 OUI:70B3D57EB*
  ID_OUI_FROM_DATABASE=Xerox International Partners
 
@@ -59372,6 +59963,9 @@ OUI:70B3D5833*
 OUI:70B3D5835*
  ID_OUI_FROM_DATABASE=CommBox P/L
 
+OUI:70B3D5837*
+ ID_OUI_FROM_DATABASE=HiDes, Inc.
+
 OUI:70B3D5838*
  ID_OUI_FROM_DATABASE=Tofino
 
@@ -59423,6 +60017,9 @@ OUI:70B3D5850*
 OUI:70B3D5852*
  ID_OUI_FROM_DATABASE=NetBoxSC, LLC
 
+OUI:70B3D5853*
+ ID_OUI_FROM_DATABASE=HGH SYSTEMES INFRAROUGES
+
 OUI:70B3D5854*
  ID_OUI_FROM_DATABASE=Adimec Advanced Image Systems
 
@@ -59591,6 +60188,9 @@ OUI:70B3D58C3*
 OUI:70B3D58C5*
  ID_OUI_FROM_DATABASE=HMicro Inc
 
+OUI:70B3D58C8*
+ ID_OUI_FROM_DATABASE=KRONOTECH SRL
+
 OUI:70B3D58CA*
  ID_OUI_FROM_DATABASE=Allied Data Systems
 
@@ -59603,6 +60203,9 @@ OUI:70B3D58CE*
 OUI:70B3D58CF*
  ID_OUI_FROM_DATABASE=Dainichi Denshi Co.,LTD
 
+OUI:70B3D58D0*
+ ID_OUI_FROM_DATABASE=Raft Technologies
+
 OUI:70B3D58D3*
  ID_OUI_FROM_DATABASE=PERFORMANCE CONTROLS, INC.
 
@@ -59780,6 +60383,9 @@ OUI:70B3D5945*
 OUI:70B3D5947*
  ID_OUI_FROM_DATABASE=Checkbill Co,Ltd.
 
+OUI:70B3D594A*
+ ID_OUI_FROM_DATABASE=SHENZHEN WISEWING INTERNET TECHNOLOGY CO.,LTD
+
 OUI:70B3D594D*
  ID_OUI_FROM_DATABASE=SEASON DESIGN TECHNOLOGY
 
@@ -59822,6 +60428,9 @@ OUI:70B3D595C*
 OUI:70B3D595E*
  ID_OUI_FROM_DATABASE=BLOCKSI LLC
 
+OUI:70B3D5963*
+ ID_OUI_FROM_DATABASE=Triax A/S
+
 OUI:70B3D5967*
  ID_OUI_FROM_DATABASE=TATTILE SRL
 
@@ -59855,6 +60464,9 @@ OUI:70B3D597C*
 OUI:70B3D597F*
  ID_OUI_FROM_DATABASE=BISTOS.,Co.,Ltd
 
+OUI:70B3D5981*
+ ID_OUI_FROM_DATABASE=Zamir Recognition Systems Ltd.
+
 OUI:70B3D5986*
  ID_OUI_FROM_DATABASE=Aplex Technology Inc.
 
@@ -59864,6 +60476,9 @@ OUI:70B3D5987*
 OUI:70B3D5989*
  ID_OUI_FROM_DATABASE=DCNS
 
+OUI:70B3D598B*
+ ID_OUI_FROM_DATABASE=Richard Paul Russell Ltd
+
 OUI:70B3D598C*
  ID_OUI_FROM_DATABASE=University of Wisconsin Madison - Department of High Energy Physics
 
@@ -59903,6 +60518,9 @@ OUI:70B3D599E*
 OUI:70B3D599F*
  ID_OUI_FROM_DATABASE=Confed Holding B.V.
 
+OUI:70B3D59A0*
+ ID_OUI_FROM_DATABASE=ELDES
+
 OUI:70B3D59A1*
  ID_OUI_FROM_DATABASE=ITS Industrial Turbine Services GmbH
 
@@ -60005,6 +60623,9 @@ OUI:70B3D59E0*
 OUI:70B3D59E2*
  ID_OUI_FROM_DATABASE=Ofil USA
 
+OUI:70B3D59E6*
+ ID_OUI_FROM_DATABASE=BLOCKSI LLC
+
 OUI:70B3D59E7*
  ID_OUI_FROM_DATABASE=Xiamen Maxincom Technologies Co., Ltd.
 
@@ -60077,6 +60698,9 @@ OUI:70B3D5A08*
 OUI:70B3D5A0B*
  ID_OUI_FROM_DATABASE=ambiHome GmbH
 
+OUI:70B3D5A0D*
+ ID_OUI_FROM_DATABASE=Globalcom Engineering SPA
+
 OUI:70B3D5A0E*
  ID_OUI_FROM_DATABASE=Vetaphone A/S
 
@@ -60089,6 +60713,9 @@ OUI:70B3D5A12*
 OUI:70B3D5A15*
  ID_OUI_FROM_DATABASE=Intercore GmbH
 
+OUI:70B3D5A17*
+ ID_OUI_FROM_DATABASE=Tunstall A/S
+
 OUI:70B3D5A18*
  ID_OUI_FROM_DATABASE=Embedded Systems Lukasz Panasiuk
 
@@ -60125,6 +60752,9 @@ OUI:70B3D5A27*
 OUI:70B3D5A28*
  ID_OUI_FROM_DATABASE=PEEK TRAFFIC
 
+OUI:70B3D5A29*
+ ID_OUI_FROM_DATABASE=QIAGEN Instruments AG
+
 OUI:70B3D5A2A*
  ID_OUI_FROM_DATABASE=Redwood Systems
 
@@ -60152,6 +60782,9 @@ OUI:70B3D5A35*
 OUI:70B3D5A36*
  ID_OUI_FROM_DATABASE=Beijing DamingWuzhou Science&Technology Co., Ltd.
 
+OUI:70B3D5A3A*
+ ID_OUI_FROM_DATABASE=EPSOFT Co., Ltd
+
 OUI:70B3D5A3B*
  ID_OUI_FROM_DATABASE=Grace Design/Lunatec LLC
 
@@ -60164,6 +60797,9 @@ OUI:70B3D5A3F*
 OUI:70B3D5A40*
  ID_OUI_FROM_DATABASE=STRACK LIFT AUTOMATION GmbH
 
+OUI:70B3D5A43*
+ ID_OUI_FROM_DATABASE=OLEDCOMM
+
 OUI:70B3D5A44*
  ID_OUI_FROM_DATABASE=FSR Inc
 
@@ -60266,6 +60902,9 @@ OUI:70B3D5A81*
 OUI:70B3D5A85*
  ID_OUI_FROM_DATABASE=exceet electronics GesmbH
 
+OUI:70B3D5A86*
+ ID_OUI_FROM_DATABASE=Divigraph (Pty) LTD
+
 OUI:70B3D5A88*
  ID_OUI_FROM_DATABASE=Shangdong Bosure Automation Technology Ltd
 
@@ -60371,6 +61010,9 @@ OUI:70B3D5ABE*
 OUI:70B3D5ABF*
  ID_OUI_FROM_DATABASE=AGR International
 
+OUI:70B3D5AC1*
+ ID_OUI_FROM_DATABASE=AEM Singapore Pte. Ltd.
+
 OUI:70B3D5AC3*
  ID_OUI_FROM_DATABASE=Novoptel GmbH
 
@@ -60443,6 +61085,9 @@ OUI:70B3D5AE9*
 OUI:70B3D5AEA*
  ID_OUI_FROM_DATABASE=BBR Verkehrstechnik GmbH
 
+OUI:70B3D5AEB*
+ ID_OUI_FROM_DATABASE=Association Romandix
+
 OUI:70B3D5AEE*
  ID_OUI_FROM_DATABASE=DiTEST Fahrzeugdiagnose GmbH
 
@@ -60455,6 +61100,9 @@ OUI:70B3D5AF0*
 OUI:70B3D5AF1*
  ID_OUI_FROM_DATABASE=Emka Technologies
 
+OUI:70B3D5AF2*
+ ID_OUI_FROM_DATABASE=True Networks Ltd.
+
 OUI:70B3D5AF3*
  ID_OUI_FROM_DATABASE=New Japan Radio Co., Ltd
 
@@ -60518,6 +61166,12 @@ OUI:70B3D5B15*
 OUI:70B3D5B16*
  ID_OUI_FROM_DATABASE=XI'AN SHENMING ELECTRON TECHNOLOGY CO.,LTD
 
+OUI:70B3D5B17*
+ ID_OUI_FROM_DATABASE=Intesens
+
+OUI:70B3D5B18*
+ ID_OUI_FROM_DATABASE=Abbas, a.s.
+
 OUI:70B3D5B1A*
  ID_OUI_FROM_DATABASE=Aaronia AG
 
@@ -60575,6 +61229,9 @@ OUI:70B3D5B39*
 OUI:70B3D5B3A*
  ID_OUI_FROM_DATABASE=Adigitalmedia
 
+OUI:70B3D5B3B*
+ ID_OUI_FROM_DATABASE=Insitu, Inc
+
 OUI:70B3D5B3C*
  ID_OUI_FROM_DATABASE=DORLET SAU
 
@@ -60620,6 +61277,9 @@ OUI:70B3D5B5C*
 OUI:70B3D5B62*
  ID_OUI_FROM_DATABASE=Sakura Seiki Co.,Ltd.
 
+OUI:70B3D5B64*
+ ID_OUI_FROM_DATABASE=OSUNG LST CO.,LTD.
+
 OUI:70B3D5B67*
  ID_OUI_FROM_DATABASE=RedWave Labs Ltd
 
@@ -60725,6 +61385,9 @@ OUI:70B3D5BAA*
 OUI:70B3D5BAB*
  ID_OUI_FROM_DATABASE=Axotec Technologies GmbH
 
+OUI:70B3D5BAC*
+ ID_OUI_FROM_DATABASE=AdInte, inc.
+
 OUI:70B3D5BAD*
  ID_OUI_FROM_DATABASE=Technik & Design GmbH
 
@@ -60746,6 +61409,9 @@ OUI:70B3D5BB7*
 OUI:70B3D5BB8*
  ID_OUI_FROM_DATABASE=Al Kamel Systems S.L.
 
+OUI:70B3D5BB9*
+ ID_OUI_FROM_DATABASE=KOSMEK.Ltd
+
 OUI:70B3D5BBD*
  ID_OUI_FROM_DATABASE=Providius Corp
 
@@ -60794,6 +61460,9 @@ OUI:70B3D5BE1*
 OUI:70B3D5BE3*
  ID_OUI_FROM_DATABASE=Saratov Electrounit Production Plant named after Sergo Ordzhonikidze, OJSC
 
+OUI:70B3D5BE4*
+ ID_OUI_FROM_DATABASE=Kunshan excellent Intelligent Technology Co., Ltd.
+
 OUI:70B3D5BE5*
  ID_OUI_FROM_DATABASE=Pantec Engineering AG
 
@@ -60833,6 +61502,9 @@ OUI:70B3D5BF5*
 OUI:70B3D5BF6*
  ID_OUI_FROM_DATABASE=comtac AG
 
+OUI:70B3D5BFA*
+ ID_OUI_FROM_DATABASE=NESA SRL
+
 OUI:70B3D5BFB*
  ID_OUI_FROM_DATABASE=Sensor 42
 
@@ -60914,6 +61586,9 @@ OUI:70B3D5C2C*
 OUI:70B3D5C2E*
  ID_OUI_FROM_DATABASE=Triax A/S
 
+OUI:70B3D5C2F*
+ ID_OUI_FROM_DATABASE=ATBiS Co.,Ltd
+
 OUI:70B3D5C32*
  ID_OUI_FROM_DATABASE=INFRASAFE/ ADVANTOR SYSTEMS
 
@@ -61004,6 +61679,9 @@ OUI:70B3D5C62*
 OUI:70B3D5C63*
  ID_OUI_FROM_DATABASE=Xentech Solutions Limited
 
+OUI:70B3D5C67*
+ ID_OUI_FROM_DATABASE=Collini Dienstleistungs GmbH
+
 OUI:70B3D5C68*
  ID_OUI_FROM_DATABASE=Mini Solution Co. Ltd.
 
@@ -61073,6 +61751,9 @@ OUI:70B3D5C8C*
 OUI:70B3D5C8D*
  ID_OUI_FROM_DATABASE=KST technology
 
+OUI:70B3D5C8F*
+ ID_OUI_FROM_DATABASE=TRIDENT INFOSOL PVT LTD
+
 OUI:70B3D5C91*
  ID_OUI_FROM_DATABASE=Grossenbacher Systeme AG
 
@@ -61121,6 +61802,9 @@ OUI:70B3D5CB2*
 OUI:70B3D5CB3*
  ID_OUI_FROM_DATABASE=KST technology
 
+OUI:70B3D5CB4*
+ ID_OUI_FROM_DATABASE=Planewave Instruments
+
 OUI:70B3D5CB6*
  ID_OUI_FROM_DATABASE=Kuebrich Ingeniergesellschaft mbh & Co. KG
 
@@ -61154,6 +61838,9 @@ OUI:70B3D5CC9*
 OUI:70B3D5CCA*
  ID_OUI_FROM_DATABASE=SIEMENS AS
 
+OUI:70B3D5CCB*
+ ID_OUI_FROM_DATABASE=RealD
+
 OUI:70B3D5CCC*
  ID_OUI_FROM_DATABASE=AEC s.r.l.
 
@@ -61184,6 +61871,9 @@ OUI:70B3D5CD6*
 OUI:70B3D5CD9*
  ID_OUI_FROM_DATABASE=Peter Huber Kaeltemaschinenbau GmbH
 
+OUI:70B3D5CDA*
+ ID_OUI_FROM_DATABASE=VITEC
+
 OUI:70B3D5CDE*
  ID_OUI_FROM_DATABASE=Multipure International
 
@@ -61430,6 +62120,9 @@ OUI:70B3D5D79*
 OUI:70B3D5D7A*
  ID_OUI_FROM_DATABASE=Speedifi Inc
 
+OUI:70B3D5D7B*
+ ID_OUI_FROM_DATABASE=Peter Huber Kaeltemaschinenbau AG
+
 OUI:70B3D5D7E*
  ID_OUI_FROM_DATABASE=Triax A/S
 
@@ -61514,6 +62207,9 @@ OUI:70B3D5DA4*
 OUI:70B3D5DA8*
  ID_OUI_FROM_DATABASE=Tagarno AS
 
+OUI:70B3D5DAA*
+ ID_OUI_FROM_DATABASE=AmTote Australasia
+
 OUI:70B3D5DAD*
  ID_OUI_FROM_DATABASE=GD Mission Systems
 
@@ -61532,6 +62228,9 @@ OUI:70B3D5DB5*
 OUI:70B3D5DB8*
  ID_OUI_FROM_DATABASE=SISTEM SA
 
+OUI:70B3D5DBF*
+ ID_OUI_FROM_DATABASE=Infodev Electronic Designers Intl.
+
 OUI:70B3D5DC0*
  ID_OUI_FROM_DATABASE=ATEME
 
@@ -61595,6 +62294,9 @@ OUI:70B3D5DE7*
 OUI:70B3D5DE8*
  ID_OUI_FROM_DATABASE=Nation-E Ltd.
 
+OUI:70B3D5DE9*
+ ID_OUI_FROM_DATABASE=Private
+
 OUI:70B3D5DEC*
  ID_OUI_FROM_DATABASE=Condev-Automation GmbH
 
@@ -61667,6 +62369,9 @@ OUI:70B3D5E18*
 OUI:70B3D5E1A*
  ID_OUI_FROM_DATABASE=BIZERBA LUCEO
 
+OUI:70B3D5E1B*
+ ID_OUI_FROM_DATABASE=Neuron GmbH
+
 OUI:70B3D5E1C*
  ID_OUI_FROM_DATABASE=Xcenter AS
 
@@ -61709,6 +62414,9 @@ OUI:70B3D5E36*
 OUI:70B3D5E39*
  ID_OUI_FROM_DATABASE=Thinnect, Inc,
 
+OUI:70B3D5E3A*
+ ID_OUI_FROM_DATABASE=Cyanview
+
 OUI:70B3D5E3B*
  ID_OUI_FROM_DATABASE=ComNav Technology Ltd.
 
@@ -61769,6 +62477,9 @@ OUI:70B3D5E5E*
 OUI:70B3D5E67*
  ID_OUI_FROM_DATABASE=APPLIED PROCESSING
 
+OUI:70B3D5E69*
+ ID_OUI_FROM_DATABASE=Fire4 Systems UK Ltd
+
 OUI:70B3D5E6C*
  ID_OUI_FROM_DATABASE=Fusar Technologies inc
 
@@ -61817,6 +62528,9 @@ OUI:70B3D5E82*
 OUI:70B3D5E85*
  ID_OUI_FROM_DATABASE=Explorer Inc.
 
+OUI:70B3D5E86*
+ ID_OUI_FROM_DATABASE=YUYAMA MFG Co.,Ltd
+
 OUI:70B3D5E88*
  ID_OUI_FROM_DATABASE=Breas Medical AB
 
@@ -61895,6 +62609,12 @@ OUI:70B3D5EB1*
 OUI:70B3D5EB2*
  ID_OUI_FROM_DATABASE=Shooter Detection Systems
 
+OUI:70B3D5EB3*
+ ID_OUI_FROM_DATABASE=KWS-Electronic GmbH
+
+OUI:70B3D5EB5*
+ ID_OUI_FROM_DATABASE=JUSTEK INC
+
 OUI:70B3D5EB7*
  ID_OUI_FROM_DATABASE=Skreens
 
@@ -62141,6 +62861,9 @@ OUI:70B3D5F5B*
 OUI:70B3D5F5C*
  ID_OUI_FROM_DATABASE=Nable Communications, Inc.
 
+OUI:70B3D5F5E*
+ ID_OUI_FROM_DATABASE=Selex ES Inc.
+
 OUI:70B3D5F61*
  ID_OUI_FROM_DATABASE=Power Diagnostic Service
 
@@ -62186,6 +62909,9 @@ OUI:70B3D5F78*
 OUI:70B3D5F79*
  ID_OUI_FROM_DATABASE=Firehose Labs, Inc.
 
+OUI:70B3D5F7A*
+ ID_OUI_FROM_DATABASE=SENSO2ME
+
 OUI:70B3D5F7B*
  ID_OUI_FROM_DATABASE=KST technology
 
@@ -62201,6 +62927,9 @@ OUI:70B3D5F83*
 OUI:70B3D5F85*
  ID_OUI_FROM_DATABASE=Solystic
 
+OUI:70B3D5F87*
+ ID_OUI_FROM_DATABASE=SHINWA INDUSTRIES, INC.
+
 OUI:70B3D5F8B*
  ID_OUI_FROM_DATABASE=IOOOTA Srl
 
@@ -62213,6 +62942,9 @@ OUI:70B3D5F8D*
 OUI:70B3D5F8E*
  ID_OUI_FROM_DATABASE=Isabellenhütte Heusler Gmbh &Co KG
 
+OUI:70B3D5F8F*
+ ID_OUI_FROM_DATABASE=DIMASTEC GESTAO DE PONTO E ACESSO EIRELI-ME
+
 OUI:70B3D5F92*
  ID_OUI_FROM_DATABASE=TechOne
 
@@ -62225,6 +62957,9 @@ OUI:70B3D5F95*
 OUI:70B3D5F96*
  ID_OUI_FROM_DATABASE=Ecologicsense
 
+OUI:70B3D5F98*
+ ID_OUI_FROM_DATABASE=Metrum Sweden AB
+
 OUI:70B3D5F99*
  ID_OUI_FROM_DATABASE=TEX COMPUTER SRL
 
@@ -62246,6 +62981,9 @@ OUI:70B3D5FA1*
 OUI:70B3D5FA2*
  ID_OUI_FROM_DATABASE=Sarokal Test Systems Oy
 
+OUI:70B3D5FA3*
+ ID_OUI_FROM_DATABASE=ELVA-1 MICROWAVE HANDELSBOLAG
+
 OUI:70B3D5FA4*
  ID_OUI_FROM_DATABASE=Energybox Limited
 
@@ -62354,6 +63092,9 @@ OUI:70B3D5FDF*
 OUI:70B3D5FE2*
  ID_OUI_FROM_DATABASE=Galileo Tıp Teknolojileri San. ve Tic. A.S.
 
+OUI:70B3D5FE3*
+ ID_OUI_FROM_DATABASE=CSM MACHINERY srl
+
 OUI:70B3D5FE4*
  ID_OUI_FROM_DATABASE=CARE PVT LTD
 
@@ -62429,6 +63170,9 @@ OUI:70C6AC*
 OUI:70C76F*
  ID_OUI_FROM_DATABASE=INNO S
 
+OUI:70C94E*
+ ID_OUI_FROM_DATABASE=Liteon Technology Corporation
+
 OUI:70CA4D*
  ID_OUI_FROM_DATABASE=Shenzhen lnovance Technology Co.,Ltd.
 
@@ -62438,6 +63182,9 @@ OUI:70CA9B*
 OUI:70CD60*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
+OUI:70D081*
+ ID_OUI_FROM_DATABASE=Beijing Netpower Technologies Inc.
+
 OUI:70D379*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -62516,6 +63263,9 @@ OUI:70EE50*
 OUI:70EEA3*
  ID_OUI_FROM_DATABASE=Eoptolink Technology Inc. Ltd,
 
+OUI:70EF00*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:70F087*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
@@ -62534,6 +63284,9 @@ OUI:70F1A1*
 OUI:70F1E5*
  ID_OUI_FROM_DATABASE=Xetawave LLC
 
+OUI:70F220*
+ ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc
+
 OUI:70F35A*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -62882,6 +63635,12 @@ OUI:746F3D*
 OUI:746FF7*
  ID_OUI_FROM_DATABASE=Wistron Neweb Corporation
 
+OUI:7470FD*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
+OUI:74721E*
+ ID_OUI_FROM_DATABASE=Edison Labs Inc.
+
 OUI:7472B0*
  ID_OUI_FROM_DATABASE=Guangzhou Shiyuan Electronics Co., Ltd.
 
@@ -63182,6 +63941,9 @@ OUI:74E14AE*
 OUI:74E14AF*
  ID_OUI_FROM_DATABASE=Private
 
+OUI:74E182*
+ ID_OUI_FROM_DATABASE=Texas Instruments
+
 OUI:74E19A*
  ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
 
@@ -63353,6 +64115,9 @@ OUI:780AC7*
 OUI:780CB8*
  ID_OUI_FROM_DATABASE=Intel Corporate
 
+OUI:780F77*
+ ID_OUI_FROM_DATABASE=HangZhou Gubei Electronics Technology Co.,Ltd
+
 OUI:781185*
  ID_OUI_FROM_DATABASE=NBS Payment Solutions Inc.
 
@@ -63398,6 +64163,9 @@ OUI:7824AF*
 OUI:782544*
  ID_OUI_FROM_DATABASE=Omnima Limited
 
+OUI:78257A*
+ ID_OUI_FROM_DATABASE=LEO Innovation Lab
+
 OUI:7825AD*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
@@ -63500,6 +64268,9 @@ OUI:78521A*
 OUI:785262*
  ID_OUI_FROM_DATABASE=Shenzhen Hojy Software Co., Ltd.
 
+OUI:785364*
+ ID_OUI_FROM_DATABASE=SHIFT GmbH
+
 OUI:7853F2*
  ID_OUI_FROM_DATABASE=ROXTON Ltd.
 
@@ -63512,6 +64283,9 @@ OUI:785517*
 OUI:785712*
  ID_OUI_FROM_DATABASE=Mobile Integration Workgroup
 
+OUI:785860*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:7858F3*
  ID_OUI_FROM_DATABASE=Vachen Co.,Ltd
 
@@ -63530,6 +64304,9 @@ OUI:785C28*
 OUI:785C72*
  ID_OUI_FROM_DATABASE=Hioso Technology Co., Ltd.
 
+OUI:785DC8*
+ ID_OUI_FROM_DATABASE=LG Electronics
+
 OUI:785F4C*
  ID_OUI_FROM_DATABASE=Argox Information Co., Ltd.
 
@@ -63612,7 +64389,7 @@ OUI:788C4D*
  ID_OUI_FROM_DATABASE=Indyme Solutions, LLC
 
 OUI:788C54*
- ID_OUI_FROM_DATABASE=Eltek Technologies LTD
+ ID_OUI_FROM_DATABASE=Ping Communication
 
 OUI:788DF7*
  ID_OUI_FROM_DATABASE=Hitron Technologies. Inc
@@ -64163,6 +64940,9 @@ OUI:7C2048*
 OUI:7C2064*
  ID_OUI_FROM_DATABASE=Alcatel-Lucent IPD
 
+OUI:7C2586*
+ ID_OUI_FROM_DATABASE=Juniper Networks
+
 OUI:7C2587*
  ID_OUI_FROM_DATABASE=chaowifi.com
 
@@ -64172,6 +64952,9 @@ OUI:7C2634*
 OUI:7C2664*
  ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
 
+OUI:7C2A31*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
 OUI:7C2BE1*
  ID_OUI_FROM_DATABASE=Shenzhen Ferex Electrical Co.,Ltd
 
@@ -64202,6 +64985,9 @@ OUI:7C386C*
 OUI:7C3920*
  ID_OUI_FROM_DATABASE=SSOMA SECURITY
 
+OUI:7C3953*
+ ID_OUI_FROM_DATABASE=zte corporation
+
 OUI:7C3BD5*
  ID_OUI_FROM_DATABASE=Imago Group
 
@@ -64268,6 +65054,9 @@ OUI:7C477CE*
 OUI:7C49B9*
  ID_OUI_FROM_DATABASE=Plexus Manufacturing Sdn Bhd
 
+OUI:7C49EB*
+ ID_OUI_FROM_DATABASE=XIAOMI Electronics,CO.,LTD
+
 OUI:7C4A82*
  ID_OUI_FROM_DATABASE=Portsmith LLC
 
@@ -64814,6 +65603,9 @@ OUI:7CFE4E*
 OUI:7CFE90*
  ID_OUI_FROM_DATABASE=Mellanox Technologies, Inc.
 
+OUI:7CFF4D*
+ ID_OUI_FROM_DATABASE=AVM Audiovisuelles Marketing und Computersysteme GmbH
+
 OUI:7CFF62*
  ID_OUI_FROM_DATABASE=Huizhou Super Electron Technology Co.,Ltd.
 
@@ -64913,6 +65705,9 @@ OUI:801DAA*
 OUI:801F02*
  ID_OUI_FROM_DATABASE=Edimax Technology Co. Ltd.
 
+OUI:801F12*
+ ID_OUI_FROM_DATABASE=Microchip Technology Inc.
+
 OUI:8020AF*
  ID_OUI_FROM_DATABASE=Trade FIDES, a.s.
 
@@ -64985,6 +65780,9 @@ OUI:803F5D*
 OUI:803FD6*
  ID_OUI_FROM_DATABASE=bytes at work AG
 
+OUI:804126*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:80414E*
  ID_OUI_FROM_DATABASE=BBK EDUCATIONAL ELECTRONICS CORP.,LTD.
 
@@ -65003,6 +65801,9 @@ OUI:804971*
 OUI:804B20*
  ID_OUI_FROM_DATABASE=Ventilation Control
 
+OUI:804E70*
+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+
 OUI:804E81*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
@@ -65228,6 +66029,9 @@ OUI:80AAA4*
 OUI:80ACAC*
  ID_OUI_FROM_DATABASE=Juniper Networks
 
+OUI:80AD16*
+ ID_OUI_FROM_DATABASE=Xiaomi Communications Co Ltd
+
 OUI:80AD67*
  ID_OUI_FROM_DATABASE=Kasda Networks Inc
 
@@ -65273,6 +66077,9 @@ OUI:80BE05*
 OUI:80C16E*
  ID_OUI_FROM_DATABASE=Hewlett Packard
 
+OUI:80C548*
+ ID_OUI_FROM_DATABASE=Shenzhen Zowee Technology Co.,Ltd
+
 OUI:80C5E6*
  ID_OUI_FROM_DATABASE=Microsoft Corporation
 
@@ -65294,6 +66101,9 @@ OUI:80C755*
 OUI:80C862*
  ID_OUI_FROM_DATABASE=Openpeak, Inc
 
+OUI:80CE62*
+ ID_OUI_FROM_DATABASE=Hewlett Packard
+
 OUI:80CEB1*
  ID_OUI_FROM_DATABASE=Theissen Training Systems GmbH
 
@@ -65693,6 +66503,9 @@ OUI:847303*
 OUI:84742A*
  ID_OUI_FROM_DATABASE=zte corporation
 
+OUI:847460*
+ ID_OUI_FROM_DATABASE=zte corporation
+
 OUI:847616*
  ID_OUI_FROM_DATABASE=Addat s.r.o.
 
@@ -65930,6 +66743,9 @@ OUI:84D9C8*
 OUI:84DB2F*
  ID_OUI_FROM_DATABASE=Sierra Wireless Inc
 
+OUI:84DB9E*
+ ID_OUI_FROM_DATABASE=Aifloo AB
+
 OUI:84DBAC*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
@@ -66083,6 +66899,9 @@ OUI:88142B*
 OUI:881544*
  ID_OUI_FROM_DATABASE=Cisco Meraki
 
+OUI:8817A3*
+ ID_OUI_FROM_DATABASE=Integrated Device Technology (Malaysia) Sdn. Bhd.
+
 OUI:8818AE*
  ID_OUI_FROM_DATABASE=Tamron Co., Ltd
 
@@ -66117,7 +66936,7 @@ OUI:8828B3*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
 OUI:882950*
- ID_OUI_FROM_DATABASE=Dalian Netmoon Tech Develop Co.,Ltd
+ ID_OUI_FROM_DATABASE=Netmoon Technology Co., Ltd
 
 OUI:882BD7*
  ID_OUI_FROM_DATABASE=ADDÉNERGIE  TECHNOLOGIES
@@ -66155,6 +66974,9 @@ OUI:883B8B*
 OUI:883C1C*
  ID_OUI_FROM_DATABASE=MERCURY CORPORATION
 
+OUI:883D24*
+ ID_OUI_FROM_DATABASE=Google, Inc.
+
 OUI:883FD3*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
@@ -66269,6 +67091,9 @@ OUI:885D90F*
 OUI:885DFB*
  ID_OUI_FROM_DATABASE=zte corporation
 
+OUI:885FE8*
+ ID_OUI_FROM_DATABASE=IEEE Registration Authority
+
 OUI:88615A*
  ID_OUI_FROM_DATABASE=Siano Mobile Silicon Ltd.
 
@@ -66446,6 +67271,51 @@ OUI:88A6C6*
 OUI:88A73C*
  ID_OUI_FROM_DATABASE=Ragentek Technology Group
 
+OUI:88A9A70*
+ ID_OUI_FROM_DATABASE=Shenzhenshi kechuangzhixian technology Co.LTD
+
+OUI:88A9A71*
+ ID_OUI_FROM_DATABASE=Solaredge LTD.
+
+OUI:88A9A72*
+ ID_OUI_FROM_DATABASE=Honeywell spol. s.r.o. HTS CZ o.z.
+
+OUI:88A9A73*
+ ID_OUI_FROM_DATABASE=Mikroelektronika
+
+OUI:88A9A74*
+ ID_OUI_FROM_DATABASE=Thomas & Darden, Inc
+
+OUI:88A9A75*
+ ID_OUI_FROM_DATABASE=Volterman Inc.
+
+OUI:88A9A76*
+ ID_OUI_FROM_DATABASE=Sieper Lüdenscheid GmbH & Co. KG
+
+OUI:88A9A77*
+ ID_OUI_FROM_DATABASE=kimura giken corporation
+
+OUI:88A9A78*
+ ID_OUI_FROM_DATABASE=psb intralogistics GmbH
+
+OUI:88A9A79*
+ ID_OUI_FROM_DATABASE=FlashForge Corporation
+
+OUI:88A9A7A*
+ ID_OUI_FROM_DATABASE=Zhejiang Haoteng Electronic Technology Co.,Ltd.
+
+OUI:88A9A7B*
+ ID_OUI_FROM_DATABASE=TWK-ELEKTRONIK
+
+OUI:88A9A7C*
+ ID_OUI_FROM_DATABASE=AndroVideo Inc.
+
+OUI:88A9A7D*
+ ID_OUI_FROM_DATABASE=AVLINK INDUSTRIAL CO., LTD
+
+OUI:88A9A7E*
+ ID_OUI_FROM_DATABASE=Impact Distribution
+
 OUI:88ACC1*
  ID_OUI_FROM_DATABASE=Generiton Co., Ltd.
 
@@ -66467,12 +67337,18 @@ OUI:88B168*
 OUI:88B1E1*
  ID_OUI_FROM_DATABASE=Mojo Networks, Inc.
 
+OUI:88B362*
+ ID_OUI_FROM_DATABASE=Nokia Shanghai Bell Co. Ltd.)
+
 OUI:88B4A6*
  ID_OUI_FROM_DATABASE=Motorola Mobility LLC, a Lenovo Company
 
 OUI:88B627*
  ID_OUI_FROM_DATABASE=Gembird Europe BV
 
+OUI:88B6EE*
+ ID_OUI_FROM_DATABASE=Dish Technologies Corp
+
 OUI:88B8D0*
  ID_OUI_FROM_DATABASE=Dongguan Koppo Electronic Co.,Ltd
 
@@ -66590,6 +67466,9 @@ OUI:88E87F*
 OUI:88E8F8*
  ID_OUI_FROM_DATABASE=YONG TAI ELECTRONIC (DONGGUAN) LTD.
 
+OUI:88E90F*
+ ID_OUI_FROM_DATABASE=innomdlelab
+
 OUI:88E917*
  ID_OUI_FROM_DATABASE=Tamaggo
 
@@ -66704,6 +67583,9 @@ OUI:8C147DD*
 OUI:8C147DE*
  ID_OUI_FROM_DATABASE=Electrical & Automation Larsen & Toubro Limited
 
+OUI:8C1645*
+ ID_OUI_FROM_DATABASE=LCFC(HeFei) Electronics Technology co., ltd
+
 OUI:8C18D9*
  ID_OUI_FROM_DATABASE=Shenzhen RF Technology Co., Ltd
 
@@ -66821,6 +67703,9 @@ OUI:8C4AEE*
 OUI:8C4B59*
  ID_OUI_FROM_DATABASE=3D Imaging & Simulations Corp
 
+OUI:8C4CAD*
+ ID_OUI_FROM_DATABASE=Evoluzn Inc.
+
 OUI:8C4CDC*
  ID_OUI_FROM_DATABASE=PLANEX COMMUNICATIONS INC.
 
@@ -66854,6 +67739,9 @@ OUI:8C57FD*
 OUI:8C5877*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
+OUI:8C5973*
+ ID_OUI_FROM_DATABASE=Zyxel Communications Corporation
+
 OUI:8C598B*
  ID_OUI_FROM_DATABASE=C Technologies AB
 
@@ -67202,12 +68090,21 @@ OUI:8CF228*
 OUI:8CF5A3*
  ID_OUI_FROM_DATABASE=SAMSUNG ELECTRO-MECHANICS(THAILAND)
 
+OUI:8CF710*
+ ID_OUI_FROM_DATABASE=AMPAK Technology, Inc.
+
+OUI:8CF773*
+ ID_OUI_FROM_DATABASE=Nokia
+
 OUI:8CF813*
  ID_OUI_FROM_DATABASE=ORANGE POLSKA
 
 OUI:8CF945*
  ID_OUI_FROM_DATABASE=Power Automation pte Ltd
 
+OUI:8CF957*
+ ID_OUI_FROM_DATABASE=RuiXingHengFang Network (Shenzhen) Co.,Ltd
+
 OUI:8CF9C9*
  ID_OUI_FROM_DATABASE=MESADA Technology Co.,Ltd.
 
@@ -67238,6 +68135,9 @@ OUI:9002A9*
 OUI:900325*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
+OUI:900372*
+ ID_OUI_FROM_DATABASE=Longnan Junya Digital Technology Co. Ltd.
+
 OUI:9003B7*
  ID_OUI_FROM_DATABASE=PARROT SA
 
@@ -67358,6 +68258,9 @@ OUI:903809*
 OUI:9038DF*
  ID_OUI_FROM_DATABASE=Changzhou Tiannengbo System Co. Ltd.
 
+OUI:903A72*
+ ID_OUI_FROM_DATABASE=Ruckus Wireless
+
 OUI:903AA0*
  ID_OUI_FROM_DATABASE=Nokia
 
@@ -67541,6 +68444,9 @@ OUI:907240*
 OUI:907282*
  ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
 
+OUI:907910*
+ ID_OUI_FROM_DATABASE=Integrated Device Technology (Malaysia) Sdn. Bhd.
+
 OUI:907990*
  ID_OUI_FROM_DATABASE=Benchmark Electronics Romania SRL
 
@@ -67562,6 +68468,9 @@ OUI:907F61*
 OUI:908260*
  ID_OUI_FROM_DATABASE=IEEE 1904.1 Working Group
 
+OUI:90834B*
+ ID_OUI_FROM_DATABASE=BEIJING YUNYI TIMES TECHNOLOGY CO,.LTD
+
 OUI:90837A*
  ID_OUI_FROM_DATABASE=General Electric Water & Process Technologies
 
@@ -67571,6 +68480,9 @@ OUI:90840D*
 OUI:90842B*
  ID_OUI_FROM_DATABASE=LEGO System A/S
 
+OUI:90848B*
+ ID_OUI_FROM_DATABASE=HDR10+ Technologies, LLC
+
 OUI:908674*
  ID_OUI_FROM_DATABASE=SICHUAN TIANYI COMHEART TELECOMCO., LTD
 
@@ -67607,6 +68519,9 @@ OUI:909060*
 OUI:9092B4*
  ID_OUI_FROM_DATABASE=Diehl BGT Defence GmbH & Co. KG
 
+OUI:909497*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:9094E4*
  ID_OUI_FROM_DATABASE=D-Link International
 
@@ -68048,6 +68963,9 @@ OUI:946124*
 OUI:946269*
  ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
 
+OUI:946372*
+ ID_OUI_FROM_DATABASE=vivo Mobile Communication Co., Ltd.
+
 OUI:9463D1*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
@@ -68060,6 +68978,9 @@ OUI:94659C*
 OUI:9466E7*
  ID_OUI_FROM_DATABASE=WOM Engineering
 
+OUI:946AB0*
+ ID_OUI_FROM_DATABASE=Arcadyan Corporation
+
 OUI:9470D2*
  ID_OUI_FROM_DATABASE=WINFIRM TECHNOLOGY
 
@@ -68120,6 +69041,9 @@ OUI:948BC1*
 OUI:948D50*
  ID_OUI_FROM_DATABASE=Beamex Oy Ab
 
+OUI:948DEF*
+ ID_OUI_FROM_DATABASE=Oetiker Schweiz AG
+
 OUI:948E89*
  ID_OUI_FROM_DATABASE=INDUSTRIAS UNIDAS SA DE CV
 
@@ -68198,6 +69122,9 @@ OUI:94B40F*
 OUI:94B819*
  ID_OUI_FROM_DATABASE=Nokia
 
+OUI:94B86D*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
 OUI:94B8C5*
  ID_OUI_FROM_DATABASE=RuggedCom Inc.
 
@@ -68396,6 +69323,9 @@ OUI:94FD2E*
 OUI:94FE22*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
+OUI:94FE9D*
+ ID_OUI_FROM_DATABASE=SHENZHEN GONGJIN ELECTRONICS CO.,LT
+
 OUI:94FEF4*
  ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
 
@@ -68579,6 +69509,9 @@ OUI:984246*
 OUI:9843DA*
  ID_OUI_FROM_DATABASE=INTERTECH
 
+OUI:984562*
+ ID_OUI_FROM_DATABASE=Shanghai Baud Data Communication Co.,Ltd.
+
 OUI:98473C*
  ID_OUI_FROM_DATABASE=SHANGHAI SUNMON COMMUNICATION TECHNOGY CO.,LTD
 
@@ -68870,6 +69803,9 @@ OUI:98C5DB*
 OUI:98C845*
  ID_OUI_FROM_DATABASE=PacketAccess
 
+OUI:98CA33*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:98CB27*
  ID_OUI_FROM_DATABASE=Galore Networks Pvt. Ltd.
 
@@ -68897,6 +69833,9 @@ OUI:98D6BB*
 OUI:98D6F7*
  ID_OUI_FROM_DATABASE=LG Electronics (Mobile Communications)
 
+OUI:98D863*
+ ID_OUI_FROM_DATABASE=Shanghai High-Flying Electronics Technology Co., Ltd
+
 OUI:98D88C*
  ID_OUI_FROM_DATABASE=Nortel Networks
 
@@ -69119,6 +70058,51 @@ OUI:9C3EAA*
 OUI:9C417C*
  ID_OUI_FROM_DATABASE=Hame  Technology Co.,  Limited
 
+OUI:9C431E0*
+ ID_OUI_FROM_DATABASE=Antailiye Technology Co.,Ltd
+
+OUI:9C431E1*
+ ID_OUI_FROM_DATABASE=Symfun Telecom Ltd
+
+OUI:9C431E2*
+ ID_OUI_FROM_DATABASE=HAESUNG DS
+
+OUI:9C431E3*
+ ID_OUI_FROM_DATABASE=Advanced Logic Technology (ALT) sa
+
+OUI:9C431E4*
+ ID_OUI_FROM_DATABASE=Wireless Environment, LLC
+
+OUI:9C431E5*
+ ID_OUI_FROM_DATABASE=ProMOS Technologies Inc.
+
+OUI:9C431E6*
+ ID_OUI_FROM_DATABASE=R-S-I Elektrotechnik GmbH  CO KG
+
+OUI:9C431E7*
+ ID_OUI_FROM_DATABASE=Optris GmbH
+
+OUI:9C431E8*
+ ID_OUI_FROM_DATABASE=Wunda Group plc
+
+OUI:9C431E9*
+ ID_OUI_FROM_DATABASE=CONTINENT Co. Ltd
+
+OUI:9C431EA*
+ ID_OUI_FROM_DATABASE=ST Access Control System Corp.
+
+OUI:9C431EB*
+ ID_OUI_FROM_DATABASE=JNL Technologies Inc
+
+OUI:9C431EC*
+ ID_OUI_FROM_DATABASE=SuZhou Jinruiyang Information Technology CO.,LTD
+
+OUI:9C431ED*
+ ID_OUI_FROM_DATABASE=HK ELEPHONE Communication Tech Co.,Limited
+
+OUI:9C431EE*
+ ID_OUI_FROM_DATABASE=Midas Technology DBA Phoenix Audio Technologies
+
 OUI:9C443D*
  ID_OUI_FROM_DATABASE=CHENGDU XUGUANG TECHNOLOGY CO, LTD
 
@@ -69662,6 +70646,12 @@ OUI:A036F0*
 OUI:A036FA*
  ID_OUI_FROM_DATABASE=Ettus Research LLC
 
+OUI:A038F8*
+ ID_OUI_FROM_DATABASE=OURA Health Oy
+
+OUI:A039EE*
+ ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
+
 OUI:A039F7*
  ID_OUI_FROM_DATABASE=LG Electronics (Mobile Communications)
 
@@ -69779,6 +70769,9 @@ OUI:A055DE*
 OUI:A056B2*
  ID_OUI_FROM_DATABASE=Harman/Becker Automotive Systems GmbH
 
+OUI:A057E3*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:A0593A*
  ID_OUI_FROM_DATABASE=V.D.S. Video Display Systems srl
 
@@ -69809,6 +70802,9 @@ OUI:A0648F*
 OUI:A06518*
  ID_OUI_FROM_DATABASE=VNPT TECHNOLOGY
 
+OUI:A06610*
+ ID_OUI_FROM_DATABASE=FUJITSU LIMITED
+
 OUI:A067BE*
  ID_OUI_FROM_DATABASE=Sicon srl
 
@@ -70421,6 +71417,9 @@ OUI:A43135*
 OUI:A433D1*
  ID_OUI_FROM_DATABASE=Fibrlink Communications Co.,Ltd.
 
+OUI:A433D7*
+ ID_OUI_FROM_DATABASE=MitraStar Technology Corp.
+
 OUI:A43412*
  ID_OUI_FROM_DATABASE=Thales Alenia Space
 
@@ -70433,6 +71432,9 @@ OUI:A434F1*
 OUI:A43831*
  ID_OUI_FROM_DATABASE=RF elements s.r.o.
 
+OUI:A438CC*
+ ID_OUI_FROM_DATABASE=Nintendo Co.,Ltd
+
 OUI:A438FC*
  ID_OUI_FROM_DATABASE=Plastic Logic
 
@@ -70493,6 +71495,9 @@ OUI:A43D78*
 OUI:A43E51*
  ID_OUI_FROM_DATABASE=ANOV FRANCE
 
+OUI:A44027*
+ ID_OUI_FROM_DATABASE=zte corporation
+
 OUI:A444D1*
  ID_OUI_FROM_DATABASE=Wingtech Group (HongKong)Limited
 
@@ -70569,7 +71574,7 @@ OUI:A44F29F*
  ID_OUI_FROM_DATABASE=Private
 
 OUI:A45055*
- ID_OUI_FROM_DATABASE=busware.de
+ ID_OUI_FROM_DATABASE=BUSWARE.DE
 
 OUI:A4516F*
  ID_OUI_FROM_DATABASE=Microsoft Mobile Oy
@@ -70907,6 +71912,9 @@ OUI:A4D1D2*
 OUI:A4D3B5*
  ID_OUI_FROM_DATABASE=GLITEL Stropkov, s.r.o.
 
+OUI:A4D4B2*
+ ID_OUI_FROM_DATABASE=Shenzhen MeiG Smart Technology Co.,Ltd
+
 OUI:A4D578*
  ID_OUI_FROM_DATABASE=Texas Instruments
 
@@ -70919,6 +71927,51 @@ OUI:A4D8CA*
 OUI:A4D9A4*
  ID_OUI_FROM_DATABASE=neXus ID Solutions AB
 
+OUI:A4DA220*
+ ID_OUI_FROM_DATABASE=General Electric Company
+
+OUI:A4DA221*
+ ID_OUI_FROM_DATABASE=T2T System
+
+OUI:A4DA222*
+ ID_OUI_FROM_DATABASE=Wyze Labs Inc
+
+OUI:A4DA223*
+ ID_OUI_FROM_DATABASE=DURATECH Enterprise,LLC
+
+OUI:A4DA224*
+ ID_OUI_FROM_DATABASE=LORIOT AG
+
+OUI:A4DA225*
+ ID_OUI_FROM_DATABASE=Original Products Pvt. Ltd.
+
+OUI:A4DA226*
+ ID_OUI_FROM_DATABASE=AURANEXT
+
+OUI:A4DA227*
+ ID_OUI_FROM_DATABASE=Hydro Electronic Devices, Inc.
+
+OUI:A4DA228*
+ ID_OUI_FROM_DATABASE=SolidPro Technology Corporation
+
+OUI:A4DA229*
+ ID_OUI_FROM_DATABASE=Malldon Technology Limited
+
+OUI:A4DA22A*
+ ID_OUI_FROM_DATABASE=Abetechs GmbH
+
+OUI:A4DA22B*
+ ID_OUI_FROM_DATABASE=Klashwerks Inc.
+
+OUI:A4DA22C*
+ ID_OUI_FROM_DATABASE=EHO.LINK
+
+OUI:A4DA22D*
+ ID_OUI_FROM_DATABASE=Shen Zhen City YaKun Electronics Co., Ltd
+
+OUI:A4DA22E*
+ ID_OUI_FROM_DATABASE=Quuppa Oy
+
 OUI:A4DA3F*
  ID_OUI_FROM_DATABASE=Bionics Corp.
 
@@ -71093,6 +72146,9 @@ OUI:A830AD*
 OUI:A8329A*
  ID_OUI_FROM_DATABASE=Digicom Futuristic Technologies Ltd.
 
+OUI:A8367A*
+ ID_OUI_FROM_DATABASE=frogblue TECHNOLOGY GmbH
+
 OUI:A83944*
  ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc
 
@@ -71117,6 +72173,9 @@ OUI:A849A5*
 OUI:A84E3F*
  ID_OUI_FROM_DATABASE=Hitron Technologies. Inc
 
+OUI:A8515B*
+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+
 OUI:A854B2*
  ID_OUI_FROM_DATABASE=Wistron Neweb Corporation
 
@@ -71147,6 +72206,9 @@ OUI:A85EE4*
 OUI:A860B6*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
+OUI:A8610A*
+ ID_OUI_FROM_DATABASE=ARDUINO AG
+
 OUI:A861AA*
  ID_OUI_FROM_DATABASE=Cloudview Limited
 
@@ -71390,6 +72452,9 @@ OUI:A8D828*
 OUI:A8D88A*
  ID_OUI_FROM_DATABASE=Wyconn
 
+OUI:A8DA01*
+ ID_OUI_FROM_DATABASE=Shenzhen NUOLIJIA Digital Technology Co.,Ltd
+
 OUI:A8E018*
  ID_OUI_FROM_DATABASE=Nokia Corporation
 
@@ -71474,6 +72539,9 @@ OUI:AC0613*
 OUI:AC06C7*
  ID_OUI_FROM_DATABASE=ServerNet S.r.l.
 
+OUI:AC075F*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:AC0A61*
  ID_OUI_FROM_DATABASE=Labor S.r.L.
 
@@ -71498,6 +72566,9 @@ OUI:AC162D*
 OUI:AC1702*
  ID_OUI_FROM_DATABASE=Fibar Group sp. z o.o.
 
+OUI:AC17C8*
+ ID_OUI_FROM_DATABASE=Cisco Meraki
+
 OUI:AC1826*
  ID_OUI_FROM_DATABASE=Seiko Epson Corporation
 
@@ -72092,6 +73163,9 @@ OUI:ACF7F3*
 OUI:ACF85C*
  ID_OUI_FROM_DATABASE=Private
 
+OUI:ACF970*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:ACF97E*
  ID_OUI_FROM_DATABASE=ELESYS INC.
 
@@ -72206,6 +73280,9 @@ OUI:B025AA*
 OUI:B02628*
  ID_OUI_FROM_DATABASE=Broadcom Limited
 
+OUI:B02680*
+ ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+
 OUI:B03495*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
@@ -72473,6 +73550,9 @@ OUI:B0AA36*
 OUI:B0AA77*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
+OUI:B0ACD2*
+ ID_OUI_FROM_DATABASE=zte corporation
+
 OUI:B0ACFA*
  ID_OUI_FROM_DATABASE=FUJITSU LIMITED
 
@@ -72488,6 +73568,9 @@ OUI:B0B2DC*
 OUI:B0B32B*
  ID_OUI_FROM_DATABASE=Slican Sp. z o.o.
 
+OUI:B0B3AD*
+ ID_OUI_FROM_DATABASE=HUMAX Co., Ltd.
+
 OUI:B0B448*
  ID_OUI_FROM_DATABASE=Texas Instruments
 
@@ -72761,6 +73844,9 @@ OUI:B41780*
 OUI:B418D1*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
+OUI:B41C30*
+ ID_OUI_FROM_DATABASE=zte corporation
+
 OUI:B41DEF*
  ID_OUI_FROM_DATABASE=Internet Laboratories, Inc.
 
@@ -72794,6 +73880,9 @@ OUI:B42CBE*
 OUI:B42D56*
  ID_OUI_FROM_DATABASE=Extreme Networks, Inc.
 
+OUI:B42EF8*
+ ID_OUI_FROM_DATABASE=Eline Technology co.Ltd
+
 OUI:B43052*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
@@ -72980,6 +74069,9 @@ OUI:B47C9C*
 OUI:B47F5E*
  ID_OUI_FROM_DATABASE=Foresight Manufacture (S) Pte Ltd
 
+OUI:B481BF*
+ ID_OUI_FROM_DATABASE=Meta-Networks, LLC
+
 OUI:B48255*
  ID_OUI_FROM_DATABASE=Research Products Corporation
 
@@ -73052,6 +74144,9 @@ OUI:B4A828*
 OUI:B4A82B*
  ID_OUI_FROM_DATABASE=Histar Digital Electronics Co., Ltd.
 
+OUI:B4A8B9*
+ ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+
 OUI:B4A95A*
  ID_OUI_FROM_DATABASE=Avaya Inc
 
@@ -73151,6 +74246,12 @@ OUI:B4D8DE*
 OUI:B4DD15*
  ID_OUI_FROM_DATABASE=ControlThings Oy Ab
 
+OUI:B4DE31*
+ ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+
+OUI:B4DEDF*
+ ID_OUI_FROM_DATABASE=zte corporation
+
 OUI:B4DF3B*
  ID_OUI_FROM_DATABASE=Chromlech
 
@@ -73172,9 +74273,15 @@ OUI:B4E1EB*
 OUI:B4E62A*
  ID_OUI_FROM_DATABASE=LG Innotek
 
+OUI:B4E62D*
+ ID_OUI_FROM_DATABASE=Espressif Inc.
+
 OUI:B4E782*
  ID_OUI_FROM_DATABASE=Vivalnk
 
+OUI:B4E9A3*
+ ID_OUI_FROM_DATABASE=port GmbH
+
 OUI:B4E9B0*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -73214,12 +74321,18 @@ OUI:B4F323*
 OUI:B4F61C*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
+OUI:B4F7A1*
+ ID_OUI_FROM_DATABASE=LG Electronics (Mobile Communications)
+
 OUI:B4F81E*
  ID_OUI_FROM_DATABASE=Kinova
 
 OUI:B4FBE4*
  ID_OUI_FROM_DATABASE=Ubiquiti Networks Inc.
 
+OUI:B4FBF9*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:B4FC75*
  ID_OUI_FROM_DATABASE=SEMA Electronics(HK) CO.,LTD
 
@@ -73499,6 +74612,9 @@ OUI:B88F14*
 OUI:B8921D*
  ID_OUI_FROM_DATABASE=BG T&A
 
+OUI:B89436*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:B894D2*
  ID_OUI_FROM_DATABASE=Retail Innovation HTT AB
 
@@ -73727,6 +74843,9 @@ OUI:B8DB1C*
 OUI:B8DC87*
  ID_OUI_FROM_DATABASE=IAI Corporation
 
+OUI:B8DE5E*
+ ID_OUI_FROM_DATABASE=LONGCHEER TELECOMMUNICATION LIMITED
+
 OUI:B8DF6B*
  ID_OUI_FROM_DATABASE=SpotCam Co., Ltd.
 
@@ -73829,6 +74948,9 @@ OUI:BC0F2B*
 OUI:BC0F64*
  ID_OUI_FROM_DATABASE=Intel Corporate
 
+OUI:BC0FA7*
+ ID_OUI_FROM_DATABASE=Ouster
+
 OUI:BC125E*
  ID_OUI_FROM_DATABASE=Beijing  WisVideo  INC.
 
@@ -74276,6 +75398,9 @@ OUI:BCA920*
 OUI:BCA9D6*
  ID_OUI_FROM_DATABASE=Cyber-Rain, Inc.
 
+OUI:BCAB7C*
+ ID_OUI_FROM_DATABASE=TRnP KOREA Co Ltd
+
 OUI:BCAD28*
  ID_OUI_FROM_DATABASE=Hangzhou Hikvision Digital Technology Co.,Ltd.
 
@@ -74363,6 +75488,9 @@ OUI:BCD713*
 OUI:BCD940*
  ID_OUI_FROM_DATABASE=ASR Co,.Ltd.
 
+OUI:BCDDC2*
+ ID_OUI_FROM_DATABASE=Espressif Inc.
+
 OUI:BCE09D*
  ID_OUI_FROM_DATABASE=Eoslink
 
@@ -74543,12 +75671,18 @@ OUI:C03FD5*
 OUI:C041F6*
  ID_OUI_FROM_DATABASE=LG ELECTRONICS INC
 
+OUI:C042D0*
+ ID_OUI_FROM_DATABASE=Juniper Networks
+
 OUI:C04301*
  ID_OUI_FROM_DATABASE=Epec Oy
 
 OUI:C044E3*
  ID_OUI_FROM_DATABASE=Shenzhen Sinkna Electronics Co., LTD
 
+OUI:C048E6*
+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+
 OUI:C0493D*
  ID_OUI_FROM_DATABASE=MAITRISE TECHNOLOGIQUE
 
@@ -74666,6 +75800,9 @@ OUI:C09727*
 OUI:C09879*
  ID_OUI_FROM_DATABASE=Acer Inc.
 
+OUI:C098DA*
+ ID_OUI_FROM_DATABASE=China Mobile IOT Company Limited
+
 OUI:C098E5*
  ID_OUI_FROM_DATABASE=University of Michigan
 
@@ -74720,6 +75857,9 @@ OUI:C0A53E*
 OUI:C0A5DD*
  ID_OUI_FROM_DATABASE=SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.
 
+OUI:C0A8F0*
+ ID_OUI_FROM_DATABASE=Adamson Systems Engineering
+
 OUI:C0AA68*
  ID_OUI_FROM_DATABASE=OSASI Technos Inc.
 
@@ -74903,6 +76043,9 @@ OUI:C40006*
 OUI:C40049*
  ID_OUI_FROM_DATABASE=Kamama
 
+OUI:C400AD*
+ ID_OUI_FROM_DATABASE=Advantech Technology (CHINA) Co., Ltd.
+
 OUI:C40142*
  ID_OUI_FROM_DATABASE=MaxMedia Technology Limited
 
@@ -75005,12 +76148,18 @@ OUI:C4291D*
 OUI:C42C03*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
+OUI:C42C4F*
+ ID_OUI_FROM_DATABASE=Qingdao Hisense Mobile Communication Technology Co,Ltd
+
 OUI:C42F90*
  ID_OUI_FROM_DATABASE=Hangzhou Hikvision Digital Technology Co.,Ltd.
 
 OUI:C43018*
  ID_OUI_FROM_DATABASE=MCS Logic Inc.
 
+OUI:C43306*
+ ID_OUI_FROM_DATABASE=China Mobile Group Device Co.,Ltd.
+
 OUI:C4346B*
  ID_OUI_FROM_DATABASE=Hewlett Packard
 
@@ -75122,6 +76271,9 @@ OUI:C45DD8*
 OUI:C46044*
  ID_OUI_FROM_DATABASE=Everex Electronics Limited
 
+OUI:C4618B*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:C4626B*
  ID_OUI_FROM_DATABASE=ZPT Vigantice
 
@@ -75134,6 +76286,9 @@ OUI:C46354*
 OUI:C46413*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
+OUI:C464E3*
+ ID_OUI_FROM_DATABASE=Texas Instruments
+
 OUI:C46699*
  ID_OUI_FROM_DATABASE=vivo Mobile Communication Co., Ltd.
 
@@ -75257,6 +76412,9 @@ OUI:C4824E*
 OUI:C4836F*
  ID_OUI_FROM_DATABASE=Ciena Corporation
 
+OUI:C48466*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:C48508*
  ID_OUI_FROM_DATABASE=Intel Corporate
 
@@ -75302,6 +76460,9 @@ OUI:C49DED*
 OUI:C49E41*
  ID_OUI_FROM_DATABASE=G24 Power Limited
 
+OUI:C49F4C*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:C49FF3*
  ID_OUI_FROM_DATABASE=Mciao Technologies, Inc.
 
@@ -75464,6 +76625,51 @@ OUI:C4FCE4*
 OUI:C4FF1F*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
+OUI:C4FFBC0*
+ ID_OUI_FROM_DATABASE=Danego BV
+
+OUI:C4FFBC1*
+ ID_OUI_FROM_DATABASE=VISATECH C0., LTD.
+
+OUI:C4FFBC2*
+ ID_OUI_FROM_DATABASE=Mobiletron Electronics Co., Ltd
+
+OUI:C4FFBC3*
+ ID_OUI_FROM_DATABASE=SHENZHEN KALIF ELECTRONICS CO.,LTD
+
+OUI:C4FFBC4*
+ ID_OUI_FROM_DATABASE=iMageTech CO.,LTD.
+
+OUI:C4FFBC5*
+ ID_OUI_FROM_DATABASE=comtime GmbH
+
+OUI:C4FFBC6*
+ ID_OUI_FROM_DATABASE=Shenzhen C & D Electronics Co., Ltd.
+
+OUI:C4FFBC7*
+ ID_OUI_FROM_DATABASE=Critical Link
+
+OUI:C4FFBC8*
+ ID_OUI_FROM_DATABASE=ShenZhen ZYT Technology co., Ltd
+
+OUI:C4FFBC9*
+ ID_OUI_FROM_DATABASE=GSM Innovations Pty Ltd
+
+OUI:C4FFBCA*
+ ID_OUI_FROM_DATABASE=Advanced Navigation
+
+OUI:C4FFBCB*
+ ID_OUI_FROM_DATABASE=KAGA ELECTRONICS CO.,LTD.
+
+OUI:C4FFBCC*
+ ID_OUI_FROM_DATABASE=KyongBo Electric Co., Ltd.
+
+OUI:C4FFBCD*
+ ID_OUI_FROM_DATABASE=Beijing  KDF information technology co. LTD.
+
+OUI:C4FFBCE*
+ ID_OUI_FROM_DATABASE=viRaTec GmbH
+
 OUI:C80084*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -75689,6 +76895,9 @@ OUI:C87324*
 OUI:C8755B*
  ID_OUI_FROM_DATABASE=Quantify Technology Pty. Ltd.
 
+OUI:C87765*
+ ID_OUI_FROM_DATABASE=Tiesse SpA
+
 OUI:C8778B*
  ID_OUI_FROM_DATABASE=Themis Computer
 
@@ -75776,6 +76985,9 @@ OUI:C88ED1E*
 OUI:C88ED1F*
  ID_OUI_FROM_DATABASE=Private
 
+OUI:C88F26*
+ ID_OUI_FROM_DATABASE=Skyworth Digital Technology(Shenzhen) Co.,Ltd
+
 OUI:C8903E*
  ID_OUI_FROM_DATABASE=Pakton Technologies
 
@@ -76031,6 +77243,9 @@ OUI:C8F9C8*
 OUI:C8F9F9*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
+OUI:C8FAE1*
+ ID_OUI_FROM_DATABASE=ARQ Digital LLC
+
 OUI:C8FB26*
  ID_OUI_FROM_DATABASE=Cisco SPVTG
 
@@ -76232,6 +77447,9 @@ OUI:CC2D83*
 OUI:CC2D8C*
  ID_OUI_FROM_DATABASE=LG ELECTRONICS INC
 
+OUI:CC2DB7*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:CC2DE0*
  ID_OUI_FROM_DATABASE=Routerboard.com
 
@@ -76268,6 +77486,9 @@ OUI:CC3ADF*
 OUI:CC3B3E*
  ID_OUI_FROM_DATABASE=Lester Electrical
 
+OUI:CC3B58*
+ ID_OUI_FROM_DATABASE=Curiouser Products Inc
+
 OUI:CC3C3F*
  ID_OUI_FROM_DATABASE=SA.S.S. Datentechnik AG
 
@@ -76439,6 +77660,9 @@ OUI:CC8CDA*
 OUI:CC8CE3*
  ID_OUI_FROM_DATABASE=Texas Instruments
 
+OUI:CC8E71*
+ ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+
 OUI:CC9093*
  ID_OUI_FROM_DATABASE=Hansong Tehnologies
 
@@ -76466,6 +77690,9 @@ OUI:CC96A0*
 OUI:CC9891*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
+OUI:CC9916*
+ ID_OUI_FROM_DATABASE=Integrated Device Technology (Malaysia) Sdn. Bhd.
+
 OUI:CC9E00*
  ID_OUI_FROM_DATABASE=Nintendo Co., Ltd.
 
@@ -76832,6 +78059,9 @@ OUI:D02598*
 OUI:D02788*
  ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd.
 
+OUI:D02B20*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:D02C45*
  ID_OUI_FROM_DATABASE=littleBits Electronics, Inc.
 
@@ -77060,6 +78290,9 @@ OUI:D07650E*
 OUI:D07650F*
  ID_OUI_FROM_DATABASE=Private
 
+OUI:D07714*
+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC, a Lenovo Company
+
 OUI:D07AB5*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
@@ -77078,6 +78311,9 @@ OUI:D07E35*
 OUI:D07FC4*
  ID_OUI_FROM_DATABASE=Ou Wei Technology Co.,Ltd. of Shenzhen City
 
+OUI:D0817A*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:D083D4*
  ID_OUI_FROM_DATABASE=Xtel Wireless ApS
 
@@ -77561,6 +78797,9 @@ OUI:D45DDF*
 OUI:D45F25*
  ID_OUI_FROM_DATABASE=Shenzhen YOUHUA Technology Co., Ltd
 
+OUI:D460E3*
+ ID_OUI_FROM_DATABASE=Sercomm Corporation.
+
 OUI:D4612E*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
@@ -77583,7 +78822,7 @@ OUI:D464F7*
  ID_OUI_FROM_DATABASE=CHENGDU USEE DIGITAL TECHNOLOGY CO., LTD
 
 OUI:D466A8*
- ID_OUI_FROM_DATABASE=Riedo Networks GmbH
+ ID_OUI_FROM_DATABASE=Riedo Networks Ltd
 
 OUI:D46761*
  ID_OUI_FROM_DATABASE=SAHAB TECHNOLOGY
@@ -77618,6 +78857,9 @@ OUI:D46CDA*
 OUI:D46D50*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
+OUI:D46D6D*
+ ID_OUI_FROM_DATABASE=Intel Corporate
+
 OUI:D46E0E*
  ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD.
 
@@ -77690,6 +78932,9 @@ OUI:D48F33*
 OUI:D48FAA*
  ID_OUI_FROM_DATABASE=Sogecam Industrial, S.A.
 
+OUI:D4909C*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:D490E0*
  ID_OUI_FROM_DATABASE=Topcon Electronics GmbH & Co. KG
 
@@ -77732,6 +78977,9 @@ OUI:D49C28*
 OUI:D49C8E*
  ID_OUI_FROM_DATABASE=University of FUKUI
 
+OUI:D49CF4*
+ ID_OUI_FROM_DATABASE=Palo Alto Networks
+
 OUI:D49E6D*
  ID_OUI_FROM_DATABASE=Wuhan Zhongyuan Huadian Science & Technology Co.,
 
@@ -77741,6 +78989,9 @@ OUI:D4A02A*
 OUI:D4A148*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
+OUI:D4A33D*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:D4A425*
  ID_OUI_FROM_DATABASE=SMAX Technology Co., Ltd.
 
@@ -77789,6 +79040,9 @@ OUI:D4BF2D*
 OUI:D4BF7F*
  ID_OUI_FROM_DATABASE=UPVEL
 
+OUI:D4C19E*
+ ID_OUI_FROM_DATABASE=Ruckus Wireless
+
 OUI:D4C1C8*
  ID_OUI_FROM_DATABASE=zte corporation
 
@@ -77864,6 +79118,9 @@ OUI:D4E32C*
 OUI:D4E33F*
  ID_OUI_FROM_DATABASE=Nokia
 
+OUI:D4E6B7*
+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+
 OUI:D4E8B2*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
@@ -77906,6 +79163,9 @@ OUI:D4F513*
 OUI:D4F63F*
  ID_OUI_FROM_DATABASE=IEA S.R.L.
 
+OUI:D4F786*
+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
+
 OUI:D4F9A1*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
@@ -78050,6 +79310,9 @@ OUI:D842E2*
 OUI:D843ED*
  ID_OUI_FROM_DATABASE=Suzuken
 
+OUI:D8445C*
+ ID_OUI_FROM_DATABASE=DEV Tecnologia Ind Com Man Eq LTDA
+
 OUI:D8452B*
  ID_OUI_FROM_DATABASE=Integrated Device Technology (Malaysia) Sdn. Bhd.
 
@@ -78386,6 +79649,9 @@ OUI:D8D67E*
 OUI:D8D723*
  ID_OUI_FROM_DATABASE=IDS, Inc
 
+OUI:D8D775*
+ ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
+
 OUI:D8D866*
  ID_OUI_FROM_DATABASE=SHENZHEN TOZED TECHNOLOGIES CO.,LTD.
 
@@ -78707,6 +79973,9 @@ OUI:DC4D23*
 OUI:DC4EDE*
  ID_OUI_FROM_DATABASE=SHINYEI TECHNOLOGY CO., LTD.
 
+OUI:DC4EF4*
+ ID_OUI_FROM_DATABASE=Shenzhen MTN Electronics CO., Ltd
+
 OUI:DC4F22*
  ID_OUI_FROM_DATABASE=Espressif Inc.
 
@@ -78722,6 +79991,9 @@ OUI:DC5583*
 OUI:DC56E6*
  ID_OUI_FROM_DATABASE=Shenzhen Bococom Technology Co.,LTD
 
+OUI:DC56E7*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:DC5726*
  ID_OUI_FROM_DATABASE=Power-One
 
@@ -78764,6 +80036,9 @@ OUI:DC7014*
 OUI:DC7144*
  ID_OUI_FROM_DATABASE=SAMSUNG ELECTRO MECHANICS CO., LTD.
 
+OUI:DC729B*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:DC74A8*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
@@ -78812,6 +80087,9 @@ OUI:DC9FDB*
 OUI:DCA266*
  ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd.
 
+OUI:DCA333*
+ ID_OUI_FROM_DATABASE=Shenzhen YOUHUA Technology Co., Ltd
+
 OUI:DCA3AC*
  ID_OUI_FROM_DATABASE=RBcloudtech
 
@@ -78938,6 +80216,9 @@ OUI:DCDB70*
 OUI:DCDC07*
  ID_OUI_FROM_DATABASE=TRP Systems BV
 
+OUI:DCDD24*
+ ID_OUI_FROM_DATABASE=Energica Motor Company SpA
+
 OUI:DCDECA*
  ID_OUI_FROM_DATABASE=Akyllor
 
@@ -78950,6 +80231,51 @@ OUI:DCE1AD*
 OUI:DCE2AC*
  ID_OUI_FROM_DATABASE=Lumens Digital Optics Inc.
 
+OUI:DCE5330*
+ ID_OUI_FROM_DATABASE=FLYHT Aerospace
+
+OUI:DCE5331*
+ ID_OUI_FROM_DATABASE=Ambi Labs Limited
+
+OUI:DCE5332*
+ ID_OUI_FROM_DATABASE=Remko GmbH & Co. KG
+
+OUI:DCE5333*
+ ID_OUI_FROM_DATABASE=ShenZhen C&D Electronics CO.Ltd.
+
+OUI:DCE5334*
+ ID_OUI_FROM_DATABASE=shenzhen bangying electronics co,.ltd
+
+OUI:DCE5335*
+ ID_OUI_FROM_DATABASE=Controls Inc
+
+OUI:DCE5336*
+ ID_OUI_FROM_DATABASE=WECAN Solution Inc.
+
+OUI:DCE5337*
+ ID_OUI_FROM_DATABASE=SAN Engineering
+
+OUI:DCE5338*
+ ID_OUI_FROM_DATABASE=JB-Lighting Lichtanlagen GmbH
+
+OUI:DCE5339*
+ ID_OUI_FROM_DATABASE=Tiertime Corporation
+
+OUI:DCE533A*
+ ID_OUI_FROM_DATABASE=Private
+
+OUI:DCE533B*
+ ID_OUI_FROM_DATABASE=Tintel Hongkong Co.Ltd
+
+OUI:DCE533C*
+ ID_OUI_FROM_DATABASE=BRCK
+
+OUI:DCE533D*
+ ID_OUI_FROM_DATABASE=Suzhou ATES electronic technology co.LTD
+
+OUI:DCE533E*
+ ID_OUI_FROM_DATABASE=Giant Power Technology Biomedical Corporation
+
 OUI:DCE578*
  ID_OUI_FROM_DATABASE=Experimental Factory of Scientific Engineering and Special Design Department
 
@@ -79535,6 +80861,9 @@ OUI:E0DDC0*
 OUI:E0E5CF*
  ID_OUI_FROM_DATABASE=Texas Instruments
 
+OUI:E0E62E*
+ ID_OUI_FROM_DATABASE=TCT mobile ltd
+
 OUI:E0E631*
  ID_OUI_FROM_DATABASE=SNB TECHNOLOGIES LIMITED
 
@@ -79646,6 +80975,9 @@ OUI:E42C56*
 OUI:E42D02*
  ID_OUI_FROM_DATABASE=TCT mobile ltd
 
+OUI:E42D7B*
+ ID_OUI_FROM_DATABASE=China Mobile IOT Company Limited
+
 OUI:E42F26*
  ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
 
@@ -79991,6 +81323,9 @@ OUI:E4C1F1*
 OUI:E4C2D1*
  ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
 
+OUI:E4C483*
+ ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
+
 OUI:E4C62B*
  ID_OUI_FROM_DATABASE=Airware
 
@@ -80009,6 +81344,9 @@ OUI:E4C801*
 OUI:E4C806*
  ID_OUI_FROM_DATABASE=Ceiec Electric Technology Inc.
 
+OUI:E4CB59*
+ ID_OUI_FROM_DATABASE=Beijing Loveair Science and Technology Co. Ltd.
+
 OUI:E4CE02*
  ID_OUI_FROM_DATABASE=WyreStorm Technologies Ltd
 
@@ -80033,6 +81371,9 @@ OUI:E4D71D*
 OUI:E4DD79*
  ID_OUI_FROM_DATABASE=En-Vision America, Inc.
 
+OUI:E4E0A6*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:E4E0C5*
  ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
 
@@ -80222,6 +81563,9 @@ OUI:E81863E*
 OUI:E81863F*
  ID_OUI_FROM_DATABASE=Private
 
+OUI:E81AAC*
+ ID_OUI_FROM_DATABASE=ORFEO SOUNDWORKS Inc.
+
 OUI:E81DA8*
  ID_OUI_FROM_DATABASE=Ruckus Wireless
 
@@ -80243,6 +81587,9 @@ OUI:E82AEA*
 OUI:E82E24*
  ID_OUI_FROM_DATABASE=Out of the Fog Research LLC
 
+OUI:E8330D*
+ ID_OUI_FROM_DATABASE=Xaptec GmbH
+
 OUI:E83381*
  ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
 
@@ -80444,6 +81791,9 @@ OUI:E894F6*
 OUI:E89606*
  ID_OUI_FROM_DATABASE=testo Instruments (Shenzhen) Co., Ltd.
 
+OUI:E8986D*
+ ID_OUI_FROM_DATABASE=Palo Alto Networks
+
 OUI:E8995A*
  ID_OUI_FROM_DATABASE=PiiGAB, Processinformation i Goteborg AB
 
@@ -80477,6 +81827,9 @@ OUI:E8A4C1*
 OUI:E8A7F2*
  ID_OUI_FROM_DATABASE=sTraffic
 
+OUI:E8ABF3*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:E8ABFA*
  ID_OUI_FROM_DATABASE=Shenzhen Reecam Tech.Ltd.
 
@@ -80513,6 +81866,9 @@ OUI:E8BDD1*
 OUI:E8BE81*
  ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
 
+OUI:E8C1B8*
+ ID_OUI_FROM_DATABASE=Nanjing Bangzhong Electronic Commerce Limited
+
 OUI:E8C1D7*
  ID_OUI_FROM_DATABASE=Philips
 
@@ -80561,6 +81917,9 @@ OUI:E8DA96*
 OUI:E8DAAA*
  ID_OUI_FROM_DATABASE=VideoHome Technology Corp.
 
+OUI:E8DE00*
+ ID_OUI_FROM_DATABASE=ChongQing GuanFang Technology Co.,LTD
+
 OUI:E8DE27*
  ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD.
 
@@ -80570,6 +81929,9 @@ OUI:E8DE8E*
 OUI:E8DED6*
  ID_OUI_FROM_DATABASE=Intrising Networks, Inc.
 
+OUI:E8DEFB*
+ ID_OUI_FROM_DATABASE=MESOTIC SAS
+
 OUI:E8DF70*
  ID_OUI_FROM_DATABASE=AVM Audiovisuelles Marketing und Computersysteme GmbH
 
@@ -80861,6 +82223,9 @@ OUI:EC63E5*
 OUI:EC64E7*
  ID_OUI_FROM_DATABASE=MOCACARE Corporation
 
+OUI:EC65CC*
+ ID_OUI_FROM_DATABASE=Panasonic Automotive Systems Company of America
+
 OUI:EC66D1*
  ID_OUI_FROM_DATABASE=B&W Group LTD
 
@@ -80888,6 +82253,9 @@ OUI:EC7D11*
 OUI:EC7D9D*
  ID_OUI_FROM_DATABASE=MEI
 
+OUI:EC7FC6*
+ ID_OUI_FROM_DATABASE=ECCEL CORPORATION SAS
+
 OUI:EC8009*
  ID_OUI_FROM_DATABASE=NovaSparks
 
@@ -80909,6 +82277,9 @@ OUI:EC888F*
 OUI:EC8892*
  ID_OUI_FROM_DATABASE=Motorola Mobility LLC, a Lenovo Company
 
+OUI:EC8914*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:EC89F5*
  ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd.
 
@@ -80954,6 +82325,9 @@ OUI:EC9A74*
 OUI:EC9B5B*
  ID_OUI_FROM_DATABASE=Nokia Corporation
 
+OUI:EC9B8B*
+ ID_OUI_FROM_DATABASE=Hewlett Packard Enterprise
+
 OUI:EC9BF3*
  ID_OUI_FROM_DATABASE=SAMSUNG ELECTRO-MECHANICS(THAILAND)
 
@@ -81200,6 +82574,9 @@ OUI:F008F1*
 OUI:F00D5C*
  ID_OUI_FROM_DATABASE=JinQianMao  Technology Co.,Ltd.
 
+OUI:F00FEC*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
 OUI:F013C3*
  ID_OUI_FROM_DATABASE=SHENZHEN FENDA TECHNOLOGY CO., LTD
 
@@ -81362,6 +82739,36 @@ OUI:F03FF8*
 OUI:F0407B*
  ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
 
+OUI:F041C80*
+ ID_OUI_FROM_DATABASE=LINPA ACOUSTIC TECHNOLOGY CO.,LTD
+
+OUI:F041C82*
+ ID_OUI_FROM_DATABASE=Shenzhen Medica Technology Development Co., Ltd.
+
+OUI:F041C83*
+ ID_OUI_FROM_DATABASE=SHENZHEN WISEWING INTERNET TECHNOLOGY CO.,LTD
+
+OUI:F041C85*
+ ID_OUI_FROM_DATABASE=XI'AN MEI SHANG MEI WIRELESS TECHNOLOGY.Co., Ltd.
+
+OUI:F041C86*
+ ID_OUI_FROM_DATABASE=AED Engineering GmbH
+
+OUI:F041C87*
+ ID_OUI_FROM_DATABASE=Nanchang BlackShark Co.,Ltd.
+
+OUI:F041C89*
+ ID_OUI_FROM_DATABASE=Shenzhen  Nufilo Electronic Technology Co., Ltd.
+
+OUI:F041C8B*
+ ID_OUI_FROM_DATABASE=Powervault Ltd
+
+OUI:F041C8C*
+ ID_OUI_FROM_DATABASE=Shanghai Think-Force Electronic Technology Co. Ltd
+
+OUI:F041C8D*
+ ID_OUI_FROM_DATABASE=ATN Media Group FZ LLC
+
 OUI:F0421C*
  ID_OUI_FROM_DATABASE=Intel Corporate
 
@@ -81455,6 +82862,9 @@ OUI:F074E4*
 OUI:F0761C*
  ID_OUI_FROM_DATABASE=COMPAL INFORMATION (KUNSHAN) CO., LTD.
 
+OUI:F0766F*
+ ID_OUI_FROM_DATABASE=Apple, Inc.
+
 OUI:F07765*
  ID_OUI_FROM_DATABASE=Sourcefire, Inc
 
@@ -81485,6 +82895,9 @@ OUI:F07F06*
 OUI:F07F0C*
  ID_OUI_FROM_DATABASE=Leopold Kostal GmbH &Co. KG
 
+OUI:F08173*
+ ID_OUI_FROM_DATABASE=Amazon Technologies Inc.
+
 OUI:F081AF*
  ID_OUI_FROM_DATABASE=IRZ AUTOMATION TECHNOLOGIES LTD
 
@@ -81629,6 +83042,9 @@ OUI:F0B429*
 OUI:F0B479*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
+OUI:F0B5B7*
+ ID_OUI_FROM_DATABASE=Disruptive Technologies Research AS
+
 OUI:F0B6EB*
  ID_OUI_FROM_DATABASE=Poslab Technology Co., Ltd.
 
@@ -81662,6 +83078,9 @@ OUI:F0C850*
 OUI:F0C88C*
  ID_OUI_FROM_DATABASE=LeddarTech Inc.
 
+OUI:F0C9D1*
+ ID_OUI_FROM_DATABASE=GD Midea Air-Conditioning Equipment Co.,Ltd.
+
 OUI:F0CBA1*
  ID_OUI_FROM_DATABASE=Apple, Inc.
 
@@ -81725,6 +83144,9 @@ OUI:F0DEB9*
 OUI:F0DEF1*
  ID_OUI_FROM_DATABASE=Wistron Infocomm (Zhongshan) Corporation
 
+OUI:F0E3DC*
+ ID_OUI_FROM_DATABASE=Tecon MT, LLC
+
 OUI:F0E5C3*
  ID_OUI_FROM_DATABASE=Drägerwerk AG & Co. KG aA
 
@@ -81791,6 +83213,9 @@ OUI:F0F8F2*
 OUI:F0F9F7*
  ID_OUI_FROM_DATABASE=IES GmbH & Co. KG
 
+OUI:F0FCC8*
+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
+
 OUI:F0FDA0*
  ID_OUI_FROM_DATABASE=Acurix Networks Pty Ltd
 
@@ -82094,6 +83519,9 @@ OUI:F46E24*
 OUI:F470AB*
  ID_OUI_FROM_DATABASE=vivo Mobile Communication Co., Ltd.
 
+OUI:F47190*
+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+
 OUI:F473CA*
  ID_OUI_FROM_DATABASE=Conversion Sound Inc.
 
@@ -82121,6 +83549,9 @@ OUI:F483CD*
 OUI:F483E1*
  ID_OUI_FROM_DATABASE=Shanghai Clouder Semiconductor Co.,Ltd
 
+OUI:F4844C*
+ ID_OUI_FROM_DATABASE=Texas Instruments
+
 OUI:F485C6*
  ID_OUI_FROM_DATABASE=FDT Technologies
 
@@ -82229,6 +83660,9 @@ OUI:F4B8A7*
 OUI:F4BD7C*
  ID_OUI_FROM_DATABASE=Chengdu jinshi communication Co., LTD
 
+OUI:F4C248*
+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+
 OUI:F4C447*
  ID_OUI_FROM_DATABASE=Coagent International Enterprise Limited
 
@@ -82286,6 +83720,9 @@ OUI:F4DC41*
 OUI:F4DC4D*
  ID_OUI_FROM_DATABASE=Beijing CCD Digital Technology Co., Ltd
 
+OUI:F4DCA5*
+ ID_OUI_FROM_DATABASE=DAWON DNS
+
 OUI:F4DCDA*
  ID_OUI_FROM_DATABASE=Zhuhai Jiahe Communication Technology Co., limited
 
@@ -82298,6 +83735,9 @@ OUI:F4DD9E*
 OUI:F4DE0C*
  ID_OUI_FROM_DATABASE=ESPOD Ltd.
 
+OUI:F4E11E*
+ ID_OUI_FROM_DATABASE=Texas Instruments
+
 OUI:F4E142*
  ID_OUI_FROM_DATABASE=Delta Elektronika BV
 
@@ -82808,6 +84248,9 @@ OUI:F88A3CD*
 OUI:F88A3CE*
  ID_OUI_FROM_DATABASE=Avateq Corp.
 
+OUI:F88B37*
+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
+
 OUI:F88C1C*
  ID_OUI_FROM_DATABASE=KAISHUN ELECTRONIC TECHNOLOGY CO., LTD. BEIJING
 
@@ -82820,6 +84263,9 @@ OUI:F88E85*
 OUI:F88FCA*
  ID_OUI_FROM_DATABASE=Google, Inc.
 
+OUI:F89066*
+ ID_OUI_FROM_DATABASE=Nain Inc.
+
 OUI:F8912A*
  ID_OUI_FROM_DATABASE=GLP German Light Products GmbH
 
@@ -82973,6 +84419,9 @@ OUI:F8C001*
 OUI:F8C091*
  ID_OUI_FROM_DATABASE=Highgates Technology
 
+OUI:F8C120*
+ ID_OUI_FROM_DATABASE=Xi'an Link-Science Technology Co.,Ltd
+
 OUI:F8C288*
  ID_OUI_FROM_DATABASE=Cisco Systems, Inc
 
@@ -83042,6 +84491,9 @@ OUI:F8DB88*
 OUI:F8DC7A*
  ID_OUI_FROM_DATABASE=Variscite LTD
 
+OUI:F8DF15*
+ ID_OUI_FROM_DATABASE=Sunitec Enterprise Co.,Ltd
+
 OUI:F8DFA8*
  ID_OUI_FROM_DATABASE=zte corporation
 
@@ -83348,6 +84800,9 @@ OUI:FC626E*
 OUI:FC62B9*
  ID_OUI_FROM_DATABASE=ALPS ELECTRIC CO.,LTD.
 
+OUI:FC643A*
+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+
 OUI:FC64BA*
  ID_OUI_FROM_DATABASE=Xiaomi Communications Co Ltd
 
@@ -83375,6 +84830,9 @@ OUI:FC75E6*
 OUI:FC790B*
  ID_OUI_FROM_DATABASE=Hitachi High Technologies America, Inc.
 
+OUI:FC7C02*
+ ID_OUI_FROM_DATABASE=Phicomm (Shanghai) Co., Ltd.
+
 OUI:FC7CE7*
  ID_OUI_FROM_DATABASE=FCI USA LLC
 
@@ -83444,6 +84902,9 @@ OUI:FCA386*
 OUI:FCA667*
  ID_OUI_FROM_DATABASE=Amazon Technologies Inc.
 
+OUI:FCA6CD*
+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
+
 OUI:FCA841*
  ID_OUI_FROM_DATABASE=Avaya Inc
 
index 42e21dbbfb2f09e9d57ea512d7678b8d8c46755a..10b427c2cd6821f6b038f83f6bf2b5e26fce4664 100644 (file)
@@ -120,6 +120,9 @@ acpi:IHSE*:
 acpi:IMPJ*:
  ID_VENDOR_FROM_DATABASE=Impinj
 
+acpi:INSY*:
+ ID_VENDOR_FROM_DATABASE=Insyde Software
+
 acpi:INTC*:
  ID_VENDOR_FROM_DATABASE=Intel Corporation
 
@@ -171,6 +174,9 @@ acpi:NVDA*:
 acpi:NVTN*:
  ID_VENDOR_FROM_DATABASE=Nuvoton Technology Corporation
 
+acpi:NXGO*:
+ ID_VENDOR_FROM_DATABASE=Nexstgo Company Limited
+
 acpi:OBDA*:
  ID_VENDOR_FROM_DATABASE=REALTEK Semiconductor Corp.
 
@@ -882,6 +888,9 @@ acpi:AVO*:
 acpi:AVR*:
  ID_VENDOR_FROM_DATABASE=AVer Information Inc.
 
+acpi:AVS*:
+ ID_VENDOR_FROM_DATABASE=Avatron Software Inc.
+
 acpi:AVT*:
  ID_VENDOR_FROM_DATABASE=Avtek (Electronics) Pty Ltd
 
@@ -963,6 +972,9 @@ acpi:BBH*:
 acpi:BBL*:
  ID_VENDOR_FROM_DATABASE=Brain Boxes Limited
 
+acpi:BBV*:
+ ID_VENDOR_FROM_DATABASE=BlueBox Video Limited
+
 acpi:BBX*:
  ID_VENDOR_FROM_DATABASE=Black Box Corporation
 
@@ -1341,6 +1353,9 @@ acpi:CHO*:
 acpi:CHP*:
  ID_VENDOR_FROM_DATABASE=CH Products
 
+acpi:CHR*:
+ ID_VENDOR_FROM_DATABASE=christmann informationstechnik + medien GmbH & Co. KG
+
 acpi:CHS*:
  ID_VENDOR_FROM_DATABASE=Agentur Chairos
 
@@ -2736,6 +2751,9 @@ acpi:GFN*:
 acpi:GGL*:
  ID_VENDOR_FROM_DATABASE=Google Inc.
 
+acpi:GGT*:
+ ID_VENDOR_FROM_DATABASE=G2TOUCH KOREA
+
 acpi:GIC*:
  ID_VENDOR_FROM_DATABASE=General Inst. Corporation
 
@@ -4371,6 +4389,9 @@ acpi:MNL*:
 acpi:MNP*:
  ID_VENDOR_FROM_DATABASE=Microcom
 
+acpi:MOC*:
+ ID_VENDOR_FROM_DATABASE=Matrix Orbital Corporation
+
 acpi:MOD*:
  ID_VENDOR_FROM_DATABASE=Modular Technology
 
@@ -4548,6 +4569,9 @@ acpi:MVM*:
 acpi:MVN*:
  ID_VENDOR_FROM_DATABASE=Meta Company
 
+acpi:MVR*:
+ ID_VENDOR_FROM_DATABASE=MediCapture, Inc.
+
 acpi:MVS*:
  ID_VENDOR_FROM_DATABASE=Microvision
 
@@ -4758,6 +4782,9 @@ acpi:NPA*:
 acpi:NPI*:
  ID_VENDOR_FROM_DATABASE=Network Peripherals Inc
 
+acpi:NRI*:
+ ID_VENDOR_FROM_DATABASE=Noritake Itron Corporation
+
 acpi:NRL*:
  ID_VENDOR_FROM_DATABASE=U.S. Naval Research Lab
 
@@ -4791,6 +4818,9 @@ acpi:NTC*:
 acpi:NTI*:
  ID_VENDOR_FROM_DATABASE=New Tech Int'l Company
 
+acpi:NTK*:
+ ID_VENDOR_FROM_DATABASE=NewTek
+
 acpi:NTL*:
  ID_VENDOR_FROM_DATABASE=National Transcomm. Ltd
 
@@ -5259,6 +5289,9 @@ acpi:PNR*:
 acpi:PNS*:
  ID_VENDOR_FROM_DATABASE=PanaScope
 
+acpi:PNT*:
+ ID_VENDOR_FROM_DATABASE=HOYA Corporation PENTAX Lifecare Division
+
 acpi:PNX*:
  ID_VENDOR_FROM_DATABASE=Phoenix Technologies, Ltd.
 
@@ -5271,6 +5304,9 @@ acpi:PON*:
 acpi:POR*:
  ID_VENDOR_FROM_DATABASE=Portalis LC
 
+acpi:POS*:
+ ID_VENDOR_FROM_DATABASE=Positivo Tecnologia S.A.
+
 acpi:POT*:
  ID_VENDOR_FROM_DATABASE=Parrot
 
@@ -5308,7 +5344,7 @@ acpi:PRD*:
  ID_VENDOR_FROM_DATABASE=Praim S.R.L.
 
 acpi:PRF*:
- ID_VENDOR_FROM_DATABASE=Digital Electronics Corporation
+ ID_VENDOR_FROM_DATABASE=Schneider Electric Japan Holdings, Ltd.
 
 acpi:PRG*:
  ID_VENDOR_FROM_DATABASE=The Phoenix Research Group Inc
@@ -6513,12 +6549,18 @@ acpi:TEK*:
 acpi:TEL*:
  ID_VENDOR_FROM_DATABASE=Promotion and Display Technology Ltd.
 
+acpi:TEN*:
+ ID_VENDOR_FROM_DATABASE=Tencent
+
 acpi:TER*:
  ID_VENDOR_FROM_DATABASE=TerraTec Electronic GmbH
 
 acpi:TET*:
  ID_VENDOR_FROM_DATABASE=TETRADYNE CO., LTD.
 
+acpi:TEV*:
+ ID_VENDOR_FROM_DATABASE=Televés, S.A.
+
 acpi:TEX*:
  ID_VENDOR_FROM_DATABASE=Texas Instruments
 
@@ -7146,9 +7188,15 @@ acpi:VQ@*:
 acpi:VRC*:
  ID_VENDOR_FROM_DATABASE=Virtual Resources Corporation
 
+acpi:VRG*:
+ ID_VENDOR_FROM_DATABASE=VRgineers, Inc.
+
 acpi:VRM*:
  ID_VENDOR_FROM_DATABASE=VRmagic Holding AG
 
+acpi:VRS*:
+ ID_VENDOR_FROM_DATABASE=VRstudios, Inc.
+
 acpi:VSC*:
  ID_VENDOR_FROM_DATABASE=ViewSonic Corporation
 
@@ -7344,6 +7392,9 @@ acpi:XAD*:
 acpi:XDM*:
  ID_VENDOR_FROM_DATABASE=XDM Ltd.
 
+acpi:XES*:
+ ID_VENDOR_FROM_DATABASE=Extreme Engineering Solutions, Inc.
+
 acpi:XFG*:
  ID_VENDOR_FROM_DATABASE=Jan Strapko - FOTO
 
index b8f877e1c1f15e40435b062358df9778b5b86b0d..0d9be60539ecbe2d82b1d791ec3f8be86f5e615f 100644 (file)
@@ -1,5 +1,5 @@
---- 20-acpi-vendor.hwdb.base   2017-09-28 13:48:25.370636463 +0200
-+++ 20-acpi-vendor.hwdb        2017-09-28 13:48:25.375636571 +0200
+--- 20-acpi-vendor.hwdb.base   2017-12-14 15:57:48.154005635 +0100
++++ 20-acpi-vendor.hwdb        2017-12-14 15:57:48.160005689 +0100
 @@ -3,6 +3,8 @@
  # Data imported from:
  #     http://www.uefi.org/uefi-pnp-export
@@ -19,7 +19,7 @@
  acpi:AMDI*:
   ID_VENDOR_FROM_DATABASE=AMD
  
-@@ -244,6 +243,9 @@
+@@ -250,6 +249,9 @@
  acpi:AAA*:
   ID_VENDOR_FROM_DATABASE=Avolites Ltd
  
@@ -29,7 +29,7 @@
  acpi:AAE*:
   ID_VENDOR_FROM_DATABASE=Anatek Electronics Inc.
  
-@@ -271,6 +273,9 @@
+@@ -277,6 +279,9 @@
  acpi:ABO*:
   ID_VENDOR_FROM_DATABASE=D-Link Systems Inc
  
@@ -39,7 +39,7 @@
  acpi:ABS*:
   ID_VENDOR_FROM_DATABASE=Abaco Systems, Inc.
  
-@@ -316,7 +321,7 @@
+@@ -322,7 +327,7 @@
  acpi:ACO*:
   ID_VENDOR_FROM_DATABASE=Allion Computer Inc.
  
@@ -48,7 +48,7 @@
   ID_VENDOR_FROM_DATABASE=Aspen Tech Inc
  
  acpi:ACR*:
-@@ -586,6 +591,9 @@
+@@ -592,6 +597,9 @@
  acpi:AMT*:
   ID_VENDOR_FROM_DATABASE=AMT International Industry
  
@@ -58,7 +58,7 @@
  acpi:AMX*:
   ID_VENDOR_FROM_DATABASE=AMX LLC
  
-@@ -634,6 +642,9 @@
+@@ -640,6 +648,9 @@
  acpi:AOA*:
   ID_VENDOR_FROM_DATABASE=AOpen Inc.
  
@@ -68,7 +68,7 @@
  acpi:AOE*:
   ID_VENDOR_FROM_DATABASE=Advanced Optics Electronics, Inc.
  
-@@ -643,6 +654,9 @@
+@@ -649,6 +660,9 @@
  acpi:AOT*:
   ID_VENDOR_FROM_DATABASE=Alcatel
  
@@ -78,7 +78,7 @@
  acpi:APC*:
   ID_VENDOR_FROM_DATABASE=American Power Conversion
  
-@@ -818,7 +832,7 @@
+@@ -824,7 +838,7 @@
   ID_VENDOR_FROM_DATABASE=Alps Electric Inc
  
  acpi:AUO*:
@@ -87,7 +87,7 @@
  
  acpi:AUR*:
   ID_VENDOR_FROM_DATABASE=Aureal Semiconductor
-@@ -895,6 +909,9 @@
+@@ -904,6 +918,9 @@
  acpi:AXE*:
   ID_VENDOR_FROM_DATABASE=Axell Corporation
  
@@ -97,7 +97,7 @@
  acpi:AXI*:
   ID_VENDOR_FROM_DATABASE=American Magnetics
  
-@@ -1039,6 +1056,9 @@
+@@ -1051,6 +1068,9 @@
  acpi:BML*:
   ID_VENDOR_FROM_DATABASE=BIOMED Lab
  
  acpi:BMS*:
   ID_VENDOR_FROM_DATABASE=BIOMEDISYS
  
-@@ -1051,6 +1071,9 @@
+@@ -1063,6 +1083,9 @@
  acpi:BNO*:
   ID_VENDOR_FROM_DATABASE=Bang & Olufsen
  
  acpi:BNS*:
   ID_VENDOR_FROM_DATABASE=Boulder Nonlinear Systems
  
-@@ -1291,6 +1314,9 @@
+@@ -1303,6 +1326,9 @@
  acpi:CHA*:
   ID_VENDOR_FROM_DATABASE=Chase Research PLC
  
  acpi:CHD*:
   ID_VENDOR_FROM_DATABASE=ChangHong Electric Co.,Ltd
  
-@@ -1438,6 +1464,9 @@
+@@ -1453,6 +1479,9 @@
  acpi:COD*:
   ID_VENDOR_FROM_DATABASE=CODAN Pty. Ltd.
  
  acpi:COI*:
   ID_VENDOR_FROM_DATABASE=Codec Inc.
  
-@@ -1841,7 +1870,7 @@
+@@ -1856,7 +1885,7 @@
   ID_VENDOR_FROM_DATABASE=Dragon Information Technology
  
  acpi:DJE*:
  
  acpi:DJP*:
   ID_VENDOR_FROM_DATABASE=Maygay Machines, Ltd
-@@ -2161,6 +2190,9 @@
+@@ -2176,6 +2205,9 @@
  acpi:EIC*:
   ID_VENDOR_FROM_DATABASE=Eicon Technology Corporation
  
  acpi:EKA*:
   ID_VENDOR_FROM_DATABASE=MagTek Inc.
  
-@@ -2419,6 +2451,9 @@
+@@ -2434,6 +2466,9 @@
  acpi:FCG*:
   ID_VENDOR_FROM_DATABASE=First International Computer Ltd
  
  acpi:FCS*:
   ID_VENDOR_FROM_DATABASE=Focus Enhancements, Inc.
  
-@@ -2884,6 +2919,9 @@
+@@ -2902,6 +2937,9 @@
  acpi:HEC*:
   ID_VENDOR_FROM_DATABASE=Hisense Electric Co., Ltd.
  
  acpi:HEL*:
   ID_VENDOR_FROM_DATABASE=Hitachi Micro Systems Europe Ltd
  
-@@ -3013,6 +3051,9 @@
+@@ -3031,6 +3069,9 @@
  acpi:HSD*:
   ID_VENDOR_FROM_DATABASE=HannStar Display Corp
  
  acpi:HSM*:
   ID_VENDOR_FROM_DATABASE=AT&T Microelectronics
  
-@@ -3133,6 +3174,9 @@
+@@ -3151,6 +3192,9 @@
  acpi:ICI*:
   ID_VENDOR_FROM_DATABASE=Infotek Communication Inc
  
  acpi:ICM*:
   ID_VENDOR_FROM_DATABASE=Intracom SA
  
-@@ -3226,6 +3270,9 @@
+@@ -3244,6 +3288,9 @@
  acpi:IKE*:
   ID_VENDOR_FROM_DATABASE=Ikegami Tsushinki Co. Ltd.
  
  acpi:IKS*:
   ID_VENDOR_FROM_DATABASE=Ikos Systems Inc
  
-@@ -3268,6 +3315,9 @@
+@@ -3286,6 +3333,9 @@
  acpi:IMT*:
   ID_VENDOR_FROM_DATABASE=Inmax Technology Corporation
  
  acpi:INA*:
   ID_VENDOR_FROM_DATABASE=Inventec Corporation
  
-@@ -3769,6 +3819,9 @@
+@@ -3787,6 +3837,9 @@
  acpi:LAN*:
   ID_VENDOR_FROM_DATABASE=Sodeman Lancom Inc
  
  acpi:LAS*:
   ID_VENDOR_FROM_DATABASE=LASAT Comm. A/S
  
-@@ -3814,6 +3867,9 @@
+@@ -3832,6 +3885,9 @@
  acpi:LED*:
   ID_VENDOR_FROM_DATABASE=Long Engineering Design Inc
  
  acpi:LEG*:
   ID_VENDOR_FROM_DATABASE=Legerity, Inc
  
-@@ -3829,6 +3885,9 @@
+@@ -3847,6 +3903,9 @@
  acpi:LGC*:
   ID_VENDOR_FROM_DATABASE=Logic Ltd
  
  acpi:LGI*:
   ID_VENDOR_FROM_DATABASE=Logitech Inc
  
-@@ -3880,6 +3939,9 @@
+@@ -3898,6 +3957,9 @@
  acpi:LND*:
   ID_VENDOR_FROM_DATABASE=Land Computer Company Ltd
  
  acpi:LNK*:
   ID_VENDOR_FROM_DATABASE=Link Tech Inc
  
-@@ -3914,7 +3976,7 @@
+@@ -3932,7 +3994,7 @@
   ID_VENDOR_FROM_DATABASE=Design Technology
  
  acpi:LPL*:
  
  acpi:LSC*:
   ID_VENDOR_FROM_DATABASE=LifeSize Communications
-@@ -4084,6 +4146,9 @@
+@@ -4102,6 +4164,9 @@
  acpi:MCX*:
   ID_VENDOR_FROM_DATABASE=Millson Custom Solutions Inc.
  
  acpi:MDA*:
   ID_VENDOR_FROM_DATABASE=Media4 Inc
  
-@@ -4312,6 +4377,9 @@
+@@ -4333,6 +4398,9 @@
  acpi:MOM*:
   ID_VENDOR_FROM_DATABASE=Momentum Data Systems
  
  acpi:MOS*:
   ID_VENDOR_FROM_DATABASE=Moses Corporation
  
-@@ -4534,6 +4602,9 @@
+@@ -4558,6 +4626,9 @@
  acpi:NAL*:
   ID_VENDOR_FROM_DATABASE=Network Alchemy
  
  acpi:NAT*:
   ID_VENDOR_FROM_DATABASE=NaturalPoint Inc.
  
-@@ -5032,6 +5103,9 @@
+@@ -5062,6 +5133,9 @@
  acpi:PCX*:
   ID_VENDOR_FROM_DATABASE=PC Xperten
  
  acpi:PDM*:
   ID_VENDOR_FROM_DATABASE=Psion Dacom Plc.
  
-@@ -5095,9 +5169,6 @@
+@@ -5125,9 +5199,6 @@
  acpi:PHE*:
   ID_VENDOR_FROM_DATABASE=Philips Medical Systems Boeblingen GmbH
  
  acpi:PHL*:
   ID_VENDOR_FROM_DATABASE=Philips Consumer Electronics Company
  
-@@ -5182,9 +5253,6 @@
+@@ -5212,9 +5283,6 @@
  acpi:PNL*:
   ID_VENDOR_FROM_DATABASE=Panelview, Inc.
  
  acpi:PNR*:
   ID_VENDOR_FROM_DATABASE=Planar Systems, Inc.
  
-@@ -5314,15 +5382,9 @@
+@@ -5350,15 +5418,9 @@
  acpi:PTS*:
   ID_VENDOR_FROM_DATABASE=Plain Tree Systems Inc
  
  acpi:PVG*:
   ID_VENDOR_FROM_DATABASE=Proview Global Co., Ltd
  
-@@ -5629,9 +5691,6 @@
+@@ -5665,9 +5727,6 @@
  acpi:RTI*:
   ID_VENDOR_FROM_DATABASE=Rancho Tech Inc
  
  acpi:RTL*:
   ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Company Ltd
  
-@@ -5794,9 +5853,6 @@
+@@ -5830,9 +5889,6 @@
  acpi:SEE*:
   ID_VENDOR_FROM_DATABASE=SeeColor Corporation
  
  acpi:SEI*:
   ID_VENDOR_FROM_DATABASE=Seitz & Associates Inc
  
-@@ -6247,6 +6303,9 @@
+@@ -6283,6 +6339,9 @@
  acpi:SVD*:
   ID_VENDOR_FROM_DATABASE=SVD Computer
  
  acpi:SVI*:
   ID_VENDOR_FROM_DATABASE=Sun Microsystems
  
-@@ -6328,6 +6387,9 @@
+@@ -6364,6 +6423,9 @@
  acpi:SZM*:
   ID_VENDOR_FROM_DATABASE=Shenzhen MTC Co., Ltd
  
  acpi:TAA*:
   ID_VENDOR_FROM_DATABASE=Tandberg
  
-@@ -6418,6 +6480,9 @@
+@@ -6454,6 +6516,9 @@
  acpi:TDG*:
   ID_VENDOR_FROM_DATABASE=Six15 Technologies
  
  acpi:TDM*:
   ID_VENDOR_FROM_DATABASE=Tandem Computer Europe Inc
  
-@@ -6454,6 +6519,9 @@
- acpi:TET*:
-  ID_VENDOR_FROM_DATABASE=TETRADYNE CO., LTD.
+@@ -6496,6 +6561,9 @@
+ acpi:TEV*:
+  ID_VENDOR_FROM_DATABASE=Televés, S.A.
  
 +acpi:TEX*:
 + ID_VENDOR_FROM_DATABASE=Texas Instruments
  acpi:TEZ*:
   ID_VENDOR_FROM_DATABASE=Tech Source Inc.
  
-@@ -6568,9 +6636,6 @@
+@@ -6610,9 +6678,6 @@
  acpi:TNC*:
   ID_VENDOR_FROM_DATABASE=TNC Industrial Company Ltd
  
  acpi:TNM*:
   ID_VENDOR_FROM_DATABASE=TECNIMAGEN SA
  
-@@ -6874,14 +6939,14 @@
+@@ -6916,14 +6981,14 @@
  acpi:UNC*:
   ID_VENDOR_FROM_DATABASE=Unisys Corporation
  
  
  acpi:UNI*:
   ID_VENDOR_FROM_DATABASE=Uniform Industry Corp.
-@@ -6916,6 +6981,9 @@
+@@ -6958,6 +7023,9 @@
  acpi:USA*:
   ID_VENDOR_FROM_DATABASE=Utimaco Safeware AG
  
  acpi:USD*:
   ID_VENDOR_FROM_DATABASE=U.S. Digital Corporation
  
-@@ -7144,9 +7212,6 @@
+@@ -7192,9 +7260,6 @@
  acpi:WAL*:
   ID_VENDOR_FROM_DATABASE=Wave Access
  
  acpi:WAV*:
   ID_VENDOR_FROM_DATABASE=Wavephore
  
-@@ -7265,7 +7330,7 @@
+@@ -7313,7 +7378,7 @@
   ID_VENDOR_FROM_DATABASE=Woxter Technology Co. Ltd
  
  acpi:WYS*:
  
  acpi:WYT*:
   ID_VENDOR_FROM_DATABASE=Wooyoung Image & Information Co.,Ltd.
-@@ -7279,9 +7344,6 @@
+@@ -7327,9 +7392,6 @@
  acpi:XDM*:
   ID_VENDOR_FROM_DATABASE=XDM Ltd.
  
 -acpi:XER*:
 - ID_VENDOR_FROM_DATABASE=DO NOT USE - XER
 -
- acpi:XFG*:
-  ID_VENDOR_FROM_DATABASE=Jan Strapko - FOTO
+ acpi:XES*:
+  ID_VENDOR_FROM_DATABASE=Extreme Engineering Solutions, Inc.
  
-@@ -7309,9 +7371,6 @@
+@@ -7360,9 +7422,6 @@
  acpi:XNT*:
   ID_VENDOR_FROM_DATABASE=XN Technologies, Inc.
  
  acpi:XQU*:
   ID_VENDOR_FROM_DATABASE=SHANGHAI SVA-DAV ELECTRONICS CO., LTD
  
-@@ -7378,6 +7437,9 @@
+@@ -7429,6 +7488,9 @@
  acpi:ZBX*:
   ID_VENDOR_FROM_DATABASE=Zebax Technologies
  
index c756e2e18b2a1346df0c0cf3b88c57f54725d8e7..e6ed2e377c335a285a6b97aa1fa49888fc603731 100644 (file)
@@ -150,7 +150,7 @@ pci:v00000B0Bd00000205*
  ID_MODEL_FROM_DATABASE=R4FXO
 
 pci:v00000B0Bd00000206*
- ID_MODEL_FROM_DATABASE=RCB4FXO 4-channel FXO analog telphony card
+ ID_MODEL_FROM_DATABASE=RCB4FXO 4-channel FXO analog telephony card
 
 pci:v00000B0Bd00000305*
  ID_MODEL_FROM_DATABASE=R4T1
@@ -159,13 +159,13 @@ pci:v00000B0Bd00000405*
  ID_MODEL_FROM_DATABASE=R8FXX
 
 pci:v00000B0Bd00000406*
- ID_MODEL_FROM_DATABASE=RCB8FXX 8-channel modular analog telphony card
+ ID_MODEL_FROM_DATABASE=RCB8FXX 8-channel modular analog telephony card
 
 pci:v00000B0Bd00000505*
  ID_MODEL_FROM_DATABASE=R24FXX
 
 pci:v00000B0Bd00000506*
- ID_MODEL_FROM_DATABASE=RCB24FXS 24-Channel FXS analog telphony card
+ ID_MODEL_FROM_DATABASE=RCB24FXS 24-Channel FXS analog telephony card
 
 pci:v00000B0Bd00000605*
  ID_MODEL_FROM_DATABASE=R2T1
@@ -174,16 +174,16 @@ pci:v00000B0Bd00000705*
  ID_MODEL_FROM_DATABASE=R24FXS
 
 pci:v00000B0Bd00000706*
- ID_MODEL_FROM_DATABASE=RCB24FXO 24-Channel FXO analog telphony card
+ ID_MODEL_FROM_DATABASE=RCB24FXO 24-Channel FXO analog telephony card
 
 pci:v00000B0Bd00000905*
  ID_MODEL_FROM_DATABASE=R1T3 Single T3 Digital Telephony Card
 
 pci:v00000B0Bd00000906*
- ID_MODEL_FROM_DATABASE=RCB24FXX 24-channel modular analog telphony card
+ ID_MODEL_FROM_DATABASE=RCB24FXX 24-channel modular analog telephony card
 
 pci:v00000B0Bd00000A06*
- ID_MODEL_FROM_DATABASE=RCB672FXX 672-channel modular analog telphony card
+ ID_MODEL_FROM_DATABASE=RCB672FXX 672-channel modular analog telephony card
 
 pci:v00000E11*
  ID_VENDOR_FROM_DATABASE=Compaq Computer Corporation
@@ -662,6 +662,15 @@ pci:v00001000d00000014sv00001D49sd00000602*
 pci:v00001000d00000014sv00001D49sd00000604*
  ID_MODEL_FROM_DATABASE=MegaRAID Tri-Mode SAS3516 (ThinkSystem RAID 930-8e 4GB Flash PCIe 12Gb Adapter)
 
+pci:v00001000d00000014sv00008086sd0000352D*
+ ID_MODEL_FROM_DATABASE=MegaRAID Tri-Mode SAS3516 (Integrated RAID Module RMSP3AD160F)
+
+pci:v00001000d00000014sv00008086sd00009460*
+ ID_MODEL_FROM_DATABASE=MegaRAID Tri-Mode SAS3516 (RAID Controller RSP3TD160F)
+
+pci:v00001000d00000014sv00008086sd00009480*
+ ID_MODEL_FROM_DATABASE=MegaRAID Tri-Mode SAS3516 (RAID Controller RSP3MD088F)
+
 pci:v00001000d00000015*
  ID_MODEL_FROM_DATABASE=MegaRAID Tri-Mode SAS3416
 
@@ -689,6 +698,15 @@ pci:v00001000d00000016sv00001D49sd00000603*
 pci:v00001000d00000016sv00001D49sd00000604*
  ID_MODEL_FROM_DATABASE=MegaRAID Tri-Mode SAS3508 (ThinkSystem RAID 930-8e 4GB Flash PCIe 12Gb Adapter)
 
+pci:v00001000d00000016sv00008086sd0000352E*
+ ID_MODEL_FROM_DATABASE=MegaRAID Tri-Mode SAS3508 (Integrated RAID Module RMSP3CD080F)
+
+pci:v00001000d00000016sv00008086sd0000352F*
+ ID_MODEL_FROM_DATABASE=MegaRAID Tri-Mode SAS3508 (Integrated RAID Module RMSP3HD080E)
+
+pci:v00001000d00000016sv00008086sd00009461*
+ ID_MODEL_FROM_DATABASE=MegaRAID Tri-Mode SAS3508 (RAID Controller RSP3DD080F)
+
 pci:v00001000d00000017*
  ID_MODEL_FROM_DATABASE=MegaRAID Tri-Mode SAS3408
 
@@ -698,6 +716,15 @@ pci:v00001000d00000017sv00001D49sd00000500*
 pci:v00001000d00000017sv00001D49sd00000502*
  ID_MODEL_FROM_DATABASE=MegaRAID Tri-Mode SAS3408 (ThinkSystem RAID 530-8i Dense Adapter)
 
+pci:v00001000d00000017sv00008086sd00003528*
+ ID_MODEL_FROM_DATABASE=MegaRAID Tri-Mode SAS3408 (Integrated RAID RMSP3LD060)
+
+pci:v00001000d00000017sv00008086sd00003529*
+ ID_MODEL_FROM_DATABASE=MegaRAID Tri-Mode SAS3408 (Integrated RAID RMSP3LD060)
+
+pci:v00001000d00000017sv00008086sd00009441*
+ ID_MODEL_FROM_DATABASE=MegaRAID Tri-Mode SAS3408 (RAID Controller RSP3WD080E)
+
 pci:v00001000d0000001B*
  ID_MODEL_FROM_DATABASE=MegaRAID Tri-Mode SAS3504
 
@@ -1664,6 +1691,9 @@ pci:v00001000d00000097sv00001BD4sd00000011*
 pci:v00001000d000000AB*
  ID_MODEL_FROM_DATABASE=SAS3516 Fusion-MPT Tri-Mode RAID On Chip (ROC)
 
+pci:v00001000d000000ABsv00008086sd00003530*
+ ID_MODEL_FROM_DATABASE=SAS3516 Fusion-MPT Tri-Mode RAID On Chip (ROC) (Integrated RAID Module RMSP3JD160J)
+
 pci:v00001000d000000AC*
  ID_MODEL_FROM_DATABASE=SAS3416 Fusion-MPT Tri-Mode I/O Controller Chip (IOC)
 
@@ -1673,6 +1703,12 @@ pci:v00001000d000000ACsv00001D49sd00000201*
 pci:v00001000d000000ACsv00001D49sd00000203*
  ID_MODEL_FROM_DATABASE=SAS3416 Fusion-MPT Tri-Mode I/O Controller Chip (IOC) (ThinkSystem 430-16e SAS/SATA 12Gb HBA)
 
+pci:v00001000d000000ACsv00008086sd00003000*
+ ID_MODEL_FROM_DATABASE=SAS3416 Fusion-MPT Tri-Mode I/O Controller Chip (IOC) (RAID Controller RSP3QD160J)
+
+pci:v00001000d000000ACsv00008086sd00003020*
+ ID_MODEL_FROM_DATABASE=SAS3416 Fusion-MPT Tri-Mode I/O Controller Chip (IOC) (RAID Controller RSP3GD016J)
+
 pci:v00001000d000000AE*
  ID_MODEL_FROM_DATABASE=SAS3508 Fusion-MPT Tri-Mode RAID On Chip (ROC)
 
@@ -2120,6 +2156,9 @@ pci:v00001002d0000131C*
 pci:v00001002d0000131D*
  ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6 Graphics]
 
+pci:v00001002d000015DD*
+ ID_MODEL_FROM_DATABASE=Radeon Vega 8 Mobile
+
 pci:v00001002d00001714*
  ID_MODEL_FROM_DATABASE=BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series]
 
@@ -2624,6 +2663,9 @@ pci:v00001002d00004383sv00001043sd00008410*
 pci:v00001002d00004383sv00001043sd0000841B*
  ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (M5A88-V EVO)
 
+pci:v00001002d00004383sv0000105Bsd00000E13*
+ ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (N15235/A74MX mainboard / AMD SB700)
+
 pci:v00001002d00004383sv00001179sd0000FF50*
  ID_MODEL_FROM_DATABASE=SBx00 Azalia (Intel HDA) (Satellite P305D-S8995E)
 
@@ -2654,6 +2696,9 @@ pci:v00001002d00004385sv00001043sd000082EF*
 pci:v00001002d00004385sv00001043sd00008389*
  ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (M4A785TD Motherboard)
 
+pci:v00001002d00004385sv0000105Bsd00000E13*
+ ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (N15235/A74MX mainboard / AMD SB700)
+
 pci:v00001002d00004385sv00001179sd0000FF50*
  ID_MODEL_FROM_DATABASE=SBx00 SMBus Controller (Satellite P305D-S8995E)
 
@@ -2807,6 +2852,9 @@ pci:v00001002d00004390sv00001043sd000082EF*
 pci:v00001002d00004390sv00001043sd00008389*
  ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (M4A785TD Motherboard)
 
+pci:v00001002d00004390sv0000105Bsd00000E13*
+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (N15235/A74MX mainboard / AMD SB700)
+
 pci:v00001002d00004390sv00001458sd0000B002*
  ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (GA-MA770-DS3rev2.0 Motherboard)
 
@@ -2825,12 +2873,18 @@ pci:v00001002d00004391sv00001043sd000082EF*
 pci:v00001002d00004391sv00001043sd00008443*
  ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (M5A88-V EVO)
 
+pci:v00001002d00004391sv0000105Bsd00000E13*
+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (N15235/A74MX mainboard / AMD SB700)
+
 pci:v00001002d00004391sv0000174Bsd00001001*
  ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (PURE Fusion Mini)
 
 pci:v00001002d00004392*
  ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [Non-RAID5 mode]
 
+pci:v00001002d00004392sv0000105Bsd00000E13*
+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [Non-RAID5 mode] (N15235/A74MX mainboard / AMD SB700)
+
 pci:v00001002d00004393*
  ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 SATA Controller [RAID5 mode]
 
@@ -2855,6 +2909,9 @@ pci:v00001002d00004396sv00001043sd000082EF*
 pci:v00001002d00004396sv00001043sd00008443*
  ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (M5A88-V EVO)
 
+pci:v00001002d00004396sv0000105Bsd00000E13*
+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (N15235/A74MX mainboard / AMD SB700)
+
 pci:v00001002d00004396sv000015D9sd0000A811*
  ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB EHCI Controller (H8DGU)
 
@@ -2876,6 +2933,9 @@ pci:v00001002d00004397sv00001043sd000082EF*
 pci:v00001002d00004397sv00001043sd00008443*
  ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (M5A88-V EVO)
 
+pci:v00001002d00004397sv0000105Bsd00000E13*
+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (N15235/A74MX mainboard / AMD SB700)
+
 pci:v00001002d00004397sv000015D9sd0000A811*
  ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI0 Controller (H8DGU)
 
@@ -2891,6 +2951,9 @@ pci:v00001002d00004398sv00001019sd00002120*
 pci:v00001002d00004398sv00001043sd000082EF*
  ID_MODEL_FROM_DATABASE=SB7x0 USB OHCI1 Controller (M3A78-EH Motherboard)
 
+pci:v00001002d00004398sv0000105Bsd00000E13*
+ ID_MODEL_FROM_DATABASE=SB7x0 USB OHCI1 Controller (N15235/A74MX mainboard / AMD SB700)
+
 pci:v00001002d00004398sv000015D9sd0000A811*
  ID_MODEL_FROM_DATABASE=SB7x0 USB OHCI1 Controller (H8DGU)
 
@@ -2906,6 +2969,9 @@ pci:v00001002d00004399sv00001043sd000082EF*
 pci:v00001002d00004399sv00001043sd00008443*
  ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (M5A88-V EVO)
 
+pci:v00001002d00004399sv0000105Bsd00000E13*
+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (N15235/A74MX mainboard / AMD SB700)
+
 pci:v00001002d00004399sv0000174Bsd00001001*
  ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (PURE Fusion Mini)
 
@@ -2918,6 +2984,9 @@ pci:v00001002d0000439Csv00001019sd00002120*
 pci:v00001002d0000439Csv00001043sd000082EF*
  ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 IDE Controller (M3A78-EH Motherboard)
 
+pci:v00001002d0000439Csv0000105Bsd00000E13*
+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 IDE Controller (N15235/A74MX mainboard / AMD SB700)
+
 pci:v00001002d0000439D*
  ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller
 
@@ -2933,6 +3002,9 @@ pci:v00001002d0000439Dsv00001043sd000082EF*
 pci:v00001002d0000439Dsv00001043sd00008443*
  ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (M5A88-V EVO)
 
+pci:v00001002d0000439Dsv0000105Bsd00000E13*
+ ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (N15235/A74MX mainboard / AMD SB700)
+
 pci:v00001002d0000439Dsv0000174Bsd00001001*
  ID_MODEL_FROM_DATABASE=SB7x0/SB8x0/SB9x0 LPC host controller (PURE Fusion Mini)
 
@@ -4628,6 +4700,9 @@ pci:v00001002d00006604sv000017AAsd00003643*
 pci:v00001002d00006605*
  ID_MODEL_FROM_DATABASE=Opal PRO [Radeon R7 M260]
 
+pci:v00001002d00006605sv0000103Csd00002259*
+ ID_MODEL_FROM_DATABASE=Opal PRO [Radeon R7 M260] (FirePro M4150)
+
 pci:v00001002d00006606*
  ID_MODEL_FROM_DATABASE=Mars XTX [Radeon HD 8790M]
 
@@ -4712,6 +4787,9 @@ pci:v00001002d00006631*
 pci:v00001002d00006640*
  ID_MODEL_FROM_DATABASE=Saturn XT [FirePro M6100]
 
+pci:v00001002d00006640sv0000106Bsd0000014B*
+ ID_MODEL_FROM_DATABASE=Saturn XT [FirePro M6100] (Tropo XT [Radeon R9 M380 Mac Edition])
+
 pci:v00001002d00006641*
  ID_MODEL_FROM_DATABASE=Saturn PRO [Radeon HD 8930M]
 
@@ -6915,7 +6993,10 @@ pci:v00001002d0000682A*
  ID_MODEL_FROM_DATABASE=Venus PRO
 
 pci:v00001002d0000682B*
- ID_MODEL_FROM_DATABASE=Venus LE [Radeon HD 8830M]
+ ID_MODEL_FROM_DATABASE=Venus LE / Tropo PRO-L [Radeon HD 8830M / R7 M465X]
+
+pci:v00001002d0000682Bsv00000128sd0000079C*
+ ID_MODEL_FROM_DATABASE=Venus LE / Tropo PRO-L [Radeon HD 8830M / R7 M465X] (Radeon R7 465X)
 
 pci:v00001002d0000682C*
  ID_MODEL_FROM_DATABASE=Cape Verde GL [FirePro W4100]
@@ -7316,6 +7397,9 @@ pci:v00001002d00006842*
 pci:v00001002d00006843*
  ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7670M]
 
+pci:v00001002d00006861*
+ ID_MODEL_FROM_DATABASE=Vega 10 XT [Radeon PRO WX 9100]
+
 pci:v00001002d00006863*
  ID_MODEL_FROM_DATABASE=Vega 10 XTX [Radeon Vega Frontier Edition]
 
@@ -9261,10 +9345,13 @@ pci:v00001002d00007910sv000017F2sd00005000*
  ID_MODEL_FROM_DATABASE=RS690 Host Bridge (KI690-AM2 Motherboard)
 
 pci:v00001002d00007911*
- ID_MODEL_FROM_DATABASE=RS690 Host Bridge
+ ID_MODEL_FROM_DATABASE=RS690/RS740 Host Bridge
+
+pci:v00001002d00007911sv00001002sd00007910*
+ ID_MODEL_FROM_DATABASE=RS690/RS740 Host Bridge
 
 pci:v00001002d00007912*
- ID_MODEL_FROM_DATABASE=RS690 PCI to PCI Bridge (Internal gfx)
+ ID_MODEL_FROM_DATABASE=RS690/RS740 PCI to PCI Bridge (Internal gfx)
 
 pci:v00001002d00007913*
  ID_MODEL_FROM_DATABASE=RS690 PCI to PCI Bridge (PCI Express Graphics Port 0)
@@ -9338,6 +9425,9 @@ pci:v00001002d00007942*
 pci:v00001002d0000796E*
  ID_MODEL_FROM_DATABASE=RS740 [Radeon 2100]
 
+pci:v00001002d0000796Esv0000105Bsd00000E13*
+ ID_MODEL_FROM_DATABASE=RS740 [Radeon 2100] (N15235/A74MX mainboard)
+
 pci:v00001002d00009400*
  ID_MODEL_FROM_DATABASE=R600 [Radeon HD 2900 PRO/XT]
 
@@ -9971,6 +10061,9 @@ pci:v00001002d00009850*
 pci:v00001002d00009851*
  ID_MODEL_FROM_DATABASE=Mullins [Radeon R4/R5 Graphics]
 
+pci:v00001002d00009851sv00001179sd0000F928*
+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R4/R5 Graphics] (Beema [Radeon R5 Graphics])
+
 pci:v00001002d00009852*
  ID_MODEL_FROM_DATABASE=Mullins [Radeon R2 Graphics]
 
@@ -11858,6 +11951,9 @@ pci:v00001022d00001422*
 pci:v00001022d00001423*
  ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) I/O Memory Management Unit
 
+pci:v00001022d00001424*
+ ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Root Port
+
 pci:v00001022d00001426*
  ID_MODEL_FROM_DATABASE=Family 15h (Models 30h-3fh) Processor Root Port
 
@@ -11876,17 +11972,29 @@ pci:v00001022d00001439*
 pci:v00001022d00001450*
  ID_MODEL_FROM_DATABASE=Family 17h (Models 00h-0fh) Root Complex
 
+pci:v00001022d00001451*
+ ID_MODEL_FROM_DATABASE=Family 17h (Models 00h-0fh) I/O Memory Management Unit
+
 pci:v00001022d00001452*
  ID_MODEL_FROM_DATABASE=Family 17h (Models 00h-0fh) PCIe Dummy Host Bridge
 
+pci:v00001022d00001453*
+ ID_MODEL_FROM_DATABASE=Family 17h (Models 00h-0fh) PCIe GPP Bridge
+
 pci:v00001022d00001454*
  ID_MODEL_FROM_DATABASE=Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B
 
+pci:v00001022d00001456*
+ ID_MODEL_FROM_DATABASE=Family 17h (Models 00h-0fh) Platform Security Processor
+
+pci:v00001022d00001457*
+ ID_MODEL_FROM_DATABASE=Family 17h (Models 00h-0fh) HD Audio Controller
+
 pci:v00001022d0000145B*
  ID_MODEL_FROM_DATABASE=Zeppelin Non-Transparent Bridge
 
 pci:v00001022d0000145C*
- ID_MODEL_FROM_DATABASE=USB3 Host Controller
+ ID_MODEL_FROM_DATABASE=Family 17h (Models 00h-0fh) USB 3.0 Host Controller
 
 pci:v00001022d0000145F*
  ID_MODEL_FROM_DATABASE=USB 3.0 Host controller
@@ -12167,8 +12275,14 @@ pci:v00001022d000043A2*
 pci:v00001022d000043A3*
  ID_MODEL_FROM_DATABASE=Hudson PCI to PCI bridge (PCIE port 3)
 
+pci:v00001022d000043B4*
+ ID_MODEL_FROM_DATABASE=300 Series Chipset PCIe Port
+
+pci:v00001022d000043B7*
+ ID_MODEL_FROM_DATABASE=300 Series Chipset SATA Controller
+
 pci:v00001022d000043BB*
- ID_MODEL_FROM_DATABASE=USB 3.1 XHCI Controller
+ ID_MODEL_FROM_DATABASE=300 Series Chipset USB 3.1 xHCI Controller
 
 pci:v00001022d00007006*
  ID_MODEL_FROM_DATABASE=AMD-751 [Irongate] System Controller
@@ -13641,115 +13755,115 @@ pci:v0000102Bd00002527sv0000102Bsd00002300*
  ID_MODEL_FROM_DATABASE=Millennium G550 (LP PCIE)
 
 pci:v0000102Bd00002537*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750
 
 pci:v0000102Bd00002537sv0000102Bsd00001820*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millennium P750 64MB)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (Millennium P750 64MB)
 
 pci:v0000102Bd00002537sv0000102Bsd00001830*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millennium P650 64MB)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (Millennium P650 64MB)
 
 pci:v0000102Bd00002537sv0000102Bsd00001850*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RAD2mp)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (RAD2mp)
 
 pci:v0000102Bd00002537sv0000102Bsd00001860*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RAD3mp)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (RAD3mp)
 
 pci:v0000102Bd00002537sv0000102Bsd00001880*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Sono S10)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (Sono S10)
 
 pci:v0000102Bd00002537sv0000102Bsd00001C10*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID 128MB)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (QID 128MB)
 
 pci:v0000102Bd00002537sv0000102Bsd00002811*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millennium P650 Low-profile PCI 64MB)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (Millennium P650 Low-profile PCI 64MB)
 
 pci:v0000102Bd00002537sv0000102Bsd00002821*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Millenium P650 Low-profile PCI)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (Millennium P650 Low-profile PCI)
 
 pci:v0000102Bd00002537sv0000102Bsd00002841*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RAD PCI)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (RAD PCI)
 
 pci:v0000102Bd00002537sv0000102Bsd00002851*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Spectrum PCI)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (Spectrum PCI)
 
 pci:v0000102Bd00002537sv0000102Bsd00002871*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (EpicA TC2)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (EpicA TC2)
 
 pci:v0000102Bd00002537sv0000102Bsd00002C11*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID Low-profile PCI)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (QID Low-profile PCI)
 
 pci:v0000102Bd00002537sv0000102Bsd00002C21*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID LP PCI LW)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (QID LP PCI LW)
 
 pci:v0000102Bd00002537sv0000102Bsd00002C31*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (QID LP PCI)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (QID LP PCI)
 
 pci:v0000102Bd00002537sv0000102Bsd00002C41*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (EpicA TC4)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (EpicA TC4)
 
 pci:v0000102Bd00002537sv0000102Bsd00003001*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1400)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (Extio F1400)
 
 pci:v0000102Bd00002537sv0000102Bsd00003011*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1220)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (Extio F1220)
 
 pci:v0000102Bd00002537sv0000102Bsd00003041*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RG-200DL)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (RG-200DL)
 
 pci:v0000102Bd00002537sv0000102Bsd00003051*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (RG-400SL)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (RG-400SL)
 
 pci:v0000102Bd00002537sv0000102Bsd00003061*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1420)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (Extio F1420)
 
 pci:v0000102Bd00002537sv0000102Bsd00003081*
- ID_MODEL_FROM_DATABASE=Millenium P650/P750 (Extio F1240)
+ ID_MODEL_FROM_DATABASE=Millennium P650/P750 (Extio F1240)
 
 pci:v0000102Bd00002538*
- ID_MODEL_FROM_DATABASE=Millenium P650 PCIe
+ ID_MODEL_FROM_DATABASE=Millennium P650 PCIe
 
 pci:v0000102Bd00002538sv0000102Bsd00000847*
- ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (RAD PCIe)
+ ID_MODEL_FROM_DATABASE=Millennium P650 PCIe (RAD PCIe)
 
 pci:v0000102Bd00002538sv0000102Bsd000008C7*
- ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 PCIe 128MB)
+ ID_MODEL_FROM_DATABASE=Millennium P650 PCIe (128MB)
 
 pci:v0000102Bd00002538sv0000102Bsd00000907*
- ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 PCIe 64MB)
+ ID_MODEL_FROM_DATABASE=Millennium P650 PCIe (64MB)
 
 pci:v0000102Bd00002538sv0000102Bsd00000947*
- ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Parhelia APVe)
+ ID_MODEL_FROM_DATABASE=Millennium P650 PCIe (Parhelia APVe)
 
 pci:v0000102Bd00002538sv0000102Bsd00000987*
- ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (ATC PCIe 4MP)
+ ID_MODEL_FROM_DATABASE=Millennium P650 PCIe (ATC PCIe 4MP)
 
 pci:v0000102Bd00002538sv0000102Bsd00001047*
- ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 LP PCIe 128MB)
+ ID_MODEL_FROM_DATABASE=Millennium P650 PCIe (Millennium P650 LP PCIe 128MB)
 
 pci:v0000102Bd00002538sv0000102Bsd00001087*
- ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Millennium P650 LP PCIe 64MB)
+ ID_MODEL_FROM_DATABASE=Millennium P650 PCIe (Millennium P650 LP PCIe 64MB)
 
 pci:v0000102Bd00002538sv0000102Bsd00001801*
- ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (x1)
+ ID_MODEL_FROM_DATABASE=Millennium P650 PCIe (x1)
 
 pci:v0000102Bd00002538sv0000102Bsd00002538*
- ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Parhelia APVe)
+ ID_MODEL_FROM_DATABASE=Millennium P650 PCIe (Parhelia APVe)
 
 pci:v0000102Bd00002538sv0000102Bsd00003007*
- ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (QID Low-profile PCIe)
+ ID_MODEL_FROM_DATABASE=Millennium P650 PCIe (QID Low-profile PCIe)
 
 pci:v0000102Bd00002538sv0000102Bsd00003087*
- ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (Aurora VX3mp)
+ ID_MODEL_FROM_DATABASE=Millennium P650 PCIe (Aurora VX3mp)
 
 pci:v0000102Bd00002538sv0000102Bsd000030C7*
- ID_MODEL_FROM_DATABASE=Millenium P650 PCIe (QID LP PCIe)
+ ID_MODEL_FROM_DATABASE=Millennium P650 PCIe (QID LP PCIe)
 
 pci:v0000102Bd00002539*
  ID_MODEL_FROM_DATABASE=Millennium P690
 
 pci:v0000102Bd00002539sv0000102Bsd00000040*
- ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 PCIe x16)
+ ID_MODEL_FROM_DATABASE=Millennium P690 (PCIe x16)
 
 pci:v0000102Bd00002539sv0000102Bsd00000042*
  ID_MODEL_FROM_DATABASE=Millennium P690 (ONYX)
@@ -13758,28 +13872,28 @@ pci:v0000102Bd00002539sv0000102Bsd00000043*
  ID_MODEL_FROM_DATABASE=Millennium P690 (SPECTRA)
 
 pci:v0000102Bd00002539sv0000102Bsd00000080*
- ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 Plus LP PCIe x16)
+ ID_MODEL_FROM_DATABASE=Millennium P690 (Plus LP PCIe x16)
 
 pci:v0000102Bd00002539sv0000102Bsd00000081*
- ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 LP PCIe x16)
+ ID_MODEL_FROM_DATABASE=Millennium P690 (LP PCIe x16)
 
 pci:v0000102Bd00002539sv0000102Bsd00000082*
  ID_MODEL_FROM_DATABASE=Millennium P690 (RAD LPX PCIe x16)
 
 pci:v0000102Bd00002539sv0000102Bsd000000C0*
- ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 Plus LP PCI)
+ ID_MODEL_FROM_DATABASE=Millennium P690 (Plus LP PCI)
 
 pci:v0000102Bd00002539sv0000102Bsd000000C2*
- ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 LP PCI)
+ ID_MODEL_FROM_DATABASE=Millennium P690 (LP PCI)
 
 pci:v0000102Bd00002539sv0000102Bsd000000C3*
  ID_MODEL_FROM_DATABASE=Millennium P690 (RAD LPX PCI)
 
 pci:v0000102Bd00002539sv0000102Bsd00000101*
- ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 PCI)
+ ID_MODEL_FROM_DATABASE=Millennium P690 (PCI)
 
 pci:v0000102Bd00002539sv0000102Bsd00000140*
- ID_MODEL_FROM_DATABASE=Millennium P690 (Millenium P690 LP PCIe x1)
+ ID_MODEL_FROM_DATABASE=Millennium P690 (LP PCIe x1)
 
 pci:v0000102Bd00002539sv0000102Bsd00000180*
  ID_MODEL_FROM_DATABASE=Millennium P690 (Display Wall IP Decode 128 MB)
@@ -15314,9 +15428,6 @@ pci:v0000103Cd00003308sv0000103Csd0000330E*
 pci:v0000103Cd00003308sv0000103Csd00003381*
  ID_MODEL_FROM_DATABASE=Integrated Lights-Out Standard MS Watchdog Timer (iLO4)
 
-pci:v0000103Cd0000402F*
- ID_MODEL_FROM_DATABASE=PCIe Root Port
-
 pci:v0000103Cd00004030*
  ID_MODEL_FROM_DATABASE=zx2 System Bus Adapter
 
@@ -15326,9 +15437,6 @@ pci:v0000103Cd00004031*
 pci:v0000103Cd00004037*
  ID_MODEL_FROM_DATABASE=PCIe Local Bus Adapter
 
-pci:v0000103Cd0000403B*
- ID_MODEL_FROM_DATABASE=PCIe Root Port
-
 pci:v0000103E*
  ID_VENDOR_FROM_DATABASE=Solliday Engineering
 
@@ -15365,6 +15473,9 @@ pci:v00001043*
 pci:v00001043d00000464*
  ID_MODEL_FROM_DATABASE=Radeon R9 270x GPU
 
+pci:v00001043d00000521*
+ ID_MODEL_FROM_DATABASE=RX580 [RX 580 Dual O8G]
+
 pci:v00001043d00000675*
  ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D
 
@@ -15377,9 +15488,6 @@ pci:v00001043d00000675sv00000675sd00001707*
 pci:v00001043d00000675sv000010CFsd0000105E*
  ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D (ISDN Adapter (PCI Bus, DV, W))
 
-pci:v00001043d000013A0*
- ID_MODEL_FROM_DATABASE=Transformer Book T101HA-GR030R
-
 pci:v00001043d00009602*
  ID_MODEL_FROM_DATABASE=AMD RS780/RS880 PCI to PCI bridge (int gfx)
 
@@ -18221,6 +18329,9 @@ pci:v00001077d00002432*
 pci:v00001077d00002432sv0000103Csd00007040*
  ID_MODEL_FROM_DATABASE=ISP2432-based 4Gb Fibre Channel to PCI Express HBA (FC1142SR 4Gb 1-port PCIe Fibre Channel Host Bus Adapter [HPAE311A])
 
+pci:v00001077d00002432sv00001077sd00000137*
+ ID_MODEL_FROM_DATABASE=ISP2432-based 4Gb Fibre Channel to PCI Express HBA (QLE2460 4 GB PCI-X Host-Bus-Adapter)
+
 pci:v00001077d00002532*
  ID_MODEL_FROM_DATABASE=ISP2532-based 8Gb Fibre Channel to PCI Express HBA
 
@@ -18248,6 +18359,9 @@ pci:v00001077d00002532sv00001077sd00000167*
 pci:v00001077d00002532sv00001590sd000000FC*
  ID_MODEL_FROM_DATABASE=ISP2532-based 8Gb Fibre Channel to PCI Express HBA (StoreFabric 84Q 8Gb Quad Port Fibre Channel Host Bus Adapter)
 
+pci:v00001077d00002971*
+ ID_MODEL_FROM_DATABASE=ISP2684
+
 pci:v00001077d00003022*
  ID_MODEL_FROM_DATABASE=ISP4022-based Ethernet NIC
 
@@ -18371,6 +18485,18 @@ pci:v00001077d00008070sv00001077sd00000011*
 pci:v00001077d00008070sv00001077sd00000012*
  ID_MODEL_FROM_DATABASE=FastLinQ QL41000 Series 10/25/40/50GbE Controller (FastLinQ QL41112H 10GbE Adapter)
 
+pci:v00001077d00008070sv00001590sd0000021D*
+ ID_MODEL_FROM_DATABASE=FastLinQ QL41000 Series 10/25/40/50GbE Controller (10/25GbE 2P QL41222HLCU-HP Adapter)
+
+pci:v00001077d00008070sv00001590sd0000021E*
+ ID_MODEL_FROM_DATABASE=FastLinQ QL41000 Series 10/25/40/50GbE Controller (10/25GbE 2P QL41162HMRJ-HP Adapter)
+
+pci:v00001077d00008070sv00001590sd0000021F*
+ ID_MODEL_FROM_DATABASE=FastLinQ QL41000 Series 10/25/40/50GbE Controller (10/25GbE 2P QL41262HMCU-HP Adapter)
+
+pci:v00001077d00008070sv00001590sd00000220*
+ ID_MODEL_FROM_DATABASE=FastLinQ QL41000 Series 10/25/40/50GbE Controller (10/25GbE 2P QL41122HLRJ-HP Adapter)
+
 pci:v00001077d00008080*
  ID_MODEL_FROM_DATABASE=FastLinQ QL41000 Series 10/25/40/50GbE Controller (FCoE)
 
@@ -18431,6 +18557,12 @@ pci:v00001077d00008090sv00001077sd00000011*
 pci:v00001077d00008090sv00001077sd00000012*
  ID_MODEL_FROM_DATABASE=FastLinQ QL41000 Series Gigabit Ethernet Controller (SR-IOV VF) (FastLinQ QL41112H 10GbE Adapter (SR-IOV VF))
 
+pci:v00001077d00008090sv00001590sd0000021E*
+ ID_MODEL_FROM_DATABASE=FastLinQ QL41000 Series Gigabit Ethernet Controller (SR-IOV VF) (10/25GbE 2P QL41162HMRJ-HP Adapter)
+
+pci:v00001077d00008090sv00001590sd0000021F*
+ ID_MODEL_FROM_DATABASE=FastLinQ QL41000 Series Gigabit Ethernet Controller (SR-IOV VF) (10/25GbE 2P QL41262HMCU-HP Adapter)
+
 pci:v00001077d00008430*
  ID_MODEL_FROM_DATABASE=ISP8324 1/10GbE Converged Network Controller (NIC VF)
 
@@ -27465,7 +27597,7 @@ pci:v000010DEd0000053B*
  ID_MODEL_FROM_DATABASE=C68 [GeForce 7050 PV / nForce 630a]
 
 pci:v000010DEd0000053Bsv00001043sd00008308*
- ID_MODEL_FROM_DATABASE=C68 [GeForce 7050 PV / nForce 630a] (M2N68-AM Motherbord)
+ ID_MODEL_FROM_DATABASE=C68 [GeForce 7050 PV / nForce 630a] (M2N68-AM Motherboard)
 
 pci:v000010DEd0000053E*
  ID_MODEL_FROM_DATABASE=C68 [GeForce 7025 / nForce 630a]
@@ -27477,7 +27609,7 @@ pci:v000010DEd00000542*
  ID_MODEL_FROM_DATABASE=MCP67 SMBus
 
 pci:v000010DEd00000542sv00001043sd00008308*
- ID_MODEL_FROM_DATABASE=MCP67 SMBus (M2N68-AM Motherbord)
+ ID_MODEL_FROM_DATABASE=MCP67 SMBus (M2N68-AM Motherboard)
 
 pci:v000010DEd00000543*
  ID_MODEL_FROM_DATABASE=MCP67 Co-processor
@@ -27486,7 +27618,7 @@ pci:v000010DEd00000547*
  ID_MODEL_FROM_DATABASE=MCP67 Memory Controller
 
 pci:v000010DEd00000547sv00001043sd00008308*
- ID_MODEL_FROM_DATABASE=MCP67 Memory Controller (M2N68-AM Motherbord)
+ ID_MODEL_FROM_DATABASE=MCP67 Memory Controller (M2N68-AM Motherboard)
 
 pci:v000010DEd00000547sv00001849sd00000547*
  ID_MODEL_FROM_DATABASE=MCP67 Memory Controller (ALiveNF7G-HDready)
@@ -27501,7 +27633,7 @@ pci:v000010DEd0000054C*
  ID_MODEL_FROM_DATABASE=MCP67 Ethernet
 
 pci:v000010DEd0000054Csv00001043sd00008308*
- ID_MODEL_FROM_DATABASE=MCP67 Ethernet (M2N68-AM Motherbord)
+ ID_MODEL_FROM_DATABASE=MCP67 Ethernet (M2N68-AM Motherboard)
 
 pci:v000010DEd0000054Csv00001849sd0000054C*
  ID_MODEL_FROM_DATABASE=MCP67 Ethernet (ALiveNF7G-HDready, MCP67 Gigabit Ethernet)
@@ -31722,16 +31854,16 @@ pci:v000010DEd00001286*
  ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 720]
 
 pci:v000010DEd00001287*
- ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 730]
+ ID_MODEL_FROM_DATABASE=GK208B [GeForce GT 730]
 
 pci:v000010DEd00001288*
- ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 720]
+ ID_MODEL_FROM_DATABASE=GK208B [GeForce GT 720]
 
 pci:v000010DEd00001289*
  ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 710]
 
 pci:v000010DEd0000128B*
- ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 710B]
+ ID_MODEL_FROM_DATABASE=GK208B [GeForce GT 710]
 
 pci:v000010DEd00001290*
  ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M]
@@ -31803,19 +31935,22 @@ pci:v000010DEd00001298*
  ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 720M]
 
 pci:v000010DEd00001299*
- ID_MODEL_FROM_DATABASE=GK208M [GeForce 920M]
+ ID_MODEL_FROM_DATABASE=GK208BM [GeForce 920M]
 
 pci:v000010DEd00001299sv000017AAsd000030BB*
- ID_MODEL_FROM_DATABASE=GK208M [GeForce 920M] (GeForce 920A)
+ ID_MODEL_FROM_DATABASE=GK208BM [GeForce 920M] (GeForce 920A)
+
+pci:v000010DEd00001299sv000017AAsd000030DF*
+ ID_MODEL_FROM_DATABASE=GK208BM [GeForce 920M] (GeForce 920A)
 
 pci:v000010DEd00001299sv000017AAsd000036A7*
- ID_MODEL_FROM_DATABASE=GK208M [GeForce 920M] (GeForce 920A)
+ ID_MODEL_FROM_DATABASE=GK208BM [GeForce 920M] (GeForce 920A)
 
 pci:v000010DEd00001299sv000017AAsd000036AF*
- ID_MODEL_FROM_DATABASE=GK208M [GeForce 920M] (GeForce 920M)
+ ID_MODEL_FROM_DATABASE=GK208BM [GeForce 920M] (GeForce 920M)
 
 pci:v000010DEd0000129A*
- ID_MODEL_FROM_DATABASE=GK208M [GeForce 910M]
+ ID_MODEL_FROM_DATABASE=GK208BM [GeForce 910M]
 
 pci:v000010DEd000012A0*
  ID_MODEL_FROM_DATABASE=GK208
@@ -32055,7 +32190,7 @@ pci:v000010DEd00001402*
  ID_MODEL_FROM_DATABASE=GM206 [GeForce GTX 950]
 
 pci:v000010DEd00001406*
- ID_MODEL_FROM_DATABASE=GM206 [GeForce GTX 960]
+ ID_MODEL_FROM_DATABASE=GM206 [GeForce GTX 960 OEM]
 
 pci:v000010DEd00001407*
  ID_MODEL_FROM_DATABASE=GM206 [GeForce GTX 750 v2]
@@ -32085,7 +32220,7 @@ pci:v000010DEd000015F8*
  ID_MODEL_FROM_DATABASE=GP100GL [Tesla P100 PCIe 16GB]
 
 pci:v000010DEd000015F9*
- ID_MODEL_FROM_DATABASE=GP100GL [Tesla P100 SMX2 16GB]
+ ID_MODEL_FROM_DATABASE=GP100GL [Tesla P100 SXM2 16GB]
 
 pci:v000010DEd00001617*
  ID_MODEL_FROM_DATABASE=GM204M [GeForce GTX 980M]
@@ -32111,6 +32246,12 @@ pci:v000010DEd0000172E*
 pci:v000010DEd0000172F*
  ID_MODEL_FROM_DATABASE=GP100
 
+pci:v000010DEd0000174D*
+ ID_MODEL_FROM_DATABASE=GM108M [GeForce MX130]
+
+pci:v000010DEd0000174E*
+ ID_MODEL_FROM_DATABASE=GM108M [GeForce MX110]
+
 pci:v000010DEd000017C2*
  ID_MODEL_FROM_DATABASE=GM200 [GeForce GTX TITAN X]
 
@@ -32157,7 +32298,7 @@ pci:v000010DEd00001B81*
  ID_MODEL_FROM_DATABASE=GP104 [GeForce GTX 1070]
 
 pci:v000010DEd00001B82*
- ID_MODEL_FROM_DATABASE=GP104
+ ID_MODEL_FROM_DATABASE=GP104 [GeForce GTX 1070 Ti]
 
 pci:v000010DEd00001B83*
  ID_MODEL_FROM_DATABASE=GP104
@@ -32186,6 +32327,9 @@ pci:v000010DEd00001BA1sv00001462sd000011E9*
 pci:v000010DEd00001BA1sv00001558sd00009501*
  ID_MODEL_FROM_DATABASE=GP104M [GeForce GTX 1070 Mobile] (GeForce GTX 1070 Max-Q)
 
+pci:v000010DEd00001BAD*
+ ID_MODEL_FROM_DATABASE=GP104 [GeForce GTX 1070 Engineering Sample]
+
 pci:v000010DEd00001BB0*
  ID_MODEL_FROM_DATABASE=GP104GL [Quadro P5000]
 
@@ -32196,7 +32340,10 @@ pci:v000010DEd00001BB3*
  ID_MODEL_FROM_DATABASE=GP104GL [Tesla P4]
 
 pci:v000010DEd00001BB4*
- ID_MODEL_FROM_DATABASE=GP104GL
+ ID_MODEL_FROM_DATABASE=GP104GL [Tesla P6]
+
+pci:v000010DEd00001BB5*
+ ID_MODEL_FROM_DATABASE=GP104GLM [Quadro P5200 Mobile]
 
 pci:v000010DEd00001BB6*
  ID_MODEL_FROM_DATABASE=GP104GLM [Quadro P5000 Mobile]
@@ -32241,10 +32388,10 @@ pci:v000010DEd00001C09*
  ID_MODEL_FROM_DATABASE=GP106 [P106-090]
 
 pci:v000010DEd00001C20*
- ID_MODEL_FROM_DATABASE=GP106M [GeForce GTX 1060 Mobile 3GB]
+ ID_MODEL_FROM_DATABASE=GP106M [GeForce GTX 1060 Mobile]
 
 pci:v000010DEd00001C20sv000017AAsd000039B9*
- ID_MODEL_FROM_DATABASE=GP106M [GeForce GTX 1060 Mobile 3GB] (GeForce GTX 1060 Max-Q 3GB)
+ ID_MODEL_FROM_DATABASE=GP106M [GeForce GTX 1060 Mobile] (GeForce GTX 1060 Max-Q 3GB)
 
 pci:v000010DEd00001C21*
  ID_MODEL_FROM_DATABASE=GP106M [GeForce GTX 1050 Ti Mobile]
@@ -32318,6 +32465,12 @@ pci:v000010DEd00001D10*
 pci:v000010DEd00001D81*
  ID_MODEL_FROM_DATABASE=GV100
 
+pci:v000010DEd00001DB1*
+ ID_MODEL_FROM_DATABASE=GV100 [Tesla V100 SXM2]
+
+pci:v000010DEd00001DB4*
+ ID_MODEL_FROM_DATABASE=GV100 [Tesla V100 PCIe]
+
 pci:v000010DF*
  ID_VENDOR_FROM_DATABASE=Emulex Corporation
 
@@ -32339,6 +32492,9 @@ pci:v000010DFd00000720sv0000103Csd0000220A*
 pci:v000010DFd00000720sv0000103Csd0000803F*
  ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) (Ethernet 10Gb 2-port 557SFP+ Adapter)
 
+pci:v000010DFd00000720sv0000103Csd00008144*
+ ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) (FlexFabric 10GB 2-port 556FLR-T Adapter)
+
 pci:v000010DFd00000720sv000017AAsd00001056*
  ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) (ThinkServer OCm14102-UX-L AnyFabric)
 
@@ -32489,6 +32645,15 @@ pci:v000010DFd0000F112*
 pci:v000010DFd0000F180*
  ID_MODEL_FROM_DATABASE=LPSe12002 EmulexSecure Fibre Channel Adapter
 
+pci:v000010DFd0000F400*
+ ID_MODEL_FROM_DATABASE=LPe36000 Fibre Channel Host Adapter [Prism]
+
+pci:v000010DFd0000F400sv000010DFsd0000F401*
+ ID_MODEL_FROM_DATABASE=LPe36000 Fibre Channel Host Adapter [Prism] (LPe35000 Fibre Channel Host Adapter [Prism])
+
+pci:v000010DFd0000F400sv000010DFsd0000F402*
+ ID_MODEL_FROM_DATABASE=LPe36000 Fibre Channel Host Adapter [Prism] (LPe35000 Fibre Channel Host Adapter [Prism])
+
 pci:v000010DFd0000F700*
  ID_MODEL_FROM_DATABASE=LP7000 Fibre Channel Host Adapter
 
@@ -32898,25 +33063,25 @@ pci:v000010ECd00008129sv000011ECsd00008129*
  ID_MODEL_FROM_DATABASE=RTL-8129 (RTL8111/8168 PCIe Gigabit Ethernet (misconfigured))
 
 pci:v000010ECd00008136*
- ID_MODEL_FROM_DATABASE=RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller
+ ID_MODEL_FROM_DATABASE=RTL8101/2/6E PCI Express Fast Ethernet controller
 
 pci:v000010ECd00008136sv0000103Csd00001985*
- ID_MODEL_FROM_DATABASE=RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller (Pavilion 17-e163sg Notebook PC)
+ ID_MODEL_FROM_DATABASE=RTL8101/2/6E PCI Express Fast Ethernet controller (RTL8106E on Pavilion 17-e163sg Notebook PC)
 
 pci:v000010ECd00008136sv0000103Csd00002A8C*
- ID_MODEL_FROM_DATABASE=RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller (Compaq 500B Microtower)
+ ID_MODEL_FROM_DATABASE=RTL8101/2/6E PCI Express Fast Ethernet controller (Compaq 500B Microtower)
 
 pci:v000010ECd00008136sv0000103Csd00002AB1*
- ID_MODEL_FROM_DATABASE=RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller (Pavilion p6774)
+ ID_MODEL_FROM_DATABASE=RTL8101/2/6E PCI Express Fast Ethernet controller (Pavilion p6774)
 
 pci:v000010ECd00008136sv0000103Csd000030CC*
- ID_MODEL_FROM_DATABASE=RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller (Pavilion dv6700)
+ ID_MODEL_FROM_DATABASE=RTL8101/2/6E PCI Express Fast Ethernet controller (Pavilion dv6700)
 
 pci:v000010ECd00008136sv00001179sd0000FF64*
- ID_MODEL_FROM_DATABASE=RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller (RTL8102E PCI-E Fast Ethernet NIC)
+ ID_MODEL_FROM_DATABASE=RTL8101/2/6E PCI Express Fast Ethernet controller (RTL8102E PCI-E Fast Ethernet NIC)
 
 pci:v000010ECd00008136sv000017C0sd00001053*
- ID_MODEL_FROM_DATABASE=RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller (RTL8101e Medion WIM 2210 Notebook PC [MD96850])
+ ID_MODEL_FROM_DATABASE=RTL8101/2/6E PCI Express Fast Ethernet controller (RTL8101e Medion WIM 2210 Notebook PC [MD96850])
 
 pci:v000010ECd00008138*
  ID_MODEL_FROM_DATABASE=RT8139 (B/C) Cardbus Fast Ethernet Adapter
@@ -33080,6 +33245,9 @@ pci:v000010ECd00008139sv0000A0A0sd00000007*
 pci:v000010ECd00008167*
  ID_MODEL_FROM_DATABASE=RTL-8110SC/8169SC Gigabit Ethernet
 
+pci:v000010ECd00008167sv0000105Bsd00000E10*
+ ID_MODEL_FROM_DATABASE=RTL-8110SC/8169SC Gigabit Ethernet (RTL-8110SC-GR on a N15235/A74MX mainboard)
+
 pci:v000010ECd00008167sv00001458sd0000E000*
  ID_MODEL_FROM_DATABASE=RTL-8110SC/8169SC Gigabit Ethernet (GA-MA69G-S3H Motherboard)
 
@@ -33311,6 +33479,9 @@ pci:v000010ECd0000B723*
 pci:v000010ECd0000B723sv000010ECsd00008739*
  ID_MODEL_FROM_DATABASE=RTL8723BE PCIe Wireless Network Adapter (Dell Wireless 1801)
 
+pci:v000010ECd0000C821*
+ ID_MODEL_FROM_DATABASE=RTL8821CE 802.11ac PCIe Wireless Network Adapter
+
 pci:v000010ED*
  ID_VENDOR_FROM_DATABASE=Ascii Corporation
 
@@ -37148,6 +37319,12 @@ pci:v00001131d00007146sv00001131sd00005F61*
 pci:v00001131d00007146sv0000114Bsd00002003*
  ID_MODEL_FROM_DATABASE=SAA7146 (DVRaptor Video Edit/Capture Card)
 
+pci:v00001131d00007146sv00001159sd00000040*
+ ID_MODEL_FROM_DATABASE=SAA7146 (MuTech M-Vision 500 (MV-500 rev. E))
+
+pci:v00001131d00007146sv00001159sd00000050*
+ ID_MODEL_FROM_DATABASE=SAA7146 (MuTech M-Vision 500 (MV-500 rev. F))
+
 pci:v00001131d00007146sv000011BDsd00000006*
  ID_MODEL_FROM_DATABASE=SAA7146 (DV500 Overlay)
 
@@ -38511,7 +38688,7 @@ pci:v00001158d00009051*
  ID_MODEL_FROM_DATABASE=Lanfleet/Truevalue
 
 pci:v00001159*
- ID_VENDOR_FROM_DATABASE=Mutech Corp
+ ID_VENDOR_FROM_DATABASE=MuTech Corporation
 
 pci:v00001159d00000001*
  ID_MODEL_FROM_DATABASE=MV-1000
@@ -44264,6 +44441,9 @@ pci:v000012D8*
 pci:v000012D8d000001A7*
  ID_MODEL_FROM_DATABASE=7C21P100 2-port PCI-X to PCI-X Bridge
 
+pci:v000012D8d00002608*
+ ID_MODEL_FROM_DATABASE=PI7C9X2G608GP PCIe2 6-Port/8-Lane Packet Switch
+
 pci:v000012D8d0000400A*
  ID_MODEL_FROM_DATABASE=PI7C9X442SL PCI Express Bridge Port
 
@@ -45318,7 +45498,7 @@ pci:v0000135Cd00000060*
  ID_MODEL_FROM_DATABASE=ESC-100M
 
 pci:v0000135Cd000000F0*
- ID_MODEL_FROM_DATABASE=MPAC-100 Syncronous Serial Card (Zilog 85230)
+ ID_MODEL_FROM_DATABASE=MPAC-100 Synchronous Serial Card (Zilog 85230)
 
 pci:v0000135Cd00000170*
  ID_MODEL_FROM_DATABASE=QSCLP-100
@@ -45804,13 +45984,13 @@ pci:v00001393d00000001*
  ID_MODEL_FROM_DATABASE=UC7000 Serial
 
 pci:v00001393d00001020*
- ID_MODEL_FROM_DATABASE=CP102 (2-port RS-232 PCI)
+ ID_MODEL_FROM_DATABASE=CP-102 (2-port RS-232 PCI)
 
 pci:v00001393d00001021*
- ID_MODEL_FROM_DATABASE=CP102UL (2-port RS-232 Universal PCI)
+ ID_MODEL_FROM_DATABASE=CP-102UL (2-port RS-232 Universal PCI)
 
 pci:v00001393d00001022*
- ID_MODEL_FROM_DATABASE=CP102U (2-port RS-232 Universal PCI)
+ ID_MODEL_FROM_DATABASE=CP-102U (2-port RS-232 Universal PCI)
 
 pci:v00001393d00001023*
  ID_MODEL_FROM_DATABASE=CP-102UF
@@ -45891,7 +46071,7 @@ pci:v00001393d00001681*
  ID_MODEL_FROM_DATABASE=CP-168U V2 Smart Serial Board (8-port RS-232)
 
 pci:v00001393d00001682*
- ID_MODEL_FROM_DATABASE=CP168EL (8-port RS-232 Smart PCI Express)
+ ID_MODEL_FROM_DATABASE=CP-168EL (8-port RS-232 Smart PCI Express)
 
 pci:v00001393d00001683*
  ID_MODEL_FROM_DATABASE=CP-168EL-A (8-port RS-232 PCI Express Serial Board)
@@ -46724,6 +46904,9 @@ pci:v000013F6d00008788sv00001043sd00008428*
 pci:v000013F6d00008788sv00001043sd00008467*
  ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CMI8786 (Xonar DG))
 
+pci:v000013F6d00008788sv00001043sd00008521*
+ ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (CMI8786 (Xonar DGX))
+
 pci:v000013F6d00008788sv00001043sd000085F4*
  ID_MODEL_FROM_DATABASE=CMI8788 [Oxygen HD Audio] (Virtuoso 100 (Xonar Essence STX II))
 
@@ -48179,6 +48362,12 @@ pci:v00001425d000050A8*
 pci:v00001425d000050A9*
  ID_MODEL_FROM_DATABASE=T580-50A9 Unified Wire Ethernet Controller
 
+pci:v00001425d000050AA*
+ ID_MODEL_FROM_DATABASE=T580-50AA Unified Wire Ethernet Controller
+
+pci:v00001425d000050AB*
+ ID_MODEL_FROM_DATABASE=T520-50AB Unified Wire Ethernet Controller
+
 pci:v00001425d00005401*
  ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller
 
@@ -48359,6 +48548,12 @@ pci:v00001425d000054A8*
 pci:v00001425d000054A9*
  ID_MODEL_FROM_DATABASE=T580-50A9 Unified Wire Ethernet Controller
 
+pci:v00001425d000054AA*
+ ID_MODEL_FROM_DATABASE=T580-50AA Unified Wire Ethernet Controller
+
+pci:v00001425d000054AB*
+ ID_MODEL_FROM_DATABASE=T520-50AB Unified Wire Ethernet Controller
+
 pci:v00001425d00005501*
  ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Storage Controller
 
@@ -48719,6 +48914,12 @@ pci:v00001425d000056A8*
 pci:v00001425d000056A9*
  ID_MODEL_FROM_DATABASE=T580-50A9 Unified Wire Storage Controller
 
+pci:v00001425d000056AA*
+ ID_MODEL_FROM_DATABASE=T580-50AA Unified Wire Storage Controller
+
+pci:v00001425d000056AB*
+ ID_MODEL_FROM_DATABASE=T520-50AB Unified Wire Storage Controller
+
 pci:v00001425d00005701*
  ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller
 
@@ -49016,6 +49217,12 @@ pci:v00001425d000058A8*
 pci:v00001425d000058A9*
  ID_MODEL_FROM_DATABASE=T580-50A9 Unified Wire Ethernet Controller [VF]
 
+pci:v00001425d000058AA*
+ ID_MODEL_FROM_DATABASE=T580-50AA Unified Wire Ethernet Controller [VF]
+
+pci:v00001425d000058AB*
+ ID_MODEL_FROM_DATABASE=T520-50AB Unified Wire Ethernet Controller [VF]
+
 pci:v00001425d00006001*
  ID_MODEL_FROM_DATABASE=T6225-CR Unified Wire Ethernet Controller
 
@@ -49070,6 +49277,12 @@ pci:v00001425d00006083*
 pci:v00001425d00006084*
  ID_MODEL_FROM_DATABASE=T64100-6084 Unified Wire Ethernet Controller
 
+pci:v00001425d00006085*
+ ID_MODEL_FROM_DATABASE=T6240-6085 Unified Wire Ethernet Controller
+
+pci:v00001425d00006086*
+ ID_MODEL_FROM_DATABASE=T6225-6086 Unified Wire Ethernet Controller
+
 pci:v00001425d00006401*
  ID_MODEL_FROM_DATABASE=T6225-CR Unified Wire Ethernet Controller
 
@@ -49124,6 +49337,12 @@ pci:v00001425d00006483*
 pci:v00001425d00006484*
  ID_MODEL_FROM_DATABASE=T64100-6084 Unified Wire Ethernet Controller
 
+pci:v00001425d00006485*
+ ID_MODEL_FROM_DATABASE=T6240-6085 Unified Wire Ethernet Controller
+
+pci:v00001425d00006486*
+ ID_MODEL_FROM_DATABASE=T6225-6086 Unified Wire Ethernet Controller
+
 pci:v00001425d00006501*
  ID_MODEL_FROM_DATABASE=T6225-CR Unified Wire Storage Controller
 
@@ -49178,6 +49397,12 @@ pci:v00001425d00006583*
 pci:v00001425d00006584*
  ID_MODEL_FROM_DATABASE=T64100-6084 Unified Wire Storage Controller
 
+pci:v00001425d00006585*
+ ID_MODEL_FROM_DATABASE=T6240-6085 Unified Wire Storage Controller
+
+pci:v00001425d00006586*
+ ID_MODEL_FROM_DATABASE=T6225-6086 Unified Wire Storage Controller
+
 pci:v00001425d00006601*
  ID_MODEL_FROM_DATABASE=T6225-CR Unified Wire Storage Controller
 
@@ -49232,6 +49457,12 @@ pci:v00001425d00006683*
 pci:v00001425d00006684*
  ID_MODEL_FROM_DATABASE=T64100-6084 Unified Wire Storage Controller
 
+pci:v00001425d00006685*
+ ID_MODEL_FROM_DATABASE=T6240-6085 Unified Wire Storage Controller
+
+pci:v00001425d00006686*
+ ID_MODEL_FROM_DATABASE=T6225-6086 Unified Wire Storage Controller
+
 pci:v00001425d00006801*
  ID_MODEL_FROM_DATABASE=T6225-CR Unified Wire Ethernet Controller [VF]
 
@@ -49286,6 +49517,12 @@ pci:v00001425d00006883*
 pci:v00001425d00006884*
  ID_MODEL_FROM_DATABASE=T64100-6084 Unified Wire Ethernet Controller [VF]
 
+pci:v00001425d00006885*
+ ID_MODEL_FROM_DATABASE=T6240-6085 Unified Wire Ethernet Controller [VF]
+
+pci:v00001425d00006886*
+ ID_MODEL_FROM_DATABASE=T6225-6086 Unified Wire Ethernet Controller [VF]
+
 pci:v00001425d0000A000*
  ID_MODEL_FROM_DATABASE=PE10K Unified Wire Ethernet Controller
 
@@ -51164,6 +51401,9 @@ pci:v000014E4d000016A0*
 pci:v000014E4d000016A1*
  ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10 Gigabit Ethernet
 
+pci:v000014E4d000016A1sv00001043sd0000866E*
+ ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10 Gigabit Ethernet (PEB-10G/57840-2T 10GBase-T Network Adapter)
+
 pci:v000014E4d000016A2*
  ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet
 
@@ -51531,13 +51771,16 @@ pci:v000014E4d000016D7sv00001590sd00000211*
  ID_MODEL_FROM_DATABASE=BCM57414 NetXtreme-E 10Gb/25Gb RDMA Ethernet Controller (Ethernet 25Gb 2-port 631FLR-SFP28 Adapter)
 
 pci:v000014E4d000016D8*
- ID_MODEL_FROM_DATABASE=BCM57416 NetXtreme-E 10GBase-T RDMA Ethernet Controller
+ ID_MODEL_FROM_DATABASE=BCM57416 NetXtreme-E Dual-Media 10G RDMA Ethernet Controller
+
+pci:v000014E4d000016D8sv00001028sd00001FEB*
+ ID_MODEL_FROM_DATABASE=BCM57416 NetXtreme-E Dual-Media 10G RDMA Ethernet Controller (NetXtreme-E 10Gb SFP+ Adapter)
 
 pci:v000014E4d000016D8sv00001590sd0000020C*
- ID_MODEL_FROM_DATABASE=BCM57416 NetXtreme-E 10GBase-T RDMA Ethernet Controller (Ethernet 10Gb 2-port 535T Adapter)
+ ID_MODEL_FROM_DATABASE=BCM57416 NetXtreme-E Dual-Media 10G RDMA Ethernet Controller (Ethernet 10Gb 2-port 535T Adapter)
 
 pci:v000014E4d000016D8sv00001590sd00000212*
- ID_MODEL_FROM_DATABASE=BCM57416 NetXtreme-E 10GBase-T RDMA Ethernet Controller (Ethernet 10Gb 2-port 535FLR-T Adapter)
+ ID_MODEL_FROM_DATABASE=BCM57416 NetXtreme-E Dual-Media 10G RDMA Ethernet Controller (Ethernet 10Gb 2-port 535FLR-T Adapter)
 
 pci:v000014E4d000016D9*
  ID_MODEL_FROM_DATABASE=BCM57417 NetXtreme-E 10GBASE-T RDMA Ethernet Controller
@@ -56705,6 +56948,9 @@ pci:v000016D5d00007017*
 pci:v000016D5d00007018*
  ID_MODEL_FROM_DATABASE=AP408: 32-Channel Digital I/O Module
 
+pci:v000016D5d00007019*
+ ID_MODEL_FROM_DATABASE=AP341 14-bit, 16-Channel Simultaneous Conversion Analog Input Module
+
 pci:v000016D5d0000701A*
  ID_MODEL_FROM_DATABASE=AP220-16 12-Bit, 16-Channel Analog Output Module
 
@@ -56723,6 +56969,9 @@ pci:v000016D5d00007023*
 pci:v000016D5d00007024*
  ID_MODEL_FROM_DATABASE=APA7-204 Reconfigurable Artix-7 FPGA module 24 LVDS channels
 
+pci:v000016D5d00007027*
+ ID_MODEL_FROM_DATABASE=AP418 16-Channel High Voltage Digital Input/Output Module
+
 pci:v000016D5d00007042*
  ID_MODEL_FROM_DATABASE=AP482 Counter Timer Module with TTL Level Input/Output
 
@@ -57902,6 +58151,9 @@ pci:v00001805*
 pci:v00001809*
  ID_VENDOR_FROM_DATABASE=Lumanate, Inc.
 
+pci:v0000180C*
+ ID_VENDOR_FROM_DATABASE=IEI Integration Corp
+
 pci:v00001813*
  ID_VENDOR_FROM_DATABASE=Ambient Technologies Inc
 
@@ -59180,6 +59432,9 @@ pci:v00001924d00000A03sv00001924sd00008019*
 pci:v00001924d00000A03sv00001924sd0000801A*
  ID_MODEL_FROM_DATABASE=SFC9220 10/40G Ethernet Controller (SFN8722-R1 8000 Series OCP 10G Adapter)
 
+pci:v00001924d00000A03sv00001924sd0000801B*
+ ID_MODEL_FROM_DATABASE=SFC9220 10/40G Ethernet Controller (SFN8522-R3 8000 Series 10G Adapter)
+
 pci:v00001924d00001803*
  ID_MODEL_FROM_DATABASE=SFC9020 10G Ethernet Controller (Virtual Function)
 
@@ -59720,6 +59975,9 @@ pci:v00001969d0000E091*
 pci:v00001969d0000E0A1*
  ID_MODEL_FROM_DATABASE=Killer E2400 Gigabit Ethernet Controller
 
+pci:v00001969d0000E0B1*
+ ID_MODEL_FROM_DATABASE=Killer E2500 Gigabit Ethernet Controller
+
 pci:v0000196A*
  ID_VENDOR_FROM_DATABASE=Sensory Networks Inc.
 
@@ -61304,6 +61562,12 @@ pci:v00001CC7d00000200*
 pci:v00001CC7d00000250*
  ID_MODEL_FROM_DATABASE=RMS-250
 
+pci:v00001CCF*
+ ID_VENDOR_FROM_DATABASE=Zoom Corporation
+
+pci:v00001CCFd00000001*
+ ID_MODEL_FROM_DATABASE=TAC-2 Thunderbolt Audio Converter
+
 pci:v00001CD2*
  ID_VENDOR_FROM_DATABASE=SesKion GmbH
 
@@ -61700,6 +61964,15 @@ pci:v00001DE1d0000690C*
 pci:v00001DE1d0000DC29*
  ID_MODEL_FROM_DATABASE=DC290
 
+pci:v00001DE5*
+ ID_VENDOR_FROM_DATABASE=Eideticom, Inc
+
+pci:v00001DE5d00001000*
+ ID_MODEL_FROM_DATABASE=IO Memory Controller
+
+pci:v00001DE5d00002000*
+ ID_MODEL_FROM_DATABASE=NoLoad Hardware Development Kit
+
 pci:v00001FC0*
  ID_VENDOR_FROM_DATABASE=Ascom (Finland) Oy
 
@@ -61796,6 +62069,9 @@ pci:v00001FC9d00004010*
 pci:v00001FC9d00004020*
  ID_MODEL_FROM_DATABASE=TN9030 10GbE CX4 Ethernet Adapter
 
+pci:v00001FC9d00004020sv0000180Csd00002040*
+ ID_MODEL_FROM_DATABASE=TN9030 10GbE CX4 Ethernet Adapter (Mustang-200 10GbE Ethernet Adapter)
+
 pci:v00001FC9d00004022*
  ID_MODEL_FROM_DATABASE=TN9310 10GbE SFP+ Ethernet Adapter
 
@@ -64196,6 +64472,9 @@ pci:v00008086d00000150*
 pci:v00008086d00000150sv00001043sd000084CA*
  ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (P8 series motherboard)
 
+pci:v00008086d00000150sv00001458sd0000D000*
+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (Ivy Bridge GT1 [HD Graphics])
+
 pci:v00008086d00000150sv000015D9sd00000624*
  ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (X9SCM-F Motherboard)
 
@@ -64814,6 +65093,9 @@ pci:v00008086d00000897sv00008086sd00005015*
 pci:v00008086d00000897sv00008086sd00005017*
  ID_MODEL_FROM_DATABASE=Centrino Wireless-N 130 (BG)
 
+pci:v00008086d000008A7*
+ ID_MODEL_FROM_DATABASE=Quark SoC X1000 SDIO / eMMC Controller
+
 pci:v00008086d000008AE*
  ID_MODEL_FROM_DATABASE=Centrino Wireless-N 100
 
@@ -65129,6 +65411,24 @@ pci:v00008086d000008B4sv00008086sd00008370*
 pci:v00008086d000008CF*
  ID_MODEL_FROM_DATABASE=Atom Processor Z2760 Integrated Graphics Controller
 
+pci:v00008086d00000934*
+ ID_MODEL_FROM_DATABASE=Quark SoC X1000 I2C Controller and GPIO Controller
+
+pci:v00008086d00000935*
+ ID_MODEL_FROM_DATABASE=Quark SoC X1000 SPI Controller
+
+pci:v00008086d00000936*
+ ID_MODEL_FROM_DATABASE=Quark SoC X1000 HS-UART
+
+pci:v00008086d00000937*
+ ID_MODEL_FROM_DATABASE=Quark SoC X1000 10/100 Ethernet MAC
+
+pci:v00008086d00000939*
+ ID_MODEL_FROM_DATABASE=Quark SoC X1000 USB EHCI Host Controller / USB 2.0 Device
+
+pci:v00008086d0000093A*
+ ID_MODEL_FROM_DATABASE=Quark SoC X1000 USB OHCI Host Controller
+
 pci:v00008086d00000953*
  ID_MODEL_FROM_DATABASE=PCIe Data Center SSD
 
@@ -65156,6 +65456,9 @@ pci:v00008086d00000953sv00008086sd0000370D*
 pci:v00008086d00000953sv00008086sd0000370E*
  ID_MODEL_FROM_DATABASE=PCIe Data Center SSD (SSD 750 Series [2.5" SFF])
 
+pci:v00008086d00000958*
+ ID_MODEL_FROM_DATABASE=Quark SoC X1000 Host Bridge
+
 pci:v00008086d0000095A*
  ID_MODEL_FROM_DATABASE=Wireless 7265
 
@@ -65288,6 +65591,9 @@ pci:v00008086d0000095Bsv00008086sd00005310*
 pci:v00008086d0000095Bsv00008086sd00009200*
  ID_MODEL_FROM_DATABASE=Wireless 7265 (Dual Band Wireless-AC 7265)
 
+pci:v00008086d0000095E*
+ ID_MODEL_FROM_DATABASE=Quark SoC X1000 Legacy Bridge
+
 pci:v00008086d00000960*
  ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor/Bridge
 
@@ -65297,6 +65603,9 @@ pci:v00008086d00000962*
 pci:v00008086d00000964*
  ID_MODEL_FROM_DATABASE=80960RP (i960RP) Microprocessor/Bridge
 
+pci:v00008086d00000A03*
+ ID_MODEL_FROM_DATABASE=Haswell-ULT Thermal Subsystem
+
 pci:v00008086d00000A04*
  ID_MODEL_FROM_DATABASE=Haswell-ULT DRAM Controller
 
@@ -65336,9 +65645,36 @@ pci:v00008086d00000A53*
 pci:v00008086d00000A54*
  ID_MODEL_FROM_DATABASE=Express Flash NVMe P4500
 
+pci:v00008086d00000A54sv00001028sd00001FE1*
+ ID_MODEL_FROM_DATABASE=Express Flash NVMe P4500 (Express Flash NVMe 1TB 2.5" U.2 (P4500))
+
+pci:v00008086d00000A54sv00001028sd00001FE2*
+ ID_MODEL_FROM_DATABASE=Express Flash NVMe P4500 (Express Flash NVMe 2TB 2.5" U.2 (P4500))
+
+pci:v00008086d00000A54sv00001028sd00001FE3*
+ ID_MODEL_FROM_DATABASE=Express Flash NVMe P4500 (Express Flash NVMe 4TB 2.5" U.2 (P4500))
+
+pci:v00008086d00000A54sv00001028sd00001FE4*
+ ID_MODEL_FROM_DATABASE=Express Flash NVMe P4500 (Express Flash NVMe 4TB HHHL AIC (P4500))
+
 pci:v00008086d00000A55*
  ID_MODEL_FROM_DATABASE=Express Flash NVMe P4600
 
+pci:v00008086d00000A55sv00001028sd00001FE5*
+ ID_MODEL_FROM_DATABASE=Express Flash NVMe P4600 (Express Flash NVMe 1.6TB 2.5" U.2 (P4600))
+
+pci:v00008086d00000A55sv00001028sd00001FE6*
+ ID_MODEL_FROM_DATABASE=Express Flash NVMe P4600 (Express Flash NVMe 2TB 2.5" U.2 (P4600))
+
+pci:v00008086d00000A55sv00001028sd00001FE7*
+ ID_MODEL_FROM_DATABASE=Express Flash NVMe P4600 (Express Flash NVMe 3.2TB 2.5" U.2 (P4600))
+
+pci:v00008086d00000A55sv00001028sd00001FE8*
+ ID_MODEL_FROM_DATABASE=Express Flash NVMe P4600 (Express Flash NVMe 2.0TB HHHL AIC (P4600))
+
+pci:v00008086d00000A55sv00001028sd00001FE9*
+ ID_MODEL_FROM_DATABASE=Express Flash NVMe P4600 (Express Flash NVMe 4.0TB HHHL AIC (P4600))
+
 pci:v00008086d00000BE0*
  ID_MODEL_FROM_DATABASE=Atom Processor D2xxx/N2xxx Integrated Graphics Controller
 
@@ -67658,6 +67994,12 @@ pci:v00008086d000011A2*
 pci:v00008086d000011A5*
  ID_MODEL_FROM_DATABASE=Merrifield Serial IO PWM Controller
 
+pci:v00008086d000011C3*
+ ID_MODEL_FROM_DATABASE=Quark SoC X1000 PCIe Root Port 0
+
+pci:v00008086d000011C4*
+ ID_MODEL_FROM_DATABASE=Quark SoC X1000 PCIe Root Port 1
+
 pci:v00008086d00001200*
  ID_MODEL_FROM_DATABASE=IXP1200 Network Processor
 
@@ -68603,6 +68945,9 @@ pci:v00008086d00001528sv0000108Esd00007B15*
 pci:v00008086d00001528sv00001137sd000000BF*
  ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (Ethernet Converged Network Adapter X540-T2)
 
+pci:v00008086d00001528sv00001170sd00000052*
+ ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2
+
 pci:v00008086d00001528sv000017AAsd00001073*
  ID_MODEL_FROM_DATABASE=Ethernet Controller 10-Gigabit X540-AT2 (ThinkServer X540-T2 AnyFabric)
 
@@ -68963,6 +69308,9 @@ pci:v00008086d00001572sv00008086sd0000000D*
 pci:v00008086d00001572sv00008086sd0000000E*
  ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Server Adapter OCP X710-2)
 
+pci:v00008086d00001572sv00008086sd0000000F*
+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Server Adapter OCP X710-2)
+
 pci:v00008086d00001572sv00008086sd00000010*
  ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710)
 
@@ -69293,6 +69641,9 @@ pci:v00008086d000015CE*
 pci:v00008086d000015D0*
  ID_MODEL_FROM_DATABASE=Ethernet SDI Adapter FM10420-100GbE-QDA2
 
+pci:v00008086d000015D0sv00008086sd00000001*
+ ID_MODEL_FROM_DATABASE=Ethernet SDI Adapter FM10420-100GbE-QDA2
+
 pci:v00008086d000015D1*
  ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T
 
@@ -69540,10 +69891,10 @@ pci:v00008086d00001912*
  ID_MODEL_FROM_DATABASE=HD Graphics 530
 
 pci:v00008086d00001916*
- ID_MODEL_FROM_DATABASE=HD Graphics 520
+ ID_MODEL_FROM_DATABASE=Skylake GT2 [HD Graphics 520]
 
 pci:v00008086d00001916sv00001028sd000006F3*
- ID_MODEL_FROM_DATABASE=HD Graphics 520 (Latitude 3570)
+ ID_MODEL_FROM_DATABASE=Skylake GT2 [HD Graphics 520] (Latitude 3570)
 
 pci:v00008086d00001918*
  ID_MODEL_FROM_DATABASE=Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers
@@ -72927,7 +73278,7 @@ pci:v00008086d000024D5sv00008086sd0000E001*
  ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (Desktop Board D865GBF)
 
 pci:v00008086d000024D5sv00008086sd0000E002*
- ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (SoundMax Intergrated Digital Audio)
+ ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (SoundMax Integrated Digital Audio)
 
 pci:v00008086d000024D6*
  ID_MODEL_FROM_DATABASE=82801EB/ER (ICH5/ICH5R) AC'97 Modem Controller
@@ -75906,7 +76257,7 @@ pci:v00008086d00002822sv0000103Csd00002A6F*
  ID_MODEL_FROM_DATABASE=SATA Controller [RAID mode] (Asus IPIBL-LB Motherboard)
 
 pci:v00008086d00002822sv00001043sd00008277*
- ID_MODEL_FROM_DATABASE=SATA Controller [RAID mode] (P5K PRO Motherboard)
+ ID_MODEL_FROM_DATABASE=SATA Controller [RAID mode] (P5K PRO Motherboard: 82801IR [ICH9R])
 
 pci:v00008086d00002823*
  ID_MODEL_FROM_DATABASE=C610/X99 series chipset sSATA Controller [RAID mode]
@@ -76431,7 +76782,7 @@ pci:v00008086d0000284Bsv00001025sd00000121*
  ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Aspire 5920G)
 
 pci:v00008086d0000284Bsv00001025sd00000145*
- ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Realtek ALC889 (Aspire 8920G w. Dolby Theather))
+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Realtek ALC889 (Aspire 8920G w. Dolby Theater))
 
 pci:v00008086d0000284Bsv00001028sd000001DA*
  ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (OptiPlex 745)
@@ -76596,7 +76947,7 @@ pci:v00008086d00002920sv00001028sd0000023C*
  ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (PowerEdge R200 onboard SATA Controller)
 
 pci:v00008086d00002920sv00001043sd00008277*
- ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (P5K PRO Motherboard)
+ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (P5K PRO Motherboard: 82801IR [ICH9R])
 
 pci:v00008086d00002921*
  ID_MODEL_FROM_DATABASE=82801IB (ICH9) 2 port SATA Controller [IDE mode]
@@ -76617,7 +76968,7 @@ pci:v00008086d00002922*
  ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode]
 
 pci:v00008086d00002922sv00001043sd00008277*
- ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (P5K PRO Motherboard)
+ ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (P5K PRO Motherboard: 82801IR [ICH9R])
 
 pci:v00008086d00002922sv00001AF4sd00001100*
  ID_MODEL_FROM_DATABASE=82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (QEMU Virtual Machine)
@@ -76653,7 +77004,7 @@ pci:v00008086d00002926sv00001028sd00000211*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (Optiplex 755)
 
 pci:v00008086d00002926sv00001043sd00008277*
- ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (P5K PRO Motherboard)
+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (P5K PRO Motherboard: 82801IR [ICH9R])
 
 pci:v00008086d00002926sv00001462sd00007360*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (G33/P35 Neo)
@@ -76695,7 +77046,7 @@ pci:v00008086d00002930sv0000103Csd00003628*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (dv6-1190en)
 
 pci:v00008086d00002930sv00001043sd00008277*
- ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (P5K PRO Motherboard)
+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (P5K PRO Motherboard: 82801IR [ICH9R])
 
 pci:v00008086d00002930sv00001462sd00007360*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) SMBus Controller (G33/P35 Neo)
@@ -76755,7 +77106,7 @@ pci:v00008086d00002934sv0000103Csd00002A6F*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (Asus IPIBL-LB Motherboard)
 
 pci:v00008086d00002934sv00001043sd00008277*
- ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (P5K PRO Motherboard)
+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (P5K PRO Motherboard: 82801IR [ICH9R])
 
 pci:v00008086d00002934sv00001462sd00007360*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #1 (G33/P35 Neo)
@@ -76806,7 +77157,7 @@ pci:v00008086d00002935sv0000103Csd00002A6F*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (Asus IPIBL-LB Motherboard)
 
 pci:v00008086d00002935sv00001043sd00008277*
- ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (P5K PRO Motherboard)
+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (P5K PRO Motherboard: 82801IR [ICH9R])
 
 pci:v00008086d00002935sv00001462sd00007360*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #2 (G33/P35 Neo)
@@ -76851,7 +77202,7 @@ pci:v00008086d00002936sv0000103Csd00002A6F*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (Asus IPIBL-LB Motherboard)
 
 pci:v00008086d00002936sv00001043sd00008277*
- ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (P5K PRO Motherboard)
+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (P5K PRO Motherboard: 82801IR [ICH9R])
 
 pci:v00008086d00002936sv00001462sd00007360*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #3 (G33/P35 Neo)
@@ -76896,7 +77247,7 @@ pci:v00008086d00002937sv0000103Csd00002A6F*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (Asus IPIBL-LB Motherboard)
 
 pci:v00008086d00002937sv00001043sd00008277*
- ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (P5K PRO Motherboard)
+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (P5K PRO Motherboard: 82801IR [ICH9R])
 
 pci:v00008086d00002937sv00001462sd00007360*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #4 (G33/P35 Neo)
@@ -76944,7 +77295,7 @@ pci:v00008086d00002938sv0000103Csd00002A6F*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (Asus IPIBL-LB Motherboard)
 
 pci:v00008086d00002938sv00001043sd00008277*
- ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (P5K PRO Motherboard)
+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (P5K PRO Motherboard: 82801IR [ICH9R])
 
 pci:v00008086d00002938sv00001462sd00007360*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #5 (G33/P35 Neo)
@@ -76977,7 +77328,7 @@ pci:v00008086d00002939sv0000103Csd00002A6F*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (Asus IPIBL-LB Motherboard)
 
 pci:v00008086d00002939sv00001043sd00008277*
- ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (P5K PRO Motherboard)
+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (P5K PRO Motherboard: 82801IR [ICH9R])
 
 pci:v00008086d00002939sv00001462sd00007360*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB UHCI Controller #6 (G33/P35 Neo)
@@ -77028,7 +77379,7 @@ pci:v00008086d0000293Asv0000103Csd00002A6F*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (Asus IPIBL-LB Motherboard)
 
 pci:v00008086d0000293Asv00001043sd00008277*
- ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (P5K PRO Motherboard)
+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (P5K PRO Motherboard: 82801IR [ICH9R])
 
 pci:v00008086d0000293Asv00001462sd00007360*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #1 (G33/P35 Neo)
@@ -77070,7 +77421,7 @@ pci:v00008086d0000293Csv0000103Csd00002A6F*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (Asus IPIBL-LB Motherboard)
 
 pci:v00008086d0000293Csv00001043sd00008277*
- ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (P5K PRO Motherboard)
+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (P5K PRO Motherboard: 82801IR [ICH9R])
 
 pci:v00008086d0000293Csv00001462sd00007360*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) USB2 EHCI Controller #2 (G33/P35 Neo)
@@ -77103,7 +77454,7 @@ pci:v00008086d0000293Esv0000103Csd00003628*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (dv6-1190en)
 
 pci:v00008086d0000293Esv00001043sd0000829F*
- ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (P5K PRO Motherboard)
+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (P5K PRO Motherboard: 82801IR [ICH9R])
 
 pci:v00008086d0000293Esv00001462sd00007360*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) HD Audio Controller (G33/P35 Neo)
@@ -77133,7 +77484,7 @@ pci:v00008086d00002940sv0000103Csd00002A6F*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (Asus IPIBL-LB Motherboard)
 
 pci:v00008086d00002940sv00001043sd00008277*
- ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (P5K PRO Motherboard)
+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (P5K PRO Motherboard: 82801IR [ICH9R])
 
 pci:v00008086d00002940sv00008086sd00002940*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 1 (Optiplex 755)
@@ -77166,7 +77517,7 @@ pci:v00008086d00002948sv00001028sd0000020D*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 5 (Inspiron 530)
 
 pci:v00008086d00002948sv00001043sd00008277*
- ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 5 (P5K PRO Motherboard)
+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 5 (P5K PRO Motherboard: 82801IR [ICH9R])
 
 pci:v00008086d0000294A*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 6
@@ -77175,7 +77526,7 @@ pci:v00008086d0000294Asv00001028sd0000020D*
  ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 6 (Inspiron 530)
 
 pci:v00008086d0000294Asv00001043sd00008277*
- ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 6 (P5K PRO Motherboard)
+ ID_MODEL_FROM_DATABASE=82801I (ICH9 Family) PCI Express Port 6 (P5K PRO Motherboard: 82801IR [ICH9R])
 
 pci:v00008086d0000294C*
  ID_MODEL_FROM_DATABASE=82566DC-2 Gigabit Network Connection
@@ -77337,7 +77688,7 @@ pci:v00008086d000029C0sv0000103Csd00002A6F*
  ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (Asus IPIBL-LB Motherboard)
 
 pci:v00008086d000029C0sv00001043sd00008276*
- ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (P5K PRO Motherboard)
+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (P5K PRO Motherboard: Intel 82P35 Northbridge)
 
 pci:v00008086d000029C0sv00001043sd000082B0*
  ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express DRAM Controller (P5KPL-VM Motherboard)
@@ -77358,7 +77709,7 @@ pci:v00008086d000029C1sv00001028sd0000020D*
  ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express PCI Express Root Port (Inspiron 530)
 
 pci:v00008086d000029C1sv00001043sd00008276*
- ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express PCI Express Root Port (P5K PRO Motherboard)
+ ID_MODEL_FROM_DATABASE=82G33/G31/P35/P31 Express PCI Express Root Port (P5K PRO Motherboard: Intel 82P35 Northbridge)
 
 pci:v00008086d000029C2*
  ID_MODEL_FROM_DATABASE=82G33/G31 Express Integrated Graphics Controller
@@ -85322,6 +85673,90 @@ pci:v00009005d0000028Fsv0000103Csd00001100*
 pci:v00009005d0000028Fsv0000103Csd00001101*
  ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (Smart Array P416ie-m SR G10)
 
+pci:v00009005d0000028Fsv00009005sd00000800*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartRAID 3154-8i)
+
+pci:v00009005d0000028Fsv00009005sd00000801*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartRAID 3152-8i)
+
+pci:v00009005d0000028Fsv00009005sd00000802*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartRAID 3151-4i)
+
+pci:v00009005d0000028Fsv00009005sd00000803*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartRAID 3101-4i)
+
+pci:v00009005d0000028Fsv00009005sd00000804*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartRAID 3154-8e)
+
+pci:v00009005d0000028Fsv00009005sd00000805*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartRAID 3102-8i)
+
+pci:v00009005d0000028Fsv00009005sd00000806*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartRAID 3100)
+
+pci:v00009005d0000028Fsv00009005sd00000807*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartRAID 3162-8i)
+
+pci:v00009005d0000028Fsv00009005sd00000900*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartHBA 2100-8i)
+
+pci:v00009005d0000028Fsv00009005sd00000901*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartHBA 2100-4i)
+
+pci:v00009005d0000028Fsv00009005sd00000902*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (HBA 1100-8i)
+
+pci:v00009005d0000028Fsv00009005sd00000903*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (HBA 1100-4i)
+
+pci:v00009005d0000028Fsv00009005sd00000904*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartHBA 2100-8e)
+
+pci:v00009005d0000028Fsv00009005sd00000905*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (HBA 1100-8e)
+
+pci:v00009005d0000028Fsv00009005sd00000906*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartHBA 2100-4i4e)
+
+pci:v00009005d0000028Fsv00009005sd00000907*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (HBA 1100)
+
+pci:v00009005d0000028Fsv00009005sd00000908*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartHBA 2100)
+
+pci:v00009005d0000028Fsv00009005sd0000090A*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartHBA 2100A-8i)
+
+pci:v00009005d0000028Fsv00009005sd00001200*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartRAID 3154-24i)
+
+pci:v00009005d0000028Fsv00009005sd00001201*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartRAID 3154-8i16e)
+
+pci:v00009005d0000028Fsv00009005sd00001202*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartRAID 3154-8i8e)
+
+pci:v00009005d0000028Fsv00009005sd00001280*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (HBA 1100-16i)
+
+pci:v00009005d0000028Fsv00009005sd00001281*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (HBA 1100-16e)
+
+pci:v00009005d0000028Fsv00009005sd00001300*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (HBA 1100-8i8e)
+
+pci:v00009005d0000028Fsv00009005sd00001301*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (HBA 1100-24i)
+
+pci:v00009005d0000028Fsv00009005sd00001302*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartHBA 2100-8i8e)
+
+pci:v00009005d0000028Fsv00009005sd00001303*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartHBA 2100-24i)
+
+pci:v00009005d0000028Fsv00009005sd00001380*
+ ID_MODEL_FROM_DATABASE=Smart Storage PQI 12G SAS/PCIe 3 (SmartRAID 3154-16i)
+
 pci:v00009005d00000410*
  ID_MODEL_FROM_DATABASE=AIC-9410W SAS (Razor HBA RAID)
 
index 549f6da8c7fce85c8fb0314da6152605062085b6..632c46f3bfbb663df463d7f13c4839a6ac8735be 100644 (file)
@@ -125,6 +125,12 @@ usb:v03DA*
 usb:v03DAp0002*
  ID_MODEL_FROM_DATABASE=HD44780 LCD interface
 
+usb:v03E7*
+ ID_VENDOR_FROM_DATABASE=Intel
+
+usb:v03E7p2150*
+ ID_MODEL_FROM_DATABASE=Myriad VPU [Movidius Neural Compute Stick]
+
 usb:v03E8*
  ID_VENDOR_FROM_DATABASE=EndPoints, Inc.
 
@@ -269,6 +275,9 @@ usb:v03EBp2107*
 usb:v03EBp2109*
  ID_MODEL_FROM_DATABASE=STK541 ZigBee Development Board
 
+usb:v03EBp210A*
+ ID_MODEL_FROM_DATABASE=AT86RF230 [RZUSBSTICK] transceiver
+
 usb:v03EBp210D*
  ID_MODEL_FROM_DATABASE=XPLAIN evaluation kit (CDC ACM)
 
@@ -548,6 +557,9 @@ usb:v03F0p0218*
 usb:v03F0p0221*
  ID_MODEL_FROM_DATABASE=StreamSmart 400 [F2235AA]
 
+usb:v03F0p0223*
+ ID_MODEL_FROM_DATABASE=Digital Drive Flash Reader
+
 usb:v03F0p022A*
  ID_MODEL_FROM_DATABASE=Laserjet CP1525nw
 
@@ -650,6 +662,9 @@ usb:v03F0p0612*
 usb:v03F0p0624*
  ID_MODEL_FROM_DATABASE=Bluetooth Dongle
 
+usb:v03F0p0641*
+ ID_MODEL_FROM_DATABASE=X1200 Optical Mouse
+
 usb:v03F0p0701*
  ID_MODEL_FROM_DATABASE=ScanJet 5300c/5370c
 
@@ -884,6 +899,9 @@ usb:v03F0p1539*
 usb:v03F0p1541*
  ID_MODEL_FROM_DATABASE=Prime [G8X92AA]
 
+usb:v03F0p154A*
+ ID_MODEL_FROM_DATABASE=Laser Mouse
+
 usb:v03F0p1602*
  ID_MODEL_FROM_DATABASE=PhotoSmart 330 series
 
@@ -1526,6 +1544,9 @@ usb:v03F0p5311*
 usb:v03F0p5312*
  ID_MODEL_FROM_DATABASE=Officejet Pro 8500A
 
+usb:v03F0p5317*
+ ID_MODEL_FROM_DATABASE=Color LaserJet CP2025 series
+
 usb:v03F0p5411*
  ID_MODEL_FROM_DATABASE=OfficeJet 4300
 
@@ -1886,6 +1907,9 @@ usb:v03F0pA004*
 usb:v03F0pA011*
  ID_MODEL_FROM_DATABASE=Deskjet 3050A
 
+usb:v03F0pA407*
+ ID_MODEL_FROM_DATABASE=Wireless Optical Comfort Mouse
+
 usb:v03F0pB002*
  ID_MODEL_FROM_DATABASE=PhotoSmart 7200 series
 
@@ -2285,6 +2309,12 @@ usb:v0403pA9A0*
 usb:v0403pABB8*
  ID_MODEL_FROM_DATABASE=Lego Mindstorms NXTCam
 
+usb:v0403pB0C2*
+ ID_MODEL_FROM_DATABASE=iID contactless RFID device
+
+usb:v0403pB0C3*
+ ID_MODEL_FROM_DATABASE=iID contactless RFID device
+
 usb:v0403pB810*
  ID_MODEL_FROM_DATABASE=US Interface Navigator (CAT and 2nd PTT lines)
 
@@ -3284,6 +3314,9 @@ usb:v040B*
 usb:v040Bp0A68*
  ID_MODEL_FROM_DATABASE=Func MS-3 gaming mouse [WT6573F MCU]
 
+usb:v040Bp2367*
+ ID_MODEL_FROM_DATABASE=Human Interface Device [HP CalcPad 200 Calculator and Numeric Keypad]
+
 usb:v040Bp6510*
  ID_MODEL_FROM_DATABASE=Weltrend Bar Code Reader
 
@@ -4235,6 +4268,18 @@ usb:v0421p0105*
 usb:v0421p0106*
  ID_MODEL_FROM_DATABASE=ROM Parent
 
+usb:v0421p010D*
+ ID_MODEL_FROM_DATABASE=E75 (Storage Mode)
+
+usb:v0421p010E*
+ ID_MODEL_FROM_DATABASE=E75 (PC Suite mode)
+
+usb:v0421p010F*
+ ID_MODEL_FROM_DATABASE=E75 (Media transfer mode)
+
+usb:v0421p0110*
+ ID_MODEL_FROM_DATABASE=E75 (Imaging Mode)
+
 usb:v0421p0154*
  ID_MODEL_FROM_DATABASE=5800 XpressMusic (PC Suite mode)
 
@@ -6896,6 +6941,9 @@ usb:v045Ep0737*
 usb:v045Ep0745*
  ID_MODEL_FROM_DATABASE=Nano Transceiver v1.0 for Bluetooth
 
+usb:v045Ep074A*
+ ID_MODEL_FROM_DATABASE=LifeCam VX-500 [1357]
+
 usb:v045Ep0750*
  ID_MODEL_FROM_DATABASE=Wired Keyboard 600
 
@@ -6923,6 +6971,9 @@ usb:v045Ep076C*
 usb:v045Ep076D*
  ID_MODEL_FROM_DATABASE=LifeCam HD-5000
 
+usb:v045Ep0770*
+ ID_MODEL_FROM_DATABASE=LifeCam VX-700
+
 usb:v045Ep0772*
  ID_MODEL_FROM_DATABASE=LifeCam Studio
 
@@ -6938,6 +6989,9 @@ usb:v045Ep0780*
 usb:v045Ep0797*
  ID_MODEL_FROM_DATABASE=Optical Mouse 200
 
+usb:v045Ep0799*
+ ID_MODEL_FROM_DATABASE=Surface Pro embedded keyboard
+
 usb:v045Ep07A5*
  ID_MODEL_FROM_DATABASE=Wireless Receiver 1461C
 
@@ -7104,7 +7158,7 @@ usb:v0461p0A00*
  ID_MODEL_FROM_DATABASE=Micro Innovations Web Cam 320
 
 usb:v0461p4D01*
- ID_MODEL_FROM_DATABASE=Comfort Keyboard
+ ID_MODEL_FROM_DATABASE=Comfort Keyboard / Kensington Orbit Elite
 
 usb:v0461p4D02*
  ID_MODEL_FROM_DATABASE=Mouse-in-a-Box
@@ -7157,6 +7211,9 @@ usb:v0461p4D81*
 usb:v0461p4DE7*
  ID_MODEL_FROM_DATABASE=webcam
 
+usb:v0461p4E04*
+ ID_MODEL_FROM_DATABASE=Lenovo Keyboard KB1021
+
 usb:v0463*
  ID_VENDOR_FROM_DATABASE=MGE UPS Systems
 
@@ -7700,6 +7757,9 @@ usb:v046Dp0A4D*
 usb:v046Dp0A5B*
  ID_MODEL_FROM_DATABASE=G933 Wireless Headset Dongle
 
+usb:v046Dp0A66*
+ ID_MODEL_FROM_DATABASE=[G533 Wireless Headset Dongle]
+
 usb:v046Dp0B02*
  ID_MODEL_FROM_DATABASE=C-UV35 [Bluetooth Mini-Receiver] (HID proxy mode)
 
@@ -8216,6 +8276,9 @@ usb:v046DpC31D*
 usb:v046DpC31F*
  ID_MODEL_FROM_DATABASE=Comfort Keyboard K290
 
+usb:v046DpC328*
+ ID_MODEL_FROM_DATABASE=Corded Keyboard K280e
+
 usb:v046DpC332*
  ID_MODEL_FROM_DATABASE=G502 Proteus Spectrum Optical Mouse
 
@@ -9305,6 +9368,9 @@ usb:v0482p0204*
 usb:v0482p0408*
  ID_MODEL_FROM_DATABASE=FS-1320D Printer
 
+usb:v0482p069B*
+ ID_MODEL_FROM_DATABASE=ECOSYS M2635dn
+
 usb:v0483*
  ID_VENDOR_FROM_DATABASE=STMicroelectronics
 
@@ -9695,6 +9761,9 @@ usb:v0499p160F*
 usb:v0499p1613*
  ID_MODEL_FROM_DATABASE=Clavinova CLP535
 
+usb:v0499p1704*
+ ID_MODEL_FROM_DATABASE=Steinberg UR44
+
 usb:v0499p2000*
  ID_MODEL_FROM_DATABASE=DGP-7
 
@@ -10962,7 +11031,7 @@ usb:v04A9p2603*
  ID_MODEL_FROM_DATABASE=MultiPASS C755
 
 usb:v04A9p260A*
- ID_MODEL_FROM_DATABASE=CAPT Printer
+ ID_MODEL_FROM_DATABASE=LBP810
 
 usb:v04A9p260E*
  ID_MODEL_FROM_DATABASE=LBP-2000
@@ -10977,7 +11046,7 @@ usb:v04A9p2612*
  ID_MODEL_FROM_DATABASE=MultiPASS C855
 
 usb:v04A9p2617*
- ID_MODEL_FROM_DATABASE=CAPT Printer
+ ID_MODEL_FROM_DATABASE=LBP1210
 
 usb:v04A9p261A*
  ID_MODEL_FROM_DATABASE=iR1600
@@ -11142,13 +11211,13 @@ usb:v04A9p2673*
  ID_MODEL_FROM_DATABASE=iR 3170C EUR
 
 usb:v04A9p2674*
- ID_MODEL_FROM_DATABASE=L120
+ ID_MODEL_FROM_DATABASE=FAX-L120
 
 usb:v04A9p2675*
  ID_MODEL_FROM_DATABASE=iR2830
 
 usb:v04A9p2676*
- ID_MODEL_FROM_DATABASE=CAPT Device
+ ID_MODEL_FROM_DATABASE=LBP2900
 
 usb:v04A9p2677*
  ID_MODEL_FROM_DATABASE=iR C2570
@@ -11180,6 +11249,9 @@ usb:v04A9p2687*
 usb:v04A9p2688*
  ID_MODEL_FROM_DATABASE=LBP3460
 
+usb:v04A9p2689*
+ ID_MODEL_FROM_DATABASE=FAX-L180/L380S/L398S
+
 usb:v04A9p268C*
  ID_MODEL_FROM_DATABASE=iR C6870
 
@@ -11213,6 +11285,9 @@ usb:v04A9p26DA*
 usb:v04A9p26E6*
  ID_MODEL_FROM_DATABASE=iR1024
 
+usb:v04A9p271A*
+ ID_MODEL_FROM_DATABASE=LBP6000
+
 usb:v04A9p2736*
  ID_MODEL_FROM_DATABASE=I-SENSYS MF4550d
 
@@ -12143,6 +12218,9 @@ usb:v04A9p32B1*
 usb:v04A9p32B2*
  ID_MODEL_FROM_DATABASE=PowerShot G9 X
 
+usb:v04A9p32B4*
+ ID_MODEL_FROM_DATABASE=EOS Rebel T6
+
 usb:v04A9p32BB*
  ID_MODEL_FROM_DATABASE=EOS M5
 
@@ -13526,6 +13604,12 @@ usb:v04C5p1150*
 usb:v04C5p125A*
  ID_MODEL_FROM_DATABASE=PalmSecure Sensor Device - MP
 
+usb:v04C5p200F*
+ ID_MODEL_FROM_DATABASE=Sigma DP2 (Mass Storage)
+
+usb:v04C5p2010*
+ ID_MODEL_FROM_DATABASE=Sigma DP2 (PictBridge)
+
 usb:v04C5p201D*
  ID_MODEL_FROM_DATABASE=SATA 3.0 6Gbit/s Adaptor [GROOVY]
 
@@ -13841,6 +13925,9 @@ usb:v04CBp01C0*
 usb:v04CBp01C1*
  ID_MODEL_FROM_DATABASE=FinePix F31fd (PTP)
 
+usb:v04CBp01C3*
+ ID_MODEL_FROM_DATABASE=FinePix S5 Pro
+
 usb:v04CBp01C4*
  ID_MODEL_FROM_DATABASE=FinePix S5700 Zoom (PTP)
 
@@ -13880,6 +13967,12 @@ usb:v04CBp0241*
 usb:v04CBp0278*
  ID_MODEL_FROM_DATABASE=FinePix JV300
 
+usb:v04CBp02C5*
+ ID_MODEL_FROM_DATABASE=FinePix S9900W Digital Camera (PTP)
+
+usb:v04CBp5006*
+ ID_MODEL_FROM_DATABASE=ASK-300
+
 usb:v04CC*
  ID_VENDOR_FROM_DATABASE=ST-Ericsson
 
@@ -14177,6 +14270,9 @@ usb:v04D9pA050*
 usb:v04D9pA055*
  ID_MODEL_FROM_DATABASE=Keyboard
 
+usb:v04D9pA096*
+ ID_MODEL_FROM_DATABASE=Keyboard
+
 usb:v04D9pA09F*
  ID_MODEL_FROM_DATABASE=E-Signal LUOM G10 Mechanical Gaming Mouse
 
@@ -14186,6 +14282,9 @@ usb:v04D9pA100*
 usb:v04D9pA11B*
  ID_MODEL_FROM_DATABASE=Mouse [MX-3200]
 
+usb:v04D9pE002*
+ ID_MODEL_FROM_DATABASE=MCU
+
 usb:v04DA*
  ID_VENDOR_FROM_DATABASE=Panasonic (Matsushita)
 
@@ -15644,6 +15743,9 @@ usb:v04F2pB107*
 usb:v04F2pB14C*
  ID_MODEL_FROM_DATABASE=CNF8050 Webcam
 
+usb:v04F2pB159*
+ ID_MODEL_FROM_DATABASE=CNF8243 Webcam
+
 usb:v04F2pB15C*
  ID_MODEL_FROM_DATABASE=Sony Vaio Integrated Camera
 
@@ -15737,6 +15839,9 @@ usb:v04F3p000A*
 usb:v04F3p0103*
  ID_MODEL_FROM_DATABASE=ActiveJet K-2024 Multimedia Keyboard
 
+usb:v04F3p016F*
+ ID_MODEL_FROM_DATABASE=Touchscreen
+
 usb:v04F3p01A4*
  ID_MODEL_FROM_DATABASE=Wireless Keyboard
 
@@ -15902,6 +16007,9 @@ usb:v04F9p002D*
 usb:v04F9p0039*
  ID_MODEL_FROM_DATABASE=HL-5340 series
 
+usb:v04F9p0041*
+ ID_MODEL_FROM_DATABASE=HL-2250DN Laser Printer
+
 usb:v04F9p0042*
  ID_MODEL_FROM_DATABASE=HL-2270DW Laser Printer
 
@@ -16463,6 +16571,9 @@ usb:v04F9p021D*
 usb:v04F9p021E*
  ID_MODEL_FROM_DATABASE=DCP-9010CN
 
+usb:v04F9p021F*
+ ID_MODEL_FROM_DATABASE=DCP-8085DN
+
 usb:v04F9p0220*
  ID_MODEL_FROM_DATABASE=MFC-9010CN
 
@@ -16535,6 +16646,9 @@ usb:v04F9p0240*
 usb:v04F9p0248*
  ID_MODEL_FROM_DATABASE=DCP-7055 scanner/printer
 
+usb:v04F9p024E*
+ ID_MODEL_FROM_DATABASE=MFC-7460DN
+
 usb:v04F9p0253*
  ID_MODEL_FROM_DATABASE=DCP-J125
 
@@ -16592,6 +16706,9 @@ usb:v04F9p026E*
 usb:v04F9p026F*
  ID_MODEL_FROM_DATABASE=MFC-J270W
 
+usb:v04F9p0270*
+ ID_MODEL_FROM_DATABASE=MFC-7360N
+
 usb:v04F9p0273*
  ID_MODEL_FROM_DATABASE=DCP-7057 scanner/printer
 
@@ -17285,6 +17402,9 @@ usb:v04F9p2028*
 usb:v04F9p202B*
  ID_MODEL_FROM_DATABASE=PT-7600 P-touch Label Printer
 
+usb:v04F9p2041*
+ ID_MODEL_FROM_DATABASE=PT-2730 P-touch Label Printer
+
 usb:v04F9p2061*
  ID_MODEL_FROM_DATABASE=PT-P700 P-touch Label Printer
 
@@ -18428,6 +18548,9 @@ usb:v0547p2750*
 usb:v0547p2810*
  ID_MODEL_FROM_DATABASE=Cypress ATAPI Bridge
 
+usb:v0547p4018*
+ ID_MODEL_FROM_DATABASE=AmScope MU1803
+
 usb:v0547p4D90*
  ID_MODEL_FROM_DATABASE=AmScope MD1900 camera
 
@@ -19016,6 +19139,9 @@ usb:v054Cp06C3*
 usb:v054Cp07C4*
  ID_MODEL_FROM_DATABASE=ILCE-6000 (aka Alpha-6000) in Mass Storage mode
 
+usb:v054Cp0847*
+ ID_MODEL_FROM_DATABASE=WG-C10 Portable Wireless Server
+
 usb:v054Cp088C*
  ID_MODEL_FROM_DATABASE=Portable Headphone Amplifier
 
@@ -19934,6 +20060,12 @@ usb:v056Ap0357*
 usb:v056Ap0358*
  ID_MODEL_FROM_DATABASE=PTH-860 [Intuos Pro (L)]
 
+usb:v056Ap035A*
+ ID_MODEL_FROM_DATABASE=DTH-1152 tablet
+
+usb:v056Ap0368*
+ ID_MODEL_FROM_DATABASE=DTH-1152 touchscreen
+
 usb:v056Ap0400*
  ID_MODEL_FROM_DATABASE=PenPartner 4x5
 
@@ -19994,6 +20126,9 @@ usb:v056E*
 usb:v056Ep0002*
  ID_MODEL_FROM_DATABASE=29UO Mouse
 
+usb:v056Ep0057*
+ ID_MODEL_FROM_DATABASE=M-PGDL Mouse
+
 usb:v056Ep0072*
  ID_MODEL_FROM_DATABASE=Mouse
 
@@ -24941,6 +25076,9 @@ usb:v0657*
 usb:v0658*
  ID_VENDOR_FROM_DATABASE=Sigma Designs, Inc.
 
+usb:v0658p0200*
+ ID_MODEL_FROM_DATABASE=Aeotec Z-Stick Gen5 (ZW090) - UZB
+
 usb:v0659*
  ID_VENDOR_FROM_DATABASE=Aethra
 
index b46e0564d7c004b4de3df0306e1ee297ac6dbf1c..44ee72abfc285462c2385cb224cf00cfc14e83aa 100644 (file)
@@ -82,7 +82,11 @@ sensor:modalias:acpi:SMO8500*:dmi:*:svnStandard:pnWCBT1011:*
 # Chuwi
 #########################################
 
-# Chuwi Vi8 Plus
+# Chuwi Vi8 (CWI506)
+sensor:modalias:acpi:BMA250E*:dmi:bvnINSYDECorp.:bvrCHUWI.D86JLBNR*:svnInsyde:pni86:*
+ ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
+
+# Chuwi Vi8 Plus (CWI519)
 sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo:pnD2D3_Vi8A1:*
  ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
 
@@ -172,6 +176,9 @@ sensor:modalias:acpi:NCPE0388*:dmi:*:rnLenovoYOGA510-14IKB:*
 sensor:modalias:acpi:BOSC0200:BOSC0200:dmi:*ThinkPadYoga11e3rdGen*
  ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1
 
+sensor:modalias:acpi:BMA250E*:dmi:bvnLENOVO:*:pvrLenovoMIIX3-1030:*
+ ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
+
 #########################################
 # Peaq
 #########################################
@@ -200,6 +207,12 @@ sensor:modalias:acpi:BMA250E*:dmi:*:svnShenzhenPLOYER*:pnMOMO7W:*
 sensor:modalias:acpi:BMA250E*:dmi:bvnAmericanMegatrendsInc.:bvr3BAIR1013:bd08/22/2014:svnTobefilledbyO.E.M.:pnTobefilledbyO.E.M.:pvrTobefilledbyO.E.M.:rvnAMICorporation:rnAptioCRB:rvrTobefilledbyO.E.M.:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:
  ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
 
+#########################################
+# Teclast
+#########################################
+sensor:modalias:acpi:KIOX000A*:dmi:*:svnTECLAST:pnX80Pro:*
+ ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
+
 #########################################
 # Trekstor
 #########################################
index f1a86ff20bb3ac3b899d36bf5bfb88430ceb3a93..3f070e09de7f852efc8cabcf83d0ec8f65975f2d 100644 (file)
@@ -108,6 +108,9 @@ evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX220
 evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX230:*
 # Lenovo Thinkpad X230 tablet
 evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX230Tablet:*
+# Lenovo ThinkPad *30 series
+evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??30:*
+evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??30?:*
 # Lenovo Thinkpad *40 series
 evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??40:*
 evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??40?:*
index d5ddc878b844a9201114e6bea6edbbd0fbeb8994..df9158ba8cb7c9f4d5828b2f86e0f68a5157d04a 100644 (file)
@@ -83,6 +83,8 @@
  <tr class="odd"><td>Coreboot Project</td><td>BOOT</td><td>02/28/2017</td> </tr>
  <tr class="even"><td>Marvell Technology Group Ltd.</td><td>MRVL</td><td>05/25/2017</td> </tr>
  <tr class="odd"><td>IHSE GmbH</td><td>IHSE</td><td>06/22/2017</td> </tr>
+ <tr class="even"><td>Insyde Software</td><td>INSY</td><td>11/10/2017</td> </tr>
+ <tr class="odd"><td>Nexstgo Company Limited</td><td>NXGO</td><td>11/13/2017</td> </tr>
       </tbody>
     </table>
   </body>
index 3c43649fc17766c9bae7cc84ee45c39b6be21e9a..c80d22258a35fd675368a9a3b18754c668ec5a49 100755 (executable)
@@ -344,17 +344,17 @@ if __name__ == '__main__':
     args = sys.argv[1:]
 
     if not args or 'usb' in args:
-        p = usb_ids_grammar().parseFile(open('usb.ids'))
+        p = usb_ids_grammar().parseFile(open('usb.ids', errors='replace'))
         usb_vendor_model(p)
         usb_classes(p)
 
     if not args or 'pci' in args:
-        p = pci_ids_grammar().parseFile(open('pci.ids'))
+        p = pci_ids_grammar().parseFile(open('pci.ids', errors='replace'))
         pci_vendor_model(p)
         pci_classes(p)
 
     if not args or 'sdio' in args:
-        p = pci_ids_grammar().parseFile(open('sdio.ids'))
+        p = pci_ids_grammar().parseFile(open('sdio.ids', errors='replace'))
         sdio_vendor_model(p)
         sdio_classes(p)
 
index 37fcee36815256bad28309ff4bcf26791950096c..f05f35a4b2061e4b29266c67e338abca63482e2a 100644 (file)
@@ -176,12 +176,6 @@ CC46D6     (base 16)               Cisco Systems, Inc
                                Dongguan  Guangdong  523808 \r
                                CN\r
 \r
-00-CD-FE   (hex)               Apple, Inc.\r
-00CDFE     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 38-F2-3E   (hex)               Microsoft Mobile Oy\r
 38F23E     (base 16)           Microsoft Mobile Oy\r
                                Keilalahdentie 4\r
@@ -242,12 +236,6 @@ D83C69     (base 16)               Shenzhen TINNO Mobile Technology Corp.
                                ShenZhen  GuangDong  518000\r
                                CN\r
 \r
-18-AF-61   (hex)               Apple, Inc.\r
-18AF61     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 BC-83-A7   (hex)               SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD\r
 BC83A7     (base 16)           SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD\r
                                Unit A 13-16/F,Skyworth Bldg., Gaoxin Ave.1.S.,Nanshan District\r
@@ -590,18 +578,6 @@ BC4699     (base 16)               TP-LINK TECHNOLOGIES CO.,LTD.
                                Palo Alto  CA  94303\r
                                US\r
 \r
-CC-44-63   (hex)               Apple, Inc.\r
-CC4463     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-6C-72-E7   (hex)               Apple, Inc.\r
-6C72E7     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 CC-A2-23   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 CCA223     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
@@ -1160,30 +1136,6 @@ ACF2C5     (base 16)             Cisco Systems, Inc
                                San Jose  CA  95134\r
                                US\r
 \r
-CC-C7-60   (hex)               Apple, Inc.\r
-CCC760     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-08-74-02   (hex)               Apple, Inc.\r
-087402     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-28-5A-EB   (hex)               Apple, Inc.\r
-285AEB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-28-F0-76   (hex)               Apple, Inc.\r
-28F076     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 84-28-5A   (hex)               Saffron Solutions Inc\r
 84285A     (base 16)           Saffron Solutions Inc\r
                                1337 Mass Ave #273\r
@@ -1196,180 +1148,12 @@ CCC760     (base 16)           Apple, Inc.
                                San Diego  CA  92121\r
                                US\r
 \r
-44-D8-84   (hex)               Apple, Inc.\r
-44D884     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-EC-85-2F   (hex)               Apple, Inc.\r
-EC852F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-28-6A-BA   (hex)               Apple, Inc.\r
-286ABA     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-70-56-81   (hex)               Apple, Inc.\r
-705681     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-7C-D1-C3   (hex)               Apple, Inc.\r
-7CD1C3     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-F0-DC-E2   (hex)               Apple, Inc.\r
-F0DCE2     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-B0-65-BD   (hex)               Apple, Inc.\r
-B065BD     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-A8-20-66   (hex)               Apple, Inc.\r
-A82066     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-BC-67-78   (hex)               Apple, Inc.\r
-BC6778     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-68-96-7B   (hex)               Apple, Inc.\r
-68967B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-84-85-06   (hex)               Apple, Inc.\r
-848506     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-B4-F0-AB   (hex)               Apple, Inc.\r
-B4F0AB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-10-DD-B1   (hex)               Apple, Inc.\r
-10DDB1     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-04-F7-E4   (hex)               Apple, Inc.\r
-04F7E4     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-34-C0-59   (hex)               Apple, Inc.\r
-34C059     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-F0-D1-A9   (hex)               Apple, Inc.\r
-F0D1A9     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-F8-27-93   (hex)               Apple, Inc.\r
-F82793     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-AC-FD-EC   (hex)               Apple, Inc.\r
-ACFDEC     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-D0-E1-40   (hex)               Apple, Inc.\r
-D0E140     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 F8-32-E4   (hex)               ASUSTek COMPUTER INC.\r
 F832E4     (base 16)           ASUSTek COMPUTER INC.\r
                                15,Li-Te Rd., Peitou, Taipei 112, Taiwan\r
                                Taipei  Taiwan  112\r
                                TW\r
 \r
-8C-7C-92   (hex)               Apple, Inc.\r
-8C7C92     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-78-31-C1   (hex)               Apple, Inc.\r
-7831C1     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-F4-37-B7   (hex)               Apple, Inc.\r
-F437B7     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-54-AE-27   (hex)               Apple, Inc.\r
-54AE27     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-64-76-BA   (hex)               Apple, Inc.\r
-6476BA     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-84-B1-53   (hex)               Apple, Inc.\r
-84B153     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-78-3A-84   (hex)               Apple, Inc.\r
-783A84     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-2C-BE-08   (hex)               Apple, Inc.\r
-2CBE08     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-24-E3-14   (hex)               Apple, Inc.\r
-24E314     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 00-10-FF   (hex)               Cisco Systems, Inc\r
 0010FF     (base 16)           Cisco Systems, Inc\r
                                170 WEST TASMAN DRIVE\r
@@ -1400,252 +1184,6 @@ F437B7     (base 16)            Apple, Inc.
                                San Jose  CA  95134\r
                                US\r
 \r
-60-FE-C5   (hex)               Apple, Inc.\r
-60FEC5     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-00-A0-40   (hex)               Apple, Inc.\r
-00A040     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-BC-3B-AF   (hex)               Apple, Inc.\r
-BC3BAF     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-78-6C-1C   (hex)               Apple, Inc.\r
-786C1C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-04-15-52   (hex)               Apple, Inc.\r
-041552     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-38-48-4C   (hex)               Apple, Inc.\r
-38484C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-70-11-24   (hex)               Apple, Inc.\r
-701124     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-C8-6F-1D   (hex)               Apple, Inc.\r
-C86F1D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-68-5B-35   (hex)               Apple, Inc.\r
-685B35     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-38-0F-4A   (hex)               Apple, Inc.\r
-380F4A     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-30-10-E4   (hex)               Apple, Inc.\r
-3010E4     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-04-DB-56   (hex)               Apple, Inc.\r
-04DB56     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-88-1F-A1   (hex)               Apple, Inc.\r
-881FA1     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-04-E5-36   (hex)               Apple, Inc.\r
-04E536     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-10-9A-DD   (hex)               Apple, Inc.\r
-109ADD     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-40-A6-D9   (hex)               Apple, Inc.\r
-40A6D9     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-7C-F0-5F   (hex)               Apple, Inc.\r
-7CF05F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-A4-B1-97   (hex)               Apple, Inc.\r
-A4B197     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-0C-74-C2   (hex)               Apple, Inc.\r
-0C74C2     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-40-30-04   (hex)               Apple, Inc.\r
-403004     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-48-60-BC   (hex)               Apple, Inc.\r
-4860BC     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-50-EA-D6   (hex)               Apple, Inc.\r
-50EAD6     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-28-E0-2C   (hex)               Apple, Inc.\r
-28E02C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-60-C5-47   (hex)               Apple, Inc.\r
-60C547     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-7C-11-BE   (hex)               Apple, Inc.\r
-7C11BE     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-3E-E1   (hex)               Apple, Inc.\r
-003EE1     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-68-D9-3C   (hex)               Apple, Inc.\r
-68D93C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-2C-F0-EE   (hex)               Apple, Inc.\r
-2CF0EE     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-84-78-8B   (hex)               Apple, Inc.\r
-84788B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-6C-94-F8   (hex)               Apple, Inc.\r
-6C94F8     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-70-3E-AC   (hex)               Apple, Inc.\r
-703EAC     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-C0-1A-DA   (hex)               Apple, Inc.\r
-C01ADA     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-34-36-3B   (hex)               Apple, Inc.\r
-34363B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-C8-1E-E7   (hex)               Apple, Inc.\r
-C81EE7     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-9C-FC-01   (hex)               Apple, Inc.\r
-9CFC01     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-00-0D-93   (hex)               Apple, Inc.\r
-000D93     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-1C-B3   (hex)               Apple, Inc.\r
-001CB3     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-64-B9-E8   (hex)               Apple, Inc.\r
-64B9E8     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-34-15-9E   (hex)               Apple, Inc.\r
-34159E     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-58-B0-35   (hex)               Apple, Inc.\r
-58B035     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-F0-B4-79   (hex)               Apple, Inc.\r
-F0B479     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
 14-13-57   (hex)               ATP Electronics, Inc.\r
 141357     (base 16)           ATP Electronics, Inc.\r
                                2590 North First Street Suite 150\r
@@ -1865,12 +1403,6 @@ C025A2     (base 16)             NEC Platforms, Ltd.
                                Moscow  Moscow  109316\r
                                RU\r
 \r
-AC-BC-32   (hex)               Apple, Inc.\r
-ACBC32     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 94-BB-AE   (hex)               Husqvarna AB\r
 94BBAE     (base 16)           Husqvarna AB\r
                                Drottninggatan 2\r
@@ -2519,12 +2051,6 @@ DC2F03     (base 16)             Step forward Group Co., Ltd.
                                Nagaokakyo-shi  Kyoto  617-8555\r
                                JP\r
 \r
-5C-AA-FD   (hex)               Sonos, Inc.\r
-5CAAFD     (base 16)           Sonos, Inc.\r
-                               223 E. De La Guerra Street\r
-                               Santa Barbara  CA  93101\r
-                               US\r
-\r
 8C-DF-9D   (hex)               NEC Corporation\r
 8CDF9D     (base 16)           NEC Corporation\r
                                7-1, Shiba 5-chome,\r
@@ -2807,12 +2333,6 @@ A4A4D3     (base 16)             Bluebank Communication Technology Co.Ltd
                                Peiking    100190\r
                                CN\r
 \r
-88-29-50   (hex)               Dalian Netmoon Tech Develop Co.,Ltd\r
-882950     (base 16)           Dalian Netmoon Tech Develop Co.,Ltd\r
-                               Shahekou District NO.19-2 Wansui Street\r
-                               Dalian  Liaoning  116000\r
-                               CN\r
-\r
 08-CD-9B   (hex)               samtec automotive electronics & software GmbH\r
 08CD9B     (base 16)           samtec automotive electronics & software GmbH\r
                                Saarstrasse 27\r
@@ -4466,12 +3986,6 @@ B49842     (base 16)             zte corporation
                                Eden Prairie  MN  55344\r
                                US\r
 \r
-90-CC-24   (hex)               Synaptics, Inc\r
-90CC24     (base 16)           Synaptics, Inc\r
-                               3120 Scott Blvd.\r
-                               Santa Clara  CA  95054\r
-                               US\r
-\r
 AC-17-02   (hex)               Fibar Group sp. z o.o.\r
 AC1702     (base 16)           Fibar Group sp. z o.o.\r
                                ul. Lotnicza 1\r
@@ -7274,12 +6788,6 @@ A0DDE5     (base 16)             SHARP Corporation
                                Richmond  BC  V6V 3A4\r
                                CA\r
 \r
-A4-50-55   (hex)               busware.de\r
-A45055     (base 16)           busware.de\r
-                               Loessnitzgrundstrasse 115a\r
-                               Moritzburg  Saxony  01468\r
-                               DE\r
-\r
 C8-93-83   (hex)               Embedded Automation, Inc.\r
 C89383     (base 16)           Embedded Automation, Inc.\r
                                17345 Abbey Drive\r
@@ -9344,12 +8852,6 @@ A8CE90     (base 16)             CVC
                                Sheffield  South Yorkshire  S9 3TY\r
                                GB\r
 \r
-00-21-94   (hex)               Ping Communication\r
-002194     (base 16)           Ping Communication\r
-                               Sandakerveien 24C\r
-                               Oslo    0473\r
-                               NO\r
-\r
 00-21-8F   (hex)               Avantgarde Acoustic Lautsprechersysteme GmbH\r
 00218F     (base 16)           Avantgarde Acoustic Lautsprechersysteme GmbH\r
                                Nibelungenstraße 349\r
@@ -12710,12 +12212,6 @@ A8CE90     (base 16)           CVC
                                Santa Clara  California  95054\r
                                US\r
 \r
-00-13-86   (hex)               ABB Inc./Totalflow\r
-001386     (base 16)           ABB Inc./Totalflow\r
-                               \r
-                               Bartlesville  OK  74006\r
-                               US\r
-\r
 00-13-74   (hex)               Atheros Communications, Inc.\r
 001374     (base 16)           Atheros Communications, Inc.\r
                                529 Almanor Avenue\r
@@ -20252,12 +19748,6 @@ A8CE90     (base 16)           CVC
                                RESTON  VA  22096\r
                                US\r
 \r
-00-A0-D5   (hex)               SIERRA WIRELESS INC.\r
-00A0D5     (base 16)           SIERRA WIRELESS INC.\r
-                               13811 Wireless Way\r
-                                 RICHMOND B.C.  V6V 3A4\r
-                               CA\r
-\r
 00-20-0F   (hex)               EBRAINS Inc\r
 00200F     (base 16)           EBRAINS Inc\r
                                Tachibana Bldg\r
@@ -23240,18 +22730,6 @@ F4F5A5     (base 16)           Nokia Corporation
                                Boston  MA  02205\r
                                US\r
 \r
-AC-61-EA   (hex)               Apple, Inc.\r
-AC61EA     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-38-B5-4D   (hex)               Apple, Inc.\r
-38B54D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 90-A6-2F   (hex)               NAVER\r
 90A62F     (base 16)           NAVER\r
                                NAVER Green Factory, 6, Buljeong-ro, Bundang-gu\r
@@ -23300,12 +22778,6 @@ B47443     (base 16)           Samsung Electronics Co.,Ltd
                                New Taipei City  Taiwan  22101\r
                                TW\r
 \r
-A4-F1-E8   (hex)               Apple, Inc.\r
-A4F1E8     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 00-35-1A   (hex)               Cisco Systems, Inc\r
 00351A     (base 16)           Cisco Systems, Inc\r
                                80 West Tasman Drive\r
@@ -23840,30 +23312,6 @@ D8E56D     (base 16)           TCT mobile ltd
                                Hui Zhou  Guang Dong  516006\r
                                CN\r
 \r
-90-C1-C6   (hex)               Apple, Inc.\r
-90C1C6     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-70-A2-B3   (hex)               Apple, Inc.\r
-70A2B3     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-4C-57-CA   (hex)               Apple, Inc.\r
-4C57CA     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-68-FB-7E   (hex)               Apple, Inc.\r
-68FB7E     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 44-2C-05   (hex)               AMPAK Technology, Inc.\r
 442C05     (base 16)           AMPAK Technology, Inc.\r
                                No.1,Jen Ai Road Hsinchu Industrial Park, Hukou\r
@@ -25496,18 +24944,6 @@ A01081     (base 16)           Samsung Electronics Co.,Ltd
                                Deer Park  IL  60010\r
                                US\r
 \r
-9C-F4-8E   (hex)               Apple, Inc.\r
-9CF48E     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-FC-D8-48   (hex)               Apple, Inc.\r
-FCD848     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 80-48-A5   (hex)               SICHUAN TIANYI COMHEART TELECOMCO.,LTD\r
 8048A5     (base 16)           SICHUAN TIANYI COMHEART TELECOMCO.,LTD\r
                                FL12,TowerB,TianYi International Hotel\r
@@ -25718,12 +25154,6 @@ AC233F     (base 16)           Shenzhen Minew Technologies Co., Ltd.
                                Shenzhen    518109\r
                                CN\r
 \r
-00-0E-58   (hex)               Sonos, Inc.\r
-000E58     (base 16)           Sonos, Inc.\r
-                               223 E. De La Guerra St.\r
-                               Santa Barbara  CA  93101\r
-                               US\r
-\r
 E0-50-8B   (hex)               Zhejiang Dahua Technology Co., Ltd.\r
 E0508B     (base 16)           Zhejiang Dahua Technology Co., Ltd.\r
                                No.1199,Waterfront Road \r
@@ -25922,12 +25352,6 @@ F015B9     (base 16)           PlayFusion Limited
                                Cambridge    CB4 0WS\r
                                GB\r
 \r
-70-70-0D   (hex)               Apple, Inc.\r
-70700D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 24-A7-DC   (hex)               BSkyB Ltd\r
 24A7DC     (base 16)           BSkyB Ltd\r
                                130 Kings Road\r
@@ -26270,12 +25694,6 @@ F0D2F1     (base 16)           Amazon Technologies Inc.
                                Reno  NV  89507\r
                                US\r
 \r
-7C-50-49   (hex)               Apple, Inc.\r
-7C5049     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 F0-A2-25   (hex)               Private\r
 F0A225     (base 16)           Private\r
 \r
@@ -26372,54 +25790,6 @@ A04C5B     (base 16)           Shenzhen TINNO Mobile Technology Corp.
                                HongKong  HongKong  999077\r
                                HK\r
 \r
-D4-61-9D   (hex)               Apple, Inc.\r
-D4619D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-B0-48-1A   (hex)               Apple, Inc.\r
-B0481A     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-98-9E-63   (hex)               Apple, Inc.\r
-989E63     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-DC-A9-04   (hex)               Apple, Inc.\r
-DCA904     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-48-A1-95   (hex)               Apple, Inc.\r
-48A195     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-6C-AB-31   (hex)               Apple, Inc.\r
-6CAB31     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-50-32-37   (hex)               Apple, Inc.\r
-503237     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-00-08-89   (hex)               Echostar Technologies Corp\r
-000889     (base 16)           Echostar Technologies Corp\r
-                               94 Inverness Terrace E\r
-                               Englewood  CO  80112\r
-                               US\r
-\r
 2C-02-9F   (hex)               3ALogics\r
 2C029F     (base 16)           3ALogics\r
                                #704, Hyundai office B'd, Sunae-dong, Bundang-gu\r
@@ -27785,30 +27155,6 @@ BC88C3     (base 16)           Ningbo Dooya Mechanic & Electronic Technology Co., Ltd
                                Ningbo  Zhejiang  315202\r
                                CN\r
 \r
-A8-BE-27   (hex)               Apple, Inc.\r
-A8BE27     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-B8-63-4D   (hex)               Apple, Inc.\r
-B8634D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-6C-96-CF   (hex)               Apple, Inc.\r
-6C96CF     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-30-35-AD   (hex)               Apple, Inc.\r
-3035AD     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 68-1F-40   (hex)               Blu Wireless Technology Ltd\r
 681F40     (base 16)           Blu Wireless Technology Ltd\r
                                Bluwireless Technology, 5th Floor, 1 Temple Way\r
@@ -28175,42 +27521,6 @@ DC5583     (base 16)           GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD
                                Taipei City  Neihu Dist  248\r
                                TW\r
 \r
-9C-E3-3F   (hex)               Apple, Inc.\r
-9CE33F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-F0-98-9D   (hex)               Apple, Inc.\r
-F0989D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-AC-E4-B5   (hex)               Apple, Inc.\r
-ACE4B5     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-E4-2B-34   (hex)               Apple, Inc.\r
-E42B34     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-1C-36-BB   (hex)               Apple, Inc.\r
-1C36BB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-3C-2E-FF   (hex)               Apple, Inc.\r
-3C2EFF     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 24-8B-E0   (hex)               SICHUAN TIANYI COMHEART TELECOMCO., LTD\r
 248BE0     (base 16)           SICHUAN TIANYI COMHEART TELECOMCO., LTD\r
                                FL12, TowerB,Tianyi international Hotel,No.2 West Section One, Second Ring Road,\r
@@ -28691,12 +28001,6 @@ D89C67     (base 16)           Hon Hai Precision Ind. Co.,Ltd.
                                Gumi  Gyeongbuk  730-350\r
                                KR\r
 \r
-28-BF-89   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-28BF89     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
-                               No.5 DongXin Road\r
-                               Wuhan  Hubei  430074\r
-                               CN\r
-\r
 C8-40-29   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
 C84029     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
                                No.5 DongXin Road\r
@@ -28709,10 +28013,16 @@ CC0677     (base 16)          Fiberhome Telecommunication Technologies Co.,LTD
                                Wuhan  Hubei  430074\r
                                CN\r
 \r
-B0-E2-E5   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-B0E2E5     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+1C-39-8A   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+1C398A     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
                                No.5 DongXin Road\r
-                               Wuhan City  Hubei Province  430074\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
+10-77-B0   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+1077B0     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
                                CN\r
 \r
 88-94-7E   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
@@ -28727,16 +28037,16 @@ F4573E     (base 16)          Fiberhome Telecommunication Technologies Co.,LTD
                                Wuhan  Hubei  430074\r
                                CN\r
 \r
-1C-39-8A   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-1C398A     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+28-BF-89   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+28BF89     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
                                No.5 DongXin Road\r
                                Wuhan  Hubei  430074\r
                                CN\r
 \r
-10-77-B0   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-1077B0     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+B0-E2-E5   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+B0E2E5     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
                                No.5 DongXin Road\r
-                               Wuhan  Hubei  430074\r
+                               Wuhan City  Hubei Province  430074\r
                                CN\r
 \r
 E4-30-22   (hex)               Hanwha Techwin Security Vietnam\r
@@ -28745,536 +28055,1544 @@ E43022     (base 16)               Hanwha Techwin Security Vietnam
                                Nam Son Commune, Bac Ninh City  Bac Ninh Province  000\r
                                VN\r
 \r
-0C-6F-9C   (hex)               Shaw Communications Inc.\r
-0C6F9C     (base 16)           Shaw Communications Inc.\r
-                               Suite 900, 630 3rd Avenue S.W.\r
-                               CALGARY  ALBERTA  T2P 4L4\r
-                               CA\r
+B4-E6-2D   (hex)               Espressif Inc.\r
+B4E62D     (base 16)           Espressif Inc.\r
+                               Room 204, Building 2, 690 Bibo Road, Pudong New Area\r
+                               Shanghai  Shanghai  201203\r
+                               CN\r
 \r
-18-01-E3   (hex)               Bittium Wireless Ltd\r
-1801E3     (base 16)           Bittium Wireless Ltd\r
-                               Tutkijantie 8\r
-                               Oulu    50590\r
-                               FI\r
+F0-B5-B7   (hex)               Disruptive Technologies Research AS\r
+F0B5B7     (base 16)           Disruptive Technologies Research AS\r
+                               Ytrebygdsvegen 215\r
+                               Blomsterdalen  Hordaland  5258\r
+                               NO\r
 \r
-C0-AC-54   (hex)               Sagemcom Broadband SAS\r
-C0AC54     (base 16)           Sagemcom Broadband SAS\r
-                               250 route de l'Empereur\r
-                               Rueil Malmaison  HAUTS DE SEINE  92848\r
-                               FR\r
+54-AE-27   (hex)               Apple, Inc.\r
+54AE27     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-40-F2-01   (hex)               Sagemcom Broadband SAS\r
-40F201     (base 16)           Sagemcom Broadband SAS\r
-                               250 route de l'Empereur\r
-                               Rueil Malmaison  HAUTS DE SEINE  92848\r
-                               FR\r
+F4-37-B7   (hex)               Apple, Inc.\r
+F437B7     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-C8-91-F9   (hex)               Sagemcom Broadband SAS\r
-C891F9     (base 16)           Sagemcom Broadband SAS\r
-                               250 route de l'Empereur\r
-                               Rueil Malmaison  HAUTS DE SEINE  92848\r
-                               FR\r
+78-31-C1   (hex)               Apple, Inc.\r
+7831C1     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-4C-FF-12   (hex)               Fuze Entertainment Co., ltd\r
-4CFF12     (base 16)           Fuze Entertainment Co., ltd\r
-                               3rd Floor Harbour Centre\r
-                               George Town  George Town  P.O. Box 613GT\r
-                               KY\r
+8C-7C-92   (hex)               Apple, Inc.\r
+8C7C92     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-59-AC   (hex)               KPN. B.V.\r
-0059AC     (base 16)           KPN. B.V.\r
-                               Maanplein 55\r
-                               Den Haag  Zuid holland  2516 CK\r
-                               NL\r
+D0-E1-40   (hex)               Apple, Inc.\r
+D0E140     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-AC-9A-22   (hex)               NXP Semiconductors\r
-AC9A22     (base 16)           NXP Semiconductors\r
-                               411 E. Plumeria Drive\r
-                               San Jose  CA  95134\r
+AC-FD-EC   (hex)               Apple, Inc.\r
+ACFDEC     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-60-37   (hex)               NXP Semiconductors\r
-006037     (base 16)           NXP Semiconductors\r
-                               High Tech Campus 32, Office 1.21\r
-                               SAF  AD  13456\r
-                               NL\r
+24-E3-14   (hex)               Apple, Inc.\r
+24E314     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-54-60-09   (hex)               Google, Inc.\r
-546009     (base 16)           Google, Inc.\r
-                               1600 Amphitheatre Parkway\r
-                               Mountain View  CA  94043\r
+2C-BE-08   (hex)               Apple, Inc.\r
+2CBE08     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-A4-77-33   (hex)               Google, Inc.\r
-A47733     (base 16)           Google, Inc.\r
-                               1600 Ampitheatre Parkway\r
-                               Mountain View    94043\r
+78-3A-84   (hex)               Apple, Inc.\r
+783A84     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-94-EB-2C   (hex)               Google, Inc.\r
-94EB2C     (base 16)           Google, Inc.\r
-                               1600 Amphitheatre Parkway\r
-                               Mountain View    94043\r
+84-B1-53   (hex)               Apple, Inc.\r
+84B153     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-28-BC-56   (hex)               EMAC, Inc.\r
-28BC56     (base 16)           EMAC, Inc.\r
-                               2390 EMAC Way\r
-                               Carbondale  IL  62902\r
+64-76-BA   (hex)               Apple, Inc.\r
+6476BA     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-28-7C-DB   (hex)               Hefei  Toycloud Technology Co.,ltd\r
-287CDB     (base 16)           Hefei  Toycloud Technology Co.,ltd\r
-                               FLOOR 13,XUNFEI BUILDING,NO.666 WANGJIANG ROAD,HIGH & NEW TECHNOLOGY DEVELOPMENT ZONE.HEFEI.\r
-                               Hefei  Anhui  230088\r
-                               CN\r
+70-3E-AC   (hex)               Apple, Inc.\r
+703EAC     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-D0-B3-3F   (hex)               Shenzhen TINNO Mobile Technology Corp.\r
-D0B33F     (base 16)           Shenzhen TINNO Mobile Technology Corp.\r
-                               4/F.,H-3 Building,OCT Eastern lndustrial Park. NO.1 XiangShan East Road.,\r
-                               GUANGDONG  SHENZHEN  518053\r
-                               CN\r
+6C-94-F8   (hex)               Apple, Inc.\r
+6C94F8     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-73-8D   (hex)               Shenzhen TINNO Mobile Technology Corp.\r
-00738D     (base 16)           Shenzhen TINNO Mobile Technology Corp.\r
-                               4/F.,H-3 Building,OCT Eastern lndustrial Park. NO.1 XiangShan East Road.\r
-                               GuangDong    518053\r
+84-78-8B   (hex)               Apple, Inc.\r
+84788B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-A8-CA-7B   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-A8CA7B     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
+2C-F0-EE   (hex)               Apple, Inc.\r
+2CF0EE     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-AC-CF-85   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-ACCF85     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan  Guangdong  523808 \r
-                               CN\r
+68-D9-3C   (hex)               Apple, Inc.\r
+68D93C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-0C-D7-46   (hex)               Apple, Inc.\r
-0CD746     (base 16)           Apple, Inc.\r
+F8-27-93   (hex)               Apple, Inc.\r
+F82793     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-44-00-10   (hex)               Apple, Inc.\r
-440010     (base 16)           Apple, Inc.\r
+04-E5-36   (hex)               Apple, Inc.\r
+04E536     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-24-35-CC   (hex)               Zhongshan Scinan Internet of Things Co.,Ltd.\r
-2435CC     (base 16)           Zhongshan Scinan Internet of Things Co.,Ltd.\r
-                               15/F Bldg 1·Dezhong Plaza Torch Development Zone Zhongshan·Guangdong\r
-                               ZhongShan  GuangDong  528437\r
-                               CN\r
+88-1F-A1   (hex)               Apple, Inc.\r
+881FA1     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-2C-27-D7   (hex)               Hewlett Packard\r
-2C27D7     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+04-DB-56   (hex)               Apple, Inc.\r
+04DB56     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-0F-3D   (hex)               D-Link Corporation\r
-000F3D     (base 16)           D-Link Corporation\r
-                               No.8,Li-shing Seventh Road,Science-based Industrial Park,Hsimchu,\r
-                               Hsimchu    300\r
-                               TW\r
+C8-1E-E7   (hex)               Apple, Inc.\r
+C81EE7     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-11-95   (hex)               D-Link Corporation\r
-001195     (base 16)           D-Link Corporation\r
-                               2F No. 233-2, Pao-Chiao Road\r
-                               Taipei  Taiwan  0000\r
-                               TW\r
+34-36-3B   (hex)               Apple, Inc.\r
+34363B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-15-E9   (hex)               D-Link Corporation\r
-0015E9     (base 16)           D-Link Corporation\r
-                               2F, No.233-2, Pao-Chiao Road\r
-                               Hsin-Tien,  Taipei  231\r
-                               TW\r
+C0-1A-DA   (hex)               Apple, Inc.\r
+C01ADA     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-0C-FD-37   (hex)               SUSE Linux GmbH\r
-0CFD37     (base 16)           SUSE Linux GmbH\r
-                               Maxfeldstraße 5\r
-                               Nürnberg  Bavaria  90409\r
-                               DE\r
+80-CE-62   (hex)               Hewlett Packard\r
+80CE62     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston  TX  77070\r
+                               US\r
 \r
-2C-FF-65   (hex)               Oki Electric Industry Co., Ltd.\r
-2CFF65     (base 16)           Oki Electric Industry Co., Ltd.\r
-                               1-7-12 Toranomon\r
-                               Tokyo 105-8460    \r
-                               JP\r
+80-1F-12   (hex)               Microchip Technology Inc.\r
+801F12     (base 16)           Microchip Technology Inc.\r
+                               2355 W. Chandler Blvd.\r
+                               Chandler  AZ  85224\r
+                               US\r
 \r
-00-1C-F0   (hex)               D-Link Corporation\r
-001CF0     (base 16)           D-Link Corporation\r
-                               NO.289, Sinhu 3rd Rd.,\r
-                               Neihu District,  Taipei City  114\r
-                               TW\r
+50-6C-BE   (hex)               InnosiliconTechnology Ltd\r
+506CBE     (base 16)           InnosiliconTechnology Ltd\r
+                               WuHan East Lake Wuhan New Technology Development Zone \r
+                               Wuhan  Hubei Province  430223\r
+                               CN\r
 \r
-00-26-5A   (hex)               D-Link Corporation\r
-00265A     (base 16)           D-Link Corporation\r
-                               No.289, Sinhu 3rd Rd.,\r
-                               Neihu District    114\r
-                               TW\r
+90-CC-24   (hex)               Synaptics, Inc\r
+90CC24     (base 16)           Synaptics, Inc\r
+                               1251 McKay Drive\r
+                               San Jose  CA   95131-1709\r
+                               US\r
 \r
-AC-F1-DF   (hex)               D-Link International\r
-ACF1DF     (base 16)           D-Link International\r
-                               1 International Business Park, #03-12, The Synergy \r
-                               SINGAPORE    609917\r
-                               SG\r
+80-41-26   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+804126     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
 \r
-FC-75-16   (hex)               D-Link International\r
-FC7516     (base 16)           D-Link International\r
-                               1 International Business Park, #03-12, The Synergy \r
-                               SINGAPORE    609917\r
-                               SG\r
+0C-C6-CC   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+0CC6CC     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
 \r
-7C-18-CD   (hex)               E-TRON Co.,Ltd.\r
-7C18CD     (base 16)           E-TRON Co.,Ltd.\r
-                               66-11, Nonhyeon 2-dong, Gangnam-gu\r
-                               Seoul    06049\r
-                               KR\r
+3C-04-61   (hex)               ARRIS Group, Inc.\r
+3C0461     (base 16)           ARRIS Group, Inc.\r
+                               6450 Sequence Drive\r
+                               San Diego  CA  92121\r
+                               US\r
 \r
-38-97-D6   (hex)               Hangzhou H3C Technologies Co., Limited\r
-3897D6     (base 16)           Hangzhou H3C Technologies Co., Limited\r
+04-C2-41   (hex)               Nokia\r
+04C241     (base 16)           Nokia\r
+                               600 March Road\r
+                               Kanata  Ontario  K2K 2E6\r
+                               CA\r
+\r
+30-7B-AC   (hex)               New H3C Technologies Co., Ltd\r
+307BAC     (base 16)           New H3C Technologies Co., Ltd\r
                                466 Changhe Road, Binjiang District\r
-                               Hangzhou  Zhejiang, P.R.China  310052\r
+                               Hangzhou  Zhejiang  310052\r
                                CN\r
 \r
-C8-47-8C   (hex)               Beken Corporation\r
-C8478C     (base 16)           Beken Corporation\r
-                               Building 41, Capital of Tech Leaders, 1387 Zhangdong Road, Zhangjiang High-Tech Park, Pudong New District\r
-                               Shanghai    201203\r
-                               CN\r
+8C-F7-73   (hex)               Nokia\r
+8CF773     (base 16)           Nokia\r
+                               600 March Road\r
+                               Kanata  Ontario  K2K 2E6\r
+                               CA\r
 \r
-E4-98-D6   (hex)               Apple, Inc.\r
-E498D6     (base 16)           Apple, Inc.\r
+3C-47-9B   (hex)               Theissen Training Systems, Inc.\r
+3C479B     (base 16)           Theissen Training Systems, Inc.\r
+                               1225 SE 4th Terrace\r
+                               Chiefland  FL  32626\r
+                               US\r
+\r
+70-5A-AC   (hex)               Samsung Electronics Co.,Ltd\r
+705AAC     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
+FC-64-3A   (hex)               Samsung Electronics Co.,Ltd\r
+FC643A     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
+D4-E6-B7   (hex)               Samsung Electronics Co.,Ltd\r
+D4E6B7     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
+28-02-D8   (hex)               Samsung Electronics Co.,Ltd\r
+2802D8     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
+C4-64-E3   (hex)               Texas Instruments\r
+C464E3     (base 16)           Texas Instruments\r
+                               12500 TI Blvd\r
+                               Dallas  TX  75243\r
+                               US\r
+\r
+F4-84-4C   (hex)               Texas Instruments\r
+F4844C     (base 16)           Texas Instruments\r
+                               12500 TI Blvd\r
+                               Dallas  TX  75243\r
+                               US\r
+\r
+00-08-89   (hex)               Dish Technologies Corp\r
+000889     (base 16)           Dish Technologies Corp\r
+                               94 Inverness Terrace E\r
+                               Englewood  CO  80112\r
+                               US\r
+\r
+6C-C4-D5   (hex)               HMD Global Oy\r
+6CC4D5     (base 16)           HMD Global Oy\r
+                               Karaportti 2\r
+                               Espoo    02610\r
+                               FI\r
+\r
+60-C5-47   (hex)               Apple, Inc.\r
+60C547     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-60-69-44   (hex)               Apple, Inc.\r
-606944     (base 16)           Apple, Inc.\r
+28-E0-2C   (hex)               Apple, Inc.\r
+28E02C     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-88-96-B6   (hex)               Global Fire Equipment S.A.\r
-8896B6     (base 16)           Global Fire Equipment S.A.\r
-                               Sitio dos Barrabés, Armazém Nave Y,\r
-                               São Brás de Alportel  Faro  8150-016\r
-                               PT\r
+50-EA-D6   (hex)               Apple, Inc.\r
+50EAD6     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-18-87-96   (hex)               HTC Corporation\r
-188796     (base 16)           HTC Corporation\r
-                               No. 23, Xinghua Rd., Taoyuan City\r
-                               Taoyuan County  Taiwan  330\r
-                               TW\r
+48-60-BC   (hex)               Apple, Inc.\r
+4860BC     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-AC-2A-0C   (hex)               CSR ZHUZHOU INSTITUTE CO.,LTD.\r
-AC2A0C     (base 16)           CSR ZHUZHOU INSTITUTE CO.,LTD.\r
-                               Times Ave.,Zhuzhou,hunan,China\r
-                               zhuzhou  Hunan  412001\r
-                               CN\r
+40-30-04   (hex)               Apple, Inc.\r
+403004     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-F4-CA-24   (hex)               FreeBit Co., Ltd.\r
-F4CA24     (base 16)           FreeBit Co., Ltd.\r
-                               E.Space Tower 3-6 Maruyama-Cho\r
-                               Shibuya-ku  Tokyo  150-0044\r
-                               JP\r
+0C-74-C2   (hex)               Apple, Inc.\r
+0C74C2     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-0A-57   (hex)               Hewlett Packard\r
-000A57     (base 16)           Hewlett Packard\r
-                               10955 Tantau Avenue\r
+A4-B1-97   (hex)               Apple, Inc.\r
+A4B197     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-64-31-50   (hex)               Hewlett Packard\r
-643150     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+7C-F0-5F   (hex)               Apple, Inc.\r
+7CF05F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-23-76   (hex)               HTC Corporation\r
-002376     (base 16)           HTC Corporation\r
-                               No.23 Xinghua Road\r
-                               Taoyuan County    330\r
-                               TW\r
+78-6C-1C   (hex)               Apple, Inc.\r
+786C1C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-07-E9   (hex)               Intel Corporation\r
-0007E9     (base 16)           Intel Corporation\r
-                               2111 NE 25th Avenue\r
-                               Hillsboro  OR  97124\r
+BC-3B-AF   (hex)               Apple, Inc.\r
+BC3BAF     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-B4-6D-83   (hex)               Intel Corporate\r
-B46D83     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3\r
-                               Kulim  Kedah  09000\r
-                               MY\r
+F0-D1-A9   (hex)               Apple, Inc.\r
+F0D1A9     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-E4-FA-FD   (hex)               Intel Corporate\r
-E4FAFD     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3\r
-                               Kulim  Kedah  09000\r
-                               MY\r
+34-C0-59   (hex)               Apple, Inc.\r
+34C059     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-DC-53-60   (hex)               Intel Corporate\r
-DC5360     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3\r
-                               Kulim  Kedah  09000\r
-                               MY\r
+04-F7-E4   (hex)               Apple, Inc.\r
+04F7E4     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-78-0C-B8   (hex)               Intel Corporate\r
-780CB8     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3\r
-                               Kulim  Kedah  09000\r
-                               MY\r
+10-DD-B1   (hex)               Apple, Inc.\r
+10DDB1     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-48-45-20   (hex)               Intel Corporate\r
-484520     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3\r
-                               Kulim  Kedah  09000\r
-                               MY\r
+B4-F0-AB   (hex)               Apple, Inc.\r
+B4F0AB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-40-26   (hex)               BUFFALO.INC\r
-004026     (base 16)           BUFFALO.INC\r
-                               AKAMONDORI Bldg., 30-20,Ohsu 3-chome\r
-                               Naka-ku,Nagoya  Aichi Pref.  460-8315\r
-                               JP\r
+00-A0-40   (hex)               Apple, Inc.\r
+00A040     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-02-A5   (hex)               Hewlett Packard\r
-0002A5     (base 16)           Hewlett Packard\r
-                               20555 State Highway 249\r
-                               Houston  TX  77070\r
+60-FE-C5   (hex)               Apple, Inc.\r
+60FEC5     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-A0-2B-B8   (hex)               Hewlett Packard\r
-A02BB8     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+CC-44-63   (hex)               Apple, Inc.\r
+CC4463     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-6C-C2-17   (hex)               Hewlett Packard\r
-6CC217     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+6C-72-E7   (hex)               Apple, Inc.\r
+6C72E7     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-38-63-BB   (hex)               Hewlett Packard\r
-3863BB     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+18-AF-61   (hex)               Apple, Inc.\r
+18AF61     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-CC-3E-5F   (hex)               Hewlett Packard\r
-CC3E5F     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+00-CD-FE   (hex)               Apple, Inc.\r
+00CDFE     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-74-46-A0   (hex)               Hewlett Packard\r
-7446A0     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+30-10-E4   (hex)               Apple, Inc.\r
+3010E4     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-44-31-92   (hex)               Hewlett Packard\r
-443192     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+38-0F-4A   (hex)               Apple, Inc.\r
+380F4A     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-FC-15-B4   (hex)               Hewlett Packard\r
-FC15B4     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+68-5B-35   (hex)               Apple, Inc.\r
+685B35     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-EC-9A-74   (hex)               Hewlett Packard\r
-EC9A74     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+C8-6F-1D   (hex)               Apple, Inc.\r
+C86F1D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-80-C1-6E   (hex)               Hewlett Packard\r
-80C16E     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+70-11-24   (hex)               Apple, Inc.\r
+701124     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-D0-7E-28   (hex)               Hewlett Packard\r
-D07E28     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+38-48-4C   (hex)               Apple, Inc.\r
+38484C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-74-03-BD   (hex)               BUFFALO.INC\r
-7403BD     (base 16)           BUFFALO.INC\r
-                                AKAMONDORI Bldg, 30-20, Ohsu 3-chome,\r
-                               Minami-ku, Nagoya  Aichi Pref.  457-8520\r
-                               JP\r
+04-15-52   (hex)               Apple, Inc.\r
+041552     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-10-1F-74   (hex)               Hewlett Packard\r
-101F74     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+40-A6-D9   (hex)               Apple, Inc.\r
+40A6D9     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-1A-4B   (hex)               Hewlett Packard\r
-001A4B     (base 16)           Hewlett Packard\r
-                               20555 State Highway 249\r
-                               Houston  TX  77070\r
+10-9A-DD   (hex)               Apple, Inc.\r
+109ADD     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-1F-29   (hex)               Hewlett Packard\r
-001F29     (base 16)           Hewlett Packard\r
-                               20555 State Highway 249\r
-                               Houston  TX  77070\r
+F0-B4-79   (hex)               Apple, Inc.\r
+F0B479     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-21-5A   (hex)               Hewlett Packard\r
-00215A     (base 16)           Hewlett Packard\r
-                               20555 State Highway 249\r
-                               Houston  TX  77070\r
+58-B0-35   (hex)               Apple, Inc.\r
+58B035     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-0F-61   (hex)               Hewlett Packard\r
-000F61     (base 16)           Hewlett Packard\r
-                               20555 State Highway 249\r
-                               Houston  TX  77070\r
+34-15-9E   (hex)               Apple, Inc.\r
+34159E     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-11-85   (hex)               Hewlett Packard\r
-001185     (base 16)           Hewlett Packard\r
-                               20555 State Highway 249\r
-                               Houston  TX  77070\r
+28-6A-BA   (hex)               Apple, Inc.\r
+286ABA     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-12-79   (hex)               Hewlett Packard\r
-001279     (base 16)           Hewlett Packard\r
-                               20555 State Highway 249\r
-                               Houston  TX  77070\r
+EC-85-2F   (hex)               Apple, Inc.\r
+EC852F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-17-08   (hex)               Hewlett Packard\r
-001708     (base 16)           Hewlett Packard\r
-                               20555 State Highway 249\r
-                               Houston  TX  77070\r
+44-D8-84   (hex)               Apple, Inc.\r
+44D884     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-28-32-C5   (hex)               HUMAX Co., Ltd.\r
-2832C5     (base 16)           HUMAX Co., Ltd.\r
-                               HUMAX Village,216,Hwangsaeul-ro,Bundang-gu\r
-                               Seongnam-si  Gyeonggi-do  463-875\r
-                               KR\r
+00-3E-E1   (hex)               Apple, Inc.\r
+003EE1     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-EC-4D-47   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-EC4D47     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
+7C-11-BE   (hex)               Apple, Inc.\r
+7C11BE     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-88-CF-98   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-88CF98     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan    523808\r
-                               CN\r
+28-F0-76   (hex)               Apple, Inc.\r
+28F076     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-6C-E3-B6   (hex)               Nera Telecommunications Ltd.\r
-6CE3B6     (base 16)           Nera Telecommunications Ltd.\r
-                               109 Defu Lane 10\r
-                               Singapore  Singapore  539225\r
-                               SG\r
+28-5A-EB   (hex)               Apple, Inc.\r
+285AEB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-94-2C-B3   (hex)               HUMAX Co., Ltd.\r
-942CB3     (base 16)           HUMAX Co., Ltd.\r
-                               HUMAX Village, 216, Hwangsaeul-ro, Bu\r
-                               Seongnam-si  Gyeonggi-do  463-875\r
-                               KR\r
+08-74-02   (hex)               Apple, Inc.\r
+087402     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-04-52-F3   (hex)               Apple, Inc.\r
-0452F3     (base 16)           Apple, Inc.\r
+64-B9-E8   (hex)               Apple, Inc.\r
+64B9E8     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-24-1E-EB   (hex)               Apple, Inc.\r
-241EEB     (base 16)           Apple, Inc.\r
+00-1C-B3   (hex)               Apple, Inc.\r
+001CB3     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-F4-31-C3   (hex)               Apple, Inc.\r
-F431C3     (base 16)           Apple, Inc.\r
+00-0D-93   (hex)               Apple, Inc.\r
+000D93     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-C8-7B-5B   (hex)               zte corporation\r
-C87B5B     (base 16)           zte corporation\r
-                               12/F.,zte R&D building,kejinan Road,\r
-                               shenzhen  guangdong  518057\r
-                               CN\r
+CC-C7-60   (hex)               Apple, Inc.\r
+CCC760     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-98-F5-37   (hex)               zte corporation\r
-98F537     (base 16)           zte corporation\r
-                               12/F.,zte R&D building,kejinan Road,\r
-                               shenzhen  guangdong  518057\r
-                               CN\r
+9C-FC-01   (hex)               Apple, Inc.\r
+9CFC01     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-1E-73   (hex)               zte corporation\r
-001E73     (base 16)           zte corporation\r
-                               12/F ZTE Plaza,Keji Road South,Hi-Tech Industrial Park,Nanshan District,\r
-                               Shenzhen  GUANGDONG  518057\r
-                               CN\r
+AC-BC-32   (hex)               Apple, Inc.\r
+ACBC32     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-19-C6   (hex)               zte corporation\r
-0019C6     (base 16)           zte corporation\r
-                               Technology Management Department, \r
-                               Shenzhen  Guangdong  518057\r
-                               CN\r
+A8-BE-27   (hex)               Apple, Inc.\r
+A8BE27     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-15-EB   (hex)               zte corporation\r
-0015EB     (base 16)           zte corporation\r
-                               5/F,A Wing,ZTE Plaza,Keji Road South,Hi-Tech Industrial Park,Nanshan District\r
-                               Shenzhen    518057\r
+B8-63-4D   (hex)               Apple, Inc.\r
+B8634D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-F0-EB-D0   (hex)               Shanghai Feixun Communication Co.,Ltd.\r
-F0EBD0     (base 16)           Shanghai Feixun Communication Co.,Ltd.\r
-                               Building 90,No,4855,Guangfulin Road\r
-                               shanghai  Shanghai  201616\r
-                               CN\r
+9C-E3-3F   (hex)               Apple, Inc.\r
+9CE33F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-D8-49-0B   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-D8490B     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               D1,Huawei Industrial Base,Bantian,Longgang,Shenzhen\r
-                               Shenzhen    518129\r
-                               CN\r
+F0-98-9D   (hex)               Apple, Inc.\r
+F0989D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-88-86-03   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-888603     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               D1,Huawei Industrial Base,Bantian,Longgang,Shenzhen\r
-                               Shenzhen    518129\r
-                               CN\r
+AC-E4-B5   (hex)               Apple, Inc.\r
+ACE4B5     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-F8-E8-11   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-F8E811     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               D1,Huawei Industrial Base,Bantian,Longgang,Shenzhen\r
-                               Shenzhen  Guangdong  518129\r
-                               CN\r
+E4-2B-34   (hex)               Apple, Inc.\r
+E42B34     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-E0-97-96   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-E09796     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               D1,Huawei Industrial Base,Bantian,Longgang,Shenzhen\r
-                               Shenzhen  Guangdong  518129\r
-                               CN\r
+1C-36-BB   (hex)               Apple, Inc.\r
+1C36BB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-CC-CC-81   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-CCCC81     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+3C-2E-FF   (hex)               Apple, Inc.\r
+3C2EFF     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+F0-76-6F   (hex)               Apple, Inc.\r
+F0766F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+40-CB-C0   (hex)               Apple, Inc.\r
+40CBC0     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+40-98-AD   (hex)               Apple, Inc.\r
+4098AD     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+6C-4D-73   (hex)               Apple, Inc.\r
+6C4D73     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+C4-84-66   (hex)               Apple, Inc.\r
+C48466     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+D0-2B-20   (hex)               Apple, Inc.\r
+D02B20     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+70-70-0D   (hex)               Apple, Inc.\r
+70700D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+7C-50-49   (hex)               Apple, Inc.\r
+7C5049     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+50-32-37   (hex)               Apple, Inc.\r
+503237     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+D4-61-9D   (hex)               Apple, Inc.\r
+D4619D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+B0-48-1A   (hex)               Apple, Inc.\r
+B0481A     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+98-9E-63   (hex)               Apple, Inc.\r
+989E63     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+DC-A9-04   (hex)               Apple, Inc.\r
+DCA904     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+48-A1-95   (hex)               Apple, Inc.\r
+48A195     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+6C-AB-31   (hex)               Apple, Inc.\r
+6CAB31     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+6C-96-CF   (hex)               Apple, Inc.\r
+6C96CF     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+30-35-AD   (hex)               Apple, Inc.\r
+3035AD     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+AC-61-EA   (hex)               Apple, Inc.\r
+AC61EA     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+38-B5-4D   (hex)               Apple, Inc.\r
+38B54D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A4-F1-E8   (hex)               Apple, Inc.\r
+A4F1E8     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+70-A2-B3   (hex)               Apple, Inc.\r
+70A2B3     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+4C-57-CA   (hex)               Apple, Inc.\r
+4C57CA     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+68-FB-7E   (hex)               Apple, Inc.\r
+68FB7E     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+90-C1-C6   (hex)               Apple, Inc.\r
+90C1C6     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+9C-F4-8E   (hex)               Apple, Inc.\r
+9CF48E     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+FC-D8-48   (hex)               Apple, Inc.\r
+FCD848     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+84-85-06   (hex)               Apple, Inc.\r
+848506     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+68-96-7B   (hex)               Apple, Inc.\r
+68967B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+BC-67-78   (hex)               Apple, Inc.\r
+BC6778     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A8-20-66   (hex)               Apple, Inc.\r
+A82066     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+B0-65-BD   (hex)               Apple, Inc.\r
+B065BD     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+F0-DC-E2   (hex)               Apple, Inc.\r
+F0DCE2     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+7C-D1-C3   (hex)               Apple, Inc.\r
+7CD1C3     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+70-56-81   (hex)               Apple, Inc.\r
+705681     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+1C-A0-B8   (hex)               Hon Hai Precision Ind. Co., Ltd.\r
+1CA0B8     (base 16)           Hon Hai Precision Ind. Co., Ltd.\r
+                               GuangDongShenZhen\r
+                               ShenZhen  GuangDong  518109\r
+                               CN\r
+\r
+E8-C1-B8   (hex)                Nanjing Bangzhong Electronic Commerce Limited\r
+E8C1B8     (base 16)            Nanjing Bangzhong Electronic Commerce Limited\r
+                               No.22, Liuzhou East Road, High - tech Zone\r
+                               Nanjing    210000\r
+                               CN\r
+\r
+1C-B0-44   (hex)               ASKEY COMPUTER CORP\r
+1CB044     (base 16)           ASKEY COMPUTER CORP\r
+                               10F,No.119,JIANKANG RD,ZHONGHE DIST\r
+                               NEW TAIPEI  TAIWAN  23585\r
+                               TW\r
+\r
+90-03-72   (hex)               Longnan Junya Digital Technology Co. Ltd. \r
+900372     (base 16)           Longnan Junya Digital Technology Co. Ltd. \r
+                               Champion Asia Road, Xinzhen industrial Park, Longnan national economic and technological development zone, Ganzhou city, JiangXi Province , China\r
+                               ganzhou  jiangxi  341700\r
+                               CN\r
+\r
+F0-41-C8   (hex)               IEEE Registration Authority\r
+F041C8     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
+                               US\r
+\r
+A4-38-CC   (hex)               Nintendo Co.,Ltd\r
+A438CC     (base 16)           Nintendo Co.,Ltd\r
+                               11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU\r
+                               KYOTO  KYOTO  601-8501\r
+                               JP\r
+\r
+94-6A-B0   (hex)               Arcadyan Corporation\r
+946AB0     (base 16)           Arcadyan Corporation\r
+                               No.8, Sec.2, Guangfu Rd.\r
+                               Hsinchu City  Hsinchu  30071\r
+                               TW\r
+\r
+B4-DE-31   (hex)               Cisco Systems, Inc\r
+B4DE31     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+70-16-9F   (hex)               EtherCAT Technology Group\r
+70169F     (base 16)           EtherCAT Technology Group\r
+                               Ostendstr. 196\r
+                               NUremberg    90482\r
+                               DE\r
+\r
+64-98-29   (hex)               Integrated Device Technology (Malaysia) Sdn. Bhd.\r
+649829     (base 16)           Integrated Device Technology (Malaysia) Sdn. Bhd.\r
+                               Phase 3, Bayan Lepas FIZ\r
+                               Bayan Lepas  Penang  11900\r
+                               MY\r
+\r
+08-1D-C4   (hex)               Thermo Fisher Scientific Messtechnik GmbH\r
+081DC4     (base 16)           Thermo Fisher Scientific Messtechnik GmbH\r
+                               Frauenauracher Strasse 96\r
+                               Erlangen    91056\r
+                               DE\r
+\r
+68-98-61   (hex)               Beacon Inc\r
+689861     (base 16)           Beacon Inc\r
+                               82-1, Anyangcheondong-ro, Dongan-gu\r
+                               anyang  Gyeonggi-do  14042\r
+                               KR\r
+\r
+88-B3-62   (hex)               Nokia Shanghai Bell Co. Ltd.)\r
+88B362     (base 16)           Nokia Shanghai Bell Co. Ltd.)\r
+                               No.388 Ning Qiao Road,Jin Qiao Pudong Shanghai 201206,P.R.China\r
+                               Shanghai   Pudong  201206\r
+                               CN\r
+\r
+10-A4-B9   (hex)               Baidu Online Network Technology (Beijing) Co., Ltd\r
+10A4B9     (base 16)           Baidu Online Network Technology (Beijing) Co., Ltd\r
+                               Baidu Campus, No.10 Shangdi 10th Street, Haidian District\r
+                                Beijing    100085\r
+                               CN\r
+\r
+34-7E-CA   (hex)               NEXTWILL\r
+347ECA     (base 16)           NEXTWILL\r
+                               JJ-Building, 20, Deongmyeong-ro 71beon-gil1, Yuseong-gu\r
+                               Daejeon    34155\r
+                               KR\r
+\r
+50-14-79   (hex)               iRobot Corporation \r
+501479     (base 16)           iRobot Corporation \r
+                               8 Crosby Drive\r
+                               Bedford  MA  01730\r
+                               US\r
+\r
+60-84-BD   (hex)               BUFFALO.INC\r
+6084BD     (base 16)           BUFFALO.INC\r
+                               AKAMONDORI Bld.,30-20,Ohsu 3-chome,Naka-ku\r
+                               Nagoya  Aichi Pref.  460-8315\r
+                               JP\r
+\r
+10-F9-EB   (hex)               Industria Fueguina de Relojería Electrónica s.a.\r
+10F9EB     (base 16)           Industria Fueguina de Relojería Electrónica s.a.\r
+                               Sarmiento 2920\r
+                               Rio Grande  Tierra de Fuego  V9420GIV\r
+                               AR\r
+\r
+B8-94-36   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+B89436     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+F8-DF-15   (hex)               Sunitec Enterprise Co.,Ltd\r
+F8DF15     (base 16)           Sunitec Enterprise Co.,Ltd\r
+                               3F.,No.98-1,Mincyuan Rd.Sindian City\r
+                               Taipei County 231    231141\r
+                               CN\r
+\r
+A8-DA-01   (hex)               Shenzhen NUOLIJIA Digital Technology Co.,Ltd\r
+A8DA01     (base 16)           Shenzhen NUOLIJIA Digital Technology Co.,Ltd\r
+                               A Area of The Second Flood and D Area of The First Floor,Factory Building A,Youxinda Industrial Park,Gengyu Road,Tianliao Community,Gongming Street Office,Guangming New District,Shenzhen City,Guangdong,P.R.China\r
+                               Shenzhen  Guangdong  518000\r
+                               CN\r
+\r
+90-94-97   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+909497     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+EC-89-14   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+EC8914     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+DC-72-9B   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+DC729B     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+5C-5A-EA   (hex)               FORD\r
+5C5AEA     (base 16)           FORD\r
+                               17425 Federal Drive \r
+                               Allen Park  MI  48101\r
+                               US\r
+\r
+5C-AA-FD   (hex)               Sonos, Inc.\r
+5CAAFD     (base 16)           Sonos, Inc.\r
+                               614 Chapala St\r
+                               Santa Barbara  CA  93101\r
+                               US\r
+\r
+00-0E-58   (hex)               Sonos, Inc.\r
+000E58     (base 16)           Sonos, Inc.\r
+                               614 Chapala St\r
+                               Santa Barbara  CA  93101\r
+                               US\r
+\r
+88-29-50   (hex)               Netmoon Technology Co., Ltd\r
+882950     (base 16)           Netmoon Technology Co., Ltd\r
+                               2nd Floor, Building No.1, NO.319, Qingpi Avenue\r
+                               Wenjiang District  Chengdu  611130\r
+                               CN\r
+\r
+00-21-94   (hex)               Ping Communication\r
+002194     (base 16)           Ping Communication\r
+                               Brenden 18\r
+                               Appenzell Meistersrüte  AI  9050\r
+                               CH\r
+\r
+7C-FF-4D   (hex)               AVM Audiovisuelles Marketing und Computersysteme GmbH\r
+7CFF4D     (base 16)           AVM Audiovisuelles Marketing und Computersysteme GmbH\r
+                               Alt-Moabit 95\r
+                               Berlin  Berlin  10559\r
+                               DE\r
+\r
+74-70-FD   (hex)               Intel Corporate\r
+7470FD     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3\r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+CC-99-16   (hex)               Integrated Device Technology (Malaysia) Sdn. Bhd.\r
+CC9916     (base 16)           Integrated Device Technology (Malaysia) Sdn. Bhd.\r
+                               Phase 3, Bayan Lepas FIZ\r
+                               Bayan Lepas  Penang  11900\r
+                               MY\r
+\r
+A4-50-55   (hex)               BUSWARE.DE\r
+A45055     (base 16)           BUSWARE.DE\r
+                               Lindenstrasse 18\r
+                               Scharbeutz    23684\r
+                               DE\r
+\r
+00-13-86   (hex)               ABB Inc/Totalflow\r
+001386     (base 16)           ABB Inc/Totalflow\r
+                               \r
+                               Bartlesville  OK  74006\r
+                               US\r
+\r
+A0-66-10   (hex)               FUJITSU LIMITED\r
+A06610     (base 16)           FUJITSU LIMITED\r
+                               Mushashi-kosuge Tower Place 13F\r
+                               Kawasaki  Kanagawa  211-0063\r
+                               JP\r
+\r
+64-CB-5D   (hex)               SIA TeleSet\r
+64CB5D     (base 16)           SIA TeleSet\r
+                               Krāslavas iela 5\r
+                               Vecstropi, Naujenes par., Daugavpils distr.    LV-5413\r
+                               LV\r
+\r
+70-69-5A   (hex)               Cisco Systems, Inc\r
+70695A     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+58-21-E9   (hex)               TWPI\r
+5821E9     (base 16)           TWPI\r
+                               PMB# 335; 1121 Annapolis Road\r
+                               Odenton  MD  21113\r
+                               US\r
+\r
+68-D4-82   (hex)               SHENZHEN GONGJIN ELECTRONICS CO.,LT\r
+68D482     (base 16)           SHENZHEN GONGJIN ELECTRONICS CO.,LT\r
+                               SONGGANG\r
+                               SHENZHEN  GUANGDONG  518105\r
+                               CN\r
+\r
+30-1F-9A   (hex)               IEEE Registration Authority\r
+301F9A     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
+                               US\r
+\r
+90-79-10   (hex)               Integrated Device Technology (Malaysia) Sdn. Bhd.\r
+907910     (base 16)           Integrated Device Technology (Malaysia) Sdn. Bhd.\r
+                               Phase 3, Bayan Lepas FIZ\r
+                               Bayan Lepas  Penang  11900\r
+                               MY\r
+\r
+00-A0-D5   (hex)               Sierra Wireless Inc\r
+00A0D5     (base 16)           Sierra Wireless Inc\r
+                               13811 Wireless Way\r
+                                 RICHMOND B.C.  V6V 3A4\r
+                               CA\r
+\r
+0C-6F-9C   (hex)               Shaw Communications Inc.\r
+0C6F9C     (base 16)           Shaw Communications Inc.\r
+                               Suite 900, 630 3rd Avenue S.W.\r
+                               CALGARY  ALBERTA  T2P 4L4\r
+                               CA\r
+\r
+18-01-E3   (hex)               Bittium Wireless Ltd\r
+1801E3     (base 16)           Bittium Wireless Ltd\r
+                               Tutkijantie 8\r
+                               Oulu    50590\r
+                               FI\r
+\r
+C0-AC-54   (hex)               Sagemcom Broadband SAS\r
+C0AC54     (base 16)           Sagemcom Broadband SAS\r
+                               250 route de l'Empereur\r
+                               Rueil Malmaison  HAUTS DE SEINE  92848\r
+                               FR\r
+\r
+40-F2-01   (hex)               Sagemcom Broadband SAS\r
+40F201     (base 16)           Sagemcom Broadband SAS\r
+                               250 route de l'Empereur\r
+                               Rueil Malmaison  HAUTS DE SEINE  92848\r
+                               FR\r
+\r
+C8-91-F9   (hex)               Sagemcom Broadband SAS\r
+C891F9     (base 16)           Sagemcom Broadband SAS\r
+                               250 route de l'Empereur\r
+                               Rueil Malmaison  HAUTS DE SEINE  92848\r
+                               FR\r
+\r
+4C-FF-12   (hex)               Fuze Entertainment Co., ltd\r
+4CFF12     (base 16)           Fuze Entertainment Co., ltd\r
+                               3rd Floor Harbour Centre\r
+                               George Town  George Town  P.O. Box 613GT\r
+                               KY\r
+\r
+00-59-AC   (hex)               KPN. B.V.\r
+0059AC     (base 16)           KPN. B.V.\r
+                               Maanplein 55\r
+                               Den Haag  Zuid holland  2516 CK\r
+                               NL\r
+\r
+AC-9A-22   (hex)               NXP Semiconductors\r
+AC9A22     (base 16)           NXP Semiconductors\r
+                               411 E. Plumeria Drive\r
+                               San Jose  CA  95134\r
+                               US\r
+\r
+00-60-37   (hex)               NXP Semiconductors\r
+006037     (base 16)           NXP Semiconductors\r
+                               High Tech Campus 32, Office 1.21\r
+                               SAF  AD  13456\r
+                               NL\r
+\r
+54-60-09   (hex)               Google, Inc.\r
+546009     (base 16)           Google, Inc.\r
+                               1600 Amphitheatre Parkway\r
+                               Mountain View  CA  94043\r
+                               US\r
+\r
+A4-77-33   (hex)               Google, Inc.\r
+A47733     (base 16)           Google, Inc.\r
+                               1600 Ampitheatre Parkway\r
+                               Mountain View    94043\r
+                               US\r
+\r
+94-EB-2C   (hex)               Google, Inc.\r
+94EB2C     (base 16)           Google, Inc.\r
+                               1600 Amphitheatre Parkway\r
+                               Mountain View    94043\r
+                               US\r
+\r
+28-BC-56   (hex)               EMAC, Inc.\r
+28BC56     (base 16)           EMAC, Inc.\r
+                               2390 EMAC Way\r
+                               Carbondale  IL  62902\r
+                               US\r
+\r
+28-7C-DB   (hex)               Hefei  Toycloud Technology Co.,ltd\r
+287CDB     (base 16)           Hefei  Toycloud Technology Co.,ltd\r
+                               FLOOR 13,XUNFEI BUILDING,NO.666 WANGJIANG ROAD,HIGH & NEW TECHNOLOGY DEVELOPMENT ZONE.HEFEI.\r
+                               Hefei  Anhui  230088\r
+                               CN\r
+\r
+D0-B3-3F   (hex)               Shenzhen TINNO Mobile Technology Corp.\r
+D0B33F     (base 16)           Shenzhen TINNO Mobile Technology Corp.\r
+                               4/F.,H-3 Building,OCT Eastern lndustrial Park. NO.1 XiangShan East Road.,\r
+                               GUANGDONG  SHENZHEN  518053\r
+                               CN\r
+\r
+00-73-8D   (hex)               Shenzhen TINNO Mobile Technology Corp.\r
+00738D     (base 16)           Shenzhen TINNO Mobile Technology Corp.\r
+                               4/F.,H-3 Building,OCT Eastern lndustrial Park. NO.1 XiangShan East Road.\r
+                               GuangDong    518053\r
+                               US\r
+\r
+A8-CA-7B   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+A8CA7B     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+AC-CF-85   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+ACCF85     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan  Guangdong  523808 \r
+                               CN\r
+\r
+24-35-CC   (hex)               Zhongshan Scinan Internet of Things Co.,Ltd.\r
+2435CC     (base 16)           Zhongshan Scinan Internet of Things Co.,Ltd.\r
+                               15/F Bldg 1·Dezhong Plaza Torch Development Zone Zhongshan·Guangdong\r
+                               ZhongShan  GuangDong  528437\r
+                               CN\r
+\r
+2C-27-D7   (hex)               Hewlett Packard\r
+2C27D7     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+00-0F-3D   (hex)               D-Link Corporation\r
+000F3D     (base 16)           D-Link Corporation\r
+                               No.8,Li-shing Seventh Road,Science-based Industrial Park,Hsimchu,\r
+                               Hsimchu    300\r
+                               TW\r
+\r
+00-11-95   (hex)               D-Link Corporation\r
+001195     (base 16)           D-Link Corporation\r
+                               2F No. 233-2, Pao-Chiao Road\r
+                               Taipei  Taiwan  0000\r
+                               TW\r
+\r
+00-15-E9   (hex)               D-Link Corporation\r
+0015E9     (base 16)           D-Link Corporation\r
+                               2F, No.233-2, Pao-Chiao Road\r
+                               Hsin-Tien,  Taipei  231\r
+                               TW\r
+\r
+0C-FD-37   (hex)               SUSE Linux GmbH\r
+0CFD37     (base 16)           SUSE Linux GmbH\r
+                               Maxfeldstraße 5\r
+                               Nürnberg  Bavaria  90409\r
+                               DE\r
+\r
+2C-FF-65   (hex)               Oki Electric Industry Co., Ltd.\r
+2CFF65     (base 16)           Oki Electric Industry Co., Ltd.\r
+                               1-7-12 Toranomon\r
+                               Tokyo 105-8460    \r
+                               JP\r
+\r
+00-1C-F0   (hex)               D-Link Corporation\r
+001CF0     (base 16)           D-Link Corporation\r
+                               NO.289, Sinhu 3rd Rd.,\r
+                               Neihu District,  Taipei City  114\r
+                               TW\r
+\r
+00-26-5A   (hex)               D-Link Corporation\r
+00265A     (base 16)           D-Link Corporation\r
+                               No.289, Sinhu 3rd Rd.,\r
+                               Neihu District    114\r
+                               TW\r
+\r
+AC-F1-DF   (hex)               D-Link International\r
+ACF1DF     (base 16)           D-Link International\r
+                               1 International Business Park, #03-12, The Synergy \r
+                               SINGAPORE    609917\r
+                               SG\r
+\r
+FC-75-16   (hex)               D-Link International\r
+FC7516     (base 16)           D-Link International\r
+                               1 International Business Park, #03-12, The Synergy \r
+                               SINGAPORE    609917\r
+                               SG\r
+\r
+7C-18-CD   (hex)               E-TRON Co.,Ltd.\r
+7C18CD     (base 16)           E-TRON Co.,Ltd.\r
+                               66-11, Nonhyeon 2-dong, Gangnam-gu\r
+                               Seoul    06049\r
+                               KR\r
+\r
+38-97-D6   (hex)               Hangzhou H3C Technologies Co., Limited\r
+3897D6     (base 16)           Hangzhou H3C Technologies Co., Limited\r
+                               466 Changhe Road, Binjiang District\r
+                               Hangzhou  Zhejiang, P.R.China  310052\r
+                               CN\r
+\r
+C8-47-8C   (hex)               Beken Corporation\r
+C8478C     (base 16)           Beken Corporation\r
+                               Building 41, Capital of Tech Leaders, 1387 Zhangdong Road, Zhangjiang High-Tech Park, Pudong New District\r
+                               Shanghai    201203\r
+                               CN\r
+\r
+88-96-B6   (hex)               Global Fire Equipment S.A.\r
+8896B6     (base 16)           Global Fire Equipment S.A.\r
+                               Sitio dos Barrabés, Armazém Nave Y,\r
+                               São Brás de Alportel  Faro  8150-016\r
+                               PT\r
+\r
+18-87-96   (hex)               HTC Corporation\r
+188796     (base 16)           HTC Corporation\r
+                               No. 23, Xinghua Rd., Taoyuan City\r
+                               Taoyuan County  Taiwan  330\r
+                               TW\r
+\r
+AC-2A-0C   (hex)               CSR ZHUZHOU INSTITUTE CO.,LTD.\r
+AC2A0C     (base 16)           CSR ZHUZHOU INSTITUTE CO.,LTD.\r
+                               Times Ave.,Zhuzhou,hunan,China\r
+                               zhuzhou  Hunan  412001\r
+                               CN\r
+\r
+F4-CA-24   (hex)               FreeBit Co., Ltd.\r
+F4CA24     (base 16)           FreeBit Co., Ltd.\r
+                               E.Space Tower 3-6 Maruyama-Cho\r
+                               Shibuya-ku  Tokyo  150-0044\r
+                               JP\r
+\r
+00-0A-57   (hex)               Hewlett Packard\r
+000A57     (base 16)           Hewlett Packard\r
+                               10955 Tantau Avenue\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+64-31-50   (hex)               Hewlett Packard\r
+643150     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+00-23-76   (hex)               HTC Corporation\r
+002376     (base 16)           HTC Corporation\r
+                               No.23 Xinghua Road\r
+                               Taoyuan County    330\r
+                               TW\r
+\r
+00-07-E9   (hex)               Intel Corporation\r
+0007E9     (base 16)           Intel Corporation\r
+                               2111 NE 25th Avenue\r
+                               Hillsboro  OR  97124\r
+                               US\r
+\r
+B4-6D-83   (hex)               Intel Corporate\r
+B46D83     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3\r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+E4-FA-FD   (hex)               Intel Corporate\r
+E4FAFD     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3\r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+DC-53-60   (hex)               Intel Corporate\r
+DC5360     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3\r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+78-0C-B8   (hex)               Intel Corporate\r
+780CB8     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3\r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+48-45-20   (hex)               Intel Corporate\r
+484520     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3\r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+00-40-26   (hex)               BUFFALO.INC\r
+004026     (base 16)           BUFFALO.INC\r
+                               AKAMONDORI Bldg., 30-20,Ohsu 3-chome\r
+                               Naka-ku,Nagoya  Aichi Pref.  460-8315\r
+                               JP\r
+\r
+00-02-A5   (hex)               Hewlett Packard\r
+0002A5     (base 16)           Hewlett Packard\r
+                               20555 State Highway 249\r
+                               Houston  TX  77070\r
+                               US\r
+\r
+A0-2B-B8   (hex)               Hewlett Packard\r
+A02BB8     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+6C-C2-17   (hex)               Hewlett Packard\r
+6CC217     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+38-63-BB   (hex)               Hewlett Packard\r
+3863BB     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+CC-3E-5F   (hex)               Hewlett Packard\r
+CC3E5F     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+74-46-A0   (hex)               Hewlett Packard\r
+7446A0     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+44-31-92   (hex)               Hewlett Packard\r
+443192     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+FC-15-B4   (hex)               Hewlett Packard\r
+FC15B4     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+EC-9A-74   (hex)               Hewlett Packard\r
+EC9A74     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+80-C1-6E   (hex)               Hewlett Packard\r
+80C16E     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+D0-7E-28   (hex)               Hewlett Packard\r
+D07E28     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+74-03-BD   (hex)               BUFFALO.INC\r
+7403BD     (base 16)           BUFFALO.INC\r
+                                AKAMONDORI Bldg, 30-20, Ohsu 3-chome,\r
+                               Minami-ku, Nagoya  Aichi Pref.  457-8520\r
+                               JP\r
+\r
+10-1F-74   (hex)               Hewlett Packard\r
+101F74     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+00-1A-4B   (hex)               Hewlett Packard\r
+001A4B     (base 16)           Hewlett Packard\r
+                               20555 State Highway 249\r
+                               Houston  TX  77070\r
+                               US\r
+\r
+00-1F-29   (hex)               Hewlett Packard\r
+001F29     (base 16)           Hewlett Packard\r
+                               20555 State Highway 249\r
+                               Houston  TX  77070\r
+                               US\r
+\r
+00-21-5A   (hex)               Hewlett Packard\r
+00215A     (base 16)           Hewlett Packard\r
+                               20555 State Highway 249\r
+                               Houston  TX  77070\r
+                               US\r
+\r
+00-0F-61   (hex)               Hewlett Packard\r
+000F61     (base 16)           Hewlett Packard\r
+                               20555 State Highway 249\r
+                               Houston  TX  77070\r
+                               US\r
+\r
+00-11-85   (hex)               Hewlett Packard\r
+001185     (base 16)           Hewlett Packard\r
+                               20555 State Highway 249\r
+                               Houston  TX  77070\r
+                               US\r
+\r
+00-12-79   (hex)               Hewlett Packard\r
+001279     (base 16)           Hewlett Packard\r
+                               20555 State Highway 249\r
+                               Houston  TX  77070\r
+                               US\r
+\r
+00-17-08   (hex)               Hewlett Packard\r
+001708     (base 16)           Hewlett Packard\r
+                               20555 State Highway 249\r
+                               Houston  TX  77070\r
+                               US\r
+\r
+28-32-C5   (hex)               HUMAX Co., Ltd.\r
+2832C5     (base 16)           HUMAX Co., Ltd.\r
+                               HUMAX Village,216,Hwangsaeul-ro,Bundang-gu\r
+                               Seongnam-si  Gyeonggi-do  463-875\r
+                               KR\r
+\r
+EC-4D-47   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+EC4D47     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+88-CF-98   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+88CF98     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+6C-E3-B6   (hex)               Nera Telecommunications Ltd.\r
+6CE3B6     (base 16)           Nera Telecommunications Ltd.\r
+                               109 Defu Lane 10\r
+                               Singapore  Singapore  539225\r
+                               SG\r
+\r
+94-2C-B3   (hex)               HUMAX Co., Ltd.\r
+942CB3     (base 16)           HUMAX Co., Ltd.\r
+                               HUMAX Village, 216, Hwangsaeul-ro, Bu\r
+                               Seongnam-si  Gyeonggi-do  463-875\r
+                               KR\r
+\r
+C8-7B-5B   (hex)               zte corporation\r
+C87B5B     (base 16)           zte corporation\r
+                               12/F.,zte R&D building,kejinan Road,\r
+                               shenzhen  guangdong  518057\r
+                               CN\r
+\r
+98-F5-37   (hex)               zte corporation\r
+98F537     (base 16)           zte corporation\r
+                               12/F.,zte R&D building,kejinan Road,\r
+                               shenzhen  guangdong  518057\r
+                               CN\r
+\r
+00-1E-73   (hex)               zte corporation\r
+001E73     (base 16)           zte corporation\r
+                               12/F ZTE Plaza,Keji Road South,Hi-Tech Industrial Park,Nanshan District,\r
+                               Shenzhen  GUANGDONG  518057\r
+                               CN\r
+\r
+00-19-C6   (hex)               zte corporation\r
+0019C6     (base 16)           zte corporation\r
+                               Technology Management Department, \r
+                               Shenzhen  Guangdong  518057\r
+                               CN\r
+\r
+00-15-EB   (hex)               zte corporation\r
+0015EB     (base 16)           zte corporation\r
+                               5/F,A Wing,ZTE Plaza,Keji Road South,Hi-Tech Industrial Park,Nanshan District\r
+                               Shenzhen    518057\r
+                               US\r
+\r
+F0-EB-D0   (hex)               Shanghai Feixun Communication Co.,Ltd.\r
+F0EBD0     (base 16)           Shanghai Feixun Communication Co.,Ltd.\r
+                               Building 90,No,4855,Guangfulin Road\r
+                               shanghai  Shanghai  201616\r
+                               CN\r
+\r
+D8-49-0B   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+D8490B     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               D1,Huawei Industrial Base,Bantian,Longgang,Shenzhen\r
+                               Shenzhen    518129\r
+                               CN\r
+\r
+88-86-03   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+888603     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               D1,Huawei Industrial Base,Bantian,Longgang,Shenzhen\r
+                               Shenzhen    518129\r
+                               CN\r
+\r
+F8-E8-11   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+F8E811     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               D1,Huawei Industrial Base,Bantian,Longgang,Shenzhen\r
+                               Shenzhen  Guangdong  518129\r
+                               CN\r
+\r
+E0-97-96   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+E09796     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               D1,Huawei Industrial Base,Bantian,Longgang,Shenzhen\r
+                               Shenzhen  Guangdong  518129\r
+                               CN\r
+\r
+CC-CC-81   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+CCCC81     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                D1-4,Huawei Industrial Base,Bantian,Longgang\r
                                ShenZhen  GuangDong  518129\r
                                CN\r
@@ -29411,12 +29729,6 @@ F4559C     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD
                                Shenzhen  Guangdong  518057\r
                                CN\r
 \r
-64-A5-C3   (hex)               Apple, Inc.\r
-64A5C3     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 00-1D-0F   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
 001D0F     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
                                3/F, Bldg. R1-B,\r
@@ -29723,90 +30035,6 @@ C8D719     (base 16)           Cisco-Linksys, LLC
                                Irvine    92612\r
                                US\r
 \r
-CC-08-E0   (hex)               Apple, Inc.\r
-CC08E0     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-58-55-CA   (hex)               Apple, Inc.\r
-5855CA     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-8C-7B-9D   (hex)               Apple, Inc.\r
-8C7B9D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-88-C6-63   (hex)               Apple, Inc.\r
-88C663     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-C8-2A-14   (hex)               Apple, Inc.\r
-C82A14     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-98-03-D8   (hex)               Apple, Inc.\r
-9803D8     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-8C-58-77   (hex)               Apple, Inc.\r
-8C5877     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-34-51-C9   (hex)               Apple, Inc.\r
-3451C9     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-E0-B9-BA   (hex)               Apple, Inc.\r
-E0B9BA     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-D0-23-DB   (hex)               Apple, Inc.\r
-D023DB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-B8-8D-12   (hex)               Apple, Inc.\r
-B88D12     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-B8-17-C2   (hex)               Apple, Inc.\r
-B817C2     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-68-A8-6D   (hex)               Apple, Inc.\r
-68A86D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-78-A3-E4   (hex)               Apple, Inc.\r
-78A3E4     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
 54-78-1A   (hex)               Cisco Systems, Inc\r
 54781A     (base 16)           Cisco Systems, Inc\r
                                170 West Tasman Drive\r
@@ -29969,472 +30197,76 @@ F45FD4     (base 16)         Cisco SPVTG
                                Soma-city,  Fukushima-pref.,  976-8501\r
                                JP\r
 \r
-BC-92-6B   (hex)               Apple, Inc.\r
-BC926B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
+84-7D-50   (hex)               Holley Metering Limited\r
+847D50     (base 16)           Holley Metering Limited\r
+                               181 Wuchang Avenue\r
+                               Hangzhou  Zhejiang  310023\r
+                               CN\r
 \r
-00-50-E4   (hex)               Apple, Inc.\r
-0050E4     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
+6C-4A-39   (hex)               BITA\r
+6C4A39     (base 16)           BITA\r
+                               6/F, New Century Hotel Office Tower\r
+                                 BEI JING  100044\r
+                               CN\r
 \r
-00-30-65   (hex)               Apple, Inc.\r
-003065     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
+04-21-4C   (hex)               Insight Energy Ventures LLC\r
+04214C     (base 16)           Insight Energy Ventures LLC\r
+                               123 W. Fifth St\r
+                               Royal Oak  MI  48067\r
                                US\r
 \r
-00-0A-27   (hex)               Apple, Inc.\r
-000A27     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
+4C-8E-CC   (hex)               SILKAN SA\r
+4C8ECC     (base 16)           SILKAN SA\r
+                               Immeuble le Sirius\r
+                               Meudon La Foret  Ile de France  92360\r
+                               FR\r
 \r
-00-14-51   (hex)               Apple, Inc.\r
-001451     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
+98-F4-28   (hex)               zte corporation\r
+98F428     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
+                               CN\r
 \r
-00-19-E3   (hex)               Apple, Inc.\r
-0019E3     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
+7C-5A-67   (hex)               JNC Systems, Inc.\r
+7C5A67     (base 16)           JNC Systems, Inc.\r
+                               #611, Gyeonggi Venture Yeonsung University\r
+                               Anyang-si  Gyeonggi-do  430731\r
+                               KR\r
 \r
-00-23-12   (hex)               Apple, Inc.\r
-002312     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
+C4-BB-EA   (hex)               Pakedge Device and Software Inc\r
+C4BBEA     (base 16)           Pakedge Device and Software Inc\r
+                               3847 Breakwater Ave\r
+                               Hayward  CA  94545\r
                                US\r
 \r
-00-23-32   (hex)               Apple, Inc.\r
-002332     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
+84-10-0D   (hex)               Motorola Mobility LLC, a Lenovo Company\r
+84100D     (base 16)           Motorola Mobility LLC, a Lenovo Company\r
+                               222 West Merchandise Mart Plaza\r
+                               Chicago  IL  60654\r
                                US\r
 \r
-00-24-36   (hex)               Apple, Inc.\r
-002436     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
+D8-8B-4C   (hex)               KingTing Tech.\r
+D88B4C     (base 16)           KingTing Tech.\r
+                               8 Holly St\r
+                               Irvine  California  92612\r
                                US\r
 \r
-00-25-4B   (hex)               Apple, Inc.\r
-00254B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
+6C-93-54   (hex)               Yaojin Technology (Shenzhen) Co., LTD.\r
+6C9354     (base 16)           Yaojin Technology (Shenzhen) Co., LTD.\r
+                                No.18,Zhulong Tian Road,Shuitian No.4 Industrial Area,Shiyan Street, Baoan District,Shenzhen,China\r
+                               Shenzhen  Guangdong  518108\r
+                               CN\r
+\r
+40-54-E4   (hex)               Wearsafe Labs Inc\r
+4054E4     (base 16)           Wearsafe Labs Inc\r
+                               1429 Park Street\r
+                               Hartford  CT  06106\r
                                US\r
 \r
-00-26-BB   (hex)               Apple, Inc.\r
-0026BB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-E8-06-88   (hex)               Apple, Inc.\r
-E80688     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-98-5A-EB   (hex)               Apple, Inc.\r
-985AEB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-20-78-F0   (hex)               Apple, Inc.\r
-2078F0     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-78-D7-5F   (hex)               Apple, Inc.\r
-78D75F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-E0-AC-CB   (hex)               Apple, Inc.\r
-E0ACCB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-98-E0-D9   (hex)               Apple, Inc.\r
-98E0D9     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-C0-CE-CD   (hex)               Apple, Inc.\r
-C0CECD     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-70-E7-2C   (hex)               Apple, Inc.\r
-70E72C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-D0-33-11   (hex)               Apple, Inc.\r
-D03311     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-84-7D-50   (hex)               Holley Metering Limited\r
-847D50     (base 16)           Holley Metering Limited\r
-                               181 Wuchang Avenue\r
-                               Hangzhou  Zhejiang  310023\r
-                               CN\r
-\r
-6C-4A-39   (hex)               BITA\r
-6C4A39     (base 16)           BITA\r
-                               6/F, New Century Hotel Office Tower\r
-                                 BEI JING  100044\r
-                               CN\r
-\r
-C8-B5-B7   (hex)               Apple, Inc.\r
-C8B5B7     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-A8-BB-CF   (hex)               Apple, Inc.\r
-A8BBCF     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-90-B2-1F   (hex)               Apple, Inc.\r
-90B21F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-B8-E8-56   (hex)               Apple, Inc.\r
-B8E856     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-14-99-E2   (hex)               Apple, Inc.\r
-1499E2     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-04-21-4C   (hex)               Insight Energy Ventures LLC\r
-04214C     (base 16)           Insight Energy Ventures LLC\r
-                               123 W. Fifth St\r
-                               Royal Oak  MI  48067\r
-                               US\r
-\r
-B4-18-D1   (hex)               Apple, Inc.\r
-B418D1     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-80-00-6E   (hex)               Apple, Inc.\r
-80006E     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-60-D9-C7   (hex)               Apple, Inc.\r
-60D9C7     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-C8-F6-50   (hex)               Apple, Inc.\r
-C8F650     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-1C-1A-C0   (hex)               Apple, Inc.\r
-1C1AC0     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-E0-66-78   (hex)               Apple, Inc.\r
-E06678     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-5C-8D-4E   (hex)               Apple, Inc.\r
-5C8D4E     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-64-A3-CB   (hex)               Apple, Inc.\r
-64A3CB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-44-FB-42   (hex)               Apple, Inc.\r
-44FB42     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-F4-1B-A1   (hex)               Apple, Inc.\r
-F41BA1     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-3C-E0-72   (hex)               Apple, Inc.\r
-3CE072     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-E8-8D-28   (hex)               Apple, Inc.\r
-E88D28     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-CC-78-5F   (hex)               Apple, Inc.\r
-CC785F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-AC-3C-0B   (hex)               Apple, Inc.\r
-AC3C0B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-88-CB-87   (hex)               Apple, Inc.\r
-88CB87     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-EC-35-86   (hex)               Apple, Inc.\r
-EC3586     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-F0-C1-F1   (hex)               Apple, Inc.\r
-F0C1F1     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-F4-F9-51   (hex)               Apple, Inc.\r
-F4F951     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-18-AF-8F   (hex)               Apple, Inc.\r
-18AF8F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-C0-F2-FB   (hex)               Apple, Inc.\r
-C0F2FB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-00-F7-6F   (hex)               Apple, Inc.\r
-00F76F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-AC-87-A3   (hex)               Apple, Inc.\r
-AC87A3     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-48-43-7C   (hex)               Apple, Inc.\r
-48437C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-34-A3-95   (hex)               Apple, Inc.\r
-34A395     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-9C-F3-87   (hex)               Apple, Inc.\r
-9CF387     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-A8-5B-78   (hex)               Apple, Inc.\r
-A85B78     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-90-8D-6C   (hex)               Apple, Inc.\r
-908D6C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-0C-15-39   (hex)               Apple, Inc.\r
-0C1539     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-BC-4C-C4   (hex)               Apple, Inc.\r
-BC4CC4     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-0C-BC-9F   (hex)               Apple, Inc.\r
-0CBC9F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-A4-5E-60   (hex)               Apple, Inc.\r
-A45E60     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-68-09-27   (hex)               Apple, Inc.\r
-680927     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-60-FA-CD   (hex)               Apple, Inc.\r
-60FACD     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-1C-AB-A7   (hex)               Apple, Inc.\r
-1CABA7     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-8C-FA-BA   (hex)               Apple, Inc.\r
-8CFABA     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-5C-95-AE   (hex)               Apple, Inc.\r
-5C95AE     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-E0-C9-7A   (hex)               Apple, Inc.\r
-E0C97A     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-BC-52-B7   (hex)               Apple, Inc.\r
-BC52B7     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-14-10-9F   (hex)               Apple, Inc.\r
-14109F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-54-26-96   (hex)               Apple, Inc.\r
-542696     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-D8-D1-CB   (hex)               Apple, Inc.\r
-D8D1CB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-4C-8E-CC   (hex)               SILKAN SA\r
-4C8ECC     (base 16)           SILKAN SA\r
-                               Immeuble le Sirius\r
-                               Meudon La Foret  Ile de France  92360\r
-                               FR\r
-\r
-98-F4-28   (hex)               zte corporation\r
-98F428     (base 16)           zte corporation\r
-                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
-                               shenzhen  guangdong  518057\r
-                               CN\r
-\r
-7C-5A-67   (hex)               JNC Systems, Inc.\r
-7C5A67     (base 16)           JNC Systems, Inc.\r
-                               #611, Gyeonggi Venture Yeonsung University\r
-                               Anyang-si  Gyeonggi-do  430731\r
-                               KR\r
-\r
-C4-BB-EA   (hex)               Pakedge Device and Software Inc\r
-C4BBEA     (base 16)           Pakedge Device and Software Inc\r
-                               3847 Breakwater Ave\r
-                               Hayward  CA  94545\r
-                               US\r
-\r
-84-10-0D   (hex)               Motorola Mobility LLC, a Lenovo Company\r
-84100D     (base 16)           Motorola Mobility LLC, a Lenovo Company\r
-                               222 West Merchandise Mart Plaza\r
-                               Chicago  IL  60654\r
-                               US\r
-\r
-D8-8B-4C   (hex)               KingTing Tech.\r
-D88B4C     (base 16)           KingTing Tech.\r
-                               8 Holly St\r
-                               Irvine  California  92612\r
-                               US\r
-\r
-6C-93-54   (hex)               Yaojin Technology (Shenzhen) Co., LTD.\r
-6C9354     (base 16)           Yaojin Technology (Shenzhen) Co., LTD.\r
-                                No.18,Zhulong Tian Road,Shuitian No.4 Industrial Area,Shiyan Street, Baoan District,Shenzhen,China\r
-                               Shenzhen  Guangdong  518108\r
-                               CN\r
-\r
-40-54-E4   (hex)               Wearsafe Labs Inc\r
-4054E4     (base 16)           Wearsafe Labs Inc\r
-                               1429 Park Street\r
-                               Hartford  CT  06106\r
-                               US\r
-\r
-8C-E2-DA   (hex)               Circle Media Inc\r
-8CE2DA     (base 16)           Circle Media Inc\r
-                               1319 SE Martin Luther King Jr. Blvd.\r
-                               Portland  Oregon  97214\r
+8C-E2-DA   (hex)               Circle Media Inc\r
+8CE2DA     (base 16)           Circle Media Inc\r
+                               1319 SE Martin Luther King Jr. Blvd.\r
+                               Portland  Oregon  97214\r
                                US\r
 \r
 74-D7-CA   (hex)               Panasonic Corporation Automotive\r
@@ -30515,12 +30347,6 @@ D48304     (base 16)           SHENZHEN FAST TECHNOLOGIES CO.,LTD
                                Lawrenceville  GA  30044\r
                                US\r
 \r
-54-4E-90   (hex)               Apple, Inc.\r
-544E90     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 58-FC-73   (hex)               Arria Live Media, Inc.\r
 58FC73     (base 16)           Arria Live Media, Inc.\r
                                2388 NE Lindsey Drive\r
@@ -30533,18 +30359,6 @@ D48304     (base 16)           SHENZHEN FAST TECHNOLOGIES CO.,LTD
                                Changsha  Hunan  410208\r
                                CN\r
 \r
-5C-AD-CF   (hex)               Apple, Inc.\r
-5CADCF     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-00-6D-52   (hex)               Apple, Inc.\r
-006D52     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 D8-88-CE   (hex)               RF Technology Pty Ltd\r
 D888CE     (base 16)           RF Technology Pty Ltd\r
                                46/7 Sefton Rd\r
@@ -30605,12 +30419,6 @@ DCA3AC     (base 16)           RBcloudtech
                                Dalian  Liaoning  116600\r
                                CN\r
 \r
-0C-91-60   (hex)               Hui Zhou Gaoshengda Technology Co.,LTD\r
-0C9160     (base 16)           Hui Zhou Gaoshengda Technology Co.,LTD\r
-                               No.75,Zhongkai High-Tech Development District,Huizhou\r
-                               Hui Zhou  Guangdong  516006\r
-                               CN\r
-\r
 EC-A9-FA   (hex)               GUANGDONG GENIUS TECHNOLOGY CO.,LTD.\r
 ECA9FA     (base 16)           GUANGDONG GENIUS TECHNOLOGY CO.,LTD.\r
                                #126,BBK Road,Wusha,Chang'An\r
@@ -39800,12 +39608,6 @@ D0D286     (base 16)           Beckman Coulter K.K.
                                Ljubljana  Slovenia  1000\r
                                SI\r
 \r
-00-1B-D8   (hex)               DVTel LTD\r
-001BD8     (base 16)           DVTel LTD\r
-                               5 Sapir\r
-                               46852  Herzelia  \r
-                               IL\r
-\r
 00-1B-CC   (hex)               KINGTEK CCTV ALLIANCE CO., LTD.\r
 001BCC     (base 16)           KINGTEK CCTV ALLIANCE CO., LTD.\r
                                5F-3, NO. 106, SEC. 3, HSIN YI ROAD\r
@@ -46019,12 +45821,6 @@ D0D286     (base 16)           Beckman Coulter K.K.
                                Mountain View  CA  94041\r
                                US\r
 \r
-00-03-97   (hex)               Watchfront Limited\r
-000397     (base 16)           Watchfront Limited\r
-                               3 Victoria Walk\r
-                               Wokingham    RG40 5YL\r
-                               GB\r
-\r
 00-03-9E   (hex)               Tera System Co., Ltd.\r
 00039E     (base 16)           Tera System Co., Ltd.\r
                                Doosung B/F Rm 302\r
@@ -46811,12 +46607,6 @@ D0D286     (base 16)           Beckman Coulter K.K.
                                    \r
                                IL\r
 \r
-00-01-B9   (hex)               SKF Condition Monitoring\r
-0001B9     (base 16)           SKF Condition Monitoring\r
-                               4141 Ruffin Road\r
-                               San Diego  CA  92123\r
-                               US\r
-\r
 00-01-B5   (hex)               Turin Networks, Inc.\r
 0001B5     (base 16)           Turin Networks, Inc.\r
                                1415 North McDowell Blvd.\r
@@ -51932,12 +51722,6 @@ A444D1     (base 16)            Wingtech Group (HongKong)Limited
                                Hong Kong  Hong Kong  999077\r
                                HK\r
 \r
-1C-9E-46   (hex)               Apple, Inc.\r
-1C9E46     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 00-50-58   (hex)               Sangoma Technologies\r
 005058     (base 16)           Sangoma Technologies\r
                                100 Renfrew Drive, Suite 100\r
@@ -52004,12 +51788,6 @@ E45D75     (base 16)           Samsung Electronics Co.,Ltd
                                Shanghai  Shanghai  200072\r
                                CN\r
 \r
-E0-C7-67   (hex)               Apple, Inc.\r
-E0C767     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 2C-09-CB   (hex)               COBS AB\r
 2C09CB     (base 16)           COBS AB\r
                                Box 9242\r
@@ -52601,42 +52379,6 @@ D8209F     (base 16)           Cubro Acronet GesmbH
                                Vienna  Vienna  1110\r
                                AT\r
 \r
-A8-60-B6   (hex)               Apple, Inc.\r
-A860B6     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-24-F0-94   (hex)               Apple, Inc.\r
-24F094     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-90-B0-ED   (hex)               Apple, Inc.\r
-90B0ED     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-C4-B3-01   (hex)               Apple, Inc.\r
-C4B301     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-E0-5F-45   (hex)               Apple, Inc.\r
-E05F45     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-48-3B-38   (hex)               Apple, Inc.\r
-483B38     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 E4-7B-3F   (hex)               BEIJING CO-CLOUD TECHNOLOGY LTD.\r
 E47B3F     (base 16)           BEIJING CO-CLOUD TECHNOLOGY LTD.\r
                                903 Room,Power Create E ,No.1 Shangdi East Road\r
@@ -53693,42 +53435,12 @@ F01DBC     (base 16)          Microsoft Corporation
                                REDMOND  WA  98052\r
                                US\r
 \r
-40-4D-7F   (hex)               Apple, Inc.\r
-404D7F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-7C-04-D0   (hex)               Apple, Inc.\r
-7C04D0     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-BC-9F-EF   (hex)               Apple, Inc.\r
-BC9FEF     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-88-66-A5   (hex)               Apple, Inc.\r
-8866A5     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 AC-DC-E5   (hex)               Procter & Gamble Company\r
 ACDCE5     (base 16)           Procter & Gamble Company\r
                                2 Procter & Gamble Plaza\r
                                Cincinnati  OH  45202\r
                                US\r
 \r
-78-4F-43   (hex)               Apple, Inc.\r
-784F43     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 98-D2-93   (hex)               Google, Inc.\r
 98D293     (base 16)           Google, Inc.\r
                                1600 Amphitheatre Parkway\r
@@ -54095,12 +53807,6 @@ BC60A7     (base 16)           Sony Interactive Entertainment Inc.
                                Palo Alto  CA  94301\r
                                US\r
 \r
-20-F5-43   (hex)               Hui Zhou Gaoshengda Technology Co.,LTD\r
-20F543     (base 16)           Hui Zhou Gaoshengda Technology Co.,LTD\r
-                               No.75,Zhongkai High-Tech Development District,Huizhou\r
-                               Hui Zhou  Guangdong  516006\r
-                               CN\r
-\r
 68-53-88   (hex)               P&S Technology\r
 685388     (base 16)           P&S Technology\r
                                216 Deajiro\r
@@ -54530,18 +54236,6 @@ BC39D9     (base 16)           Z-TEC
                                Paju  Kyeongkido  10832\r
                                KR\r
 \r
-88-E8-7F   (hex)               Apple, Inc.\r
-88E87F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-B8-53-AC   (hex)               Apple, Inc.\r
-B853AC     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 B0-4B-BF   (hex)               PT HAN SUNG ELECTORONICS INDONESIA\r
 B04BBF     (base 16)           PT HAN SUNG ELECTORONICS INDONESIA\r
                                JL.PALEM 1 BLOK DS-6\r
@@ -54554,12 +54248,6 @@ B04BBF     (base 16)           PT HAN SUNG ELECTORONICS INDONESIA
                                CALGARY, ALBERTA T2E 8M4    \r
                                CA\r
 \r
-2C-33-61   (hex)               Apple, Inc.\r
-2C3361     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 78-B8-4B   (hex)               SICHUAN TIANYI COMHEART TELECOMCO.,LTD\r
 78B84B     (base 16)           SICHUAN TIANYI COMHEART TELECOMCO.,LTD\r
                                FL12,TowerB,Tianyi international Hotel,No.2 West Section One, Second Ring Road,\r
@@ -55133,12 +54821,6 @@ E05163     (base 16)           Arcadyan Corporation
                                Dongguan  Guangdong  523770\r
                                CN\r
 \r
-1C-1E-E3   (hex)               Hui Zhou Gaoshengda Technology Co.,LTD\r
-1C1EE3     (base 16)           Hui Zhou Gaoshengda Technology Co.,LTD\r
-                               No.75,Zhongkai High-Tech Development District,Huizhou\r
-                               Hui Zhou  Guangdong  516006\r
-                               CN\r
-\r
 F0-27-2D   (hex)               Amazon Technologies Inc.\r
 F0272D     (base 16)           Amazon Technologies Inc.\r
                                P.O Box 8102\r
@@ -55223,42 +54905,6 @@ F0D7AA     (base 16)           Motorola Mobility LLC, a Lenovo Company
                                shenzhen  guangdong  518057\r
                                CN\r
 \r
-88-6B-6E   (hex)               Apple, Inc.\r
-886B6E     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-4C-74-BF   (hex)               Apple, Inc.\r
-4C74BF     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-70-F0-87   (hex)               Apple, Inc.\r
-70F087     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-28-57-67   (hex)               Echostar Technologies Corp\r
-285767     (base 16)           Echostar Technologies Corp\r
-                               94 Inverness Terrace E\r
-                               Englewood  CO  80112\r
-                               US\r
-\r
-00-24-AF   (hex)               Echostar Technologies Corp\r
-0024AF     (base 16)           Echostar Technologies Corp\r
-                               94 Inverness Terrace E\r
-                               Englewood  CO  80112\r
-                               US\r
-\r
-04-C9-D9   (hex)               Echostar Technologies Corp\r
-04C9D9     (base 16)           Echostar Technologies Corp\r
-                               94 Inverness Terrace E\r
-                               Englewood  CO  80112\r
-                               US\r
-\r
 D0-49-8B   (hex)               ZOOM SERVER\r
 D0498B     (base 16)           ZOOM SERVER\r
                                North keyuan Road\r
@@ -56279,9 +55925,6 @@ B05508     (base 16)            HUAWEI TECHNOLOGIES CO.,LTD
                                Suwon  Gyeonggi-Do  16677\r
                                KR\r
 \r
-00-A0-85   (hex)               Private\r
-00A085     (base 16)           Private\r
-\r
 AC-DE-48   (hex)               Private\r
 ACDE48     (base 16)           Private\r
 \r
@@ -56555,18 +56198,6 @@ B009DA     (base 16)           Ring Solutions
                                Ningbo  Zhejiang  315202\r
                                CN\r
 \r
-84-41-67   (hex)               Apple, Inc.\r
-844167     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-B4-F6-1C   (hex)               Apple, Inc.\r
-B4F61C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 EC-FA-03   (hex)               FCA\r
 ECFA03     (base 16)           FCA\r
                                800 Chrylser Dr\r
@@ -56969,24 +56600,6 @@ AC84C6     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.
                                Shenzhen  Guangdong  518057\r
                                CN\r
 \r
-E4-9A-DC   (hex)               Apple, Inc.\r
-E49ADC     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-B8-C1-11   (hex)               Apple, Inc.\r
-B8C111     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-34-08-BC   (hex)               Apple, Inc.\r
-3408BC     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 34-D0-B8   (hex)               IEEE Registration Authority\r
 34D0B8     (base 16)           IEEE Registration Authority\r
                                445 Hoes Lane\r
@@ -57533,575 +57146,1646 @@ CC3ADF     (base 16)               Neptune Technology Group Inc.
                                Hsinchu  Taiwan ROC.  30352 \r
                                TW\r
 \r
-58-46-E1   (hex)               Baxter International Inc\r
-5846E1     (base 16)           Baxter International Inc\r
-                               One Baxter Parkway\r
-                               Deerfield  IL  60015\r
+A8-5B-78   (hex)               Apple, Inc.\r
+A85B78     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-D0-BD   (hex)               Lattice Semiconductor Corp. (LPA)\r
-00D0BD     (base 16)           Lattice Semiconductor Corp. (LPA)\r
-                               2115 O’Nel Drive\r
-                               San Jose  CA  95131\r
+9C-F3-87   (hex)               Apple, Inc.\r
+9CF387     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-F0-82-61   (hex)               Sagemcom Broadband SAS\r
-F08261     (base 16)           Sagemcom Broadband SAS\r
-                               250 route de l'Empereur\r
-                               Rueil Malmaison  HAUTS DE SEINE  92848\r
-                               FR\r
-\r
-D0-84-B0   (hex)               Sagemcom Broadband SAS\r
-D084B0     (base 16)           Sagemcom Broadband SAS\r
-                               250 route de l'Empereur\r
-                               Rueil Malmaison  HAUTS DE SEINE  92848\r
-                               FR\r
+34-A3-95   (hex)               Apple, Inc.\r
+34A395     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-FE-C8   (hex)               Cisco Systems, Inc\r
-00FEC8     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
+48-43-7C   (hex)               Apple, Inc.\r
+48437C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-EC-22-80   (hex)               D-Link International\r
-EC2280     (base 16)           D-Link International\r
-                               1 Internal Business Park, #03-12,\r
-                               SINGAPORE  Singapore  609917\r
-                               SG\r
+AC-87-A3   (hex)               Apple, Inc.\r
+AC87A3     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-04-78-63   (hex)               Shanghai MXCHIP Information Technology Co., Ltd.\r
-047863     (base 16)           Shanghai MXCHIP Information Technology Co., Ltd.\r
-                               9th Floor, No. 5 Building, 2145 Jinshajiang Rd., Putuo District\r
-                               Shanghai    200333\r
-                               CN\r
+00-F7-6F   (hex)               Apple, Inc.\r
+00F76F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-24-BA-13   (hex)               RISO KAGAKU CORPORATION\r
-24BA13     (base 16)           RISO KAGAKU CORPORATION\r
-                               2-8-1 Gakuen-minami\r
-                               Thukuba-shi  Ibaraki  305-0818\r
-                               JP\r
+A4-5E-60   (hex)               Apple, Inc.\r
+A45E60     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-24-DA-11   (hex)               NO NDA Inc\r
-24DA11     (base 16)           NO NDA Inc\r
-                               828 Bryant St \r
-                               Palo Alto  IA  94301\r
+0C-BC-9F   (hex)               Apple, Inc.\r
+0CBC9F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-70-CA-4D   (hex)               Shenzhen lnovance Technology Co.,Ltd.\r
-70CA4D     (base 16)           Shenzhen lnovance Technology Co.,Ltd.\r
-                               LiuXian 2 Road\r
-                               Shenzhen  Guangdong  518000\r
-                               CN\r
+BC-4C-C4   (hex)               Apple, Inc.\r
+BC4CC4     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-DC-C0-EB   (hex)               ASSA ABLOY CÔTE PICARDE\r
-DCC0EB     (base 16)           ASSA ABLOY CÔTE PICARDE\r
-                               rue Alexandre Fichet\r
-                               Oust-Marest    80460\r
-                               FR\r
+0C-15-39   (hex)               Apple, Inc.\r
+0C1539     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-17-35   (hex)               Intel Wireless Network Group\r
-001735     (base 16)           Intel Wireless Network Group\r
-                               2111 NE 25th Ave\r
-                               Hillsboro  OR  97124\r
+90-8D-6C   (hex)               Apple, Inc.\r
+908D6C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-9C-DF-B1   (hex)               Shenzhen Crave Communication Co., LTD\r
-9CDFB1     (base 16)           Shenzhen Crave Communication Co., LTD\r
-                               F3,8Building,DongFangMing IndustryZone,No.83 DabaoRD.,33 District BaoAn\r
-                               Shenzhen  Guangdong  518000\r
-                               CN\r
+D0-33-11   (hex)               Apple, Inc.\r
+D03311     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-5C-F9-38   (hex)               Apple, Inc.\r
-5CF938     (base 16)           Apple, Inc.\r
+70-E7-2C   (hex)               Apple, Inc.\r
+70E72C     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-38-71-DE   (hex)               Apple, Inc.\r
-3871DE     (base 16)           Apple, Inc.\r
+C0-CE-CD   (hex)               Apple, Inc.\r
+C0CECD     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-BC-54-36   (hex)               Apple, Inc.\r
-BC5436     (base 16)           Apple, Inc.\r
+98-E0-D9   (hex)               Apple, Inc.\r
+98E0D9     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-0C-C7-31   (hex)               Currant, Inc.\r
-0CC731     (base 16)           Currant, Inc.\r
-                               927 Industrial Ave\r
-                               Palo Alto  CA  94303\r
+E0-AC-CB   (hex)               Apple, Inc.\r
+E0ACCB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-14-2F   (hex)               Savvius\r
-00142F     (base 16)           Savvius\r
-                               1340 Treat Boulevard, Suite 500\r
-                               Walnut Creek  CA  94597\r
+78-D7-5F   (hex)               Apple, Inc.\r
+78D75F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-2C-DD-A3   (hex)               Point Grey Research Inc.\r
-2CDDA3     (base 16)           Point Grey Research Inc.\r
-                               305-1847 West Broadway\r
-                               Vancouver  British Columbia V6J 1Y6  \r
-                               CA\r
+20-78-F0   (hex)               Apple, Inc.\r
+2078F0     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-24-FD-5B   (hex)               SmartThings, Inc.\r
-24FD5B     (base 16)           SmartThings, Inc.\r
-                               456 University Avenue\r
-                               Palo Alto  CA  94301\r
+98-5A-EB   (hex)               Apple, Inc.\r
+985AEB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-28-76-CD   (hex)               Funshion Online Technologies Co.,Ltd\r
-2876CD     (base 16)           Funshion Online Technologies Co.,Ltd\r
-                               Tower B 1201, Jinqiu International Building, No.6, Zhichun Road, Haidian District\r
-                               Beijing    100088\r
-                               CN\r
+54-4E-90   (hex)               Apple, Inc.\r
+544E90     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-F4-F5-D8   (hex)               Google, Inc.\r
-F4F5D8     (base 16)           Google, Inc.\r
-                               1600 Amphitheatre Parkway\r
-                               Mountain View  CA  94043\r
+00-6D-52   (hex)               Apple, Inc.\r
+006D52     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-F4-F5-E8   (hex)               Google, Inc.\r
-F4F5E8     (base 16)           Google, Inc.\r
-                               1600 Amphitheatre Parkway\r
-                               Mountain View    94043\r
+5C-AD-CF   (hex)               Apple, Inc.\r
+5CADCF     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-F8-8F-CA   (hex)               Google, Inc.\r
-F88FCA     (base 16)           Google, Inc.\r
-                               1600 Amphitheatre Parkway\r
-                               Mountain View    94043\r
+B8-E8-56   (hex)               Apple, Inc.\r
+B8E856     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-BC-D1-D3   (hex)               Shenzhen TINNO Mobile Technology Corp.\r
-BCD1D3     (base 16)           Shenzhen TINNO Mobile Technology Corp.\r
-                               4/F.,H-3 Building,OCT Eastern lndustrial Park.\r
-                               Nanshan, Shenzhen  GUANGDONG  518053\r
-                               CN\r
+90-B2-1F   (hex)               Apple, Inc.\r
+90B21F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-BC-44-34   (hex)               Shenzhen TINNO Mobile Technology Corp.\r
-BC4434     (base 16)           Shenzhen TINNO Mobile Technology Corp.\r
-                               4/F, H-3 Building, Qiao Cheng Eastern Industrial Park, Overseas Chinese Town, Shenzhen \r
-                               Shenzhen   guangdong  518053\r
-                               CN\r
+A8-BB-CF   (hex)               Apple, Inc.\r
+A8BBCF     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-41-D2   (hex)               Cisco Systems, Inc\r
-0041D2     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
+C8-B5-B7   (hex)               Apple, Inc.\r
+C8B5B7     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-4C-FB-45   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-4CFB45     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan  Guangdong  523808 \r
-                               CN\r
+18-AF-8F   (hex)               Apple, Inc.\r
+18AF8F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-A4-BA-76   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-A4BA76     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan  Guangdong  523808 \r
-                               CN\r
+F4-F9-51   (hex)               Apple, Inc.\r
+F4F951     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-78-E3-B5   (hex)               Hewlett Packard\r
-78E3B5     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+F0-C1-F1   (hex)               Apple, Inc.\r
+F0C1F1     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-98-4B-E1   (hex)               Hewlett Packard\r
-984BE1     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+98-03-D8   (hex)               Apple, Inc.\r
+9803D8     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-68-B5-99   (hex)               Hewlett Packard\r
-68B599     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+C8-2A-14   (hex)               Apple, Inc.\r
+C82A14     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-14-D6-4D   (hex)               D-Link International\r
-14D64D     (base 16)           D-Link International\r
-                               1 INTERNATIONAL BUSINESS PARK\r
-                               SINGAPORE    609917\r
-                               SG\r
+88-C6-63   (hex)               Apple, Inc.\r
+88C663     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-C8-BE-19   (hex)               D-Link International\r
-C8BE19     (base 16)           D-Link International\r
-                               1 International Business Park, #03-12, The Synergy \r
-                               SINGAPORE    609917\r
-                               SG\r
+8C-7B-9D   (hex)               Apple, Inc.\r
+8C7B9D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-BC-F6-85   (hex)               D-Link International\r
-BCF685     (base 16)           D-Link International\r
-                               1 International Business Park, #03-12, The Synergy \r
-                               SINGAPORE    609917\r
-                               SG\r
+58-55-CA   (hex)               Apple, Inc.\r
+5855CA     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-CC-B2-55   (hex)               D-Link International\r
-CCB255     (base 16)           D-Link International\r
-                               1 International Business Park, #03-12, The Synergy \r
-                               SINGAPORE    609917\r
-                               SG\r
+CC-08-E0   (hex)               Apple, Inc.\r
+CC08E0     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-84-C9-B2   (hex)               D-Link International\r
-84C9B2     (base 16)           D-Link International\r
-                               1 International Business Park, #03-12, The Synergy \r
-                               SINGAPORE    609917\r
-                               SG\r
+E8-06-88   (hex)               Apple, Inc.\r
+E80688     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-DC-D3-21   (hex)               HUMAX Co., Ltd.\r
-DCD321     (base 16)           HUMAX Co., Ltd.\r
-                               HUMAX Village, 11-4, Sunae-dong, Bundang-gu\r
-                               Seongnam-si  Gyeonggi-do  463-825\r
-                               KR\r
+B8-17-C2   (hex)               Apple, Inc.\r
+B817C2     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-CC-4E-EC   (hex)               HUMAX Co., Ltd.\r
-CC4EEC     (base 16)           HUMAX Co., Ltd.\r
-                               HUMAX Village, 216, Hwangsaeul-ro, Bundang-gu,\r
-                               Seongnam-si  Gyeonggi-do  463-875\r
-                               KR\r
+B8-8D-12   (hex)               Apple, Inc.\r
+B88D12     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-DC-33-0D   (hex)               Qingdao Haier Telecom Co.,Ltd\r
-DC330D     (base 16)           Qingdao Haier Telecom Co.,Ltd\r
-                               No 1  Haier road,Hi-tech Zone,Qingdao,PR.China\r
-                               Qingdao  Shandong  266101\r
-                               CN\r
+D0-23-DB   (hex)               Apple, Inc.\r
+D023DB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-80-E1   (hex)               STMicroelectronics SRL\r
-0080E1     (base 16)           STMicroelectronics SRL\r
-                               1000 AZTEC WEST\r
-                               london    12345\r
-                               GB\r
+E0-B9-BA   (hex)               Apple, Inc.\r
+E0B9BA     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-58-DC-6D   (hex)               Exceptional Innovation, Inc.\r
-58DC6D     (base 16)           Exceptional Innovation, Inc.\r
-                               480 Olde Worthington Rd, Suite 350\r
-                               Westerville  OH  43082\r
+34-51-C9   (hex)               Apple, Inc.\r
+3451C9     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-09-2D   (hex)               HTC Corporation\r
-00092D     (base 16)           HTC Corporation\r
-                               No.23 Xinghua Road,\r
-                               Taoyuan County     330\r
-                               TW\r
+8C-58-77   (hex)               Apple, Inc.\r
+8C5877     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-F8-DB-7F   (hex)               HTC Corporation\r
-F8DB7F     (base 16)           HTC Corporation\r
-                               No.23 Xinghua Road\r
-                               Taoyuan County    330\r
-                               TW\r
+C0-F2-FB   (hex)               Apple, Inc.\r
+C0F2FB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-E8-99-C4   (hex)               HTC Corporation\r
-E899C4     (base 16)           HTC Corporation\r
-                               No. 23, Xinghua Rd., Taoyuan City\r
-                               Taoyuan County  Taiwan  330\r
-                               TW\r
+5C-8D-4E   (hex)               Apple, Inc.\r
+5C8D4E     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-7C-B1-5D   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
-7CB15D     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
-                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
-                               Dongguan  Guangdong  523808 \r
-                               CN\r
+E0-66-78   (hex)               Apple, Inc.\r
+E06678     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-18-68-6A   (hex)               zte corporation\r
-18686A     (base 16)           zte corporation\r
-                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
-                               shenzhen  guangdong  518057\r
-                               CN\r
+1C-1A-C0   (hex)               Apple, Inc.\r
+1C1AC0     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-0C-05-35   (hex)               Juniper Systems\r
-0C0535     (base 16)           Juniper Systems\r
-                               1132 W. 1700 N.\r
-                               Logan  UT  84321\r
+C8-F6-50   (hex)               Apple, Inc.\r
+C8F650     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-8C-F2-28   (hex)               SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
-8CF228     (base 16)           SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
-                               Mid-Fourth Flr.,Building 28,Cui Xi Fourth Road,Ke Yuan West,Nanshan\r
-                               Shenzhen  Guangdong  518057\r
-                               CN\r
+60-D9-C7   (hex)               Apple, Inc.\r
+60D9C7     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-88-51-FB   (hex)               Hewlett Packard\r
-8851FB     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+3C-E0-72   (hex)               Apple, Inc.\r
+3CE072     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-AC-16-2D   (hex)               Hewlett Packard\r
-AC162D     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+F4-1B-A1   (hex)               Apple, Inc.\r
+F41BA1     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-A0-B3-CC   (hex)               Hewlett Packard\r
-A0B3CC     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+44-FB-42   (hex)               Apple, Inc.\r
+44FB42     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-E4-11-5B   (hex)               Hewlett Packard\r
-E4115B     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+64-A3-CB   (hex)               Apple, Inc.\r
+64A3CB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-C8-CB-B8   (hex)               Hewlett Packard\r
-C8CBB8     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+D8-D1-CB   (hex)               Apple, Inc.\r
+D8D1CB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-94-57-A5   (hex)               Hewlett Packard\r
-9457A5     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+54-26-96   (hex)               Apple, Inc.\r
+542696     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-01-E7   (hex)               Hewlett Packard\r
-0001E7     (base 16)           Hewlett Packard\r
-                               11000 Wolfe Road, Mailstop 42LE\r
+EC-35-86   (hex)               Apple, Inc.\r
+EC3586     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-08-00-09   (hex)               Hewlett Packard\r
-080009     (base 16)           Hewlett Packard\r
-                               ENTERPRISE SYSTEMS TECH.CENTER\r
-                               CUPERTINO  CA  95014\r
+88-CB-87   (hex)               Apple, Inc.\r
+88CB87     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-80-A0   (hex)               Hewlett Packard\r
-0080A0     (base 16)           Hewlett Packard\r
-                               ALAMEDA RIO NEGRO,\r
-                               houston  tx  77070\r
-                               BR\r
+AC-3C-0B   (hex)               Apple, Inc.\r
+AC3C0B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-D4-85-64   (hex)               Hewlett Packard\r
-D48564     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+CC-78-5F   (hex)               Apple, Inc.\r
+CC785F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-3C-4A-92   (hex)               Hewlett Packard\r
-3C4A92     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+E8-8D-28   (hex)               Apple, Inc.\r
+E88D28     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-78-0A-C7   (hex)               Baofeng TV Co., Ltd.\r
-780AC7     (base 16)           Baofeng TV Co., Ltd.\r
-                               Room 2D, Building 5D, Nanshan District Software Industry Base\r
-                               ShenZhen  GuangDong  518000\r
-                               CN\r
+14-10-9F   (hex)               Apple, Inc.\r
+14109F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-1D-73   (hex)               BUFFALO.INC\r
-001D73     (base 16)           BUFFALO.INC\r
-                               15,Shibata Hondori 4-chome,\r
-                               Nagoya  Aichi Pref.  457-8520\r
-                               JP\r
+BC-52-B7   (hex)               Apple, Inc.\r
+BC52B7     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-16-01   (hex)               BUFFALO.INC\r
-001601     (base 16)           BUFFALO.INC\r
-                               AKAMONDORI Bldg., 30-20,Ohsu 3-chome\r
-                               Naka-ku,Nagoya  Aichi Pref.  460-8315\r
-                               JP\r
+E0-C9-7A   (hex)               Apple, Inc.\r
+E0C97A     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-10-6F-3F   (hex)               BUFFALO.INC\r
-106F3F     (base 16)           BUFFALO.INC\r
-                               AKAMONDORI Bldg., 30-20,Ohsu 3-chome\r
-                               Naka-ku,Nagoya  Aichi Pref.  460-8315\r
-                               JP\r
+5C-95-AE   (hex)               Apple, Inc.\r
+5C95AE     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-88-57-EE   (hex)               BUFFALO.INC\r
-8857EE     (base 16)           BUFFALO.INC\r
-                               AKAMONDORI Bld.,30-20,Ohsu 3-chome,Naka-ku\r
-                               Nagoya  Aichi Pref.  460-8315\r
-                               JP\r
+8C-FA-BA   (hex)               Apple, Inc.\r
+8CFABA     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-9C-02   (hex)               Hewlett Packard\r
-009C02     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+1C-AB-A7   (hex)               Apple, Inc.\r
+1CABA7     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-78-E7-D1   (hex)               Hewlett Packard\r
-78E7D1     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+60-FA-CD   (hex)               Apple, Inc.\r
+60FACD     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-1B-78   (hex)               Hewlett Packard\r
-001B78     (base 16)           Hewlett Packard\r
-                               20555 State Highway 249\r
-                               Houston  TX  77070\r
+68-09-27   (hex)               Apple, Inc.\r
+680927     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-1E-0B   (hex)               Hewlett Packard\r
-001E0B     (base 16)           Hewlett Packard\r
-                               20555 State Highway 249\r
-                               Houston  TX  77070\r
+78-A3-E4   (hex)               Apple, Inc.\r
+78A3E4     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-2C-6E-85   (hex)               Intel Corporate\r
-2C6E85     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3\r
-                               Kulim  Kedah  09000\r
-                               MY\r
+68-A8-6D   (hex)               Apple, Inc.\r
+68A86D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-D0-B7   (hex)               Intel Corporation\r
-00D0B7     (base 16)           Intel Corporation\r
-                               5200 NE ELAM YOUNG PARKWAY\r
-                               HILLSBORO  OR  97124\r
+80-00-6E   (hex)               Apple, Inc.\r
+80006E     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-02-B3   (hex)               Intel Corporation\r
-0002B3     (base 16)           Intel Corporation\r
-                               M/S:  JF3-420\r
-                               Hillsboro  OR  97124\r
+B4-18-D1   (hex)               Apple, Inc.\r
+B418D1     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-11-11   (hex)               Intel Corporation\r
-001111     (base 16)           Intel Corporation\r
-                               2111 NE 25th Avenue\r
-                               Hillsboro  OR  97124\r
+14-99-E2   (hex)               Apple, Inc.\r
+1499E2     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-13-20   (hex)               Intel Corporate\r
-001320     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-tech 2/3\r
-                               Kulim  Kedah  09000\r
-                               MY\r
+1C-9E-46   (hex)               Apple, Inc.\r
+1C9E46     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-12-F0   (hex)               Intel Corporate\r
-0012F0     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-tech 2/3\r
-                               Kulim  Kedah  09000\r
-                               MY\r
+E0-C7-67   (hex)               Apple, Inc.\r
+E0C767     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-90-49-FA   (hex)               Intel Corporate\r
-9049FA     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3\r
-                               Kulim  Kedah  09000\r
-                               MY\r
+A8-60-B6   (hex)               Apple, Inc.\r
+A860B6     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-C8-34-8E   (hex)               Intel Corporate\r
-C8348E     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3\r
-                               Kulim  Kedah  09000\r
-                               MY\r
+24-F0-94   (hex)               Apple, Inc.\r
+24F094     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-50-8B   (hex)               Hewlett Packard\r
-00508B     (base 16)           Hewlett Packard\r
-                               20555 State Highway 249\r
-                               Houston  TX  77070\r
+90-B0-ED   (hex)               Apple, Inc.\r
+90B0ED     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-78-48-59   (hex)               Hewlett Packard\r
-784859     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+C4-B3-01   (hex)               Apple, Inc.\r
+C4B301     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-14-58-D0   (hex)               Hewlett Packard\r
-1458D0     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+E0-5F-45   (hex)               Apple, Inc.\r
+E05F45     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-50-65-F3   (hex)               Hewlett Packard\r
-5065F3     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+48-3B-38   (hex)               Apple, Inc.\r
+483B38     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-A0-48-1C   (hex)               Hewlett Packard\r
-A0481C     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+88-E8-7F   (hex)               Apple, Inc.\r
+88E87F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-A0-1D-48   (hex)               Hewlett Packard\r
-A01D48     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston    77070\r
+B8-53-AC   (hex)               Apple, Inc.\r
+B853AC     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-94-B2-CC   (hex)               PIONEER CORPORATION\r
-94B2CC     (base 16)           PIONEER CORPORATION\r
-                               1-1 Shin-ogura\r
-                               Kawasaki-shi  Kanagawa Prefecture  2120031\r
-                               JP\r
+2C-33-61   (hex)               Apple, Inc.\r
+2C3361     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-88-7F-03   (hex)               Comper Technology Investment Limited\r
-887F03     (base 16)           Comper Technology Investment Limited\r
-                               Room 710, Wangjing SOHO Tower 1-B\r
-                               Beijing  Beijing  100102\r
-                               CN\r
+00-0A-27   (hex)               Apple, Inc.\r
+000A27     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-E0-60-66   (hex)               Sercomm Corporation\r
-E06066     (base 16)           Sercomm Corporation\r
-                               8F, 3-1, YuanQu St., NanKang,\r
-                               Taipei  Taiwan  115\r
-                               TW\r
+00-30-65   (hex)               Apple, Inc.\r
+003065     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-19-E0   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
-0019E0     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
-                               South Building, No.5 Keyuan Road\r
-                               Nanshan  Shenzhen  518057\r
-                               CN\r
+00-50-E4   (hex)               Apple, Inc.\r
+0050E4     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-23-CD   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
-0023CD     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
-                               South Building, No.5 Keyuan Road, Central Zone,\r
-                               Shenzhen  Guangdong  518000\r
-                               CN\r
+BC-92-6B   (hex)               Apple, Inc.\r
+BC926B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-27-19   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
-002719     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
-                               Building 7, Second Part, Honghualing Industrial Zone\r
-                               Shenzhen  Guangdong  518057\r
-                               CN\r
+04-52-F3   (hex)               Apple, Inc.\r
+0452F3     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-40-16-9F   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
-40169F     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
-                               1-6F, Building 2, Pingshandayuan Industrial, South Zone,\r
-                               Shenzhen  Guangdong  518000\r
-                               CN\r
+24-1E-EB   (hex)               Apple, Inc.\r
+241EEB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-94-0C-6D   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
-940C6D     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
-                               Building 7, Second Part, Honghualing Industrial Zone\r
-                               Shenzhen  Guangdong  518000\r
-                               CN\r
+F4-31-C3   (hex)               Apple, Inc.\r
+F431C3     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-74-EA-3A   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
-74EA3A     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
-                               Building 7, Second Part, Honghualing Industrial Zone\r
-                               Shenzhen  Guangdong  518000\r
-                               CN\r
+64-A5-C3   (hex)               Apple, Inc.\r
+64A5C3     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-90-F6-52   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
-90F652     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
-                               Building 24 (floors 1,3,4,5) and 28 (floors1-4)  Central Science and Technology Park,Shennan Rd, Nanshan,\r
-                               Shenzhen  Guangdong Province,  518057\r
-                               CN\r
+60-69-44   (hex)               Apple, Inc.\r
+606944     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-10-FE-ED   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
-10FEED     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
-                               Building 24 (floors 1,3,4,5) and 28 (floors1-4)  Central Science and Technology Park\r
-                               Shenzhen  Guangdong  518057\r
-                               CN\r
+E4-98-D6   (hex)               Apple, Inc.\r
+E498D6     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-C4-6E-1F   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
-C46E1F     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
-                               Building 24 (floors 1,3,4,5) and 28 (floors1-4)\r
-                               Shennan Rd, Nanshan  Shenzhen,Guangdong Province  518057\r
-                               CN\r
+0C-D7-46   (hex)               Apple, Inc.\r
+0CD746     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+44-00-10   (hex)               Apple, Inc.\r
+440010     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+78-4F-43   (hex)               Apple, Inc.\r
+784F43     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+40-4D-7F   (hex)               Apple, Inc.\r
+404D7F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+7C-04-D0   (hex)               Apple, Inc.\r
+7C04D0     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+BC-9F-EF   (hex)               Apple, Inc.\r
+BC9FEF     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+88-66-A5   (hex)               Apple, Inc.\r
+8866A5     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+70-F0-87   (hex)               Apple, Inc.\r
+70F087     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+88-6B-6E   (hex)               Apple, Inc.\r
+886B6E     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+4C-74-BF   (hex)               Apple, Inc.\r
+4C74BF     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+84-41-67   (hex)               Apple, Inc.\r
+844167     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+B4-F6-1C   (hex)               Apple, Inc.\r
+B4F61C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+E4-9A-DC   (hex)               Apple, Inc.\r
+E49ADC     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+B8-C1-11   (hex)               Apple, Inc.\r
+B8C111     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+34-08-BC   (hex)               Apple, Inc.\r
+3408BC     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+D0-81-7A   (hex)               Apple, Inc.\r
+D0817A     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+C4-61-8B   (hex)               Apple, Inc.\r
+C4618B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+68-AB-1E   (hex)               Apple, Inc.\r
+68AB1E     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+2C-61-F6   (hex)               Apple, Inc.\r
+2C61F6     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-26-BB   (hex)               Apple, Inc.\r
+0026BB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-25-4B   (hex)               Apple, Inc.\r
+00254B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-24-36   (hex)               Apple, Inc.\r
+002436     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-23-32   (hex)               Apple, Inc.\r
+002332     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-23-12   (hex)               Apple, Inc.\r
+002312     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-19-E3   (hex)               Apple, Inc.\r
+0019E3     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-14-51   (hex)               Apple, Inc.\r
+001451     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+50-DC-E7   (hex)               Amazon Technologies Inc.\r
+50DCE7     (base 16)           Amazon Technologies Inc.\r
+                               P.O Box 8102\r
+                               Reno  NV  89507\r
+                               US\r
+\r
+04-09-73   (hex)               Hewlett Packard Enterprise\r
+040973     (base 16)           Hewlett Packard Enterprise\r
+                               8000 Foothills Blvd.\r
+                               Roseville  CA  95747\r
+                               US\r
+\r
+4C-C2-06   (hex)               Somfy\r
+4CC206     (base 16)           Somfy\r
+                               50 avenue du nouveau monde\r
+                               Cluses    74300\r
+                               FR\r
+\r
+70-F2-20   (hex)               Actiontec Electronics, Inc\r
+70F220     (base 16)           Actiontec Electronics, Inc\r
+                               760 North Mary Ave\r
+                               Sunnyvale  CA  94085\r
+                               US\r
+\r
+28-57-67   (hex)               Dish Technologies Corp\r
+285767     (base 16)           Dish Technologies Corp\r
+                               94 Inverness Terrace E\r
+                               Englewood  CO  80112\r
+                               US\r
+\r
+70-55-F8   (hex)               Cerebras Systems Inc\r
+7055F8     (base 16)           Cerebras Systems Inc\r
+                               175 S San Antonio Rd #100\r
+                               Los Altos  CA  94022\r
+                               US\r
+\r
+04-C9-D9   (hex)               Dish Technologies Corp\r
+04C9D9     (base 16)           Dish Technologies Corp\r
+                               94 Inverness Terrace E\r
+                               Englewood  CO  80112\r
+                               US\r
+\r
+00-24-AF   (hex)               Dish Technologies Corp\r
+0024AF     (base 16)           Dish Technologies Corp\r
+                               94 Inverness Terrace E\r
+                               Englewood  CO  80112\r
+                               US\r
+\r
+9C-43-1E   (hex)               IEEE Registration Authority\r
+9C431E     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
+                               US\r
+\r
+80-C5-48   (hex)               Shenzhen Zowee Technology Co.,Ltd\r
+80C548     (base 16)           Shenzhen Zowee Technology Co.,Ltd\r
+                               NO.5 Zowee technology building, Science & Technology industrial park of privately  Science & Technology industrial park of privately owned enterprises\r
+                               Shenzhen  GuangDong  518055\r
+                               CN\r
+\r
+6C-54-CD   (hex)               LAMPEX ELECTRONICS LIMITED\r
+6C54CD     (base 16)           LAMPEX ELECTRONICS LIMITED\r
+                               6-2/231/B, Kukatpally,\r
+                               Hyderabad  Telangana  500072\r
+                               IN\r
+\r
+88-3D-24   (hex)               Google, Inc.\r
+883D24     (base 16)           Google, Inc.\r
+                               1600 Amphitheatre Parkway\r
+                               Mountain View  CA  94043\r
+                               US\r
+\r
+E8-DE-FB   (hex)               MESOTIC SAS\r
+E8DEFB     (base 16)           MESOTIC SAS\r
+                               11, Avenue de la Division Leclerc\r
+                               Cachan    94230\r
+                               FR\r
+\r
+90-84-8B   (hex)               HDR10+ Technologies, LLC\r
+90848B     (base 16)           HDR10+ Technologies, LLC\r
+                               3855 SW 153rd Drive\r
+                               Beaverton  OR  97006\r
+                               US\r
+\r
+0C-23-69   (hex)               Honeywell SPS\r
+0C2369     (base 16)           Honeywell SPS\r
+                               700 Visions Dr.\r
+                               Skaneateles Falls  NY  13153\r
+                               US\r
+\r
+8C-16-45   (hex)               LCFC(HeFei) Electronics Technology co., ltd\r
+8C1645     (base 16)           LCFC(HeFei) Electronics Technology co., ltd\r
+                               YunGu Road 3188-1\r
+                               Hefei  Anhui  230000\r
+                               CN\r
+\r
+B4-E9-A3   (hex)               port GmbH\r
+B4E9A3     (base 16)           port GmbH\r
+                               Regensburger Str. 7b\r
+                               Halle (S.)    06132\r
+                               DE\r
+\r
+6C-B6-CA   (hex)               DIVUS GmbH\r
+6CB6CA     (base 16)           DIVUS GmbH\r
+                               Pillhof 51\r
+                               Eppan    39057\r
+                               IT\r
+\r
+B8-DE-5E   (hex)               LONGCHEER TELECOMMUNICATION LIMITED\r
+B8DE5E     (base 16)           LONGCHEER TELECOMMUNICATION LIMITED\r
+                               Building 1,No.401,Caobao Rd\r
+                               Shanghai  Xuhui District  200233\r
+                               CN\r
+\r
+DC-DD-24   (hex)               Energica Motor Company SpA\r
+DCDD24     (base 16)           Energica Motor Company SpA\r
+                               Via Cesare della Chiesa, 150\r
+                               MODENA (MO)  Mo  41126\r
+                               IT\r
+\r
+94-63-72   (hex)               vivo Mobile Communication Co., Ltd.\r
+946372     (base 16)           vivo Mobile Communication Co., Ltd.\r
+                               #283,BBK Road\r
+                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
+                               CN\r
+\r
+44-9E-F9   (hex)               vivo Mobile Communication Co., Ltd.\r
+449EF9     (base 16)           vivo Mobile Communication Co., Ltd.\r
+                               #283,BBK Road\r
+                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
+                               CN\r
+\r
+64-1C-B0   (hex)               Samsung Electronics Co.,Ltd\r
+641CB0     (base 16)           Samsung Electronics Co.,Ltd\r
+                               129, Samsung-ro, Youngtongl-Gu\r
+                               Suwon  Gyeonggi-Do  16677\r
+                               KR\r
+\r
+8C-F9-57   (hex)               RuiXingHengFang Network (Shenzhen) Co.,Ltd\r
+8CF957     (base 16)           RuiXingHengFang Network (Shenzhen) Co.,Ltd\r
+                               Room 507, 2nd tower of KangTai biological building  NO.6 KeFa Rd. NanShan District\r
+                               Shenzhen  Guangdong  518057\r
+                               CN\r
+\r
+00-1B-D8   (hex)               FLIR Systems Inc\r
+001BD8     (base 16)           FLIR Systems Inc\r
+                               65 Challenger Road\r
+                               Ridgefield Park  NJ  07660-2103\r
+                               US\r
+\r
+20-36-5B   (hex)               Megafone Limited\r
+20365B     (base 16)           Megafone Limited\r
+                               Unit 702,7/F,Bankok Bank Building,NO.18 Bonham Strand West\r
+                               Hong Kong    999077\r
+                               HK\r
+\r
+E8-DE-00   (hex)               ChongQing GuanFang Technology Co.,LTD\r
+E8DE00     (base 16)           ChongQing GuanFang Technology Co.,LTD\r
+                               2F, A District,No.3 Middle Section of Mount Huangshan Avenue\r
+                               ChongQing  ChongQing  401121\r
+                               CN\r
+\r
+3C-DC-BC   (hex)               Samsung Electronics Co.,Ltd\r
+3CDCBC     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
+F4-71-90   (hex)               Samsung Electronics Co.,Ltd\r
+F47190     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
+4C-77-6D   (hex)               Cisco Systems, Inc\r
+4C776D     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+FC-A6-CD   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+FCA6CD     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
+64-DB-8B   (hex)               Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+64DB8B     (base 16)           Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+                               No.555 Qianmo Road\r
+                               Hangzhou  Zhejiang  310052\r
+                               CN\r
+\r
+78-25-7A   (hex)               LEO Innovation Lab\r
+78257A     (base 16)           LEO Innovation Lab\r
+                               Silkegade 8\r
+                               Copenhagen K  Denmark  1113\r
+                               DK\r
+\r
+A4-DA-22   (hex)               IEEE Registration Authority\r
+A4DA22     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
+                               US\r
+\r
+00-03-97   (hex)               FireBrick Limited\r
+000397     (base 16)           FireBrick Limited\r
+                               C/O Andrews & Arnold Ltd, \r
+                               Enterprise Court, Downmill Road  Bracknell, Berks  RG12 1QS\r
+                               GB\r
+\r
+A8-61-0A   (hex)               ARDUINO AG\r
+A8610A     (base 16)           ARDUINO AG\r
+                               Corso San Gottardo 6A\r
+                               Chiasso    6830\r
+                               CH\r
+\r
+60-97-DD   (hex)               MicroSys Electronics GmbH\r
+6097DD     (base 16)           MicroSys Electronics GmbH\r
+                               Muehlweg 1\r
+                               Sauerlach    82054\r
+                               DE\r
+\r
+04-79-70   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+047970     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+C4-9F-4C   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+C49F4C     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+A0-57-E3   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+A057E3     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+E0-E6-2E   (hex)               TCT mobile ltd\r
+E0E62E     (base 16)           TCT mobile ltd\r
+                               No.86 hechang 7th road, zhongkai, Hi-Tech District\r
+                               Hui Zhou  Guang Dong  516006\r
+                               CN\r
+\r
+00-A0-85   (hex)               Private\r
+00A085     (base 16)           Private\r
+\r
+94-B8-6D   (hex)               Intel Corporate\r
+94B86D     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3\r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+F8-8B-37   (hex)               ARRIS Group, Inc.\r
+F88B37     (base 16)           ARRIS Group, Inc.\r
+                               6450 Sequence Drive\r
+                               San Diego  CA  92121\r
+                               US\r
+\r
+30-FD-38   (hex)               Google, Inc.\r
+30FD38     (base 16)           Google, Inc.\r
+                               1600 Amphitheatre Parkway\r
+                               Mountain View  CA  94043\r
+                               US\r
+\r
+18-50-2A   (hex)               SOARNEX\r
+18502A     (base 16)           SOARNEX\r
+                               NO.158, RUIHU ST., NEIHU DIST.,\r
+                               TAIPEI CITY  TAIWAN (R.O.C.)  11494\r
+                               TW\r
+\r
+58-7A-6A   (hex)               GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+587A6A     (base 16)           GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+                               NO.18 HAIBIN ROAD,\r
+                               DONG GUAN  GUANG DONG  523860\r
+                               CN\r
+\r
+E4-C4-83   (hex)               GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+E4C483     (base 16)           GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+                               NO.18 HAIBIN ROAD,\r
+                               DONG GUAN  GUANG DONG  523860\r
+                               CN\r
+\r
+F4-E1-1E   (hex)               Texas Instruments\r
+F4E11E     (base 16)           Texas Instruments\r
+                               12500 TI Blvd\r
+                               Dallas  TX  75243\r
+                               US\r
+\r
+30-45-11   (hex)               Texas Instruments\r
+304511     (base 16)           Texas Instruments\r
+                               12500 TI Blvd\r
+                               Dallas  TX  75243\r
+                               US\r
+\r
+34-03-DE   (hex)               Texas Instruments\r
+3403DE     (base 16)           Texas Instruments\r
+                               12500 TI Blvd\r
+                               Dallas  TX  75243\r
+                               US\r
+\r
+10-E7-C6   (hex)               Hewlett Packard\r
+10E7C6     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston  TX  77070\r
+                               US\r
+\r
+20-F5-43   (hex)               Hui Zhou Gaoshengda Technology Co.,LTD\r
+20F543     (base 16)           Hui Zhou Gaoshengda Technology Co.,LTD\r
+                               No.75,Zhongkai High-Tech Development District,Huizhou\r
+                               Hui Zhou  Guangdong  516006\r
+                               CN\r
+\r
+1C-1E-E3   (hex)               Hui Zhou Gaoshengda Technology Co.,LTD\r
+1C1EE3     (base 16)           Hui Zhou Gaoshengda Technology Co.,LTD\r
+                               No.75,Zhongkai High-Tech Development District,Huizhou\r
+                               Hui Zhou  Guangdong  516006\r
+                               CN\r
+\r
+0C-91-60   (hex)               Hui Zhou Gaoshengda Technology Co.,LTD\r
+0C9160     (base 16)           Hui Zhou Gaoshengda Technology Co.,LTD\r
+                               No.75,Zhongkai High-Tech Development District,Huizhou\r
+                               Hui Zhou  Guangdong  516006\r
+                               CN\r
+\r
+0C-62-A6   (hex)               Hui Zhou Gaoshengda Technology Co.,LTD\r
+0C62A6     (base 16)           Hui Zhou Gaoshengda Technology Co.,LTD\r
+                               No.75,Zhongkai High-Tech Development District,Huizhou\r
+                               Hui Zhou  Guangdong  516006\r
+                               CN\r
+\r
+7C-49-EB   (hex)               XIAOMI Electronics,CO.,LTD\r
+7C49EB     (base 16)           XIAOMI Electronics,CO.,LTD\r
+                               Xiaomi Building, No.68 Qinghe Middle Street,Haidian District\r
+                               Beijing  Beijing  100085\r
+                               CN\r
+\r
+C4-33-06   (hex)               China Mobile Group Device Co.,Ltd.\r
+C43306     (base 16)           China Mobile Group Device Co.,Ltd.\r
+                               32 Xuanwumen West Street,Xicheng District\r
+                               Beijing    100053\r
+                               CN\r
+\r
+68-FE-DA   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+68FEDA     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
+0C-6A-BC   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+0C6ABC     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
+D4-C1-9E   (hex)               Ruckus Wireless\r
+D4C19E     (base 16)           Ruckus Wireless\r
+                               350 West Java Drive\r
+                               Sunnyvale  CA  94089\r
+                               US\r
+\r
+00-01-B9   (hex)               SKF (U.K.) Limited\r
+0001B9     (base 16)           SKF (U.K.) Limited\r
+                               2 Michaelson Square Kirkton Campus\r
+                               Livingston    West Lothian  EH54 7DP\r
+                               GB\r
+\r
+64-C3-D6   (hex)               Juniper Networks\r
+64C3D6     (base 16)           Juniper Networks\r
+                               1133 Innovation Way\r
+                               Sunnyvale  CA  94089\r
+                               US\r
+\r
+58-46-E1   (hex)               Baxter International Inc\r
+5846E1     (base 16)           Baxter International Inc\r
+                               One Baxter Parkway\r
+                               Deerfield  IL  60015\r
+                               US\r
+\r
+00-D0-BD   (hex)               Lattice Semiconductor Corp. (LPA)\r
+00D0BD     (base 16)           Lattice Semiconductor Corp. (LPA)\r
+                               2115 O’Nel Drive\r
+                               San Jose  CA  95131\r
+                               US\r
+\r
+F0-82-61   (hex)               Sagemcom Broadband SAS\r
+F08261     (base 16)           Sagemcom Broadband SAS\r
+                               250 route de l'Empereur\r
+                               Rueil Malmaison  HAUTS DE SEINE  92848\r
+                               FR\r
+\r
+D0-84-B0   (hex)               Sagemcom Broadband SAS\r
+D084B0     (base 16)           Sagemcom Broadband SAS\r
+                               250 route de l'Empereur\r
+                               Rueil Malmaison  HAUTS DE SEINE  92848\r
+                               FR\r
+\r
+00-FE-C8   (hex)               Cisco Systems, Inc\r
+00FEC8     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+EC-22-80   (hex)               D-Link International\r
+EC2280     (base 16)           D-Link International\r
+                               1 Internal Business Park, #03-12,\r
+                               SINGAPORE  Singapore  609917\r
+                               SG\r
+\r
+04-78-63   (hex)               Shanghai MXCHIP Information Technology Co., Ltd.\r
+047863     (base 16)           Shanghai MXCHIP Information Technology Co., Ltd.\r
+                               9th Floor, No. 5 Building, 2145 Jinshajiang Rd., Putuo District\r
+                               Shanghai    200333\r
+                               CN\r
+\r
+24-BA-13   (hex)               RISO KAGAKU CORPORATION\r
+24BA13     (base 16)           RISO KAGAKU CORPORATION\r
+                               2-8-1 Gakuen-minami\r
+                               Thukuba-shi  Ibaraki  305-0818\r
+                               JP\r
+\r
+24-DA-11   (hex)               NO NDA Inc\r
+24DA11     (base 16)           NO NDA Inc\r
+                               828 Bryant St \r
+                               Palo Alto  IA  94301\r
+                               US\r
+\r
+70-CA-4D   (hex)               Shenzhen lnovance Technology Co.,Ltd.\r
+70CA4D     (base 16)           Shenzhen lnovance Technology Co.,Ltd.\r
+                               LiuXian 2 Road\r
+                               Shenzhen  Guangdong  518000\r
+                               CN\r
+\r
+DC-C0-EB   (hex)               ASSA ABLOY CÔTE PICARDE\r
+DCC0EB     (base 16)           ASSA ABLOY CÔTE PICARDE\r
+                               rue Alexandre Fichet\r
+                               Oust-Marest    80460\r
+                               FR\r
+\r
+00-17-35   (hex)               Intel Wireless Network Group\r
+001735     (base 16)           Intel Wireless Network Group\r
+                               2111 NE 25th Ave\r
+                               Hillsboro  OR  97124\r
+                               US\r
+\r
+9C-DF-B1   (hex)               Shenzhen Crave Communication Co., LTD\r
+9CDFB1     (base 16)           Shenzhen Crave Communication Co., LTD\r
+                               F3,8Building,DongFangMing IndustryZone,No.83 DabaoRD.,33 District BaoAn\r
+                               Shenzhen  Guangdong  518000\r
+                               CN\r
+\r
+0C-C7-31   (hex)               Currant, Inc.\r
+0CC731     (base 16)           Currant, Inc.\r
+                               927 Industrial Ave\r
+                               Palo Alto  CA  94303\r
+                               US\r
+\r
+00-14-2F   (hex)               Savvius\r
+00142F     (base 16)           Savvius\r
+                               1340 Treat Boulevard, Suite 500\r
+                               Walnut Creek  CA  94597\r
+                               US\r
+\r
+2C-DD-A3   (hex)               Point Grey Research Inc.\r
+2CDDA3     (base 16)           Point Grey Research Inc.\r
+                               305-1847 West Broadway\r
+                               Vancouver  British Columbia V6J 1Y6  \r
+                               CA\r
+\r
+24-FD-5B   (hex)               SmartThings, Inc.\r
+24FD5B     (base 16)           SmartThings, Inc.\r
+                               456 University Avenue\r
+                               Palo Alto  CA  94301\r
+                               US\r
+\r
+28-76-CD   (hex)               Funshion Online Technologies Co.,Ltd\r
+2876CD     (base 16)           Funshion Online Technologies Co.,Ltd\r
+                               Tower B 1201, Jinqiu International Building, No.6, Zhichun Road, Haidian District\r
+                               Beijing    100088\r
+                               CN\r
+\r
+F4-F5-D8   (hex)               Google, Inc.\r
+F4F5D8     (base 16)           Google, Inc.\r
+                               1600 Amphitheatre Parkway\r
+                               Mountain View  CA  94043\r
+                               US\r
+\r
+F4-F5-E8   (hex)               Google, Inc.\r
+F4F5E8     (base 16)           Google, Inc.\r
+                               1600 Amphitheatre Parkway\r
+                               Mountain View    94043\r
+                               US\r
+\r
+F8-8F-CA   (hex)               Google, Inc.\r
+F88FCA     (base 16)           Google, Inc.\r
+                               1600 Amphitheatre Parkway\r
+                               Mountain View    94043\r
+                               US\r
+\r
+BC-D1-D3   (hex)               Shenzhen TINNO Mobile Technology Corp.\r
+BCD1D3     (base 16)           Shenzhen TINNO Mobile Technology Corp.\r
+                               4/F.,H-3 Building,OCT Eastern lndustrial Park.\r
+                               Nanshan, Shenzhen  GUANGDONG  518053\r
+                               CN\r
+\r
+BC-44-34   (hex)               Shenzhen TINNO Mobile Technology Corp.\r
+BC4434     (base 16)           Shenzhen TINNO Mobile Technology Corp.\r
+                               4/F, H-3 Building, Qiao Cheng Eastern Industrial Park, Overseas Chinese Town, Shenzhen \r
+                               Shenzhen   guangdong  518053\r
+                               CN\r
+\r
+00-41-D2   (hex)               Cisco Systems, Inc\r
+0041D2     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+4C-FB-45   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+4CFB45     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan  Guangdong  523808 \r
+                               CN\r
+\r
+A4-BA-76   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+A4BA76     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan  Guangdong  523808 \r
+                               CN\r
+\r
+78-E3-B5   (hex)               Hewlett Packard\r
+78E3B5     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+98-4B-E1   (hex)               Hewlett Packard\r
+984BE1     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+68-B5-99   (hex)               Hewlett Packard\r
+68B599     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+14-D6-4D   (hex)               D-Link International\r
+14D64D     (base 16)           D-Link International\r
+                               1 INTERNATIONAL BUSINESS PARK\r
+                               SINGAPORE    609917\r
+                               SG\r
+\r
+C8-BE-19   (hex)               D-Link International\r
+C8BE19     (base 16)           D-Link International\r
+                               1 International Business Park, #03-12, The Synergy \r
+                               SINGAPORE    609917\r
+                               SG\r
+\r
+BC-F6-85   (hex)               D-Link International\r
+BCF685     (base 16)           D-Link International\r
+                               1 International Business Park, #03-12, The Synergy \r
+                               SINGAPORE    609917\r
+                               SG\r
+\r
+CC-B2-55   (hex)               D-Link International\r
+CCB255     (base 16)           D-Link International\r
+                               1 International Business Park, #03-12, The Synergy \r
+                               SINGAPORE    609917\r
+                               SG\r
+\r
+84-C9-B2   (hex)               D-Link International\r
+84C9B2     (base 16)           D-Link International\r
+                               1 International Business Park, #03-12, The Synergy \r
+                               SINGAPORE    609917\r
+                               SG\r
+\r
+DC-D3-21   (hex)               HUMAX Co., Ltd.\r
+DCD321     (base 16)           HUMAX Co., Ltd.\r
+                               HUMAX Village, 11-4, Sunae-dong, Bundang-gu\r
+                               Seongnam-si  Gyeonggi-do  463-825\r
+                               KR\r
+\r
+CC-4E-EC   (hex)               HUMAX Co., Ltd.\r
+CC4EEC     (base 16)           HUMAX Co., Ltd.\r
+                               HUMAX Village, 216, Hwangsaeul-ro, Bundang-gu,\r
+                               Seongnam-si  Gyeonggi-do  463-875\r
+                               KR\r
+\r
+DC-33-0D   (hex)               Qingdao Haier Telecom Co.,Ltd\r
+DC330D     (base 16)           Qingdao Haier Telecom Co.,Ltd\r
+                               No 1  Haier road,Hi-tech Zone,Qingdao,PR.China\r
+                               Qingdao  Shandong  266101\r
+                               CN\r
+\r
+00-80-E1   (hex)               STMicroelectronics SRL\r
+0080E1     (base 16)           STMicroelectronics SRL\r
+                               1000 AZTEC WEST\r
+                               london    12345\r
+                               GB\r
+\r
+58-DC-6D   (hex)               Exceptional Innovation, Inc.\r
+58DC6D     (base 16)           Exceptional Innovation, Inc.\r
+                               480 Olde Worthington Rd, Suite 350\r
+                               Westerville  OH  43082\r
+                               US\r
+\r
+00-09-2D   (hex)               HTC Corporation\r
+00092D     (base 16)           HTC Corporation\r
+                               No.23 Xinghua Road,\r
+                               Taoyuan County     330\r
+                               TW\r
+\r
+F8-DB-7F   (hex)               HTC Corporation\r
+F8DB7F     (base 16)           HTC Corporation\r
+                               No.23 Xinghua Road\r
+                               Taoyuan County    330\r
+                               TW\r
+\r
+E8-99-C4   (hex)               HTC Corporation\r
+E899C4     (base 16)           HTC Corporation\r
+                               No. 23, Xinghua Rd., Taoyuan City\r
+                               Taoyuan County  Taiwan  330\r
+                               TW\r
+\r
+7C-B1-5D   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+7CB15D     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan  Guangdong  523808 \r
+                               CN\r
+\r
+18-68-6A   (hex)               zte corporation\r
+18686A     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
+                               CN\r
+\r
+0C-05-35   (hex)               Juniper Systems\r
+0C0535     (base 16)           Juniper Systems\r
+                               1132 W. 1700 N.\r
+                               Logan  UT  84321\r
+                               US\r
+\r
+8C-F2-28   (hex)               SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
+8CF228     (base 16)           SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
+                               Mid-Fourth Flr.,Building 28,Cui Xi Fourth Road,Ke Yuan West,Nanshan\r
+                               Shenzhen  Guangdong  518057\r
+                               CN\r
+\r
+88-51-FB   (hex)               Hewlett Packard\r
+8851FB     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+AC-16-2D   (hex)               Hewlett Packard\r
+AC162D     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+A0-B3-CC   (hex)               Hewlett Packard\r
+A0B3CC     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+E4-11-5B   (hex)               Hewlett Packard\r
+E4115B     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+C8-CB-B8   (hex)               Hewlett Packard\r
+C8CBB8     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+94-57-A5   (hex)               Hewlett Packard\r
+9457A5     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+00-01-E7   (hex)               Hewlett Packard\r
+0001E7     (base 16)           Hewlett Packard\r
+                               11000 Wolfe Road, Mailstop 42LE\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+08-00-09   (hex)               Hewlett Packard\r
+080009     (base 16)           Hewlett Packard\r
+                               ENTERPRISE SYSTEMS TECH.CENTER\r
+                               CUPERTINO  CA  95014\r
+                               US\r
+\r
+00-80-A0   (hex)               Hewlett Packard\r
+0080A0     (base 16)           Hewlett Packard\r
+                               ALAMEDA RIO NEGRO,\r
+                               houston  tx  77070\r
+                               BR\r
+\r
+D4-85-64   (hex)               Hewlett Packard\r
+D48564     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+3C-4A-92   (hex)               Hewlett Packard\r
+3C4A92     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+78-0A-C7   (hex)               Baofeng TV Co., Ltd.\r
+780AC7     (base 16)           Baofeng TV Co., Ltd.\r
+                               Room 2D, Building 5D, Nanshan District Software Industry Base\r
+                               ShenZhen  GuangDong  518000\r
+                               CN\r
+\r
+00-1D-73   (hex)               BUFFALO.INC\r
+001D73     (base 16)           BUFFALO.INC\r
+                               15,Shibata Hondori 4-chome,\r
+                               Nagoya  Aichi Pref.  457-8520\r
+                               JP\r
+\r
+00-16-01   (hex)               BUFFALO.INC\r
+001601     (base 16)           BUFFALO.INC\r
+                               AKAMONDORI Bldg., 30-20,Ohsu 3-chome\r
+                               Naka-ku,Nagoya  Aichi Pref.  460-8315\r
+                               JP\r
+\r
+10-6F-3F   (hex)               BUFFALO.INC\r
+106F3F     (base 16)           BUFFALO.INC\r
+                               AKAMONDORI Bldg., 30-20,Ohsu 3-chome\r
+                               Naka-ku,Nagoya  Aichi Pref.  460-8315\r
+                               JP\r
+\r
+88-57-EE   (hex)               BUFFALO.INC\r
+8857EE     (base 16)           BUFFALO.INC\r
+                               AKAMONDORI Bld.,30-20,Ohsu 3-chome,Naka-ku\r
+                               Nagoya  Aichi Pref.  460-8315\r
+                               JP\r
+\r
+00-9C-02   (hex)               Hewlett Packard\r
+009C02     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+78-E7-D1   (hex)               Hewlett Packard\r
+78E7D1     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+00-1B-78   (hex)               Hewlett Packard\r
+001B78     (base 16)           Hewlett Packard\r
+                               20555 State Highway 249\r
+                               Houston  TX  77070\r
+                               US\r
+\r
+00-1E-0B   (hex)               Hewlett Packard\r
+001E0B     (base 16)           Hewlett Packard\r
+                               20555 State Highway 249\r
+                               Houston  TX  77070\r
+                               US\r
+\r
+2C-6E-85   (hex)               Intel Corporate\r
+2C6E85     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3\r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+00-D0-B7   (hex)               Intel Corporation\r
+00D0B7     (base 16)           Intel Corporation\r
+                               5200 NE ELAM YOUNG PARKWAY\r
+                               HILLSBORO  OR  97124\r
+                               US\r
+\r
+00-02-B3   (hex)               Intel Corporation\r
+0002B3     (base 16)           Intel Corporation\r
+                               M/S:  JF3-420\r
+                               Hillsboro  OR  97124\r
+                               US\r
+\r
+00-11-11   (hex)               Intel Corporation\r
+001111     (base 16)           Intel Corporation\r
+                               2111 NE 25th Avenue\r
+                               Hillsboro  OR  97124\r
+                               US\r
+\r
+00-13-20   (hex)               Intel Corporate\r
+001320     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-tech 2/3\r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+00-12-F0   (hex)               Intel Corporate\r
+0012F0     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-tech 2/3\r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+90-49-FA   (hex)               Intel Corporate\r
+9049FA     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3\r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+C8-34-8E   (hex)               Intel Corporate\r
+C8348E     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3\r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+00-50-8B   (hex)               Hewlett Packard\r
+00508B     (base 16)           Hewlett Packard\r
+                               20555 State Highway 249\r
+                               Houston  TX  77070\r
+                               US\r
+\r
+78-48-59   (hex)               Hewlett Packard\r
+784859     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+14-58-D0   (hex)               Hewlett Packard\r
+1458D0     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+50-65-F3   (hex)               Hewlett Packard\r
+5065F3     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+A0-48-1C   (hex)               Hewlett Packard\r
+A0481C     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+A0-1D-48   (hex)               Hewlett Packard\r
+A01D48     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston    77070\r
+                               US\r
+\r
+94-B2-CC   (hex)               PIONEER CORPORATION\r
+94B2CC     (base 16)           PIONEER CORPORATION\r
+                               1-1 Shin-ogura\r
+                               Kawasaki-shi  Kanagawa Prefecture  2120031\r
+                               JP\r
+\r
+88-7F-03   (hex)               Comper Technology Investment Limited\r
+887F03     (base 16)           Comper Technology Investment Limited\r
+                               Room 710, Wangjing SOHO Tower 1-B\r
+                               Beijing  Beijing  100102\r
+                               CN\r
+\r
+E0-60-66   (hex)               Sercomm Corporation\r
+E06066     (base 16)           Sercomm Corporation\r
+                               8F, 3-1, YuanQu St., NanKang,\r
+                               Taipei  Taiwan  115\r
+                               TW\r
+\r
+00-19-E0   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
+0019E0     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
+                               South Building, No.5 Keyuan Road\r
+                               Nanshan  Shenzhen  518057\r
+                               CN\r
+\r
+00-23-CD   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
+0023CD     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
+                               South Building, No.5 Keyuan Road, Central Zone,\r
+                               Shenzhen  Guangdong  518000\r
+                               CN\r
+\r
+00-27-19   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
+002719     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
+                               Building 7, Second Part, Honghualing Industrial Zone\r
+                               Shenzhen  Guangdong  518057\r
+                               CN\r
+\r
+40-16-9F   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
+40169F     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
+                               1-6F, Building 2, Pingshandayuan Industrial, South Zone,\r
+                               Shenzhen  Guangdong  518000\r
+                               CN\r
+\r
+94-0C-6D   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
+940C6D     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
+                               Building 7, Second Part, Honghualing Industrial Zone\r
+                               Shenzhen  Guangdong  518000\r
+                               CN\r
+\r
+74-EA-3A   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
+74EA3A     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
+                               Building 7, Second Part, Honghualing Industrial Zone\r
+                               Shenzhen  Guangdong  518000\r
+                               CN\r
+\r
+90-F6-52   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
+90F652     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
+                               Building 24 (floors 1,3,4,5) and 28 (floors1-4)  Central Science and Technology Park,Shennan Rd, Nanshan,\r
+                               Shenzhen  Guangdong Province,  518057\r
+                               CN\r
+\r
+10-FE-ED   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
+10FEED     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
+                               Building 24 (floors 1,3,4,5) and 28 (floors1-4)  Central Science and Technology Park\r
+                               Shenzhen  Guangdong  518057\r
+                               CN\r
+\r
+C4-6E-1F   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
+C46E1F     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
+                               Building 24 (floors 1,3,4,5) and 28 (floors1-4)\r
+                               Shennan Rd, Nanshan  Shenzhen,Guangdong Province  518057\r
+                               CN\r
 \r
 50-FA-84   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
 50FA84     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
@@ -58385,108 +59069,6 @@ F83DFF     (base 16)          HUAWEI TECHNOLOGIES CO.,LTD
                                Shenzhen  Guangdong  518129\r
                                CN\r
 \r
-00-C6-10   (hex)               Apple, Inc.\r
-00C610     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-70-DE-E2   (hex)               Apple, Inc.\r
-70DEE2     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-18-20-32   (hex)               Apple, Inc.\r
-182032     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-6C-C2-6B   (hex)               Apple, Inc.\r
-6CC26B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-10-40-F3   (hex)               Apple, Inc.\r
-1040F3     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-FC-25-3F   (hex)               Apple, Inc.\r
-FC253F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-18-34-51   (hex)               Apple, Inc.\r
-183451     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-C0-84-7A   (hex)               Apple, Inc.\r
-C0847A     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-64-20-0C   (hex)               Apple, Inc.\r
-64200C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-74-E1-B6   (hex)               Apple, Inc.\r
-74E1B6     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-0C-77-1A   (hex)               Apple, Inc.\r
-0C771A     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-F4-B9   (hex)               Apple, Inc.\r
-00F4B9     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-C8-33-4B   (hex)               Apple, Inc.\r
-C8334B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-B8-F6-B1   (hex)               Apple, Inc.\r
-B8F6B1     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-C0-9F-42   (hex)               Apple, Inc.\r
-C09F42     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-18-9E-FC   (hex)               Apple, Inc.\r
-189EFC     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-6C-3E-6D   (hex)               Apple, Inc.\r
-6C3E6D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
 00-16-FE   (hex)               ALPS ELECTRIC CO.,LTD.\r
 0016FE     (base 16)           ALPS ELECTRIC CO.,LTD.\r
                                1-2-1, Okinouchi,\r
@@ -58685,72 +59267,6 @@ B0FAEB     (base 16)           Cisco Systems, Inc
                                San Jose  CA  95134\r
                                US\r
 \r
-7C-FA-DF   (hex)               Apple, Inc.\r
-7CFADF     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-10-1C-0C   (hex)               Apple, Inc.\r
-101C0C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-00-11-24   (hex)               Apple, Inc.\r
-001124     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-1D-4F   (hex)               Apple, Inc.\r
-001D4F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-1E-52   (hex)               Apple, Inc.\r
-001E52     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-1F-5B   (hex)               Apple, Inc.\r
-001F5B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-1F-F3   (hex)               Apple, Inc.\r
-001FF3     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-21-E9   (hex)               Apple, Inc.\r
-0021E9     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-23-6C   (hex)               Apple, Inc.\r
-00236C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-25-00   (hex)               Apple, Inc.\r
-002500     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-60-FB-42   (hex)               Apple, Inc.\r
-60FB42     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
 14-DA-E9   (hex)               ASUSTek COMPUTER INC.\r
 14DAE9     (base 16)           ASUSTek COMPUTER INC.\r
                                15,Li-Te Rd.,Peitou,\r
@@ -58799,60 +59315,6 @@ D072DC     (base 16)           Cisco Systems, Inc
                                San Jose  CA  95134\r
                                US\r
 \r
-F8-1E-DF   (hex)               Apple, Inc.\r
-F81EDF     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-90-84-0D   (hex)               Apple, Inc.\r
-90840D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-D8-A2-5E   (hex)               Apple, Inc.\r
-D8A25E     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-C8-BC-C8   (hex)               Apple, Inc.\r
-C8BCC8     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-28-E7-CF   (hex)               Apple, Inc.\r
-28E7CF     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-D8-9E-3F   (hex)               Apple, Inc.\r
-D89E3F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-04-0C-CE   (hex)               Apple, Inc.\r
-040CCE     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-A4-D1-D2   (hex)               Apple, Inc.\r
-A4D1D2     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-40-6C-8F   (hex)               Apple, Inc.\r
-406C8F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
 C0-67-AF   (hex)               Cisco Systems, Inc\r
 C067AF     (base 16)           Cisco Systems, Inc\r
                                170 West Tasman Drive\r
@@ -58937,258 +59399,12 @@ C067AF     (base 16)         Cisco Systems, Inc
                                SAN JOSE  CA  95134-1706\r
                                US\r
 \r
-64-9A-BE   (hex)               Apple, Inc.\r
-649ABE     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-94-E9-6A   (hex)               Apple, Inc.\r
-94E96A     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-AC-29-3A   (hex)               Apple, Inc.\r
-AC293A     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-10-41-7F   (hex)               Apple, Inc.\r
-10417F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-70-14-A6   (hex)               Apple, Inc.\r
-7014A6     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-A8-66-7F   (hex)               Apple, Inc.\r
-A8667F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-D0-25-98   (hex)               Apple, Inc.\r
-D02598     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-CC-29-F5   (hex)               Apple, Inc.\r
-CC29F5     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-6C-70-9F   (hex)               Apple, Inc.\r
-6C709F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-0C-3E-9F   (hex)               Apple, Inc.\r
-0C3E9F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-34-E2-FD   (hex)               Apple, Inc.\r
-34E2FD     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-60-92-17   (hex)               Apple, Inc.\r
-609217     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-88-63-DF   (hex)               Apple, Inc.\r
-8863DF     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-80-E6-50   (hex)               Apple, Inc.\r
-80E650     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-00-61-71   (hex)               Apple, Inc.\r
-006171     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-90-FD-61   (hex)               Apple, Inc.\r
-90FD61     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-5C-97-F3   (hex)               Apple, Inc.\r
-5C97F3     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-6C-40-08   (hex)               Apple, Inc.\r
-6C4008     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-24-A0-74   (hex)               Apple, Inc.\r
-24A074     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-F0-24-75   (hex)               Apple, Inc.\r
-F02475     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-20-A2-E4   (hex)               Apple, Inc.\r
-20A2E4     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-5C-F5-DA   (hex)               Apple, Inc.\r
-5CF5DA     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 D4-B8-FF   (hex)               Home Control Singapore Pte Ltd\r
 D4B8FF     (base 16)           Home Control Singapore Pte Ltd\r
                                620A Lorong 1 Toa Payoh\r
                                Singapore  Singapore  217909\r
                                SG\r
 \r
-28-E1-4C   (hex)               Apple, Inc.\r
-28E14C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-54-E4-3A   (hex)               Apple, Inc.\r
-54E43A     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-C8-E0-EB   (hex)               Apple, Inc.\r
-C8E0EB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-A8-88-08   (hex)               Apple, Inc.\r
-A88808     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-90-72-40   (hex)               Apple, Inc.\r
-907240     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-0C-4D-E9   (hex)               Apple, Inc.\r
-0C4DE9     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-D8-96-95   (hex)               Apple, Inc.\r
-D89695     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-0C-30-21   (hex)               Apple, Inc.\r
-0C3021     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-F0-F6-1C   (hex)               Apple, Inc.\r
-F0F61C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-B0-34-95   (hex)               Apple, Inc.\r
-B03495     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-84-8E-0C   (hex)               Apple, Inc.\r
-848E0C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-8C-2D-AA   (hex)               Apple, Inc.\r
-8C2DAA     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-44-4C-0C   (hex)               Apple, Inc.\r
-444C0C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-84-FC-FE   (hex)               Apple, Inc.\r
-84FCFE     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-E4-8B-7F   (hex)               Apple, Inc.\r
-E48B7F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-5C-96-9D   (hex)               Apple, Inc.\r
-5C969D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-A8-FA-D8   (hex)               Apple, Inc.\r
-A8FAD8     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-94-94-26   (hex)               Apple, Inc.\r
-949426     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-E0-F5-C6   (hex)               Apple, Inc.\r
-E0F5C6     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
 AC-64-62   (hex)               zte corporation\r
 AC6462     (base 16)           zte corporation\r
                                12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
@@ -59315,18 +59531,6 @@ E8DED6     (base 16)           Intrising Networks, Inc.
                                Taipei    \r
                                TW\r
 \r
-B8-44-D9   (hex)               Apple, Inc.\r
-B844D9     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-DC-2B-2A   (hex)               Apple, Inc.\r
-DC2B2A     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 8C-10-D4   (hex)               Sagemcom Broadband SAS\r
 8C10D4     (base 16)           Sagemcom Broadband SAS\r
                                250, route de l'Empereur\r
@@ -62051,12 +62255,6 @@ D0D6CC     (base 16)           Wintop
                                Songjiang District  Shanghai  201612\r
                                CN\r
 \r
-10-1D-51   (hex)               ON-Q LLC dba ON-Q Mesh Networks\r
-101D51     (base 16)           ON-Q LLC dba ON-Q Mesh Networks\r
-                               2859 Mandela Parkway\r
-                               Oakland  CA  94611\r
-                               US\r
-\r
 34-C9-9D   (hex)               EIDOLON COMMUNICATIONS TECHNOLOGY CO. LTD.\r
 34C99D     (base 16)           EIDOLON COMMUNICATIONS TECHNOLOGY CO. LTD.\r
                                Room 603, 6/F., Wanchai Central Building, 89 Lockhart Road, Wanchai, \r
@@ -63002,12 +63200,6 @@ C85645     (base 16)           Intermas France
                                Phoenixville  PA  19460\r
                                US\r
 \r
-30-B2-16   (hex)               Hytec Geraetebau GmbH\r
-30B216     (base 16)           Hytec Geraetebau GmbH\r
-                               Cochemer Straße 12 - 14\r
-                               Mannheim    68309\r
-                               DE\r
-\r
 34-FC-6F   (hex)               ALCEA\r
 34FC6F     (base 16)           ALCEA\r
                                3 Rue Joly de Bammeville\r
@@ -66203,12 +66395,6 @@ A893E6     (base 16)           JIANGXI JINGGANGSHAN CKING COMMUNICATION TECHNOLOGY CO.,LT
                                ANKARA    06370\r
                                TR\r
 \r
-00-23-A8   (hex)               Marshall Electronics\r
-0023A8     (base 16)           Marshall Electronics\r
-                               1910 E Maple Ave\r
-                               El Segundo  Ca  90245\r
-                               US\r
-\r
 00-23-9B   (hex)               Elster Solutions, LLC\r
 00239B     (base 16)           Elster Solutions, LLC\r
                                208 South Rogers Lane\r
@@ -75632,12 +75818,6 @@ A06A00     (base 16)           Verilink Corporation
                                    \r
                                CN\r
 \r
-00-D0-CE   (hex)               ASYST ELECTRONIC\r
-00D0CE     (base 16)           ASYST ELECTRONIC\r
-                               BRODISCE 7, 10C TRZIN\r
-                                   \r
-                               SI\r
-\r
 00-D0-90   (hex)               Cisco Systems, Inc\r
 00D090     (base 16)           Cisco Systems, Inc\r
                                80 West Tasman Drive\r
@@ -80222,18 +80402,6 @@ B83241     (base 16)           Wuhan Tianyu Information Industry Co., Ltd.
                                Minato-ku  Tokyo  108-0022\r
                                JP\r
 \r
-9C-4F-DA   (hex)               Apple, Inc.\r
-9C4FDA     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-1C-5C-F2   (hex)               Apple, Inc.\r
-1C5CF2     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 08-21-EF   (hex)               Samsung Electronics Co.,Ltd\r
 0821EF     (base 16)           Samsung Electronics Co.,Ltd\r
                                #94-1, Imsoo-Dong\r
@@ -80294,36 +80462,12 @@ B8A175     (base 16)          Roku, Inc.
                                Wichita  KS  67226-1397\r
                                US\r
 \r
-E4-9A-79   (hex)               Apple, Inc.\r
-E49A79     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-28-A0-2B   (hex)               Apple, Inc.\r
-28A02B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-B4-4B-D2   (hex)               Apple, Inc.\r
-B44BD2     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 00-23-40   (hex)               MiXTelematics\r
 002340     (base 16)           MiXTelematics\r
                                Blaauwklip Office Park 2\r
                                Stellenbosch  Western Cape  7600\r
                                ZA\r
 \r
-B4-8B-19   (hex)               Apple, Inc.\r
-B48B19     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 00-AF-1F   (hex)               Cisco Systems, Inc\r
 00AF1F     (base 16)           Cisco Systems, Inc\r
                                80 West Tasman Drive\r
@@ -80912,24 +81056,6 @@ A81559     (base 16)           Breathometer, Inc.
                                Burlingame  CA  94010\r
                                US\r
 \r
-EC-AD-B8   (hex)               Apple, Inc.\r
-ECADB8     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-98-01-A7   (hex)               Apple, Inc.\r
-9801A7     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-2C-F0-A2   (hex)               Apple, Inc.\r
-2CF0A2     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 C0-97-27   (hex)               SAMSUNG ELECTRO-MECHANICS(THAILAND)\r
 C09727     (base 16)           SAMSUNG ELECTRO-MECHANICS(THAILAND)\r
                                93Moo5T. Bangsamak SEMTHAI, WELLGROW INDUSTRIAL ESTATE\r
@@ -82616,24 +82742,6 @@ E00DB9     (base 16)           Cree, Inc.
                                anyang-si  kyunggi-do  14057\r
                                KR\r
 \r
-60-9A-C1   (hex)               Apple, Inc.\r
-609AC1     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-F0-79-60   (hex)               Apple, Inc.\r
-F07960     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-9C-8B-A0   (hex)               Apple, Inc.\r
-9C8BA0     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 98-40-BB   (hex)               Dell Inc.\r
 9840BB     (base 16)           Dell Inc.\r
                                One Dell Way\r
@@ -82652,12 +82760,6 @@ E04FBD     (base 16)           SICHUAN TIANYI COMHEART TELECOMCO.,LTD
                                San Jose  CA  94568\r
                                US\r
 \r
-4C-32-75   (hex)               Apple, Inc.\r
-4C3275     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 00-06-F4   (hex)               Prime Electronics & Satellitics Inc.\r
 0006F4     (base 16)           Prime Electronics & Satellitics Inc.\r
                                69,Tung-Yuan Rd\r
@@ -83081,30 +83183,6 @@ B0F963     (base 16)           Hangzhou H3C Technologies Co., Limited
                                Hangzhou  Zhejiang, P.R.China  310052\r
                                CN\r
 \r
-E4-E4-AB   (hex)               Apple, Inc.\r
-E4E4AB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-58-40-4E   (hex)               Apple, Inc.\r
-58404E     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-DC-0C-5C   (hex)               Apple, Inc.\r
-DC0C5C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-2C-20-0B   (hex)               Apple, Inc.\r
-2C200B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 98-B6-E9   (hex)               Nintendo Co.,Ltd\r
 98B6E9     (base 16)           Nintendo Co.,Ltd\r
                                11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU\r
@@ -83447,18 +83525,6 @@ AC63BE     (base 16)           Amazon Technologies Inc.
                                Reno  NV  89507\r
                                US\r
 \r
-DC-A4-CA   (hex)               Apple, Inc.\r
-DCA4CA     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-8C-8F-E9   (hex)               Apple, Inc.\r
-8C8FE9     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 40-FA-7F   (hex)               Preh Car Connect GmbH\r
 40FA7F     (base 16)           Preh Car Connect GmbH\r
                                Gewerbepark 5\r
@@ -83513,24 +83579,6 @@ F85971     (base 16)           Intel Corporate
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-98-10-E8   (hex)               Apple, Inc.\r
-9810E8     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-B4-9C-DF   (hex)               Apple, Inc.\r
-B49CDF     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-4C-82-CF   (hex)               Echostar Technologies Corp\r
-4C82CF     (base 16)           Echostar Technologies Corp\r
-                               94 Inverness Terrace E\r
-                               Englewood  CO  80112\r
-                               US\r
-\r
 F4-96-34   (hex)               Intel Corporate\r
 F49634     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3\r
@@ -84932,54 +84980,6 @@ CC7EE7     (base 16)           Panasonic Corporation AVC Networks Company
                                San Jose  CA  94568\r
                                US\r
 \r
-A4-E9-75   (hex)               Apple, Inc.\r
-A4E975     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-C0-A5-3E   (hex)               Apple, Inc.\r
-C0A53E     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-98-00-C6   (hex)               Apple, Inc.\r
-9800C6     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-78-7B-8A   (hex)               Apple, Inc.\r
-787B8A     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-38-66-F0   (hex)               Apple, Inc.\r
-3866F0     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-20-EE-28   (hex)               Apple, Inc.\r
-20EE28     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-08-F4-AB   (hex)               Apple, Inc.\r
-08F4AB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-8C-85-90   (hex)               Apple, Inc.\r
-8C8590     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 FC-01-7C   (hex)               Hon Hai Precision Ind. Co.,Ltd.\r
 FC017C     (base 16)           Hon Hai Precision Ind. Co.,Ltd.\r
                                Building D21,No.1, East Zone 1st Road\r
@@ -85133,12 +85133,6 @@ C850E9     (base 16)           Raisecom Technology CO., LTD
                                Austin  TX  78701\r
                                US\r
 \r
-50-4E-DC   (hex)               Ping Communication\r
-504EDC     (base 16)           Ping Communication\r
-                               Brenden 18\r
-                               Appenzell Meistersrüte  AI  9050\r
-                               CH\r
-\r
 50-F7-22   (hex)               Cisco Systems, Inc\r
 50F722     (base 16)           Cisco Systems, Inc\r
                                80 West Tasman Drive\r
@@ -85271,599 +85265,1637 @@ F092B4     (base 16)               SICHUAN TIANYI COMHEART TELECOMCO., LTD
                                Draper  UT  84020-9021\r
                                US\r
 \r
-00-50-FC   (hex)               Edimax Technology Co. Ltd.\r
-0050FC     (base 16)           Edimax Technology Co. Ltd.\r
-                               No. 278, Xinhu 1st Road\r
-                               Taipei City  Neihu Dist  248\r
-                               TW\r
-\r
-74-83-EF   (hex)               Arista Networks\r
-7483EF     (base 16)           Arista Networks\r
-                               5453 Great America Parkway\r
-                               Santa Clara  CA  95054\r
+00-50-FC   (hex)               Edimax Technology Co. Ltd.\r
+0050FC     (base 16)           Edimax Technology Co. Ltd.\r
+                               No. 278, Xinhu 1st Road\r
+                               Taipei City  Neihu Dist  248\r
+                               TW\r
+\r
+74-83-EF   (hex)               Arista Networks\r
+7483EF     (base 16)           Arista Networks\r
+                               5453 Great America Parkway\r
+                               Santa Clara  CA  95054\r
+                               US\r
+\r
+00-1C-73   (hex)               Arista Networks\r
+001C73     (base 16)           Arista Networks\r
+                               5470 Great America Pkwy\r
+                               Santa Clara  California  95054\r
+                               US\r
+\r
+38-AD-8E   (hex)               New H3C Technologies Co., Ltd\r
+38AD8E     (base 16)           New H3C Technologies Co., Ltd\r
+                               466 Changhe Road, Binjiang District\r
+                               Hangzhou  Zhejiang  310052\r
+                               CN\r
+\r
+00-12-48   (hex)               Dell EMC\r
+001248     (base 16)           Dell EMC\r
+                               176 South Street\r
+                               Hopkinton  MA  01748\r
+                               US\r
+\r
+00-01-44   (hex)               Dell EMC\r
+000144     (base 16)           Dell EMC\r
+                               228 South St.\r
+                               Hopkinton  MA  01748\r
+                               US\r
+\r
+00-BF-61   (hex)               Samsung Electronics Co.,Ltd\r
+00BF61     (base 16)           Samsung Electronics Co.,Ltd\r
+                               129, Samsung-ro, Youngtongl-Gu\r
+                               Suwon  Gyeonggi-Do  16677\r
+                               KR\r
+\r
+30-9F-FB   (hex)               Ardomus Networks Corporation\r
+309FFB     (base 16)           Ardomus Networks Corporation\r
+                               4F,No. 6 Innovation Road II, Hsinchu Science Park  \r
+                               Hsinchu    300\r
+                               TW\r
+\r
+E4-BD-4B   (hex)               zte corporation\r
+E4BD4B     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
+                               CN\r
+\r
+6C-56-97   (hex)               Amazon Technologies Inc.\r
+6C5697     (base 16)           Amazon Technologies Inc.\r
+                               P.O Box 8102\r
+                               Reno  NV  89507\r
+                               US\r
+\r
+3C-A5-81   (hex)               vivo Mobile Communication Co., Ltd.\r
+3CA581     (base 16)           vivo Mobile Communication Co., Ltd.\r
+                               #283,BBK Road\r
+                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
+                               CN\r
+\r
+F4-EA-B5   (hex)               Aerohive Networks Inc.\r
+F4EAB5     (base 16)           Aerohive Networks Inc.\r
+                               1011 McCarthy Blvd\r
+                               Milpitas  CA  95035\r
+                               US\r
+\r
+F8-20-55   (hex)               Green Information System\r
+F82055     (base 16)           Green Information System\r
+                               #202(Shopping center), Woldong-ro 28, Buk-gu\r
+                               Gwangju    61153\r
+                               KR\r
+\r
+78-5C-28   (hex)               Prime Motion Inc.\r
+785C28     (base 16)           Prime Motion Inc.\r
+                               Akaho 1134-12\r
+                               Komagane  Nagano  399-4117\r
+                               JP\r
+\r
+94-49-96   (hex)               WiSilica Inc\r
+944996     (base 16)           WiSilica Inc\r
+                               23282 Mill Creek Dr #340\r
+                               Laguna Hills  CA  92653\r
+                               US\r
+\r
+00-26-A8   (hex)               DAEHAP HYPER-TECH\r
+0026A8     (base 16)           DAEHAP HYPER-TECH\r
+                               Mega center #1108, SK Techno-Park, #190-1, Sangdaewon-Dong, Jungwon-Gu\r
+                               Seongnam  Gyeonggi-Do  462-807\r
+                               KR\r
+\r
+F8-7B-20   (hex)               Cisco Systems, Inc\r
+F87B20     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+F8-1D-0F   (hex)               Hitron Technologies. Inc\r
+F81D0F     (base 16)           Hitron Technologies. Inc\r
+                               No. 1-8, Lising 1st Rd. Hsinchu Science Park, Hsinchu, 300, Taiwan, R.O.C\r
+                               Hsin-chu  Taiwan  300\r
+                               TW\r
+\r
+30-FB-94   (hex)               Shanghai Fangzhiwei Information Technology CO.,Ltd.\r
+30FB94     (base 16)           Shanghai Fangzhiwei Information Technology CO.,Ltd.\r
+                               The 17th  Building A Unit,No. 1688 Lianhang Road,Minhang District,Shanghai City\r
+                               Shanghai    201100\r
+                               CN\r
+\r
+08-BA-22   (hex)               Swaive Corporation\r
+08BA22     (base 16)           Swaive Corporation\r
+                               3565 Kettmann Road\r
+                               San Jose  CA  95121\r
+                               US\r
+\r
+F8-0C-F3   (hex)               LG Electronics (Mobile Communications)\r
+F80CF3     (base 16)           LG Electronics (Mobile Communications)\r
+                               60-39, Gasan-dong, Geumcheon-gu\r
+                               Seoul    153-801\r
+                               KR\r
+\r
+30-76-6F   (hex)               LG Electronics (Mobile Communications)\r
+30766F     (base 16)           LG Electronics (Mobile Communications)\r
+                               60-39, Gasan-dong, Geumcheon-gu\r
+                               Seoul    153-801\r
+                               KR\r
+\r
+8C-3A-E3   (hex)               LG Electronics (Mobile Communications)\r
+8C3AE3     (base 16)           LG Electronics (Mobile Communications)\r
+                               60-39, Gasan-dong, Geumcheon-gu\r
+                               Seoul    153-801\r
+                               KR\r
+\r
+94-2A-3F   (hex)               Diversey Inc\r
+942A3F     (base 16)           Diversey Inc\r
+                               2415 Cascade Pointe Blvd\r
+                               Charlotte  NC  28208\r
+                               US\r
+\r
+78-F8-82   (hex)               LG Electronics (Mobile Communications)\r
+78F882     (base 16)           LG Electronics (Mobile Communications)\r
+                               60-39, Gasan-dong, Geumcheon-gu\r
+                               Seoul    153-801\r
+                               KR\r
+\r
+0C-61-11   (hex)               Anda Technologies SAC\r
+0C6111     (base 16)           Anda Technologies SAC\r
+                               Av. Santa Cruz 888, Miraflores\r
+                               Lima  Peru  Lima18\r
+                               PE\r
+\r
+B8-F7-4A   (hex)               RCNTEC\r
+B8F74A     (base 16)           RCNTEC\r
+                               Polkovaya street 3\r
+                               Moscow    127018\r
+                               RU\r
+\r
+C8-D1-2A   (hex)               Comtrend Corporation\r
+C8D12A     (base 16)           Comtrend Corporation\r
+                               3F-1, No. 10, Lane 609, Chung Hsin Road, Sec 5, San Chung Dist.\r
+                               New Taipei City  Taiwan  24159\r
+                               TW\r
+\r
+B4-F1-DA   (hex)               LG Electronics (Mobile Communications)\r
+B4F1DA     (base 16)           LG Electronics (Mobile Communications)\r
+                               60-39, Gasan-dong, Geumcheon-gu\r
+                               Seoul    153-801\r
+                               KR\r
+\r
+00-21-FB   (hex)               LG Electronics (Mobile Communications)\r
+0021FB     (base 16)           LG Electronics (Mobile Communications)\r
+                               60-39, Gasan-dong, Geumcheon-gu\r
+                               Seoul    153-801\r
+                               KR\r
+\r
+D0-13-FD   (hex)               LG Electronics (Mobile Communications)\r
+D013FD     (base 16)           LG Electronics (Mobile Communications)\r
+                               60-39, Gasan-dong, Geumcheon-gu\r
+                               Seoul    153-801\r
+                               KR\r
+\r
+A8-B8-6E   (hex)               LG Electronics (Mobile Communications)\r
+A8B86E     (base 16)           LG Electronics (Mobile Communications)\r
+                               60-39, Gasan-dong, Geumcheon-gu\r
+                               Seoul    153-801\r
+                               KR\r
+\r
+DC-4F-22   (hex)               Espressif Inc.\r
+DC4F22     (base 16)           Espressif Inc.\r
+                               Room 204, Building 2, 690 Bibo Road, Pudong New Area\r
+                               Shanghai  Shanghai  201203\r
+                               CN\r
+\r
+34-2A-F1   (hex)               Texas Instruments\r
+342AF1     (base 16)           Texas Instruments\r
+                               12500 TI Blvd\r
+                               Dallas  TX  75243\r
+                               US\r
+\r
+70-E5-6E   (hex)               Texas Instruments\r
+70E56E     (base 16)           Texas Instruments\r
+                               12500 TI Blvd\r
+                               Dallas  TX  75243\r
+                               US\r
+\r
+F0-85-C1   (hex)               SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.\r
+F085C1     (base 16)           SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.\r
+                               Bldg56A,6/F,Baotian Rd3,Xixiang Town,Baoan District,\r
+                               Shenzhen  Guangdong  518000\r
+                               CN\r
+\r
+C8-DE-C9   (hex)               Coriant\r
+C8DEC9     (base 16)           Coriant\r
+                               1415 W. Diehl Rd\r
+                               Naperville  IL  60563\r
+                               US\r
+\r
+38-0E-4D   (hex)               Cisco Systems, Inc\r
+380E4D     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+FC-9D-D8   (hex)               Beijing TongTongYiLian Science and Technology Ltd.\r
+FC9DD8     (base 16)           Beijing TongTongYiLian Science and Technology Ltd.\r
+                                Room 301,Zone 3,Building 9,No.8 Dongbeiwang West Road,Haidian District,Beijing\r
+                               BEIJING  BEIJING  100193\r
+                               CN\r
+\r
+04-B1-67   (hex)               Xiaomi Communications Co Ltd\r
+04B167     (base 16)           Xiaomi Communications Co Ltd\r
+                               The Rainbow City of China Resources\r
+                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
+                               CN\r
+\r
+38-AD-BE   (hex)               New H3C Technologies Co., Ltd\r
+38ADBE     (base 16)           New H3C Technologies Co., Ltd\r
+                               466 Changhe Road, Binjiang District\r
+                               Hangzhou  Zhejiang  310052\r
+                               CN\r
+\r
+58-19-F8   (hex)               ARRIS Group, Inc.\r
+5819F8     (base 16)           ARRIS Group, Inc.\r
+                               6450 Sequence Drive\r
+                               San Diego  CA  92121\r
+                               US\r
+\r
+20-78-52   (hex)               Nokia\r
+207852     (base 16)           Nokia\r
+                               Karaportti 3\r
+                               Espoo  Finland  02610\r
+                               FI\r
+\r
+AC-64-17   (hex)               Siemens AG - Industrial Automation - EWA\r
+AC6417     (base 16)           Siemens AG - Industrial Automation - EWA\r
+                               Werner-von-Siemens Strasse 50\r
+                               Amberg    92224\r
+                               DE\r
+\r
+CC-5D-4E   (hex)               Zyxel Communications Corporation\r
+CC5D4E     (base 16)           Zyxel Communications Corporation\r
+                               No. 6 Innovation Road II, Science Park\r
+                               Hsichu  Taiwan  300\r
+                               TW\r
+\r
+40-4A-03   (hex)               Zyxel Communications Corporation\r
+404A03     (base 16)           Zyxel Communications Corporation\r
+                               No. 6 Innovation Road II, Science Park\r
+                               Hsichu  Taiwan  300\r
+                               TW\r
+\r
+00-13-49   (hex)               Zyxel Communications Corporation\r
+001349     (base 16)           Zyxel Communications Corporation\r
+                               No. 6 Innovation Road II, Science Park\r
+                               Hsichu  Taiwan  300\r
+                               TW\r
+\r
+1C-74-0D   (hex)               Zyxel Communications Corporation\r
+1C740D     (base 16)           Zyxel Communications Corporation\r
+                               No. 6 Innovation Road II, Science Park\r
+                               Hsichu  Taiwan  300\r
+                               TW\r
+\r
+A0-E4-CB   (hex)               Zyxel Communications Corporation\r
+A0E4CB     (base 16)           Zyxel Communications Corporation\r
+                               No. 6 Innovation Road II, Science Park\r
+                               Hsichu  Taiwan  300\r
+                               TW\r
+\r
+5C-6A-80   (hex)               Zyxel Communications Corporation\r
+5C6A80     (base 16)           Zyxel Communications Corporation\r
+                               No. 6 Innovation Road II, Science Park\r
+                               Hsichu  Taiwan  300\r
+                               TW\r
+\r
+5C-E2-8C   (hex)               Zyxel Communications Corporation\r
+5CE28C     (base 16)           Zyxel Communications Corporation\r
+                               No. 6 Innovation Road II, Science Park\r
+                               Hsichu  Taiwan  300\r
+                               TW\r
+\r
+A8-EE-C6   (hex)               Muuselabs NV/SA\r
+A8EEC6     (base 16)           Muuselabs NV/SA\r
+                               Rue du Tocsin 12\r
+                               Brussels    1000\r
+                               BE\r
+\r
+A0-9D-C1   (hex)               China Dragon Technology Limited\r
+A09DC1     (base 16)           China Dragon Technology Limited\r
+                               B4 Bldg.Haoshan 1st Industry Park,\r
+                               Shenzhen  Guangdong  518104\r
+                               CN\r
+\r
+38-43-7D   (hex)               Compal Broadband Networks, Inc.\r
+38437D     (base 16)           Compal Broadband Networks, Inc.\r
+                               13F., No.1, Taiyuan 1st St.\r
+                               Zhubei City  Hsinchu County  30265\r
+                               TW\r
+\r
+5C-86-C1   (hex)               DONGGUAN SOLUM ELECTRONICS CO.,LTD\r
+5C86C1     (base 16)           DONGGUAN SOLUM ELECTRONICS CO.,LTD\r
+                               NO.157,13 Coastal Way TPFTZ\r
+                               TIANJIN    300461\r
+                               CN\r
+\r
+6C-DD-30   (hex)               Cisco Systems, Inc\r
+6CDD30     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+00-80-6C   (hex)               Secure Systems & Services\r
+00806C     (base 16)           Secure Systems & Services\r
+                               24, Chemin de la Pouranque\r
+                               F-13752  LES PENNES MIRABEAU  CS30084\r
+                               FR\r
+\r
+00-02-61   (hex)               Tilgin AB\r
+000261     (base 16)           Tilgin AB\r
+                               Finlandsgatan 40\r
+                                   \r
+                               SE\r
+\r
+AC-E2-D3   (hex)               Hewlett Packard\r
+ACE2D3     (base 16)           Hewlett Packard\r
+                               11445 Compaq Center Drive\r
+                               Houston  TX  77070\r
+                               US\r
+\r
+28-2F-C2   (hex)               Automotive Data Solutions\r
+282FC2     (base 16)           Automotive Data Solutions\r
+                               8400 rue Bougainville\r
+                               Montreal  Quebec  H4P2G1\r
+                               CA\r
+\r
+00-1D-38   (hex)               Seagate Technology\r
+001D38     (base 16)           Seagate Technology\r
+                               M/S NW1F01\r
+                               Longmont  CO  80503\r
+                               US\r
+\r
+68-3E-02   (hex)               SIEMENS AG, Digital Factory, Motion Control System\r
+683E02     (base 16)           SIEMENS AG, Digital Factory, Motion Control System\r
+                               Varey Road\r
+                               Congleton  Cheshire  CW12 1PH\r
+                               GB\r
+\r
+34-E3-80   (hex)               Genexis B.V.\r
+34E380     (base 16)           Genexis B.V.\r
+                               Lodewijkstraat 1A\r
+                               Eindhoven    5652AC\r
+                               NL\r
+\r
+2C-B2-1A   (hex)               Phicomm (Shanghai) Co., Ltd.\r
+2CB21A     (base 16)           Phicomm (Shanghai) Co., Ltd.\r
+                               3666 SiXian Rd.,Songjiang District\r
+                               Shanghai  Shanghai  201616\r
+                               CN\r
+\r
+CC-81-DA   (hex)               Phicomm (Shanghai) Co., Ltd.\r
+CC81DA     (base 16)           Phicomm (Shanghai) Co., Ltd.\r
+                               3666 SiXian Rd.,Songjiang District\r
+                               Shanghai  Shanghai  201616\r
+                               CN\r
+\r
+B8-07-16   (hex)               vivo Mobile Communication Co., Ltd.\r
+B80716     (base 16)           vivo Mobile Communication Co., Ltd.\r
+                               #283,BBK Road\r
+                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
+                               CN\r
+\r
+C8-DF-84   (hex)               Texas Instruments\r
+C8DF84     (base 16)           Texas Instruments\r
+                               12500 TI Blvd\r
+                               Dallas  TX  75243\r
+                               US\r
+\r
+5C-0E-8B   (hex)               Extreme Networks, Inc.\r
+5C0E8B     (base 16)           Extreme Networks, Inc.\r
+                               475 Half Day Road\r
+                               Lincolnshire  IL  60069\r
+                               US\r
+\r
+B4-C7-99   (hex)               Extreme Networks, Inc.\r
+B4C799     (base 16)           Extreme Networks, Inc.\r
+                               475 Half Day Road\r
+                               Lincolnshire  IL  60069\r
+                               US\r
+\r
+74-67-F7   (hex)               Extreme Networks, Inc.\r
+7467F7     (base 16)           Extreme Networks, Inc.\r
+                               1 Zebra Plaza\r
+                               Holtsville  NY  11742\r
+                               US\r
+\r
+98-00-74   (hex)               Raisecom Technology CO., LTD\r
+980074     (base 16)           Raisecom Technology CO., LTD\r
+                               No. 11, East Area, No. 10 Block, East Xibeiwang Road\r
+                               Beijing    100094\r
+                               CN\r
+\r
+18-C1-9D   (hex)               Integrated Device Technology (Malaysia) Sdn. Bhd.\r
+18C19D     (base 16)           Integrated Device Technology (Malaysia) Sdn. Bhd.\r
+                               Phase 3, Bayan Lepas FIZ\r
+                               Bayan Lepas  Penang  11900\r
+                               MY\r
+\r
+00-E0-2B   (hex)               Extreme Networks, Inc.\r
+00E02B     (base 16)           Extreme Networks, Inc.\r
+                               10460 BANDLEY DRIVE\r
+                               CUPERINT0  CA  95014\r
+                               US\r
+\r
+A4-86-AE   (hex)               Quectel Wireless Solutions\r
+A486AE     (base 16)           Quectel Wireless Solutions\r
+                               No.1801 Hongmei Road, Xuhui District\r
+                               Shanghai    200233\r
+                               CN\r
+\r
+70-26-05   (hex)               SONY Visual Products Inc.\r
+702605     (base 16)           SONY Visual Products Inc.\r
+                               2-10-1 Osaki\r
+                               Shinagawa-ku  Tokyo  141-8610\r
+                               JP\r
+\r
+5C-5F-67   (hex)               Intel Corporate\r
+5C5F67     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3\r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+7C-76-35   (hex)               Intel Corporate\r
+7C7635     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3\r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+DC-48-B2   (hex)               Baraja Pty. Ltd.\r
+DC48B2     (base 16)           Baraja Pty. Ltd.\r
+                               36 Bradfield Road\r
+                               West Lindfield  NSW  2070\r
+                               AU\r
+\r
+00-01-23   (hex)               Schneider Electric Japan Holdings Ltd.\r
+000123     (base 16)           Schneider Electric Japan Holdings Ltd.\r
+                               Schneider Electric Osaka Building\r
+                               4-4-9 Kitahama  Chuo-ku, Osaka  541-0041\r
+                               JP\r
+\r
+D8-63-75   (hex)               Xiaomi Communications Co Ltd\r
+D86375     (base 16)           Xiaomi Communications Co Ltd\r
+                               The Rainbow City of China Resources\r
+                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
+                               CN\r
+\r
+DC-BF-E9   (hex)               Motorola Mobility LLC, a Lenovo Company\r
+DCBFE9     (base 16)           Motorola Mobility LLC, a Lenovo Company\r
+                               222 West Merchandise Mart Plaza\r
+                               Chicago  IL  60654\r
+                               US\r
+\r
+2C-37-C5   (hex)               Qingdao Haier Intelligent Home Appliance Technology Co.,Ltd\r
+2C37C5     (base 16)           Qingdao Haier Intelligent Home Appliance Technology Co.,Ltd\r
+                               ingdao high-tech park haier road 1\r
+                               Qingdao  Shandong  266101\r
+                               CN\r
+\r
+74-95-EC   (hex)               ALPS ELECTRIC CO.,LTD.\r
+7495EC     (base 16)           ALPS ELECTRIC CO.,LTD.\r
+                               6-1\r
+                               Kakuda  Miyagi-Pref  981-1595\r
+                               JP\r
+\r
+18-52-82   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+185282     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
+18-D2-25   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+18D225     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
+04-02-CA   (hex)               Shenzhen Vtsonic Co.,ltd\r
+0402CA     (base 16)           Shenzhen Vtsonic Co.,ltd\r
+                               No.35,the 2nd Industrial Zone,Tangxiayong Village,Songgang Town,Bao'an District,Shenzhen,China.\r
+                               Shenzhen  Guangdong  518102\r
+                               CN\r
+\r
+30-6A-85   (hex)               Samsung Electronics Co.,Ltd\r
+306A85     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
+E4-F1-4C   (hex)               Private\r
+E4F14C     (base 16)           Private\r
+\r
+34-1A-35   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+341A35     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
+6C-A8-58   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+6CA858     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
+74-CC-39   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+74CC39     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
+FC-F6-47   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+FCF647     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan City  Hubei Province  430074\r
+                               CN\r
+\r
+10-88-CE   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+1088CE     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan City  Hubei Province  430074\r
+                               CN\r
+\r
+BC-98-89   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+BC9889     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan City  Hubei Province  430074\r
+                               CN\r
+\r
+E4-2F-26   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+E42F26     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan City  Hubei Province  430074\r
+                               CN\r
+\r
+34-4B-3D   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+344B3D     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan City  Hubei Province  430074\r
+                               CN\r
+\r
+70-B9-21   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+70B921     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
+74-E1-9A   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+74E19A     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
+94-8D-EF   (hex)               Oetiker Schweiz AG\r
+948DEF     (base 16)           Oetiker Schweiz AG\r
+                               Spätzstrasse 11\r
+                               Horgen    8810\r
+                               CH\r
+\r
+74-72-1E   (hex)               Edison Labs Inc.\r
+74721E     (base 16)           Edison Labs Inc.\r
+                               1122 Stanyan St\r
+                               San Francisco  CA  94117\r
+                               US\r
+\r
+A8-36-7A   (hex)               frogblue TECHNOLOGY GmbH\r
+A8367A     (base 16)           frogblue TECHNOLOGY GmbH\r
+                               Luxemburger Straße 6\r
+                               Kaiserslautern  Rheinland-Pfalz  67657\r
+                               DE\r
+\r
+14-4E-34   (hex)               Remote Solution\r
+144E34     (base 16)           Remote Solution\r
+                               92, Chogokri, Nammyun\r
+                               Kimcheon city  Kyungbuk  740-871\r
+                               KR\r
+\r
+EC-65-CC   (hex)               Panasonic Automotive Systems Company of America\r
+EC65CC     (base 16)           Panasonic Automotive Systems Company of America\r
+                               776 Highway 74 South\r
+                               Peachtree City    30269\r
+                               US\r
+\r
+DC-4E-F4   (hex)               Shenzhen MTN Electronics CO., Ltd\r
+DC4EF4     (base 16)           Shenzhen MTN Electronics CO., Ltd\r
+                               MTN Industrial Park, No. 5, 9 South Futai Road, Pingxi Community, Pingdi Street, Longgang District\r
+                               Shenzhen  Guangdong  518117\r
+                               CN\r
+\r
+AC-F8-5C   (hex)               Private\r
+ACF85C     (base 16)           Private\r
+\r
+D4-60-E3   (hex)               Sercomm Corporation.\r
+D460E3     (base 16)           Sercomm Corporation.\r
+                               violet_liu@sercomm.com\r
+                               Miao-Lih Hsuan    115\r
+                               TW\r
+\r
+D0-25-98   (hex)               Apple, Inc.\r
+D02598     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A8-66-7F   (hex)               Apple, Inc.\r
+A8667F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+70-14-A6   (hex)               Apple, Inc.\r
+7014A6     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+10-41-7F   (hex)               Apple, Inc.\r
+10417F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+AC-29-3A   (hex)               Apple, Inc.\r
+AC293A     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+94-E9-6A   (hex)               Apple, Inc.\r
+94E96A     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+0C-4D-E9   (hex)               Apple, Inc.\r
+0C4DE9     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+90-72-40   (hex)               Apple, Inc.\r
+907240     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A8-88-08   (hex)               Apple, Inc.\r
+A88808     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+C8-E0-EB   (hex)               Apple, Inc.\r
+C8E0EB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+54-E4-3A   (hex)               Apple, Inc.\r
+54E43A     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+28-E1-4C   (hex)               Apple, Inc.\r
+28E14C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+84-8E-0C   (hex)               Apple, Inc.\r
+848E0C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+B0-34-95   (hex)               Apple, Inc.\r
+B03495     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+F0-F6-1C   (hex)               Apple, Inc.\r
+F0F61C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+0C-30-21   (hex)               Apple, Inc.\r
+0C3021     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+D8-96-95   (hex)               Apple, Inc.\r
+D89695     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+64-9A-BE   (hex)               Apple, Inc.\r
+649ABE     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+5C-F5-DA   (hex)               Apple, Inc.\r
+5CF5DA     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+20-A2-E4   (hex)               Apple, Inc.\r
+20A2E4     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+F0-24-75   (hex)               Apple, Inc.\r
+F02475     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+24-A0-74   (hex)               Apple, Inc.\r
+24A074     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+88-63-DF   (hex)               Apple, Inc.\r
+8863DF     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+60-92-17   (hex)               Apple, Inc.\r
+609217     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+34-E2-FD   (hex)               Apple, Inc.\r
+34E2FD     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+0C-3E-9F   (hex)               Apple, Inc.\r
+0C3E9F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+6C-70-9F   (hex)               Apple, Inc.\r
+6C709F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+6C-40-08   (hex)               Apple, Inc.\r
+6C4008     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+5C-97-F3   (hex)               Apple, Inc.\r
+5C97F3     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+90-FD-61   (hex)               Apple, Inc.\r
+90FD61     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-61-71   (hex)               Apple, Inc.\r
+006171     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+80-E6-50   (hex)               Apple, Inc.\r
+80E650     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+DC-2B-2A   (hex)               Apple, Inc.\r
+DC2B2A     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+B8-44-D9   (hex)               Apple, Inc.\r
+B844D9     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+E0-F5-C6   (hex)               Apple, Inc.\r
+E0F5C6     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+94-94-26   (hex)               Apple, Inc.\r
+949426     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+CC-29-F5   (hex)               Apple, Inc.\r
+CC29F5     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+58-40-4E   (hex)               Apple, Inc.\r
+58404E     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+DC-0C-5C   (hex)               Apple, Inc.\r
+DC0C5C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+2C-20-0B   (hex)               Apple, Inc.\r
+2C200B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+DC-A4-CA   (hex)               Apple, Inc.\r
+DCA4CA     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+8C-8F-E9   (hex)               Apple, Inc.\r
+8C8FE9     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+98-10-E8   (hex)               Apple, Inc.\r
+9810E8     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+B4-9C-DF   (hex)               Apple, Inc.\r
+B49CDF     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A4-E9-75   (hex)               Apple, Inc.\r
+A4E975     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+C0-A5-3E   (hex)               Apple, Inc.\r
+C0A53E     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+98-00-C6   (hex)               Apple, Inc.\r
+9800C6     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+78-7B-8A   (hex)               Apple, Inc.\r
+787B8A     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+38-66-F0   (hex)               Apple, Inc.\r
+3866F0     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+20-EE-28   (hex)               Apple, Inc.\r
+20EE28     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+08-F4-AB   (hex)               Apple, Inc.\r
+08F4AB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+8C-85-90   (hex)               Apple, Inc.\r
+8C8590     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+B4-8B-19   (hex)               Apple, Inc.\r
+B48B19     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+E4-9A-79   (hex)               Apple, Inc.\r
+E49A79     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+28-A0-2B   (hex)               Apple, Inc.\r
+28A02B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+B4-4B-D2   (hex)               Apple, Inc.\r
+B44BD2     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+2C-F0-A2   (hex)               Apple, Inc.\r
+2CF0A2     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+EC-AD-B8   (hex)               Apple, Inc.\r
+ECADB8     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+98-01-A7   (hex)               Apple, Inc.\r
+9801A7     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+60-9A-C1   (hex)               Apple, Inc.\r
+609AC1     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+F0-79-60   (hex)               Apple, Inc.\r
+F07960     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+9C-8B-A0   (hex)               Apple, Inc.\r
+9C8BA0     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+4C-32-75   (hex)               Apple, Inc.\r
+4C3275     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+E4-E4-AB   (hex)               Apple, Inc.\r
+E4E4AB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+C8-33-4B   (hex)               Apple, Inc.\r
+C8334B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-F4-B9   (hex)               Apple, Inc.\r
+00F4B9     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+0C-77-1A   (hex)               Apple, Inc.\r
+0C771A     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-1C-73   (hex)               Arista Networks\r
-001C73     (base 16)           Arista Networks\r
-                               5470 Great America Pkwy\r
-                               Santa Clara  California  95054\r
+74-E1-B6   (hex)               Apple, Inc.\r
+74E1B6     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-38-AD-8E   (hex)               New H3C Technologies Co., Ltd\r
-38AD8E     (base 16)           New H3C Technologies Co., Ltd\r
-                               466 Changhe Road, Binjiang District\r
-                               Hangzhou  Zhejiang  310052\r
-                               CN\r
+64-20-0C   (hex)               Apple, Inc.\r
+64200C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-B0-CA-68   (hex)               Apple, Inc.\r
-B0CA68     (base 16)           Apple, Inc.\r
+C0-84-7A   (hex)               Apple, Inc.\r
+C0847A     (base 16)           Apple, Inc.\r
                                1 Infinite Loop\r
                                Cupertino  CA  95014\r
                                US\r
 \r
-00-12-48   (hex)               Dell EMC\r
-001248     (base 16)           Dell EMC\r
-                               176 South Street\r
-                               Hopkinton  MA  01748\r
+18-34-51   (hex)               Apple, Inc.\r
+183451     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-01-44   (hex)               Dell EMC\r
-000144     (base 16)           Dell EMC\r
-                               228 South St.\r
-                               Hopkinton  MA  01748\r
+FC-25-3F   (hex)               Apple, Inc.\r
+FC253F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-BF-61   (hex)               Samsung Electronics Co.,Ltd\r
-00BF61     (base 16)           Samsung Electronics Co.,Ltd\r
-                               129, Samsung-ro, Youngtongl-Gu\r
-                               Suwon  Gyeonggi-Do  16677\r
-                               KR\r
+10-40-F3   (hex)               Apple, Inc.\r
+1040F3     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-30-9F-FB   (hex)               Ardomus Networks Corporation\r
-309FFB     (base 16)           Ardomus Networks Corporation\r
-                               4F,No. 6 Innovation Road II, Hsinchu Science Park  \r
-                               Hsinchu    300\r
-                               TW\r
+6C-C2-6B   (hex)               Apple, Inc.\r
+6CC26B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-E4-BD-4B   (hex)               zte corporation\r
-E4BD4B     (base 16)           zte corporation\r
-                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
-                               shenzhen  guangdong  518057\r
-                               CN\r
+18-20-32   (hex)               Apple, Inc.\r
+182032     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-6C-56-97   (hex)               Amazon Technologies Inc.\r
-6C5697     (base 16)           Amazon Technologies Inc.\r
-                               P.O Box 8102\r
-                               Reno  NV  89507\r
+70-DE-E2   (hex)               Apple, Inc.\r
+70DEE2     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-3C-A5-81   (hex)               vivo Mobile Communication Co., Ltd.\r
-3CA581     (base 16)           vivo Mobile Communication Co., Ltd.\r
-                               #283,BBK Road\r
-                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
-                               CN\r
+00-C6-10   (hex)               Apple, Inc.\r
+00C610     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-F4-EA-B5   (hex)               Aerohive Networks Inc.\r
-F4EAB5     (base 16)           Aerohive Networks Inc.\r
-                               1011 McCarthy Blvd\r
-                               Milpitas  CA  95035\r
+10-1C-0C   (hex)               Apple, Inc.\r
+101C0C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-F8-20-55   (hex)               Green Information System\r
-F82055     (base 16)           Green Information System\r
-                               #202(Shopping center), Woldong-ro 28, Buk-gu\r
-                               Gwangju    61153\r
-                               KR\r
+7C-FA-DF   (hex)               Apple, Inc.\r
+7CFADF     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-78-5C-28   (hex)               Prime Motion Inc.\r
-785C28     (base 16)           Prime Motion Inc.\r
-                               Akaho 1134-12\r
-                               Komagane  Nagano  399-4117\r
-                               JP\r
+5C-F9-38   (hex)               Apple, Inc.\r
+5CF938     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-94-49-96   (hex)               WiSilica Inc\r
-944996     (base 16)           WiSilica Inc\r
-                               23282 Mill Creek Dr #340\r
-                               Laguna Hills  CA  92653\r
+38-71-DE   (hex)               Apple, Inc.\r
+3871DE     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-00-26-A8   (hex)               DAEHAP HYPER-TECH\r
-0026A8     (base 16)           DAEHAP HYPER-TECH\r
-                               Mega center #1108, SK Techno-Park, #190-1, Sangdaewon-Dong, Jungwon-Gu\r
-                               Seongnam  Gyeonggi-Do  462-807\r
-                               KR\r
+BC-54-36   (hex)               Apple, Inc.\r
+BC5436     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-F8-7B-20   (hex)               Cisco Systems, Inc\r
-F87B20     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
+9C-4F-DA   (hex)               Apple, Inc.\r
+9C4FDA     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-F8-1D-0F   (hex)               Hitron Technologies. Inc\r
-F81D0F     (base 16)           Hitron Technologies. Inc\r
-                               No. 1-8, Lising 1st Rd. Hsinchu Science Park, Hsinchu, 300, Taiwan, R.O.C\r
-                               Hsin-chu  Taiwan  300\r
-                               TW\r
+1C-5C-F2   (hex)               Apple, Inc.\r
+1C5CF2     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-30-FB-94   (hex)               Shanghai Fangzhiwei Information Technology CO.,Ltd.\r
-30FB94     (base 16)           Shanghai Fangzhiwei Information Technology CO.,Ltd.\r
-                               The 17th  Building A Unit,No. 1688 Lianhang Road,Minhang District,Shanghai City\r
-                               Shanghai    201100\r
-                               CN\r
+60-FB-42   (hex)               Apple, Inc.\r
+60FB42     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-08-BA-22   (hex)               Swaive Corporation\r
-08BA22     (base 16)           Swaive Corporation\r
-                               3565 Kettmann Road\r
-                               San Jose  CA  95121\r
+00-25-00   (hex)               Apple, Inc.\r
+002500     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-F8-0C-F3   (hex)               LG Electronics (Mobile Communications)\r
-F80CF3     (base 16)           LG Electronics (Mobile Communications)\r
-                               60-39, Gasan-dong, Geumcheon-gu\r
-                               Seoul    153-801\r
-                               KR\r
+00-23-6C   (hex)               Apple, Inc.\r
+00236C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-30-76-6F   (hex)               LG Electronics (Mobile Communications)\r
-30766F     (base 16)           LG Electronics (Mobile Communications)\r
-                               60-39, Gasan-dong, Geumcheon-gu\r
-                               Seoul    153-801\r
-                               KR\r
+00-21-E9   (hex)               Apple, Inc.\r
+0021E9     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-8C-3A-E3   (hex)               LG Electronics (Mobile Communications)\r
-8C3AE3     (base 16)           LG Electronics (Mobile Communications)\r
-                               60-39, Gasan-dong, Geumcheon-gu\r
-                               Seoul    153-801\r
-                               KR\r
+00-1F-F3   (hex)               Apple, Inc.\r
+001FF3     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-94-2A-3F   (hex)               Diversey Inc\r
-942A3F     (base 16)           Diversey Inc\r
-                               2415 Cascade Pointe Blvd\r
-                               Charlotte  NC  28208\r
+00-1F-5B   (hex)               Apple, Inc.\r
+001F5B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-78-F8-82   (hex)               LG Electronics (Mobile Communications)\r
-78F882     (base 16)           LG Electronics (Mobile Communications)\r
-                               60-39, Gasan-dong, Geumcheon-gu\r
-                               Seoul    153-801\r
-                               KR\r
+00-1E-52   (hex)               Apple, Inc.\r
+001E52     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-0C-61-11   (hex)               Anda Technologies SAC\r
-0C6111     (base 16)           Anda Technologies SAC\r
-                               Av. Santa Cruz 888, Miraflores\r
-                               Lima  Peru  Lima18\r
-                               PE\r
+00-1D-4F   (hex)               Apple, Inc.\r
+001D4F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-B8-F7-4A   (hex)               RCNTEC\r
-B8F74A     (base 16)           RCNTEC\r
-                               Polkovaya street 3\r
-                               Moscow    127018\r
-                               RU\r
+00-11-24   (hex)               Apple, Inc.\r
+001124     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-C8-D1-2A   (hex)               Comtrend Corporation\r
-C8D12A     (base 16)           Comtrend Corporation\r
-                               3F-1, No. 10, Lane 609, Chung Hsin Road, Sec 5, San Chung Dist.\r
-                               New Taipei City  Taiwan  24159\r
-                               TW\r
+A8-FA-D8   (hex)               Apple, Inc.\r
+A8FAD8     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-B4-F1-DA   (hex)               LG Electronics (Mobile Communications)\r
-B4F1DA     (base 16)           LG Electronics (Mobile Communications)\r
-                               60-39, Gasan-dong, Geumcheon-gu\r
-                               Seoul    153-801\r
-                               KR\r
+5C-96-9D   (hex)               Apple, Inc.\r
+5C969D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-21-FB   (hex)               LG Electronics (Mobile Communications)\r
-0021FB     (base 16)           LG Electronics (Mobile Communications)\r
-                               60-39, Gasan-dong, Geumcheon-gu\r
-                               Seoul    153-801\r
-                               KR\r
+E4-8B-7F   (hex)               Apple, Inc.\r
+E48B7F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-D0-13-FD   (hex)               LG Electronics (Mobile Communications)\r
-D013FD     (base 16)           LG Electronics (Mobile Communications)\r
-                               60-39, Gasan-dong, Geumcheon-gu\r
-                               Seoul    153-801\r
-                               KR\r
+84-FC-FE   (hex)               Apple, Inc.\r
+84FCFE     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-A8-B8-6E   (hex)               LG Electronics (Mobile Communications)\r
-A8B86E     (base 16)           LG Electronics (Mobile Communications)\r
-                               60-39, Gasan-dong, Geumcheon-gu\r
-                               Seoul    153-801\r
-                               KR\r
+44-4C-0C   (hex)               Apple, Inc.\r
+444C0C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-DC-4F-22   (hex)               Espressif Inc.\r
-DC4F22     (base 16)           Espressif Inc.\r
-                               Room 204, Building 2, 690 Bibo Road, Pudong New Area\r
-                               Shanghai  Shanghai  201203\r
-                               CN\r
+8C-2D-AA   (hex)               Apple, Inc.\r
+8C2DAA     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-34-2A-F1   (hex)               Texas Instruments\r
-342AF1     (base 16)           Texas Instruments\r
-                               12500 TI Blvd\r
-                               Dallas  TX  75243\r
+6C-3E-6D   (hex)               Apple, Inc.\r
+6C3E6D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-70-E5-6E   (hex)               Texas Instruments\r
-70E56E     (base 16)           Texas Instruments\r
-                               12500 TI Blvd\r
-                               Dallas  TX  75243\r
+18-9E-FC   (hex)               Apple, Inc.\r
+189EFC     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-F0-85-C1   (hex)               SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.\r
-F085C1     (base 16)           SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.\r
-                               Bldg56A,6/F,Baotian Rd3,Xixiang Town,Baoan District,\r
-                               Shenzhen  Guangdong  518000\r
-                               CN\r
+C0-9F-42   (hex)               Apple, Inc.\r
+C09F42     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-C8-DE-C9   (hex)               Coriant\r
-C8DEC9     (base 16)           Coriant\r
-                               1415 W. Diehl Rd\r
-                               Naperville  IL  60563\r
+B8-F6-B1   (hex)               Apple, Inc.\r
+B8F6B1     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-38-0E-4D   (hex)               Cisco Systems, Inc\r
-380E4D     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
+40-6C-8F   (hex)               Apple, Inc.\r
+406C8F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-FC-9D-D8   (hex)               Beijing TongTongYiLian Science and Technology Ltd.\r
-FC9DD8     (base 16)           Beijing TongTongYiLian Science and Technology Ltd.\r
-                                Room 301,Zone 3,Building 9,No.8 Dongbeiwang West Road,Haidian District,Beijing\r
-                               BEIJING  BEIJING  100193\r
-                               CN\r
+A4-D1-D2   (hex)               Apple, Inc.\r
+A4D1D2     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-04-B1-67   (hex)               Xiaomi Communications Co Ltd\r
-04B167     (base 16)           Xiaomi Communications Co Ltd\r
-                               The Rainbow City of China Resources\r
-                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
-                               CN\r
+04-0C-CE   (hex)               Apple, Inc.\r
+040CCE     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-38-AD-BE   (hex)               New H3C Technologies Co., Ltd\r
-38ADBE     (base 16)           New H3C Technologies Co., Ltd\r
-                               466 Changhe Road, Binjiang District\r
-                               Hangzhou  Zhejiang  310052\r
-                               CN\r
+D8-9E-3F   (hex)               Apple, Inc.\r
+D89E3F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-58-19-F8   (hex)               ARRIS Group, Inc.\r
-5819F8     (base 16)           ARRIS Group, Inc.\r
-                               6450 Sequence Drive\r
-                               San Diego  CA  92121\r
+28-E7-CF   (hex)               Apple, Inc.\r
+28E7CF     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
                                US\r
 \r
-20-78-52   (hex)               Nokia\r
-207852     (base 16)           Nokia\r
-                               Karaportti 3\r
-                               Espoo  Finland  02610\r
-                               FI\r
+C8-BC-C8   (hex)               Apple, Inc.\r
+C8BCC8     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-AC-64-17   (hex)               Siemens AG - Industrial Automation - EWA\r
-AC6417     (base 16)           Siemens AG - Industrial Automation - EWA\r
-                               Werner-von-Siemens Strasse 50\r
-                               Amberg    92224\r
-                               DE\r
+D8-A2-5E   (hex)               Apple, Inc.\r
+D8A25E     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-CC-5D-4E   (hex)               Zyxel Communications Corporation\r
-CC5D4E     (base 16)           Zyxel Communications Corporation\r
-                               No. 6 Innovation Road II, Science Park\r
-                               Hsichu  Taiwan  300\r
-                               TW\r
+90-84-0D   (hex)               Apple, Inc.\r
+90840D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-40-4A-03   (hex)               Zyxel Communications Corporation\r
-404A03     (base 16)           Zyxel Communications Corporation\r
-                               No. 6 Innovation Road II, Science Park\r
-                               Hsichu  Taiwan  300\r
-                               TW\r
+F8-1E-DF   (hex)               Apple, Inc.\r
+F81EDF     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-00-13-49   (hex)               Zyxel Communications Corporation\r
-001349     (base 16)           Zyxel Communications Corporation\r
-                               No. 6 Innovation Road II, Science Park\r
-                               Hsichu  Taiwan  300\r
-                               TW\r
+B0-CA-68   (hex)               Apple, Inc.\r
+B0CA68     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-1C-74-0D   (hex)               Zyxel Communications Corporation\r
-1C740D     (base 16)           Zyxel Communications Corporation\r
-                               No. 6 Innovation Road II, Science Park\r
-                               Hsichu  Taiwan  300\r
-                               TW\r
+98-CA-33   (hex)               Apple, Inc.\r
+98CA33     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-A0-E4-CB   (hex)               Zyxel Communications Corporation\r
-A0E4CB     (base 16)           Zyxel Communications Corporation\r
-                               No. 6 Innovation Road II, Science Park\r
-                               Hsichu  Taiwan  300\r
-                               TW\r
+68-EF-43   (hex)               Apple, Inc.\r
+68EF43     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-5C-6A-80   (hex)               Zyxel Communications Corporation\r
-5C6A80     (base 16)           Zyxel Communications Corporation\r
-                               No. 6 Innovation Road II, Science Park\r
-                               Hsichu  Taiwan  300\r
-                               TW\r
+CC-2D-B7   (hex)               Apple, Inc.\r
+CC2DB7     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-5C-E2-8C   (hex)               Zyxel Communications Corporation\r
-5CE28C     (base 16)           Zyxel Communications Corporation\r
-                               No. 6 Innovation Road II, Science Park\r
-                               Hsichu  Taiwan  300\r
-                               TW\r
+D4-A3-3D   (hex)               Apple, Inc.\r
+D4A33D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-A8-EE-C6   (hex)               Muuselabs NV/SA\r
-A8EEC6     (base 16)           Muuselabs NV/SA\r
-                               Rue du Tocsin 12\r
-                               Brussels    1000\r
-                               BE\r
+E4-E0-A6   (hex)               Apple, Inc.\r
+E4E0A6     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-A0-9D-C1   (hex)               China Dragon Technology Limited\r
-A09DC1     (base 16)           China Dragon Technology Limited\r
-                               B4 Bldg.Haoshan 1st Industry Park,\r
-                               Shenzhen  Guangdong  518104\r
-                               CN\r
+70-EF-00   (hex)               Apple, Inc.\r
+70EF00     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
 \r
-38-43-7D   (hex)               Compal Broadband Networks, Inc.\r
-38437D     (base 16)           Compal Broadband Networks, Inc.\r
-                               13F., No.1, Taiyuan 1st St.\r
-                               Zhubei City  Hsinchu County  30265\r
-                               TW\r
+A0-39-EE   (hex)               Sagemcom Broadband SAS\r
+A039EE     (base 16)           Sagemcom Broadband SAS\r
+                               250, route de l'Empereur\r
+                               Rueil Malmaison Cedex  hauts de seine  92848\r
+                               FR\r
 \r
-5C-86-C1   (hex)               DONGGUAN SOLUM ELECTRONICS CO.,LTD\r
-5C86C1     (base 16)           DONGGUAN SOLUM ELECTRONICS CO.,LTD\r
-                               NO.157,13 Coastal Way TPFTZ\r
-                               TIANJIN    300461\r
+A4-40-27   (hex)               zte corporation\r
+A44027     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
                                CN\r
 \r
-6C-DD-30   (hex)               Cisco Systems, Inc\r
-6CDD30     (base 16)           Cisco Systems, Inc\r
-                               80 West Tasman Drive\r
-                               San Jose  CA  94568\r
+1C-11-61   (hex)               Ciena Corporation\r
+1C1161     (base 16)           Ciena Corporation\r
+                               7035 Ridge Road\r
+                               Hanover  MD  21076\r
                                US\r
 \r
-00-80-6C   (hex)               Secure Systems & Services\r
-00806C     (base 16)           Secure Systems & Services\r
-                               24, Chemin de la Pouranque\r
-                               F-13752  LES PENNES MIRABEAU  CS30084\r
-                               FR\r
+4C-82-CF   (hex)               Dish Technologies Corp\r
+4C82CF     (base 16)           Dish Technologies Corp\r
+                               94 Inverness Terrace E\r
+                               Englewood  CO  80112\r
+                               US\r
 \r
-00-02-61   (hex)               Tilgin AB\r
-000261     (base 16)           Tilgin AB\r
-                               Finlandsgatan 40\r
-                                   \r
-                               SE\r
+F0-C9-D1   (hex)               GD Midea Air-Conditioning Equipment Co.,Ltd.\r
+F0C9D1     (base 16)           GD Midea Air-Conditioning Equipment Co.,Ltd.\r
+                               Midea Global Innovation Center,Beijiao Town,Shunde\r
+                               Foshan  Guangdong  528311\r
+                               CN\r
 \r
-AC-E2-D3   (hex)               Hewlett Packard\r
-ACE2D3     (base 16)           Hewlett Packard\r
-                               11445 Compaq Center Drive\r
-                               Houston  TX  77070\r
+D4-9C-F4   (hex)               Palo Alto Networks\r
+D49CF4     (base 16)           Palo Alto Networks\r
+                               3000 Tannery Way\r
+                               Santa Clara  CA  95054\r
                                US\r
 \r
-28-2F-C2   (hex)               Automotive Data Solutions\r
-282FC2     (base 16)           Automotive Data Solutions\r
-                               8400 rue Bougainville\r
-                               Montreal  Quebec  H4P2G1\r
-                               CA\r
+3C-57-4F   (hex)               China Mobile Group Device Co.,Ltd.\r
+3C574F     (base 16)           China Mobile Group Device Co.,Ltd.\r
+                               32 Xuanwumen West Street,Xicheng District\r
+                               Beijing    100053\r
+                               CN\r
 \r
-00-1D-38   (hex)               Seagate Technology\r
-001D38     (base 16)           Seagate Technology\r
-                               M/S NW1F01\r
-                               Longmont  CO  80503\r
+50-6B-4B   (hex)               Mellanox Technologies, Inc.\r
+506B4B     (base 16)           Mellanox Technologies, Inc.\r
+                               350 Oakmead Parkway, Suite 100\r
+                               Sunnyvale  CA  94085\r
                                US\r
 \r
-68-3E-02   (hex)               SIEMENS AG, Digital Factory, Motion Control System\r
-683E02     (base 16)           SIEMENS AG, Digital Factory, Motion Control System\r
-                               Varey Road\r
-                               Congleton  Cheshire  CW12 1PH\r
-                               GB\r
+F8-C1-20   (hex)               Xi'an Link-Science Technology Co.,Ltd\r
+F8C120     (base 16)           Xi'an Link-Science Technology Co.,Ltd\r
+                               1/F,Block F,Building zhichao Weilai,No.999,10#Caotan Road,Xi'an\r
+                               xi'an    710016\r
+                               CN\r
 \r
-34-E3-80   (hex)               Genexis B.V.\r
-34E380     (base 16)           Genexis B.V.\r
-                               Lodewijkstraat 1A\r
-                               Eindhoven    5652AC\r
-                               NL\r
+90-3A-72   (hex)               Ruckus Wireless\r
+903A72     (base 16)           Ruckus Wireless\r
+                               350 West Java Drive\r
+                               Sunnyvale  CA  94089\r
+                               US\r
 \r
-2C-B2-1A   (hex)               Phicomm (Shanghai) Co., Ltd.\r
-2CB21A     (base 16)           Phicomm (Shanghai) Co., Ltd.\r
-                               3666 SiXian Rd.,Songjiang District\r
-                               Shanghai  Shanghai  201616\r
+3C-E8-24   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+3CE824     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
                                CN\r
 \r
-CC-81-DA   (hex)               Phicomm (Shanghai) Co., Ltd.\r
-CC81DA     (base 16)           Phicomm (Shanghai) Co., Ltd.\r
-                               3666 SiXian Rd.,Songjiang District\r
-                               Shanghai  Shanghai  201616\r
+E8-AB-F3   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+E8ABF3     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
                                CN\r
 \r
-B8-07-16   (hex)               vivo Mobile Communication Co., Ltd.\r
-B80716     (base 16)           vivo Mobile Communication Co., Ltd.\r
-                               #283,BBK Road\r
-                               Wusha,Chang'An  DongGuan City,Guangdong,  523860\r
+70-06-AC   (hex)               Eastcompeace Technology Co., Ltd\r
+7006AC     (base 16)           Eastcompeace Technology Co., Ltd\r
+                               Number 8 Pinggong Zhong Road,Nanping S&T Industry Community,Zhuhai,Guangdong,519060 China \r
+                               Zhuhai  Guangdong  519060\r
                                CN\r
 \r
-C8-DF-84   (hex)               Texas Instruments\r
-C8DF84     (base 16)           Texas Instruments\r
-                               12500 TI Blvd\r
-                               Dallas  TX  75243\r
-                               US\r
+50-6F-77   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+506F77     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
 \r
-5C-0E-8B   (hex)               Extreme Networks, Inc.\r
-5C0E8B     (base 16)           Extreme Networks, Inc.\r
-                               475 Half Day Road\r
-                               Lincolnshire  IL  60069\r
+2C-95-69   (hex)               ARRIS Group, Inc.\r
+2C9569     (base 16)           ARRIS Group, Inc.\r
+                               6450 Sequence Drive\r
+                               San Diego  CA  92121\r
                                US\r
 \r
-B4-C7-99   (hex)               Extreme Networks, Inc.\r
-B4C799     (base 16)           Extreme Networks, Inc.\r
-                               475 Half Day Road\r
-                               Lincolnshire  IL  60069\r
+50-95-51   (hex)               ARRIS Group, Inc.\r
+509551     (base 16)           ARRIS Group, Inc.\r
+                               6450 Sequence Drive\r
+                               San Diego  CA  92121\r
                                US\r
 \r
-74-67-F7   (hex)               Extreme Networks, Inc.\r
-7467F7     (base 16)           Extreme Networks, Inc.\r
-                               1 Zebra Plaza\r
-                               Holtsville  NY  11742\r
+60-98-13   (hex)               Shanghai Visking Digital Technology Co. LTD\r
+609813     (base 16)           Shanghai Visking Digital Technology Co. LTD\r
+                               Room 1301, Building A8, No.1688 Guoquan North Road, Yangpu District\r
+                               Shanghai    200082\r
+                               CN\r
+\r
+8C-4C-AD   (hex)               Evoluzn Inc.\r
+8C4CAD     (base 16)           Evoluzn Inc.\r
+                               34 Samoset Lane\r
+                               Schaumburg  IL  60193\r
                                US\r
 \r
-98-00-74   (hex)               Raisecom Technology CO., LTD\r
-980074     (base 16)           Raisecom Technology CO., LTD\r
-                               No. 11, East Area, No. 10 Block, East Xibeiwang Road\r
-                               Beijing    100094\r
+A4-D4-B2   (hex)               Shenzhen MeiG Smart Technology Co.,Ltd\r
+A4D4B2     (base 16)           Shenzhen MeiG Smart Technology Co.,Ltd\r
+                               #88 Qinjiang Road, Xuhui District\r
+                               Shanghai    200233\r
                                CN\r
 \r
-18-C1-9D   (hex)               Integrated Device Technology (Malaysia) Sdn. Bhd.\r
-18C19D     (base 16)           Integrated Device Technology (Malaysia) Sdn. Bhd.\r
-                               Phase 3, Bayan Lepas FIZ\r
-                               Bayan Lepas  Penang  11900\r
-                               MY\r
-\r
-00-E0-2B   (hex)               Extreme Networks, Inc.\r
-00E02B     (base 16)           Extreme Networks, Inc.\r
-                               10460 BANDLEY DRIVE\r
-                               CUPERINT0  CA  95014\r
+DC-E5-33   (hex)               IEEE Registration Authority\r
+DCE533     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
                                US\r
 \r
-A4-86-AE   (hex)               Quectel Wireless Solutions\r
-A486AE     (base 16)           Quectel Wireless Solutions\r
-                               No.1801 Hongmei Road, Xuhui District\r
-                               Shanghai    200233\r
+8C-F7-10   (hex)               AMPAK Technology, Inc.\r
+8CF710     (base 16)           AMPAK Technology, Inc.\r
+                               No.1,Jen Ai Road Hsinchu Industrial Park, Hukou\r
+                               Hsinchu  Taiwan ROC.  30352 \r
+                               TW\r
+\r
+38-E1-AA   (hex)               zte corporation\r
+38E1AA     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
                                CN\r
 \r
-70-26-05   (hex)               SONY Visual Products Inc.\r
-702605     (base 16)           SONY Visual Products Inc.\r
-                               2-10-1 Osaki\r
-                               Shinagawa-ku  Tokyo  141-8610\r
-                               JP\r
+18-A2-8A   (hex)               Essel-T Co., Ltd\r
+18A28A     (base 16)           Essel-T Co., Ltd\r
+                               1211 kranztechno, 388 Dunchon-daero\r
+                               Seongnam-si  Jungwon-gu, Gyeonggi-do  13403\r
+                               KR\r
 \r
-5C-5F-67   (hex)               Intel Corporate\r
-5C5F67     (base 16)           Intel Corporate\r
+38-DE-AD   (hex)               Intel Corporate\r
+38DEAD     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3\r
                                Kulim  Kedah  09000\r
                                MY\r
 \r
-7C-76-35   (hex)               Intel Corporate\r
-7C7635     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3\r
-                               Kulim  Kedah  09000\r
-                               MY\r
+74-E1-82   (hex)               Texas Instruments\r
+74E182     (base 16)           Texas Instruments\r
+                               12500 TI Blvd\r
+                               Dallas  TX  75243\r
+                               US\r
 \r
-DC-48-B2   (hex)               Baraja Pty. Ltd.\r
-DC48B2     (base 16)           Baraja Pty. Ltd.\r
-                               36 Bradfield Road\r
-                               West Lindfield  NSW  2070\r
-                               AU\r
+40-BD-32   (hex)               Texas Instruments\r
+40BD32     (base 16)           Texas Instruments\r
+                               12500 TI Blvd\r
+                               Dallas  TX  75243\r
+                               US\r
 \r
-00-01-23   (hex)               Schneider Electric Japan Holdings Ltd.\r
-000123     (base 16)           Schneider Electric Japan Holdings Ltd.\r
-                               Schneider Electric Osaka Building\r
-                               4-4-9 Kitahama  Chuo-ku, Osaka  541-0041\r
-                               JP\r
+3C-17-10   (hex)               Sagemcom Broadband SAS\r
+3C1710     (base 16)           Sagemcom Broadband SAS\r
+                               250, route de l'Empereur\r
+                               Rueil Malmaison Cedex  hauts de seine  92848\r
+                               FR\r
 \r
-D8-63-75   (hex)               Xiaomi Communications Co Ltd\r
-D86375     (base 16)           Xiaomi Communications Co Ltd\r
+C8-FA-E1   (hex)               ARQ Digital LLC\r
+C8FAE1     (base 16)           ARQ Digital LLC\r
+                               2430 Auto Park Way\r
+                               Escondido  CA  92029\r
+                               US\r
+\r
+80-AD-16   (hex)               Xiaomi Communications Co Ltd\r
+80AD16     (base 16)           Xiaomi Communications Co Ltd\r
                                The Rainbow City of China Resources\r
                                NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
                                CN\r
 \r
-DC-BF-E9   (hex)               Motorola Mobility LLC, a Lenovo Company\r
-DCBFE9     (base 16)           Motorola Mobility LLC, a Lenovo Company\r
-                               222 West Merchandise Mart Plaza\r
-                               Chicago  IL  60654\r
-                               US\r
+04-4E-AF   (hex)               LG Innotek\r
+044EAF     (base 16)           LG Innotek\r
+                               26, Hanamsandan 5beon-ro\r
+                               Gwangju  Gwangsan-gu  506-731\r
+                               KR\r
 \r
-2C-37-C5   (hex)               Qingdao Haier Intelligent Home Appliance Technology Co.,Ltd\r
-2C37C5     (base 16)           Qingdao Haier Intelligent Home Appliance Technology Co.,Ltd\r
-                               ingdao high-tech park haier road 1\r
-                               Qingdao  Shandong  266101\r
+DC-A3-33   (hex)               Shenzhen YOUHUA Technology Co., Ltd\r
+DCA333     (base 16)           Shenzhen YOUHUA Technology Co., Ltd\r
+                               Room 407 Shenzhen University-town Business Park,Lishan Road,Taoyuan Street,Nanshan District\r
+                               Shenzhen  Guangdong  518055\r
                                CN\r
 \r
-74-95-EC   (hex)               ALPS ELECTRIC CO.,LTD.\r
-7495EC     (base 16)           ALPS ELECTRIC CO.,LTD.\r
-                               6-1\r
-                               Kakuda  Miyagi-Pref  981-1595\r
-                               JP\r
-\r
-18-52-82   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-185282     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
-                               No.5 DongXin Road\r
-                               Wuhan  Hubei  430074\r
+BC-DD-C2   (hex)               Espressif Inc.\r
+BCDDC2     (base 16)           Espressif Inc.\r
+                               Room 204, Building 2, 690 Bibo Road, Pudong New Area\r
+                               Shanghai  Shanghai  201203\r
                                CN\r
 \r
-18-D2-25   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-18D225     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
-                               No.5 DongXin Road\r
-                               Wuhan  Hubei  430074\r
+FC-7C-02   (hex)               Phicomm (Shanghai) Co., Ltd.\r
+FC7C02     (base 16)           Phicomm (Shanghai) Co., Ltd.\r
+                               3666 SiXian Rd.,Songjiang District\r
+                               Shanghai  Shanghai  201616\r
                                CN\r
 \r
-04-02-CA   (hex)               Shenzhen Vtsonic Co.,ltd\r
-0402CA     (base 16)           Shenzhen Vtsonic Co.,ltd\r
-                               No.35,the 2nd Industrial Zone,Tangxiayong Village,Songgang Town,Bao'an District,Shenzhen,China.\r
-                               Shenzhen  Guangdong  518102\r
-                               CN\r
+88-A9-A7   (hex)               IEEE Registration Authority\r
+88A9A7     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
+                               US\r
 \r
-30-6A-85   (hex)               Samsung Electronics Co.,Ltd\r
-306A85     (base 16)           Samsung Electronics Co.,Ltd\r
-                               #94-1, Imsoo-Dong\r
-                               Gumi  Gyeongbuk  730-350\r
-                               KR\r
+F0-E3-DC   (hex)               Tecon MT, LLC\r
+F0E3DC     (base 16)           Tecon MT, LLC\r
+                               3rd Khoroshevskaya st - 20\r
+                               Moscow    123298\r
+                               RU\r
 \r
-E4-F1-4C   (hex)               Private\r
-E4F14C     (base 16)           Private\r
+30-B2-16   (hex)               ABB AG - Power Grids - Grid Automation\r
+30B216     (base 16)           ABB AG - Power Grids - Grid Automation\r
+                               Kallstadter Strasse 1\r
+                               Mannheim    68309\r
+                               DE\r
 \r
-34-1A-35   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-341A35     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
-                               No.5 DongXin Road\r
-                               Wuhan  Hubei  430074\r
-                               CN\r
+00-D0-CE   (hex)               iSystem Labs \r
+00D0CE     (base 16)           iSystem Labs \r
+                               BRODISCE 7, 10C \r
+                               Trzin    1236\r
+                               SI\r
 \r
-6C-A8-58   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-6CA858     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
-                               No.5 DongXin Road\r
-                               Wuhan  Hubei  430074\r
-                               CN\r
+00-BE-75   (hex)               Cisco Systems, Inc\r
+00BE75     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
 \r
-74-CC-39   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-74CC39     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
-                               No.5 DongXin Road\r
-                               Wuhan  Hubei  430074\r
-                               CN\r
+50-4E-DC   (hex)               Ping Communication\r
+504EDC     (base 16)           Ping Communication\r
+                               Brenden 18\r
+                               Appenzell Meistersrüte  AI  9050\r
+                               CH\r
 \r
-FC-F6-47   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-FCF647     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
-                               No.5 DongXin Road\r
-                               Wuhan City  Hubei Province  430074\r
-                               CN\r
+20-67-7C   (hex)               Hewlett Packard Enterprise\r
+20677C     (base 16)           Hewlett Packard Enterprise\r
+                               8000 Foothills Blvd.\r
+                               Roseville  CA  95747\r
+                               US\r
 \r
-10-88-CE   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-1088CE     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
-                               No.5 DongXin Road\r
-                               Wuhan City  Hubei Province  430074\r
+C4-2C-4F   (hex)               Qingdao Hisense Mobile Communication Technology Co,Ltd\r
+C42C4F     (base 16)           Qingdao Hisense Mobile Communication Technology Co,Ltd\r
+                               No.399, Song Ling Road\r
+                               Qingdao  Shandong  266100\r
                                CN\r
 \r
-BC-98-89   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-BC9889     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+24-CA-CB   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+24CACB     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
                                No.5 DongXin Road\r
-                               Wuhan City  Hubei Province  430074\r
+                               Wuhan  Hubei  430074\r
                                CN\r
 \r
-E4-2F-26   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-E42F26     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
-                               No.5 DongXin Road\r
-                               Wuhan City  Hubei Province  430074\r
-                               CN\r
+24-0A-63   (hex)               ARRIS Group, Inc.\r
+240A63     (base 16)           ARRIS Group, Inc.\r
+                               6450 Sequence Drive\r
+                               San Diego  CA  92121\r
+                               US\r
 \r
-34-4B-3D   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-344B3D     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
-                               No.5 DongXin Road\r
-                               Wuhan City  Hubei Province  430074\r
+44-FF-BA   (hex)               zte corporation\r
+44FFBA     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
                                CN\r
 \r
-70-B9-21   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-70B921     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
-                               No.5 DongXin Road\r
-                               Wuhan  Hubei  430074\r
-                               CN\r
+00-23-A8   (hex)               Marshall Electronics\r
+0023A8     (base 16)           Marshall Electronics\r
+                               20608 Madrona Ave\r
+                               Torrance  CA  90503\r
+                               US\r
 \r
-74-E1-9A   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
-74E19A     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
-                               No.5 DongXin Road\r
-                               Wuhan  Hubei  430074\r
-                               CN\r
+B4-81-BF   (hex)               Meta-Networks, LLC\r
+B481BF     (base 16)           Meta-Networks, LLC\r
+                               Office 106C, 5/2, Varshavskaya street\r
+                               Saint-Petersburg  Saint-Petersburg  196128\r
+                               RU\r
 \r
-AC-F8-5C   (hex)               Private\r
-ACF85C     (base 16)           Private\r
+10-1D-51   (hex)               8Mesh Networks\r
+101D51     (base 16)           8Mesh Networks\r
+                               Unit 607, 6/F, Yen Sheng Centre,\r
+                               64 Hoi Yuen Road  Kwun Tong  000\r
+                               HK\r
+\r
+0C-AE-7D   (hex)               Texas Instruments\r
+0CAE7D     (base 16)           Texas Instruments\r
+                               12500 TI Blvd\r
+                               Dallas  TX  75243\r
+                               US\r
 \r
 D8-6C-E9   (hex)               Sagemcom Broadband SAS\r
 D86CE9     (base 16)           Sagemcom Broadband SAS\r
@@ -85901,18 +86933,6 @@ D86CE9     (base 16)           Sagemcom Broadband SAS
                                Irvine  CA  92612\r
                                US\r
 \r
-6C-8D-C1   (hex)               Apple, Inc.\r
-6C8DC1     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-38-CA-DA   (hex)               Apple, Inc.\r
-38CADA     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 8C-57-9B   (hex)               Wistron Neweb Corporation\r
 8C579B     (base 16)           Wistron Neweb Corporation\r
                                No.20,Park Avenue II,Hsinchu Science Park\r
@@ -85943,18 +86963,6 @@ B436A9     (base 16)           Fibocom Wireless Inc.
                                Dongguan  Guangdong  523808 \r
                                CN\r
 \r
-68-DB-CA   (hex)               Apple, Inc.\r
-68DBCA     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-04-4B-ED   (hex)               Apple, Inc.\r
-044BED     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 3C-BB-73   (hex)               Shenzhen Xinguodu Technology Co., Ltd.\r
 3CBB73     (base 16)           Shenzhen Xinguodu Technology Co., Ltd.\r
                                F17A, JinSong Building, Tairan Industrial & Trade Park, Chegongmiao, Shennan Road,Futian District\r
@@ -86339,18 +87347,6 @@ EC52DC     (base 16)           WORLD MEDIA AND TECHNOLOGY Corp.
                                Miami    33132\r
                                US\r
 \r
-A4-D1-8C   (hex)               Apple, Inc.\r
-A4D18C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-CC-25-EF   (hex)               Apple, Inc.\r
-CC25EF     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 24-09-95   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 240995     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
@@ -86897,78 +87893,6 @@ FC9947     (base 16)           Cisco Systems, Inc
                                San Jose  CA  95134\r
                                US\r
 \r
-7C-C5-37   (hex)               Apple, Inc.\r
-7CC537     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-70-CD-60   (hex)               Apple, Inc.\r
-70CD60     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-24-AB-81   (hex)               Apple, Inc.\r
-24AB81     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-58-1F-AA   (hex)               Apple, Inc.\r
-581FAA     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-A4-67-06   (hex)               Apple, Inc.\r
-A46706     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-3C-07-54   (hex)               Apple, Inc.\r
-3C0754     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-E4-CE-8F   (hex)               Apple, Inc.\r
-E4CE8F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-E8-04-0B   (hex)               Apple, Inc.\r
-E8040B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-B8-C7-5D   (hex)               Apple, Inc.\r
-B8C75D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-40-3C-FC   (hex)               Apple, Inc.\r
-403CFC     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-28-6A-B8   (hex)               Apple, Inc.\r
-286AB8     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-7C-C3-A1   (hex)               Apple, Inc.\r
-7CC3A1     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
 00-E1-6D   (hex)               Cisco Systems, Inc\r
 00E16D     (base 16)           Cisco Systems, Inc\r
                                170 West Tasman Drive\r
@@ -87029,84 +87953,6 @@ E0D173     (base 16)           Cisco Systems, Inc
                                San Jose  CA  95134\r
                                US\r
 \r
-B8-78-2E   (hex)               Apple, Inc.\r
-B8782E     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-00-05-02   (hex)               Apple, Inc.\r
-000502     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-10-FA   (hex)               Apple, Inc.\r
-0010FA     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-03-93   (hex)               Apple, Inc.\r
-000393     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-16-CB   (hex)               Apple, Inc.\r
-0016CB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-17-F2   (hex)               Apple, Inc.\r
-0017F2     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-1B-63   (hex)               Apple, Inc.\r
-001B63     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-1E-C2   (hex)               Apple, Inc.\r
-001EC2     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-26-08   (hex)               Apple, Inc.\r
-002608     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-7C-6D-62   (hex)               Apple, Inc.\r
-7C6D62     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-40-D3-2D   (hex)               Apple, Inc.\r
-40D32D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-D8-30-62   (hex)               Apple, Inc.\r
-D83062     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-C4-2C-03   (hex)               Apple, Inc.\r
-C42C03     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
 6C-20-56   (hex)               Cisco Systems, Inc\r
 6C2056     (base 16)           Cisco Systems, Inc\r
                                170 West Tasman Drive\r
@@ -87149,54 +87995,6 @@ F872EA     (base 16)           Cisco Systems, Inc
                                San Jose  CA  95134\r
                                US\r
 \r
-78-9F-70   (hex)               Apple, Inc.\r
-789F70     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-DC-37-14   (hex)               Apple, Inc.\r
-DC3714     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-40-33-1A   (hex)               Apple, Inc.\r
-40331A     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-94-F6-A3   (hex)               Apple, Inc.\r
-94F6A3     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-D8-1D-72   (hex)               Apple, Inc.\r
-D81D72     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-70-EC-E4   (hex)               Apple, Inc.\r
-70ECE4     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-38-C9-86   (hex)               Apple, Inc.\r
-38C986     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-FC-FC-48   (hex)               Apple, Inc.\r
-FCFC48     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 28-57-BE   (hex)               Hangzhou Hikvision Digital Technology Co.,Ltd.\r
 2857BE     (base 16)           Hangzhou Hikvision Digital Technology Co.,Ltd.\r
                                No.469,Jianghui Road\r
@@ -87221,258 +88019,6 @@ F0F249     (base 16)          Hitron Technologies. Inc
                                Hsin-chu  Taiwan  300\r
                                TW\r
 \r
-A4-C3-61   (hex)               Apple, Inc.\r
-A4C361     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-AC-7F-3E   (hex)               Apple, Inc.\r
-AC7F3E     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-28-0B-5C   (hex)               Apple, Inc.\r
-280B5C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-90-B9-31   (hex)               Apple, Inc.\r
-90B931     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-24-A2-E1   (hex)               Apple, Inc.\r
-24A2E1     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-80-EA-96   (hex)               Apple, Inc.\r
-80EA96     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-60-03-08   (hex)               Apple, Inc.\r
-600308     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-04-F1-3E   (hex)               Apple, Inc.\r
-04F13E     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-54-72-4F   (hex)               Apple, Inc.\r
-54724F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-48-74-6E   (hex)               Apple, Inc.\r
-48746E     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-3C-AB-8E   (hex)               Apple, Inc.\r
-3CAB8E     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-7C-6D-F8   (hex)               Apple, Inc.\r
-7C6DF8     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-48-D7-05   (hex)               Apple, Inc.\r
-48D705     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-3C-D0-F8   (hex)               Apple, Inc.\r
-3CD0F8     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-98-D6-BB   (hex)               Apple, Inc.\r
-98D6BB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-4C-B1-99   (hex)               Apple, Inc.\r
-4CB199     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-64-E6-82   (hex)               Apple, Inc.\r
-64E682     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-80-49-71   (hex)               Apple, Inc.\r
-804971     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-98-FE-94   (hex)               Apple, Inc.\r
-98FE94     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-D8-00-4D   (hex)               Apple, Inc.\r
-D8004D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-98-B8-E3   (hex)               Apple, Inc.\r
-98B8E3     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-80-92-9F   (hex)               Apple, Inc.\r
-80929F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-88-53-95   (hex)               Apple, Inc.\r
-885395     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-9C-04-EB   (hex)               Apple, Inc.\r
-9C04EB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-78-FD-94   (hex)               Apple, Inc.\r
-78FD94     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-C8-85-50   (hex)               Apple, Inc.\r
-C88550     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-D4-F4-6F   (hex)               Apple, Inc.\r
-D4F46F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-78-7E-61   (hex)               Apple, Inc.\r
-787E61     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-60-F8-1D   (hex)               Apple, Inc.\r
-60F81D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-4C-7C-5F   (hex)               Apple, Inc.\r
-4C7C5F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-48-E9-F1   (hex)               Apple, Inc.\r
-48E9F1     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-FC-E9-98   (hex)               Apple, Inc.\r
-FCE998     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-F0-99-BF   (hex)               Apple, Inc.\r
-F099BF     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-68-64-4B   (hex)               Apple, Inc.\r
-68644B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-A8-96-8A   (hex)               Apple, Inc.\r
-A8968A     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-4C-8D-79   (hex)               Apple, Inc.\r
-4C8D79     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-20-7D-74   (hex)               Apple, Inc.\r
-207D74     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-F4-F1-5A   (hex)               Apple, Inc.\r
-F4F15A     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-04-26-65   (hex)               Apple, Inc.\r
-042665     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-2C-B4-3A   (hex)               Apple, Inc.\r
-2CB43A     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-68-9C-70   (hex)               Apple, Inc.\r
-689C70     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-08-70-45   (hex)               Apple, Inc.\r
-087045     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
 CC-E0-C3   (hex)               Mangstor, Inc.\r
 CCE0C3     (base 16)           Mangstor, Inc.\r
                                108 Wild Basin Rd\r
@@ -87635,24 +88181,6 @@ D0C193     (base 16)           SKYBELL, INC
                                IRVINE  CA  92618\r
                                US\r
 \r
-20-9B-CD   (hex)               Apple, Inc.\r
-209BCD     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-F0-B0-E7   (hex)               Apple, Inc.\r
-F0B0E7     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-CC-20-E8   (hex)               Apple, Inc.\r
-CC20E8     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 E4-35-C8   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 E435C8     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
@@ -89003,12 +89531,6 @@ B0D7C5     (base 16)           Logipix Ltd
                                Budapest  -  1158\r
                                HU\r
 \r
-38-C9-A9   (hex)               SMART High Reliability Solutions, Inc.\r
-38C9A9     (base 16)           SMART High Reliability Solutions, Inc.\r
-                               2600 W. Geronimo Place\r
-                               Chandler  AZ  85224\r
-                               US\r
-\r
 BC-1A-67   (hex)               YF Technology Co., Ltd\r
 BC1A67     (base 16)           YF Technology Co., Ltd\r
                                No.62,South Fumin Road,\r
@@ -90650,12 +91172,6 @@ CC262D     (base 16)           Verifi, LLC
                                Hangzhou  Zhejiang  310013\r
                                CN\r
 \r
-7C-B2-32   (hex)               Hui Zhou Gaoshengda Technology Co.,LTD\r
-7CB232     (base 16)           Hui Zhou Gaoshengda Technology Co.,LTD\r
-                               No.75,Zhongkai High-Tech Development District,Huizhou\r
-                               Hui Zhou  Guangdong  516006\r
-                               CN\r
-\r
 54-DF-63   (hex)               Intrakey technologies GmbH\r
 54DF63     (base 16)           Intrakey technologies GmbH\r
                                Wiener Strasse 114-116\r
@@ -93251,12 +93767,6 @@ A04041     (base 16)           SAMWONFA Co.,Ltd.
                                Busan    608-042\r
                                KR\r
 \r
-78-8C-54   (hex)               Eltek Technologies LTD\r
-788C54     (base 16)           Eltek Technologies LTD\r
-                               Glatt Tower\r
-                                 8301 Glattzentrum ZH  \r
-                               CH\r
-\r
 94-11-DA   (hex)               ITF Fröschl GmbH\r
 9411DA     (base 16)           ITF Fröschl GmbH\r
                                Hauserbachstraße 9\r
@@ -93353,12 +93863,6 @@ AC6123     (base 16)           Drivven, Inc.
                                Seoul    153-793\r
                                KR\r
 \r
-D4-66-A8   (hex)               Riedo Networks GmbH\r
-D466A8     (base 16)           Riedo Networks GmbH\r
-                               Warpelstrasse 10\r
-                               Duedingen  FR  3186\r
-                               CH\r
-\r
 98-E1-65   (hex)               Accutome\r
 98E165     (base 16)           Accutome\r
                                3222 Phoenixville Pike\r
@@ -97142,12 +97646,6 @@ EC3091     (base 16)           Cisco Systems, Inc
                                Aalen  Baden-Württemberg  73434\r
                                DE\r
 \r
-00-1B-D9   (hex)               Edgewater Computer Systems\r
-001BD9     (base 16)           Edgewater Computer Systems\r
-                               1125 Innovation Drive\r
-                               Ottawa  Ontario  K2K-3G6\r
-                               CA\r
-\r
 00-1B-DB   (hex)               Valeo VECS\r
 001BDB     (base 16)           Valeo VECS\r
                                2 Avenue Fernand Pouillon\r
@@ -109082,12 +109580,6 @@ DC0077     (base 16)         TP-LINK TECHNOLOGIES CO.,LTD.
                                Yokohama, Kanagawa    231-0021\r
                                JP\r
 \r
-F4-5C-89   (hex)               Apple, Inc.\r
-F45C89     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 00-21-FD   (hex)               LACROIX TRAFFIC S.A.U\r
 0021FD     (base 16)           LACROIX TRAFFIC S.A.U\r
                                Majada 4\r
@@ -109124,24 +109616,6 @@ F45C89     (base 16)         Apple, Inc.
                                Sydney  NSW  2000\r
                                AU\r
 \r
-BC-EC-5D   (hex)               Apple, Inc.\r
-BCEC5D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-DC-41-5F   (hex)               Apple, Inc.\r
-DC415F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-30-63-6B   (hex)               Apple, Inc.\r
-30636B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 84-68-3E   (hex)               Intel Corporate\r
 84683E     (base 16)           Intel Corporate\r
                                Lot 8, Jalan Hi-Tech 2/3\r
@@ -109622,12 +110096,6 @@ BC7574     (base 16)         HUAWEI TECHNOLOGIES CO.,LTD
                                Gyeonggi-Do    14523\r
                                KR\r
 \r
-A0-67-BE   (hex)               Sicon srl\r
-A067BE     (base 16)           Sicon srl\r
-                               Via Sila 1/3\r
-                               Isola Vicentina  Vicenza  36033\r
-                               IT\r
-\r
 C4-CA-D9   (hex)               Hangzhou H3C Technologies Co., Limited\r
 C4CAD9     (base 16)           Hangzhou H3C Technologies Co., Limited\r
                                310 Liuhe Road, Zhijiang Science Park\r
@@ -109700,24 +110168,6 @@ C02FF1     (base 16)         Volta Networks
                                Heuchelheim  Hessen  35452\r
                                DE\r
 \r
-0C-51-01   (hex)               Apple, Inc.\r
-0C5101     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-08-6D-41   (hex)               Apple, Inc.\r
-086D41     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-04-D3-CF   (hex)               Apple, Inc.\r
-04D3CF     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 30-C8-2A   (hex)               WI-BIZ srl\r
 30C82A     (base 16)           WI-BIZ srl\r
                                Via Carlo Ferrero 10\r
@@ -110696,30 +111146,12 @@ CCA260     (base 16)                SICHUAN TIANYI COMHEART TELECOMCO.,LTD
                                Chengdu  Sichuan  610000\r
                                CN\r
 \r
-20-3C-AE   (hex)               Apple, Inc.\r
-203CAE     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-74-8D-08   (hex)               Apple, Inc.\r
-748D08     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 00-D7-8F   (hex)               Cisco Systems, Inc\r
 00D78F     (base 16)           Cisco Systems, Inc\r
                                80 West Tasman Drive\r
                                San Jose  CA  94568\r
                                US\r
 \r
-A0-3B-E3   (hex)               Apple, Inc.\r
-A03BE3     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 88-6B-0F   (hex)               Bluegiga Technologies OY\r
 886B0F     (base 16)           Bluegiga Technologies OY\r
                                P.O. BOX 120\r
@@ -111812,36 +112244,6 @@ CCA219     (base 16)         SHENZHEN ALONG INVESTMENT CO.,LTD
                                Vienna    1030\r
                                AT\r
 \r
-64-B0-A6   (hex)               Apple, Inc.\r
-64B0A6     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-84-FC-AC   (hex)               Apple, Inc.\r
-84FCAC     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-6C-19-C0   (hex)               Apple, Inc.\r
-6C19C0     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-20-AB-37   (hex)               Apple, Inc.\r
-20AB37     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-18-65-90   (hex)               Apple, Inc.\r
-186590     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 2C-0B-E9   (hex)               Cisco Systems, Inc\r
 2C0BE9     (base 16)           Cisco Systems, Inc\r
                                80 West Tasman Drive\r
@@ -112298,36 +112700,6 @@ A8A198     (base 16)         TCT mobile ltd
                                Round Rock  TX  78682\r
                                US\r
 \r
-C0-D0-12   (hex)               Apple, Inc.\r
-C0D012     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-D4-DC-CD   (hex)               Apple, Inc.\r
-D4DCCD     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-48-4B-AA   (hex)               Apple, Inc.\r
-484BAA     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-F8-03-77   (hex)               Apple, Inc.\r
-F80377     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-14-BD-61   (hex)               Apple, Inc.\r
-14BD61     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 08-27-CE   (hex)               NAGANO KEIKI CO., LTD.\r
 0827CE     (base 16)           NAGANO KEIKI CO., LTD.\r
                                2150 IKUTA\r
@@ -113644,40 +114016,22 @@ B0350B     (base 16)                MOBIWIRE MOBILES (NINGBO) CO.,LTD
 \r
 E0-48-D3   (hex)               MOBIWIRE MOBILES (NINGBO) CO.,LTD\r
 E048D3     (base 16)           MOBIWIRE MOBILES (NINGBO) CO.,LTD\r
-                               No.999,Dacheng East Road,\r
-                               Fenghua  Zhejiang  315500\r
-                               CN\r
-\r
-24-C4-2F   (hex)               Philips Lifeline\r
-24C42F     (base 16)           Philips Lifeline\r
-                               111 Lawrence st\r
-                               Framingham  MA  01702\r
-                               US\r
-\r
-B8-EE-0E   (hex)               Sagemcom Broadband SAS\r
-B8EE0E     (base 16)           Sagemcom Broadband SAS\r
-                               250, route de l'Empereur\r
-                               Rueil Malmaison Cedex  hauts de seine  92848\r
-                               FR\r
-\r
-78-88-6D   (hex)               Apple, Inc.\r
-78886D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-A8-5C-2C   (hex)               Apple, Inc.\r
-A85C2C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
+                               No.999,Dacheng East Road,\r
+                               Fenghua  Zhejiang  315500\r
+                               CN\r
 \r
-00-DB-70   (hex)               Apple, Inc.\r
-00DB70     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
+24-C4-2F   (hex)               Philips Lifeline\r
+24C42F     (base 16)           Philips Lifeline\r
+                               111 Lawrence st\r
+                               Framingham  MA  01702\r
                                US\r
 \r
+B8-EE-0E   (hex)               Sagemcom Broadband SAS\r
+B8EE0E     (base 16)           Sagemcom Broadband SAS\r
+                               250, route de l'Empereur\r
+                               Rueil Malmaison Cedex  hauts de seine  92848\r
+                               FR\r
+\r
 38-6E-A2   (hex)               vivo Mobile Communication Co., Ltd.\r
 386EA2     (base 16)           vivo Mobile Communication Co., Ltd.\r
                                #283,BBK Road\r
@@ -114011,30 +114365,6 @@ F06E0B     (base 16)         Microsoft Corporation
                                 Zhubei City   Hsinchu County  302\r
                                TW\r
 \r
-80-B0-3D   (hex)               Apple, Inc.\r
-80B03D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-C8-3C-85   (hex)               Apple, Inc.\r
-C83C85     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-A0-4E-A7   (hex)               Apple, Inc.\r
-A04EA7     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-40-9C-28   (hex)               Apple, Inc.\r
-409C28     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 50-C9-A0   (hex)               SKIPPER AS\r
 50C9A0     (base 16)           SKIPPER AS\r
                                Enebakkvn 150\r
@@ -114194,6 +114524,222 @@ D4AD2D     (base 16)                Fiberhome Telecommunication Technologies Co.,LTD
                                Wuhan  Hubei  430074\r
                                CN\r
 \r
+68-57-2D   (hex)               HANGZHOU AIXIANGJI TECHNOLOGY CO., LTD\r
+68572D     (base 16)           HANGZHOU AIXIANGJI TECHNOLOGY CO., LTD\r
+                               7 Floor, 3 Blvd., More Centre, 87 Gudun Rd., Xihu District\r
+                               Hangzhou  Zhejiang  310012\r
+                               CN\r
+\r
+F0-B0-E7   (hex)               Apple, Inc.\r
+F0B0E7     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+20-9B-CD   (hex)               Apple, Inc.\r
+209BCD     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+CC-20-E8   (hex)               Apple, Inc.\r
+CC20E8     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+10-C2-5A   (hex)               Technicolor CH USA Inc.\r
+10C25A     (base 16)           Technicolor CH USA Inc.\r
+                               101 West 103rd St.\r
+                               Indianapolis  IN  46290\r
+                               US\r
+\r
+8C-59-73   (hex)               Zyxel Communications Corporation\r
+8C5973     (base 16)           Zyxel Communications Corporation\r
+                               No. 6 Innovation Road II, Science Park\r
+                               Hsichu  Taiwan  300\r
+                               TW\r
+\r
+94-FE-9D   (hex)               SHENZHEN GONGJIN ELECTRONICS CO.,LT\r
+94FE9D     (base 16)           SHENZHEN GONGJIN ELECTRONICS CO.,LT\r
+                               SONGGANG\r
+                               SHENZHEN  GUANGDONG  518105\r
+                               CN\r
+\r
+04-D1-3A   (hex)               Xiaomi Communications Co Ltd\r
+04D13A     (base 16)           Xiaomi Communications Co Ltd\r
+                               The Rainbow City of China Resources\r
+                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
+                               CN\r
+\r
+24-7E-12   (hex)               Cisco Systems, Inc\r
+247E12     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+E4-2D-7B   (hex)               China Mobile IOT Company Limited\r
+E42D7B     (base 16)           China Mobile IOT Company Limited\r
+                               NO.8 Yu Ma Road, NanAn Area Chongqing,China\r
+                               Chongqing  Chongqing  401336\r
+                               CN\r
+\r
+04-EC-BB   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+04ECBB     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
+0C-54-15   (hex)               Intel Corporate\r
+0C5415     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3\r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+84-DB-9E   (hex)               Aifloo AB\r
+84DB9E     (base 16)           Aifloo AB\r
+                               Postbox 2005\r
+                               Stockholm    10311\r
+                               SE\r
+\r
+B0-B3-AD   (hex)               HUMAX Co., Ltd.\r
+B0B3AD     (base 16)           HUMAX Co., Ltd.\r
+                               HUMAX Village, 216, Hwangsaeul-ro, Bu\r
+                               Seongnam-si  Gyeonggi-do  463-875\r
+                               KR\r
+\r
+38-78-62   (hex)               Sony Mobile Communications AB\r
+387862     (base 16)           Sony Mobile Communications AB\r
+                               Nya Vattentornet\r
+                               Lund  SE  22128\r
+                               SE\r
+\r
+18-31-BF   (hex)               ASUSTek COMPUTER INC.\r
+1831BF     (base 16)           ASUSTek COMPUTER INC.\r
+                               15,Li-Te Rd., Peitou, Taipei 112, Taiwan\r
+                               Taipei  Taiwan  112\r
+                               TW\r
+\r
+7C-25-86   (hex)               Juniper Networks\r
+7C2586     (base 16)           Juniper Networks\r
+                               1133 Innovation Way\r
+                               Sunnyvale  CA  94089\r
+                               US\r
+\r
+00-1B-D9   (hex)               Edgewater Wireless Systems Inc\r
+001BD9     (base 16)           Edgewater Wireless Systems Inc\r
+                               50 HInes Road Suite 200\r
+                               Ottawa  Ontario  K2K-2M5\r
+                               CA\r
+\r
+54-3E-64   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+543E64     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
+D4-F7-86   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+D4F786     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
+64-02-CB   (hex)               ARRIS Group, Inc.\r
+6402CB     (base 16)           ARRIS Group, Inc.\r
+                               6450 Sequence Drive\r
+                               San Diego  CA  92121\r
+                               US\r
+\r
+F0-FC-C8   (hex)               ARRIS Group, Inc.\r
+F0FCC8     (base 16)           ARRIS Group, Inc.\r
+                               6450 Sequence Drive\r
+                               San Diego  CA  92121\r
+                               US\r
+\r
+EC-7F-C6   (hex)               ECCEL CORPORATION SAS\r
+EC7FC6     (base 16)           ECCEL CORPORATION SAS\r
+                               CRA 106 15A 25 LT 88 MZ 17 BG 1, ZONA FRANCA BOGOTA\r
+                               BOGOTA  D.C.  110921\r
+                               CO\r
+\r
+A4-33-D7   (hex)               MitraStar Technology Corp.\r
+A433D7     (base 16)           MitraStar Technology Corp.\r
+                               No. 6, Innovation Road II,\r
+                               Hsinchu    300\r
+                               TW\r
+\r
+B0-AC-D2   (hex)               zte corporation\r
+B0ACD2     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
+                               CN\r
+\r
+7C-2A-31   (hex)               Intel Corporate\r
+7C2A31     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3\r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+0C-F3-46   (hex)               Xiaomi Communications Co Ltd\r
+0CF346     (base 16)           Xiaomi Communications Co Ltd\r
+                               The Rainbow City of China Resources\r
+                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
+                               CN\r
+\r
+20-2D-23   (hex)               Collinear Networks Inc.\r
+202D23     (base 16)           Collinear Networks Inc.\r
+                               2901 Tasman Drive\r
+                               Santa Clara  CA  95054\r
+                               US\r
+\r
+48-18-FA   (hex)               Nocsys\r
+4818FA     (base 16)           Nocsys\r
+                               1F, No. 63 Building, No. 421 Hong Cao Road, Xuhui District\r
+                               Shanghai  Shanghai  200233\r
+                               CN\r
+\r
+78-0F-77   (hex)               HangZhou Gubei Electronics Technology Co.,Ltd\r
+780F77     (base 16)           HangZhou Gubei Electronics Technology Co.,Ltd\r
+                               HangZhou City, Zhejiang province Binjiang District Jiang Hong Road 611 Building 1 room 106\r
+                               Hangzhou  ZheJiang  310052\r
+                               CN\r
+\r
+0C-08-B4   (hex)               HUMAX Co., Ltd.\r
+0C08B4     (base 16)           HUMAX Co., Ltd.\r
+                               HUMAX Village, 216, Hwangsaeul-ro, Bu\r
+                               Seongnam-si  Gyeonggi-do  463-875\r
+                               KR\r
+\r
+00-BF-77   (hex)               Cisco Systems, Inc\r
+00BF77     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+00-3D-E8   (hex)               LG Electronics (Mobile Communications)\r
+003DE8     (base 16)           LG Electronics (Mobile Communications)\r
+                               60-39, Gasan-dong, Geumcheon-gu\r
+                               Seoul    153-801\r
+                               KR\r
+\r
+00-2F-D9   (hex)               Fiberhome Telecommunication Technologies Co.,LTD\r
+002FD9     (base 16)           Fiberhome Telecommunication Technologies Co.,LTD\r
+                               No.5 DongXin Road\r
+                               Wuhan  Hubei  430074\r
+                               CN\r
+\r
+88-5F-E8   (hex)               IEEE Registration Authority\r
+885FE8     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
+                               US\r
+\r
+A0-67-BE   (hex)               Sicon srl\r
+A067BE     (base 16)           Sicon srl\r
+                               Via Sila 1/3\r
+                               Isola Vicentina  Vicenza  36033\r
+                               IT\r
+\r
 54-C5-7A   (hex)               Sunnovo International Limited\r
 54C57A     (base 16)           Sunnovo International Limited\r
                                1717 Haitai Building\r
@@ -114533,6 +115079,888 @@ B42D56     (base 16)                Extreme Networks, Inc.
                                Seongnam-si  Gyeonggi-do  463-875\r
                                KR\r
 \r
+48-74-6E   (hex)               Apple, Inc.\r
+48746E     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+54-72-4F   (hex)               Apple, Inc.\r
+54724F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+04-F1-3E   (hex)               Apple, Inc.\r
+04F13E     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+60-03-08   (hex)               Apple, Inc.\r
+600308     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+80-EA-96   (hex)               Apple, Inc.\r
+80EA96     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+24-A2-E1   (hex)               Apple, Inc.\r
+24A2E1     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+90-B9-31   (hex)               Apple, Inc.\r
+90B931     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+28-0B-5C   (hex)               Apple, Inc.\r
+280B5C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A8-96-8A   (hex)               Apple, Inc.\r
+A8968A     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+9C-04-EB   (hex)               Apple, Inc.\r
+9C04EB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+88-53-95   (hex)               Apple, Inc.\r
+885395     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+80-92-9F   (hex)               Apple, Inc.\r
+80929F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+98-B8-E3   (hex)               Apple, Inc.\r
+98B8E3     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+D8-00-4D   (hex)               Apple, Inc.\r
+D8004D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+98-FE-94   (hex)               Apple, Inc.\r
+98FE94     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+68-64-4B   (hex)               Apple, Inc.\r
+68644B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+F0-99-BF   (hex)               Apple, Inc.\r
+F099BF     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+FC-E9-98   (hex)               Apple, Inc.\r
+FCE998     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+48-E9-F1   (hex)               Apple, Inc.\r
+48E9F1     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+4C-7C-5F   (hex)               Apple, Inc.\r
+4C7C5F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+60-F8-1D   (hex)               Apple, Inc.\r
+60F81D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+68-9C-70   (hex)               Apple, Inc.\r
+689C70     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+2C-B4-3A   (hex)               Apple, Inc.\r
+2CB43A     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+04-26-65   (hex)               Apple, Inc.\r
+042665     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+F4-F1-5A   (hex)               Apple, Inc.\r
+F4F15A     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+20-7D-74   (hex)               Apple, Inc.\r
+207D74     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+4C-8D-79   (hex)               Apple, Inc.\r
+4C8D79     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+FC-FC-48   (hex)               Apple, Inc.\r
+FCFC48     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+38-C9-86   (hex)               Apple, Inc.\r
+38C986     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+70-EC-E4   (hex)               Apple, Inc.\r
+70ECE4     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+D8-1D-72   (hex)               Apple, Inc.\r
+D81D72     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+94-F6-A3   (hex)               Apple, Inc.\r
+94F6A3     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+78-FD-94   (hex)               Apple, Inc.\r
+78FD94     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+48-D7-05   (hex)               Apple, Inc.\r
+48D705     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+7C-6D-F8   (hex)               Apple, Inc.\r
+7C6DF8     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+3C-AB-8E   (hex)               Apple, Inc.\r
+3CAB8E     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+78-7E-61   (hex)               Apple, Inc.\r
+787E61     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+D4-F4-6F   (hex)               Apple, Inc.\r
+D4F46F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+C8-85-50   (hex)               Apple, Inc.\r
+C88550     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+AC-7F-3E   (hex)               Apple, Inc.\r
+AC7F3E     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A4-C3-61   (hex)               Apple, Inc.\r
+A4C361     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+08-70-45   (hex)               Apple, Inc.\r
+087045     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+40-33-1A   (hex)               Apple, Inc.\r
+40331A     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+DC-37-14   (hex)               Apple, Inc.\r
+DC3714     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+78-9F-70   (hex)               Apple, Inc.\r
+789F70     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+64-B0-A6   (hex)               Apple, Inc.\r
+64B0A6     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+84-FC-AC   (hex)               Apple, Inc.\r
+84FCAC     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+6C-19-C0   (hex)               Apple, Inc.\r
+6C19C0     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+20-AB-37   (hex)               Apple, Inc.\r
+20AB37     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+C0-D0-12   (hex)               Apple, Inc.\r
+C0D012     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+D4-DC-CD   (hex)               Apple, Inc.\r
+D4DCCD     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+48-4B-AA   (hex)               Apple, Inc.\r
+484BAA     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+F8-03-77   (hex)               Apple, Inc.\r
+F80377     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+14-BD-61   (hex)               Apple, Inc.\r
+14BD61     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+78-88-6D   (hex)               Apple, Inc.\r
+78886D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A8-5C-2C   (hex)               Apple, Inc.\r
+A85C2C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-DB-70   (hex)               Apple, Inc.\r
+00DB70     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+BC-EC-5D   (hex)               Apple, Inc.\r
+BCEC5D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+DC-41-5F   (hex)               Apple, Inc.\r
+DC415F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+30-63-6B   (hex)               Apple, Inc.\r
+30636B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+0C-51-01   (hex)               Apple, Inc.\r
+0C5101     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+08-6D-41   (hex)               Apple, Inc.\r
+086D41     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+04-D3-CF   (hex)               Apple, Inc.\r
+04D3CF     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+20-3C-AE   (hex)               Apple, Inc.\r
+203CAE     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+74-8D-08   (hex)               Apple, Inc.\r
+748D08     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A0-3B-E3   (hex)               Apple, Inc.\r
+A03BE3     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+18-65-90   (hex)               Apple, Inc.\r
+186590     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-10-FA   (hex)               Apple, Inc.\r
+0010FA     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-05-02   (hex)               Apple, Inc.\r
+000502     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+B8-78-2E   (hex)               Apple, Inc.\r
+B8782E     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A4-D1-8C   (hex)               Apple, Inc.\r
+A4D18C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+CC-25-EF   (hex)               Apple, Inc.\r
+CC25EF     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+68-DB-CA   (hex)               Apple, Inc.\r
+68DBCA     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+04-4B-ED   (hex)               Apple, Inc.\r
+044BED     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+6C-8D-C1   (hex)               Apple, Inc.\r
+6C8DC1     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+38-CA-DA   (hex)               Apple, Inc.\r
+38CADA     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+F4-5C-89   (hex)               Apple, Inc.\r
+F45C89     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+58-1F-AA   (hex)               Apple, Inc.\r
+581FAA     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+24-AB-81   (hex)               Apple, Inc.\r
+24AB81     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+70-CD-60   (hex)               Apple, Inc.\r
+70CD60     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+7C-C5-37   (hex)               Apple, Inc.\r
+7CC537     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+C4-2C-03   (hex)               Apple, Inc.\r
+C42C03     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+D8-30-62   (hex)               Apple, Inc.\r
+D83062     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+40-D3-2D   (hex)               Apple, Inc.\r
+40D32D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+7C-6D-62   (hex)               Apple, Inc.\r
+7C6D62     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+28-6A-B8   (hex)               Apple, Inc.\r
+286AB8     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+40-3C-FC   (hex)               Apple, Inc.\r
+403CFC     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+B8-C7-5D   (hex)               Apple, Inc.\r
+B8C75D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+E8-04-0B   (hex)               Apple, Inc.\r
+E8040B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+E4-CE-8F   (hex)               Apple, Inc.\r
+E4CE8F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+3C-07-54   (hex)               Apple, Inc.\r
+3C0754     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A4-67-06   (hex)               Apple, Inc.\r
+A46706     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+80-B0-3D   (hex)               Apple, Inc.\r
+80B03D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+C8-3C-85   (hex)               Apple, Inc.\r
+C83C85     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A0-4E-A7   (hex)               Apple, Inc.\r
+A04EA7     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+40-9C-28   (hex)               Apple, Inc.\r
+409C28     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+08-E6-89   (hex)               Apple, Inc.\r
+08E689     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+4C-B1-99   (hex)               Apple, Inc.\r
+4CB199     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+98-D6-BB   (hex)               Apple, Inc.\r
+98D6BB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+3C-D0-F8   (hex)               Apple, Inc.\r
+3CD0F8     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+7C-C3-A1   (hex)               Apple, Inc.\r
+7CC3A1     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-26-08   (hex)               Apple, Inc.\r
+002608     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-1E-C2   (hex)               Apple, Inc.\r
+001EC2     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-1B-63   (hex)               Apple, Inc.\r
+001B63     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-17-F2   (hex)               Apple, Inc.\r
+0017F2     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-16-CB   (hex)               Apple, Inc.\r
+0016CB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-03-93   (hex)               Apple, Inc.\r
+000393     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+80-49-71   (hex)               Apple, Inc.\r
+804971     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+64-E6-82   (hex)               Apple, Inc.\r
+64E682     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+B4-F7-A1   (hex)               LG Electronics (Mobile Communications)\r
+B4F7A1     (base 16)           LG Electronics (Mobile Communications)\r
+                               60-39, Gasan-dong, Geumcheon-gu\r
+                               Seoul    153-801\r
+                               KR\r
+\r
+C0-A8-F0   (hex)               Adamson Systems Engineering\r
+C0A8F0     (base 16)           Adamson Systems Engineering\r
+                               1401 Scugog Line 6\r
+                               Port Perry  Ontario  L9L 1B2\r
+                               CA\r
+\r
+38-C9-A9   (hex)               SMART High Reliability Solutions, Inc.\r
+38C9A9     (base 16)           SMART High Reliability Solutions, Inc.\r
+                               1325 N Fiesta Blvd., #101\r
+                               Gilbert  AZ  85233\r
+                               US\r
+\r
+28-3B-82   (hex)               D-Link International\r
+283B82     (base 16)           D-Link International\r
+                               1 Internal Business Park, #03-12,The Synergy, Singapore\r
+                               Singapore  Singapore  609917\r
+                               SG\r
+\r
+C4-00-AD   (hex)               Advantech Technology (CHINA) Co., Ltd.\r
+C400AD     (base 16)           Advantech Technology (CHINA) Co., Ltd.\r
+                               No.666, Han-Pu Rd. Yu-Shan\r
+                               Kun-Shan  Jiang Su  215316\r
+                               CN\r
+\r
+34-5A-06   (hex)               SHARP Corporation\r
+345A06     (base 16)           SHARP Corporation\r
+                               1 Takumi-cho, Sakai-ku\r
+                               Sakai City  Osaka  590-8522\r
+                               JP\r
+\r
+0C-8B-D3   (hex)               ITEL MOBILE LIMITED\r
+0C8BD3     (base 16)           ITEL MOBILE LIMITED\r
+                               RM B3 & B4 BLOCK B, KO FAI INDUSTRIAL BUILDING  NO.7 KO FAI ROAD, YAU TONG, KLN, H.K\r
+                               Hong Kong  KOWLOON  999077\r
+                               HK\r
+\r
+04-AC-44   (hex)               Holtek Semiconductor Inc.\r
+04AC44     (base 16)           Holtek Semiconductor Inc.\r
+                               No.3, Creation Rd. II, Science Park\r
+                               Hsinchu    300\r
+                               TW\r
+\r
+F4-DC-A5   (hex)               DAWON DNS\r
+F4DCA5     (base 16)           DAWON DNS\r
+                               217ho, Sauphwajiwon-dong, KETI, 226, Cheomdangwagi-ro, Buk-gu\r
+                               Gwangju    61011\r
+                               KR\r
+\r
+50-1C-B0   (hex)               Cisco Systems, Inc\r
+501CB0     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+C4-FF-BC   (hex)               IEEE Registration Authority\r
+C4FFBC     (base 16)           IEEE Registration Authority\r
+                               445 Hoes Lane\r
+                               Piscataway  NJ  08554\r
+                               US\r
+\r
+78-58-60   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+785860     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+F8-90-66   (hex)               Nain Inc.\r
+F89066     (base 16)           Nain Inc.\r
+                               Aoyamadai building 902, Shibuya 2-9-10, Shibuya-ku\r
+                               Tokyo    150-0002\r
+                               JP\r
+\r
+B4-FB-F9   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+B4FBF9     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+B4-2E-F8   (hex)               Eline Technology co.Ltd\r
+B42EF8     (base 16)           Eline Technology co.Ltd\r
+                               kangcheng Road, Pharmaceutical Industrical Park, Yuanzhou District\r
+                               Yichun  Jiangxi  336000\r
+                               CN\r
+\r
+D8-44-5C   (hex)               DEV Tecnologia Ind Com Man Eq LTDA\r
+D8445C     (base 16)           DEV Tecnologia Ind Com Man Eq LTDA\r
+                               Av Prof Lineu Prestes 2242 SL 23\r
+                               Sao Paulo  SP  05508000\r
+                               BR\r
+\r
+78-5D-C8   (hex)               LG Electronics\r
+785DC8     (base 16)           LG Electronics\r
+                               222 LG-ro, JINWI-MYEON\r
+                               Pyeongtaek-si  Gyeonggi-do  451-713\r
+                               KR\r
+\r
+7C-39-53   (hex)               zte corporation\r
+7C3953     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
+                               CN\r
+\r
+48-C7-96   (hex)               Samsung Electronics Co.,Ltd\r
+48C796     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
+80-4E-70   (hex)               Samsung Electronics Co.,Ltd\r
+804E70     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
+4C-EF-C0   (hex)               Amazon Technologies Inc.\r
+4CEFC0     (base 16)           Amazon Technologies Inc.\r
+                               P.O Box 8102\r
+                               Reno  NV  89507\r
+                               US\r
+\r
+D4-6D-6D   (hex)               Intel Corporate\r
+D46D6D     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3\r
+                               Kulim  Kedah  09000\r
+                               MY\r
+\r
+CC-8E-71   (hex)               Cisco Systems, Inc\r
+CC8E71     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+CC-3B-58   (hex)               Curiouser Products Inc\r
+CC3B58     (base 16)           Curiouser Products Inc\r
+                               712 Broadway #4\r
+                               New York  NY  10003\r
+                               US\r
+\r
+38-F5-54   (hex)               HISENSE ELECTRIC CO.,LTD\r
+38F554     (base 16)           HISENSE ELECTRIC CO.,LTD\r
+                               No. 218, Qianwangang Rd\r
+                               Qingdao  Shandong  266555\r
+                               CN\r
+\r
+18-94-C6   (hex)               ShenZhen Chenyee Technology Co., Ltd.\r
+1894C6     (base 16)           ShenZhen Chenyee Technology Co., Ltd.\r
+                               32F, Tower A, East Pacific International Center, No.7888, Shennan Avenue, Futian District\r
+                               Shenzhen    518040\r
+                               CN\r
+\r
+14-A7-2B   (hex)               currentoptronics Pvt.Ltd\r
+14A72B     (base 16)           currentoptronics Pvt.Ltd\r
+                               CRT Building, Jupitor Jn , Near Time kids Koothattukulam - Piravom Rd\r
+                               ERNAKULAM  Time Kids day care  686662\r
+                               IN\r
+\r
+AC-07-5F   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+AC075F     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+88-17-A3   (hex)               Integrated Device Technology (Malaysia) Sdn. Bhd.\r
+8817A3     (base 16)           Integrated Device Technology (Malaysia) Sdn. Bhd.\r
+                               Phase 3, Bayan Lepas FIZ\r
+                               Bayan Lepas  Penang  11900\r
+                               MY\r
+\r
+00-71-47   (hex)               Amazon Technologies Inc.\r
+007147     (base 16)           Amazon Technologies Inc.\r
+                               P.O Box 8102\r
+                               Reno  NV  89507\r
+                               US\r
+\r
+78-8C-54   (hex)               Ping Communication\r
+788C54     (base 16)           Ping Communication\r
+                               Brenden 18\r
+                               Appenzell Meistersrüte  AI  9050\r
+                               CH\r
+\r
+D4-66-A8   (hex)               Riedo Networks Ltd\r
+D466A8     (base 16)           Riedo Networks Ltd\r
+                               Route de la Fonderie 6\r
+                               Fribourg    1700\r
+                               CH\r
+\r
+30-B7-D4   (hex)               Hitron Technologies. Inc\r
+30B7D4     (base 16)           Hitron Technologies. Inc\r
+                               No. 1-8, Lising 1st Rd. Hsinchu Science Park, Hsinchu, 300, Taiwan, R.O.C\r
+                               Hsin-chu  Taiwan  300\r
+                               TW\r
+\r
+38-80-DF   (hex)               Motorola Mobility LLC, a Lenovo Company\r
+3880DF     (base 16)           Motorola Mobility LLC, a Lenovo Company\r
+                               222 West Merchandise Mart Plaza\r
+                               Chicago  IL  60654\r
+                               US\r
+\r
+7C-B2-32   (hex)               Hui Zhou Gaoshengda Technology Co.,LTD\r
+7CB232     (base 16)           Hui Zhou Gaoshengda Technology Co.,LTD\r
+                               No.75,Zhongkai High-Tech Development District,Huizhou\r
+                               Hui Zhou  Guangdong  516006\r
+                               CN\r
+\r
+2C-D9-74   (hex)               Hui Zhou Gaoshengda Technology Co.,LTD\r
+2CD974     (base 16)           Hui Zhou Gaoshengda Technology Co.,LTD\r
+                               No.75,Zhongkai High-Tech Development District,Huizhou\r
+                               Hui Zhou  Guangdong  516006\r
+                               CN\r
+\r
+58-B3-FC   (hex)               SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.\r
+58B3FC     (base 16)           SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.\r
+                               Bldg56A,6/F,Baotian Rd3,Xixiang Town,Baoan District,\r
+                               Shenzhen  Guangdong  518000\r
+                               CN\r
+\r
+BC-AB-7C   (hex)               TRnP KOREA Co Ltd\r
+BCAB7C     (base 16)           TRnP KOREA Co Ltd\r
+                               room1308,239 SoHyungRo,WonMiGu,\r
+                               BuChunCity  KyungKiDo  1135\r
+                               KR\r
+\r
 2C-39-96   (hex)               Sagemcom Broadband SAS\r
 2C3996     (base 16)           Sagemcom Broadband SAS\r
                                250 route de l'Empereur\r
@@ -114575,42 +116003,6 @@ A0F895     (base 16)         Shenzhen TINNO Mobile Technology Corp.
                                San Jose    95110\r
                                US\r
 \r
-28-ED-6A   (hex)               Apple, Inc.\r
-28ED6A     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-34-AB-37   (hex)               Apple, Inc.\r
-34AB37     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-60-A3-7D   (hex)               Apple, Inc.\r
-60A37D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-00-56-CD   (hex)               Apple, Inc.\r
-0056CD     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-70-81-EB   (hex)               Apple, Inc.\r
-7081EB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-08-66-98   (hex)               Apple, Inc.\r
-086698     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 2C-FD-37   (hex)               Blue Calypso, Inc.\r
 2CFD37     (base 16)           Blue Calypso, Inc.\r
                                101 West Renner RD Suite 280\r
@@ -115055,12 +116447,6 @@ A4516F     (base 16)         Microsoft Mobile Oy
                                Shanghai  Shanghai  201616\r
                                CN\r
 \r
-90-60-F1   (hex)               Apple, Inc.\r
-9060F1     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 EC-26-CA   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
 EC26CA     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
                                Building 24 (floors 1,3,4,5) and 28 (floors1-4) \r
@@ -115283,12 +116669,6 @@ A49947     (base 16)         HUAWEI TECHNOLOGIES CO.,LTD
                                Shenzhen  Guangdong  518108\r
                                CN\r
 \r
-74-1B-B2   (hex)               Apple, Inc.\r
-741BB2     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 00-25-86   (hex)               TP-LINK TECHNOLOGIES CO.,LTD.\r
 002586     (base 16)           TP-LINK TECHNOLOGIES CO.,LTD.\r
                                Building 7, Second Part, Honghualing Industrial Zone\r
@@ -115355,12 +116735,6 @@ AC7E8A     (base 16)         Cisco Systems, Inc
                                San Jose  CA  95134\r
                                US\r
 \r
-28-CF-E9   (hex)               Apple, Inc.\r
-28CFE9     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 00-50-2A   (hex)               Cisco Systems, Inc\r
 00502A     (base 16)           Cisco Systems, Inc\r
                                170 W. TASMAN DR.\r
@@ -115751,480 +117125,12 @@ E8EDF3     (base 16)               Cisco Systems, Inc
                                San Jose  CA  95134\r
                                US\r
 \r
-E4-25-E7   (hex)               Apple, Inc.\r
-E425E7     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-08-00-07   (hex)               Apple, Inc.\r
-080007     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-0A-95   (hex)               Apple, Inc.\r
-000A95     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-22-41   (hex)               Apple, Inc.\r
-002241     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-23-DF   (hex)               Apple, Inc.\r
-0023DF     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-25-BC   (hex)               Apple, Inc.\r
-0025BC     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-26-4A   (hex)               Apple, Inc.\r
-00264A     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-26-B0   (hex)               Apple, Inc.\r
-0026B0     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-04-1E-64   (hex)               Apple, Inc.\r
-041E64     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-D4-9A-20   (hex)               Apple, Inc.\r
-D49A20     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-90-27-E4   (hex)               Apple, Inc.\r
-9027E4     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-60-33-4B   (hex)               Apple, Inc.\r
-60334B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-A4-31-35   (hex)               Apple, Inc.\r
-A43135     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-9C-35-EB   (hex)               Apple, Inc.\r
-9C35EB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-50-7A-55   (hex)               Apple, Inc.\r
-507A55     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-A0-99-9B   (hex)               Apple, Inc.\r
-A0999B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-24-24-0E   (hex)               Apple, Inc.\r
-24240E     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-90-3C-92   (hex)               Apple, Inc.\r
-903C92     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-34-12-98   (hex)               Apple, Inc.\r
-341298     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-9C-29-3F   (hex)               Apple, Inc.\r
-9C293F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 48-8A-D2   (hex)               SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
 488AD2     (base 16)           SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.\r
                                Mid-Fourth Flr.,Building 28,Cui Xi Fourth Road,Ke Yuan West,Nanshan\r
                                Shenzhen  Guangdong  518057\r
                                CN\r
 \r
-A8-8E-24   (hex)               Apple, Inc.\r
-A88E24     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-E8-80-2E   (hex)               Apple, Inc.\r
-E8802E     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-68-AE-20   (hex)               Apple, Inc.\r
-68AE20     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-E0-B5-2D   (hex)               Apple, Inc.\r
-E0B52D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-80-BE-05   (hex)               Apple, Inc.\r
-80BE05     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-D8-BB-2C   (hex)               Apple, Inc.\r
-D8BB2C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-D0-4F-7E   (hex)               Apple, Inc.\r
-D04F7E     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-2C-1F-23   (hex)               Apple, Inc.\r
-2C1F23     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-54-9F-13   (hex)               Apple, Inc.\r
-549F13     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-B8-09-8A   (hex)               Apple, Inc.\r
-B8098A     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-F0-DB-E2   (hex)               Apple, Inc.\r
-F0DBE2     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-18-EE-69   (hex)               Apple, Inc.\r
-18EE69     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-74-81-14   (hex)               Apple, Inc.\r
-748114     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-18-F6-43   (hex)               Apple, Inc.\r
-18F643     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-D0-A6-37   (hex)               Apple, Inc.\r
-D0A637     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-A0-18-28   (hex)               Apple, Inc.\r
-A01828     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-D0-03-4B   (hex)               Apple, Inc.\r
-D0034B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-5C-59-48   (hex)               Apple, Inc.\r
-5C5948     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-78-CA-39   (hex)               Apple, Inc.\r
-78CA39     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-18-E7-F4   (hex)               Apple, Inc.\r
-18E7F4     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-B8-FF-61   (hex)               Apple, Inc.\r
-B8FF61     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-DC-2B-61   (hex)               Apple, Inc.\r
-DC2B61     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-10-93-E9   (hex)               Apple, Inc.\r
-1093E9     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-44-2A-60   (hex)               Apple, Inc.\r
-442A60     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-E0-F8-47   (hex)               Apple, Inc.\r
-E0F847     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-14-5A-05   (hex)               Apple, Inc.\r
-145A05     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-28-CF-DA   (hex)               Apple, Inc.\r
-28CFDA     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-14-8F-C6   (hex)               Apple, Inc.\r
-148FC6     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-28-37-37   (hex)               Apple, Inc.\r
-283737     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-04-54-53   (hex)               Apple, Inc.\r
-045453     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-F0-CB-A1   (hex)               Apple, Inc.\r
-F0CBA1     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-C0-63-94   (hex)               Apple, Inc.\r
-C06394     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-8C-00-6D   (hex)               Apple, Inc.\r
-8C006D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-B0-9F-BA   (hex)               Apple, Inc.\r
-B09FBA     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-DC-86-D8   (hex)               Apple, Inc.\r
-DC86D8     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-8C-29-37   (hex)               Apple, Inc.\r
-8C2937     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-DC-9B-9C   (hex)               Apple, Inc.\r
-DC9B9C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-98-F0-AB   (hex)               Apple, Inc.\r
-98F0AB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-F0-DB-F8   (hex)               Apple, Inc.\r
-F0DBF8     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-AC-CF-5C   (hex)               Apple, Inc.\r
-ACCF5C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-3C-15-C2   (hex)               Apple, Inc.\r
-3C15C2     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-04-48-9A   (hex)               Apple, Inc.\r
-04489A     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-D8-CF-9C   (hex)               Apple, Inc.\r
-D8CF9C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-30-F7-C5   (hex)               Apple, Inc.\r
-30F7C5     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-00-88-65   (hex)               Apple, Inc.\r
-008865     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-40-B3-95   (hex)               Apple, Inc.\r
-40B395     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-30-90-AB   (hex)               Apple, Inc.\r
-3090AB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-1C-E6-2B   (hex)               Apple, Inc.\r
-1CE62B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-A0-ED-CD   (hex)               Apple, Inc.\r
-A0EDCD     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-A8-86-DD   (hex)               Apple, Inc.\r
-A886DD     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-54-EA-A8   (hex)               Apple, Inc.\r
-54EAA8     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-E4-C6-3D   (hex)               Apple, Inc.\r
-E4C63D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-84-38-35   (hex)               Apple, Inc.\r
-843835     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-70-73-CB   (hex)               Apple, Inc.\r
-7073CB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-9C-20-7B   (hex)               Apple, Inc.\r
-9C207B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-84-29-99   (hex)               Apple, Inc.\r
-842999     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-74-E2-F5   (hex)               Apple, Inc.\r
-74E2F5     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
-20-C9-D0   (hex)               Apple, Inc.\r
-20C9D0     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               CUPERTINO  CA  95014\r
-                               US\r
-\r
 14-02-EC   (hex)               Hewlett Packard Enterprise\r
 1402EC     (base 16)           Hewlett Packard Enterprise\r
                                8000 Foothills Blvd.\r
@@ -116351,36 +117257,6 @@ B813E9     (base 16)         Trace Live Network
                                Wuxi  Jiangsu  214131\r
                                CN\r
 \r
-7C-01-91   (hex)               Apple, Inc.\r
-7C0191     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-70-48-0F   (hex)               Apple, Inc.\r
-70480F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-A4-B8-05   (hex)               Apple, Inc.\r
-A4B805     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-58-7F-57   (hex)               Apple, Inc.\r
-587F57     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-80-D6-05   (hex)               Apple, Inc.\r
-80D605     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 68-A8-28   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
 68A828     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
                                No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
@@ -116393,18 +117269,6 @@ A4B805     (base 16)         Apple, Inc.
                                WUXI  Jiangsu  214128\r
                                CN\r
 \r
-C8-69-CD   (hex)               Apple, Inc.\r
-C869CD     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-BC-6C-21   (hex)               Apple, Inc.\r
-BC6C21     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 9C-8D-D3   (hex)               Leonton Technologies\r
 9C8DD3     (base 16)           Leonton Technologies\r
                                3F, No.501-16, Zhongzheng Rd., Xindian Dist.\r
@@ -116489,12 +117353,6 @@ A4DEC9     (base 16)         QLove Mobile Intelligence Information Technology (W.H.) Co
 A4-A6-A9   (hex)               Private\r
 A4A6A9     (base 16)           Private\r
 \r
-04-69-F8   (hex)               Apple, Inc.\r
-0469F8     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 9C-7A-03   (hex)               Ciena Corporation\r
 9C7A03     (base 16)           Ciena Corporation\r
                                7035 Ridge Road\r
@@ -116621,12 +117479,6 @@ D47BB0     (base 16)         ASKEY COMPUTER CORP
                                London  Greater London  W1F 7NT\r
                                GB\r
 \r
-94-9F-3E   (hex)               Sonos, Inc.\r
-949F3E     (base 16)           Sonos, Inc.\r
-                               223 E. De La Guerra Street\r
-                               Santa Barbara  CA  93101\r
-                               US\r
-\r
 78-8E-33   (hex)               Jiangsu SEUIC Technology Co.,Ltd\r
 788E33     (base 16)           Jiangsu SEUIC Technology Co.,Ltd\r
                                NO23.Wenzhu Road.Yuhuatai Distrct.\r
@@ -138113,12 +138965,6 @@ C4E510     (base 16)         Mechatro, Inc.
                                Sunnyvale  CA  94085\r
                                US\r
 \r
-20-76-8F   (hex)               Apple, Inc.\r
-20768F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 9C-5C-F9   (hex)               Sony Mobile Communications AB\r
 9C5CF9     (base 16)           Sony Mobile Communications AB\r
                                Nya Vattentornet\r
@@ -138167,36 +139013,12 @@ BC44B0     (base 16)                Elastifile
                                shanghai  shanghai  20233\r
                                CN\r
 \r
-C0-CC-F8   (hex)               Apple, Inc.\r
-C0CCF8     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-80-ED-2C   (hex)               Apple, Inc.\r
-80ED2C     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-E8-B2-AC   (hex)               Apple, Inc.\r
-E8B2AC     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 00-80-B8   (hex)               DMG MORI B.U.G. CO., LTD.\r
 0080B8     (base 16)           DMG MORI B.U.G. CO., LTD.\r
                                1-1-14 Techno park,\r
                                Shimonopporo, Atsubetsuku, Sapporo  Hokkaido  004-0015\r
                                JP\r
 \r
-84-89-AD   (hex)               Apple, Inc.\r
-8489AD     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 40-B6-88   (hex)               LEGIC Identsystems AG\r
 40B688     (base 16)           LEGIC Identsystems AG\r
                                Binzackerstrasse 41\r
@@ -138755,18 +139577,6 @@ D09DAB     (base 16)         TCT mobile ltd
                                Hui Zhou  Guang Dong  516006\r
                                CN\r
 \r
-8C-8E-F2   (hex)               Apple, Inc.\r
-8C8EF2     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-F4-0F-24   (hex)               Apple, Inc.\r
-F40F24     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 A0-D3-85   (hex)               AUMA Riester GmbH & Co. KG\r
 A0D385     (base 16)           AUMA Riester GmbH & Co. KG\r
                                Aumastr. 1\r
@@ -138779,18 +139589,6 @@ A0D385     (base 16)         AUMA Riester GmbH & Co. KG
                                ningbo  zhejiang  315048\r
                                CN\r
 \r
-84-A1-34   (hex)               Apple, Inc.\r
-84A134     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-1C-91-48   (hex)               Apple, Inc.\r
-1C9148     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 CC-16-7E   (hex)               Cisco Systems, Inc\r
 CC167E     (base 16)           Cisco Systems, Inc\r
                                80 West Tasman Drive\r
@@ -139871,18 +140669,6 @@ B4D135     (base 16)         Cloudistics
                                Mianyang City  Sichuan Province  621000\r
                                CN\r
 \r
-78-28-CA   (hex)               Sonos, Inc.\r
-7828CA     (base 16)           Sonos, Inc.\r
-                               614 Chapala Street\r
-                               Santa Barbara  CA  93101\r
-                               US\r
-\r
-B8-E9-37   (hex)               Sonos, Inc.\r
-B8E937     (base 16)           Sonos, Inc.\r
-                               223 East De La Guerra Street\r
-                               Santa Barbara  CA  93101\r
-                               US\r
-\r
 B0-52-16   (hex)               Hon Hai Precision Ind. Co.,Ltd.\r
 B05216     (base 16)           Hon Hai Precision Ind. Co.,Ltd.\r
                                Building D21,No.1, East Zone 1st Road\r
@@ -140651,24 +141437,6 @@ C8028F     (base 16)         Nova Electronics (Shanghai) Co., Ltd.
                                Gumi  Gyeongbuk  730-350\r
                                KR\r
 \r
-5C-F7-E6   (hex)               Apple, Inc.\r
-5CF7E6     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-A0-D7-95   (hex)               Apple, Inc.\r
-A0D795     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-CC-08-8D   (hex)               Apple, Inc.\r
-CC088D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 00-80-FB   (hex)               BVM LIMITED\r
 0080FB     (base 16)           BVM LIMITED\r
                                Lakeside House, Brickyard Road,\r
@@ -140867,36 +141635,6 @@ E8EADA     (base 16)         Denkovi Assembly Electronics LTD
                                Maebashi-shi  Gunma  379-2105\r
                                JP\r
 \r
-B0-70-2D   (hex)               Apple, Inc.\r
-B0702D     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-D0-C5-F3   (hex)               Apple, Inc.\r
-D0C5F3     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-60-F4-45   (hex)               Apple, Inc.\r
-60F445     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-00-B3-62   (hex)               Apple, Inc.\r
-00B362     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-F8-62-14   (hex)               Apple, Inc.\r
-F86214     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 C0-E5-4E   (hex)               ARIES Embedded GmbH\r
 C0E54E     (base 16)           ARIES Embedded GmbH\r
                                Schöngeisinger Str. 84\r
@@ -141071,18 +141809,6 @@ CC82EB     (base 16)         KYOCERA CORPORATION
                                Yokohama-shi  Kanagawa  224-8502\r
                                JP\r
 \r
-50-82-D5   (hex)               Apple, Inc.\r
-5082D5     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-9C-84-BF   (hex)               Apple, Inc.\r
-9C84BF     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 78-94-B4   (hex)               Sercomm Corporation.\r
 7894B4     (base 16)           Sercomm Corporation.\r
                                violet_liu@sercomm.com\r
@@ -141161,24 +141887,6 @@ E0C0D1     (base 16)         CK Telecom (Shenzhen) Limited
                                shenzhen  guangdong  518057\r
                                CN\r
 \r
-48-BF-6B   (hex)               Apple, Inc.\r
-48BF6B     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-24-5B-A7   (hex)               Apple, Inc.\r
-245BA7     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-BC-A9-20   (hex)               Apple, Inc.\r
-BCA920     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 D0-55-B2   (hex)               Integrated Device Technology (Malaysia) Sdn. Bhd.\r
 D055B2     (base 16)           Integrated Device Technology (Malaysia) Sdn. Bhd.\r
                                Phase 3, Bayan Lepas FIZ\r
@@ -142455,34 +143163,16 @@ C06D1A     (base 16)                Tianjin Henxinhuifeng Technology Co.,Ltd.
                                DE\r
 \r
 40-A3-CC   (hex)               Intel Corporate\r
-40A3CC     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3\r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-E4-70-B8   (hex)               Intel Corporate\r
-E470B8     (base 16)           Intel Corporate\r
-                               Lot 8, Jalan Hi-Tech 2/3\r
-                               Kulim  Kedah  09000\r
-                               MY\r
-\r
-B0-19-C6   (hex)               Apple, Inc.\r
-B019C6     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-58-E2-8F   (hex)               Apple, Inc.\r
-58E28F     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
+40A3CC     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3\r
+                               Kulim  Kedah  09000\r
+                               MY\r
 \r
-AC-1F-74   (hex)               Apple, Inc.\r
-AC1F74     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
+E4-70-B8   (hex)               Intel Corporate\r
+E470B8     (base 16)           Intel Corporate\r
+                               Lot 8, Jalan Hi-Tech 2/3\r
+                               Kulim  Kedah  09000\r
+                               MY\r
 \r
 30-38-55   (hex)               Nokia Corporation\r
 303855     (base 16)           Nokia Corporation\r
@@ -142907,42 +143597,6 @@ F8F21E     (base 16)         Intel Corporate
                                Swindon    SN5 7XP\r
                                GB\r
 \r
-24-F6-77   (hex)               Apple, Inc.\r
-24F677     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-78-67-D7   (hex)               Apple, Inc.\r
-7867D7     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-54-33-CB   (hex)               Apple, Inc.\r
-5433CB     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-D0-D2-B0   (hex)               Apple, Inc.\r
-D0D2B0     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-D8-8F-76   (hex)               Apple, Inc.\r
-D88F76     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
-3C-2E-F9   (hex)               Apple, Inc.\r
-3C2EF9     (base 16)           Apple, Inc.\r
-                               1 Infinite Loop\r
-                               Cupertino  CA  95014\r
-                               US\r
-\r
 8C-83-9D   (hex)               SHENZHEN XINYUPENG ELECTRONIC TECHNOLOGY CO., LTD\r
 8C839D     (base 16)           SHENZHEN XINYUPENG ELECTRONIC TECHNOLOGY CO., LTD\r
                                ROOM 1505,BIT INNOVATION BUILDING,SCIENCE AND TECHNOLOGY PARK,NANSHAN DISTRICT\r
@@ -143473,3 +144127,1119 @@ BCC00F     (base 16)               Fiberhome Telecommunication Technologies Co.,LTD
                                Via Aosta 23\r
                                Venaria Reale   Torino  10078\r
                                IT\r
+\r
+04-69-F8   (hex)               Apple, Inc.\r
+0469F8     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+BC-6C-21   (hex)               Apple, Inc.\r
+BC6C21     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+C8-69-CD   (hex)               Apple, Inc.\r
+C869CD     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+80-D6-05   (hex)               Apple, Inc.\r
+80D605     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+58-7F-57   (hex)               Apple, Inc.\r
+587F57     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A4-B8-05   (hex)               Apple, Inc.\r
+A4B805     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+70-48-0F   (hex)               Apple, Inc.\r
+70480F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+7C-01-91   (hex)               Apple, Inc.\r
+7C0191     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+9C-29-3F   (hex)               Apple, Inc.\r
+9C293F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+34-12-98   (hex)               Apple, Inc.\r
+341298     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+90-3C-92   (hex)               Apple, Inc.\r
+903C92     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+24-24-0E   (hex)               Apple, Inc.\r
+24240E     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A0-99-9B   (hex)               Apple, Inc.\r
+A0999B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+D0-A6-37   (hex)               Apple, Inc.\r
+D0A637     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+18-F6-43   (hex)               Apple, Inc.\r
+18F643     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+74-81-14   (hex)               Apple, Inc.\r
+748114     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+18-EE-69   (hex)               Apple, Inc.\r
+18EE69     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+F0-DB-E2   (hex)               Apple, Inc.\r
+F0DBE2     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+B8-09-8A   (hex)               Apple, Inc.\r
+B8098A     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+54-9F-13   (hex)               Apple, Inc.\r
+549F13     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+2C-1F-23   (hex)               Apple, Inc.\r
+2C1F23     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+E4-CB-59   (hex)               Beijing Loveair Science and Technology Co. Ltd.\r
+E4CB59     (base 16)           Beijing Loveair Science and Technology Co. Ltd.\r
+                               103,Block B, Kelin Building, No.107, Dongsi North Street, Dongcheng District,\r
+                                Beijing    100000\r
+                               CN\r
+\r
+C8-77-65   (hex)               Tiesse SpA\r
+C87765     (base 16)           Tiesse SpA\r
+                               Via Asti\r
+                               Ivrea  TO  10015\r
+                               IT\r
+\r
+50-7A-55   (hex)               Apple, Inc.\r
+507A55     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+9C-35-EB   (hex)               Apple, Inc.\r
+9C35EB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A4-31-35   (hex)               Apple, Inc.\r
+A43135     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+D0-03-4B   (hex)               Apple, Inc.\r
+D0034B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A0-18-28   (hex)               Apple, Inc.\r
+A01828     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+3C-15-C2   (hex)               Apple, Inc.\r
+3C15C2     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+AC-CF-5C   (hex)               Apple, Inc.\r
+ACCF5C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+F0-DB-F8   (hex)               Apple, Inc.\r
+F0DBF8     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+98-F0-AB   (hex)               Apple, Inc.\r
+98F0AB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+DC-9B-9C   (hex)               Apple, Inc.\r
+DC9B9C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+8C-29-37   (hex)               Apple, Inc.\r
+8C2937     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+DC-86-D8   (hex)               Apple, Inc.\r
+DC86D8     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+E4-C6-3D   (hex)               Apple, Inc.\r
+E4C63D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+54-EA-A8   (hex)               Apple, Inc.\r
+54EAA8     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A8-86-DD   (hex)               Apple, Inc.\r
+A886DD     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A0-ED-CD   (hex)               Apple, Inc.\r
+A0EDCD     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+1C-E6-2B   (hex)               Apple, Inc.\r
+1CE62B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+30-90-AB   (hex)               Apple, Inc.\r
+3090AB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+F0-CB-A1   (hex)               Apple, Inc.\r
+F0CBA1     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+04-54-53   (hex)               Apple, Inc.\r
+045453     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+28-37-37   (hex)               Apple, Inc.\r
+283737     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+14-8F-C6   (hex)               Apple, Inc.\r
+148FC6     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+28-CF-DA   (hex)               Apple, Inc.\r
+28CFDA     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+14-5A-05   (hex)               Apple, Inc.\r
+145A05     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+D0-4F-7E   (hex)               Apple, Inc.\r
+D04F7E     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+D8-BB-2C   (hex)               Apple, Inc.\r
+D8BB2C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+80-BE-05   (hex)               Apple, Inc.\r
+80BE05     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+E0-B5-2D   (hex)               Apple, Inc.\r
+E0B52D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+68-AE-20   (hex)               Apple, Inc.\r
+68AE20     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+E8-80-2E   (hex)               Apple, Inc.\r
+E8802E     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A8-8E-24   (hex)               Apple, Inc.\r
+A88E24     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+D8-CF-9C   (hex)               Apple, Inc.\r
+D8CF9C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+04-48-9A   (hex)               Apple, Inc.\r
+04489A     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+B0-9F-BA   (hex)               Apple, Inc.\r
+B09FBA     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+8C-00-6D   (hex)               Apple, Inc.\r
+8C006D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+C0-63-94   (hex)               Apple, Inc.\r
+C06394     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+84-38-35   (hex)               Apple, Inc.\r
+843835     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+20-C9-D0   (hex)               Apple, Inc.\r
+20C9D0     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+74-E2-F5   (hex)               Apple, Inc.\r
+74E2F5     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+84-29-99   (hex)               Apple, Inc.\r
+842999     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+9C-20-7B   (hex)               Apple, Inc.\r
+9C207B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+40-B3-95   (hex)               Apple, Inc.\r
+40B395     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-88-65   (hex)               Apple, Inc.\r
+008865     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+30-F7-C5   (hex)               Apple, Inc.\r
+30F7C5     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+70-73-CB   (hex)               Apple, Inc.\r
+7073CB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-B3-62   (hex)               Apple, Inc.\r
+00B362     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+F8-62-14   (hex)               Apple, Inc.\r
+F86214     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+B0-70-2D   (hex)               Apple, Inc.\r
+B0702D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+D0-C5-F3   (hex)               Apple, Inc.\r
+D0C5F3     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+60-F4-45   (hex)               Apple, Inc.\r
+60F445     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+50-82-D5   (hex)               Apple, Inc.\r
+5082D5     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+9C-84-BF   (hex)               Apple, Inc.\r
+9C84BF     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+48-BF-6B   (hex)               Apple, Inc.\r
+48BF6B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+24-5B-A7   (hex)               Apple, Inc.\r
+245BA7     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+BC-A9-20   (hex)               Apple, Inc.\r
+BCA920     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+B0-19-C6   (hex)               Apple, Inc.\r
+B019C6     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+58-E2-8F   (hex)               Apple, Inc.\r
+58E28F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+AC-1F-74   (hex)               Apple, Inc.\r
+AC1F74     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+20-76-8F   (hex)               Apple, Inc.\r
+20768F     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+C0-CC-F8   (hex)               Apple, Inc.\r
+C0CCF8     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+80-ED-2C   (hex)               Apple, Inc.\r
+80ED2C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+E8-B2-AC   (hex)               Apple, Inc.\r
+E8B2AC     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+84-89-AD   (hex)               Apple, Inc.\r
+8489AD     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+8C-8E-F2   (hex)               Apple, Inc.\r
+8C8EF2     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+F4-0F-24   (hex)               Apple, Inc.\r
+F40F24     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+84-A1-34   (hex)               Apple, Inc.\r
+84A134     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+1C-91-48   (hex)               Apple, Inc.\r
+1C9148     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+5C-F7-E6   (hex)               Apple, Inc.\r
+5CF7E6     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+A0-D7-95   (hex)               Apple, Inc.\r
+A0D795     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+CC-08-8D   (hex)               Apple, Inc.\r
+CC088D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+08-00-07   (hex)               Apple, Inc.\r
+080007     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+E4-25-E7   (hex)               Apple, Inc.\r
+E425E7     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+28-CF-E9   (hex)               Apple, Inc.\r
+28CFE9     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+90-60-F1   (hex)               Apple, Inc.\r
+9060F1     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+74-1B-B2   (hex)               Apple, Inc.\r
+741BB2     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+28-ED-6A   (hex)               Apple, Inc.\r
+28ED6A     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+34-AB-37   (hex)               Apple, Inc.\r
+34AB37     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+60-A3-7D   (hex)               Apple, Inc.\r
+60A37D     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-56-CD   (hex)               Apple, Inc.\r
+0056CD     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+70-81-EB   (hex)               Apple, Inc.\r
+7081EB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+08-66-98   (hex)               Apple, Inc.\r
+086698     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+E0-F8-47   (hex)               Apple, Inc.\r
+E0F847     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+44-2A-60   (hex)               Apple, Inc.\r
+442A60     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+10-93-E9   (hex)               Apple, Inc.\r
+1093E9     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+DC-2B-61   (hex)               Apple, Inc.\r
+DC2B61     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+B8-FF-61   (hex)               Apple, Inc.\r
+B8FF61     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+18-E7-F4   (hex)               Apple, Inc.\r
+18E7F4     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+78-CA-39   (hex)               Apple, Inc.\r
+78CA39     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+5C-59-48   (hex)               Apple, Inc.\r
+5C5948     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+60-33-4B   (hex)               Apple, Inc.\r
+60334B     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+90-27-E4   (hex)               Apple, Inc.\r
+9027E4     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+24-F6-77   (hex)               Apple, Inc.\r
+24F677     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+78-67-D7   (hex)               Apple, Inc.\r
+7867D7     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+54-33-CB   (hex)               Apple, Inc.\r
+5433CB     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+D0-D2-B0   (hex)               Apple, Inc.\r
+D0D2B0     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+D8-8F-76   (hex)               Apple, Inc.\r
+D88F76     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+3C-2E-F9   (hex)               Apple, Inc.\r
+3C2EF9     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+DC-56-E7   (hex)               Apple, Inc.\r
+DC56E7     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+34-7C-25   (hex)               Apple, Inc.\r
+347C25     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+D4-90-9C   (hex)               Apple, Inc.\r
+D4909C     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+D4-9A-20   (hex)               Apple, Inc.\r
+D49A20     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+04-1E-64   (hex)               Apple, Inc.\r
+041E64     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-26-B0   (hex)               Apple, Inc.\r
+0026B0     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-26-4A   (hex)               Apple, Inc.\r
+00264A     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-25-BC   (hex)               Apple, Inc.\r
+0025BC     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-23-DF   (hex)               Apple, Inc.\r
+0023DF     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-22-41   (hex)               Apple, Inc.\r
+002241     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+00-0A-95   (hex)               Apple, Inc.\r
+000A95     (base 16)           Apple, Inc.\r
+                               1 Infinite Loop\r
+                               Cupertino  CA  95014\r
+                               US\r
+\r
+60-5F-8D   (hex)               eero inc.\r
+605F8D     (base 16)           eero inc.\r
+                               500 Howard Street, Suite 900\r
+                               SAN FRANCISCO  CA  94105\r
+                               US\r
+\r
+B4-DE-DF   (hex)               zte corporation\r
+B4DEDF     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
+                               CN\r
+\r
+84-74-60   (hex)               zte corporation\r
+847460     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
+                               CN\r
+\r
+B4-A8-B9   (hex)               Cisco Systems, Inc\r
+B4A8B9     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+88-B6-EE   (hex)               Dish Technologies Corp\r
+88B6EE     (base 16)           Dish Technologies Corp\r
+                               94 Inverness Terrace E\r
+                               Englewood  CO  80112\r
+                               US\r
+\r
+38-E6-0A   (hex)               Xiaomi Communications Co Ltd\r
+38E60A     (base 16)           Xiaomi Communications Co Ltd\r
+                               The Rainbow City of China Resources\r
+                               NO.68, Qinghe Middle Street  Haidian District, Beijing  100085\r
+                               CN\r
+\r
+C0-42-D0   (hex)               Juniper Networks\r
+C042D0     (base 16)           Juniper Networks\r
+                               1133 Innovation Way\r
+                               Sunnyvale  CA  94089\r
+                               US\r
+\r
+E8-33-0D   (hex)               Xaptec GmbH\r
+E8330D     (base 16)           Xaptec GmbH\r
+                               Neidenburger Str. 10\r
+                               Gelsenkirchen    45897\r
+                               DE\r
+\r
+D8-D7-75   (hex)               Sagemcom Broadband SAS\r
+D8D775     (base 16)           Sagemcom Broadband SAS\r
+                               250, route de l'Empereur\r
+                               Rueil Malmaison Cedex  hauts de seine  92848\r
+                               FR\r
+\r
+78-53-64   (hex)               SHIFT GmbH\r
+785364     (base 16)           SHIFT GmbH\r
+                               Am Gänsemarkt 6\r
+                               Wabern Falkenberg  Hessen  34590\r
+                               DE\r
+\r
+24-18-1D   (hex)               SAMSUNG ELECTRO-MECHANICS(THAILAND)\r
+24181D     (base 16)           SAMSUNG ELECTRO-MECHANICS(THAILAND)\r
+                               93Moo5T. Bangsamak SEMTHAI, WELLGROW INDUSTRIAL ESTATE\r
+                               Bangpakong  Chachoengsao  24180\r
+                               TH\r
+\r
+54-B7-E5   (hex)               Rayson Technology Co., Ltd.\r
+54B7E5     (base 16)           Rayson Technology Co., Ltd.\r
+                               1F No.9 R&D Rd.II, Science-Based Industrial Park\r
+                               Hsin-Chu    300\r
+                               TW\r
+\r
+BC-0F-A7   (hex)               Ouster\r
+BC0FA7     (base 16)           Ouster\r
+                               350 Treat Ave\r
+                               San Francisco  CA  94110\r
+                               US\r
+\r
+AC-F9-70   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+ACF970     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+0C-41-E9   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+0C41E9     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+58-D7-59   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+58D759     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+B4-1C-30   (hex)               zte corporation\r
+B41C30     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
+                               CN\r
+\r
+F4-C2-48   (hex)               Samsung Electronics Co.,Ltd\r
+F4C248     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
+A8-51-5B   (hex)               Samsung Electronics Co.,Ltd\r
+A8515B     (base 16)           Samsung Electronics Co.,Ltd\r
+                               #94-1, Imsoo-Dong\r
+                               Gumi  Gyeongbuk  730-350\r
+                               KR\r
+\r
+60-6B-FF   (hex)               Nintendo Co.,Ltd\r
+606BFF     (base 16)           Nintendo Co.,Ltd\r
+                               11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU\r
+                               KYOTO  KYOTO  601-8501\r
+                               JP\r
+\r
+AC-17-C8   (hex)               Cisco Meraki\r
+AC17C8     (base 16)           Cisco Meraki\r
+                               500 Terry A. Francois Blvd\r
+                               San Francisco    94158\r
+                               US\r
+\r
+EC-9B-8B   (hex)               Hewlett Packard Enterprise\r
+EC9B8B     (base 16)           Hewlett Packard Enterprise\r
+                               8000 Foothills Blvd.\r
+                               Roseville  CA  95747\r
+                               US\r
+\r
+70-C9-4E   (hex)               Liteon Technology Corporation\r
+70C94E     (base 16)           Liteon Technology Corporation\r
+                               4F, 90, Chien 1 Road\r
+                               New Taipei City  Taiwan  23585\r
+                               TW\r
+\r
+70-D0-81   (hex)               Beijing Netpower Technologies Inc.\r
+70D081     (base 16)           Beijing Netpower Technologies Inc.\r
+                               Room 201, Block B, NO. 15 Building, EastZone\r
+                               Courtyard10, Xibeiwang East Road  Haidian District, Beijing  100094\r
+                               CN\r
+\r
+70-3A-73   (hex)               Shenzhen Sundray Technologies Company Limited\r
+703A73     (base 16)           Shenzhen Sundray Technologies Company Limited\r
+                               6th Floor,Block A1, Nanshan iPark, No.1001 XueYuan Road, Nanshan District\r
+                               Shenzhen  Guangdong  518057\r
+                               CN\r
+\r
+18-0F-76   (hex)               D-Link International\r
+180F76     (base 16)           D-Link International\r
+                               1 Internal Business Park, #03-12,The Synergy, Singapore\r
+                               Singapore  Singapore  609917\r
+                               SG\r
+\r
+18-4C-08   (hex)               Rockwell Automation\r
+184C08     (base 16)           Rockwell Automation\r
+                               1 Allen-Bradley Dr.\r
+                               Mayfield Heights  OH  44124-6118\r
+                               US\r
+\r
+88-E9-0F   (hex)               innomdlelab\r
+88E90F     (base 16)           innomdlelab\r
+                               Unnam 1 gil, 3 \r
+                               Seocho-gu  Seoul  06778\r
+                               KR\r
+\r
+C0-98-DA   (hex)               China Mobile IOT Company Limited\r
+C098DA     (base 16)           China Mobile IOT Company Limited\r
+                               NO.8 Yu Ma Road, NanAn Area Chongqing,China\r
+                               Chongqing  Chongqing  401336\r
+                               CN\r
+\r
+98-D8-63   (hex)               Shanghai High-Flying Electronics Technology Co., Ltd\r
+98D863     (base 16)           Shanghai High-Flying Electronics Technology Co., Ltd\r
+                               Room 1002 ,#1Building,No.3000 Longdong Avenue,Pudong District,Shanghai,China\r
+                               shanghai  shanghai  201203\r
+                               CN\r
+\r
+F0-0F-EC   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+F00FEC     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+0C-70-4A   (hex)               HUAWEI TECHNOLOGIES CO.,LTD\r
+0C704A     (base 16)           HUAWEI TECHNOLOGIES CO.,LTD\r
+                               No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+                               Dongguan    523808\r
+                               CN\r
+\r
+54-A6-5C   (hex)               Technicolor CH USA Inc.\r
+54A65C     (base 16)           Technicolor CH USA Inc.\r
+                               101 West 103rd St.\r
+                               Indianapolis  IN  46290\r
+                               US\r
+\r
+94-9F-3E   (hex)               Sonos, Inc.\r
+949F3E     (base 16)           Sonos, Inc.\r
+                               614 Chapala St\r
+                               Santa Barbara  CA  93101\r
+                               US\r
+\r
+B8-E9-37   (hex)               Sonos, Inc.\r
+B8E937     (base 16)           Sonos, Inc.\r
+                               614 Chapala St\r
+                               Santa Barbara  CA  93101\r
+                               US\r
+\r
+78-28-CA   (hex)               Sonos, Inc.\r
+7828CA     (base 16)           Sonos, Inc.\r
+                               614 Chapala St\r
+                               Santa Barbara  CA  93101\r
+                               US\r
+\r
+34-7E-5C   (hex)               Sonos, Inc.\r
+347E5C     (base 16)           Sonos, Inc.\r
+                               614 Chapala St\r
+                               Santa Barbara  CA  93101\r
+                               US\r
+\r
+C0-48-E6   (hex)               Samsung Electronics Co.,Ltd\r
+C048E6     (base 16)           Samsung Electronics Co.,Ltd\r
+                               129, Samsung-ro, Youngtongl-Gu\r
+                               Suwon  Gyeonggi-Do  16677\r
+                               KR\r
+\r
+6C-E4-DA   (hex)               NEC Platforms, Ltd.\r
+6CE4DA     (base 16)           NEC Platforms, Ltd.\r
+                               2-3 Kandatsukasamachi\r
+                               Chiyodaku  Tokyo  101-8532\r
+                               JP\r
+\r
+C8-8F-26   (hex)               Skyworth Digital Technology(Shenzhen) Co.,Ltd\r
+C88F26     (base 16)           Skyworth Digital Technology(Shenzhen) Co.,Ltd\r
+                               7F,Block A,Skyworth Building,\r
+                               Shenzhen  Guangdong  518057\r
+                               CN\r
+\r
+B0-26-80   (hex)               Cisco Systems, Inc\r
+B02680     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+00-3C-10   (hex)               Cisco Systems, Inc\r
+003C10     (base 16)           Cisco Systems, Inc\r
+                               80 West Tasman Drive\r
+                               San Jose  CA  94568\r
+                               US\r
+\r
+90-83-4B   (hex)               BEIJING YUNYI TIMES TECHNOLOGY CO,.LTD\r
+90834B     (base 16)           BEIJING YUNYI TIMES TECHNOLOGY CO,.LTD\r
+                               1-411Room 19#Building No.26 Xihuan South Rd. BDA Daxing District,\r
+                               BEIJING    100176\r
+                               CN\r
+\r
+48-BD-3D   (hex)               New H3C Technologies Co., Ltd\r
+48BD3D     (base 16)           New H3C Technologies Co., Ltd\r
+                               466 Changhe Road, Binjiang District\r
+                               Hangzhou  Zhejiang  310052\r
+                               CN\r
+\r
+4C-AB-FC   (hex)               zte corporation\r
+4CABFC     (base 16)           zte corporation\r
+                               12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+                               shenzhen  guangdong  518057\r
+                               CN\r
+\r
+20-0F-70   (hex)               FOXTECH\r
+200F70     (base 16)           FOXTECH\r
+                               152-160 City Road\r
+                               LONDON  KEMP HOUSE  EC1V 2NX\r
+                               GB\r
+\r
+E8-1A-AC   (hex)               ORFEO SOUNDWORKS Inc.\r
+E81AAC     (base 16)           ORFEO SOUNDWORKS Inc.\r
+                               612, 11-41, Simin-daero 327beon-gil, Dongan-gu\r
+                               Anyang    14055\r
+                               KR\r
+\r
+A0-38-F8   (hex)               OURA Health Oy\r
+A038F8     (base 16)           OURA Health Oy\r
+                               Elektroniikkatie 3\r
+                               Oulu    90590\r
+                               FI\r
+\r
+14-6B-9C   (hex)               SHENZHEN BILIAN ELECTRONIC CO.,LTD\r
+146B9C     (base 16)           SHENZHEN BILIAN ELECTRONIC CO.,LTD\r
+                               NO.268, Fuqian Rd, Jutang community, Guanlan Town, Longhua New district\r
+                               shenzhen  guangdong  518000\r
+                               CN\r
+\r
+D0-77-14   (hex)               Motorola Mobility LLC, a Lenovo Company\r
+D07714     (base 16)           Motorola Mobility LLC, a Lenovo Company\r
+                               222 West Merchandise Mart Plaza\r
+                               Chicago  IL  60654\r
+                               US\r
+\r
+34-D7-12   (hex)               Smartisan Digital Co., Ltd\r
+34D712     (base 16)           Smartisan Digital Co., Ltd\r
+                               4F, China Digital Kingdom, No.1 Wangjing North Road, Chaoyang District\r
+                               Beijing  Beijing  100012\r
+                               CN\r
+\r
+98-45-62   (hex)               Shanghai Baud Data Communication Co.,Ltd.\r
+984562     (base 16)           Shanghai Baud Data Communication Co.,Ltd.\r
+                               NO.123 JULI RD\r
+                               PUDONG ZHANGJIANG HIGH-TECH PARK  SHANGHAI  201203\r
+                               CN\r
+\r
+E8-98-6D   (hex)               Palo Alto Networks\r
+E8986D     (base 16)           Palo Alto Networks\r
+                               3000 Tannery Way\r
+                               Santa Clara  CA  95054\r
+                               US\r
+\r
+F0-81-73   (hex)               Amazon Technologies Inc.\r
+F08173     (base 16)           Amazon Technologies Inc.\r
+                               P.O Box 8102\r
+                               Reno    89507\r
+                               US\r
+\r
+24-29-FE   (hex)               KYOCERA Corporation \r
+2429FE     (base 16)           KYOCERA Corporation \r
+                               30 Hoji\r
+                               Kitami,  Hokkaido  099-1595\r
+                               JP\r
index 30505fadcdc40865863b6aed5a56a411833fdd2c..89577b9cf8ee74462e623e7fbee1aa57b0e744f1 100644 (file)
@@ -1718,9 +1718,6 @@ F00000-FFFFFF     (base 16)               Private
 90-C6-82   (hex)               Private\r
 F00000-FFFFFF     (base 16)            Private\r
 \r
-98-02-D8   (hex)               Private\r
-F00000-FFFFFF     (base 16)            Private\r
-\r
 D0-76-50   (hex)               Private\r
 F00000-FFFFFF     (base 16)            Private\r
 \r
@@ -2003,6 +2000,105 @@ F00000-FFFFFF     (base 16)             Private
                                NishiTokyo-city  Tokyo  202-0022\r
                                JP\r
 \r
+9C-43-1E   (hex)               HK ELEPHONE Communication Tech Co.,Limited\r
+D00000-DFFFFF     (base 16)            HK ELEPHONE Communication Tech Co.,Limited\r
+                               Unit 04, 7/F Bright Way Tower No.33 Mong Kok Rd KL\r
+                               Hong Kong     999077\r
+                               HK\r
+\r
+9C-43-1E   (hex)               Wireless Environment, LLC\r
+400000-4FFFFF     (base 16)            Wireless Environment, LLC\r
+                               600 Beta Drive Unit 100 Mayfield Village, OH 44143,US\r
+                               Mayfield Village  OH  44143\r
+                               US\r
+\r
+28-2C-02   (hex)               ThirdReality, Inc\r
+B00000-BFFFFF     (base 16)            ThirdReality, Inc\r
+                               647 East Longhua Road, Huangpu District\r
+                               Shanghai  Shanghai  200023\r
+                               CN\r
+\r
+9C-43-1E   (hex)               HAESUNG DS\r
+200000-2FFFFF     (base 16)            HAESUNG DS\r
+                               8F, Haesung 2 Building, 508, Teheran-ro, Gangnam-gu\r
+                               Seoul    06178\r
+                               KR\r
+\r
+28-2C-02   (hex)               Tokin Limited\r
+A00000-AFFFFF     (base 16)            Tokin Limited\r
+                               Unit 513-4, Block A, Focal Industrial Centre, 21 Man Lok Street, Hung Hom\r
+                               Kowloon    0000\r
+                               HK\r
+\r
+F0-41-C8   (hex)               Shenzhen Medica Technology Development Co., Ltd.\r
+200000-2FFFFF     (base 16)            Shenzhen Medica Technology Development Co., Ltd.\r
+                               2F Building A, Tongfang Information Harbor, No.11, East Langshan Road, Nanshan District\r
+                               Shenzhen    518000\r
+                               CN\r
+\r
+C4-FF-BC   (hex)               Danego BV\r
+000000-0FFFFF     (base 16)            Danego BV\r
+                               Protonenlaan 24\r
+                               Uden  NB  5405 NE\r
+                               NL\r
+\r
+C4-FF-BC   (hex)               Critical Link\r
+700000-7FFFFF     (base 16)            Critical Link\r
+                               6712 Brooklawn  Parkway\r
+                               Syracuse    13211\r
+                               US\r
+\r
+A4-DA-22   (hex)               Klashwerks Inc.\r
+B00000-BFFFFF     (base 16)            Klashwerks Inc.\r
+                               441 Maclaren Street, Suite 408\r
+                               Ottawa  ON  K2P2H3\r
+                               CA\r
+\r
+88-A9-A7   (hex)               Sieper Lüdenscheid GmbH & Co. KG\r
+600000-6FFFFF     (base 16)            Sieper Lüdenscheid GmbH & Co. KG\r
+                               Schlittenbacher Straße 60\r
+                               Lüdenscheid    58511\r
+                               DE\r
+\r
+98-02-D8   (hex)               Private\r
+F00000-FFFFFF     (base 16)            Private\r
+\r
+C4-FF-BC   (hex)               KyongBo Electric Co., Ltd.\r
+C00000-CFFFFF     (base 16)            KyongBo Electric Co., Ltd.\r
+                               5, Seongsuil-ro 12-gagil Seongdong-gu\r
+                               Seoul    04792\r
+                               KR\r
+\r
+C4-FF-BC   (hex)               ShenZhen ZYT Technology co., Ltd\r
+800000-8FFFFF     (base 16)            ShenZhen ZYT Technology co., Ltd\r
+                               Floor four,Build C,FuSen Industrial park, HangCheng Avenue,Baoan District\r
+                               Shenzhen  GuangDong  518000\r
+                               CN\r
+\r
+DC-E5-33   (hex)               SAN Engineering\r
+700000-7FFFFF     (base 16)            SAN Engineering\r
+                               434-31 UTO Korea BD. 4F\r
+                               Seongnam-si Jungwon-gu  Gyunggi-do  13230\r
+                               KR\r
+\r
+DC-E5-33   (hex)               Suzhou ATES electronic technology co.LTD\r
+D00000-DFFFFF     (base 16)            Suzhou ATES electronic technology co.LTD\r
+                               NO.2 aimin road,Xiangcheng district\r
+                                Suzhou city  Jiangsu Province  215002\r
+                               CN\r
+\r
+88-A9-A7   (hex)               Zhejiang Haoteng Electronic Technology Co.,Ltd.\r
+A00000-AFFFFF     (base 16)            Zhejiang Haoteng Electronic Technology Co.,Ltd.\r
+                               Zhejiang Lishui city streets Nanming mountain Shek road Liandu District No. 268 Building 2 block B\r
+                               Lishui  Zhejiang  323000\r
+                               CN\r
+\r
+F0-41-C8   (hex)               LINPA ACOUSTIC TECHNOLOGY CO.,LTD \r
+000000-0FFFFF     (base 16)            LINPA ACOUSTIC TECHNOLOGY CO.,LTD \r
+                               2A,No60 , Lizhong Road,DaliQingxi Town\r
+                               Dongguan  Guandong  523648\r
+                               CN\r
+\r
 1C-87-76   (hex)               Strone Technology\r
 C00000-CFFFFF     (base 16)            Strone Technology\r
                                13 Ellis Street\r
@@ -3944,6 +4040,123 @@ F8-B5-68   (hex)                CloudMinds (Shenzhen) Holdings Co., Ltd
 10-07-23   (hex)               Private\r
 F00000-FFFFFF     (base 16)            Private\r
 \r
+28-2C-02   (hex)               LLC MICROTEH\r
+500000-5FFFFF     (base 16)            LLC MICROTEH\r
+                               pl.5 bldg.2/3 Akademika Anokhina str. \r
+                               Moscow    119602\r
+                               RU\r
+\r
+9C-43-1E   (hex)               Wunda Group plc\r
+800000-8FFFFF     (base 16)            Wunda Group plc\r
+                               Unit 1-5, Hawthorn, Crick\r
+                               Caldicot  Monmouthshire  NP26 5UT\r
+                               GB\r
+\r
+9C-43-1E   (hex)               Advanced Logic Technology (ALT) sa\r
+300000-3FFFFF     (base 16)            Advanced Logic Technology (ALT) sa\r
+                               Route de Niederpallen, 30H\r
+                               Redange-sur-Attert  Luxembourg  8506\r
+                               LU\r
+\r
+C4-FF-BC   (hex)               GSM Innovations Pty Ltd\r
+900000-9FFFFF     (base 16)            GSM Innovations Pty Ltd\r
+                               142-144 Fullarton Road\r
+                               Rose Park  SA  5067\r
+                               AU\r
+\r
+C4-FF-BC   (hex)               SHENZHEN KALIF ELECTRONICS CO.,LTD\r
+300000-3FFFFF     (base 16)            SHENZHEN KALIF ELECTRONICS CO.,LTD\r
+                               1、2 and 3 Floor, No.114, Haochong No.2 Industry Area, Hongxing Community, Songgang, Baoan, Shenzhen \r
+                               SHENZHEN  GuangDong  518105\r
+                               CN\r
+\r
+C4-FF-BC   (hex)               Beijing  KDF information technology co. LTD.\r
+D00000-DFFFFF     (base 16)            Beijing  KDF information technology co. LTD.\r
+                               Room14C,TowerA,,LindaBuilding,No.8,Dongtucheng Road,Chaoyang District, Beijing.\r
+                               Beijing    100013\r
+                               CN\r
+\r
+9C-43-1E   (hex)               Optris GmbH\r
+700000-7FFFFF     (base 16)            Optris GmbH\r
+                               Ferdinand-Buisson-Str. 14\r
+                               Berlin    13127\r
+                               DE\r
+\r
+C4-FF-BC   (hex)               viRaTec GmbH\r
+E00000-EFFFFF     (base 16)            viRaTec GmbH\r
+                               Phorusgasse 8/1\r
+                               Wien    1040\r
+                               AT\r
+\r
+DC-E5-33   (hex)               Controls Inc\r
+500000-5FFFFF     (base 16)            Controls Inc\r
+                               5204 Portside Drive\r
+                               Medina  OH  44256\r
+                               US\r
+\r
+C4-FF-BC   (hex)               Shenzhen C & D Electronics Co., Ltd.\r
+600000-6FFFFF     (base 16)            Shenzhen C & D Electronics Co., Ltd.\r
+                               9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District\r
+                               ShenZhen  GuangDong  518000\r
+                               CN\r
+\r
+DC-E5-33   (hex)               FLYHT Aerospace\r
+000000-0FFFFF     (base 16)            FLYHT Aerospace\r
+                               300E 1144 - 29th St. N.E.\r
+                               Calgary  AB  T2E7P1\r
+                               CA\r
+\r
+DC-E5-33   (hex)               Private\r
+A00000-AFFFFF     (base 16)            Private\r
+\r
+A4-DA-22   (hex)               Shen Zhen City YaKun Electronics Co., Ltd\r
+D00000-DFFFFF     (base 16)            Shen Zhen City YaKun Electronics Co., Ltd\r
+                               SOUTHERN BUILDING 5388 Shang Bu  Industrial Zone Huaqiang North Road Futian District\r
+                               shen zhen city  Guang Dong Province  518000\r
+                               CN\r
+\r
+A4-DA-22   (hex)               Abetechs GmbH\r
+A00000-AFFFFF     (base 16)            Abetechs GmbH\r
+                               Niermannsweg 11\r
+                               Erkrath   North Rhine-Westphalia  40699\r
+                               DE\r
+\r
+A4-DA-22   (hex)               T2T System\r
+100000-1FFFFF     (base 16)            T2T System\r
+                               #316, HYUNDAI Knowledge Industry Center, 70, Dusan-ro\r
+                               Geumcheon-gu  Seoul  08584\r
+                               KR\r
+\r
+A4-DA-22   (hex)               Quuppa Oy\r
+E00000-EFFFFF     (base 16)            Quuppa Oy\r
+                               Keilaranta 1\r
+                               Espoo    02150\r
+                               FI\r
+\r
+88-A9-A7   (hex)               AndroVideo Inc.\r
+C00000-CFFFFF     (base 16)            AndroVideo Inc.\r
+                               2f-4, 17, Lane 91, Nei Hu Rd., Sec. 1\r
+                               Taipei    11441\r
+                               TW\r
+\r
+F0-41-C8   (hex)               Shenzhen  Nufilo Electronic Technology Co., Ltd.\r
+900000-9FFFFF     (base 16)            Shenzhen  Nufilo Electronic Technology Co., Ltd.\r
+                               Tianliao Building West Unit F1315, (New Materials Industrial Park),  Xueyuan Road,  Nanshan District\r
+                               Shenzhen   Guangdong  518055\r
+                               CN\r
+\r
+F0-41-C8   (hex)               SHENZHEN WISEWING INTERNET TECHNOLOGY CO.,LTD\r
+300000-3FFFFF     (base 16)            SHENZHEN WISEWING INTERNET TECHNOLOGY CO.,LTD\r
+                               No.826,Zone 1,Block B,Famous industrial product display purchasing center,Baoyuan Road,Xixiang,Bao'an Dis., Shenzhen,P.R.China\r
+                               shenzhen  China  518102\r
+                               CN\r
+\r
+F0-41-C8   (hex)                Shanghai Think-Force Electronic Technology Co. Ltd\r
+C00000-CFFFFF     (base 16)             Shanghai Think-Force Electronic Technology Co. Ltd\r
+                               North ZhongShan Road, No. 3000, Room 2608\r
+                               Shanghai    200000\r
+                               CN\r
+\r
 1C-87-76   (hex)               Zhuhai MYZR Technology Co.,Ltd\r
 500000-5FFFFF     (base 16)            Zhuhai MYZR Technology Co.,Ltd\r
                                Room 302,Area D2,National Hi-tech Zone,NO.1,Software Park Road\r
@@ -6005,6 +6218,156 @@ F8-B5-68   (hex)                Combiwins Technology Co.,Limited
                                Chennai  Tamilnadu  600035\r
                                IN\r
 \r
+28-2C-02   (hex)               SHENZHEN DOMENOR TECHNOLOGY LLC\r
+D00000-DFFFFF     (base 16)            SHENZHEN DOMENOR TECHNOLOGY LLC\r
+                               F4, BUILDING A3, SILICON VALLEY POWER TECHNOLOGY PARK, SILI ROAD, KUKENG COMMUNITY, GUANLAN TOWN,LONGHUA DISTRICT\r
+                               SHENZHEN  GUANGDONG  518110\r
+                               CN\r
+\r
+9C-43-1E   (hex)               Symfun Telecom Ltd\r
+100000-1FFFFF     (base 16)            Symfun Telecom Ltd\r
+                               Floor 4 Building 11 Xi Qi Dian Jia Yuan\r
+                               Beijing    100083\r
+                               CN\r
+\r
+9C-43-1E   (hex)               Antailiye Technology Co.,Ltd\r
+000000-0FFFFF     (base 16)            Antailiye Technology Co.,Ltd\r
+                               7/F,Zhengjiyuan Buiding,2 Road,Qianjing, Xixiang, Baoan District,Shenzhen\r
+                               SHEN ZHEN  GUANGDONG  518000\r
+                               CN\r
+\r
+9C-43-1E   (hex)               ST Access Control System Corp.\r
+A00000-AFFFFF     (base 16)            ST Access Control System Corp.\r
+                               3F., No. 111 Zhongzheng Rd., Banciao Dist., New Taipei City\r
+                               New Taipei City    22054\r
+                               TW\r
+\r
+C4-FF-BC   (hex)               Mobiletron Electronics Co., Ltd\r
+200000-2FFFFF     (base 16)            Mobiletron Electronics Co., Ltd\r
+                               85, Sec.4, Chung-Ching Rd., Ta-Ya District\r
+                               Taichung    428\r
+                               TW\r
+\r
+C4-FF-BC   (hex)               iMageTech CO.,LTD.\r
+400000-4FFFFF     (base 16)            iMageTech CO.,LTD.\r
+                               5F., No.16, Lane 15, Sec. 6, Mincyuan E. Rd., Neihu District,\r
+                               TAIPEI    114\r
+                               TW\r
+\r
+C4-FF-BC   (hex)               KAGA ELECTRONICS CO.,LTD.\r
+B00000-BFFFFF     (base 16)            KAGA ELECTRONICS CO.,LTD.\r
+                               20 Kandamatsunaga-cho\r
+                               Chiyoda-ku  TOKYO  101-8627\r
+                               JP\r
+\r
+C4-FF-BC   (hex)               comtime GmbH\r
+500000-5FFFFF     (base 16)            comtime GmbH\r
+                               Gutenbergring 22\r
+                               Norderstedt    22848\r
+                               US\r
+\r
+DC-E5-33   (hex)               Tintel Hongkong Co.Ltd\r
+B00000-BFFFFF     (base 16)            Tintel Hongkong Co.Ltd\r
+                               FLAT C,23/F,LUCKY PLAZA,315-321 LOCKHART ROAD,WANCHAI,HONGKONG\r
+                               HONGKONG  GUANG DONG PROVINCE  999077\r
+                               HK\r
+\r
+DC-E5-33   (hex)               JB-Lighting Lichtanlagen GmbH\r
+800000-8FFFFF     (base 16)            JB-Lighting Lichtanlagen GmbH\r
+                               Sallersteig 15\r
+                               89134    89134\r
+                               DE\r
+\r
+DC-E5-33   (hex)               Giant Power Technology Biomedical Corporation\r
+E00000-EFFFFF     (base 16)            Giant Power Technology Biomedical Corporation\r
+                               Rm201, 2nd Educational Building, No. 84, Gongzhuan Rd, Taishan Dist\r
+                               New Taipei City    24301\r
+                               TW\r
+\r
+DC-E5-33   (hex)               shenzhen bangying electronics co,.ltd\r
+400000-4FFFFF     (base 16)            shenzhen bangying electronics co,.ltd\r
+                               3/F Building 16,Hongfa industrialPark,Tangtou Shiyan Town\r
+                               shenzhen  guangdong  518000\r
+                               CN\r
+\r
+A4-DA-22   (hex)               AURANEXT\r
+600000-6FFFFF     (base 16)            AURANEXT\r
+                               202 quai de clichy\r
+                               CLICHY    92110\r
+                               FR\r
+\r
+A4-DA-22   (hex)               Wyze Labs Inc\r
+200000-2FFFFF     (base 16)            Wyze Labs Inc\r
+                                22522 29TH DR SE L101\r
+                               BOTHELL  WA  98021\r
+                               US\r
+\r
+A4-DA-22   (hex)               LORIOT AG\r
+400000-4FFFFF     (base 16)            LORIOT AG\r
+                               Zuercherstrasse 68\r
+                               Thalwil  Zürich  8800\r
+                               CH\r
+\r
+A4-DA-22   (hex)               DURATECH Enterprise,LLC\r
+300000-3FFFFF     (base 16)            DURATECH Enterprise,LLC\r
+                               NO.1013,184,Gasan digital 2-ro,Geumcheon-gu,Seoul\r
+                               Seoul    08501\r
+                               KR\r
+\r
+A4-DA-22   (hex)               EHO.LINK\r
+C00000-CFFFFF     (base 16)            EHO.LINK\r
+                               5 Avenue de Saint Menet, Imm. Axiome, Bat. B\r
+                               Marseille    13011\r
+                               FR\r
+\r
+A4-DA-22   (hex)               General Electric Company\r
+000000-0FFFFF     (base 16)            General Electric Company\r
+                               Valle del Cedro #1551\r
+                               Ciudad Juarez  Chih  32575\r
+                               MX\r
+\r
+88-A9-A7   (hex)               Mikroelektronika\r
+300000-3FFFFF     (base 16)            Mikroelektronika\r
+                               Batajnicki drum 23\r
+                               Belgrade    11186\r
+                               RS\r
+\r
+88-A9-A7   (hex)               kimura giken corporation\r
+700000-7FFFFF     (base 16)            kimura giken corporation\r
+                               4-9-19 kamiyoga\r
+                               Setagaya-ku  Tokyo  158-0098\r
+                               JP\r
+\r
+88-A9-A7   (hex)               FlashForge Corporation\r
+900000-9FFFFF     (base 16)            FlashForge Corporation\r
+                                No.518, Xianyuan Road\r
+                               Jinhua  Zhejiang  321000\r
+                               CN\r
+\r
+88-A9-A7   (hex)               Thomas & Darden, Inc\r
+400000-4FFFFF     (base 16)            Thomas & Darden, Inc\r
+                               916 Springdale Rd Bldg 4 #104\r
+                               Austin    78702\r
+                               US\r
+\r
+88-A9-A7   (hex)               Impact Distribution\r
+E00000-EFFFFF     (base 16)            Impact Distribution\r
+                               Ter Heidelaan 50a\r
+                               Aarschot    3200\r
+                               BE\r
+\r
+88-A9-A7   (hex)               Honeywell spol. s.r.o. HTS CZ o.z. \r
+200000-2FFFFF     (base 16)            Honeywell spol. s.r.o. HTS CZ o.z. \r
+                               Turanka 100/1387 \r
+                               Brno    62700\r
+                               CZ\r
+\r
+88-A9-A7   (hex)               Solaredge LTD.\r
+100000-1FFFFF     (base 16)            Solaredge LTD.\r
+                               Hamada 1\r
+                               Herzelia    4673335\r
+                               IL\r
+\r
 1C-87-76   (hex)               Hekatron Vertriebs GmbH\r
 B00000-BFFFFF     (base 16)            Hekatron Vertriebs GmbH\r
                                Brühlmatten 9\r
@@ -7889,21 +8252,12 @@ F00000-FFFFFF     (base 16)             Private
 58-FC-DB   (hex)               Private\r
 F00000-FFFFFF     (base 16)            Private\r
 \r
-2C-26-5F   (hex)               Private\r
-F00000-FFFFFF     (base 16)            Private\r
-\r
-28-FD-80   (hex)               Private\r
-F00000-FFFFFF     (base 16)            Private\r
-\r
 2C-D1-41   (hex)               Private\r
 F00000-FFFFFF     (base 16)            Private\r
 \r
 2C-6A-6F   (hex)               Private\r
 F00000-FFFFFF     (base 16)            Private\r
 \r
-A0-BB-3E   (hex)               Private\r
-F00000-FFFFFF     (base 16)            Private\r
-\r
 BC-66-41   (hex)               Private\r
 F00000-FFFFFF     (base 16)            Private\r
 \r
@@ -8075,6 +8429,57 @@ D00000-DFFFFF     (base 16)              NOX Systems AG
                                Moscow    107258\r
                                RU\r
 \r
+28-2C-02   (hex)               Shenzhen Neoway Technology Co.,Ltd.\r
+800000-8FFFFF     (base 16)            Shenzhen Neoway Technology Co.,Ltd.\r
+                               4F-2#,Lian Jian Science & Industry Park,Huarong Road,Dalang Street,Longhua District\r
+                               Shenzhen  Guangdong  518000\r
+                               CN\r
+\r
+C4-FF-BC   (hex)               VISATECH C0., LTD.\r
+100000-1FFFFF     (base 16)            VISATECH C0., LTD.\r
+                               C-312 168, Gasan digital 1-ro\r
+                                Geumcheon-gu   Seoul  08507\r
+                               KR\r
+\r
+DC-E5-33   (hex)               Tiertime Corporation\r
+900000-9FFFFF     (base 16)            Tiertime Corporation\r
+                               2398 Walsh Avenue\r
+                               Santa Clara  CA  95051\r
+                               US\r
+\r
+A4-DA-22   (hex)               Hydro Electronic Devices, Inc.\r
+700000-7FFFFF     (base 16)            Hydro Electronic Devices, Inc.\r
+                               2120 Constitution Ave\r
+                               Hartford  WI  53027\r
+                               US\r
+\r
+2C-26-5F   (hex)               Private\r
+F00000-FFFFFF     (base 16)            Private\r
+\r
+28-FD-80   (hex)               Private\r
+F00000-FFFFFF     (base 16)            Private\r
+\r
+A0-BB-3E   (hex)               Private\r
+F00000-FFFFFF     (base 16)            Private\r
+\r
+F0-41-C8   (hex)               ATN Media Group FZ LLC\r
+D00000-DFFFFF     (base 16)            ATN Media Group FZ LLC\r
+                               Business Bay-alabrj st Business Towar By Damac.office-807\r
+                               Dubai    25051\r
+                               AE\r
+\r
+F0-41-C8   (hex)               XI'AN MEI SHANG MEI WIRELESS TECHNOLOGY.Co., Ltd.\r
+500000-5FFFFF     (base 16)            XI'AN MEI SHANG MEI WIRELESS TECHNOLOGY.Co., Ltd.\r
+                               Xi'an Beilin District Yanta Middle Road No. 17A XIN QING YA YUAN 2-5C\r
+                               XI'AN  shanxi  710000\r
+                               CN\r
+\r
+F0-41-C8   (hex)               AED Engineering GmbH\r
+600000-6FFFFF     (base 16)            AED Engineering GmbH\r
+                               Taunusstr. 51\r
+                               Munich  Bavaria  80807\r
+                               DE\r
+\r
 34-D0-B8   (hex)               Kongqiguanjia (Beijing)Technology co.,ltd\r
 E00000-EFFFFF     (base 16)            Kongqiguanjia (Beijing)Technology co.,ltd\r
                                Room 1201,Block A,Building of Fesco,Xidawang Road,Chaoyang district\r
@@ -8147,6 +8552,66 @@ F8-B5-68   (hex)         Beijing Wanji Techonology Co., Ltd.
                                beijing  beijing  100193\r
                                CN\r
 \r
+28-2C-02   (hex)               Dexin Digital Technology Corp. Ltd.\r
+300000-3FFFFF     (base 16)            Dexin Digital Technology Corp. Ltd.\r
+                               No.10 and 12, Wuxing Fourth Road,Wuhou District Chengdu 610045 Sichuan, PR China\r
+                               chengdu  Sichuan  610045\r
+                               CN\r
+\r
+9C-43-1E   (hex)               ProMOS Technologies Inc.\r
+500000-5FFFFF     (base 16)            ProMOS Technologies Inc.\r
+                               3A3, No.1, Lixing 1st Rd., East Dist.,\r
+                               Hsinchu City  Taiwan  300\r
+                               TW\r
+\r
+DC-E5-33   (hex)               Ambi Labs Limited\r
+100000-1FFFFF     (base 16)            Ambi Labs Limited\r
+                               1903, 19/F, Loon Lee Building, 267-275 Des Voeux Road Central., Sheung Wan, Hong Kong\r
+                               Hong Kong  Hong Kong  00000\r
+                               HK\r
+\r
+DC-E5-33   (hex)               Remko GmbH & Co. KG\r
+200000-2FFFFF     (base 16)            Remko GmbH & Co. KG\r
+                               Im Seelenkamp 12\r
+                               Lage    32791\r
+                               DE\r
+\r
+A4-DA-22   (hex)               SolidPro Technology Corporation\r
+800000-8FFFFF     (base 16)            SolidPro Technology Corporation\r
+                               10F.-1, No.150, Jian 1st Rd.\r
+                               Zhonghe Dist.  New Taipei City  23511\r
+                               TW\r
+\r
+A4-DA-22   (hex)               Original Products Pvt. Ltd.\r
+500000-5FFFFF     (base 16)            Original Products Pvt. Ltd.\r
+                               B-19, Shiv Park, School Road, Khanpur \r
+                               New Delhi  New Delhi  110062\r
+                               IN\r
+\r
+88-A9-A7   (hex)               Shenzhenshi kechuangzhixian technology Co.LTD\r
+000000-0FFFFF     (base 16)            Shenzhenshi kechuangzhixian technology Co.LTD\r
+                               Room 14G,14th Floor, Langshi Building , keji South Road 12 , High-tech Industrial Park , Nanshan District\r
+                               Shenzhen    518000\r
+                               CN\r
+\r
+88-A9-A7   (hex)               TWK-ELEKTRONIK\r
+B00000-BFFFFF     (base 16)            TWK-ELEKTRONIK\r
+                               Heinrichstr. 85\r
+                               Duesseldorf    40239\r
+                               DE\r
+\r
+88-A9-A7   (hex)               psb intralogistics GmbH\r
+800000-8FFFFF     (base 16)            psb intralogistics GmbH\r
+                               Blocksbergstrasse 145\r
+                               Pirmasens    66955\r
+                               DE\r
+\r
+F0-41-C8   (hex)               Nanchang BlackShark Co.,Ltd.\r
+700000-7FFFFF     (base 16)            Nanchang BlackShark Co.,Ltd.\r
+                               Room 319, Jiaoqiao Town Office Building, Economic and Technical development zone, Nanchang City, Jiangxi Province.\r
+                               Nanchang    330013\r
+                               CN\r
+\r
 1C-87-74   (hex)               Philips Personal Health Solutions\r
 000000-0FFFFF     (base 16)            Philips Personal Health Solutions\r
                                High Tech Campus, HTC37 floor 0\r
@@ -10150,3 +10615,93 @@ F00000-FFFFFF     (base 16)            Private
 \r
 0C-EF-AF   (hex)               Private\r
 F00000-FFFFFF     (base 16)            Private\r
+\r
+28-2C-02   (hex)               EFENTO T P SZYDŁOWSKI K ZARĘBA SPÓŁKA JAWNA\r
+400000-4FFFFF     (base 16)            EFENTO T P SZYDŁOWSKI K ZARĘBA SPÓŁKA JAWNA\r
+                               Dietla 93/6\r
+                               Kraków    31-031\r
+                               PL\r
+\r
+28-2C-02   (hex)               Capintec, Inc.\r
+E00000-EFFFFF     (base 16)            Capintec, Inc.\r
+                               7 Vreeland Road\r
+                               Florham Park  NJ  07932\r
+                               US\r
+\r
+9C-43-1E   (hex)               R-S-I Elektrotechnik GmbH  CO KG\r
+600000-6FFFFF     (base 16)            R-S-I Elektrotechnik GmbH  CO KG\r
+                               Woelkestrasse 11\r
+                               Schweitenkirchen    85276\r
+                               DE\r
+\r
+9C-43-1E   (hex)               CONTINENT Co. Ltd\r
+900000-9FFFFF     (base 16)            CONTINENT Co. Ltd\r
+                               Bumazhnaya st., 16/3 lit B, of. 414\r
+                               Saint-Petersburg    190020\r
+                               RU\r
+\r
+9C-43-1E   (hex)               SuZhou Jinruiyang Information Technology CO.,LTD\r
+C00000-CFFFFF     (base 16)            SuZhou Jinruiyang Information Technology CO.,LTD\r
+                               NO.1003 Room A1 Buliding Tengfei Business Park in Suzhou Industrial Park.\r
+                               Suzhou  Jiangsu  215123\r
+                               CN\r
+\r
+9C-43-1E   (hex)               JNL Technologies Inc\r
+B00000-BFFFFF     (base 16)            JNL Technologies Inc\r
+                               W1205 Industrial Dr\r
+                               Ixonia  WI  53036\r
+                               US\r
+\r
+9C-43-1E   (hex)               Midas Technology DBA Phoenix Audio Technologies\r
+E00000-EFFFFF     (base 16)            Midas Technology DBA Phoenix Audio Technologies\r
+                               16 Goodyear #120\r
+                               Irvine  CA  92618\r
+                               US\r
+\r
+C4-FF-BC   (hex)               Advanced Navigation\r
+A00000-AFFFFF     (base 16)            Advanced Navigation\r
+                               Level 8, 37 Pitt Street\r
+                               Sydney  NSW  2000\r
+                               AU\r
+\r
+DC-E5-33   (hex)               ShenZhen C&D Electronics CO.Ltd.\r
+300000-3FFFFF     (base 16)            ShenZhen C&D Electronics CO.Ltd.\r
+                               9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park,  Longhua New District\r
+                               ShenZhen  GuangDong  518000\r
+                               CN\r
+\r
+DC-E5-33   (hex)               WECAN Solution Inc.\r
+600000-6FFFFF     (base 16)            WECAN Solution Inc.\r
+                               71, Yulhadong-ro 8-gil, Dong-gu, Daegu, Republic of Korea\r
+                               Daegu    41102\r
+                               KR\r
+\r
+DC-E5-33   (hex)               BRCK\r
+C00000-CFFFFF     (base 16)            BRCK\r
+                               PO Box 58275-00200, 2nd Floor Bishop Magua Center, George Padmore Lane, 2nd Floor Bishop Magua Center, George Padmore Lane\r
+                               Nairobi  Nairobi  00200\r
+                               KE\r
+\r
+A4-DA-22   (hex)               Malldon Technology Limited\r
+900000-9FFFFF     (base 16)            Malldon Technology Limited\r
+                               607 Longsheng Technology Building, Longhua Dist\r
+                               Shenzhen  Guangdong  518000\r
+                               CN\r
+\r
+88-A9-A7   (hex)               AVLINK INDUSTRIAL CO., LTD\r
+D00000-DFFFFF     (base 16)            AVLINK INDUSTRIAL CO., LTD\r
+                               7/F, A1 Bldg, 1st Shuichanjingwan Industrial Park, Nanchang Village, Gushu, Bao'an Dist \r
+                               Shenzhen  Guangdong  518126\r
+                               CN\r
+\r
+88-A9-A7   (hex)               Volterman Inc.\r
+500000-5FFFFF     (base 16)            Volterman Inc.\r
+                               Suite B2, Sunset Lake Road\r
+                               Newark  DE  19702\r
+                               US\r
+\r
+F0-41-C8   (hex)               Powervault Ltd\r
+B00000-BFFFFF     (base 16)            Powervault Ltd\r
+                               29 Shand Street, London Bridge\r
+                               London    SE1 2ES\r
+                               GB\r
index 5a7b6e7ffc135844e28d47f51a2daa21ff1c94c2..79b2cc672bea25dade683b6e88b17afbd86598b4 100644 (file)
@@ -620,12 +620,6 @@ F78000-F78FFF     (base 16)                Manvish eTech Pvt. Ltd.
                                SUMIDA-KU  TOKYO  1300026\r
                                JP\r
 \r
-70-B3-D5   (hex)               Vtron Pty Ltd\r
-341000-341FFF     (base 16)            Vtron Pty Ltd\r
-                               Unit 6, 59 Township Drive\r
-                               West Burleigh  Queensland  4219\r
-                               AU\r
-\r
 70-B3-D5   (hex)               Peek Traffic\r
 875000-875FFF     (base 16)            Peek Traffic\r
                                2906 Corporate Way\r
@@ -2777,6 +2771,150 @@ B6C000-B6CFFF     (base 16)             GHM-Messtechnik GmbH (Standort IMTRON)
                                Kraków    31-031\r
                                PL\r
 \r
+70-B3-D5   (hex)               KST technology\r
+351000-351FFF     (base 16)            KST technology\r
+                               KST B/D 4-5, Wiryeseong-daero 12-gil\r
+                               Songpa-gu  Seoul  05636\r
+                               KR\r
+\r
+70-B3-D5   (hex)               Vtron Pty Ltd\r
+15D000-15DFFF     (base 16)            Vtron Pty Ltd\r
+                               Unit 2, 62 Township Drive West\r
+                               West Burleigh  Queensland  4219\r
+                               AU\r
+\r
+70-B3-D5   (hex)               Vtron Pty Ltd\r
+341000-341FFF     (base 16)            Vtron Pty Ltd\r
+                               Unit 2, 62 Township Drive West\r
+                               West Burleigh  Queensland  4219\r
+                               AU\r
+\r
+70-B3-D5   (hex)               Kunshan excellent Intelligent Technology Co., Ltd.\r
+BE4000-BE4FFF     (base 16)            Kunshan excellent Intelligent Technology Co., Ltd.\r
+                               Room 2002 Site B Modern Square No 8 Wei yi Road \r
+                               kunshan  Jiangsu Province   215301\r
+                               CN\r
+\r
+70-B3-D5   (hex)               YUYAMA MFG Co.,Ltd\r
+E86000-E86FFF     (base 16)            YUYAMA MFG Co.,Ltd\r
+                               3-3-1\r
+                               TOYONAKASHI  OSAKA  561-0841\r
+                               JP\r
+\r
+70-B3-D5   (hex)               QUANTAFLOW\r
+6EB000-6EBFFF     (base 16)            QUANTAFLOW\r
+                               AVENUE DU CANADA\r
+                               HONFLEUR    14600\r
+                               FR\r
+\r
+70-B3-D5   (hex)               FLUDIA\r
+4A0000-4A0FFF     (base 16)            FLUDIA\r
+                               4T rue honoré d'estienne d'orves\r
+                               Suresnes    92150\r
+                               FR\r
+\r
+70-B3-D5   (hex)               OLEDCOMM\r
+A43000-A43FFF     (base 16)            OLEDCOMM\r
+                               10-12 avenue de l'Europe\r
+                               Vélizy Villacoublay  Ile de France  78140\r
+                               FR\r
+\r
+70-B3-D5   (hex)               Peter Huber Kaeltemaschinenbau AG\r
+D7B000-D7BFFF     (base 16)            Peter Huber Kaeltemaschinenbau AG\r
+                               Werner-von-Siemens-Str. 1\r
+                               Offenburg  Ba-Wue  77656\r
+                               DE\r
+\r
+70-B3-D5   (hex)               TORGOVYY DOM  TEHNOLOGIY LLC\r
+7C0000-7C0FFF     (base 16)            TORGOVYY DOM  TEHNOLOGIY LLC\r
+                               The village of Rumyantsevo,  Build.1\r
+                               Moscow  Moscow  142784\r
+                               RU\r
+\r
+70-B3-D5   (hex)               Cardinal Health\r
+75E000-75EFFF     (base 16)            Cardinal Health\r
+                               444 McDonnell Blvd.\r
+                               Hazelwood  MO  63042\r
+                               US\r
+\r
+70-B3-D5   (hex)               Matrix Orbital Corporation\r
+2B7000-2B7FFF     (base 16)            Matrix Orbital Corporation\r
+                               Suite 602, 4774 Westwinds Dr NE\r
+                               Calgary  Alberta  T3J 0L7\r
+                               CA\r
+\r
+70-B3-D5   (hex)               Stone Three\r
+7BF000-7BFFFF     (base 16)            Stone Three\r
+                               24 Gardner Williams Ave\r
+                               Somerset West  Western Cape  7130\r
+                               ZA\r
+\r
+70-B3-D5   (hex)               Transas Marine Limited\r
+304000-304FFF     (base 16)            Transas Marine Limited\r
+                               10 Eastgate Avenue, Eastgate Business Park\r
+                               Little Island, Cork    0\r
+                               IE\r
+\r
+70-B3-D5   (hex)               MonsoonRF, Inc.\r
+0F3000-0F3FFF     (base 16)            MonsoonRF, Inc.\r
+                               7740 Garvey Ave, Unit D\r
+                               Rosemead  CA  91770\r
+                               US\r
+\r
+70-B3-D5   (hex)               SHINWA INDUSTRIES, INC.\r
+F87000-F87FFF     (base 16)            SHINWA INDUSTRIES, INC.\r
+                               Daisan Nishi-Aoyama Bldg. 6F 1-8-1 Shibuya\r
+                               Shibuya-ku  Tokyo  150-0002\r
+                               JP\r
+\r
+70-B3-D5   (hex)               AmTote Australasia\r
+DAA000-DAAFFF     (base 16)            AmTote Australasia\r
+                               Unit3, 28 LeightonPlace.\r
+                               HORNSBY  NSW  2077\r
+                               AU\r
+\r
+70-B3-D5   (hex)               EA Elektroautomatik GmbH & Co. KG\r
+743000-743FFF     (base 16)            EA Elektroautomatik GmbH & Co. KG\r
+                               Helmholtzstraße 31-33\r
+                               Viersen  NRW  41747\r
+                               DE\r
+\r
+70-B3-D5   (hex)               MB connect line GmbH Fernwartungssysteme\r
+08A000-08AFFF     (base 16)            MB connect line GmbH Fernwartungssysteme\r
+                               Winnettener Straße 6\r
+                               Dinkelsbuehl  Bavaria  91550\r
+                               DE\r
+\r
+70-B3-D5   (hex)               Prisma Telecom Testing Srl\r
+689000-689FFF     (base 16)            Prisma Telecom Testing Srl\r
+                               Via Petrocchi, 4\r
+                               Milano  MI  20127\r
+                               IT\r
+\r
+70-B3-D5   (hex)               Plantiga Technologies Inc\r
+525000-525FFF     (base 16)            Plantiga Technologies Inc\r
+                               324-611 Alexander Street\r
+                               Vancouver  British Columbia  V6A 1E1\r
+                               CA\r
+\r
+70-B3-D5   (hex)               Krontech\r
+6E9000-6E9FFF     (base 16)            Krontech\r
+                               I.T.U ARI 3 Teknokent Kron Telekomunikasyon, Maslak\r
+                               Istanbul    34467\r
+                               TR\r
+\r
+70-B3-D5   (hex)               TRIDENT INFOSOL PVT LTD\r
+C8F000-C8FFFF     (base 16)            TRIDENT INFOSOL PVT LTD\r
+                               NO1A , KUSHAL GARDEN , PEENYA INDUSTRIAL AREA\r
+                               BANGALORE    560058\r
+                               IN\r
+\r
+70-B3-D5   (hex)               Zamir Recognition Systems Ltd.\r
+981000-981FFF     (base 16)            Zamir Recognition Systems Ltd.\r
+                               Manachat Tech Park 1/22\r
+                               Jerusalem    96951\r
+                               IL\r
+\r
 70-B3-D5   (hex)               Flintab AB\r
 D60000-D60FFF     (base 16)            Flintab AB\r
                                Kabelvägen 4\r
@@ -5582,6 +5720,171 @@ FF9000-FF9FFF     (base 16)             InOut Communication Systems
                                Udiner  UD  33100\r
                                IT\r
 \r
+70-B3-D5   (hex)               Neuron GmbH\r
+E1B000-E1BFFF     (base 16)            Neuron GmbH\r
+                               Badenerstrasse 9\r
+                               Brugg    5200\r
+                               CH\r
+\r
+70-B3-D5   (hex)               HAVELSAN A.Ş.\r
+096000-096FFF     (base 16)            HAVELSAN A.Ş.\r
+                               Mustafa Kemal Mah. 2120.Cad. No.39                   \r
+                               ANKARA    06510 \r
+                               TR\r
+\r
+70-B3-D5   (hex)               YG COMPANY CO., LTD\r
+63F000-63FFFF     (base 16)            YG COMPANY CO., LTD\r
+                               65, Techno 3-ro\r
+                               Daejeon  Yuseong-gu  34016\r
+                               KR\r
+\r
+70-B3-D5   (hex)               Selex ES Inc.\r
+F5E000-F5EFFF     (base 16)            Selex ES Inc.\r
+                               4221 Tudor Lane\r
+                               Greensboro  NC  27410\r
+                               US\r
+\r
+70-B3-D5   (hex)               DIMASTEC GESTAO DE PONTO E ACESSO EIRELI-ME\r
+F8F000-F8FFFF     (base 16)            DIMASTEC GESTAO DE PONTO E ACESSO EIRELI-ME\r
+                               Praça Rotary Club, 355\r
+                               Ribeirão Preto  São Paulo  14021-355\r
+                               BR\r
+\r
+70-B3-D5   (hex)               Savari Inc\r
+207000-207FFF     (base 16)            Savari Inc\r
+                               2005 De la cruz blvd, st 111,\r
+                               santa clara  CA  95050\r
+                               US\r
+\r
+70-B3-D5   (hex)               QIAGEN Instruments AG\r
+A29000-A29FFF     (base 16)            QIAGEN Instruments AG\r
+                               Garstligweg 8\r
+                               Hombrechtikon  Zurich  8634\r
+                               CH\r
+\r
+70-B3-D5   (hex)               ONDEMAND LABORATORY Co., Ltd.\r
+069000-069FFF     (base 16)            ONDEMAND LABORATORY Co., Ltd.\r
+                               Daiba 449 Space 369 Building 2F\r
+                               Mishima  Shizuoka  411-0803\r
+                               JP\r
+\r
+70-B3-D5   (hex)               EPSOFT Co., Ltd\r
+A3A000-A3AFFF     (base 16)            EPSOFT Co., Ltd\r
+                               301, Bupyeong-daero, Bupyeong-gu\r
+                               Incheon    21315\r
+                               KR\r
+\r
+70-B3-D5   (hex)               Emergency Lighting Products Limited\r
+480000-480FFF     (base 16)            Emergency Lighting Products Limited\r
+                               Gillmans Industrial Estate, Natts Lane\r
+                               Billingshurst    RH14 9EZ\r
+                               GB\r
+\r
+70-B3-D5   (hex)               CSM MACHINERY srl\r
+FE3000-FE3FFF     (base 16)            CSM MACHINERY srl\r
+                               Via Cadore Mare, 25\r
+                               Cimetta di Codognè  Treviso  31013\r
+                               IT\r
+\r
+70-B3-D5   (hex)               X-Laser LLC\r
+711000-711FFF     (base 16)            X-Laser LLC\r
+                               9125 Whiskey Bottom Rd Ste A\r
+                               Laurel  MD  20723\r
+                               US\r
+\r
+70-B3-D5   (hex)               GS Elektromedizinsiche Geräte G. Stemple GmbH\r
+144000-144FFF     (base 16)            GS Elektromedizinsiche Geräte G. Stemple GmbH\r
+                               Hauswiesenstr. 26\r
+                               Kaufering  Bayern  86916\r
+                               DE\r
+\r
+70-B3-D5   (hex)               NESA SRL\r
+BFA000-BFAFFF     (base 16)            NESA SRL\r
+                               Via Sartori, 6/8\r
+                               Vidor  Treviso  31020\r
+                               IT\r
+\r
+70-B3-D5   (hex)               Renesas Electronics\r
+340000-340FFF     (base 16)            Renesas Electronics\r
+                               2801 Scott Blvd\r
+                               Santa Clara  CA  95050\r
+                               US\r
+\r
+70-B3-D5   (hex)               AEM Singapore Pte. Ltd.\r
+AC1000-AC1FFF     (base 16)            AEM Singapore Pte. Ltd.\r
+                               52 Serangoon North Ave 4\r
+                               Singapore  Singapore  555853\r
+                               SG\r
+\r
+70-B3-D5   (hex)               Planewave Instruments\r
+CB4000-CB4FFF     (base 16)            Planewave Instruments\r
+                               1819 Kona Dr.\r
+                               Compton  CA  90220\r
+                               US\r
+\r
+70-B3-D5   (hex)               Avionica \r
+611000-611FFF     (base 16)            Avionica \r
+                               9941 West Jessamine St\r
+                               Miami   FL  33157 \r
+                               US\r
+\r
+70-B3-D5   (hex)               ELDES\r
+9A0000-9A0FFF     (base 16)            ELDES\r
+                               Ukmerges 283B\r
+                               Vilnius    06313\r
+                               LT\r
+\r
+70-B3-D5   (hex)               Intesens\r
+B17000-B17FFF     (base 16)            Intesens\r
+                               425 rue Jean Rostand\r
+                               labege    31670\r
+                               FR\r
+\r
+70-B3-D5   (hex)               Avant Technologies, Inc\r
+410000-410FFF     (base 16)            Avant Technologies, Inc\r
+                               Road 156 Caguas West Ind. Park bldg 39\r
+                               Caguas  PR  00726\r
+                               US\r
+\r
+70-B3-D5   (hex)               Lab241 Co.,Ltd.\r
+21B000-21BFFF     (base 16)            Lab241 Co.,Ltd.\r
+                               25Dong 241Ho, 97, Siheung-daero, Geumcheon-gu\r
+                               Seoul  Seoul  08639\r
+                               KR\r
+\r
+70-B3-D5   (hex)               HEITEC AG\r
+228000-228FFF     (base 16)            HEITEC AG\r
+                               Dr.-Otto-Leich-Str. 16\r
+                               Eckental  Bavaria  90542\r
+                               DE\r
+\r
+70-B3-D5   (hex)               Alere Technologies AS\r
+2AE000-2AEFFF     (base 16)            Alere Technologies AS\r
+                               Kjelsaasveien 161\r
+                               Oslo  Oslo  0382\r
+                               NO\r
+\r
+70-B3-D5   (hex)               Insitu, Inc\r
+B3B000-B3BFFF     (base 16)            Insitu, Inc\r
+                               118 E Columbia River Way\r
+                               Bingen  WA  98605\r
+                               US\r
+\r
+70-B3-D5   (hex)               MatchX GmbH\r
+1CB000-1CBFFF     (base 16)            MatchX GmbH\r
+                               Adalbert Str.8\r
+                               Berlin    10999\r
+                               DE\r
+\r
+70-B3-D5   (hex)               Metrum Sweden AB\r
+F98000-F98FFF     (base 16)            Metrum Sweden AB\r
+                               Anders Personsgatan 16\r
+                               Goteborg    41664\r
+                               SE\r
+\r
+70-B3-D5   (hex)               Private\r
+DE9000-DE9FFF     (base 16)            Private\r
+\r
 70-B3-D5   (hex)               Schildknecht AG\r
 494000-494FFF     (base 16)            Schildknecht AG\r
                                Haugweg 26\r
@@ -7328,18 +7631,6 @@ AE7000-AE7FFF     (base 16)              E-T-A Elektrotechnische Apparate GmbH
                                Altdorf    90518\r
                                DE\r
 \r
-70-B3-D5   (hex)               Vtron Pty Ltd\r
-400000-400FFF     (base 16)            Vtron Pty Ltd\r
-                               Unit 2, 62 Township Drive\r
-                               Australia  Queensland  4219\r
-                               AU\r
-\r
-70-B3-D5   (hex)               Vtron Pty Ltd\r
-E0F000-E0FFFF     (base 16)            Vtron Pty Ltd\r
-                               Unit 6, 59 Township Drive\r
-                               West Burleigh  Queensland  4219\r
-                               AU\r
-\r
 70-B3-D5   (hex)               DSP4YOU LTd\r
 12F000-12FFFF     (base 16)            DSP4YOU LTd\r
                                Unit 1204, 106 How Ming Street\r
@@ -7784,12 +8075,6 @@ FFC000-FFCFFF     (base 16)              Symetrics Industries d.b.a. Extant Aerospace
                                Montoire sur le Loir  Loir et Cher  41800\r
                                FR\r
 \r
-70-B3-D5   (hex)               Vtron Pty Ltd\r
-B2B000-B2BFFF     (base 16)            Vtron Pty Ltd\r
-                               Unit 2, 62 Township Drive\r
-                               West Burleigh  Queensland  4219\r
-                               AU\r
-\r
 70-B3-D5   (hex)               RJ45 Technologies\r
 9D0000-9D0FFF     (base 16)            RJ45 Technologies\r
                                7, rue Roland Martin\r
@@ -8039,12 +8324,6 @@ C14000-C14FFF     (base 16)              Grupo Epelsa S.L.
                                Alcala de Henares  Madrid  28805\r
                                ES\r
 \r
-70-B3-D5   (hex)               SENSO2ME bvba\r
-631000-631FFF     (base 16)            SENSO2ME bvba\r
-                               Zandhoef  16\r
-                               KASTERLEE  België  2460\r
-                               BE\r
-\r
 70-B3-D5   (hex)               S Labs sp. z o.o.\r
 C53000-C53FFF     (base 16)            S Labs sp. z o.o.\r
                                Jasnogórska, 44\r
@@ -8294,6 +8573,120 @@ CFE000-CFEFFF     (base 16)             Secturion Systems
                                Centerville  UT  84014\r
                                US\r
 \r
+70-B3-D5   (hex)               Shenzhen INVT Electric Co.,Ltd\r
+1D0000-1D0FFF     (base 16)            Shenzhen INVT Electric Co.,Ltd\r
+                                INVT Bldg., GaoFa Scientific Park, Longjing, Nanshan, Shenzhen.\r
+                               Shenzhen  Guangdong  518055\r
+                               CN\r
+\r
+70-B3-D5   (hex)               Vtron Pty Ltd\r
+400000-400FFF     (base 16)            Vtron Pty Ltd\r
+                               Unit 2, 62 Township Drive West\r
+                               West Burleigh  Queensland  4219\r
+                               AU\r
+\r
+70-B3-D5   (hex)               Vtron Pty Ltd\r
+B2B000-B2BFFF     (base 16)            Vtron Pty Ltd\r
+                               Unit 2, 62 Township Drive West\r
+                               West Burleigh  Queensland  4219\r
+                               AU\r
+\r
+70-B3-D5   (hex)               Vtron Pty Ltd\r
+E0F000-E0FFFF     (base 16)            Vtron Pty Ltd\r
+                               Unit 2, 62 Township Drive West\r
+                               West Burleigh  Queensland  4219\r
+                               AU\r
+\r
+70-B3-D5   (hex)               KRONOTECH SRL\r
+8C8000-8C8FFF     (base 16)            KRONOTECH SRL\r
+                               VIALE UNGHERIA 125\r
+                               UDINE  ITALY/UDINE  33100\r
+                               IT\r
+\r
+70-B3-D5   (hex)               Particle sizing systems\r
+670000-670FFF     (base 16)            Particle sizing systems\r
+                               8203 Kristel Cir\r
+                               New Port Richey  FL  34652\r
+                               US\r
+\r
+70-B3-D5   (hex)               Grupo Epelsa S.L.\r
+4E1000-4E1FFF     (base 16)            Grupo Epelsa S.L.\r
+                               C/ Punto Net,3\r
+                               Alcala de Henares  Madrid  28805\r
+                               ES\r
+\r
+70-B3-D5   (hex)               Waterkotte GmbH\r
+7EA000-7EAFFF     (base 16)            Waterkotte GmbH\r
+                               Gewerkenstr. 15\r
+                               Herne    44628\r
+                               DE\r
+\r
+70-B3-D5   (hex)               Imecon Engineering SrL\r
+5E3000-5E3FFF     (base 16)            Imecon Engineering SrL\r
+                               via Gerola 13/15\r
+                               Fiesco  CR  26010\r
+                               IT\r
+\r
+70-B3-D5   (hex)               ELBIT SYSTEMS BMD AND LAND EW - ELISRA LTD\r
+24F000-24FFFF     (base 16)            ELBIT SYSTEMS BMD AND LAND EW - ELISRA LTD\r
+                               Hamerchava 29\r
+                               holon    58101\r
+                               IL\r
+\r
+70-B3-D5   (hex)               HiDes, Inc.\r
+837000-837FFF     (base 16)            HiDes, Inc.\r
+                               6F, No.86, Baozhong Rd., Xindian Dist.,\r
+                               New Taipei City  New Taipei City  23144\r
+                               TW\r
+\r
+70-B3-D5   (hex)               OptoPrecision GmbH\r
+4F9000-4F9FFF     (base 16)            OptoPrecision GmbH\r
+                               Auf der Höhe 15\r
+                               Bremen  Bremen  28357\r
+                               DE\r
+\r
+70-B3-D5   (hex)               OSUNG LST CO.,LTD.\r
+B64000-B64FFF     (base 16)            OSUNG LST CO.,LTD.\r
+                               #433-31, Sandong-ro, Eumbong-myeon\r
+                               Asan-si  Chungcheongnam-do  31418\r
+                               KR\r
+\r
+70-B3-D5   (hex)               Impulse Automation\r
+7A3000-7A3FFF     (base 16)            Impulse Automation\r
+                               Obuhovskoy Oborony 120-B\r
+                               Saint Petersburg  Saint Petersburg  192012\r
+                               RU\r
+\r
+70-B3-D5   (hex)               SENSO2ME \r
+631000-631FFF     (base 16)            SENSO2ME \r
+                               Zandhoef  16\r
+                               KASTERLEE  België  2460\r
+                               BE\r
+\r
+70-B3-D5   (hex)               Infodev Electronic Designers Intl.\r
+DBF000-DBFFFF     (base 16)            Infodev Electronic Designers Intl.\r
+                               1995 rue Frank-Carrel Suite 202\r
+                               Quebec  Quebec  G1N4H9\r
+                               CA\r
+\r
+70-B3-D5   (hex)               SENSO2ME \r
+F7A000-F7AFFF     (base 16)            SENSO2ME \r
+                               Zandhoef  16\r
+                               KASTERLEE  België  2460\r
+                               BE\r
+\r
+70-B3-D5   (hex)               KOSMEK.Ltd\r
+BB9000-BB9FFF     (base 16)            KOSMEK.Ltd\r
+                               Murodani 2-1-5, Nishi-ku\r
+                               Kobe-City  Hyogo Pref.  6512241\r
+                               JP\r
+\r
+70-B3-D5   (hex)               Quantum Opus, LLC\r
+602000-602FFF     (base 16)            Quantum Opus, LLC\r
+                               45211 Helm St\r
+                               Plymouth  MI  48170\r
+                               US\r
+\r
 70-B3-D5   (hex)               Innitive B.V.\r
 66B000-66BFFF     (base 16)            Innitive B.V.\r
                                Brouwerijstraat 20\r
@@ -9902,12 +10295,6 @@ B44000-B44FFF     (base 16)             ENTEC Electric & Electronic Co., LTD.
                                London     NW1 5QP \r
                                GB\r
 \r
-70-B3-D5   (hex)               Vtron Pty Ltd\r
-3EF000-3EFFFF     (base 16)            Vtron Pty Ltd\r
-                               Unit 6, 59 Township Drive\r
-                               West Burleigh  Queensland  4219\r
-                               AU\r
-\r
 70-B3-D5   (hex)               Morgan Schaffer Inc.\r
 7C2000-7C2FFF     (base 16)            Morgan Schaffer Inc.\r
                                8300 rue St-Patrick bureau 150\r
@@ -10925,6 +11312,54 @@ BA2000-BA2FFF     (base 16)            MAMAC Systems, Inc.
                                Chanhassen    55317-8002\r
                                US\r
 \r
+70-B3-D5   (hex)               Vtron Pty Ltd\r
+3EF000-3EFFFF     (base 16)            Vtron Pty Ltd\r
+                               Unit 2, 62 Township Drive West\r
+                               West Burleigh  Queensland  4219\r
+                               AU\r
+\r
+70-B3-D5   (hex)               ELVA-1 MICROWAVE HANDELSBOLAG\r
+FA3000-FA3FFF     (base 16)            ELVA-1 MICROWAVE HANDELSBOLAG\r
+                               c/o Hornlund, Kungsgatan 54\r
+                               Furulund    244 62\r
+                               SE\r
+\r
+70-B3-D5   (hex)               Collini Dienstleistungs GmbH\r
+C67000-C67FFF     (base 16)            Collini Dienstleistungs GmbH\r
+                               Schweizerstr. 59\r
+                               Hohenems    A 6845\r
+                               AT\r
+\r
+70-B3-D5   (hex)               Richard Paul Russell Ltd\r
+98B000-98BFFF     (base 16)            Richard Paul Russell Ltd\r
+                               The Lodge, Unit 1 Barnes Farm Business Park\r
+                               Milford on Sea  Hampshire  SO41 0AP\r
+                               GB\r
+\r
+70-B3-D5   (hex)               Association Romandix\r
+AEB000-AEBFFF     (base 16)            Association Romandix\r
+                               rue de Sebeillon 9b\r
+                               Lausanne  Vaud  1004\r
+                               CH\r
+\r
+70-B3-D5   (hex)               Special Services Group, LLC\r
+0F8000-0F8FFF     (base 16)            Special Services Group, LLC\r
+                               PO Box 825\r
+                               Denair  CA  95316\r
+                               US\r
+\r
+70-B3-D5   (hex)               Divigraph (Pty) LTD\r
+A86000-A86FFF     (base 16)            Divigraph (Pty) LTD\r
+                                Postnet Suite 72, Private Bag X7\r
+                               Chempet    7442\r
+                               ZA\r
+\r
+70-B3-D5   (hex)               Tunstall A/S\r
+A17000-A17FFF     (base 16)            Tunstall A/S\r
+                               Niels Bohrs vej 42\r
+                               Stilling  Skanderborg  8660\r
+                               DK\r
+\r
 70-B3-D5   (hex)               Saline Lectronics, Inc.\r
 246000-246FFF     (base 16)            Saline Lectronics, Inc.\r
                                710 N Maple Rd\r
@@ -11009,6 +11444,84 @@ FD6000-FD6FFF     (base 16)            Visual Fan
                                Anyang-si  Gyeonggi-do  14067\r
                                KR\r
 \r
+70-B3-D5   (hex)               FactoryLab B.V.\r
+5DC000-5DCFFF     (base 16)            FactoryLab B.V.\r
+                               Lindtsedijk 54\r
+                               Zwijndrecht  Zuid Holland  3336LE\r
+                               NL\r
+\r
+70-B3-D5   (hex)               True Networks Ltd.\r
+AF2000-AF2FFF     (base 16)            True Networks Ltd.\r
+                               #401 51 Seongnam-Daero Bundang-gu\r
+                               SEONGNAM-si  GYEONGGI-do  13636\r
+                               KR\r
+\r
+70-B3-D5   (hex)               Storbyte, Inc.\r
+63D000-63DFFF     (base 16)            Storbyte, Inc.\r
+                               1800 Washington Blvd Suite 412\r
+                               Baltimore  MD  21230\r
+                               US\r
+\r
+70-B3-D5   (hex)               HGH SYSTEMES INFRAROUGES\r
+853000-853FFF     (base 16)            HGH SYSTEMES INFRAROUGES\r
+                               10 Rue Maryse Bastié\r
+                               Igny  IDF  91430\r
+                               FR\r
+\r
+70-B3-D5   (hex)               Shenzhen bayue software co. LTD\r
+784000-784FFF     (base 16)            Shenzhen bayue software co. LTD\r
+                               B301, second phase of China merchants street technology building, nanshan district\r
+                               ShenZhen    518000\r
+                               CN\r
+\r
+70-B3-D5   (hex)               Preston Industries dba PolyScience\r
+3B5000-3B5FFF     (base 16)            Preston Industries dba PolyScience\r
+                               6600 W. Touhy Ave\r
+                               Niles  IL  60714-4588\r
+                               US\r
+\r
+70-B3-D5   (hex)               KMtronic ltd\r
+0AF000-0AFFFF     (base 16)            KMtronic ltd\r
+                               Dobri Czintulov 28A str.\r
+                                Gorna Oryahovica  VT  5100\r
+                               BG\r
+\r
+70-B3-D5   (hex)               BLOCKSI LLC\r
+9E6000-9E6FFF     (base 16)            BLOCKSI LLC\r
+                               228 Hamilton avenue 3rd floor\r
+                               Palo Alto    94301\r
+                               US\r
+\r
+70-B3-D5   (hex)               Fire4 Systems UK Ltd\r
+E69000-E69FFF     (base 16)            Fire4 Systems UK Ltd\r
+                               8 Regent Street\r
+                               Leeds  West Yorkshire  LS7 4PE\r
+                               GB\r
+\r
+70-B3-D5   (hex)               RealD\r
+CCB000-CCBFFF     (base 16)            RealD\r
+                               5700 Flatiron Parkway\r
+                               Boulder  CO  80301\r
+                               US\r
+\r
+70-B3-D5   (hex)               Melecs EWS GmbH\r
+704000-704FFF     (base 16)            Melecs EWS GmbH\r
+                               GZO-Technologiestrasse 1\r
+                               Siegendorf     7011\r
+                               AT\r
+\r
+70-B3-D5   (hex)               Raft Technologies\r
+8D0000-8D0FFF     (base 16)            Raft Technologies\r
+                               Habarzel 25\r
+                               Tel aviv    6971035\r
+                               IL\r
+\r
+70-B3-D5   (hex)               Jacarta Ltd\r
+09B000-09BFFF     (base 16)            Jacarta Ltd\r
+                               Wagon Yard, London Road\r
+                               Marlborough    SN8 1LH\r
+                               GB\r
+\r
 70-B3-D5   (hex)               EMAC, Inc.\r
 8AB000-8ABFFF     (base 16)            EMAC, Inc.\r
                                2390 EMAC Way\r
@@ -11378,12 +11891,6 @@ A27000-A27FFF     (base 16)            HDL da Amazônia Industria Eletrônica Ltda
                                Manaus  MN  69075-010\r
                                BR\r
 \r
-70-B3-D5   (hex)               Insitu Inc\r
-7AD000-7ADFFF     (base 16)            Insitu Inc\r
-                               118 E. Columbia River Way\r
-                               Bingen  Washington  98605\r
-                               US\r
-\r
 70-B3-D5   (hex)               LLVISION TECHNOLOGY CO.,LTD\r
 E21000-E21FFF     (base 16)            LLVISION TECHNOLOGY CO.,LTD\r
                                Room302,Building A Fuxing,No.30 He Tao Yuan,Guan Dong Dian Bei Jie\r
@@ -13699,3 +14206,123 @@ EF9000-EF9FFF     (base 16)           Critical Link LLC
                                Av. Onze de Setembre 19\r
                                Reus  Tarragona  43203\r
                                ES\r
+\r
+70-B3-D5   (hex)               Triax A/S\r
+963000-963FFF     (base 16)            Triax A/S\r
+                               Bjornkaervej 3\r
+                               Hornsyld  Denmark  8783\r
+                               DK\r
+\r
+70-B3-D5   (hex)               White Matter LLC\r
+368000-368FFF     (base 16)            White Matter LLC\r
+                               999 3rd Ave 700\r
+                               Seattle    98104\r
+                               US\r
+\r
+70-B3-D5   (hex)               iFreecomm Technology Co., Ltd\r
+032000-032FFF     (base 16)            iFreecomm Technology Co., Ltd\r
+                               D401, NO.16 Langshan Road, Nanshan District\r
+                               Shenzhen  Guangdong  518057\r
+                               CN\r
+\r
+70-B3-D5   (hex)               RELISTE Ges.m.b.H.\r
+1B9000-1B9FFF     (base 16)            RELISTE Ges.m.b.H.\r
+                               Enzersdorfer Strasse 8-10\r
+                               Brunn am Gebirge    2345\r
+                               AT\r
+\r
+70-B3-D5   (hex)               JUSTEK INC\r
+EB5000-EB5FFF     (base 16)            JUSTEK INC\r
+                               613-9, DONGCHUN-RI, JINWI-MYEON\r
+                               PYEONGTAEK-SI  GYEONGGI-DO  17711\r
+                               KR\r
+\r
+70-B3-D5   (hex)               SHENZHEN WISEWING INTERNET TECHNOLOGY CO.,LTD\r
+94A000-94AFFF     (base 16)            SHENZHEN WISEWING INTERNET TECHNOLOGY CO.,LTD\r
+                               No.826,Zone 1,Block B,Famous industrial product display purchasing center,Baoyuan Road,Xixiang,Bao'an Dis., Shenzhen,P.R.China\r
+                               shenzhen  China  518102\r
+                               CN\r
+\r
+70-B3-D5   (hex)               Mo-Sys Engineering Ltd\r
+075000-075FFF     (base 16)            Mo-Sys Engineering Ltd\r
+                               Thames Bank House, Tunnel Avenue\r
+                               London    SE100PA\r
+                               GB\r
+\r
+70-B3-D5   (hex)               Abbas, a.s.\r
+B18000-B18FFF     (base 16)            Abbas, a.s.\r
+                               Edisonova 5\r
+                               Brno  CZ  61200\r
+                               CZ\r
+\r
+70-B3-D5   (hex)               Shanghai Holystar Information Technology Co.,Ltd\r
+6E1000-6E1FFF     (base 16)            Shanghai Holystar Information Technology Co.,Ltd\r
+                               8F Building A3 NO.1528 Gumei Rd Shanghai China PR\r
+                               shanghai    200233\r
+                               CN\r
+\r
+70-B3-D5   (hex)               Mimo Networks\r
+25D000-25DFFF     (base 16)            Mimo Networks\r
+                               701 E Middlefield Road Mountain View, \r
+                               Mountain View  CA  94043\r
+                               US\r
+\r
+70-B3-D5   (hex)               ATBiS Co.,Ltd\r
+C2F000-C2FFFF     (base 16)            ATBiS Co.,Ltd\r
+                               #1603 5th. Ace High-end Tower, 226 Gasan Digital 1-ro, Geumcheon-gu\r
+                               Seoul    08502\r
+                               KR\r
+\r
+70-B3-D5   (hex)               Cyanview\r
+E3A000-E3AFFF     (base 16)            Cyanview\r
+                               26, Rue de la Foire\r
+                               Papignies    7861\r
+                               BE\r
+\r
+70-B3-D5   (hex)               AdInte, inc.\r
+BAC000-BACFFF     (base 16)            AdInte, inc.\r
+                               347-1, Shijo-cho, Shimogyo-ku, 7F CUBE Nishikarasuma BLDG.\r
+                               Kyoto-shi  Kyoto  6008441\r
+                               JP\r
+\r
+70-B3-D5   (hex)               Valk Welding B.V.\r
+5DA000-5DAFFF     (base 16)            Valk Welding B.V.\r
+                               Staalindustrieweg 15\r
+                               Alblasserdam  Zuid Holland  2952 AT\r
+                               NL\r
+\r
+70-B3-D5   (hex)               VITEC\r
+CDA000-CDAFFF     (base 16)            VITEC\r
+                               99 rue pierre sémard\r
+                               Chatillon  France  92320\r
+                               FR\r
+\r
+70-B3-D5   (hex)               Nortek Global HVAC\r
+4D4000-4D4FFF     (base 16)            Nortek Global HVAC\r
+                               Fens Pool Ave\r
+                               Brierley Hill  West Midlands  DY5 1QA\r
+                               GB\r
+\r
+70-B3-D5   (hex)               Insitu, Inc\r
+7AD000-7ADFFF     (base 16)            Insitu, Inc\r
+                               118 E Columbia River Way\r
+                               Bingen  WA  98605\r
+                               US\r
+\r
+70-B3-D5   (hex)               KWS-Electronic GmbH\r
+EB3000-EB3FFF     (base 16)            KWS-Electronic GmbH\r
+                               Sportplatzstrasse 1\r
+                               Grosskarolinenfeld    D-83109\r
+                               DE\r
+\r
+70-B3-D5   (hex)               University Of Groningen\r
+700000-700FFF     (base 16)            University Of Groningen\r
+                               Broerstraat 5\r
+                               Groningen  Groningen  9712 CP\r
+                               NL\r
+\r
+70-B3-D5   (hex)               Globalcom Engineering SPA\r
+A0D000-A0DFFF     (base 16)            Globalcom Engineering SPA\r
+                               Via Volta 39\r
+                               CARDANO AL CAMPO  VA  21010\r
+                               IT\r
index be21887b098fedca9715c7eb23a928a59a5a2f37..f749ba4010a05617fede7f8d81023c85f3b9f104 100644 (file)
@@ -1,8 +1,8 @@
 #
 #      List of PCI ID's
 #
-#      Version: 2017.09.26
-#      Date:    2017-09-26 03:15:02
+#      Version: 2017.12.06
+#      Date:    2017-12-06 03:15:02
 #
 #      Maintained by Albert Pool, Martin Mares, and other volunteers from
 #      the PCI ID Project at http://pci-ids.ucw.cz/.
 0b0b  Rhino Equipment Corp.
        0105  R1T1
        0205  R4FXO
-       0206  RCB4FXO 4-channel FXO analog telphony card
+       0206  RCB4FXO 4-channel FXO analog telephony card
        0305  R4T1
        0405  R8FXX
-       0406  RCB8FXX 8-channel modular analog telphony card
+       0406  RCB8FXX 8-channel modular analog telephony card
        0505  R24FXX
-       0506  RCB24FXS 24-Channel FXS analog telphony card
+       0506  RCB24FXS 24-Channel FXS analog telephony card
        0605  R2T1
        0705  R24FXS
-       0706  RCB24FXO 24-Channel FXO analog telphony card
+       0706  RCB24FXO 24-Channel FXO analog telephony card
        0905  R1T3 Single T3 Digital Telephony Card
-       0906  RCB24FXX 24-channel modular analog telphony card
-       0a06  RCB672FXX 672-channel modular analog telphony card
+       0906  RCB24FXX 24-channel modular analog telephony card
+       0a06  RCB672FXX 672-channel modular analog telephony card
 0e11  Compaq Computer Corporation
        0001  PCI to EISA Bridge
        0002  PCI to ISA Bridge
                1028 1fd4  PERC H745P MX
                1d49 0602  ThinkSystem RAID 930-16i 4GB Flash PCIe 12Gb Adapter
                1d49 0604  ThinkSystem RAID 930-8e 4GB Flash PCIe 12Gb Adapter
+               8086 352d  Integrated RAID Module RMSP3AD160F
+               8086 9460  RAID Controller RSP3TD160F
+               8086 9480  RAID Controller RSP3MD088F
        0015  MegaRAID Tri-Mode SAS3416
        0016  MegaRAID Tri-Mode SAS3508
                1028 1fc9  PERC H840 Adapter
                1d49 0601  ThinkSystem RAID 930-8i 2GB Flash PCIe 12Gb Adapter
                1d49 0603  ThinkSystem RAID 930-24i 4GB Flash PCIe 12Gb Adapter
                1d49 0604  ThinkSystem RAID 930-8e 4GB Flash PCIe 12Gb Adapter
+               8086 352e  Integrated RAID Module RMSP3CD080F
+               8086 352f  Integrated RAID Module RMSP3HD080E
+               8086 9461  RAID Controller RSP3DD080F
        0017  MegaRAID Tri-Mode SAS3408
                1d49 0500  ThinkSystem RAID 530-8i PCIe 12Gb Adapter
                1d49 0502  ThinkSystem RAID 530-8i Dense Adapter
+               8086 3528  Integrated RAID RMSP3LD060
+               8086 3529  Integrated RAID RMSP3LD060
+               8086 9441  RAID Controller RSP3WD080E
        001b  MegaRAID Tri-Mode SAS3504
                1d49 0605  ThinkSystem RAID 930-4i 2GB Flash Flex Adapter
        001c  MegaRAID Tri-Mode SAS3404
                1028 1fd3  HBA330 MMZ
                1bd4 0011  Inspur 12Gb 8i-3008 IT SAS HBA
        00ab  SAS3516 Fusion-MPT Tri-Mode RAID On Chip (ROC)
+               8086 3530  Integrated RAID Module RMSP3JD160J
        00ac  SAS3416 Fusion-MPT Tri-Mode I/O Controller Chip (IOC)
                1d49 0201  ThinkSystem 430-16i SAS/SATA 12Gb HBA
                1d49 0203  ThinkSystem 430-16e SAS/SATA 12Gb HBA
+               8086 3000  RAID Controller RSP3QD160J
+               8086 3020  RAID Controller RSP3GD016J
        00ae  SAS3508 Fusion-MPT Tri-Mode RAID On Chip (ROC)
        00af  SAS3408 Fusion-MPT Tri-Mode I/O Controller Chip (IOC)
                1d49 0200  ThinkSystem 430-8i SAS/SATA 12Gb HBA
        131b  Kaveri [Radeon R4 Graphics]
        131c  Kaveri [Radeon R7 Graphics]
        131d  Kaveri [Radeon R6 Graphics]
+       15dd  Radeon Vega 8 Mobile
        1714  BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series]
                103c 168b  ProBook 4535s
        3150  RV380/M24 [Mobility Radeon X600]
                1043 836c  M4A785TD Motherboard
                1043 8410  M4A89GTD PRO/USB3 Motherboard
                1043 841b  M5A88-V EVO
+               105b 0e13  N15235/A74MX mainboard / AMD SB700
                1179 ff50  Satellite P305D-S8995E
                1458 a022  GA-MA770-DS3rev2.0 Motherboard
                17f2 5000  KI690-AM2 Motherboard
                103c 280a  DC5750 Microtower
                1043 82ef  M3A78-EH Motherboard
                1043 8389  M4A785TD Motherboard
+               105b 0e13  N15235/A74MX mainboard / AMD SB700
                1179 ff50  Satellite P305D-S8995E
                1458 4385  GA-MA770-DS3rev2.0 Motherboard
                1462 7368  K9AG Neo2
        4390  SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode]
                1043 82ef  M3A78-EH Motherboard
                1043 8389  M4A785TD Motherboard
+               105b 0e13  N15235/A74MX mainboard / AMD SB700
                1458 b002  GA-MA770-DS3rev2.0 Motherboard
                1849 4390  Motherboard (one of many)
        4391  SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode]
                103c 1611  Pavilion DM1Z-3000
                1043 82ef  M3A78-EH Motherboard
                1043 8443  M5A88-V EVO
+               105b 0e13  N15235/A74MX mainboard / AMD SB700
                174b 1001  PURE Fusion Mini
        4392  SB7x0/SB8x0/SB9x0 SATA Controller [Non-RAID5 mode]
+               105b 0e13  N15235/A74MX mainboard / AMD SB700
        4393  SB7x0/SB8x0/SB9x0 SATA Controller [RAID5 mode]
        4394  SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode]
        4395  SB8x0/SB9x0 SATA Controller [Storage mode]
                103c 1611  Pavilion DM1Z-3000
                1043 82ef  M3A78-EH Motherboard
                1043 8443  M5A88-V EVO
+               105b 0e13  N15235/A74MX mainboard / AMD SB700
                15d9 a811  H8DGU
                174b 1001  PURE Fusion Mini
        4397  SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
                103c 1611  Pavilion DM1Z-3000
                1043 82ef  M3A78-EH Motherboard
                1043 8443  M5A88-V EVO
+               105b 0e13  N15235/A74MX mainboard / AMD SB700
                15d9 a811  H8DGU
                174b 1001  PURE Fusion Mini
        4398  SB7x0 USB OHCI1 Controller
                1019 2120  A785GM-M
                1043 82ef  M3A78-EH Motherboard
+               105b 0e13  N15235/A74MX mainboard / AMD SB700
                15d9 a811  H8DGU
        4399  SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
                1019 2120  A785GM-M
                1043 82ef  M3A78-EH Motherboard
                1043 8443  M5A88-V EVO
+               105b 0e13  N15235/A74MX mainboard / AMD SB700
                174b 1001  PURE Fusion Mini
        439c  SB7x0/SB8x0/SB9x0 IDE Controller
                1019 2120  A785GM-M
                1043 82ef  M3A78-EH Motherboard
+               105b 0e13  N15235/A74MX mainboard / AMD SB700
        439d  SB7x0/SB8x0/SB9x0 LPC host controller
                1019 2120  A785GM-M
                103c 1611  Pavilion DM1Z-3000
                1043 82ef  M3A78-EH Motherboard
                1043 8443  M5A88-V EVO
+               105b 0e13  N15235/A74MX mainboard / AMD SB700
                174b 1001  PURE Fusion Mini
        43a0  SB700/SB800/SB900 PCI to PCI bridge (PCIE port 0)
        43a1  SB700/SB800/SB900 PCI to PCI bridge (PCIE port 1)
                103c 8006  FirePro M4170
                17aa 3643  Radeon R7 A360
        6605  Opal PRO [Radeon R7 M260]
+               103c 2259  FirePro M4150
        6606  Mars XTX [Radeon HD 8790M]
                1028 0684  FirePro W4170M
        6607  Mars LE [Radeon HD 8530M / R5 M240]
        6623  Mars
        6631  Oland
        6640  Saturn XT [FirePro M6100]
+               106b 014b  Tropo XT [Radeon R9 M380 Mac Edition]
        6641  Saturn PRO [Radeon HD 8930M]
        6646  Bonaire XT [Radeon R9 M280X]
        6647  Bonaire PRO [Radeon R9 M270X]
        6828  Cape Verde PRO [FirePro W600]
        6829  Cape Verde
        682a  Venus PRO
-       682b  Venus LE [Radeon HD 8830M]
+       682b  Venus LE / Tropo PRO-L [Radeon HD 8830M / R7 M465X]
+               0128 079c  Radeon R7 465X
        682c  Cape Verde GL [FirePro W4100]
        682d  Chelsea XT GL [FirePro M4000]
        682f  Chelsea LP [Radeon HD 7730M]
                144d c0c7  Radeon HD 7550M
        6842  Thames LE [Radeon HD 7000M Series]
        6843  Thames [Radeon HD 7670M]
+       6861  Vega 10 XT [Radeon PRO WX 9100]
        6863  Vega 10 XTX [Radeon Vega Frontier Edition]
        687f  Vega 10 XT [Radeon RX Vega 64]
        6888  Cypress XT [FirePro V8800]
        7910  RS690 Host Bridge
                1179 ff50  Satellite P305D-S8995E
                17f2 5000  KI690-AM2 Motherboard
-       7911  RS690 Host Bridge
-       7912  RS690 PCI to PCI Bridge (Internal gfx)
+       7911  RS690/RS740 Host Bridge
+               1002 7910  RS690/RS740 Host Bridge
+       7912  RS690/RS740 PCI to PCI Bridge (Internal gfx)
        7913  RS690 PCI to PCI Bridge (PCI Express Graphics Port 0)
        7915  RS690 PCI to PCI Bridge (PCI Express Port 1)
        7916  RS690 PCI to PCI Bridge (PCI Express Port 2)
        7941  RS600 [Radeon Xpress 1250]
        7942  RS600M [Radeon Xpress 1250]
        796e  RS740 [Radeon 2100]
+               105b 0e13  N15235/A74MX mainboard
        9400  R600 [Radeon HD 2900 PRO/XT]
                1002 2552  Radeon HD 2900 XT
                1002 3000  Radeon HD 2900 PRO
        9840  Kabini HDMI/DP Audio
        9850  Mullins [Radeon R3 Graphics]
        9851  Mullins [Radeon R4/R5 Graphics]
+               1179 f928  Beema [Radeon R5 Graphics]
        9852  Mullins [Radeon R2 Graphics]
        9853  Mullins [Radeon R2 Graphics]
        9854  Mullins [Radeon R3E Graphics]
        141f  Family 15h (Models 30h-3fh) Processor Function 5
        1422  Family 15h (Models 30h-3fh) Processor Root Complex
        1423  Family 15h (Models 30h-3fh) I/O Memory Management Unit
+       1424  Family 15h (Models 30h-3fh) Processor Root Port
        1426  Family 15h (Models 30h-3fh) Processor Root Port
        1436  Liverpool Processor Root Complex
        1437  Liverpool I/O Memory Management Unit
        1438  Liverpool Processor Root Port
        1439  Family 16h Processor Functions 5:1
        1450  Family 17h (Models 00h-0fh) Root Complex
+       1451  Family 17h (Models 00h-0fh) I/O Memory Management Unit
        1452  Family 17h (Models 00h-0fh) PCIe Dummy Host Bridge
+       1453  Family 17h (Models 00h-0fh) PCIe GPP Bridge
        1454  Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B
+       1456  Family 17h (Models 00h-0fh) Platform Security Processor
+       1457  Family 17h (Models 00h-0fh) HD Audio Controller
        145b  Zeppelin Non-Transparent Bridge
-       145c  USB3 Host Controller
+       145c  Family 17h (Models 00h-0fh) USB 3.0 Host Controller
        145f  USB 3.0 Host controller
        1460  Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 0
        1461  Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 1
        43a1  Hudson PCI to PCI bridge (PCIE port 1)
        43a2  Hudson PCI to PCI bridge (PCIE port 2)
        43a3  Hudson PCI to PCI bridge (PCIE port 3)
-       43bb  USB 3.1 XHCI Controller
+       43b4  300 Series Chipset PCIe Port
+       43b7  300 Series Chipset SATA Controller
+       43bb  300 Series Chipset USB 3.1 xHCI Controller
        7006  AMD-751 [Irongate] System Controller
        7007  AMD-751 [Irongate] AGP Bridge
        700a  AMD-IGR4 AGP Host to PCI Bridge
                102b 0f84  Millennium G550 Dual Head DDR 32Mb
                102b 1e41  Millennium G550
                102b 2300  Millennium G550 LP PCIE
-       2537  Millenium P650/P750
+       2537  Millennium P650/P750
                102b 1820  Millennium P750 64MB
                102b 1830  Millennium P650 64MB
                102b 1850  RAD2mp
                102b 1880  Sono S10
                102b 1c10  QID 128MB
                102b 2811  Millennium P650 Low-profile PCI 64MB
-               102b 2821  Millenium P650 Low-profile PCI
+               102b 2821  Millennium P650 Low-profile PCI
                102b 2841  RAD PCI
                102b 2851  Spectrum PCI
                102b 2871  EpicA TC2
                102b 3051  RG-400SL
                102b 3061  Extio F1420
                102b 3081  Extio F1240
-       2538  Millenium P650 PCIe
+       2538  Millennium P650 PCIe
                102b 0847  RAD PCIe
                102b 08c7  Millennium P650 PCIe 128MB
                102b 0907  Millennium P650 PCIe 64MB
                102b 0987  ATC PCIe 4MP
                102b 1047  Millennium P650 LP PCIe 128MB
                102b 1087  Millennium P650 LP PCIe 64MB
-               102b 1801  Millenium P650 PCIe x1
+               102b 1801  Millennium P650 PCIe x1
                102b 2538  Parhelia APVe
                102b 3007  QID Low-profile PCIe
                102b 3087  Aurora VX3mp
                102b 30c7  QID LP PCIe
        2539  Millennium P690
-               102b 0040  Millenium P690 PCIe x16
+               102b 0040  Millennium P690 PCIe x16
                102b 0042  ONYX
                102b 0043  SPECTRA
-               102b 0080  Millenium P690 Plus LP PCIe x16
-               102b 0081  Millenium P690 LP PCIe x16
+               102b 0080  Millennium P690 Plus LP PCIe x16
+               102b 0081  Millennium P690 LP PCIe x16
                102b 0082  RAD LPX PCIe x16
-               102b 00c0  Millenium P690 Plus LP PCI
-               102b 00c2  Millenium P690 LP PCI
+               102b 00c0  Millennium P690 Plus LP PCI
+               102b 00c2  Millennium P690 LP PCI
                102b 00c3  RAD LPX PCI
-               102b 0101  Millenium P690 PCI
-               102b 0140  Millenium P690 LP PCIe x1
+               102b 0101  Millennium P690 PCI
+               102b 0140  Millennium P690 LP PCIe x1
                102b 0180  Display Wall IP Decode 128 MB
        4164  Morphis QxT frame grabber
        43b4  Morphis Qxt encoding engine
        3308  Integrated Lights-Out Standard MS Watchdog Timer
                103c 330e  iLO3
                103c 3381  iLO4
-       402f  PCIe Root Port
        4030  zx2 System Bus Adapter
        4031  zx2 I/O Controller
        4037  PCIe Local Bus Adapter
-       403b  PCIe Root Port
 103e  Solliday Engineering
 103f  Synopsys/Logic Modeling Group
 1040  Accelgraphics Inc.
        3020  Samurai_IDE
 1043  ASUSTeK Computer Inc.
        0464  Radeon R9 270x GPU
+       0521  RX580 [RX 580 Dual O8G]
        0675  ISDNLink P-IN100-ST-D
                0675 1704  ISDN Adapter (PCI Bus, D, C)
                0675 1707  ISDN Adapter (PCI Bus, DV, W)
                10cf 105e  ISDN Adapter (PCI Bus, DV, W)
-       13a0  Transformer Book T101HA-GR030R
 # Should be 1022:9602
        9602  AMD RS780/RS880 PCI to PCI bridge (int gfx)
                1043 83a2  M4A785TD Motherboard
                103c 12dd  4Gb Fibre Channel [AB429A]
        2432  ISP2432-based 4Gb Fibre Channel to PCI Express HBA
                103c 7040  FC1142SR 4Gb 1-port PCIe Fibre Channel Host Bus Adapter [HPAE311A]
+               1077 0137  QLE2460 4 GB PCI-X Host-Bus-Adapter
        2532  ISP2532-based 8Gb Fibre Channel to PCI Express HBA
                1014 041e  FC EN0Y/EN12 PCIe2 LP 8 Gb 4-port Fibre Channel Adapter for POWER
                103c 3262  StorageWorks 81Q
                1077 015e  QLE2564 PCI Express to 8Gb FC Quad Channel
                1077 0167  QME2572 Dual Port FC8 HBA Mezzanine
                1590 00fc  StoreFabric 84Q 8Gb Quad Port Fibre Channel Host Bus Adapter
+       2971  ISP2684
        3022  ISP4022-based Ethernet NIC
        3032  ISP4032-based Ethernet IPv6 NIC
        4010  ISP4010-based iSCSI TOE HBA
                1077 000b  25GE 2P QL41262HxCU-DE Adapter
                1077 0011  FastLinQ QL41212H 25GbE Adapter
                1077 0012  FastLinQ QL41112H 10GbE Adapter
+               1590 021d  10/25GbE 2P QL41222HLCU-HP Adapter
+               1590 021e  10/25GbE 2P QL41162HMRJ-HP Adapter
+               1590 021f  10/25GbE 2P QL41262HMCU-HP Adapter
+               1590 0220  10/25GbE 2P QL41122HLRJ-HP Adapter
        8080  FastLinQ QL41000 Series 10/25/40/50GbE Controller (FCoE)
                1077 0001  10GE 2P QL41162HxRJ-DE Adapter
                1077 0002  10GE 2P QL41112HxCU-DE Adapter
                1077 000e  FastLinQ QL41162H 10GbE iSCSI Adapter (SR-IOV VF)
                1077 0011  FastLinQ QL41212H 25GbE Adapter (SR-IOV VF)
                1077 0012  FastLinQ QL41112H 10GbE Adapter (SR-IOV VF)
+               1590 021e  10/25GbE 2P QL41162HMRJ-HP Adapter
+               1590 021f  10/25GbE 2P QL41262HMCU-HP Adapter
        8430  ISP8324 1/10GbE Converged Network Controller (NIC VF)
        8431  8300 Series 10GbE Converged Network Adapter (FCoE VF)
        8432  ISP2432M-based 10GbE Converged Network Adapter (CNA)
        0533  C67 [GeForce 7000M / nForce 610M]
        053a  C68 [GeForce 7050 PV / nForce 630a]
        053b  C68 [GeForce 7050 PV / nForce 630a]
-               1043 8308  M2N68-AM Motherbord
+               1043 8308  M2N68-AM Motherboard
        053e  C68 [GeForce 7025 / nForce 630a]
        0541  MCP67 Memory Controller
        0542  MCP67 SMBus
-               1043 8308  M2N68-AM Motherbord
+               1043 8308  M2N68-AM Motherboard
        0543  MCP67 Co-processor
        0547  MCP67 Memory Controller
-               1043 8308  M2N68-AM Motherbord
+               1043 8308  M2N68-AM Motherboard
                1849 0547  ALiveNF7G-HDready
        0548  MCP67 ISA Bridge
                1043 8308  M2N68-AM Motherboard
        054c  MCP67 Ethernet
-               1043 8308  M2N68-AM Motherbord
+               1043 8308  M2N68-AM Motherboard
                1849 054c  ALiveNF7G-HDready, MCP67 Gigabit Ethernet
        054d  MCP67 Ethernet
        054e  MCP67 Ethernet
        1282  GK208 [GeForce GT 640 Rev. 2]
        1284  GK208 [GeForce GT 630 Rev. 2]
        1286  GK208 [GeForce GT 720]
-       1287  GK208 [GeForce GT 730]
-       1288  GK208 [GeForce GT 720]
+       1287  GK208B [GeForce GT 730]
+       1288  GK208B [GeForce GT 720]
        1289  GK208 [GeForce GT 710]
-       128b  GK208 [GeForce GT 710B]
+       128b  GK208B [GeForce GT 710]
        1290  GK208M [GeForce GT 730M]
                103c 2afa  GeForce GT 730A
                103c 2b04  GeForce GT 730A
                17aa 367c  GeForce 710A
        1296  GK208M [GeForce 825M]
        1298  GK208M [GeForce GT 720M]
-       1299  GK208M [GeForce 920M]
+       1299  GK208BM [GeForce 920M]
                17aa 30bb  GeForce 920A
+               17aa 30df  GeForce 920A
                17aa 36a7  GeForce 920A
                17aa 36af  GeForce 920M
-       129a  GK208M [GeForce 910M]
+       129a  GK208BM [GeForce 910M]
        12a0  GK208
        12b9  GK208GLM [Quadro K610M]
        12ba  GK208GLM [Quadro K510M]
        13fb  GM204GLM [Quadro M5500]
        1401  GM206 [GeForce GTX 960]
        1402  GM206 [GeForce GTX 950]
-       1406  GM206 [GeForce GTX 960]
+       1406  GM206 [GeForce GTX 960 OEM]
        1407  GM206 [GeForce GTX 750 v2]
        1427  GM206M [GeForce GTX 965M]
        1430  GM206GL [Quadro M2000]
        15f1  GP100GL
        15f7  GP100GL [Tesla P100 PCIe 12GB]
        15f8  GP100GL [Tesla P100 PCIe 16GB]
-       15f9  GP100GL [Tesla P100 SMX2 16GB]
+       15f9  GP100GL [Tesla P100 SXM2 16GB]
        1617  GM204M [GeForce GTX 980M]
        1618  GM204M [GeForce GTX 970M]
        1619  GM204M [GeForce GTX 965M]
        1725  GP100
        172e  GP100
        172f  GP100
+       174d  GM108M [GeForce MX130]
+       174e  GM108M [GeForce MX110]
        17c2  GM200 [GeForce GTX TITAN X]
        17c8  GM200 [GeForce GTX 980 Ti]
        17f0  GM200GL [Quadro M6000]
        1b78  GP102GL
        1b80  GP104 [GeForce GTX 1080]
        1b81  GP104 [GeForce GTX 1070]
-       1b82  GP104
+       1b82  GP104 [GeForce GTX 1070 Ti]
        1b83  GP104
        1b84  GP104 [GeForce GTX 1060 3GB]
        1b87  GP104 [P104-100]
                1462 11e8  GeForce GTX 1070 Max-Q
                1462 11e9  GeForce GTX 1070 Max-Q
                1558 9501  GeForce GTX 1070 Max-Q
+       1bad  GP104 [GeForce GTX 1070 Engineering Sample]
        1bb0  GP104GL [Quadro P5000]
        1bb1  GP104GL [Quadro P4000]
        1bb3  GP104GL [Tesla P4]
-       1bb4  GP104GL
+       1bb4  GP104GL [Tesla P6]
+       1bb5  GP104GLM [Quadro P5200 Mobile]
        1bb6  GP104GLM [Quadro P5000 Mobile]
        1bb7  GP104GLM [Quadro P4000 Mobile]
                1462 11e9  Quadro P4000 Max-Q
        1c03  GP106 [GeForce GTX 1060 6GB]
        1c07  GP106 [P106-100]
        1c09  GP106 [P106-090]
-       1c20  GP106M [GeForce GTX 1060 Mobile 3GB]
+       1c20  GP106M [GeForce GTX 1060 Mobile]
                17aa 39b9  GeForce GTX 1060 Max-Q 3GB
        1c21  GP106M [GeForce GTX 1050 Ti Mobile]
        1c22  GP106M [GeForce GTX 1050 Mobile]
        1d01  GP108 [GeForce GT 1030]
        1d10  GP108M [GeForce MX150]
        1d81  GV100
+       1db1  GV100 [Tesla V100 SXM2]
+       1db4  GV100 [Tesla V100 PCIe]
 10df  Emulex Corporation
        0720  OneConnect NIC (Skyhawk)
                103c 1934  FlexFabric 20Gb 2-port 650M Adapter
                103c 21d4  StoreFabric CN1200E 10Gb Converged Network Adapter
                103c 220a  FlexFabric 10Gb 2-port 556FLR-SFP+ Adapter
                103c 803f  Ethernet 10Gb 2-port 557SFP+ Adapter
+               103c 8144  FlexFabric 10GB 2-port 556FLR-T Adapter
                17aa 1056  ThinkServer OCm14102-UX-L AnyFabric
                17aa 1057  ThinkServer OCm14104-UX-L AnyFabric
                17aa 1059  ThinkServer OCm14104-UT-L AnyFabric
        f111  Saturn-X LightPulse Fibre Channel Host Adapter
        f112  Saturn-X LightPulse Fibre Channel Host Adapter
        f180  LPSe12002 EmulexSecure Fibre Channel Adapter
+       f400  LPe36000 Fibre Channel Host Adapter [Prism]
+               10df f401  LPe35000 Fibre Channel Host Adapter [Prism]
+               10df f402  LPe35000 Fibre Channel Host Adapter [Prism]
        f700  LP7000 Fibre Channel Host Adapter
        f701  LP7000 Fibre Channel Host Adapter Alternate ID (JX1:2-3, JX2:1-2)
        f800  LP8000 Fibre Channel Host Adapter
        8129  RTL-8129
                10ec 8129  RT8129 Fast Ethernet Adapter
                11ec 8129  RTL8111/8168 PCIe Gigabit Ethernet (misconfigured)
-       8136  RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller
-               103c 1985  Pavilion 17-e163sg Notebook PC
+       8136  RTL8101/2/6E PCI Express Fast Ethernet controller
+               103c 1985  RTL8106E on Pavilion 17-e163sg Notebook PC
                103c 2a8c  Compaq 500B Microtower
                103c 2ab1  Pavilion p6774
                103c 30cc  Pavilion dv6700
                8e2e 7100  KF-230TX/2
                a0a0 0007  ALN-325C
        8167  RTL-8110SC/8169SC Gigabit Ethernet
+               105b 0e10  RTL-8110SC-GR on a N15235/A74MX mainboard
                1458 e000  GA-MA69G-S3H Motherboard
                1462 235c  P965 Neo MS-7235 mainboard
                1462 236c  945P Neo3-F motherboard
        8821  RTL8821AE 802.11ac PCIe Wireless Network Adapter
        b723  RTL8723BE PCIe Wireless Network Adapter
                10ec 8739  Dell Wireless 1801
+       c821  RTL8821CE 802.11ac PCIe Wireless Network Adapter
 10ed  Ascii Corporation
        7310  V7310
 10ee  Xilinx Corporation
                1131 4f61  Activy DVB-S Budget Rev GR
                1131 5f61  Activy DVB-T Budget
                114b 2003  DVRaptor Video Edit/Capture Card
+               1159 0040  MuTech M-Vision 500 (MV-500 rev. E)
+               1159 0050  MuTech M-Vision 500 (MV-500 rev. F)
                11bd 0006  DV500 Overlay
                11bd 000a  DV500 Overlay
                11bd 000f  DV500 Overlay
        3011  Tokenet/vg 1001/10m anylan
        9050  Lanfleet/Truevalue
        9051  Lanfleet/Truevalue
-1159  Mutech Corp
+1159  MuTech Corporation
        0001  MV-1000
        0002  MV-1500
 115a  Harlequin Ltd
 12d7  Biotronic SRL
 12d8  Pericom Semiconductor
        01a7  7C21P100 2-port PCI-X to PCI-X Bridge
+       2608  PI7C9X2G608GP PCIe2 6-Port/8-Lane Packet Switch
        400a  PI7C9X442SL PCI Express Bridge Port
        400e  PI7C9X442SL USB OHCI Controller
        400f  PI7C9X442SL USB EHCI Controller
        0040  QSC-200/300
        0050  ESC-100D
        0060  ESC-100M
-       00f0  MPAC-100 Syncronous Serial Card (Zilog 85230)
+       00f0  MPAC-100 Synchronous Serial Card (Zilog 85230)
        0170  QSCLP-100
        0180  DSCLP-100
        0190  SSCLP-100
 1392  Medialight Inc
 1393  Moxa Technologies Co Ltd
        0001  UC7000 Serial
-       1020  CP102 (2-port RS-232 PCI)
-       1021  CP102UL (2-port RS-232 Universal PCI)
-       1022  CP102U (2-port RS-232 Universal PCI)
+       1020  CP-102 (2-port RS-232 PCI)
+       1021  CP-102UL (2-port RS-232 Universal PCI)
+       1022  CP-102U (2-port RS-232 Universal PCI)
        1023  CP-102UF
        1024  CP-102E (2-port RS-232 Smart PCI Express Serial Board)
        1025  CP-102EL (2-port RS-232 Smart PCI Express Serial Board)
        1380  CP138U (8-port RS-232/422/485 Smart Universal PCI)
        1680  Smartio C168H/PCI
        1681  CP-168U V2 Smart Serial Board (8-port RS-232)
-       1682  CP168EL (8-port RS-232 Smart PCI Express)
+       1682  CP-168EL (8-port RS-232 Smart PCI Express)
        1683  CP-168EL-A (8-port RS-232 PCI Express Serial Board)
        2040  Intellio CP-204J
        2180  Intellio C218 Turbo PCI
                1043 838e  Virtuoso 66 (Xonar DS)
                1043 8428  Virtuoso 100 (Xonar Xense)
                1043 8467  CMI8786 (Xonar DG)
+               1043 8521  CMI8786 (Xonar DGX)
                1043 85f4  Virtuoso 100 (Xonar Essence STX II)
                13f6 8782  PCI 2.0 HD Audio
                13f6 ffff  CMI8787-HG2PCI
        50a7  T580-50A7 Unified Wire Ethernet Controller
        50a8  T580-50A8 Unified Wire Ethernet Controller
        50a9  T580-50A9 Unified Wire Ethernet Controller
+       50aa  T580-50AA Unified Wire Ethernet Controller
+       50ab  T520-50AB Unified Wire Ethernet Controller
        5401  T520-CR Unified Wire Ethernet Controller
        5402  T522-CR Unified Wire Ethernet Controller
        5403  T540-CR Unified Wire Ethernet Controller
        54a7  T580-50A7 Unified Wire Ethernet Controller
        54a8  T580-50A8 Unified Wire Ethernet Controller
        54a9  T580-50A9 Unified Wire Ethernet Controller
+       54aa  T580-50AA Unified Wire Ethernet Controller
+       54ab  T520-50AB Unified Wire Ethernet Controller
        5501  T520-CR Unified Wire Storage Controller
        5502  T522-CR Unified Wire Storage Controller
        5503  T540-CR Unified Wire Storage Controller
        56a7  T580-50A7 Unified Wire Storage Controller
        56a8  T580-50A8 Unified Wire Storage Controller
        56a9  T580-50A9 Unified Wire Storage Controller
+       56aa  T580-50AA Unified Wire Storage Controller
+       56ab  T520-50AB Unified Wire Storage Controller
        5701  T520-CR Unified Wire Ethernet Controller
        5702  T522-CR Unified Wire Ethernet Controller
        5703  T540-CR Unified Wire Ethernet Controller
        58a7  T580-50A7 Unified Wire Ethernet Controller [VF]
        58a8  T580-50A8 Unified Wire Ethernet Controller [VF]
        58a9  T580-50A9 Unified Wire Ethernet Controller [VF]
+       58aa  T580-50AA Unified Wire Ethernet Controller [VF]
+       58ab  T520-50AB Unified Wire Ethernet Controller [VF]
        6001  T6225-CR Unified Wire Ethernet Controller
        6002  T6225-SO-CR Unified Wire Ethernet Controller
        6003  T6425-CR Unified Wire Ethernet Controller
        6082  T6225-6082 Unified Wire Ethernet Controller
        6083  T62100-6083 Unified Wire Ethernet Controller
        6084  T64100-6084 Unified Wire Ethernet Controller
+       6085  T6240-6085 Unified Wire Ethernet Controller
+       6086  T6225-6086 Unified Wire Ethernet Controller
        6401  T6225-CR Unified Wire Ethernet Controller
        6402  T6225-SO-CR Unified Wire Ethernet Controller
        6403  T6425-CR Unified Wire Ethernet Controller
        6482  T6225-6082 Unified Wire Ethernet Controller
        6483  T62100-6083 Unified Wire Ethernet Controller
        6484  T64100-6084 Unified Wire Ethernet Controller
+       6485  T6240-6085 Unified Wire Ethernet Controller
+       6486  T6225-6086 Unified Wire Ethernet Controller
        6501  T6225-CR Unified Wire Storage Controller
        6502  T6225-SO-CR Unified Wire Storage Controller
        6503  T6425-CR Unified Wire Storage Controller
        6582  T6225-6082 Unified Wire Storage Controller
        6583  T62100-6083 Unified Wire Storage Controller
        6584  T64100-6084 Unified Wire Storage Controller
+       6585  T6240-6085 Unified Wire Storage Controller
+       6586  T6225-6086 Unified Wire Storage Controller
        6601  T6225-CR Unified Wire Storage Controller
        6602  T6225-SO-CR Unified Wire Storage Controller
        6603  T6425-CR Unified Wire Storage Controller
        6682  T6225-6082 Unified Wire Storage Controller
        6683  T62100-6083 Unified Wire Storage Controller
        6684  T64100-6084 Unified Wire Storage Controller
+       6685  T6240-6085 Unified Wire Storage Controller
+       6686  T6225-6086 Unified Wire Storage Controller
        6801  T6225-CR Unified Wire Ethernet Controller [VF]
        6802  T6225-SO-CR Unified Wire Ethernet Controller [VF]
        6803  T6425-CR Unified Wire Ethernet Controller [VF]
        6882  T6225-6082 Unified Wire Ethernet Controller [VF]
        6883  T62100-6083 Unified Wire Ethernet Controller [VF]
        6884  T64100-6084 Unified Wire Ethernet Controller [VF]
+       6885  T6240-6085 Unified Wire Ethernet Controller [VF]
+       6886  T6225-6086 Unified Wire Ethernet Controller [VF]
        a000  PE10K Unified Wire Ethernet Controller
 1426  Storage Technology Corp.
 1427  Better On-Line Solutions
        169d  NetLink BCM5789 Gigabit Ethernet PCI Express
        16a0  NetLink BCM5785 Fast Ethernet
        16a1  BCM57840 NetXtreme II 10 Gigabit Ethernet
+               1043 866e  PEB-10G/57840-2T 10GBase-T Network Adapter
        16a2  BCM57840 NetXtreme II 10/20-Gigabit Ethernet
                103c 1916  FlexFabric 20Gb 2-port 630FLB Adapter
                103c 1917  FlexFabric 20Gb 2-port 630M Adapter
                14e4 1404  BCM957414M4142 OCP 2x25G Type1 wRoCE
                1590 020e  Ethernet 25Gb 2-port 631SFP28 Adapter
                1590 0211  Ethernet 25Gb 2-port 631FLR-SFP28 Adapter
-       16d8  BCM57416 NetXtreme-E 10GBase-T RDMA Ethernet Controller
+       16d8  BCM57416 NetXtreme-E Dual-Media 10G RDMA Ethernet Controller
+               1028 1feb  NetXtreme-E 10Gb SFP+ Adapter
                1590 020c  Ethernet 10Gb 2-port 535T Adapter
                1590 0212  Ethernet 10Gb 2-port 535FLR-T Adapter
        16d9  BCM57417 NetXtreme-E 10GBASE-T RDMA Ethernet Controller
        7016  AP470 48-Channel TTL Level Digital Input/Output Module
        7017  AP323 16-bit, 20 or 40 Channel Analog Input Module
        7018  AP408: 32-Channel Digital I/O Module
+       7019  AP341 14-bit, 16-Channel Simultaneous Conversion Analog Input Module
        701a  AP220-16 12-Bit, 16-Channel Analog Output Module
        701b  AP231-16 16-Bit, 16-Channel Analog Output Module
        7021  APA7-201 Reconfigurable Artix-7 FPGA module 48 TTL channels
        7022  APA7-202 Reconfigurable Artix-7 FPGA module 24 RS485 channels
        7023  APA7-203 Reconfigurable Artix-7 FPGA module 24 TTL & 12 RS485 channels
        7024  APA7-204 Reconfigurable Artix-7 FPGA module 24 LVDS channels
+       7027  AP418 16-Channel High Voltage Digital Input/Output Module
        7042  AP482 Counter Timer Module with TTL Level Input/Output
        7043  AP483 Counter Timer Module with TTL Level and RS422 Input/Output
        7044  AP484 Counter Timer Module with RS422 Input/Output
 1803  ProdaSafe GmbH
 1805  Euresys S.A.
 1809  Lumanate, Inc.
+180c  IEI Integration Corp
 1813  Ambient Technologies Inc
        4000  HaM controllerless modem
                16be 0001  V9x HAM Data Fax Modem
                1924 8018  SFN8042-R2 8000 Series 10/40G Adapter
                1924 8019  SFN8542-R2 8000 Series 10/40G Adapter
                1924 801a  SFN8722-R1 8000 Series OCP 10G Adapter
+               1924 801b  SFN8522-R3 8000 Series 10G Adapter
        1803  SFC9020 10G Ethernet Controller (Virtual Function)
        1813  SFL9021 10GBASE-T Ethernet Controller (Virtual Function)
        1903  SFC9120 10G Ethernet Controller (Virtual Function)
 # E2200, E2201, E2205
        e091  Killer E220x Gigabit Ethernet Controller
        e0a1  Killer E2400 Gigabit Ethernet Controller
+       e0b1  Killer E2500 Gigabit Ethernet Controller
 196a  Sensory Networks Inc.
        0101  NodalCore C-1000 Content Classification Accelerator
        0102  NodalCore C-2000 Content Classification Accelerator
 1cc7  Radian Memory Systems Inc.
        0200  RMS-200
        0250  RMS-250
+1ccf  Zoom Corporation
+       0001  TAC-2 Thunderbolt Audio Converter
 1cd2  SesKion GmbH
        0301  Simulyzer-RT CompactPCI Serial DIO-1 card
        0302  Simulyzer-RT CompactPCI Serial PSI5-ECU-1 card
        2020  DC-390
        690c  690c
        dc29  DC290
+1de5  Eideticom, Inc
+       1000  IO Memory Controller
+       2000  NoLoad Hardware Development Kit
 # nee Tumsan Oy
 1fc0  Ascom (Finland) Oy
        0300  E2200 Dual E1/Rawpipe Card
                0000 3014  10-Giga TOE Dual Port CX4 Low Profile SmartNIC
        4010  TN4010 Clean SROM
        4020  TN9030 10GbE CX4 Ethernet Adapter
+               180c 2040  Mustang-200 10GbE Ethernet Adapter
        4022  TN9310 10GbE SFP+ Ethernet Adapter
                1043 8709  XG-C100F 10GbE SFP+ Ethernet Adapter
                1186 4d00  DXE-810S 10GbE SFP+ Ethernet Adapter
                17aa 21cf  ThinkPad T520
        0150  Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller
                1043 84ca  P8 series motherboard
+               1458 d000  Ivy Bridge GT1 [HD Graphics]
                15d9 0624  X9SCM-F Motherboard
                1849 0150  Motherboard
        0151  Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port
        0897  Centrino Wireless-N 130
                8086 5015  Centrino Wireless-N 130 BGN
                8086 5017  Centrino Wireless-N 130 BG
+       08a7  Quark SoC X1000 SDIO / eMMC Controller
        08ae  Centrino Wireless-N 100
                8086 1005  Centrino Wireless-N 100 BGN
                8086 1007  Centrino Wireless-N 100 BG
                8086 8370  Dual Band Wireless AC 3160
 # PowerVR SGX 545
        08cf  Atom Processor Z2760 Integrated Graphics Controller
+       0934  Quark SoC X1000 I2C Controller and GPIO Controller
+       0935  Quark SoC X1000 SPI Controller
+       0936  Quark SoC X1000 HS-UART
+       0937  Quark SoC X1000 10/100 Ethernet MAC
+       0939  Quark SoC X1000 USB EHCI Host Controller / USB 2.0 Device
+       093a  Quark SoC X1000 USB OHCI Host Controller
        0953  PCIe Data Center SSD
                8086 3702  DC P3700 SSD
                8086 3703  DC P3700 SSD [2.5" SFF]
                8086 370a  DC P3600 SSD [2.5" SFF]
                8086 370d  SSD 750 Series [Add-in Card]
                8086 370e  SSD 750 Series [2.5" SFF]
+       0958  Quark SoC X1000 Host Bridge
        095a  Wireless 7265
 # Stone Peak 2 AC
                8086 1010  Dual Band Wireless-AC 7265
                8086 5310  Dual Band Wireless-AC 7265
 # Stone Peak 2 AGN
                8086 9200  Dual Band Wireless-AC 7265
+       095e  Quark SoC X1000 Legacy Bridge
        0960  80960RP (i960RP) Microprocessor/Bridge
        0962  80960RM (i960RM) Bridge
        0964  80960RP (i960RP) Microprocessor/Bridge
+       0a03  Haswell-ULT Thermal Subsystem
        0a04  Haswell-ULT DRAM Controller
                17aa 2214  ThinkPad X240
        0a06  Haswell-ULT Integrated Graphics Controller
        0a2e  Haswell-ULT Integrated Graphics Controller
        0a53  DC P3520 SSD
        0a54  Express Flash NVMe P4500
+               1028 1fe1  Express Flash NVMe 1TB 2.5" U.2 (P4500)
+               1028 1fe2  Express Flash NVMe 2TB 2.5" U.2 (P4500)
+               1028 1fe3  Express Flash NVMe 4TB 2.5" U.2 (P4500)
+               1028 1fe4  Express Flash NVMe 4TB HHHL AIC (P4500)
        0a55  Express Flash NVMe P4600
+               1028 1fe5  Express Flash NVMe 1.6TB 2.5" U.2 (P4600)
+               1028 1fe6  Express Flash NVMe 2TB 2.5" U.2 (P4600)
+               1028 1fe7  Express Flash NVMe 3.2TB 2.5" U.2 (P4600)
+               1028 1fe8  Express Flash NVMe 2.0TB HHHL AIC (P4600)
+               1028 1fe9  Express Flash NVMe 4.0TB HHHL AIC (P4600)
        0be0  Atom Processor D2xxx/N2xxx Integrated Graphics Controller
        0be1  Atom Processor D2xxx/N2xxx Integrated Graphics Controller
                105b 0d7c  D270S/D250S Motherboard
        11a1  Merrifield Power Management Unit
        11a2  Merrifield Serial IO DMA Controller
        11a5  Merrifield Serial IO PWM Controller
+       11c3  Quark SoC X1000 PCIe Root Port 0
+       11c4  Quark SoC X1000 PCIe Root Port 1
        1200  IXP1200 Network Processor
                172a 0000  AEP SSL Accelerator
        1209  8255xER/82551IT Fast Ethernet Controller
                108e 7b14  Sun Dual Port 10 GbE PCIe 2.0 ExpressModule, Base-T
                108e 7b15  Sun Dual Port 10 GbE PCIe 2.0 Low Profile Adapter, Base-T
                1137 00bf  Ethernet Converged Network Adapter X540-T2
+               1170 0052  Ethernet Controller 10-Gigabit X540-AT2
                17aa 1073  ThinkServer X540-T2 AnyFabric
                17aa 4006  Ethernet Controller 10-Gigabit X540-AT2
                1bd4 001a  10G base-T DP ER102Ti3 Rack Adapter
                8086 000b  Ethernet Server Adapter X710-DA2 for OCP
                8086 000d  Ethernet Controller X710 for 10GbE SFP+
                8086 000e  Ethernet Server Adapter OCP X710-2
+               8086 000f  Ethernet Server Adapter OCP X710-2
                8086 0010  Ethernet Converged Network Adapter X710
                8086 4005  Ethernet Controller X710 for 10GbE SFP+
                8086 4006  Ethernet Controller X710 for 10GbE SFP+
        15c8  Ethernet Connection X553/X557-AT 10GBASE-T
        15ce  Ethernet Connection X553 10 GbE SFP+
        15d0  Ethernet SDI Adapter FM10420-100GbE-QDA2
+               8086 0001  Ethernet SDI Adapter FM10420-100GbE-QDA2
        15d1  Ethernet Controller 10G X550T
                8086 0002  Ethernet Converged Network Adapter X550-T1
                8086 001b  Ethernet Server Adapter X550-T1 for OCP
                17aa 2247  ThinkPad T570
                17aa 224f  ThinkPad X1 Carbon 5th Gen
        1912  HD Graphics 530
-       1916  HD Graphics 520
+       1916  Skylake GT2 [HD Graphics 520]
                1028 06f3  Latitude 3570
        1918  Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers
        1919  Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Imaging Unit
                8086 a000  D865PERL mainboard
                8086 e000  D865PERL mainboard
                8086 e001  Desktop Board D865GBF
-               8086 e002  SoundMax Intergrated Digital Audio
+               8086 e002  SoundMax Integrated Digital Audio
        24d6  82801EB/ER (ICH5/ICH5R) AC'97 Modem Controller
                103c 006a  NX9500
        24d7  82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3
        2822  SATA Controller [RAID mode]
                1028 020d  Inspiron 530
                103c 2a6f  Asus IPIBL-LB Motherboard
-               1043 8277  P5K PRO Motherboard
+               1043 8277  P5K PRO Motherboard: 82801IR [ICH9R]
        2823  C610/X99 series chipset sSATA Controller [RAID mode]
        2824  82801HB (ICH8) 4 port SATA Controller [AHCI mode]
                1043 81ec  P5B
        284b  82801H (ICH8 Family) HD Audio Controller
                1025 011f  Realtek ALC268 audio codec
                1025 0121  Aspire 5920G
-               1025 0145  Realtek ALC889 (Aspire 8920G w. Dolby Theather)
+               1025 0145  Realtek ALC889 (Aspire 8920G w. Dolby Theater)
                1028 01da  OptiPlex 745
                1028 01f3  Inspiron 1420
                1028 01f9  Latitude D630
                1028 0210  PowerEdge T300 onboard SATA Controller
                1028 0211  Optiplex 755
                1028 023c  PowerEdge R200 onboard SATA Controller
-               1043 8277  P5K PRO Motherboard
+               1043 8277  P5K PRO Motherboard: 82801IR [ICH9R]
        2921  82801IB (ICH9) 2 port SATA Controller [IDE mode]
                1028 0235  PowerEdge R710 SATA IDE Controller
                1028 0236  PowerEdge R610 SATA IDE Controller
                1028 0237  PowerEdge T610 SATA IDE Controller
                1462 7360  G33/P35 Neo
        2922  82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode]
-               1043 8277  P5K PRO Motherboard
+               1043 8277  P5K PRO Motherboard: 82801IR [ICH9R]
                1af4 1100  QEMU Virtual Machine
                8086 5044  Desktop Board DP35DP
        2923  82801IB (ICH9) 4 port SATA Controller [AHCI mode]
                1028 020f  PowerEdge R300 onboard SATA Controller
                1028 0210  PowerEdge T300 onboard SATA Controller
                1028 0211  Optiplex 755
-               1043 8277  P5K PRO Motherboard
+               1043 8277  P5K PRO Motherboard: 82801IR [ICH9R]
                1462 7360  G33/P35 Neo
        2928  82801IBM/IEM (ICH9M/ICH9M-E) 2 port SATA Controller [IDE mode]
        2929  82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode]
                1028 0211  Optiplex 755
                103c 2a6f  Asus IPIBL-LB Motherboard
                103c 3628  dv6-1190en
-               1043 8277  P5K PRO Motherboard
+               1043 8277  P5K PRO Motherboard: 82801IR [ICH9R]
                1462 7360  G33/P35 Neo
                1af4 1100  QEMU Virtual Machine
                8086 5044  Desktop Board DP35DP
                1028 029c  PowerEdge M710 USB UHCI Controller
                1028 2011  Optiplex 755
                103c 2a6f  Asus IPIBL-LB Motherboard
-               1043 8277  P5K PRO Motherboard
+               1043 8277  P5K PRO Motherboard: 82801IR [ICH9R]
                1462 7360  G33/P35 Neo
                1af4 1100  QEMU Virtual Machine
                8086 5044  Desktop Board DP35DP
                1028 0287  PowerEdge M610 onboard UHCI
                1028 029c  PowerEdge M710 USB UHCI Controller
                103c 2a6f  Asus IPIBL-LB Motherboard
-               1043 8277  P5K PRO Motherboard
+               1043 8277  P5K PRO Motherboard: 82801IR [ICH9R]
                1462 7360  G33/P35 Neo
                1af4 1100  QEMU Virtual Machine
                8086 5044  Desktop Board DP35DP
                1028 0287  PowerEdge M610 onboard UHCI
                1028 029c  PowerEdge M710 USB UHCI Controller
                103c 2a6f  Asus IPIBL-LB Motherboard
-               1043 8277  P5K PRO Motherboard
+               1043 8277  P5K PRO Motherboard: 82801IR [ICH9R]
                1462 7360  G33/P35 Neo
                1af4 1100  QEMU Virtual Machine
                8086 5044  Desktop Board DP35DP
                1028 029c  PowerEdge M710 USB UHCI Controller
                1028 2011  Optiplex 755
                103c 2a6f  Asus IPIBL-LB Motherboard
-               1043 8277  P5K PRO Motherboard
+               1043 8277  P5K PRO Motherboard: 82801IR [ICH9R]
                1462 7360  G33/P35 Neo
                1af4 1100  QEMU Virtual Machine
                8086 2937  Optiplex 755
                1028 0287  PowerEdge M610 onboard UHCI
                1028 029c  PowerEdge M710 USB UHCI Controller
                103c 2a6f  Asus IPIBL-LB Motherboard
-               1043 8277  P5K PRO Motherboard
+               1043 8277  P5K PRO Motherboard: 82801IR [ICH9R]
                1462 7360  G33/P35 Neo
                1af4 1100  QEMU Virtual Machine
                8086 2938  Optiplex 755
                1028 0210  PowerEdge T300 onboard UHCI
                1028 0237  PowerEdge T610 USB UHCI Controller
                103c 2a6f  Asus IPIBL-LB Motherboard
-               1043 8277  P5K PRO Motherboard
+               1043 8277  P5K PRO Motherboard: 82801IR [ICH9R]
                1462 7360  G33/P35 Neo
                1af4 1100  QEMU Virtual Machine
                8086 5044  Desktop Board DP35DP
                1028 0287  PowerEdge M610 onboard EHCI
                1028 029c  PowerEdge M710 USB EHCI Controller
                103c 2a6f  Asus IPIBL-LB Motherboard
-               1043 8277  P5K PRO Motherboard
+               1043 8277  P5K PRO Motherboard: 82801IR [ICH9R]
                1462 7360  G33/P35 Neo
                1af4 1100  QEMU Virtual Machine
                8086 5044  Desktop Board DP35DP
                1028 0287  PowerEdge M610 onboard EHCI
                1028 029c  PowerEdge M710 USB EHCI Controller
                103c 2a6f  Asus IPIBL-LB Motherboard
-               1043 8277  P5K PRO Motherboard
+               1043 8277  P5K PRO Motherboard: 82801IR [ICH9R]
                1462 7360  G33/P35 Neo
                1af4 1100  QEMU Virtual Machine
                8086 293c  Optiplex 755
                1028 0211  Optiplex 755
                103c 2a6f  Asus IPIBL-LB Motherboard
                103c 3628  dv6-1190en
-               1043 829f  P5K PRO Motherboard
+               1043 829f  P5K PRO Motherboard: 82801IR [ICH9R]
                1462 7360  G33/P35 Neo
                1af4 1100  QEMU Virtual Machine
                8086 293e  Optiplex 755
                1028 020d  Inspiron 530
                1028 0211  Optiplex 755
                103c 2a6f  Asus IPIBL-LB Motherboard
-# same ID possibly also on other ASUS boards
-               1043 8277  P5K PRO Motherboard
+               1043 8277  P5K PRO Motherboard: 82801IR [ICH9R]
                8086 2940  Optiplex 755
        2942  82801I (ICH9 Family) PCI Express Port 2
                1028 020d  Inspiron 530
                1028 020d  Inspiron 530
        2948  82801I (ICH9 Family) PCI Express Port 5
                1028 020d  Inspiron 530
-# same ID possibly also on other ASUS boards
-               1043 8277  P5K PRO Motherboard
+               1043 8277  P5K PRO Motherboard: 82801IR [ICH9R]
        294a  82801I (ICH9 Family) PCI Express Port 6
                1028 020d  Inspiron 530
-# same ID possibly also on other ASUS boards
-               1043 8277  P5K PRO Motherboard
+               1043 8277  P5K PRO Motherboard: 82801IR [ICH9R]
        294c  82566DC-2 Gigabit Network Connection
                17aa 302e  82566DM-2 Gigabit Network Connection
        2970  82946GZ/PL/GL Memory Controller Hub
        29c0  82G33/G31/P35/P31 Express DRAM Controller
                1028 020d  Inspiron 530
                103c 2a6f  Asus IPIBL-LB Motherboard
-# same ID possibly also on other ASUS boards
-               1043 8276  P5K PRO Motherboard
+               1043 8276  P5K PRO Motherboard: Intel 82P35 Northbridge
                1043 82b0  P5KPL-VM Motherboard
                1462 7360  G33/P35 Neo
                1af4 1100  QEMU Virtual Machine
                8086 5044  Desktop Board DP35DP
        29c1  82G33/G31/P35/P31 Express PCI Express Root Port
                1028 020d  Inspiron 530
-# same ID possibly also on other ASUS boards
-               1043 8276  P5K PRO Motherboard
+               1043 8276  P5K PRO Motherboard: Intel 82P35 Northbridge
        29c2  82G33/G31 Express Integrated Graphics Controller
                1028 020d  Inspiron 530
                1043 82b0  P5KPL-VM Motherboard
                103c 0701  Smart Array P204i-b SR Gen10
                103c 1100  Smart Array P816i-a SR Gen10
                103c 1101  Smart Array P416ie-m SR G10
+               9005 0800  SmartRAID 3154-8i
+               9005 0801  SmartRAID 3152-8i
+               9005 0802  SmartRAID 3151-4i
+               9005 0803  SmartRAID 3101-4i
+               9005 0804  SmartRAID 3154-8e
+               9005 0805  SmartRAID 3102-8i
+               9005 0806  SmartRAID 3100
+               9005 0807  SmartRAID 3162-8i
+               9005 0900  SmartHBA 2100-8i
+               9005 0901  SmartHBA 2100-4i
+               9005 0902  HBA 1100-8i
+               9005 0903  HBA 1100-4i
+               9005 0904  SmartHBA 2100-8e
+               9005 0905  HBA 1100-8e
+               9005 0906  SmartHBA 2100-4i4e
+               9005 0907  HBA 1100
+               9005 0908  SmartHBA 2100
+               9005 090a  SmartHBA 2100A-8i
+               9005 1200  SmartRAID 3154-24i
+               9005 1201  SmartRAID 3154-8i16e
+               9005 1202  SmartRAID 3154-8i8e
+               9005 1280  HBA 1100-16i
+               9005 1281  HBA 1100-16e
+               9005 1300  HBA 1100-8i8e
+               9005 1301  HBA 1100-24i
+               9005 1302  SmartHBA 2100-8i8e
+               9005 1303  SmartHBA 2100-24i
+               9005 1380  SmartRAID 3154-16i
        0410  AIC-9410W SAS (Razor HBA RAID)
                9005 0410  ASC-48300(Spirit RAID)
                9005 0411  ASC-58300 (Oakmont RAID)
index 3b00f5bf04c853c33645e9c15c401e6533087f05..a2752e252e38194dce52d88ca7d4cc28b0b8b2c8 100644 (file)
  <tr class="odd"><td>Digital Audio Labs Inc</td><td>DAL</td><td>11/29/1996</td> </tr>
  <tr class="even"><td>Digital Communications Association</td><td>DCA</td><td>11/29/1996</td> </tr>
  <tr class="odd"><td>Digital Discovery</td><td>SHR</td><td>09/24/1997</td> </tr>
- <tr class="even"><td>Digital Electronics Corporation</td><td>PRF</td><td>01/02/2003</td> </tr>
+ <tr class="even"><td>Schneider Electric Japan Holdings, Ltd.</td><td>PRF</td><td>01/02/2003</td> </tr>
  <tr class="odd"><td>Digital Equipment Corporation</td><td>DEC</td><td>11/29/1996</td> </tr>
  <tr class="even"><td>Digital Processing Systems</td><td>DPS</td><td>11/29/1996</td> </tr>
  <tr class="odd"><td>Digital Projection Limited</td><td>DPL</td><td>07/09/2002</td> </tr>
  <tr class="even"><td>Televic Conference  </td><td>TCF</td><td>02/28/2017</td> </tr>
  <tr class="odd"><td>Shanghai Chai Ming Huang Info&amp;Tech Co, Ltd  </td><td>HYL</td><td>02/28/2017</td> </tr>
  <tr class="even"><td>Techlogix Networx</td><td>TLN</td><td>02/28/2017</td> </tr>
+ <tr class="odd"><td>G2TOUCH KOREA</td><td>GGT</td><td>05/25/2017</td> </tr>
+ <tr class="even"><td>MediCapture, Inc.</td><td>MVR</td><td>05/25/2017</td> </tr>
+ <tr class="odd"><td>HOYA Corporation PENTAX Lifecare Division</td><td>PNT</td><td>05/25/2017</td> </tr>
+ <tr class="even"><td>christmann informationstechnik + medien GmbH &amp; Co. KG</td><td>CHR</td><td>05/25/2017</td> </tr>
+ <tr class="odd"><td>Tencent</td><td>TEN</td><td>06/20/2017</td> </tr>
+ <tr class="even"><td>VRstudios, Inc.</td><td>VRS</td><td>06/22/2017</td> </tr>
+ <tr class="odd"><td>Extreme Engineering Solutions, Inc.</td><td>XES</td><td>06/22/2017</td> </tr>
+ <tr class="even"><td>NewTek</td><td>NTK</td><td>06/22/2017</td> </tr>
+ <tr class="odd"><td>BlueBox Video Limited</td><td>BBV</td><td>06/22/2017</td> </tr>
+ <tr class="even"><td>Televés, S.A.</td><td>TEV</td><td>06/22/2017</td> </tr>
+ <tr class="odd"><td>Avatron Software Inc.</td><td>AVS</td><td>08/23/2017</td> </tr>
+ <tr class="even"><td>Positivo Tecnologia S.A.</td><td>POS</td><td>09/01/2017</td> </tr>
+ <tr class="odd"><td>VRgineers, Inc.</td><td>VRG</td><td>09/07/2017</td> </tr>
+ <tr class="even"><td>Noritake Itron Corporation</td><td>NRI</td><td>11/13/2017</td> </tr>
+ <tr class="odd"><td>Matrix Orbital Corporation</td><td>MOC</td><td>11/13/2017</td> </tr>
       </tbody>
     </table>
   </body>
index dae1bf350c7e2c828190b85209e37778fbfb9880..ec20b2fa2282706576c3741bc713e891fd67c1ee 100644 (file)
@@ -9,8 +9,8 @@
 #      The latest version can be obtained from
 #              http://www.linux-usb.org/usb.ids
 #
-# Version: 2017.09.10
-# Date:    2017-09-10 20:34:07
+# Version: 2017.11.27
+# Date:    2017-11-27 20:34:05
 #
 
 # Vendors, devices and interfaces. Please keep sorted.
@@ -61,6 +61,8 @@
        0499  SE340D PC Remote Control
 03da  Bernd Walter Computer Technology
        0002  HD44780 LCD interface
+03e7  Intel
+       2150  Myriad VPU [Movidius Neural Compute Stick]
 03e8  EndPoints, Inc.
        0004  SE401 Webcam
        0008  101 Ethernet [klsi]
        2106  STK600 development board
        2107  AVR Dragon
        2109  STK541 ZigBee Development Board
+       210a  AT86RF230 [RZUSBSTICK] transceiver
        210d  XPLAIN evaluation kit (CDC ACM)
        2110  AVR JTAGICE3 Debugger and Programmer
        2111  Xplained Pro board debugger and programmer
        0217  LaserJet 2200
        0218  APOLLO P2500/2600
        0221  StreamSmart 400 [F2235AA]
+       0223  Digital Drive Flash Reader
        022a  Laserjet CP1525nw
        0241  Link-5 micro dongle
        0304  DeskJet 810c/812c
        0611  OfficeJet K60xi
        0612  business inkjet 3000
        0624  Bluetooth Dongle
+       0641  X1200 Optical Mouse
        0701  ScanJet 5300c/5370c
        0704  DeskJet 825c
        0705  ScanJet 4400c
        1524  Smart Card Keyboard - KR
        1539  Mini Magnetic Stripe Reader
        1541  Prime [G8X92AA]
+       154a  Laser Mouse
        1602  PhotoSmart 330 series
        1604  DeskJet 940c
        1605  ScanJet 5530C PhotoSmart
        5307  v165w Stick
        5311  OfficeJet 6300
        5312  Officejet Pro 8500A
+       5317  Color LaserJet CP2025 series
        5411  OfficeJet 4300
        5511  DeskJet F300 series
        5611  PhotoSmart C3180
        9c02  PhotoSmart M440 series
        a004  DeskJet 5850c
        a011  Deskjet 3050A
+       a407  Wireless Optical Comfort Mouse
        b002  PhotoSmart 7200 series
        b102  PhotoSmart 7200 series
        b107  v255w/c310w Flash Drive
        a951  HCP HIT GSM/GPRS modem [Cinterion MC55i]
        a9a0  FT2232D - Dual UART/FIFO IC - FTDI
        abb8  Lego Mindstorms NXTCam
+       b0c2  iID contactless RFID device
+       b0c3  iID contactless RFID device
        b810  US Interface Navigator (CAT and 2nd PTT lines)
        b811  US Interface Navigator (WKEY and FSK lines)
        b812  US Interface Navigator (RS232 and CONFIG lines)
        602a  i900
 040b  Weltrend Semiconductor
        0a68  Func MS-3 gaming mouse [WT6573F MCU]
+       2367  Human Interface Device [HP CalcPad 200 Calculator and Numeric Keypad]
        6510  Weltrend Bar Code Reader
        6520  XBOX Xploder
        6533  Speed-Link Competition Pro
        0104  ADL Re-Flashing Engine Parent
        0105  Nokia Firmware Upgrade Mode
        0106  ROM Parent
+       010d  E75 (Storage Mode)
+       010e  E75 (PC Suite mode)
+       010f  E75 (Media transfer mode)
+       0110  E75 (Imaging Mode)
        0154  5800 XpressMusic (PC Suite mode)
        0155  5800 XpressMusic (Multimedia mode)
        0156  5800 XpressMusic (Storage mode)
        0736  Sidewinder X5 Mouse
        0737  Compact Optical Mouse 500
        0745  Nano Transceiver v1.0 for Bluetooth
+       074a  LifeCam VX-500 [1357]
        0750  Wired Keyboard 600
        0752  Wired Keyboard 400
        075d  LifeCam Cinema
        0768  Sidewinder X4
        076c  Comfort Mouse 4500
        076d  LifeCam HD-5000
+       0770  LifeCam VX-700
        0772  LifeCam Studio
        0779  LifeCam HD-3000
        077f  LifeChat LX-6000 Headset
        0780  Comfort Curve Keyboard 3000
        0797  Optical Mouse 200
+       0799  Surface Pro embedded keyboard
        07a5  Wireless Receiver 1461C
        07b9  Wired Keyboard 200
        07ca  Surface Pro 3 Docking Station Audio Device
        081c  Elitegroup ECS-C11 Camera
        081d  Elitegroup ECS-C11 Storage
        0a00  Micro Innovations Web Cam 320
-       4d01  Comfort Keyboard
+       4d01  Comfort Keyboard / Kensington Orbit Elite
        4d02  Mouse-in-a-Box
        4d03  Kensington Mouse-in-a-box
        4d04  Mouse
        4d75  Rocketfish RF-FLBTAD Bluetooth Adapter
        4d81  Dell N889 Optical Mouse
        4de7  webcam
+       4e04  Lenovo Keyboard KB1021
 0463  MGE UPS Systems
        0001  UPS
        ffff  UPS
        0a45  960 Headset
        0a4d  G430 Surround Sound Gaming Headset
        0a5b  G933 Wireless Headset Dongle
+       0a66  [G533 Wireless Headset Dongle]
        0b02  C-UV35 [Bluetooth Mini-Receiver] (HID proxy mode)
        8801  Video Camera
        b014  Bluetooth Mouse M336/M337/M535
        c31c  Keyboard K120
        c31d  Media Keyboard K200
        c31f  Comfort Keyboard K290
+       c328  Corded Keyboard K280e
        c332  G502 Proteus Spectrum Optical Mouse
        c335  G910 Orion Spectrum Mechanical Keyboard
        c401  TrackMan Marble Wheel
        0203  AH-K3001V
        0204  iBurst Terminal
        0408  FS-1320D Printer
+       069b  ECOSYS M2635dn
 0483  STMicroelectronics
        0137  BeWAN ADSL USB ST (blue or green)
        0138  Unicorn II (ST70138B + MTC-20174TQ chipset)
        1054  S90XS Keyboard/Music Synthesizer
        160f  P-105
        1613  Clavinova CLP535
+       1704  Steinberg UR44
        2000  DGP-7
        2001  DGP-5
        3001  YST-MS55D USB Speaker
        2229  CanoScan 8600F
        2602  MultiPASS C555
        2603  MultiPASS C755
-       260a  CAPT Printer
+       260a  LBP810
        260e  LBP-2000
        2610  MPC600F
        2611  SmartBase MPC400
        2612  MultiPASS C855
-       2617  CAPT Printer
+       2617  LBP1210
        261a  iR1600
        261b  iR1610
        261c  iC2300
        2671  iR5570/iR6570
        2672  iR C3170
        2673  iR 3170C EUR
-       2674  L120
+       2674  FAX-L120
        2675  iR2830
-       2676  CAPT Device
+       2676  LBP2900
        2677  iR C2570
        2678  iR 2570C EUR
        2679  CAPT Device
        2686  MF6500 series
        2687  iR4530
        2688  LBP3460
+       2689  FAX-L180/L380S/L398S
        268c  iR C6870
        268d  iR 6870C EUR
        268e  iR C5870
        26b5  MF4200 series
        26da  LBP3010B printer
        26e6  iR1024
+       271a  LBP6000
        2736  I-SENSYS MF4550d
        2737  MF4410
        3041  PowerShot S10
        32ad  PowerShot SX410 IS
        32b1  SELPHY CP1200
        32b2  PowerShot G9 X
+       32b4  EOS Rebel T6
        32bb  EOS M5
        32bf  PowerShot SX420 IS
        32c1  PowerShot ELPH 180 / IXUS 175
        10fe  S500
        1150  fi-6230
        125a  PalmSecure Sensor Device - MP
+       200f  Sigma DP2 (Mass Storage)
+       2010  Sigma DP2 (PictBridge)
        201d  SATA 3.0 6Gbit/s Adaptor [GROOVY]
 04c6  Toshiba America Electronic Components
 04c7  Micro Macro Technologies
        01bf  FinePix F6000fd/S6500fd Zoom (PTP)
        01c0  FinePix F20 (PTP)
        01c1  FinePix F31fd (PTP)
+       01c3  FinePix S5 Pro
        01c4  FinePix S5700 Zoom (PTP)
        01c5  FinePix F40fd (PTP)
        01c6  FinePix A820 Zoom (PTP)
        0240  FinePix S2950 Digital Camera
        0241  FinePix S3200 Digital Camera
        0278  FinePix JV300
+       02c5  FinePix S9900W Digital Camera (PTP)
+       5006  ASK-300
 04cc  ST-Ericsson
        1122  Hub
        1520  USB 2.0 Hub (Avocent KVM)
        a01c  wireless multimedia keyboard with trackball [Trust ADURA 17911]
        a050  Chatman V1
        a055  Keyboard
+       a096  Keyboard
        a09f  E-Signal LUOM G10 Mechanical Gaming Mouse
        a100  Mouse [HV-MS735]
        a11b  Mouse [MX-3200]
+       e002  MCU
 04da  Panasonic (Matsushita)
        0901  LS-120 Camera
        0912  SDR-S10
        b104  CNF7069 Webcam
        b107  CNF7070 Webcam
        b14c  CNF8050 Webcam
+       b159  CNF8243 Webcam
        b15c  Sony Vaio Integrated Camera
        b175  4-Port Hub
        b1aa  Webcam-101
 04f3  Elan Microelectronics Corp.
        000a  Touchscreen
        0103  ActiveJet K-2024 Multimedia Keyboard
+       016f  Touchscreen
        01a4  Wireless Keyboard
        0201  Touchscreen
        0210  Optical Mouse
        002c  Printer
        002d  Printer
        0039  HL-5340 series
+       0041  HL-2250DN Laser Printer
        0042  HL-2270DW Laser Printer
        0100  MFC8600/9650 series
        0101  MFC9600/9870 series
        021c  MFC-9320CW
        021d  MFC-9120CN
        021e  DCP-9010CN
+       021f  DCP-8085DN
        0220  MFC-9010CN
        0222  DCP-195C
        0223  DCP-365CN
        023f  MFC-8680DN
        0240  MFC-J950DN
        0248  DCP-7055 scanner/printer
+       024e  MFC-7460DN
        0253  DCP-J125
        0254  DCP-J315W
        0255  DCP-J515W
        026d  MFC-J805D
        026e  MFC-J855DN
        026f  MFC-J270W
+       0270  MFC-7360N
        0273  DCP-7057 scanner/printer
        0276  MFC-5895CW
        0278  MFC-J410W
        2027  QL-560 P-touch Label Printer
        2028  QL-570 P-touch Label Printer
        202b  PT-7600 P-touch Label Printer
+       2041  PT-2730 P-touch Label Printer
        2061  PT-P700 P-touch Label Printer
        2064  PT-P700 P-touch Label Printer RemovableDisk
        2100  Card Reader Writer
        2727  Xircom PGUNET USB-USB Bridge
        2750  EZ-Link (EZLNKUSB.SYS)
        2810  Cypress ATAPI Bridge
+       4018  AmScope MU1803
        4d90  AmScope MD1900 camera
        6010  AmScope MU1000 camera
        6510  Touptek UCMOS05100KPA
        06bb  WALKMAN NWZ-F805
        06c3  RC-S380
        07c4  ILCE-6000 (aka Alpha-6000) in Mass Storage mode
+       0847  WG-C10 Portable Wireless Server
        088c  Portable Headphone Amplifier
        08b7  ILCE-6000 (aka Alpha-6000) in MTP mode
        094e  ILCE-6000 (aka Alpha-6000) in PC Remote mode
        0354  DTH-1620 [Cintiq Pro 16] touchscreen
        0357  PTH-660 [Intuos Pro (M)]
        0358  PTH-860 [Intuos Pro (L)]
+       035a  DTH-1152 tablet
+       0368  DTH-1152 touchscreen
        0400  PenPartner 4x5
        4001  TPC4001
        4004  TPC4004
        0003  Device Bay Controller
 056e  Elecom Co., Ltd
        0002  29UO Mouse
+       0057  M-PGDL Mouse
        0072  Mouse
        200c  LD-USB/TX
        4002  Laneed 100Mbps Ethernet LD-USB/TX [pegasus]
 0656  Glory Mark Electronic, Ltd
 0657  Tekcon Electronics Corp.
 0658  Sigma Designs, Inc.
+       0200  Aeotec Z-Stick Gen5 (ZW090) - UZB
 0659  Aethra
 065a  Optoelectronics Co., Ltd
        0001  Opticon OPR-2001 / NLV-1001 (keyboard mode)
@@ -19915,7 +19961,7 @@ HUT 07  Keyboard
        031  \ and | (Backslash and Bar)
        032  # and ~ (Hash and Tilde, Non-US Keyboard near right shift)
        033  ; and : (Semicolon and Colon)
-       034  Â´ and " (Accent Acute and Double Quotes)
+       034  ´ and " (Accent Acute and Double Quotes)
        035  ` and ~ (Accent Grace and Tilde)
        036  , and < (Comma and Less)
        037  . and > (Period and Greater)
index 9081592bb5b6cbb08d6cb17d2c27c840579885b6..7662593a70c8f8c4e2d102504a0584cbd1a0be5d 100644 (file)
     <title>See Also</title>
     <para>
       <ulink url="https://www.freedesktop.org/wiki/Specifications/BootLoaderSpec">Boot loader specification</ulink>
-      <ulink url="https://www.freedesktop.org/wiki/Software/systemd/BootLoaderInterface">Systemd boot loader interface</ulink>
+      <ulink url="https://www.freedesktop.org/wiki/Software/systemd/BootLoaderInterface">systemd boot loader interface</ulink>
     </para>
   </refsect1>
 </refentry>
index 5b782c88a5a63c3fafca09755fa3733fc5d3b6d5..18337daad8e6b517fe56cc48a327a77aa9254552 100644 (file)
 
   </refsect1>
   <refsect1>
-    <title>Integration with Systemd</title>
+    <title>Integration with systemd</title>
 
     <refsect2>
-      <title>Writing Systemd Unit Files</title>
+      <title>Writing systemd Unit Files</title>
 
       <para>When writing systemd unit files, it is recommended to
       consider the following suggestions:</para>
     </refsect2>
 
     <refsect2>
-      <title>Installing Systemd Service Files</title>
+      <title>Installing systemd Service Files</title>
 
       <para>At the build installation time (e.g. <command>make
       install</command> during package build), packages are
index b1442dd82ce94c25e17740a5dc4dc42cf2939fbe..9a1791cd17d820be87178abfac8bb39edc211c64 100644 (file)
     daemon code, to create it via
     <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>
     fragments during boot, or via the
-    <varname>RuntimeDirectory=</varname> directive of service units
-    (see
+    <varname>StateDirectory=</varname> and <varname>RuntimeDirectory=</varname>
+    directives of service units (see
     <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
     for details).</para>
   </refsect1>
           </row>
           <row>
       <entry><filename>/run/<replaceable>package</replaceable></filename></entry>
-      <entry>Runtime data for the package. Packages must be able to create the necessary subdirectories in this tree on their own, since the directory is flushed automatically on boot. Alternatively, a <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> fragment may be used to create the necessary directories during boot. Alternatively, the <varname>RuntimeDirectory=</varname> directive of service units may be used (see <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.)</entry>
+      <entry>Runtime data for the package. Packages must be able to create the necessary subdirectories in this tree on their own, since the directory is flushed automatically on boot. Alternatively, a <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> fragment may be used to create the necessary directories during boot. Alternatively, the <varname>RuntimeDirectory=</varname> directive of service units may be used (see <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details).</entry>
           </row>
           <row>
       <entry><filename>/run/log/<replaceable>package</replaceable></filename></entry>
           </row>
           <row>
       <entry><filename>/var/lib/<replaceable>package</replaceable></filename></entry>
-      <entry>Persistent private data of the package. This is the primary place to put persistent data that does not fall into the other categories listed. Packages should be able to create the necessary subdirectories in this tree on their own, since the directory might be missing on boot. Alternatively, a <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> fragment may be used to create the necessary directories during boot.</entry>
+      <entry>Persistent private data of the package. This is the primary place to put persistent data that does not fall into the other categories listed. Packages should be able to create the necessary subdirectories in this tree on their own, since the directory might be missing on boot. Alternatively, a <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> fragment may be used to create the necessary directories during boot. Alternatively, the <varname>StateDirectory=</varname> directive of service units may be used (see <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details).</entry>
           </row>
           <row>
       <entry><filename>/var/log/<replaceable>package</replaceable></filename></entry>
index a53b1ab33ed535c94051d51067d4092ae710e802..c28f303c7ef53757aef935372d7aa3d45b18c213 100644 (file)
         Example : <literal>WATCHDOG_USEC=20000000</literal></para></listitem>
       </varlistentry>
 
+      <varlistentry>
+        <term>EXTEND_TIMEOUT_USEC=…</term>
+
+        <listitem><para>Tells the service manager to extend the startup, runtime or shutdown service timeout
+        corresponding the current state. The value specified is a time in microseconds during which the service must
+        send a new message. A service timeout will occur if the message isn't received, but only if the runtime of the
+        current state is beyond the original maximium times of <varname>TimeoutStartSec=</varname>, <varname>RuntimeMaxSec=</varname>,
+        and <varname>TimeoutStopSec=</varname>.
+        See <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+        for effects on the service timeouts.</para></listitem>
+      </varlistentry>
+
       <varlistentry>
         <term>FDSTORE=1</term>
 
index 84c2f15d4efcd8c3830a7b749a006066633b09b8..60882e5aa3bf32a32dae0bf31081a2b77e84365a 100644 (file)
@@ -917,7 +917,7 @@ Sun 2017-02-26 20:57:49 EST  2h 3min left  Sun 2017-02-26 11:56:36 EST  6h ago
             convenient.
             </para>
 
-            <para>Systemd implicitly loads units as necessary, so just running the <command>status</command> will
+            <para>systemd implicitly loads units as necessary, so just running the <command>status</command> will
             attempt to load a file. The command is thus not useful for determining if something was already loaded or
             not.  The units may possibly also be quickly unloaded after the operation is completed if there's no reason
             to keep it in memory thereafter.
index 1341866463a6d2654425de5320bf26dce78c9cb9..1ae9ffb89ef944ee9decb639669113db730cdae9 100644 (file)
     <citerefentry project='man-pages'><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>
     parameter <varname>kernel.core_pattern</varname>. The syntax of this parameter is explained in
     <citerefentry project='man-pages'><refentrytitle>core</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
-    Systemd installs the file <filename>/usr/lib/sysctl.d/50-coredump.conf</filename> which configures
+    systemd installs the file <filename>/usr/lib/sysctl.d/50-coredump.conf</filename> which configures
     <varname>kernel.core_pattern</varname> accordingly. This file may be masked or overridden to use a different
     setting following normal
     <citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>
index 87bc2b36eb4c865dbe2563f986a1f2f401632ab6..76ea0550d79d72f413959ad4ef78905b45dbfa8d 100644 (file)
         <listitem><para>Additional mount options for the mount point.</para></listitem>
       </varlistentry>
 
+      <varlistentry>
+        <term><option>--owner=<replaceable>USER</replaceable></option></term>
+
+        <listitem><para>Let the specified user <replaceable>USER</replaceable> own the mounted file system.
+        This is done by appending <option>uid=</option> and <option>gid=</option> options to the list
+        of mount options. Only certain file systems support this option.</para></listitem>
+      </varlistentry>
+
       <varlistentry>
         <term><option>--fsck=</option></term>
 
index cd45ceb2a16b0defc7018fffbb07b2ee382ce468..b3f8eb651847bb7d9d50eada29485d2ca88322cd 100644 (file)
     <title>Options</title>
 
     <para>If option <option>-b</option> is specified, the arguments
-    are used as arguments for the init binary. Otherwise,
+    are used as arguments for the init program. Otherwise,
     <replaceable>COMMAND</replaceable> specifies the program to launch
     in the container, and the remaining arguments are used as
     arguments for this program. If <option>--boot</option> is not used and
         <term><option>--as-pid2</option></term>
 
         <listitem><para>Invoke the shell or specified program as process ID (PID) 2 instead of PID 1 (init). By
-        default, if neither this option nor <option>--boot</option> is used, the selected binary is run as process with
-        PID 1, a mode only suitable for programs that are aware of the special semantics that the process with PID 1
-        has on UNIX. For example, it needs to reap all processes reparented to it, and should implement
+        default, if neither this option nor <option>--boot</option> is used, the selected program is run as the process
+        with PID 1, a mode only suitable for programs that are aware of the special semantics that the process with
+        PID 1 has on UNIX. For example, it needs to reap all processes reparented to it, and should implement
         <command>sysvinit</command> compatible signal handling (specifically: it needs to reboot on SIGINT, reexecute
         on SIGTERM, reload configuration on SIGHUP, and so on). With <option>--as-pid2</option> a minimal stub init
-        process is run as PID 1 and the selected binary is executed as PID 2 (and hence does not need to implement any
+        process is run as PID 1 and the selected program is executed as PID 2 (and hence does not need to implement any
         special semantics). The stub init process will reap processes as necessary and react appropriately to
         signals. It is recommended to use this mode to invoke arbitrary commands in containers, unless they have been
         modified to run correctly as PID 1. Or in other words: this switch should be used for pretty much all commands,
         <term><option>-b</option></term>
         <term><option>--boot</option></term>
 
-        <listitem><para>Automatically search for an init binary and invoke it as PID 1, instead of a shell or a user
+        <listitem><para>Automatically search for an init program and invoke it as PID 1, instead of a shell or a user
         supplied program. If this option is used, arguments specified on the command line are used as arguments for the
-        init binary. This option may not be combined with <option>--as-pid2</option>.</para>
+        init program. This option may not be combined with <option>--as-pid2</option>.</para>
 
         <para>The following table explains the different modes of invocation and relationship to
         <option>--as-pid2</option> (see above):</para>
 
               <row>
                 <entry><option>--boot</option> specified</entry>
-                <entry>An init binary as automatically searched and run as PID 1 in the container. The passed parameters are used as invocation parameters for this process.</entry>
+                <entry>An init program is automatically searched for and run as PID 1 in the container. The passed parameters are used as invocation parameters for this process.</entry>
               </row>
 
             </tbody>
         <option>--drop-capability=</option>.</para></listitem>
       </varlistentry>
 
+      <varlistentry>
+        <term><option>--network-namespace-path=</option></term>
+
+        <listitem><para>Takes the path to a file representing a kernel
+        network namespace that the container shall run in. The specified path
+        should refer to a (possibly bind-mounted) network namespace file, as
+        exposed by the kernel below <filename>/proc/$PID/ns/net</filename>.
+        This makes the container enter the given network namespace. One of the
+        typical use cases is to give a network namespace under
+        <filename>/run/netns</filename> created by <citerefentry
+        project='man-pages'><refentrytitle>ip-netns</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+        for example, <option>--network-namespace-path=/run/netns/foo</option>.
+        Note that this option cannot be used together with other
+        network-related options, such as <option>--private-network</option>
+        or <option>--network-interface=</option>.</para></listitem>
+      </varlistentry>
+
       <varlistentry>
         <term><option>--network-interface=</option></term>
 
index c4af2d86621577ba035359b6dbf994276721f05c..f9240905535972d263e637e4445d4636a26f9dc5 100644 (file)
         <listitem><para>Shows the global and per-link DNS settings in currently in effect.</para></listitem>
       </varlistentry>
 
+      <varlistentry>
+        <term><option>--set-dns=SERVER</option></term>
+        <term><option>--set-domain=DOMAIN</option></term>
+        <term><option>--set-llmnr=MODE</option></term>
+        <term><option>--set-mdns=MODE</option></term>
+        <term><option>--set-dnssec=MODE</option></term>
+        <term><option>--set-nta=DOMAIN</option></term>
+
+        <listitem><para>Set per-interface DNS configuration. These switches may be used to configure various DNS
+        settings for network interfaces that aren't managed by
+        <citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>. (These
+        commands will fail when used on interfaces that are managed by <command>systemd-networkd</command>, please
+        configure their DNS settings directly inside the <filename>.network</filename> files instead.) These switches
+        may be used to inform <command>systemd-resolved</command> about per-interface DNS configuration determined
+        through external means. Multiple of these switches may be passed on a single invocation of
+        <command>systemd-resolve</command> in order to set multiple configuration options at once. If any of these
+        switches is used, it must be combined with <option>--interface=</option> to indicate the network interface the
+        new DNS configuration belongs to. The <option>--set-dns=</option> option expects an IPv4 or IPv6 address
+        specification of a DNS server to use, and may be used multiple times to define multiple servers for the same
+        interface. The <option>--set-domain=</option> option expects a valid DNS domain, possibly prefixed with
+        <literal>~</literal>, and configures a per-interface search or route-only domain. It may be used multiple times
+        to configure multiple such domains. The <option>--set-llmnr=</option>, <option>--set-mdns=</option> and
+        <option>--set-dnssec=</option> options may be used to configure the per-interface LLMNR, MulticastDNS and
+        DNSSEC settings. Finally, <option>--set-nta=</option> may be used to configure additional per-interface DNSSEC
+        NTA domains and may also be used multiple times. For details about these settings, their possible values and
+        their effect, see the corresponding options in
+        <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>--revert</option></term>
+
+        <listitem><para>Revert the per-interface DNS configuration. This option must be combined with
+        <option>--interface=</option> to indicate the network interface the DNS configuration shall be reverted on. If
+        the DNS configuration is reverted all per-interface DNS setting are reset to their defaults, undoing all
+        effects of <option>--set-dns=</option>, <option>--set-domain=</option>, <option>--set-llmnr=</option>,
+        <option>--set-mdns=</option>, <option>--set-dnssec=</option>, <option>--set-nta=</option>. Note that when a
+        network interface disappears all configuration is lost automatically, an explicit reverting is not necessary in
+        that case.</para></listitem>
+      </varlistentry>
+
       <xi:include href="standard-options.xml" xpointer="help" />
       <xi:include href="standard-options.xml" xpointer="version" />
       <xi:include href="standard-options.xml" xpointer="no-pager" />
@@ -403,8 +445,9 @@ _443._tcp.fedoraproject.org IN TLSA 0 0 1 19400be5b7a31fb733917700789d2f0a2471c0
     <title>See Also</title>
     <para>
       <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
-      <citerefentry><refentrytitle>systemd-resolved.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
-      <citerefentry><refentrytitle>systemd.dnssd</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+      <citerefentry><refentrytitle>systemd-resolved.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+      <citerefentry><refentrytitle>systemd.dnssd</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+      <citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
     </para>
   </refsect1>
 </refentry>
index 9db6a26dfde481a732a0ec2747da03813194833f..7bcea9bc30e79313d4108096ab746a64520f5d19 100644 (file)
 
     <para>All command line arguments after the first non-option
     argument become part of the command line of the launched
-    process. If a command is run as service unit, its first argument
-    needs to be an absolute binary path.</para>
+    process. If a command is run as service unit, the first argument
+    needs to be an absolute program path.</para>
   </refsect1>
 
   <refsect1>
index 79e35dd30e9ef483124deb082b6a10e9a15c31c3..ff9e7758b3ed1419e9bba756871d110aae50d223 100644 (file)
@@ -62,8 +62,9 @@
   <refsect1>
     <title>Description</title>
 
-    <para><command>systemd-socket-activate</command> may be used to launch a socket-activated service binary from the command
-    line for testing purposes. It may also be used to launch individual instances of the service binary per connection.
+    <para><command>systemd-socket-activate</command> may be used to launch a socket-activated service program from the
+    command line for testing purposes. It may also be used to launch individual instances of the service program per
+    connection.
     </para>
 
     <para>The daemon to launch and its options should be specified
@@ -97,7 +98,7 @@
         <term><option>-a</option></term>
         <term><option>--accept</option></term>
 
-        <listitem><para>Launch an instance of the service binary for each connection and pass the connection
+        <listitem><para>Launch an instance of the service program for each connection and pass the connection
         socket.</para></listitem>
       </varlistentry>
 
index 1270e08cd2bb78aea2ee75de7778845aa6907378..054f6615c21d62e3877041c862d4353df9e71d33 100644 (file)
 
       <programlisting># /etc/systemd/dnssd/http.dnssd
 [Service]
-Name=%h
+Name=%H
 Type=_http._tcp
 Port=80
 TxtText=path=/stats/index.html t=temperature_sensor</programlisting>
index 7d3551e3f69603bf17edf837aacd79875eec6948..d5e773e5e3d61737d1593b7735455ec47da55b31 100644 (file)
@@ -49,7 +49,7 @@
 
   <refnamediv>
     <refname>systemd.environment-generator</refname>
-    <refpurpose>Systemd environment file generators</refpurpose>
+    <refpurpose>systemd environment file generators</refpurpose>
   </refnamediv>
 
   <refsynopsisdiv>
index 849baec974f1fb8821ca8948649db3789df5d0a5..2f62f1cd6b3fa469d8459bb1d17b1579ac25b2e5 100644 (file)
@@ -376,12 +376,14 @@ CapabilityBoundingSet=~CAP_B CAP_C</programlisting>
         <listitem><para>Takes a boolean argument. If true, ensures that the service process and all its children can
         never gain new privileges through <function>execve()</function> (e.g. via setuid or setgid bits, or filesystem
         capabilities). This is the simplest and most effective way to ensure that a process and its children can never
-        elevate privileges again. Defaults to false, but certain settings force <varname>NoNewPrivileges=yes</varname>,
-        ignoring the value of this setting.  This is the case when <varname>SystemCallFilter=</varname>,
+        elevate privileges again. Defaults to false, but certain settings override this and ignore the value of this
+        setting.  This is the case when <varname>SystemCallFilter=</varname>,
         <varname>SystemCallArchitectures=</varname>, <varname>RestrictAddressFamilies=</varname>,
         <varname>RestrictNamespaces=</varname>, <varname>PrivateDevices=</varname>,
         <varname>ProtectKernelTunables=</varname>, <varname>ProtectKernelModules=</varname>,
-        <varname>MemoryDenyWriteExecute=</varname>, or <varname>RestrictRealtime=</varname> are specified. Also see
+        <varname>MemoryDenyWriteExecute=</varname>, <varname>RestrictRealtime=</varname>, or
+        <varname>LockPersonality=</varname> are specified. Note that even if this setting is overridden by them,
+        <command>systemctl show</command> shows the original value of this setting. Also see
         <ulink url="https://www.kernel.org/doc/html/latest/userspace-api/no_new_privs.html">No New Privileges
         Flag</ulink>.  </para></listitem>
       </varlistentry>
@@ -1959,7 +1961,7 @@ StandardInputData=SWNrIHNpdHplIGRhIHVuJyBlc3NlIEtsb3BzLAp1ZmYgZWVtYWwga2xvcHAncy
         <term><varname>$PATH</varname></term>
 
         <listitem><para>Colon-separated list of directories to use
-        when launching executables. Systemd uses a fixed value of
+        when launching executables. systemd uses a fixed value of
         <filename>/usr/local/sbin</filename>:<filename>/usr/local/bin</filename>:<filename>/usr/sbin</filename>:<filename>/usr/bin</filename>:<filename>/sbin</filename>:<filename>/bin</filename>.
         </para></listitem>
       </varlistentry>
index 5227bc09767ea5e4bdeebb52c4579068b6447f6e..55bb2b4a901c03cd6c3c4a40ff8453a5c6b787d0 100644 (file)
@@ -48,7 +48,7 @@
 
   <refnamediv>
     <refname>systemd.generator</refname>
-    <refpurpose>Systemd unit generators</refpurpose>
+    <refpurpose>systemd unit generators</refpurpose>
   </refnamediv>
 
   <refsynopsisdiv>
index 663e7fa3ac6ee134a7695e1edff4e226e3713574..8607bd797f87f7f99444b7431754655e81d19f57 100644 (file)
     <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
     which define the execution environment the
     <citerefentry project='man-pages'><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry>
-    binary is executed in, and in
+    program is executed in, and in
     <citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
     which define the way the processes are terminated, and in
     <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
     which configure resource control settings for the processes of the
-    service. Note that the User= and Group= options are not
-    particularly useful for mount units specifying a
-    <literal>Type=</literal> option or using configuration not
-    specified in <filename>/etc/fstab</filename>;
+    service.</para>
+
+    <para>Note that the options <varname>User=</varname> and
+    <varname>Group=</varname> are not useful for mount units.
+    systemd passes two parameters to
+    <citerefentry project='man-pages'><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry>;
+    the values of <varname>What=</varname> and <varname>Where=</varname>.
+    When invoked in this way,
     <citerefentry project='man-pages'><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry>
-    will refuse options that are not listed in
-    <filename>/etc/fstab</filename> if it is not run as UID 0.</para>
+    does not read any options from <filename>/etc/fstab</filename>, and
+    must be run as UID 0.</para>
 
     <para>Mount units must be named after the mount point directories they control. Example: the mount point <filename
     noindex='true'>/home/lennart</filename> must be configured in a unit file <filename>home-lennart.mount</filename>.
index ada92369e1b41afcd9c83eece82e01720f92a9d7..b98264c986285dff3e39a03ae4c2d3b86594fe7e 100644 (file)
         <varname>PrivateNetwork=</varname><option>yes</option>.</para>
 
         <para>Behavior of <option>idle</option> is very similar to <option>simple</option>; however, actual execution
-        of the service binary is delayed until all active jobs are dispatched. This may be used to avoid interleaving
+        of the service program is delayed until all active jobs are dispatched. This may be used to avoid interleaving
         of output of shell services with the status output on the console. Note that this type is useful only to
         improve console output, it is not useful as a general unit ordering tool, and the effect of this service type
-        is subject to a 5s time-out, after which the service binary is invoked anyway.</para>
+        is subject to a 5s time-out, after which the service program is invoked anyway.</para>
         </listitem>
       </varlistentry>
 
         <varname>Type=oneshot</varname> is used, in which case the
         timeout is disabled by default (see
         <citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
+        </para>
+
+        <para>If a service of <varname>Type=notify</varname> sends <literal>EXTEND_TIMEOUT_USEC=…</literal>, this may cause
+        the start time to be extended beyond <varname>TimeoutStartSec=</varname>. The first receipt of this message
+        must occur before <varname>TimeoutStartSec=</varname> is exceeded, and once the start time has exended beyond
+        <varname>TimeoutStartSec=</varname>, the service manager will allow the service to continue to start, provided
+        the service repeats <literal>EXTEND_TIMEOUT_USEC=…</literal> within the interval specified until the service
+        startup status is finished by <literal>READY=1</literal>. (see
+        <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>).
         </para></listitem>
       </varlistentry>
 
         <varname>DefaultTimeoutStopSec=</varname> from the manager
         configuration file (see
         <citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
+        </para>
+
+        <para>If a service of <varname>Type=notify</varname> sends <literal>EXTEND_TIMEOUT_USEC=…</literal>, this may cause
+        the stop time to be extended beyond <varname>TimeoutStopSec=</varname>. The first receipt of this message
+        must occur before <varname>TimeoutStopSec=</varname> is exceeded, and once the stop time has exended beyond
+        <varname>TimeoutStopSec=</varname>, the service manager will allow the service to continue to stop, provided
+        the service repeats <literal>EXTEND_TIMEOUT_USEC=…</literal> within the interval specified, or terminates itself
+        (see <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>).
         </para></listitem>
       </varlistentry>
 
         active for longer than the specified time it is terminated and put into a failure state. Note that this setting
         does not have any effect on <varname>Type=oneshot</varname> services, as they terminate immediately after
         activation completed. Pass <literal>infinity</literal> (the default) to configure no runtime
-        limit.</para></listitem>
+        limit.</para>
+
+        <para>If a service of <varname>Type=notify</varname> sends <literal>EXTEND_TIMEOUT_USEC=…</literal>, this may cause
+        the runtime to be extended beyond <varname>RuntimeMaxSec=</varname>. The first receipt of this message
+        must occur before <varname>RuntimeMaxSec=</varname> is exceeded, and once the runtime has exended beyond
+        <varname>RuntimeMaxSec=</varname>, the service manager will allow the service to continue to run, provided
+        the service repeats <literal>EXTEND_TIMEOUT_USEC=…</literal> within the interval specified until the service
+        shutdown is acheived by <literal>STOPPING=1</literal> (or termination). (see
+        <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>).
+        </para></listitem>
       </varlistentry>
 
       <varlistentry>
         limiting configured with <varname>StartLimitIntervalSec=</varname>
         and <varname>StartLimitBurst=</varname>, see
         <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
-        for details.</para>
+        for details.  A restarted service enters the failed state only
+        after the start limits are reached.</para>
 
         <para>Setting this to <option>on-failure</option> is the
         recommended choice for long-running services, in order to
index 707b04b208e2d563b434b274538445d7a62f2945..acedb9fb25e961d6e9bb7d9badbe8e8390f82442 100644 (file)
@@ -72,7 +72,7 @@
     <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
     which define the execution environment the <citerefentry
     project='man-pages'><refentrytitle>swapon</refentrytitle><manvolnum>8</manvolnum></citerefentry>
-    binary is executed in, in
+    program is executed in, in
     <citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
     which define the way these processes are
     terminated, and in
index 159f629498ac0c477220fe43aff901f29a41d3a2..005fdea73cdbda292b6ead11c789dffebc280a1e 100644 (file)
         <colspec colname='expl' />
         <thead>
           <row>
-      <entry>Path</entry>
-      <entry>Description</entry>
+            <entry>Path</entry>
+            <entry>Description</entry>
           </row>
         </thead>
         <tbody>
           <row>
-      <entry><filename>/etc/systemd/system</filename></entry>
-      <entry>Local configuration</entry>
+            <entry><filename>/etc/systemd/system</filename></entry>
+            <entry>Local configuration</entry>
           </row>
           <row>
-      <entry><filename>/run/systemd/system</filename></entry>
-      <entry>Runtime units</entry>
+            <entry><filename>/run/systemd/system</filename></entry>
+            <entry>Runtime units</entry>
           </row>
           <row>
-      <entry><filename>/usr/lib/systemd/system</filename></entry>
-      <entry>Units of installed packages</entry>
+            <entry><filename>/usr/lib/systemd/system</filename></entry>
+            <entry>Units of installed packages</entry>
           </row>
         </tbody>
       </tgroup>
         <colspec colname='expl' />
         <thead>
           <row>
-      <entry>Path</entry>
-      <entry>Description</entry>
+            <entry>Path</entry>
+            <entry>Description</entry>
           </row>
         </thead>
         <tbody>
           <row>
-      <entry><filename>$XDG_CONFIG_HOME/systemd/user</filename></entry>
-      <entry>User configuration (only used when $XDG_CONFIG_HOME is set)</entry>
+            <entry><filename>$XDG_CONFIG_HOME/systemd/user</filename></entry>
+            <entry>User configuration (only used when $XDG_CONFIG_HOME is set)</entry>
           </row>
           <row>
-      <entry><filename>$HOME/.config/systemd/user</filename></entry>
-      <entry>User configuration (only used when $XDG_CONFIG_HOME is not set)</entry>
+            <entry><filename>$HOME/.config/systemd/user</filename></entry>
+            <entry>User configuration (only used when $XDG_CONFIG_HOME is not set)</entry>
           </row>
           <row>
-      <entry><filename>/etc/systemd/user</filename></entry>
-      <entry>Local configuration</entry>
+            <entry><filename>/etc/systemd/user</filename></entry>
+            <entry>Local configuration</entry>
           </row>
           <row>
-      <entry><filename>$XDG_RUNTIME_DIR/systemd/user</filename></entry>
-      <entry>Runtime units (only used when $XDG_RUNTIME_DIR is set)</entry>
+            <entry><filename>$XDG_RUNTIME_DIR/systemd/user</filename></entry>
+            <entry>Runtime units (only used when $XDG_RUNTIME_DIR is set)</entry>
           </row>
           <row>
-      <entry><filename>/run/systemd/user</filename></entry>
-      <entry>Runtime units</entry>
+            <entry><filename>/run/systemd/user</filename></entry>
+            <entry>Runtime units</entry>
           </row>
           <row>
-      <entry><filename>$XDG_DATA_HOME/systemd/user</filename></entry>
-      <entry>Units of packages that have been installed in the home directory (only used when $XDG_DATA_HOME is set)</entry>
+            <entry><filename>$XDG_DATA_HOME/systemd/user</filename></entry>
+            <entry>Units of packages that have been installed in the home directory (only used when $XDG_DATA_HOME is set)</entry>
           </row>
           <row>
-      <entry><filename>$HOME/.local/share/systemd/user</filename></entry>
-      <entry>Units of packages that have been installed in the home directory (only used when $XDG_DATA_HOME is not set)</entry>
+            <entry><filename>$HOME/.local/share/systemd/user</filename></entry>
+            <entry>Units of packages that have been installed in the home directory (only used when $XDG_DATA_HOME is not set)</entry>
           </row>
           <row>
-      <entry><filename>/usr/lib/systemd/user</filename></entry>
-      <entry>Units of packages that have been installed system-wide</entry>
+            <entry><filename>/usr/lib/systemd/user</filename></entry>
+            <entry>Units of packages that have been installed system-wide</entry>
           </row>
         </tbody>
       </tgroup>
         <listitem><para>Similar to <varname>Requires=</varname>.
         However, if the units listed here are not started already,
         they will not be started and the transaction will fail
-        immediately. </para></listitem>
+        immediately.</para>
+
+        <para>When <varname>Requisite=b.service</varname> is used on
+        <filename>a.service</filename>, this dependency will show as
+        <varname>RequisiteOf=a.service</varname> in property listing of
+        <filename>b.service</filename>. <varname>RequisiteOf=</varname>
+        dependency cannot be specified directly.</para>
+        </listitem>
       </varlistentry>
 
       <varlistentry>
         enters inactive state, but also one that is bound to another unit that gets skipped due to a failed condition
         check (such as <varname>ConditionPathExists=</varname>, <varname>ConditionPathIsSymbolicLink=</varname>, … —
         see below) will be stopped, should it be running. Hence, in many cases it is best to combine
-        <varname>BindsTo=</varname> with <varname>After=</varname>.</para></listitem>
+        <varname>BindsTo=</varname> with <varname>After=</varname>.</para>
+
+        <para>When <varname>BindsTo=b.service</varname> is used on
+        <filename>a.service</filename>, this dependency will show as
+        <varname>BoundBy=a.service</varname> in property listing of
+        <filename>b.service</filename>. <varname>BoundBy=</varname>
+        dependency cannot be specified directly.</para>
+        </listitem>
       </varlistentry>
 
       <varlistentry>
         restarting of units. When systemd stops or restarts the units
         listed here, the action is propagated to this unit. Note that
         this is a one-way dependency — changes to this unit do not
-        affect the listed units. </para></listitem>
+        affect the listed units.</para>
+
+        <para>When <varname>PartOf=b.service</varname> is used on
+        <filename>a.service</filename>, this dependency will show as
+        <varname>ConsistsOf=a.service</varname> in property listing of
+        <filename>b.service</filename>. <varname>ConsistsOf=</varname>
+        dependency cannot be specified directly.</para>
+        </listitem>
       </varlistentry>
 
       <varlistentry>
 
         <listitem><para>A space-separated list of one or more units
         that are activated when this unit enters the
-        <literal>failed</literal> state.</para></listitem>
+        <literal>failed</literal> state.  A service unit using
+        <varname>Restart=</varname> enters the failed state only after
+        the start limits are reached.</para></listitem>
       </varlistentry>
 
       <varlistentry>
         <term><varname>ConditionFileIsExecutable=</varname></term>
         <term><varname>ConditionUser=</varname></term>
         <term><varname>ConditionGroup=</varname></term>
+        <term><varname>ConditionControlGroupController=</varname></term>
 
         <!-- We do not document ConditionNull=
              here, as it is not particularly
         auxiliary groups match the specified group or GID. This setting
         does not have a special value <literal>@system</literal>.</para>
 
+        <para><varname>ConditionControlGroupController=</varname> takes a
+        cgroup controller name (eg. <option>cpu</option>), verifying that it is
+        available for use on the system. For example, a particular controller
+        may not be available if it was disabled on the kernel command line with
+        <literal>cgroup_disable=</literal><replaceable>controller</replaceable>.
+        Multiple controllers may be passed with a space separating them; in
+        this case the condition will only pass if all listed controllers are
+        available for use. Controllers unknown to systemd are ignored. Valid
+        controllers are <option>cpu</option>, <option>cpuacct</option>,
+        <option>io</option>, <option>blkio</option>, <option>memory</option>,
+        <option>devices</option>, and <option>pids</option>.</para>
+
         <para>If multiple conditions are specified, the unit will be
         executed if all of them apply (i.e. a logical AND is applied).
         Condition checks can be prefixed with a pipe symbol (|) in
         <term><varname>AssertFileIsExecutable=</varname></term>
         <term><varname>AssertUser=</varname></term>
         <term><varname>AssertGroup=</varname></term>
+        <term><varname>AssertControlGroupController=</varname></term>
 
         <listitem><para>Similar to the <varname>ConditionArchitecture=</varname>,
         <varname>ConditionVirtualization=</varname>, …, condition settings described above, these settings add
         files. This functionality should not be used in normal
         units.</para></listitem>
       </varlistentry>
-
     </variablelist>
+  </refsect1>
+
+  <refsect1>
+    <title>Mapping of unit properties to their inverses</title>
+
+    <para>Unit settings that create a relationship with a second unit usually show up
+    in properties of both units, for example in <command>systemctl show</command>
+    output. In some cases the name of the property is the same as the name of the
+    configuration setting, but not always. This table lists the pairs of properties
+    that are shown on two units which are connected through some dependency, and shows
+    which property on "source" unit corresponds to which property on the "target" unit.
+    </para>
+
+    <table>
+      <title>
+        "Forward" and "reverse" unit properties
+      </title>
 
+      <tgroup cols='2'>
+        <colspec colname='forward' />
+        <colspec colname='reverse' />
+        <colspec colname='notes' />
+        <thead>
+          <row>
+            <entry>"Forward" property</entry>
+            <entry>"Reverse" property</entry>
+            <entry>Where used</entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry><varname>Before=</varname></entry>
+            <entry><varname>After=</varname></entry>
+            <entry morerows='1' valign='middle'>Both are unit file options</entry>
+          </row>
+          <row>
+            <entry><varname>After=</varname></entry>
+            <entry><varname>Before=</varname></entry>
+          </row>
+          <row>
+            <entry><varname>Requires=</varname></entry>
+            <entry><varname>RequiredBy=</varname></entry>
+            <entry>A unit file option; an option in the [Install] section</entry>
+          </row>
+          <row>
+            <entry><varname>Wants=</varname></entry>
+            <entry><varname>WantedBy=</varname></entry>
+            <entry>A unit file option; an option in the [Install] section</entry>
+          </row>
+          <row>
+            <entry><varname>PartOf=</varname></entry>
+            <entry><varname>ConsistsOf=</varname></entry>
+            <entry>A unit file option; an automatic property</entry>
+          </row>
+          <row>
+            <entry><varname>BindsTo=</varname></entry>
+            <entry><varname>BoundBy=</varname></entry>
+            <entry>A unit file option; an automatic property</entry>
+          </row>
+          <row>
+            <entry><varname>Requisite=</varname></entry>
+            <entry><varname>RequisiteOf=</varname></entry>
+            <entry>A unit file option; an automatic property</entry>
+          </row>
+          <row>
+            <entry><varname>Triggers=</varname></entry>
+            <entry><varname>TriggeredBy=</varname></entry>
+            <entry>Automatic properties, see notes below</entry>
+          </row>
+          <row>
+            <entry><varname>Conflicts=</varname></entry>
+            <entry><varname>ConflictedBy=</varname></entry>
+            <entry>A unit file option; an automatic property</entry>
+          </row>
+          <row>
+            <entry><varname>PropagatesReloadTo=</varname></entry>
+            <entry><varname>ReloadPropagatedFrom=</varname></entry>
+            <entry morerows='1' valign='middle'>Both are unit file options</entry>
+          </row>
+          <row>
+            <entry><varname>ReloadPropagatedFrom=</varname></entry>
+            <entry><varname>PropagatesReloadTo=</varname></entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </table>
+
+    <para>Note: <varname>WantedBy=</varname> and <varname>RequiredBy=</varname> are
+    used in the [Install] section to create symlinks in <filename>.wants/</filename>
+    and <filename>.requires/</filename> directories. They cannot be used directly as a
+    unit configuration setting.</para>
+
+    <para>Note: <varname>ConsistsOf=</varname>, <varname>BoundBy=</varname>,
+    <varname>RequisiteOf=</varname>, <varname>ConflictedBy=</varname> are created
+    implicitly along with their reverse and cannot be specified directly.</para>
+
+    <para>Note: <varname>Triggers=</varname> is created implicitly between a socket,
+    path unit, or an automount unit, and the unit they activate. By default a unit
+    with the same name is triggered, but this can be overriden using
+    <varname>Sockets=</varname>, <varname>Service=</varname>, and <varname>Unit=</varname>
+    settings. See
+    <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+    <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+    <citerefentry><refentrytitle>systemd.path</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+    and
+    <citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+    for details. <varname>TriggersBy=</varname> is created implicitly on the
+    triggered unit.</para>
   </refsect1>
 
   <refsect1>
         <colspec colname="detail" />
         <thead>
           <row>
-      <entry>Specifier</entry>
-      <entry>Meaning</entry>
-      <entry>Details</entry>
+            <entry>Specifier</entry>
+            <entry>Meaning</entry>
+            <entry>Details</entry>
           </row>
         </thead>
         <tbody>
           <row>
-      <entry><literal>%n</literal></entry>
-      <entry>Full unit name</entry>
-      <entry></entry>
+            <entry><literal>%n</literal></entry>
+            <entry>Full unit name</entry>
+            <entry></entry>
           </row>
           <row>
-      <entry><literal>%N</literal></entry>
-      <entry>Unescaped full unit name</entry>
-      <entry>Same as <literal>%n</literal>, but with escaping undone. This undoes the escaping used when generating unit names from arbitrary strings (see above). </entry>
+            <entry><literal>%N</literal></entry>
+            <entry>Unescaped full unit name</entry>
+            <entry>Same as <literal>%n</literal>, but with escaping undone. This undoes the escaping used when generating unit names from arbitrary strings (see above). </entry>
           </row>
           <row>
-      <entry><literal>%p</literal></entry>
-      <entry>Prefix name</entry>
-      <entry>For instantiated units, this refers to the string before the <literal>@</literal> character of the unit name. For non-instantiated units, this refers to the name of the unit with the type suffix removed.</entry>
+            <entry><literal>%p</literal></entry>
+            <entry>Prefix name</entry>
+            <entry>For instantiated units, this refers to the string before the <literal>@</literal> character of the unit name. For non-instantiated units, this refers to the name of the unit with the type suffix removed.</entry>
           </row>
           <row>
-      <entry><literal>%P</literal></entry>
-      <entry>Unescaped prefix name</entry>
-      <entry>Same as <literal>%p</literal>, but with escaping undone</entry>
+            <entry><literal>%P</literal></entry>
+            <entry>Unescaped prefix name</entry>
+            <entry>Same as <literal>%p</literal>, but with escaping undone</entry>
           </row>
           <row>
-      <entry><literal>%i</literal></entry>
-      <entry>Instance name</entry>
-      <entry>For instantiated units: this is the string between the <literal>@</literal> character and the suffix of the unit name.</entry>
+            <entry><literal>%i</literal></entry>
+            <entry>Instance name</entry>
+            <entry>For instantiated units: this is the string between the <literal>@</literal> character and the suffix of the unit name.</entry>
           </row>
           <row>
-      <entry><literal>%I</literal></entry>
-      <entry>Unescaped instance name</entry>
-      <entry>Same as <literal>%i</literal>, but with escaping undone</entry>
+            <entry><literal>%I</literal></entry>
+            <entry>Unescaped instance name</entry>
+            <entry>Same as <literal>%i</literal>, but with escaping undone</entry>
           </row>
           <row>
-      <entry><literal>%f</literal></entry>
-      <entry>Unescaped filename</entry>
-      <entry>This is either the unescaped instance name (if applicable) with <filename>/</filename> prepended (if applicable), or the unescaped prefix name prepended with <filename>/</filename>. This implements unescaping according to the rules for escaping absolute file system paths discussed above.</entry>
+            <entry><literal>%f</literal></entry>
+            <entry>Unescaped filename</entry>
+            <entry>This is either the unescaped instance name (if applicable) with <filename>/</filename> prepended (if applicable), or the unescaped prefix name prepended with <filename>/</filename>. This implements unescaping according to the rules for escaping absolute file system paths discussed above.</entry>
           </row>
           <row>
-      <entry><literal>%t</literal></entry>
-      <entry>Runtime directory root</entry>
-      <entry>This is either <filename>/run</filename> (for the system manager) or the path <literal>$XDG_RUNTIME_DIR</literal> resolves to (for user managers).</entry>
+            <entry><literal>%t</literal></entry>
+            <entry>Runtime directory root</entry>
+            <entry>This is either <filename>/run</filename> (for the system manager) or the path <literal>$XDG_RUNTIME_DIR</literal> resolves to (for user managers).</entry>
           </row>
           <row>
-      <entry><literal>%S</literal></entry>
-      <entry>State directory root</entry>
-      <entry>This is either <filename>/var/lib</filename> (for the system manager) or the path <literal>$XDG_CONFIG_HOME</literal> resolves to (for user managers).</entry>
+            <entry><literal>%S</literal></entry>
+            <entry>State directory root</entry>
+            <entry>This is either <filename>/var/lib</filename> (for the system manager) or the path <literal>$XDG_CONFIG_HOME</literal> resolves to (for user managers).</entry>
           </row>
           <row>
-      <entry><literal>%C</literal></entry>
-      <entry>Cache directory root</entry>
-      <entry>This is either <filename>/var/cache</filename> (for the system manager) or the path <literal>$XDG_CACHE_HOME</literal> resolves to (for user managers).</entry>
+            <entry><literal>%C</literal></entry>
+            <entry>Cache directory root</entry>
+            <entry>This is either <filename>/var/cache</filename> (for the system manager) or the path <literal>$XDG_CACHE_HOME</literal> resolves to (for user managers).</entry>
           </row>
           <row>
-      <entry><literal>%L</literal></entry>
-      <entry>Log directory root</entry>
-      <entry>This is either <filename>/var/log</filename> (for the system manager) or the path <literal>$XDG_CONFIG_HOME</literal> resolves to with <filename noindex='true'>/log</filename> appended (for user managers).</entry>
+            <entry><literal>%L</literal></entry>
+            <entry>Log directory root</entry>
+            <entry>This is either <filename>/var/log</filename> (for the system manager) or the path <literal>$XDG_CONFIG_HOME</literal> resolves to with <filename noindex='true'>/log</filename> appended (for user managers).</entry>
           </row>
           <row>
-      <entry><literal>%u</literal></entry>
-      <entry>User name</entry>
-      <entry>This is the name of the user running the service manager instance. In case of the system manager this resolves to <literal>root</literal>.</entry>
+            <entry><literal>%u</literal></entry>
+            <entry>User name</entry>
+            <entry>This is the name of the user running the service manager instance. In case of the system manager this resolves to <literal>root</literal>.</entry>
           </row>
           <row>
-      <entry><literal>%U</literal></entry>
-      <entry>User UID</entry>
-      <entry>This is the numeric UID of the user running the service manager instance. In case of the system manager this resolves to <literal>0</literal>.</entry>
+            <entry><literal>%U</literal></entry>
+            <entry>User UID</entry>
+            <entry>This is the numeric UID of the user running the service manager instance. In case of the system manager this resolves to <literal>0</literal>.</entry>
           </row>
           <row>
-      <entry><literal>%h</literal></entry>
-      <entry>User home directory</entry>
-      <entry>This is the home directory of the user running the service manager instance. In case of the system manager this resolves to <literal>/root</literal>.</entry>
+            <entry><literal>%h</literal></entry>
+            <entry>User home directory</entry>
+            <entry>This is the home directory of the user running the service manager instance. In case of the system manager this resolves to <literal>/root</literal>.</entry>
           </row>
           <row>
-      <entry><literal>%s</literal></entry>
-      <entry>User shell</entry>
-      <entry>This is the shell of the user running the service manager instance. In case of the system manager this resolves to <literal>/bin/sh</literal>.</entry>
+            <entry><literal>%s</literal></entry>
+            <entry>User shell</entry>
+            <entry>This is the shell of the user running the service manager instance. In case of the system manager this resolves to <literal>/bin/sh</literal>.</entry>
           </row>
           <row>
-      <entry><literal>%m</literal></entry>
-      <entry>Machine ID</entry>
-      <entry>The machine ID of the running system, formatted as string. See <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry> for more information.</entry>
+            <entry><literal>%m</literal></entry>
+            <entry>Machine ID</entry>
+            <entry>The machine ID of the running system, formatted as string. See <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry> for more information.</entry>
           </row>
           <row>
-      <entry><literal>%b</literal></entry>
-      <entry>Boot ID</entry>
-      <entry>The boot ID of the running system, formatted as string. See <citerefentry><refentrytitle>random</refentrytitle><manvolnum>4</manvolnum></citerefentry> for more information.</entry>
+            <entry><literal>%b</literal></entry>
+            <entry>Boot ID</entry>
+            <entry>The boot ID of the running system, formatted as string. See <citerefentry><refentrytitle>random</refentrytitle><manvolnum>4</manvolnum></citerefentry> for more information.</entry>
           </row>
           <row>
-      <entry><literal>%H</literal></entry>
-      <entry>Host name</entry>
-      <entry>The hostname of the running system at the point in time the unit configuration is loaded.</entry>
+            <entry><literal>%H</literal></entry>
+            <entry>Host name</entry>
+            <entry>The hostname of the running system at the point in time the unit configuration is loaded.</entry>
           </row>
           <row>
-      <entry><literal>%v</literal></entry>
-      <entry>Kernel release</entry>
-      <entry>Identical to <command>uname -r</command> output</entry>
+            <entry><literal>%v</literal></entry>
+            <entry>Kernel release</entry>
+            <entry>Identical to <command>uname -r</command> output</entry>
           </row>
           <row>
-      <entry><literal>%%</literal></entry>
-      <entry>Single percent sign</entry>
-      <entry>Use <literal>%%</literal> in place of <literal>%</literal> to specify a single percent sign.</entry>
+            <entry><literal>%%</literal></entry>
+            <entry>Single percent sign</entry>
+            <entry>Use <literal>%%</literal> in place of <literal>%</literal> to specify a single percent sign.</entry>
           </row>
         </tbody>
       </tgroup>
     </table>
-
   </refsect1>
 
   <refsect1>
@@ -1477,13 +1619,6 @@ ExecStart=/usr/sbin/foo-daemon
       disadvantage that some future updates by the vendor might be
       incompatible with the local changes.</para>
 
-      <para>Note that for drop-in files, if one wants to remove
-      entries from a setting that is parsed as a list (and is not a
-      dependency), such as <varname>ConditionPathExists=</varname> (or
-      e.g. <varname>ExecStart=</varname> in service units), one needs
-      to first clear the list before re-adding all entries except the
-      one that is to be removed. See below for an example.</para>
-
       <para>This also applies for user instances of systemd, but with
       different locations for the unit files. See the section on unit
       load paths for further details.</para>
@@ -1555,7 +1690,12 @@ AssertPathExists=/srv/www
 Nice=0
 PrivateTmp=yes</programlisting>
 
-      <para>Note that dependencies (<varname>After=</varname>, etc.)
+      <para>Note that for drop-in files, if one wants to remove
+      entries from a setting that is parsed as a list (and is not a
+      dependency), such as <varname>AssertPathExists=</varname> (or
+      e.g. <varname>ExecStart=</varname> in service units), one needs
+      to first clear the list before re-adding all entries except the
+      one that is to be removed. Dependencies (<varname>After=</varname>, etc.)
       cannot be reset to an empty list, so dependencies can only be
       added in drop-ins. If you want to remove dependencies, you have
       to override the entire unit.</para>
index 657fe4c37aa31b360ec647fc1f8d32e95ac84271..a881b392a7be89aa321ea3f0d8aa99dd9be5cf6e 100644 (file)
     states are called "activating", "deactivating"). A special
     "failed" state is available as well, which is very similar to
     "inactive" and is entered when the service failed in some way
-    (process returned error code on exit, or crashed, or an operation
-    timed out). If this state is entered, the cause will be logged,
-    for later reference. Note that the various unit types may have a
-    number of additional substates, which are mapped to the five
-    generalized unit states described here.</para>
+    (process returned error code on exit, or crashed, an operation
+    timed out, or after too many restarts). If this state is entered,
+    the cause will be logged, for later reference. Note that the
+    various unit types may have a number of additional substates,
+    which are mapped to the five generalized unit states described
+    here.</para>
 
     <para>The following unit types are available:</para>
 
     verify that it makes sense, fixing it if possible, and only
     failing if it really cannot work.</para>
 
-    <para>Systemd contains native implementations of various tasks
+    <para>systemd contains native implementations of various tasks
     that need to be executed as part of the boot process. For example,
     it sets the hostname or configures the loopback network device. It
     also sets up and mounts various API file systems, such as
index 3c57bde5a751eecac6b71dc362a23da26764a313..9c0b5dafc8a858c309cf4e68d78ab4dff9db6f96 100644 (file)
@@ -16,7 +16,7 @@
 # along with systemd; If not, see <http://www.gnu.org/licenses/>.
 
 project('systemd', 'c',
-        version : '235',
+        version : '236',
         license : 'LGPLv2+',
         default_options: [
                 'c_std=gnu99',
@@ -27,8 +27,8 @@ project('systemd', 'c',
         meson_version : '>= 0.41',
        )
 
-libsystemd_version = '0.19.1'
-libudev_version = '1.6.7'
+libsystemd_version = '0.20.0'
+libudev_version = '1.6.8'
 
 # We need the same data in three different formats, ugh!
 # Also, for hysterical reasons, we use different variable
@@ -67,7 +67,7 @@ endif
 
 sysvinit_path = get_option('sysvinit-path')
 sysvrcnd_path = get_option('sysvrcnd-path')
-have = sysvinit_path != '' or sysvrcnd_path != ''
+have = sysvinit_path != '' and sysvrcnd_path != ''
 conf.set10('HAVE_SYSV_COMPAT', have,
            description : 'SysV init scripts and rcN.d links are supported')
 m4_defines += have ? ['-DHAVE_SYSV_COMPAT'] : []
@@ -2275,6 +2275,7 @@ public_programs += [exe]
 
 exe = executable('udevadm',
                  udevadm_sources,
+                 c_args : ['-DLOG_REALM=LOG_REALM_UDEV'],
                  include_directories : includes,
                  link_with : [libudev_core,
                               libsystemd_network,
@@ -2489,6 +2490,8 @@ install_data('README',
              'ENVIRONMENT.md',
              'LICENSE.GPL2',
              'LICENSE.LGPL2.1',
+             'TRANSIENT-SETTINGS.md',
+             'UIDS-GIDS.md',
              'src/libsystemd/sd-bus/GVARIANT-SERIALIZATION',
              install_dir : docdir)
 
index 3128d152acb6d744f6370d04739a1c4926eb6db4..f475b6598c6719c4c9fed4903e2ba3f4d6fd7cc7 100644 (file)
@@ -147,7 +147,7 @@ static int verify_socket(Unit *u) {
 }
 
 static int verify_executable(Unit *u, ExecCommand *exec) {
-        if (exec == NULL)
+        if (!exec)
                 return 0;
 
         if (access(exec->path, X_OK) < 0)
@@ -220,7 +220,7 @@ static int verify_unit(Unit *u, bool check_man) {
 
         assert(u);
 
-        if (log_get_max_level() >= LOG_DEBUG)
+        if (DEBUG_LOGGING)
                 unit_dump(u, stdout, "\t");
 
         log_unit_debug(u, "Creating %s/start job", u->id);
index 8b220d197820566f7e0d539e5326e7b706a42c9c..7f35b04c3136e6f1f8a67ccc3d4124745cc4f9d3 100644 (file)
@@ -130,6 +130,13 @@ struct host_info {
         char *architecture;
 };
 
+static int acquire_bus(bool need_full_bus, sd_bus **bus) {
+        if (need_full_bus)
+                return bus_connect_transport(arg_transport, arg_host, arg_user, bus);
+        else
+                return bus_connect_transport_systemd(arg_transport, arg_host, arg_user, bus);
+}
+
 static int bus_get_uint64_property(sd_bus *bus, const char *path, const char *interface, const char *property, uint64_t *val) {
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         int r;
@@ -416,7 +423,7 @@ static int acquire_time_data(sd_bus *bus, struct unit_times **out) {
                         continue;
 
                 t->name = strdup(u.id);
-                if (t->name == NULL) {
+                if (!t->name) {
                         r = log_oom();
                         goto fail;
                 }
@@ -820,7 +827,7 @@ static int list_dependencies_get_dependencies(sd_bus *bus, const char *name, cha
         assert(deps);
 
         path = unit_dbus_path_from_name(name);
-        if (path == NULL)
+        if (!path)
                 return -ENOMEM;
 
         return bus_get_unit_property_strv(bus, path, "After", deps);
@@ -878,7 +885,7 @@ static int list_dependencies_one(sd_bus *bus, const char *name, unsigned int lev
                 }
         }
 
-        if (service_longest == 0 )
+        if (service_longest == 0)
                 return r;
 
         STRV_FOREACH(c, deps) {
@@ -937,7 +944,7 @@ static int list_dependencies(sd_bus *bus, const char *name) {
         assert(bus);
 
         path = unit_dbus_path_from_name(name);
-        if (path == NULL)
+        if (!path)
                 return -ENOMEM;
 
         r = sd_bus_get_property(
@@ -1688,7 +1695,7 @@ int main(int argc, char *argv[]) {
         else {
                 _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
 
-                r = bus_connect_transport_systemd(arg_transport, arg_host, arg_user, &bus);
+                r = acquire_bus(streq_ptr(argv[optind], "plot"), &bus);
                 if (r < 0) {
                         log_error_errno(r, "Failed to create bus connection: %m");
                         goto finish;
index 66bdf9736ef514cc00a1bbd80b196cd1e58cf7ee..c5a4244e374c121f9a919c35eb253b727fa9f751 100644 (file)
@@ -1,6 +1,7 @@
 #pragma once
 
 #include "macro.h"
+#include "missing.h"
 #include "sparse-endian.h"
 
 /* Stolen from btrfs' ctree.h */
index ac96e635318a5e22749ea77de9c7db57cbf78bbc..f8d743b407f8689dcc89f5c7a3e7b41f9fcf93c0 100644 (file)
@@ -50,7 +50,6 @@
 #include "missing.h"
 #include "path-util.h"
 #include "rm-rf.h"
-#include "selinux-util.h"
 #include "smack-util.h"
 #include "sparse-endian.h"
 #include "stat-util.h"
@@ -174,24 +173,6 @@ int btrfs_subvol_make(const char *path) {
         return 0;
 }
 
-int btrfs_subvol_make_label(const char *path) {
-        int r;
-
-        assert(path);
-
-        r = mac_selinux_create_file_prepare(path, S_IFDIR);
-        if (r < 0)
-                return r;
-
-        r = btrfs_subvol_make(path);
-        mac_selinux_create_file_clear();
-
-        if (r < 0)
-                return r;
-
-        return mac_smack_fix(path, false, false);
-}
-
 int btrfs_subvol_set_read_only_fd(int fd, bool b) {
         uint64_t flags, nflags;
         struct stat st;
index 2c78daa37b6d1e1319382b56d88a0d15ababa8e8..952b3c26dad9dbaa227ca4d6d879da4caee48faf 100644 (file)
@@ -84,7 +84,6 @@ int btrfs_resize_loopback_fd(int fd, uint64_t size, bool grow_only);
 int btrfs_resize_loopback(const char *path, uint64_t size, bool grow_only);
 
 int btrfs_subvol_make(const char *path);
-int btrfs_subvol_make_label(const char *path);
 
 int btrfs_subvol_snapshot_fd(int old_fd, const char *new_path, BtrfsSnapshotFlags flags);
 int btrfs_subvol_snapshot(const char *old_path, const char *new_path, BtrfsSnapshotFlags flags);
index 6b3a9a44410e2eb2b7f903f319b6ec24629e9b4c..e6add0c38393c2aca2441f2506afcdf066411332 100644 (file)
@@ -24,6 +24,7 @@
 #include <limits.h>
 #include <stddef.h>
 #include <stdio.h>
+#include <stdio_ext.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/mman.h>
@@ -261,19 +262,19 @@ static void format_weekdays(FILE *f, const CalendarSpec *c) {
 
                         if (l < 0) {
                                 if (need_comma)
-                                        fputc_unlocked(',', f);
+                                        fputc(',', f);
                                 else
                                         need_comma = true;
 
-                                fputs_unlocked(days[x], f);
+                                fputs(days[x], f);
                                 l = x;
                         }
 
                 } else if (l >= 0) {
 
                         if (x > l + 1) {
-                                fputs_unlocked(x > l + 2 ? ".." : ",", f);
-                                fputs_unlocked(days[x-1], f);
+                                fputs(x > l + 2 ? ".." : ",", f);
+                                fputs(days[x-1], f);
                         }
 
                         l = -1;
@@ -281,8 +282,8 @@ static void format_weekdays(FILE *f, const CalendarSpec *c) {
         }
 
         if (l >= 0 && x > l + 1) {
-                fputs_unlocked(x > l + 2 ? ".." : ",", f);
-                fputs_unlocked(days[x-1], f);
+                fputs(x > l + 2 ? ".." : ",", f);
+                fputs(days[x-1], f);
         }
 }
 
@@ -292,12 +293,12 @@ static void format_chain(FILE *f, int space, const CalendarComponent *c, bool us
         assert(f);
 
         if (!c) {
-                fputc_unlocked('*', f);
+                fputc('*', f);
                 return;
         }
 
         if (usec && c->start == 0 && c->repeat == USEC_PER_SEC && !c->next) {
-                fputc_unlocked('*', f);
+                fputc('*', f);
                 return;
         }
 
@@ -318,7 +319,7 @@ static void format_chain(FILE *f, int space, const CalendarComponent *c, bool us
                 fprintf(f, ".%06i", c->repeat % d);
 
         if (c->next) {
-                fputc_unlocked(',', f);
+                fputc(',', f);
                 format_chain(f, space, c->next, usec);
         }
 }
@@ -336,28 +337,30 @@ int calendar_spec_to_string(const CalendarSpec *c, char **p) {
         if (!f)
                 return -ENOMEM;
 
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
         if (c->weekdays_bits > 0 && c->weekdays_bits <= BITS_WEEKDAYS) {
                 format_weekdays(f, c);
-                fputc_unlocked(' ', f);
+                fputc(' ', f);
         }
 
         format_chain(f, 4, c->year, false);
-        fputc_unlocked('-', f);
+        fputc('-', f);
         format_chain(f, 2, c->month, false);
-        fputc_unlocked(c->end_of_month ? '~' : '-', f);
+        fputc(c->end_of_month ? '~' : '-', f);
         format_chain(f, 2, c->day, false);
-        fputc_unlocked(' ', f);
+        fputc(' ', f);
         format_chain(f, 2, c->hour, false);
-        fputc_unlocked(':', f);
+        fputc(':', f);
         format_chain(f, 2, c->minute, false);
-        fputc_unlocked(':', f);
+        fputc(':', f);
         format_chain(f, 2, c->microsecond, true);
 
         if (c->utc)
-                fputs_unlocked(" UTC", f);
+                fputs(" UTC", f);
         else if (c->timezone != NULL) {
-                fputc_unlocked(' ', f);
-                fputs_unlocked(c->timezone, f);
+                fputc(' ', f);
+                fputs(c->timezone, f);
         } else if (IN_SET(c->dst, 0, 1)) {
 
                 /* If daylight saving is explicitly on or off, let's show the used timezone. */
@@ -365,8 +368,8 @@ int calendar_spec_to_string(const CalendarSpec *c, char **p) {
                 tzset();
 
                 if (!isempty(tzname[c->dst])) {
-                        fputc_unlocked(' ', f);
-                        fputs_unlocked(tzname[c->dst], f);
+                        fputc(' ', f);
+                        fputs(tzname[c->dst], f);
                 }
         }
 
index 5774d4dea160f85bf40a5d69b0cbbc2e85aaadf3..f599d0f0f137d0b3fe7c6c4d597797eaaec7caf2 100644 (file)
@@ -24,6 +24,7 @@
 #include <limits.h>
 #include <signal.h>
 #include <stddef.h>
+#include <stdio_ext.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/stat.h>
@@ -1032,6 +1033,8 @@ int cg_pid_get_path(const char *controller, pid_t pid, char **path) {
         if (!f)
                 return errno == ENOENT ? -ESRCH : -errno;
 
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
         FOREACH_LINE(line, f, return -errno) {
                 char *e, *p;
 
@@ -1471,7 +1474,7 @@ static bool valid_slice_name(const char *p, size_t n) {
         if (!p)
                 return false;
 
-        if (n < strlen("x.slice"))
+        if (n < STRLEN("x.slice"))
                 return false;
 
         if (memcmp(p + n - 6, ".slice", 6) == 0) {
@@ -1555,7 +1558,7 @@ static const char *skip_session(const char *p) {
         p += strspn(p, "/");
 
         n = strcspn(p, "/");
-        if (n < strlen("session-x.scope"))
+        if (n < STRLEN("session-x.scope"))
                 return NULL;
 
         if (memcmp(p, "session-", 8) == 0 && memcmp(p + n - 6, ".scope", 6) == 0) {
@@ -1592,7 +1595,7 @@ static const char *skip_user_manager(const char *p) {
         p += strspn(p, "/");
 
         n = strcspn(p, "/");
-        if (n < strlen("user@x.service"))
+        if (n < STRLEN("user@x.service"))
                 return NULL;
 
         if (memcmp(p, "user@", 5) == 0 && memcmp(p + n - 8, ".service", 8) == 0) {
@@ -2371,6 +2374,8 @@ int cg_kernel_controllers(Set **ret) {
                 return -errno;
         }
 
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
         /* Ignore the header line */
         (void) read_line(f, (size_t) -1, NULL);
 
index 232a7ad208362fa1f0882b054a300b5f5deaae98..e2499099b607a76f6dcab736c286fae7210ec57f 100644 (file)
@@ -73,7 +73,7 @@ int clock_set_hwclock(const struct tm *tm) {
 int clock_is_localtime(const char* adjtime_path) {
         _cleanup_fclose_ FILE *f;
 
-        if (adjtime_path == NULL)
+        if (!adjtime_path)
                 adjtime_path = "/etc/adjtime";
 
         /*
index 92e1f7f0bdcf144a8e40c099d506a653cdb4af26..61dc49238c22073c4d2009fb81f992d276d6ffe9 100644 (file)
@@ -40,7 +40,7 @@ int whitelisted_char_for_devnode(char c, const char *white) {
 int encode_devnode_name(const char *str, char *str_enc, size_t len) {
         size_t i, j;
 
-        if (str == NULL || str_enc == NULL)
+        if (!str || !str_enc)
                 return -EINVAL;
 
         for (i = 0, j = 0; str[i] != '\0'; i++) {
index 6136526f84f8445268e785d4b78594fcc6cfb61b..7dd8a772a54ce08fed61748a865a31eaaf6e64c3 100644 (file)
@@ -30,11 +30,11 @@ int encode_devnode_name(const char *str, char *str_enc, size_t len);
 int whitelisted_char_for_devnode(char c, const char *additional);
 
 #define SYS_BLOCK_PATH_MAX(suffix)                                      \
-        (strlen("/sys/dev/block/") + DECIMAL_STR_MAX(dev_t) + 1 + DECIMAL_STR_MAX(dev_t) + strlen_ptr(suffix))
+        (STRLEN("/sys/dev/block/") + DECIMAL_STR_MAX(dev_t) + 1 + DECIMAL_STR_MAX(dev_t) + strlen_ptr(suffix))
 #define xsprintf_sys_block_path(buf, suffix, devno)                     \
         xsprintf(buf, "/sys/dev/block/%u:%u%s", major(devno), minor(devno), strempty(suffix))
 
 #define DEV_NUM_PATH_MAX                                                \
-        (strlen("/dev/block/") + DECIMAL_STR_MAX(dev_t) + 1 + DECIMAL_STR_MAX(dev_t))
+        (STRLEN("/dev/block/") + DECIMAL_STR_MAX(dev_t) + 1 + DECIMAL_STR_MAX(dev_t))
 #define xsprintf_dev_num_path(buf, type, devno)                         \
         xsprintf(buf, "/dev/%s/%u:%u", type, major(devno), minor(devno))
index d94bdbd149164a9c19a885494118f04000e70eb5..bbe8bf000656c9506b6ea48ae9c4c58ab9e9046e 100644 (file)
@@ -71,7 +71,7 @@ int ether_addr_from_string(const char *s, struct ether_addr *ret, size_t *offset
                         if (s[pos] == '\0')                     \
                                 break;                          \
                         hexoff = strchr(hex, s[pos]);           \
-                        if (hexoff == NULL)                     \
+                        if (!hexoff)                            \
                                 break;                          \
                         assert(hexoff >= hex);                  \
                         x = hexoff - hex;                       \
@@ -99,7 +99,7 @@ int ether_addr_from_string(const char *s, struct ether_addr *ret, size_t *offset
         sep = s[strspn(s, hex)];
         if (sep == '\n')
                 return -EINVAL;
-        if (strchr(":.-", sep) == NULL)
+        if (!strchr(":.-", sep))
                 return -EINVAL;
 
         if (sep == '.') {
index f3863722eebbcb2f4eb1c5e9ecba574a78da1ab4..a4a5c6b3f6c759451c8fe6d700e0218b9b9c4734 100644 (file)
@@ -368,7 +368,7 @@ bool fdname_is_valid(const char *s) {
 }
 
 int fd_get_path(int fd, char **ret) {
-        char procfs_path[strlen("/proc/self/fd/") + DECIMAL_STR_MAX(int)];
+        char procfs_path[STRLEN("/proc/self/fd/") + DECIMAL_STR_MAX(int)];
         int r;
 
         xsprintf(procfs_path, "/proc/self/fd/%i", fd);
@@ -427,7 +427,7 @@ int move_fd(int from, int to, int cloexec) {
 
 int acquire_data_fd(const void *data, size_t size, unsigned flags) {
 
-        char procfs_path[strlen("/proc/self/fd/") + DECIMAL_STR_MAX(int)];
+        char procfs_path[STRLEN("/proc/self/fd/") + DECIMAL_STR_MAX(int)];
         _cleanup_close_pair_ int pipefds[2] = { -1, -1 };
         char pattern[] = "/dev/shm/data-fd-XXXXXX";
         _cleanup_close_ int fd = -1;
index 12d6d06fa2964d4dce3398d682da76b11a706137..4e02d5b3445b0d011499b52d9b021a3141dccbfd 100644 (file)
@@ -23,6 +23,7 @@
 #include <limits.h>
 #include <stdarg.h>
 #include <stdint.h>
+#include <stdio_ext.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/mman.h>
@@ -98,6 +99,7 @@ static int write_string_file_atomic(
         if (r < 0)
                 return r;
 
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
         (void) fchmod_umask(fileno(f), 0644);
 
         r = write_string_stream_ts(f, line, flags, ts);
@@ -140,7 +142,7 @@ int write_string_file_ts(
 
                 return r;
         } else
-                assert(ts == NULL);
+                assert(!ts);
 
         if (flags & WRITE_STRING_FILE_CREATE) {
                 f = fopen(fn, "we");
@@ -167,6 +169,11 @@ int write_string_file_ts(
                 }
         }
 
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
+        if (flags & WRITE_STRING_FILE_DISABLE_BUFFER)
+                setvbuf(f, NULL, _IONBF, 0);
+
         r = write_string_stream_ts(f, line, flags, ts);
         if (r < 0)
                 goto fail;
@@ -200,6 +207,8 @@ int read_one_line_file(const char *fn, char **line) {
         if (!f)
                 return -errno;
 
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
         r = read_line(f, LONG_LINE_MAX, line);
         return r < 0 ? r : 0;
 }
@@ -225,6 +234,8 @@ int verify_file(const char *fn, const char *blob, bool accept_extra_nl) {
         if (!f)
                 return -errno;
 
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
         /* We try to read one byte more than we need, so that we know whether we hit eof */
         errno = 0;
         k = fread(buf, 1, l + accept_extra_nl + 1, f);
@@ -320,6 +331,8 @@ int read_full_file(const char *fn, char **contents, size_t *size) {
         if (!f)
                 return -errno;
 
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
         return read_full_stream(f, contents, size);
 }
 
@@ -876,7 +889,8 @@ int write_env_file(const char *fname, char **l) {
         if (r < 0)
                 return r;
 
-        fchmod_umask(fileno(f), 0644);
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+        (void) fchmod_umask(fileno(f), 0644);
 
         STRV_FOREACH(i, l)
                 write_env_var(f, *i);
@@ -1191,7 +1205,7 @@ int tempfn_xxxxxx(const char *p, const char *extra, char **ret) {
         if (!filename_is_valid(fn))
                 return -EINVAL;
 
-        if (extra == NULL)
+        if (!extra)
                 extra = "";
 
         t = new(char, strlen(p) + 2 + strlen(extra) + 6 + 1);
@@ -1458,7 +1472,7 @@ int link_tmpfile(int fd, const char *path, const char *target) {
                 if (rename_noreplace(AT_FDCWD, path, AT_FDCWD, target) < 0)
                         return -errno;
         } else {
-                char proc_fd_path[strlen("/proc/self/fd/") + DECIMAL_STR_MAX(fd) + 1];
+                char proc_fd_path[STRLEN("/proc/self/fd/") + DECIMAL_STR_MAX(fd) + 1];
 
                 xsprintf(proc_fd_path, "/proc/self/fd/%i", fd);
 
index c283f41f09ba0768bd44946b50e67cf22e09e605..da5d5c66b51c5c526cd9d899e509545fb6f99d99 100644 (file)
@@ -35,6 +35,7 @@ typedef enum {
         WRITE_STRING_FILE_AVOID_NEWLINE     = 1<<2,
         WRITE_STRING_FILE_VERIFY_ON_FAILURE = 1<<3,
         WRITE_STRING_FILE_SYNC              = 1<<4,
+        WRITE_STRING_FILE_DISABLE_BUFFER    = 1<<5,
 
         /* And before you wonder, why write_string_file_atomic_label_ts() is a separate function instead of just one
            more flag here: it's about linking: we don't want to pull -lselinux into all users of write_string_file()
index aa33da48b0d669540090f31397d0ccefabb04f3e..4ca36faf094d885ef72c3e326438d5e7fd0e41b6 100644 (file)
@@ -580,7 +580,7 @@ int tmp_dir(const char **ret) {
 }
 
 int inotify_add_watch_fd(int fd, int what, uint32_t mask) {
-        char path[strlen("/proc/self/fd/") + DECIMAL_STR_MAX(int) + 1];
+        char path[STRLEN("/proc/self/fd/") + DECIMAL_STR_MAX(int) + 1];
         int r;
 
         /* This is like inotify_add_watch(), except that the file to watch is not referenced by a path, but by an fd */
@@ -825,7 +825,7 @@ int chase_symlinks(const char *path, const char *original_root, unsigned flags,
 }
 
 int access_fd(int fd, int mode) {
-        char p[strlen("/proc/self/fd/") + DECIMAL_STR_MAX(fd) + 1];
+        char p[STRLEN("/proc/self/fd/") + DECIMAL_STR_MAX(fd) + 1];
         int r;
 
         /* Like access() but operates on an already open fd */
index 12a579b38ac0432785d1148448c84e3978dd066c..b59e5425a5d381e401d2fbe3d1e716c9fc50f7ad 100644 (file)
@@ -221,6 +221,38 @@ int sethostname_idempotent(const char *s) {
         return 1;
 }
 
+int shorten_overlong(const char *s, char **ret) {
+        char *h, *p;
+
+        /* Shorten an overlong name to HOST_NAME_MAX or to the first dot,
+         * whatever comes earlier. */
+
+        assert(s);
+
+        h = strdup(s);
+        if (!h)
+                return -ENOMEM;
+
+        if (hostname_is_valid(h, false)) {
+                *ret = h;
+                return 0;
+        }
+
+        p = strchr(h, '.');
+        if (p)
+                *p = 0;
+
+        strshorten(h, HOST_NAME_MAX);
+
+        if (!hostname_is_valid(h, false)) {
+                free(h);
+                return -EDOM;
+        }
+
+        *ret = h;
+        return 1;
+}
+
 int read_etc_hostname_stream(FILE *f, char **ret) {
         int r;
 
index 52fd6b0899b5f5581b8c9aa135c0d9f7296c63e0..d837d6f28c5dd061ff1cdce08f1c7e679caf8ddf 100644 (file)
@@ -39,5 +39,7 @@ bool is_gateway_hostname(const char *hostname);
 
 int sethostname_idempotent(const char *s);
 
+int shorten_overlong(const char *s, char **ret);
+
 int read_etc_hostname_stream(FILE *f, char **ret);
 int read_etc_hostname(const char *path, char **ret);
index 2afb530bae3579f05dc9163833231fa8aa410950..6942c370cb60d2bdc7690a1835ebb7417321732a 100644 (file)
@@ -96,7 +96,7 @@ static int get_line(JournalImporter *imp, char **line, size_t *size) {
         assert(imp->state == IMPORTER_STATE_LINE);
         assert(imp->offset <= imp->filled);
         assert(imp->filled <= imp->size);
-        assert(imp->buf == NULL || imp->size > 0);
+        assert(!imp->buf || imp->size > 0);
         assert(imp->fd >= 0);
 
         for (;;) {
@@ -159,8 +159,8 @@ static int fill_fixed_size(JournalImporter *imp, void **data, size_t size) {
         assert(size <= DATA_SIZE_MAX);
         assert(imp->offset <= imp->filled);
         assert(imp->filled <= imp->size);
-        assert(imp->buf != NULL || imp->size == 0);
-        assert(imp->buf == NULL || imp->size > 0);
+        assert(imp->buf || imp->size == 0);
+        assert(!imp->buf || imp->size > 0);
         assert(imp->fd >= 0);
         assert(data);
 
index ce81d286abe9bc8bf0ba977e717037b1023764a3..94a2458149497bb5f7213a875f56d8e228dacdd4 100644 (file)
@@ -22,6 +22,7 @@
 #include <sys/stat.h>
 #include <unistd.h>
 
+#include "btrfs-util.h"
 #include "label.h"
 #include "macro.h"
 #include "selinux-util.h"
@@ -81,3 +82,21 @@ int symlink_label(const char *old_path, const char *new_path) {
 
         return mac_smack_fix(new_path, false, false);
 }
+
+int btrfs_subvol_make_label(const char *path) {
+        int r;
+
+        assert(path);
+
+        r = mac_selinux_create_file_prepare(path, S_IFDIR);
+        if (r < 0)
+                return r;
+
+        r = btrfs_subvol_make(path);
+        mac_selinux_create_file_clear();
+
+        if (r < 0)
+                return r;
+
+        return mac_smack_fix(path, false, false);
+}
index 86447c2e98799f371209cec730cec7e46af7f827..d73dacec4fe3af47e96a831ae2347591be105ac8 100644 (file)
@@ -27,3 +27,5 @@ int label_fix(const char *path, bool ignore_enoent, bool ignore_erofs);
 
 int mkdir_label(const char *path, mode_t mode);
 int symlink_label(const char *old_path, const char *new_path);
+
+int btrfs_subvol_make_label(const char *path);
index 1637a062d71c4afb7800f5d328d38ea5d103c871..20d9588e2f34b41870e80031c6c736125b705bbd 100644 (file)
@@ -1047,18 +1047,18 @@ int log_struct_iovec_internal(
         }
 
         for (i = 0; i < n_input_iovec; i++) {
-                if (input_iovec[i].iov_len < strlen("MESSAGE="))
+                if (input_iovec[i].iov_len < STRLEN("MESSAGE="))
                         continue;
 
-                if (memcmp(input_iovec[i].iov_base, "MESSAGE=", strlen("MESSAGE=")) == 0)
+                if (memcmp(input_iovec[i].iov_base, "MESSAGE=", STRLEN("MESSAGE=")) == 0)
                         break;
         }
 
         if (_unlikely_(i >= n_input_iovec)) /* Couldn't find MESSAGE=? */
                 return -error;
 
-        m = strndupa(input_iovec[i].iov_base + strlen("MESSAGE="),
-                     input_iovec[i].iov_len - strlen("MESSAGE="));
+        m = strndupa(input_iovec[i].iov_base + STRLEN("MESSAGE="),
+                     input_iovec[i].iov_len - STRLEN("MESSAGE="));
 
         return log_dispatch_internal(level, error, file, line, func, NULL, NULL, NULL, NULL, m);
 }
index aa5976c3c040e66d7694b52b3f42e1bc6bbaa76a..28300312f628586f2a520ee6befdd6fa9c2d3d65 100644 (file)
@@ -335,3 +335,5 @@ int log_syntax_internal(
                                             "String is not UTF-8 clean, ignoring assignment: %s", strna(_p)); \
                 }                                                       \
         })
+
+#define DEBUG_LOGGING _unlikely_(log_get_max_level() >= LOG_DEBUG)
index 78679083e85e4f673a92aacc5cd9a10f6b290bbc..02d22de833f2be808d88928de5e20bf76970dc81 100644 (file)
@@ -144,6 +144,14 @@ static inline unsigned long ALIGN_POWER2(unsigned long u) {
                 !__builtin_types_compatible_p(typeof(x), typeof(&*(x))), \
                 sizeof(x)/sizeof((x)[0]),                                \
                 (void)0))
+
+/*
+ * STRLEN - return the length of a string literal, minus the trailing NUL byte.
+ *          Contrary to strlen(), this is a constant expression.
+ * @x: a string literal.
+ */
+#define STRLEN(x) (sizeof(""x"") - 1)
+
 /*
  * container_of - cast a member of a structure out to the containing structure
  * @ptr: the pointer to the member.
index bbdded984fb3a75c1be0afaf6103e6ac3e48c6ef..66f0caf294a41ce546a762a92e411a583874bfc5 100644 (file)
@@ -206,6 +206,32 @@ struct sockaddr_vm {
 #endif
 
 #if ! HAVE_LINUX_BTRFS_H
+#define BTRFS_IOC_QGROUP_ASSIGN _IOW(BTRFS_IOCTL_MAGIC, 41, \
+                               struct btrfs_ioctl_qgroup_assign_args)
+#define BTRFS_IOC_QGROUP_CREATE _IOW(BTRFS_IOCTL_MAGIC, 42, \
+                               struct btrfs_ioctl_qgroup_create_args)
+#define BTRFS_IOC_QUOTA_RESCAN _IOW(BTRFS_IOCTL_MAGIC, 44, \
+                               struct btrfs_ioctl_quota_rescan_args)
+#define BTRFS_IOC_QUOTA_RESCAN_STATUS _IOR(BTRFS_IOCTL_MAGIC, 45, \
+                               struct btrfs_ioctl_quota_rescan_args)
+
+struct btrfs_ioctl_quota_rescan_args {
+        __u64   flags;
+        __u64   progress;
+        __u64   reserved[6];
+};
+
+struct btrfs_ioctl_qgroup_assign_args {
+        __u64 assign;
+        __u64 src;
+        __u64 dst;
+};
+
+struct btrfs_ioctl_qgroup_create_args {
+        __u64 create;
+        __u64 qgroupid;
+};
+
 struct btrfs_ioctl_vol_args {
         int64_t fd;
         char name[BTRFS_PATH_NAME_MAX + 1];
@@ -543,6 +569,38 @@ struct btrfs_ioctl_quota_ctl_args {
 #define PR_SET_CHILD_SUBREAPER 36
 #endif
 
+#ifndef PR_SET_MM_ARG_START
+#define PR_SET_MM_ARG_START 8
+#endif
+
+#ifndef PR_SET_MM_ARG_END
+#define PR_SET_MM_ARG_END 9
+#endif
+
+#ifndef PR_SET_MM_ENV_START
+#define PR_SET_MM_ENV_START 10
+#endif
+
+#ifndef PR_SET_MM_ENV_END
+#define PR_SET_MM_ENV_END 11
+#endif
+
+#ifndef EFIVARFS_MAGIC
+#define EFIVARFS_MAGIC 0xde5e81e4
+#endif
+
+#ifndef SMACK_MAGIC
+#define SMACK_MAGIC 0x43415d53
+#endif
+
+#ifndef DM_DEFERRED_REMOVE
+#define DM_DEFERRED_REMOVE (1 << 17)
+#endif
+
+#ifndef MAX_HANDLE_SZ
+#define MAX_HANDLE_SZ 128
+#endif
+
 #if ! HAVE_SECURE_GETENV
 #  if HAVE___SECURE_GETENV
 #    define secure_getenv __secure_getenv
@@ -1271,4 +1329,12 @@ struct fib_rule_uid_range {
 #  define EXT4_IOC_RESIZE_FS              _IOW('f', 16, __u64)
 #endif
 
+#ifndef NSFS_MAGIC
+#define NSFS_MAGIC 0x6e736673
+#endif
+
+#ifndef NS_GET_NSTYPE
+#define NS_GET_NSTYPE _IO(0xb7, 0x3)
+#endif
+
 #include "missing_syscall.h"
index f8d615dd890488cd07ac730598488cbdd1af2908..a8947cefc2ed07cc2fdb531491b0fff25b0a46ae 100644 (file)
@@ -19,6 +19,7 @@
 ***/
 
 #include <errno.h>
+#include <stdio_ext.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/mount.h>
@@ -115,7 +116,7 @@ int name_to_handle_at_loop(
 }
 
 static int fd_fdinfo_mnt_id(int fd, const char *filename, int flags, int *mnt_id) {
-        char path[strlen("/proc/self/fdinfo/") + DECIMAL_STR_MAX(int)];
+        char path[STRLEN("/proc/self/fdinfo/") + DECIMAL_STR_MAX(int)];
         _cleanup_free_ char *fdinfo = NULL;
         _cleanup_close_ int subfd = -1;
         char *p;
@@ -337,6 +338,8 @@ int umount_recursive(const char *prefix, int flags) {
                 if (!proc_self_mountinfo)
                         return -errno;
 
+                (void) __fsetlocking(proc_self_mountinfo, FSETLOCKING_BYCALLER);
+
                 for (;;) {
                         _cleanup_free_ char *path = NULL, *p = NULL;
                         int k;
@@ -583,6 +586,8 @@ int bind_remount_recursive(const char *prefix, bool ro, char **blacklist) {
         if (!proc_self_mountinfo)
                 return -errno;
 
+        (void) __fsetlocking(proc_self_mountinfo, FSETLOCKING_BYCALLER);
+
         return bind_remount_recursive_with_mountinfo(prefix, ro, blacklist, proc_self_mountinfo);
 }
 
index fe20799ba2e92f4aadcfdab4f4aa0a451af5376d..ab4778d4edc5176c0feb7d9a0a0d1e7c6bfefcd3 100644 (file)
@@ -538,7 +538,7 @@ bool paths_check_timestamp(const char* const* paths, usec_t *timestamp, bool upd
 
         assert(timestamp);
 
-        if (paths == NULL)
+        if (!paths)
                 return false;
 
         STRV_FOREACH(i, paths) {
index b3d96cdb0f6a72767342742552b03a19a83a80b5..17c94f44a060f06bda627ea84a489bb9253d9fbc 100644 (file)
@@ -26,6 +26,7 @@
 #include <signal.h>
 #include <stdbool.h>
 #include <stdio.h>
+#include <stdio_ext.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/mman.h>
@@ -130,6 +131,8 @@ int get_process_cmdline(pid_t pid, size_t max_length, bool comm_fallback, char *
                 return -errno;
         }
 
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
         if (max_length == 1) {
 
                 /* If there's only room for one byte, return the empty string */
@@ -406,6 +409,8 @@ int is_kernel_thread(pid_t pid) {
                 return -errno;
         }
 
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
         count = fread(&c, 1, 1, f);
         eof = feof(f);
         fclose(f);
@@ -487,6 +492,8 @@ static int get_process_id(pid_t pid, const char *field, uid_t *uid) {
                 return -errno;
         }
 
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
         FOREACH_LINE(line, f, return -errno) {
                 char *l;
 
@@ -565,6 +572,8 @@ int get_process_environ(pid_t pid, char **env) {
                 return -errno;
         }
 
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
         while ((c = fgetc(f)) != EOF) {
                 if (!GREEDY_REALLOC(outcome, allocated, sz + 5))
                         return -ENOMEM;
@@ -699,6 +708,67 @@ int wait_for_terminate_and_warn(const char *name, pid_t pid, bool check_exit_cod
         return -EPROTO;
 }
 
+/*
+ * Return values:
+ * < 0 : wait_for_terminate_with_timeout() failed to get the state of the
+ *       process, the process timed out, the process was terminated by a
+ *       signal, or failed for an unknown reason.
+ * >=0 : The process terminated normally with no failures.
+ *
+ * Success is indicated by a return value of zero, a timeout is indicated
+ * by ETIMEDOUT, and all other child failure states are indicated by error
+ * is indicated by a non-zero value.
+ */
+int wait_for_terminate_with_timeout(pid_t pid, usec_t timeout) {
+        sigset_t mask;
+        int r;
+        usec_t until;
+
+        assert_se(sigemptyset(&mask) == 0);
+        assert_se(sigaddset(&mask, SIGCHLD) == 0);
+
+        /* Drop into a sigtimewait-based timeout. Waiting for the
+         * pid to exit. */
+        until = now(CLOCK_MONOTONIC) + timeout;
+        for (;;) {
+                usec_t n;
+                siginfo_t status = {};
+                struct timespec ts;
+
+                n = now(CLOCK_MONOTONIC);
+                if (n >= until)
+                        break;
+
+                r = sigtimedwait(&mask, NULL, timespec_store(&ts, until - n)) < 0 ? -errno : 0;
+                /* Assuming we woke due to the child exiting. */
+                if (waitid(P_PID, pid, &status, WEXITED|WNOHANG) == 0) {
+                        if (status.si_pid == pid) {
+                                /* This is the correct child.*/
+                                if (status.si_code == CLD_EXITED)
+                                        return (status.si_status == 0) ? 0 : -EPROTO;
+                                else
+                                        return -EPROTO;
+                        }
+                }
+                /* Not the child, check for errors and proceed appropriately */
+                if (r < 0) {
+                        switch (r) {
+                        case -EAGAIN:
+                                /* Timed out, child is likely hung. */
+                                return -ETIMEDOUT;
+                        case -EINTR:
+                                /* Received a different signal and should retry */
+                                continue;
+                        default:
+                                /* Return any unexpected errors */
+                                return r;
+                        }
+                }
+        }
+
+        return -EPROTO;
+}
+
 void sigkill_wait(pid_t pid) {
         assert(pid > 1);
 
@@ -749,6 +819,8 @@ int getenv_for_pid(pid_t pid, const char *field, char **_value) {
                 return -errno;
         }
 
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
         l = strlen(field);
         r = 0;
 
@@ -1053,6 +1125,15 @@ pid_t getpid_cached(void) {
         }
 }
 
+int must_be_root(void) {
+
+        if (geteuid() == 0)
+                return 0;
+
+        log_error("Need to be root.");
+        return -EPERM;
+}
+
 static const char *const ioprio_class_table[] = {
         [IOPRIO_CLASS_NONE] = "none",
         [IOPRIO_CLASS_RT] = "realtime",
index d99fb3d6b84fbdf458953bb3e65bb78251593cf4..1b7e69206096d29701fd5694b284284e077de74c 100644 (file)
@@ -33,6 +33,7 @@
 #include "format-util.h"
 #include "ioprio.h"
 #include "macro.h"
+#include "time-util.h"
 
 #define procfs_file_alloca(pid, field)                                  \
         ({                                                              \
@@ -41,7 +42,7 @@
                 if (_pid_ == 0) {                                       \
                         _r_ = ("/proc/self/" field);                    \
                 } else {                                                \
-                        _r_ = alloca(strlen("/proc/") + DECIMAL_STR_MAX(pid_t) + 1 + sizeof(field)); \
+                        _r_ = alloca(STRLEN("/proc/") + DECIMAL_STR_MAX(pid_t) + 1 + sizeof(field)); \
                         sprintf((char*) _r_, "/proc/"PID_FMT"/" field, _pid_);                       \
                 }                                                       \
                 _r_;                                                    \
@@ -61,6 +62,7 @@ int get_process_ppid(pid_t pid, pid_t *ppid);
 
 int wait_for_terminate(pid_t pid, siginfo_t *status);
 int wait_for_terminate_and_warn(const char *name, pid_t pid, bool check_exit_code);
+int wait_for_terminate_with_timeout(pid_t pid, usec_t timeout);
 
 void sigkill_wait(pid_t pid);
 void sigkill_waitp(pid_t *pid);
@@ -138,3 +140,5 @@ static inline bool pid_is_valid(pid_t p) {
 int ioprio_parse_priority(const char *s, int *ret);
 
 pid_t getpid_cached(void);
+
+int must_be_root(void);
index 3137f3d079c49272a95d9fe9b89360860c35c143..27caabe4716b33583647f00de55afa2d94d7f550 100644 (file)
@@ -226,7 +226,7 @@ static const char *const __signal_table[] = {
 DEFINE_PRIVATE_STRING_TABLE_LOOKUP(__signal, int);
 
 const char *signal_to_string(int signo) {
-        static thread_local char buf[sizeof("RTMIN+")-1 + DECIMAL_STR_MAX(int) + 1];
+        static thread_local char buf[STRLEN("RTMIN+") + DECIMAL_STR_MAX(int) + 1];
         const char *name;
 
         name = __signal_to_string(signo);
index b02af357adef2dc9210fe6424a49674cc0db1b0a..a458fc29023a8368ee196ae359a970a9bdddac19 100644 (file)
@@ -122,7 +122,7 @@ int socket_address_parse(SocketAddress *a, const char *s) {
 
         } else if (startswith(s, "vsock:")) {
                 /* AF_VSOCK socket in vsock:cid:port notation */
-                const char *cid_start = s + strlen("vsock:");
+                const char *cid_start = s + STRLEN("vsock:");
 
                 e = strchr(cid_start, ':');
                 if (!e)
index c6b8507e9d8541240ee50a6d7f74fb00f535a956..96fc8b3787233fe0f68c92b5dbb66d41723dbd0d 100644 (file)
@@ -226,6 +226,18 @@ int fd_is_temporary_fs(int fd) {
         return is_temporary_fs(&s);
 }
 
+int fd_is_network_ns(int fd) {
+        int r;
+
+        r = fd_is_fs_type(fd, NSFS_MAGIC);
+        if (r <= 0)
+                return r;
+        r = ioctl(fd, NS_GET_NSTYPE);
+        if (r < 0)
+                return -errno;
+        return r == CLONE_NEWNET;
+}
+
 int path_is_temporary_fs(const char *path) {
         _cleanup_close_ int fd = -1;
 
index 8b8d128121124c19362b14c44b95816362604d4c..d8d3c204960921e006a9cf9c8130fc2ea7394aca 100644 (file)
@@ -62,6 +62,7 @@ int path_is_fs_type(const char *path, statfs_f_type_t magic_value);
 
 bool is_temporary_fs(const struct statfs *s) _pure_;
 int fd_is_temporary_fs(int fd);
+int fd_is_network_ns(int fd);
 int path_is_temporary_fs(const char *path);
 
 /* Because statfs.t_type can be int on some architectures, we have to cast
index e916000b25bb274c330907d88310f22c7d8e2384..7e2f596edcbe743fa907aa462bc62578bbd3e507 100644 (file)
@@ -22,6 +22,7 @@
 #include <stdarg.h>
 #include <stdint.h>
 #include <stdio.h>
+#include <stdio_ext.h>
 #include <stdlib.h>
 #include <string.h>
 
@@ -669,10 +670,10 @@ char *strip_tab_ansi(char **ibuf, size_t *_isz) {
         if (!f)
                 return NULL;
 
-        /* Note we use the _unlocked() stdio variants on f for performance
-         * reasons.  It's safe to do so since we created f here and it
-         * doesn't leave our scope.
-         */
+        /* Note we turn off internal locking on f for performance reasons.  It's safe to do so since we created f here
+         * and it doesn't leave our scope. */
+
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
 
         for (i = *ibuf; i < *ibuf + isz + 1; i++) {
 
@@ -684,21 +685,21 @@ char *strip_tab_ansi(char **ibuf, size_t *_isz) {
                         else if (*i == '\x1B')
                                 state = STATE_ESCAPE;
                         else if (*i == '\t')
-                                fputs_unlocked("        ", f);
+                                fputs("        ", f);
                         else
-                                fputc_unlocked(*i, f);
+                                fputc(*i, f);
                         break;
 
                 case STATE_ESCAPE:
                         if (i >= *ibuf + isz) { /* EOT */
-                                fputc_unlocked('\x1B', f);
+                                fputc('\x1B', f);
                                 break;
                         } else if (*i == '[') {
                                 state = STATE_BRACKET;
                                 begin = i + 1;
                         } else {
-                                fputc_unlocked('\x1B', f);
-                                fputc_unlocked(*i, f);
+                                fputc('\x1B', f);
+                                fputc(*i, f);
                                 state = STATE_OTHER;
                         }
 
@@ -708,8 +709,8 @@ char *strip_tab_ansi(char **ibuf, size_t *_isz) {
 
                         if (i >= *ibuf + isz || /* EOT */
                             (!(*i >= '0' && *i <= '9') && !IN_SET(*i, ';', 'm'))) {
-                                fputc_unlocked('\x1B', f);
-                                fputc_unlocked('[', f);
+                                fputc('\x1B', f);
+                                fputc('[', f);
                                 state = STATE_OTHER;
                                 i = begin-1;
                         } else if (*i == 'm')
index f6118ebc244c709b85fa5198a2ec22b28d7fdd1b..48ee799ad49adbf2f995539bc06bd8f5474e1999 100644 (file)
@@ -992,7 +992,7 @@ int get_ctty_devnr(pid_t pid, dev_t *d) {
 }
 
 int get_ctty(pid_t pid, dev_t *_devnr, char **r) {
-        char fn[sizeof("/dev/char/")-1 + 2*DECIMAL_STR_MAX(unsigned) + 1 + 1], *b = NULL;
+        char fn[STRLEN("/dev/char/") + 2*DECIMAL_STR_MAX(unsigned) + 1 + 1], *b = NULL;
         _cleanup_free_ char *s = NULL;
         const char *p;
         dev_t devnr;
index bd5a6ae613b941ca2345bba4f70a62a0a3fdfbe5..d56576ddbebc09372e27cec23a4b0e419c968a42 100644 (file)
@@ -893,7 +893,7 @@ int parse_timestamp(const char *t, usec_t *usec) {
         if (last_space != NULL && timezone_is_valid(last_space + 1))
                 tz = last_space + 1;
 
-        if (tz == NULL || endswith_no_case(t, " UTC"))
+        if (!tz || endswith_no_case(t, " UTC"))
                 return parse_timestamp_impl(t, usec, false);
 
         shared = mmap(NULL, sizeof *shared, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, -1, 0);
index 403f288b57f7855aca1dc78e9b10ecdca3b914fc..0fa0472ee1312d5b17a03586e366604ddcf938cf 100644 (file)
@@ -28,6 +28,7 @@
 #include "glob-util.h"
 #include "hexdecoct.h"
 #include "path-util.h"
+#include "special.h"
 #include "string-util.h"
 #include "strv.h"
 #include "unit-name.h"
@@ -673,7 +674,7 @@ int slice_build_parent_slice(const char *slice, char **ret) {
         if (!slice_name_is_valid(slice))
                 return -EINVAL;
 
-        if (streq(slice, "-.slice")) {
+        if (streq(slice, SPECIAL_ROOT_SLICE)) {
                 *ret = NULL;
                 return 0;
         }
@@ -686,7 +687,7 @@ int slice_build_parent_slice(const char *slice, char **ret) {
         if (dash)
                 strcpy(dash, ".slice");
         else {
-                r = free_and_strdup(&s, "-.slice");
+                r = free_and_strdup(&s, SPECIAL_ROOT_SLICE);
                 if (r < 0) {
                         free(s);
                         return r;
@@ -710,7 +711,7 @@ int slice_build_subslice(const char *slice, const char*name, char **ret) {
         if (!unit_prefix_is_valid(name))
                 return -EINVAL;
 
-        if (streq(slice, "-.slice"))
+        if (streq(slice, SPECIAL_ROOT_SLICE))
                 subslice = strappend(name, ".slice");
         else {
                 char *e;
@@ -735,7 +736,7 @@ bool slice_name_is_valid(const char *name) {
         if (!unit_name_is_valid(name, UNIT_NAME_PLAIN))
                 return false;
 
-        if (streq(name, "-.slice"))
+        if (streq(name, SPECIAL_ROOT_SLICE))
                 return true;
 
         e = endswith(name, ".slice");
index f61d9013e6d1d21d610e1459923f5fc8b66f8925..8f9f2b902b90b02513bc6e767ab92bedd0c75aee 100644 (file)
@@ -105,7 +105,7 @@ int socket_from_display(const char *display, char **path) {
 
         k = strspn(display+1, "0123456789");
 
-        f = new(char, strlen("/tmp/.X11-unix/X") + k + 1);
+        f = new(char, STRLEN("/tmp/.X11-unix/X") + k + 1);
         if (!f)
                 return -ENOMEM;
 
index cc1bd7e3231aef1d718be11078dfb7443cee702f..d8ebf89d03820c52443e4310a496147cc1862642 100644 (file)
 #include <stdbool.h>
 #include <stddef.h>
 
+#include "env-util.h"
 #include "log.h"
 #include "macro.h"
 #include "string-util.h"
 #include "verbs.h"
 #include "virt.h"
 
+/* Wraps running_in_chroot() which is used in various places,
+ * but also adds an environment variable check so external processes
+ * can reliably force this on.
+ */
+bool running_in_chroot_or_offline(void) {
+        int r;
+
+        /* Added to support use cases like rpm-ostree, where from %post
+         * scripts we only want to execute "preset", but not "start"/"restart"
+         * for example.
+         *
+         * See ENVIRONMENT.md for docs.
+         */
+        r = getenv_bool("SYSTEMD_OFFLINE");
+        if (r < 0)
+                log_debug_errno(r, "Parsing SYSTEMD_OFFLINE: %m");
+        else if (r == 0)
+                return false;
+        else
+                return true;
+
+        /* We've had this condition check for a long time which basically
+         * checks for legacy chroot case like Fedora's
+         * "mock", which is used for package builds.  We don't want
+         * to try to start systemd services there, since without --new-chroot
+         * we don't even have systemd running, and even if we did, adding
+         * a concept of background daemons to builds would be an enormous change,
+         * requiring considering things like how the journal output is handled, etc.
+         * And there's really not a use case today for a build talking to a service.
+         *
+         * Note this call itself also looks for a different variable SYSTEMD_IGNORE_CHROOT=1.
+         */
+        r = running_in_chroot();
+        if (r < 0)
+                log_debug_errno(r, "running_in_chroot(): %m");
+        else if (r > 0)
+                return true;
+
+        return false;
+}
+
 int dispatch_verb(int argc, char *argv[], const Verb verbs[], void *userdata) {
         const Verb *verb;
         const char *name;
         unsigned i;
-        int left;
+        int left, r;
 
         assert(verbs);
         assert(verbs[0].dispatch);
@@ -84,11 +126,20 @@ int dispatch_verb(int argc, char *argv[], const Verb verbs[], void *userdata) {
                 return -EINVAL;
         }
 
-        if ((verb->flags & VERB_NOCHROOT) && running_in_chroot() > 0) {
-                log_info("Running in chroot, ignoring request.");
+        if ((verb->flags & VERB_ONLINE_ONLY) && running_in_chroot_or_offline()) {
+                if (name)
+                        log_info("Running in chroot, ignoring request: %s", name);
+                else
+                        log_info("Running in chroot, ignoring request.");
                 return 0;
         }
 
+        if (verb->flags & VERB_MUST_BE_ROOT) {
+                r = must_be_root();
+                if (r < 0)
+                        return r;
+        }
+
         if (name)
                 return verb->dispatch(left, argv + optind, userdata);
         else {
index ed62f4d07b735f25bf0f90146be872659da6f680..d9259fc45fbb5bee0d06b2a96984f99cc2cdca64 100644 (file)
 ***/
 
 #define VERB_ANY ((unsigned) -1)
-#define VERB_DEFAULT 1U
-#define VERB_NOCHROOT 2U
+
+typedef enum VerbFlags {
+        VERB_DEFAULT      = 1 << 0,
+        VERB_ONLINE_ONLY  = 1 << 1,
+        VERB_MUST_BE_ROOT = 1 << 2,
+} VerbFlags;
 
 typedef struct {
         const char *verb;
         unsigned min_args, max_args;
-        unsigned flags;
+        VerbFlags flags;
         int (* const dispatch)(int argc, char *argv[], void *userdata);
 } Verb;
 
+bool running_in_chroot_or_offline(void);
+
 int dispatch_verb(int argc, char *argv[], const Verb verbs[], void *userdata);
index 28214fcf492a5df95910487321e82c465a792743..12d04eeffb4d1eb3217515357c382c24ca5626c3 100644 (file)
@@ -105,7 +105,7 @@ int fgetxattr_malloc(int fd, const char *name, char **value) {
 }
 
 ssize_t fgetxattrat_fake(int dirfd, const char *filename, const char *attribute, void *value, size_t size, int flags) {
-        char fn[strlen("/proc/self/fd/") + DECIMAL_STR_MAX(int) + 1];
+        char fn[STRLEN("/proc/self/fd/") + DECIMAL_STR_MAX(int) + 1];
         _cleanup_close_ int fd = -1;
         ssize_t l;
 
index e733e206e40cb76a035e72b2f8eb0d595029f379..48fdf97c7fd6ac0b5c753f43df8067b9eb417269 100644 (file)
@@ -61,19 +61,33 @@ static char *arg_path = NULL;
 static bool arg_print_path = false;
 static bool arg_touch_variables = true;
 
-static int find_esp_and_warn(uint32_t *part, uint64_t *pstart, uint64_t *psize, sd_id128_t *uuid) {
+static int acquire_esp(
+                bool unprivileged_mode,
+                uint32_t *ret_part,
+                uint64_t *ret_pstart,
+                uint64_t *ret_psize,
+                sd_id128_t *ret_uuid) {
+
+        char *np;
         int r;
 
-        r = find_esp(&arg_path, part, pstart, psize, uuid);
-        if (r == -ENOENT)
+        /* Find the ESP, and log about errors. Note that find_esp_and_warn() will log in all error cases on its own,
+         * except for ENOKEY (which is good, we want to show our own message in that case, suggesting use of --path=)
+         * and EACCESS (only when we request unprivileged mode; in this case we simply eat up the error here, so that
+         * --list and --status work too, without noise about this). */
+
+        r = find_esp_and_warn(arg_path, unprivileged_mode, &np, ret_part, ret_pstart, ret_psize, ret_uuid);
+        if (r == -ENOKEY)
                 return log_error_errno(r,
-                                       "Couldn't find EFI system partition. It is recommended to mount it to /boot.\n"
+                                       "Couldn't find EFI system partition. It is recommended to mount it to /boot or /efi.\n"
                                        "Alternatively, use --path= to specify path to mount point.");
-        else if (r < 0)
-                return log_error_errno(r,
-                                       "Couldn't find EFI system partition: %m");
+        if (r < 0)
+                return r;
+
+        free_and_replace(arg_path, np);
 
         log_debug("Using EFI System Partition at %s.", arg_path);
+
         return 0;
 }
 
@@ -483,7 +497,8 @@ static int copy_one_file(const char *esp_path, const char *name, bool force) {
                 char *v;
 
                 /* Create the EFI default boot loader name (specified for removable devices) */
-                v = strjoina(esp_path, "/EFI/BOOT/BOOT", name + strlen("systemd-boot"));
+                v = strjoina(esp_path, "/EFI/BOOT/BOOT",
+                             name + STRLEN("systemd-boot"));
                 ascii_strupper(strrchr(v, '/') + 1);
 
                 k = copy_file_with_version_check(p, v, force);
@@ -911,23 +926,17 @@ static void read_loader_efi_var(const char *name, char **var) {
                 log_warning_errno(r, "Failed to read EFI variable %s: %m", name);
 }
 
-static int must_be_root(void) {
-
-        if (geteuid() == 0)
-                return 0;
-
-        log_error("Need to be root.");
-        return -EPERM;
-}
-
 static int verb_status(int argc, char *argv[], void *userdata) {
 
         sd_id128_t uuid = SD_ID128_NULL;
         int r, k;
 
-        r = find_esp_and_warn(NULL, NULL, NULL, &uuid);
+        r = acquire_esp(geteuid() != 0, NULL, NULL, NULL, &uuid);
 
         if (arg_print_path) {
+                if (r == -EACCES) /* If we couldn't acquire the ESP path, log about access errors (which is the only
+                                   * error the find_esp_and_warn() won't log on its own) */
+                        return log_error_errno(r, "Failed to determine ESP: %m");
                 if (r < 0)
                         return r;
 
@@ -935,6 +944,9 @@ static int verb_status(int argc, char *argv[], void *userdata) {
                 return 0;
         }
 
+        r = 0; /* If we couldn't determine the path, then don't consider that a problem from here on, just show what we
+                * can show */
+
         if (is_efi_boot()) {
                 _cleanup_free_ char *fw_type = NULL, *fw_info = NULL, *loader = NULL, *loader_path = NULL;
                 sd_id128_t loader_part_uuid = SD_ID128_NULL;
@@ -979,9 +991,11 @@ static int verb_status(int argc, char *argv[], void *userdata) {
         } else
                 printf("System:\n    Not booted with EFI\n\n");
 
-        k = status_binaries(arg_path, uuid);
-        if (k < 0)
-                r = k;
+        if (arg_path) {
+                k = status_binaries(arg_path, uuid);
+                if (k < 0)
+                        r = k;
+        }
 
         if (is_efi_boot()) {
                 k = status_variables();
@@ -989,21 +1003,28 @@ static int verb_status(int argc, char *argv[], void *userdata) {
                         r = k;
         }
 
-        k = status_entries(arg_path, uuid);
-        if (k < 0)
-                r = k;
+        if (arg_path) {
+                k = status_entries(arg_path, uuid);
+                if (k < 0)
+                        r = k;
+        }
 
         return r;
 }
 
 static int verb_list(int argc, char *argv[], void *userdata) {
+        _cleanup_(boot_config_free) BootConfig config = {};
         sd_id128_t uuid = SD_ID128_NULL;
-        int r;
         unsigned n;
+        int r;
 
-        _cleanup_(boot_config_free) BootConfig config = {};
+        /* If we lack privileges we invoke find_esp_and_warn() in "unprivileged mode" here, which does two things: turn
+         * off logging about access errors and turn off potentially privileged device probing. Here we're interested in
+         * the latter but not the former, hence request the mode, and log about EACCES. */
 
-        r = find_esp_and_warn(NULL, NULL, NULL, &uuid);
+        r = acquire_esp(geteuid() != 0, NULL, NULL, NULL, &uuid);
+        if (r == -EACCES) /* We really need the ESP path for this call, hence also log about access errors */
+                return log_error_errno(r, "Failed to determine ESP: %m");
         if (r < 0)
                 return r;
 
@@ -1022,7 +1043,7 @@ static int verb_list(int argc, char *argv[], void *userdata) {
                        boot_entry_title(e),
                        ansi_normal(),
                        ansi_highlight_green(),
-                       n == config.default_entry ? " (default)" : "",
+                       n == (unsigned) config.default_entry ? " (default)" : "",
                        ansi_normal());
                 if (e->version)
                         printf("      version: %s\n", e->version);
@@ -1067,11 +1088,7 @@ static int verb_install(int argc, char *argv[], void *userdata) {
         bool install;
         int r;
 
-        r = must_be_root();
-        if (r < 0)
-                return r;
-
-        r = find_esp_and_warn(&part, &pstart, &psize, &uuid);
+        r = acquire_esp(false, &part, &pstart, &psize, &uuid);
         if (r < 0)
                 return r;
 
@@ -1102,11 +1119,7 @@ static int verb_remove(int argc, char *argv[], void *userdata) {
         sd_id128_t uuid = SD_ID128_NULL;
         int r;
 
-        r = must_be_root();
-        if (r < 0)
-                return r;
-
-        r = find_esp_and_warn(NULL, NULL, NULL, &uuid);
+        r = acquire_esp(false, NULL, NULL, NULL, &uuid);
         if (r < 0)
                 return r;
 
@@ -1126,12 +1139,12 @@ static int verb_remove(int argc, char *argv[], void *userdata) {
 static int bootctl_main(int argc, char *argv[]) {
 
         static const Verb verbs[] = {
-                { "help",            VERB_ANY, VERB_ANY, 0,            help         },
-                { "status",          VERB_ANY, 1,        VERB_DEFAULT, verb_status  },
-                { "list",            VERB_ANY, 1,        0,            verb_list    },
-                { "install",         VERB_ANY, 1,        0,            verb_install },
-                { "update",          VERB_ANY, 1,        0,            verb_install },
-                { "remove",          VERB_ANY, 1,        0,            verb_remove  },
+                { "help",            VERB_ANY, VERB_ANY, 0,                 help         },
+                { "status",          VERB_ANY, 1,        VERB_DEFAULT,      verb_status  },
+                { "list",            VERB_ANY, 1,        0,                 verb_list    },
+                { "install",         VERB_ANY, 1,        VERB_MUST_BE_ROOT, verb_install },
+                { "update",          VERB_ANY, 1,        VERB_MUST_BE_ROOT, verb_install },
+                { "remove",          VERB_ANY, 1,        VERB_MUST_BE_ROOT, verb_remove  },
                 {}
         };
 
index 94823587e870b9d8b57cc3968f67d7ac2019d765..be4fea84a2888759af674c97995d8e2fdaf5040e 100644 (file)
@@ -201,7 +201,7 @@ static EFI_STATUS tpm1_measure_to_pcr_and_event_log(const EFI_TCG *tcg, UINT32 p
 
         tcg_event = AllocateZeroPool(desc_len + sizeof(TCG_PCR_EVENT));
 
-        if (tcg_event == NULL)
+        if (!tcg_event)
                 return EFI_OUT_OF_RESOURCES;
 
         tcg_event->EventSize = desc_len;
@@ -255,7 +255,7 @@ static EFI_STATUS tpm2_measure_to_pcr_and_event_log(const EFI_TCG2 *tcg, UINT32
 
         tcg_event = AllocateZeroPool(sizeof(*tcg_event) - sizeof(tcg_event->Event) + desc_len + 1);
 
-        if (tcg_event == NULL)
+        if (!tcg_event)
                 return EFI_OUT_OF_RESOURCES;
 
         tcg_event->Size = sizeof(*tcg_event) - sizeof(tcg_event->Event) + desc_len + 1;
index 953816c46dc7a0a945737cc5879d84feed0b6d3e..7a8d6ba5ac7bc5d88888c428ea2c4c1c35265f6e 100644 (file)
@@ -19,6 +19,7 @@
 ***/
 
 #include <getopt.h>
+#include <stdio_ext.h>
 
 #include "sd-bus.h"
 
@@ -886,10 +887,8 @@ static int introspect(sd_bus *bus, char **argv) {
                 return log_oom();
 
         r = sd_bus_call_method(bus, argv[1], argv[2], "org.freedesktop.DBus.Introspectable", "Introspect", &error, &reply_xml, "");
-        if (r < 0) {
-                log_error("Failed to introspect object %s of service %s: %s", argv[2], argv[1], bus_error_message(&error, r));
-                return r;
-        }
+        if (r < 0)
+                return log_error_errno(r, "Failed to introspect object %s of service %s: %s", argv[2], argv[1], bus_error_message(&error, r));
 
         r = sd_bus_message_read(reply_xml, "s", &xml);
         if (r < 0)
@@ -914,10 +913,8 @@ static int introspect(sd_bus *bus, char **argv) {
                         continue;
 
                 r = sd_bus_call_method(bus, argv[1], argv[2], "org.freedesktop.DBus.Properties", "GetAll", &error, &reply, "s", m->interface);
-                if (r < 0) {
-                        log_error("%s", bus_error_message(&error, r));
-                        return r;
-                }
+                if (r < 0)
+                        return log_error_errno(r, "%s", bus_error_message(&error, r));
 
                 r = sd_bus_message_enter_container(reply, 'a', "{sv}");
                 if (r < 0)
@@ -949,22 +946,20 @@ static int introspect(sd_bus *bus, char **argv) {
                         if (!mf)
                                 return log_oom();
 
+                        (void) __fsetlocking(mf, FSETLOCKING_BYCALLER);
+
                         r = format_cmdline(reply, mf, false);
                         if (r < 0)
                                 return bus_log_parse_error(r);
 
-                        fclose(mf);
-                        mf = NULL;
+                        mf = safe_fclose(mf);
 
                         z = set_get(members, &((Member) {
                                                 .type = "property",
                                                 .interface = m->interface,
                                                 .name = (char*) name }));
-                        if (z) {
-                                free(z->value);
-                                z->value = buf;
-                                buf = NULL;
-                        }
+                        if (z)
+                                free_and_replace(z->value, buf);
 
                         r = sd_bus_message_exit_container(reply);
                         if (r < 0)
@@ -982,10 +977,10 @@ static int introspect(sd_bus *bus, char **argv) {
 
         pager_open(arg_no_pager, false);
 
-        name_width = strlen("NAME");
-        type_width = strlen("TYPE");
-        signature_width = strlen("SIGNATURE");
-        result_width = strlen("RESULT/VALUE");
+        name_width = STRLEN("NAME");
+        type_width = STRLEN("TYPE");
+        signature_width = STRLEN("SIGNATURE");
+        result_width = STRLEN("RESULT/VALUE");
 
         sorted = newa(Member*, set_size(members));
 
index cbcc8abb2b174fc64517f57c1aefe7471de30beb..28d5cc3917199d9cffef3b34dfa2a390efb12d07 100644 (file)
@@ -565,8 +565,8 @@ static void automount_trigger_notify(Unit *u, Unit *other) {
 static void automount_enter_waiting(Automount *a) {
         _cleanup_close_ int ioctl_fd = -1;
         int p[2] = { -1, -1 };
-        char name[sizeof("systemd-")-1 + DECIMAL_STR_MAX(pid_t) + 1];
-        char options[sizeof("fd=,pgrp=,minproto=5,maxproto=5,direct")-1
+        char name[STRLEN("systemd-") + DECIMAL_STR_MAX(pid_t) + 1];
+        char options[STRLEN("fd=,pgrp=,minproto=5,maxproto=5,direct")
                      + DECIMAL_STR_MAX(int) + DECIMAL_STR_MAX(gid_t) + 1];
         bool mounted = false;
         int r, dev_autofs_fd;
index 690e3a3ca2b37d61665b858ba46f014782d2d74b..abca4e112d0fb795bc646915f7ede5bc5d8814f3 100644 (file)
@@ -19,6 +19,7 @@
 ***/
 
 #include <arpa/inet.h>
+#include <stdio_ext.h>
 
 #include "af-list.h"
 #include "alloc-util.h"
@@ -687,6 +688,8 @@ int bus_cgroup_set_property(
                         if (!f)
                                 return -ENOMEM;
 
+                        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
                         fprintf(f, "%s=\n", name);
                         LIST_FOREACH(device_limits, a, c->io_device_limits)
                                         if (a->limits[iol_type] != cgroup_io_limit_defaults[iol_type])
@@ -764,7 +767,9 @@ int bus_cgroup_set_property(
                         if (!f)
                                 return -ENOMEM;
 
-                        fputs_unlocked("IODeviceWeight=\n", f);
+                        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
+                        fputs("IODeviceWeight=\n", f);
                         LIST_FOREACH(device_weights, a, c->io_device_weights)
                                 fprintf(f, "IODeviceWeight=%s %" PRIu64 "\n", a->path, a->weight);
 
@@ -912,13 +917,15 @@ int bus_cgroup_set_property(
                         if (!f)
                                 return -ENOMEM;
 
+                        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
                         if (read) {
-                                fputs_unlocked("BlockIOReadBandwidth=\n", f);
+                                fputs("BlockIOReadBandwidth=\n", f);
                                 LIST_FOREACH(device_bandwidths, a, c->blockio_device_bandwidths)
                                         if (a->rbps != CGROUP_LIMIT_MAX)
                                                 fprintf(f, "BlockIOReadBandwidth=%s %" PRIu64 "\n", a->path, a->rbps);
                         } else {
-                                fputs_unlocked("BlockIOWriteBandwidth=\n", f);
+                                fputs("BlockIOWriteBandwidth=\n", f);
                                 LIST_FOREACH(device_bandwidths, a, c->blockio_device_bandwidths)
                                         if (a->wbps != CGROUP_LIMIT_MAX)
                                                 fprintf(f, "BlockIOWriteBandwidth=%s %" PRIu64 "\n", a->path, a->wbps);
@@ -997,7 +1004,9 @@ int bus_cgroup_set_property(
                         if (!f)
                                 return -ENOMEM;
 
-                        fputs_unlocked("BlockIODeviceWeight=\n", f);
+                        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
+                        fputs("BlockIODeviceWeight=\n", f);
                         LIST_FOREACH(device_weights, a, c->blockio_device_weights)
                                 fprintf(f, "BlockIODeviceWeight=%s %" PRIu64 "\n", a->path, a->weight);
 
@@ -1229,7 +1238,9 @@ int bus_cgroup_set_property(
                         if (!f)
                                 return -ENOMEM;
 
-                        fputs_unlocked("DeviceAllow=\n", f);
+                        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
+                        fputs("DeviceAllow=\n", f);
                         LIST_FOREACH(device_allow, a, c->device_allow)
                                 fprintf(f, "DeviceAllow=%s %s%s%s\n", a->path, a->r ? "r" : "", a->w ? "w" : "", a->m ? "m" : "");
 
@@ -1399,8 +1410,10 @@ int bus_cgroup_set_property(
                         if (!f)
                                 return -ENOMEM;
 
-                        fputs_unlocked(name, f);
-                        fputs_unlocked("=\n", f);
+                        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
+                        fputs(name, f);
+                        fputs("=\n", f);
 
                         LIST_FOREACH(items, item, *list) {
                                 char buffer[CONST_MAX(INET_ADDRSTRLEN, INET6_ADDRSTRLEN)];
index 196de5658e9b4696f27aee88bc8da6132d5f63dc..be25b6e987c160efeda8e78bf90b27f965f9e684 100644 (file)
@@ -19,6 +19,7 @@
 ***/
 
 #include <sys/prctl.h>
+#include <stdio_ext.h>
 
 #if HAVE_SECCOMP
 #include <seccomp.h>
@@ -2202,6 +2203,8 @@ int bus_exec_context_set_transient_property(
                 if (!f)
                         return -ENOMEM;
 
+                (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
                 fputs("EnvironmentFile=\n", f);
 
                 STRV_FOREACH(i, c->environment_files) {
index 0f54b04f76cae2bb7d43e258e8bff6f4b5f6059a..d9cf212eb7afe1a3b60ac563c87b4fa58fd9cfe1 100644 (file)
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
+#include "alloc-util.h"
 #include "bus-util.h"
 #include "dbus-path.h"
+#include "list.h"
 #include "path.h"
+#include "path-util.h"
 #include "string-util.h"
 #include "unit.h"
 
@@ -85,3 +88,119 @@ const sd_bus_vtable bus_path_vtable[] = {
         SD_BUS_PROPERTY("Result", "s", property_get_result, offsetof(Path, result), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
         SD_BUS_VTABLE_END
 };
+
+static int bus_path_set_transient_property(
+                Path *p,
+                const char *name,
+                sd_bus_message *message,
+                UnitWriteFlags flags,
+                sd_bus_error *error) {
+
+        Unit *u = UNIT(p);
+        int r;
+
+        assert(p);
+        assert(name);
+        assert(message);
+
+        flags |= UNIT_PRIVATE;
+
+        if (STR_IN_SET(name, "PathExists", "PathExistsGlob", "PathChanged", "PathModified", "DirectoryNotEmpty")) {
+                const char *str;
+                PathType b;
+
+                b = path_type_from_string(name);
+                if (b < 0)
+                        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unknown path type");
+
+                r = sd_bus_message_read(message, "s", &str);
+                if (r < 0)
+                        return r;
+
+                if (!isempty(str) && !path_is_absolute(str))
+                        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Path is not absolute");
+
+                if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
+                        if (isempty(str)) {
+                                path_free_specs(p);
+                                unit_write_settingf(u, flags, name, "%s=", name);
+                        } else {
+                                _cleanup_free_ char *k;
+                                PathSpec *s;
+
+                                k = strdup(str);
+                                if (!k)
+                                        return -ENOMEM;
+
+                                s = new0(PathSpec, 1);
+                                if (!s)
+                                        return -ENOMEM;
+
+                                s->unit = u;
+                                s->path = path_kill_slashes(k);
+                                k = NULL;
+                                s->type = b;
+                                s->inotify_fd = -1;
+
+                                LIST_PREPEND(spec, p->specs, s);
+
+                                unit_write_settingf(u, flags|UNIT_ESCAPE_SPECIFIERS, name, "%s=%s", name, str);
+                        }
+                }
+
+                return 1;
+
+        } else if (streq(name, "MakeDirectory")) {
+                int b;
+
+                r = sd_bus_message_read(message, "b", &b);
+                if (r < 0)
+                        return r;
+
+                if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
+                        p->make_directory = b;
+                        unit_write_settingf(u, flags, name, "%s=%s", name, yes_no(b));
+                }
+
+                return 1;
+
+        } else if (streq(name, "DirectoryMode")) {
+                mode_t m;
+
+                r = sd_bus_message_read(message, "u", &m);
+                if (r < 0)
+                        return r;
+
+                if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
+                        p->directory_mode = m;
+                        unit_write_settingf(u, flags, name, "%s=%040o", name, m);
+                }
+
+                return 1;
+
+        } else if (streq(name, "Unit")) {
+                /* not implemented yet */
+                return 0;
+        }
+
+        return 0;
+}
+
+int bus_path_set_property(
+                Unit *u,
+                const char *name,
+                sd_bus_message *message,
+                UnitWriteFlags mode,
+                sd_bus_error *error) {
+
+        Path *p = PATH(u);
+
+        assert(p);
+        assert(name);
+        assert(message);
+
+        if (u->transient && u->load_state == UNIT_STUB)
+                return bus_path_set_transient_property(p, name, message, mode, error);
+
+        return 0;
+}
index 5e7e859b569ead2e9237e8d4f36382b205dc0b1c..ccd88c7f867098974b8f5a3618c3172202a3d46e 100644 (file)
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
+#include "sd-bus.h"
 
+#include "unit.h"
 
 extern const sd_bus_vtable bus_path_vtable[];
+
+int bus_path_set_property(Unit *u, const char *name, sd_bus_message *i, UnitWriteFlags flags, sd_bus_error *error);
index 8121765dadd7f26a264651032b0342158789ed58..018995212400066dda7818e7a5fc273dc03f9337 100644 (file)
@@ -18,6 +18,8 @@
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
+#include <stdio_ext.h>
+
 #include "alloc-util.h"
 #include "async.h"
 #include "bus-util.h"
@@ -313,7 +315,9 @@ static int bus_service_set_transient_property(
                         if (!f)
                                 return -ENOMEM;
 
-                        fputs_unlocked("ExecStart=\n", f);
+                        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
+                        fputs("ExecStart=\n", f);
 
                         LIST_FOREACH(command, c, s->exec_command[ci]) {
                                 _cleanup_free_ char *a = NULL, *t = NULL;
index e4403203ed5b4e07e1019fa090045970e73574e6..12cebc2ccccd58bd13263c1db5e77e1c49a60585 100644 (file)
@@ -200,7 +200,7 @@ static int bus_timer_set_transient_property(
 
                 b = timer_base_from_string(name);
                 if (b < 0)
-                        return -EINVAL;
+                        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unknown timer base");
 
                 r = sd_bus_message_read(message, "t", &u);
                 if (r < 0)
@@ -235,6 +235,8 @@ static int bus_timer_set_transient_property(
 
                 if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
                         r = calendar_spec_from_string(str, &c);
+                        if (r == -EINVAL)
+                                return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid calendar spec");
                         if (r < 0)
                                 return r;
 
@@ -285,7 +287,7 @@ static int bus_timer_set_transient_property(
 
                 return 1;
 
-        } else if (streq(name, "WakeSystem")) {
+        } else if (STR_IN_SET(name, "WakeSystem", "Persistent", "RemainAfterElapse")) {
                 int b;
 
                 r = sd_bus_message_read(message, "b", &b);
@@ -293,21 +295,13 @@ static int bus_timer_set_transient_property(
                         return r;
 
                 if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
-                        t->wake_system = b;
-                        unit_write_settingf(UNIT(t), flags, name, "%s=%s", name, yes_no(b));
-                }
-
-                return 1;
-
-        } else if (streq(name, "RemainAfterElapse")) {
-                int b;
+                        if (streq(name, "WakeSystem"))
+                                t->wake_system = b;
+                        else if (streq(name, "Persistent"))
+                                t->persistent = b;
+                        else /* RemainAfterElapse */
+                                t->remain_after_elapse = b;
 
-                r = sd_bus_message_read(message, "b", &b);
-                if (r < 0)
-                        return r;
-
-                if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
-                        t->remain_after_elapse = b;
                         unit_write_settingf(UNIT(t), flags, name, "%s=%s", name, yes_no(b));
                 }
 
index c4198ac40e982e762355e7fa8e2681bbf065cd9f..3da31bf870a6e28c45b75c592e7d177cdf33d274 100644 (file)
@@ -147,7 +147,7 @@ static int dynamic_user_acquire(Manager *m, const char *name, DynamicUser** ret)
 
 static int make_uid_symlinks(uid_t uid, const char *name, bool b) {
 
-        char path1[strlen("/run/systemd/dynamic-uid/direct:") + DECIMAL_STR_MAX(uid_t) + 1];
+        char path1[STRLEN("/run/systemd/dynamic-uid/direct:") + DECIMAL_STR_MAX(uid_t) + 1];
         const char *path2;
         int r = 0, k;
 
@@ -175,7 +175,7 @@ static int make_uid_symlinks(uid_t uid, const char *name, bool b) {
                         r = k;
         }
 
-        if (b && symlink(path1 + strlen("/run/systemd/dynamic-uid/direct:"), path2) < 0) {
+        if (b && symlink(path1 + STRLEN("/run/systemd/dynamic-uid/direct:"), path2) < 0) {
                 k = log_warning_errno(errno,  "Failed to symlink \"%s\": %m", path2);
                 if (r == 0)
                         r = k;
@@ -218,7 +218,7 @@ static int pick_uid(char **suggested_paths, const char *name, uid_t *ret_uid) {
         (void) mkdir("/run/systemd/dynamic-uid", 0755);
 
         for (;;) {
-                char lock_path[strlen("/run/systemd/dynamic-uid/") + DECIMAL_STR_MAX(uid_t) + 1];
+                char lock_path[STRLEN("/run/systemd/dynamic-uid/") + DECIMAL_STR_MAX(uid_t) + 1];
                 _cleanup_close_ int lock_fd = -1;
                 uid_t candidate;
                 ssize_t l;
@@ -411,7 +411,7 @@ static int dynamic_user_push(DynamicUser *d, uid_t uid, int lock_fd) {
 }
 
 static void unlink_uid_lock(int lock_fd, uid_t uid, const char *name) {
-        char lock_path[strlen("/run/systemd/dynamic-uid/") + DECIMAL_STR_MAX(uid_t) + 1];
+        char lock_path[STRLEN("/run/systemd/dynamic-uid/") + DECIMAL_STR_MAX(uid_t) + 1];
 
         if (lock_fd < 0)
                 return;
@@ -744,7 +744,7 @@ void dynamic_user_vacuum(Manager *m, bool close_user) {
 }
 
 int dynamic_user_lookup_uid(Manager *m, uid_t uid, char **ret) {
-        char lock_path[strlen("/run/systemd/dynamic-uid/") + DECIMAL_STR_MAX(uid_t) + 1];
+        char lock_path[STRLEN("/run/systemd/dynamic-uid/") + DECIMAL_STR_MAX(uid_t) + 1];
         _cleanup_free_ char *user = NULL;
         uid_t check_uid;
         int r;
index acd767cf77b43e00a3789d0d44495fe0afefed41..b91f654994a615180faaab58b338e7600aa46796 100644 (file)
@@ -3418,7 +3418,7 @@ static int exec_child(
                 return log_oom();
         }
 
-        if (_unlikely_(log_get_max_level() >= LOG_DEBUG)) {
+        if (DEBUG_LOGGING) {
                 _cleanup_free_ char *line;
 
                 line = exec_command_line(final_argv);
@@ -3854,7 +3854,7 @@ int exec_context_load_environment(Unit *unit, const ExecContext *c, char ***l) {
                                 p = strv_env_clean_with_callback(p, invalid_env, &info);
                         }
 
-                        if (r == NULL)
+                        if (!r)
                                 r = p;
                         else {
                                 char **m;
index 4335b7aaa2a4728eafeaaf7b05c1daac80ab9e62..80319622ad5ca6c5ac70b3544b62ff9cde29f057 100644 (file)
@@ -62,7 +62,7 @@ int ima_setup(void) {
         }
 
         /* attempt to write the name of the policy file into sysfs file */
-        if (write(imafd, IMA_POLICY_PATH, strlen(IMA_POLICY_PATH)) > 0)
+        if (write(imafd, IMA_POLICY_PATH, STRLEN(IMA_POLICY_PATH)) > 0)
                 goto done;
 
         /* fall back to copying the policy line-by-line */
index 240f3317780f1654e4bbe4b70991aa151634ef8c..5604312bc5e41cea5c8176049140051a0c787169 100644 (file)
@@ -249,6 +249,7 @@ Unit.ConditionHost,              config_parse_unit_condition_string, CONDITION_H
 Unit.ConditionACPower,           config_parse_unit_condition_string, CONDITION_AC_POWER,            offsetof(Unit, conditions)
 Unit.ConditionUser,              config_parse_unit_condition_string, CONDITION_USER,                offsetof(Unit, conditions)
 Unit.ConditionGroup,             config_parse_unit_condition_string, CONDITION_GROUP,               offsetof(Unit, conditions)
+Unit.ConditionControlGroupController,  config_parse_unit_condition_string, CONDITION_CONTROL_GROUP_CONTROLLER,   offsetof(Unit, conditions)
 Unit.ConditionNull,              config_parse_unit_condition_null,   0,                             offsetof(Unit, conditions)
 Unit.AssertPathExists,           config_parse_unit_condition_path,   CONDITION_PATH_EXISTS,         offsetof(Unit, asserts)
 Unit.AssertPathExistsGlob,       config_parse_unit_condition_path,   CONDITION_PATH_EXISTS_GLOB,    offsetof(Unit, asserts)
@@ -270,6 +271,7 @@ Unit.AssertHost,                 config_parse_unit_condition_string, CONDITION_H
 Unit.AssertACPower,              config_parse_unit_condition_string, CONDITION_AC_POWER,            offsetof(Unit, asserts)
 Unit.AssertUser,                 config_parse_unit_condition_string, CONDITION_USER,                offsetof(Unit, asserts)
 Unit.AssertGroup,                config_parse_unit_condition_string, CONDITION_GROUP,               offsetof(Unit, asserts)
+Unit.AssertControlGroupController,     config_parse_unit_condition_string, CONDITION_CONTROL_GROUP_CONTROLLER,   offsetof(Unit, asserts)
 Unit.AssertNull,                 config_parse_unit_condition_null,   0,                             offsetof(Unit, asserts)
 Unit.CollectMode,                config_parse_collect_mode,          0,                             offsetof(Unit, collect_mode)
 m4_dnl
index 767e97206c59edcaae3cdf6bfea2c29432cacdca..1b7424800cadd79524c67f82b7ddc6c34b7b4dd2 100644 (file)
@@ -119,16 +119,15 @@ int machine_id_setup(const char *root, sd_id128_t machine_id, sd_id128_t *ret) {
                         fd = open(etc_machine_id, O_RDONLY|O_CLOEXEC|O_NOCTTY);
                         if (fd < 0) {
                                 if (old_errno == EROFS && errno == ENOENT)
-                                        log_error_errno(errno,
+                                        return log_error_errno(errno,
                                                   "System cannot boot: Missing /etc/machine-id and /etc is mounted read-only.\n"
                                                   "Booting up is supported only when:\n"
                                                   "1) /etc/machine-id exists and is populated.\n"
                                                   "2) /etc/machine-id exists and is empty.\n"
                                                   "3) /etc/machine-id is missing and /etc is writable.\n");
                                 else
-                                        log_error_errno(errno, "Cannot open %s: %m", etc_machine_id);
-
-                                return -errno;
+                                        return log_error_errno(errno,
+                                                               "Cannot open %s: %m", etc_machine_id);
                         }
 
                         writable = false;
index 4995446c512374385ddd565546d685a4e26df8b4..c7174735638f510d79d0369c310be431733b74b4 100644 (file)
@@ -38,6 +38,7 @@
 
 #include "sd-bus.h"
 #include "sd-daemon.h"
+#include "sd-messages.h"
 
 #include "alloc-util.h"
 #include "architecture.h"
@@ -1335,20 +1336,23 @@ static int enforce_syscall_archs(Set *archs) {
 
 static int status_welcome(void) {
         _cleanup_free_ char *pretty_name = NULL, *ansi_color = NULL;
+        const char *fn;
         int r;
 
-        r = parse_env_file("/etc/os-release", NEWLINE,
-                           "PRETTY_NAME", &pretty_name,
-                           "ANSI_COLOR", &ansi_color,
-                           NULL);
-        if (r == -ENOENT)
-                r = parse_env_file("/usr/lib/os-release", NEWLINE,
+        if (arg_show_status <= 0)
+                return 0;
+
+        FOREACH_STRING(fn, "/etc/os-release", "/usr/lib/os-release") {
+                r = parse_env_file(fn, NEWLINE,
                                    "PRETTY_NAME", &pretty_name,
                                    "ANSI_COLOR", &ansi_color,
                                    NULL);
 
+                if (r != -ENOENT)
+                        break;
+        }
         if (r < 0 && r != -ENOENT)
-                log_warning_errno(r, "Failed to read os-release file: %m");
+                log_warning_errno(r, "Failed to read os-release file, ignoring: %m");
 
         if (log_get_show_color())
                 return status_printf(NULL, false, false,
@@ -1412,32 +1416,29 @@ static int bump_unix_max_dgram_qlen(void) {
 
 static int fixup_environment(void) {
         _cleanup_free_ char *term = NULL;
+        const char *t;
         int r;
 
-        /* We expect the environment to be set correctly
-         * if run inside a container. */
+        /* Only fix up the environment when we are started as PID 1 */
+        if (getpid_cached() != 1)
+                return 0;
+
+        /* We expect the environment to be set correctly if run inside a container. */
         if (detect_container() > 0)
                 return 0;
 
-        /* When started as PID1, the kernel uses /dev/console
-         * for our stdios and uses TERM=linux whatever the
-         * backend device used by the console. We try to make
-         * a better guess here since some consoles might not
-         * have support for color mode for example.
+        /* When started as PID1, the kernel uses /dev/console for our stdios and uses TERM=linux whatever the backend
+         * device used by the console. We try to make a better guess here since some consoles might not have support
+         * for color mode for example.
          *
-         * However if TERM was configured through the kernel
-         * command line then leave it alone. */
-
+         * However if TERM was configured through the kernel command line then leave it alone. */
         r = proc_cmdline_get_key("TERM", 0, &term);
         if (r < 0)
                 return r;
-        if (r == 0) {
-                term = strdup(default_term_for_tty("/dev/console"));
-                if (!term)
-                        return -ENOMEM;
-        }
 
-        if (setenv("TERM", term, 1) < 0)
+        t = term ?: default_term_for_tty("/dev/console");
+
+        if (setenv("TERM", t, 1) < 0)
                 return -errno;
 
         return 0;
@@ -1479,7 +1480,7 @@ static int become_shutdown(
         int r;
 
         assert(shutdown_verb);
-        assert(command_line[pos] == NULL);
+        assert(!command_line[pos]);
         env_block = strv_copy(environ);
 
         xsprintf(log_level, "%d", log_get_max_level());
@@ -1888,11 +1889,13 @@ static void log_execution_mode(bool *ret_first_boot) {
                                 log_info("Running with unpopulated /etc.");
                 }
         } else {
-                _cleanup_free_ char *t;
+                if (DEBUG_LOGGING) {
+                        _cleanup_free_ char *t;
 
-                t = uid_to_name(getuid());
-                log_debug(PACKAGE_STRING " running in %suser mode for user " UID_FMT "/%s. (" SYSTEMD_FEATURES ")",
-                          arg_action == ACTION_TEST ? " test" : "", getuid(), strna(t));
+                        t = uid_to_name(getuid());
+                        log_debug(PACKAGE_STRING " running in %suser mode for user " UID_FMT "/%s. (" SYSTEMD_FEATURES ")",
+                                  arg_action == ACTION_TEST ? " test" : "", getuid(), strna(t));
+                }
 
                 *ret_first_boot = false;
         }
@@ -1915,31 +1918,42 @@ static int initialize_runtime(
          * - Some only apply when we first start up, but not when we reexecute
          */
 
-        if (arg_system && !skip_setup) {
-                if (arg_show_status > 0)
+        if (arg_action != ACTION_RUN)
+                return 0;
+
+        if (arg_system) {
+                /* Make sure we leave a core dump without panicing the kernel. */
+                install_crash_handler();
+
+                if (!skip_setup) {
+                        r = mount_cgroup_controllers(arg_join_controllers);
+                        if (r < 0) {
+                                *ret_error_message = "Failed to mount cgroup hierarchies";
+                                return r;
+                        }
+
                         status_welcome();
+                        hostname_setup();
+                        machine_id_setup(NULL, arg_machine_id, NULL);
+                        loopback_setup();
+                        bump_unix_max_dgram_qlen();
+                        test_usr();
+                        write_container_id();
+                }
 
-                hostname_setup();
-                machine_id_setup(NULL, arg_machine_id, NULL);
-                loopback_setup();
-                bump_unix_max_dgram_qlen();
-                test_usr();
-                write_container_id();
-        }
+                if (arg_watchdog_device) {
+                        r = watchdog_set_device(arg_watchdog_device);
+                        if (r < 0)
+                                log_warning_errno(r, "Failed to set watchdog device to %s, ignoring: %m", arg_watchdog_device);
+                }
 
-        if (arg_system && arg_watchdog_device) {
-                r = watchdog_set_device(arg_watchdog_device);
-                if (r < 0)
-                        log_warning_errno(r, "Failed to set watchdog device to %s, ignoring: %m",
-                                          arg_watchdog_device);
+                if (arg_runtime_watchdog > 0 && arg_runtime_watchdog != USEC_INFINITY)
+                        watchdog_set_timeout(&arg_runtime_watchdog);
         }
 
-        if (arg_system && arg_runtime_watchdog > 0 && arg_runtime_watchdog != USEC_INFINITY)
-                watchdog_set_timeout(&arg_runtime_watchdog);
-
         if (arg_timer_slack_nsec != NSEC_INFINITY)
                 if (prctl(PR_SET_TIMERSLACK, arg_timer_slack_nsec) < 0)
-                        log_error_errno(errno, "Failed to adjust timer slack: %m");
+                        log_warning_errno(errno, "Failed to adjust timer slack, ignoring: %m");
 
         if (arg_system && !cap_test_all(arg_capability_bounding_set)) {
                 r = capability_bounding_set_drop_usermode(arg_capability_bounding_set);
@@ -2052,51 +2066,261 @@ static void free_arguments(void) {
         arg_syscall_archs = set_free(arg_syscall_archs);
 }
 
+static int load_configuration(int argc, char **argv, const char **ret_error_message) {
+        int r;
+
+        assert(ret_error_message);
+
+        r = initialize_join_controllers();
+        if (r < 0) {
+                *ret_error_message = "Failed to initialize cgroup controller joining table";
+                return r;
+        }
+
+        arg_default_tasks_max = system_tasks_max_scale(DEFAULT_TASKS_MAX_PERCENTAGE, 100U);
+
+        r = parse_config_file();
+        if (r < 0) {
+                *ret_error_message = "Failed to parse config file";
+                return r;
+        }
+
+        if (arg_system) {
+                r = proc_cmdline_parse(parse_proc_cmdline_item, NULL, 0);
+                if (r < 0)
+                        log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m");
+        }
+
+        /* Note that this also parses bits from the kernel command line, including "debug". */
+        log_parse_environment();
+
+        r = parse_argv(argc, argv);
+        if (r < 0) {
+                *ret_error_message = "Failed to parse commandline arguments";
+                return r;
+        }
+
+        /* Initialize default unit */
+        if (!arg_default_unit) {
+                arg_default_unit = strdup(SPECIAL_DEFAULT_TARGET);
+                if (!arg_default_unit) {
+                        *ret_error_message = "Failed to set default unit";
+                        return log_oom();
+                }
+        }
+
+        /* Initialize the show status setting if it hasn't been set explicitly yet */
+        if (arg_show_status == _SHOW_STATUS_UNSET)
+                arg_show_status = SHOW_STATUS_YES;
+
+        return 0;
+}
+
+static int safety_checks(void) {
+
+        if (getpid_cached() == 1 &&
+            arg_action != ACTION_RUN) {
+                log_error("Unsupported execution mode while PID 1.");
+                return -EPERM;
+        }
+
+        if (getpid_cached() == 1 &&
+            !arg_system) {
+                log_error("Can't run --user mode as PID 1.");
+                return -EPERM;
+        }
+
+        if (arg_action == ACTION_RUN &&
+            arg_system &&
+            getpid_cached() != 1) {
+                log_error("Can't run system mode unless PID 1.");
+                return -EPERM;
+        }
+
+        if (arg_action == ACTION_TEST &&
+            geteuid() == 0) {
+                log_error("Don't run test mode as root.");
+                return -EPERM;
+        }
+
+        if (!arg_system &&
+            arg_action == ACTION_RUN &&
+            sd_booted() <= 0) {
+                log_error("Trying to run as user instance, but the system has not been booted with systemd.");
+                return -EOPNOTSUPP;
+        }
+
+        if (!arg_system &&
+            arg_action == ACTION_RUN &&
+            !getenv("XDG_RUNTIME_DIR")) {
+                log_error("Trying to run as user instance, but $XDG_RUNTIME_DIR is not set.");
+                return -EUNATCH;
+        }
+
+        if (arg_system &&
+            arg_action == ACTION_RUN &&
+            running_in_chroot() > 0) {
+                log_error("Cannot be run in a chroot() environment.");
+                return -EOPNOTSUPP;
+        }
+
+        return 0;
+}
+
+static int initialize_security(
+                bool *loaded_policy,
+                dual_timestamp *security_start_timestamp,
+                dual_timestamp *security_finish_timestamp,
+                const char **ret_error_message) {
+
+        int r;
+
+        assert(loaded_policy);
+        assert(security_start_timestamp);
+        assert(security_finish_timestamp);
+        assert(ret_error_message);
+
+        dual_timestamp_get(security_start_timestamp);
+
+        r = mac_selinux_setup(loaded_policy) < 0;
+        if (r < 0) {
+                *ret_error_message = "Failed to load SELinux policy";
+                return r;
+        }
+
+        r = mac_smack_setup(loaded_policy);
+        if (r < 0) {
+                *ret_error_message = "Failed to load SMACK policy";
+                return r;
+        }
+
+        r = ima_setup();
+        if (r < 0) {
+                *ret_error_message = "Failed to load IMA policy";
+                return r;
+        }
+
+        dual_timestamp_get(security_finish_timestamp);
+        return 0;
+}
+
+static void test_summary(Manager *m) {
+        assert(m);
+
+        printf("-> By units:\n");
+        manager_dump_units(m, stdout, "\t");
+
+        printf("-> By jobs:\n");
+        manager_dump_jobs(m, stdout, "\t");
+}
+
+static void log_taint_string(Manager *m) {
+        _cleanup_free_ char *taint = NULL;
+
+        assert(m);
+
+        if (!arg_system)
+                return;
+
+        taint = manager_taint_string(m);
+        if (isempty(taint))
+                return;
+
+        log_struct(LOG_NOTICE,
+                   LOG_MESSAGE("System is tainted: %s", taint),
+                   "TAINT=%s", taint,
+                   "MESSAGE_ID=" SD_MESSAGE_TAINTED_STR,
+                   NULL);
+}
+
+static int collect_fds(FDSet **ret_fds, const char **ret_error_message) {
+        int r;
+
+        assert(ret_fds);
+        assert(ret_error_message);
+
+        r = fdset_new_fill(ret_fds);
+        if (r < 0) {
+                *ret_error_message = "Failed to allocate fd set";
+                return log_emergency_errno(r, "Failed to allocate fd set: %m");
+        }
+
+        fdset_cloexec(*ret_fds, true);
+
+        if (arg_serialization)
+                assert_se(fdset_remove(*ret_fds, fileno(arg_serialization)) >= 0);
+
+        return 0;
+}
+
+static void setup_console_terminal(bool skip_setup) {
+
+        if (!arg_system)
+                return;
+
+        /* Become a session leader if we aren't one yet. */
+        (void) setsid();
+
+        /* If we are init, we connect stdin/stdout/stderr to /dev/null and make sure we don't have a controlling
+         * tty. */
+        (void) release_terminal();
+
+        /* Reset the console, but only if this is really init and we are freshly booted */
+        if (getpid_cached() == 1 && !skip_setup)
+                (void) console_setup();
+}
+
+static bool early_skip_setup_check(int argc, char *argv[]) {
+        bool found_deserialize = false;
+        int i;
+
+        /* Determine if this is a reexecution or normal bootup. We do the full command line parsing much later, so
+         * let's just have a quick peek here. Note that if we have switched root, do all the special setup things
+         * anyway, even if in that case we also do deserialization. */
+
+        for (i = 1; i < argc; i++) {
+
+                if (streq(argv[i], "--switched-root"))
+                        return false; /* If we switched root, don't skip the setup. */
+                else if (streq(argv[i], "--deserialize"))
+                        found_deserialize = true;
+        }
+
+        return found_deserialize; /* When we are deserializing, then we are reexecuting, hence avoid the extensive setup */
+}
+
 int main(int argc, char *argv[]) {
-        Manager *m = NULL;
-        int r, retval = EXIT_FAILURE;
+
+        dual_timestamp initrd_timestamp = DUAL_TIMESTAMP_NULL, userspace_timestamp = DUAL_TIMESTAMP_NULL, kernel_timestamp = DUAL_TIMESTAMP_NULL,
+                security_start_timestamp = DUAL_TIMESTAMP_NULL, security_finish_timestamp = DUAL_TIMESTAMP_NULL;
+        struct rlimit saved_rlimit_nofile = RLIMIT_MAKE_CONST(0), saved_rlimit_memlock = RLIMIT_MAKE_CONST((rlim_t) -1);
+        bool skip_setup, loaded_policy = false, queue_default_job = false, first_boot = false, reexecute = false;
+        char *switch_root_dir = NULL, *switch_root_init = NULL;
         usec_t before_startup, after_startup;
+        static char systemd[] = "systemd";
         char timespan[FORMAT_TIMESPAN_MAX];
+        const char *shutdown_verb = NULL, *error_message = NULL;
+        int r, retval = EXIT_FAILURE;
+        Manager *m = NULL;
         FDSet *fds = NULL;
-        bool reexecute = false;
-        const char *shutdown_verb = NULL;
-        dual_timestamp initrd_timestamp = DUAL_TIMESTAMP_NULL;
-        dual_timestamp userspace_timestamp = DUAL_TIMESTAMP_NULL;
-        dual_timestamp kernel_timestamp = DUAL_TIMESTAMP_NULL;
-        dual_timestamp security_start_timestamp = DUAL_TIMESTAMP_NULL;
-        dual_timestamp security_finish_timestamp = DUAL_TIMESTAMP_NULL;
-        static char systemd[] = "systemd";
-        bool skip_setup = false;
-        bool loaded_policy = false;
-        bool queue_default_job = false;
-        bool first_boot = false;
-        char *switch_root_dir = NULL, *switch_root_init = NULL;
-        struct rlimit saved_rlimit_nofile = RLIMIT_MAKE_CONST(0), saved_rlimit_memlock = RLIMIT_MAKE_CONST((rlim_t) -1);
-        const char *error_message = NULL;
 
+        /* SysV compatibility: redirect init → telinit */
         redirect_telinit(argc, argv);
 
+        /* Take timestamps early on */
         dual_timestamp_from_monotonic(&kernel_timestamp, 0);
         dual_timestamp_get(&userspace_timestamp);
 
-        /* Determine if this is a reexecution or normal bootup. We do
-         * the full command line parsing much later, so let's just
-         * have a quick peek here. */
-        if (strv_find(argv+1, "--deserialize"))
-                skip_setup = true;
+        /* Figure out whether we need to do initialize the system, or if we already did that because we are
+         * reexecuting */
+        skip_setup = early_skip_setup_check(argc, argv);
 
-        /* If we have switched root, do all the special setup
-         * things */
-        if (strv_find(argv+1, "--switched-root"))
-                skip_setup = false;
-
-        /* If we get started via the /sbin/init symlink then we are
-           called 'init'. After a subsequent reexecution we are then
-           called 'systemd'. That is confusing, hence let's call us
-           systemd right-away. */
+        /* If we get started via the /sbin/init symlink then we are called 'init'. After a subsequent reexecution we
+         * are then called 'systemd'. That is confusing, hence let's call us systemd right-away. */
         program_invocation_short_name = systemd;
         (void) prctl(PR_SET_NAME, systemd);
 
+        /* Save the original command line */
         saved_argv = argv;
         saved_argc = argc;
 
@@ -2130,18 +2354,13 @@ int main(int argc, char *argv[]) {
                                 goto finish;
                         }
 
-                        dual_timestamp_get(&security_start_timestamp);
-                        if (mac_selinux_setup(&loaded_policy) < 0) {
-                                error_message = "Failed to load SELinux policy";
-                                goto finish;
-                        } else if (mac_smack_setup(&loaded_policy) < 0) {
-                                error_message = "Failed to load SMACK policy";
-                                goto finish;
-                        } else if (ima_setup() < 0) {
-                                error_message = "Failed to load IMA policy";
+                        r = initialize_security(
+                                        &loaded_policy,
+                                        &security_start_timestamp,
+                                        &security_finish_timestamp,
+                                        &error_message);
+                        if (r < 0)
                                 goto finish;
-                        }
-                        dual_timestamp_get(&security_finish_timestamp);
                 }
 
                 if (mac_selinux_init() < 0) {
@@ -2186,11 +2405,14 @@ int main(int argc, char *argv[]) {
 
         initialize_coredump(skip_setup);
 
+        r = fixup_environment();
+        if (r < 0) {
+                log_emergency_errno(r, "Failed to fix up PID 1 environment: %m");
+                error_message = "Failed to fix up PID1 environment";
+                goto finish;
+        }
+
         if (arg_system) {
-                if (fixup_environment() < 0) {
-                        error_message = "Failed to fix up PID1 environment";
-                        goto finish;
-                }
 
                 /* Try to figure out if we can use colors with the console. No
                  * need to do that for user instances since they never log
@@ -2201,12 +2423,6 @@ int main(int argc, char *argv[]) {
                         log_warning_errno(r, "Failed to redirect standard streams to /dev/null: %m");
         }
 
-        r = initialize_join_controllers();
-        if (r < 0) {
-                error_message = "Failed to initialize cgroup controllers";
-                goto finish;
-        }
-
         /* Mount /proc, /sys and friends, so that /proc/cmdline and
          * /proc/$PID/fd is available. */
         if (getpid_cached() == 1) {
@@ -2226,62 +2442,19 @@ int main(int argc, char *argv[]) {
         (void) reset_all_signal_handlers();
         (void) ignore_signals(SIGNALS_IGNORE, -1);
 
-        arg_default_tasks_max = system_tasks_max_scale(DEFAULT_TASKS_MAX_PERCENTAGE, 100U);
-
-        if (parse_config_file() < 0) {
-                error_message = "Failed to parse config file";
-                goto finish;
-        }
-
-        if (arg_system) {
-                r = proc_cmdline_parse(parse_proc_cmdline_item, NULL, 0);
-                if (r < 0)
-                        log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m");
-        }
-
-        /* Note that this also parses bits from the kernel command
-         * line, including "debug". */
-        log_parse_environment();
-
-        if (parse_argv(argc, argv) < 0) {
-                error_message = "Failed to parse commandline arguments";
-                goto finish;
-        }
-
-        /* Initialize default unit */
-        if (!arg_default_unit) {
-                arg_default_unit = strdup(SPECIAL_DEFAULT_TARGET);
-                if (!arg_default_unit) {
-                        r = log_oom();
-                        error_message = "Failed to set default unit";
-                        goto finish;
-                }
-        }
-
-        if (arg_action == ACTION_TEST &&
-            geteuid() == 0) {
-                log_error("Don't run test mode as root.");
-                goto finish;
-        }
-
-        if (!arg_system &&
-            arg_action == ACTION_RUN &&
-            sd_booted() <= 0) {
-                log_error("Trying to run as user instance, but the system has not been booted with systemd.");
+        r = load_configuration(argc, argv, &error_message);
+        if (r < 0)
                 goto finish;
-        }
 
-        if (arg_system &&
-            arg_action == ACTION_RUN &&
-            running_in_chroot() > 0) {
-                log_error("Cannot be run in a chroot() environment.");
+        r = safety_checks();
+        if (r < 0)
                 goto finish;
-        }
 
-        if (IN_SET(arg_action, ACTION_TEST, ACTION_HELP)) {
+        if (IN_SET(arg_action, ACTION_TEST, ACTION_HELP, ACTION_DUMP_CONFIGURATION_ITEMS))
                 pager_open(arg_no_pager, false);
+
+        if (arg_action != ACTION_RUN)
                 skip_setup = true;
-        }
 
         if (arg_action == ACTION_HELP) {
                 retval = help();
@@ -2290,83 +2463,41 @@ int main(int argc, char *argv[]) {
                 retval = version();
                 goto finish;
         } else if (arg_action == ACTION_DUMP_CONFIGURATION_ITEMS) {
-                pager_open(arg_no_pager, false);
                 unit_dump_config_items(stdout);
                 retval = EXIT_SUCCESS;
                 goto finish;
         }
 
-        if (!arg_system &&
-            !getenv("XDG_RUNTIME_DIR")) {
-                log_error("Trying to run as user instance, but $XDG_RUNTIME_DIR is not set.");
-                goto finish;
-        }
-
         assert_se(IN_SET(arg_action, ACTION_RUN, ACTION_TEST));
 
-        /* Close logging fds, in order not to confuse fdset below */
-        log_close();
-
-        /* Remember open file descriptors for later deserialization */
-        if (arg_action == ACTION_RUN) {
-                r = fdset_new_fill(&fds);
-                if (r < 0) {
-                        log_emergency_errno(r, "Failed to allocate fd set: %m");
-                        error_message = "Failed to allocate fd set";
-                        goto finish;
-                } else
-                        fdset_cloexec(fds, true);
-
-                if (arg_serialization)
-                        assert_se(fdset_remove(fds, fileno(arg_serialization)) >= 0);
-
-                if (arg_system)
-                        /* Become a session leader if we aren't one yet. */
-                        setsid();
-        }
-
         /* Move out of the way, so that we won't block unmounts */
         assert_se(chdir("/") == 0);
 
-        /* Reset the console, but only if this is really init and we
-         * are freshly booted */
-        if (arg_system && arg_action == ACTION_RUN) {
-
-                /* If we are init, we connect stdin/stdout/stderr to
-                 * /dev/null and make sure we don't have a controlling
-                 * tty. */
-                release_terminal();
-
-                if (getpid_cached() == 1 && !skip_setup)
-                        console_setup();
-        }
-
-        /* Open the logging devices, if possible and necessary */
-        log_open();
-
-        if (arg_show_status == _SHOW_STATUS_UNSET)
-                arg_show_status = SHOW_STATUS_YES;
+        if (arg_action == ACTION_RUN) {
 
-        /* Make sure we leave a core dump without panicing the
-         * kernel. */
-        if (getpid_cached() == 1) {
-                install_crash_handler();
+                /* Close logging fds, in order not to confuse collecting passed fds and terminal logic below */
+                log_close();
 
-                r = mount_cgroup_controllers(arg_join_controllers);
+                /* Remember open file descriptors for later deserialization */
+                r = collect_fds(&fds, &error_message);
                 if (r < 0)
                         goto finish;
+
+                /* Give up any control of the console, but make sure its initialized. */
+                setup_console_terminal(skip_setup);
+
+                /* Open the logging devices, if possible and necessary */
+                log_open();
         }
 
         log_execution_mode(&first_boot);
 
-        if (arg_action == ACTION_RUN) {
-                r = initialize_runtime(skip_setup,
-                                       &saved_rlimit_nofile,
-                                       &saved_rlimit_memlock,
-                                       &error_message);
-                if (r < 0)
-                        goto finish;
-        }
+        r = initialize_runtime(skip_setup,
+                               &saved_rlimit_nofile,
+                               &saved_rlimit_memlock,
+                               &error_message);
+        if (r < 0)
+                goto finish;
 
         r = manager_new(arg_system ? UNIT_FILE_SYSTEM : UNIT_FILE_USER,
                         arg_action == ACTION_TEST ? MANAGER_TEST_FULL : 0,
@@ -2415,20 +2546,10 @@ int main(int argc, char *argv[]) {
                  "Loaded units and determined initial transaction in %s.",
                  format_timespan(timespan, sizeof(timespan), after_startup - before_startup, 100 * USEC_PER_MSEC));
 
-        if (arg_system) {
-                _cleanup_free_ char *taint;
-
-                taint = manager_taint_string(m);
-                if (!isempty(taint))
-                        log_notice("System is tainted: %s", taint);
-        }
+        log_taint_string(m);
 
         if (arg_action == ACTION_TEST) {
-                printf("-> By units:\n");
-                manager_dump_units(m, stdout, "\t");
-
-                printf("-> By jobs:\n");
-                manager_dump_jobs(m, stdout, "\t");
+                test_summary(m);
                 retval = EXIT_SUCCESS;
                 goto finish;
         }
index 0681bbbbd240eac35367967806e61dd9a87ea687..15720ada24f223b3b7de3cbb8f86974ec11e2361 100644 (file)
@@ -140,7 +140,7 @@ static void manager_watch_jobs_in_progress(Manager *m) {
         (void) sd_event_source_set_description(m->jobs_in_progress_event_source, "manager-jobs-in-progress");
 }
 
-#define CYLON_BUFFER_EXTRA (2*(sizeof(ANSI_RED)-1) + sizeof(ANSI_HIGHLIGHT_RED)-1 + 2*(sizeof(ANSI_NORMAL)-1))
+#define CYLON_BUFFER_EXTRA (2*STRLEN(ANSI_RED) + STRLEN(ANSI_HIGHLIGHT_RED) + 2*STRLEN(ANSI_NORMAL))
 
 static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos) {
         char *p = buffer;
@@ -1754,7 +1754,7 @@ int manager_get_dump_string(Manager *m, char **ret) {
         if (!f)
                 return -errno;
 
-        __fsetlocking(f, FSETLOCKING_BYCALLER);
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
 
         manager_dump(m, f, NULL);
 
@@ -1887,7 +1887,7 @@ static void manager_invoke_notify_message(Manager *m, Unit *u, pid_t pid, const
 
         if (UNIT_VTABLE(u)->notify_message)
                 UNIT_VTABLE(u)->notify_message(u, pid, tags, fds);
-        else if (_unlikely_(log_get_max_level() >= LOG_DEBUG)) {
+        else if (DEBUG_LOGGING) {
                 _cleanup_free_ char *x = NULL, *y = NULL;
 
                 x = cescape(buf);
@@ -2651,7 +2651,7 @@ int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool switching_root) {
 
                 t = manager_timestamp_to_string(q);
                 {
-                        char field[strlen(t) + strlen("-timestamp") + 1];
+                        char field[strlen(t) + STRLEN("-timestamp") + 1];
                         strcpy(stpcpy(field, t), "-timestamp");
                         dual_timestamp_serialize(f, field, m->timestamps + q);
                 }
@@ -2704,15 +2704,15 @@ int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool switching_root) {
         manager_serialize_uid_refs(m, f);
         manager_serialize_gid_refs(m, f);
 
-        fputc_unlocked('\n', f);
+        (void) fputc('\n', f);
 
         HASHMAP_FOREACH_KEY(u, t, m->units, i) {
                 if (u->id != t)
                         continue;
 
                 /* Start marker */
-                fputs_unlocked(u->id, f);
-                fputc_unlocked('\n', f);
+                fputs(u->id, f);
+                fputc('\n', f);
 
                 r = unit_serialize(u, f, fds, !switching_root);
                 if (r < 0) {
@@ -3872,14 +3872,17 @@ char *manager_taint_string(Manager *m) {
         char *buf, *e;
         int r;
 
+        /* Returns a "taint string", e.g. "local-hwclock:var-run-bad".
+         * Only things that are detected at runtime should be tagged
+         * here. For stuff that is set during compilation, emit a warning
+         * in the configuration phase. */
+
         assert(m);
 
         buf = new(char, sizeof("split-usr:"
                                "cgroups-missing:"
                                "local-hwclock:"
                                "var-run-bad:"
-                               "weird-nobody-user:"
-                               "weird-nobody-group:"
                                "overflowuid-not-65534:"
                                "overflowgid-not-65534:"));
         if (!buf)
@@ -3901,12 +3904,6 @@ char *manager_taint_string(Manager *m) {
         if (r < 0 || !PATH_IN_SET(destination, "../run", "/run"))
                 e = stpcpy(e, "var-run-bad:");
 
-        if (!streq(NOBODY_USER_NAME, "nobody"))
-                e = stpcpy(e, "weird-nobody-user:");
-
-        if (!streq(NOBODY_GROUP_NAME, "nobody"))
-                e = stpcpy(e, "weird-nobody-group:");
-
         r = read_one_line_file("/proc/sys/kernel/overflowuid", &overflowuid);
         if (r >= 0 && !streq(overflowuid, "65534"))
                 e = stpcpy(e, "overflowuid-not-65534:");
index 7171d8fda436c80442f28c2d41a60a3dc2c39239..a0c5f5aaae26ca37d8b7552c1b48e35fafa91ac6 100644 (file)
@@ -155,10 +155,12 @@ bool mount_point_ignore(const char *path) {
 }
 
 static int mount_one(const MountPoint *p, bool relabel) {
-        int r;
+        int r, priority;
 
         assert(p);
 
+        priority = (p->mode & MNT_FATAL) ? LOG_ERR : LOG_DEBUG;
+
         if (p->condition_fn && !p->condition_fn())
                 return 0;
 
@@ -168,7 +170,7 @@ static int mount_one(const MountPoint *p, bool relabel) {
 
         r = path_is_mount_point(p->where, NULL, AT_SYMLINK_FOLLOW);
         if (r < 0 && r != -ENOENT) {
-                log_full_errno((p->mode & MNT_FATAL) ? LOG_ERR : LOG_DEBUG, r, "Failed to determine whether %s is a mount point: %m", p->where);
+                log_full_errno(priority, r, "Failed to determine whether %s is a mount point: %m", p->where);
                 return (p->mode & MNT_FATAL) ? r : 0;
         }
         if (r > 0)
@@ -196,7 +198,7 @@ static int mount_one(const MountPoint *p, bool relabel) {
                   p->type,
                   p->flags,
                   p->options) < 0) {
-                log_full_errno((p->mode & MNT_FATAL) ? LOG_ERR : LOG_DEBUG, errno, "Failed to mount %s at %s: %m", p->type, p->where);
+                log_full_errno(priority, errno, "Failed to mount %s at %s: %m", p->type, p->where);
                 return (p->mode & MNT_FATAL) ? -errno : 0;
         }
 
@@ -205,10 +207,13 @@ static int mount_one(const MountPoint *p, bool relabel) {
                 (void) label_fix(p->where, false, false);
 
         if (p->mode & MNT_CHECK_WRITABLE) {
-                r = access(p->where, W_OK);
-                if (r < 0) {
+                if (access(p->where, W_OK) < 0) {
+                        r = -errno;
+
                         (void) umount(p->where);
                         (void) rmdir(p->where);
+
+                        log_full_errno(priority, r, "Mount point %s not writable after mounting: %m", p->where);
                         return (p->mode & MNT_FATAL) ? r : 0;
                 }
         }
index 6b22451a08a6f7c4a691de8e22c090b1b9c1695d..8a5ec0a72f695bd86ab63660b85bb8d3a984a51d 100644 (file)
@@ -772,6 +772,9 @@ const UnitVTable path_vtable = {
                 "Unit\0"
                 "Path\0"
                 "Install\0",
+        .private_section = "Path",
+
+        .can_transient = true,
 
         .init = path_init,
         .done = path_done,
@@ -794,5 +797,6 @@ const UnitVTable path_vtable = {
 
         .reset_failed = path_reset_failed,
 
-        .bus_vtable = bus_path_vtable
+        .bus_vtable = bus_path_vtable,
+        .bus_set_property = bus_path_set_property,
 };
index 97f129b8f02b51f58e22ee9fabfa987829df437f..c6835a4d6c640f06b5ddc875919a1ce4ce143a1b 100644 (file)
@@ -253,6 +253,45 @@ static void service_start_watchdog(Service *s) {
                 log_unit_warning_errno(UNIT(s), r, "Failed to install watchdog timer: %m");
 }
 
+static void service_extend_timeout(Service *s, usec_t extend_timeout_usec) {
+        assert(s);
+
+        if (s->timer_event_source) {
+                uint64_t current = 0, extended = 0;
+                int r;
+
+                if (IN_SET(extend_timeout_usec, 0, USEC_INFINITY))
+                        return;
+
+                extended = usec_add(now(CLOCK_MONOTONIC), extend_timeout_usec);
+
+                r = sd_event_source_get_time(s->timer_event_source, &current);
+                if (r < 0)
+                        log_unit_error_errno(UNIT(s), r, "Failed to retrieve timeout timer: %m");
+                else if (extended > current) {
+                        r = sd_event_source_set_time(s->timer_event_source, extended);
+                        if (r < 0)
+                                log_unit_warning_errno(UNIT(s), r, "Failed to set timeout timer: %m");
+                }
+
+                if (s->watchdog_event_source) {
+                        /* extend watchdog if necessary. We've asked for an extended timeout so we
+                         * shouldn't expect a watchdog timeout in the interval in between */
+                        r = sd_event_source_get_time(s->watchdog_event_source, &current);
+                        if (r < 0) {
+                                log_unit_error_errno(UNIT(s), r, "Failed to retrieve watchdog timer: %m");
+                                return;
+                        }
+
+                        if (extended > current) {
+                                r = sd_event_source_set_time(s->watchdog_event_source, extended);
+                                if (r < 0)
+                                        log_unit_warning_errno(UNIT(s), r, "Failed to set watchdog timer: %m");
+                        }
+                }
+        }
+}
+
 static void service_reset_watchdog(Service *s) {
         assert(s);
 
@@ -3378,7 +3417,7 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags, FDSet *fds)
         if (!service_notify_message_authorized(SERVICE(u), pid, tags, fds))
                 return;
 
-        if (log_get_max_level() >= LOG_DEBUG) {
+        if (DEBUG_LOGGING) {
                 _cleanup_free_ char *cc = NULL;
 
                 cc = strv_join(tags, ", ");
@@ -3476,6 +3515,16 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags, FDSet *fds)
                 }
         }
 
+        /* Interpret EXTEND_TIMEOUT= */
+        e = strv_find_startswith(tags, "EXTEND_TIMEOUT_USEC=");
+        if (e) {
+                usec_t extend_timeout_usec;
+                if (safe_atou64(e, &extend_timeout_usec) < 0)
+                        log_unit_warning(u, "Failed to parse EXTEND_TIMEOUT_USEC=%s", e);
+                else
+                        service_extend_timeout(s, extend_timeout_usec);
+        }
+
         /* Interpret WATCHDOG= */
         if (strv_find(tags, "WATCHDOG=1"))
                 service_reset_watchdog(s);
index d09ef190a28a737acaae51b21ca12e17c27d4faa..aca89d13d163e9a4d08a5d8df91037539a450591 100644 (file)
@@ -32,6 +32,7 @@
 
 #include "alloc-util.h"
 #include "cgroup-util.h"
+#include "fd-util.h"
 #include "def.h"
 #include "exec-util.h"
 #include "fileio.h"
@@ -40,6 +41,7 @@
 #include "missing.h"
 #include "parse-util.h"
 #include "process-util.h"
+#include "signal-util.h"
 #include "string-util.h"
 #include "switch-root.h"
 #include "terminal-util.h"
@@ -50,6 +52,9 @@
 
 #define FINALIZE_ATTEMPTS 50
 
+#define SYNC_PROGRESS_ATTEMPTS 3
+#define SYNC_TIMEOUT_USEC (10*USEC_PER_SEC)
+
 static char* arg_verb;
 static uint8_t arg_exit_code;
 
@@ -159,6 +164,103 @@ static int switch_root_initramfs(void) {
         return switch_root("/run/initramfs", "/oldroot", false, MS_BIND);
 }
 
+/* Read the following fields from /proc/meminfo:
+ *
+ *  NFS_Unstable
+ *  Writeback
+ *  Dirty
+ *
+ * Return true if the sum of these fields is greater than the previous
+ * value input. For all other issues, report the failure and indicate that
+ * the sync is not making progress.
+ */
+static bool sync_making_progress(unsigned long long *prev_dirty) {
+        _cleanup_fclose_ FILE *f = NULL;
+        char line[LINE_MAX];
+        bool r = false;
+        unsigned long long val = 0;
+
+        f = fopen("/proc/meminfo", "re");
+        if (!f)
+                return log_warning_errno(errno, "Failed to open /proc/meminfo: %m");
+
+        FOREACH_LINE(line, f, log_warning_errno(errno, "Failed to parse /proc/meminfo: %m")) {
+                unsigned long long ull = 0;
+
+                if (!first_word(line, "NFS_Unstable:") && !first_word(line, "Writeback:") && !first_word(line, "Dirty:"))
+                        continue;
+
+                errno = 0;
+                if (sscanf(line, "%*s %llu %*s", &ull) != 1) {
+                        if (errno != 0)
+                                log_warning_errno(errno, "Failed to parse /proc/meminfo: %m");
+                        else
+                                log_warning("Failed to parse /proc/meminfo");
+
+                        return false;
+                }
+
+                val += ull;
+        }
+
+        r = *prev_dirty > val;
+
+        *prev_dirty = val;
+
+        return r;
+}
+
+static void sync_with_progress(void) {
+        unsigned checks;
+        pid_t pid;
+        int r;
+        unsigned long long dirty = ULONG_LONG_MAX;
+
+        BLOCK_SIGNALS(SIGCHLD);
+
+        /* Due to the possiblity of the sync operation hanging, we fork
+         * a child process and monitor the progress. If the timeout
+         * lapses, the assumption is that that particular sync stalled. */
+        pid = fork();
+        if (pid < 0) {
+                log_error_errno(errno, "Failed to fork: %m");
+                return;
+        }
+
+        if (pid == 0) {
+                /* Start the sync operation here in the child */
+                sync();
+                _exit(EXIT_SUCCESS);
+        }
+
+        log_info("Syncing filesystems and block devices.");
+
+        /* Start monitoring the sync operation. If more than
+         * SYNC_PROGRESS_ATTEMPTS lapse without progress being made,
+         * we assume that the sync is stalled */
+        for (checks = 0; checks < SYNC_PROGRESS_ATTEMPTS; checks++) {
+                r = wait_for_terminate_with_timeout(pid, SYNC_TIMEOUT_USEC);
+                if (r == 0)
+                        /* Sync finished without error.
+                         * (The sync itself does not return an error code) */
+                        return;
+                else if (r == -ETIMEDOUT) {
+                        /* Reset the check counter if the "Dirty" value is
+                         * decreasing */
+                        if (sync_making_progress(&dirty))
+                                checks = 0;
+                } else {
+                        log_error_errno(r, "Failed to sync filesystems and block devices: %m");
+                        return;
+                }
+        }
+
+        /* Only reached in the event of a timeout. We should issue a kill
+         * to the stray process. */
+        log_error("Syncing filesystems and block devices - timed out, issuing SIGKILL to PID "PID_FMT".", pid);
+        (void) kill(pid, SIGKILL);
+}
+
 int main(int argc, char *argv[]) {
         bool need_umount, need_swapoff, need_loop_detach, need_dm_detach;
         bool in_container, use_watchdog = false;
@@ -221,9 +323,10 @@ int main(int argc, char *argv[]) {
 
         /* Synchronize everything that is not written to disk yet at this point already. This is a good idea so that
          * slow IO is processed here already and the final process killing spree is not impacted by processes
-         * desperately trying to sync IO to disk within their timeout. */
+         * desperately trying to sync IO to disk within their timeout. Do not remove this sync, data corruption will
+         * result. */
         if (!in_container)
-                sync();
+                sync_with_progress();
 
         log_info("Sending SIGTERM to remaining processes...");
         broadcast_signal(SIGTERM, true, true);
@@ -365,9 +468,9 @@ int main(int argc, char *argv[]) {
         /* The kernel will automatically flush ATA disks and suchlike on reboot(), but the file systems need to be
          * sync'ed explicitly in advance. So let's do this here, but not needlessly slow down containers. Note that we
          * sync'ed things already once above, but we did some more work since then which might have caused IO, hence
-         * let's doit once more. */
+         * let's do it once more. Do not remove this sync, data corruption will result. */
         if (!in_container)
-                sync();
+                sync_with_progress();
 
         if (streq(arg_verb, "exit")) {
                 if (in_container)
index 5ab1e6f898764b687206f5ed499e5366820ddea5..fef47b04fee1d2dd08d15651daa8fe744ccd56cb 100644 (file)
@@ -59,30 +59,24 @@ static void slice_set_state(Slice *t, SliceState state) {
 }
 
 static int slice_add_parent_slice(Slice *s) {
-        char *a, *dash;
-        Unit *parent;
+        Unit *u = UNIT(s), *parent;
+        _cleanup_free_ char *a = NULL;
         int r;
 
         assert(s);
 
-        if (UNIT_ISSET(UNIT(s)->slice))
+        if (UNIT_ISSET(u->slice))
                 return 0;
 
-        if (unit_has_name(UNIT(s), SPECIAL_ROOT_SLICE))
-                return 0;
-
-        a = strdupa(UNIT(s)->id);
-        dash = strrchr(a, '-');
-        if (dash)
-                strcpy(dash, ".slice");
-        else
-                a = (char*) SPECIAL_ROOT_SLICE;
+        r = slice_build_parent_slice(u->id, &a);
+        if (r <= 0) /* 0 means root slice */
+                return r;
 
-        r = manager_load_unit(UNIT(s)->manager, a, NULL, NULL, &parent);
+        r = manager_load_unit(u->manager, a, NULL, NULL, &parent);
         if (r < 0)
                 return r;
 
-        unit_ref_set(&UNIT(s)->slice, parent);
+        unit_ref_set(&u->slice, parent);
         return 0;
 }
 
index a5b6ea2cd6929e5a3452f24c480acd401b1d9500..b0d3612d69274b29946c4fa25edbf73c0dfacc7e 100644 (file)
@@ -24,6 +24,7 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <stdio.h>
+#include <stdio_ext.h>
 #include <stdlib.h>
 #include <string.h>
 
@@ -243,20 +244,25 @@ static int write_netlabel_rules(const char* srcdir) {
                         continue;
                 }
 
+                (void) __fsetlocking(policy, FSETLOCKING_BYCALLER);
+
                 /* load2 write rules in the kernel require a line buffered stream */
                 FOREACH_LINE(buf, policy,
-                             log_error_errno(errno, "Failed to read line from %s: %m",
-                                       entry->d_name)) {
-                        if (!fputs_unlocked(buf, dst)) {
+                             log_error_errno(errno, "Failed to read line from %s: %m", entry->d_name)) {
+
+                        int q;
+
+                        if (!fputs(buf, dst)) {
                                 if (r == 0)
                                         r = -EINVAL;
                                 log_error_errno(errno, "Failed to write line to /sys/fs/smackfs/netlabel");
                                 break;
                         }
-                        if (fflush(dst)) {
+                        q = fflush_and_check(dst);
+                        if (q < 0) {
                                 if (r == 0)
-                                        r = -errno;
-                                log_error_errno(errno, "Failed to flush writes to /sys/fs/smackfs/netlabel: %m");
+                                        r = q;
+                                log_error_errno(q, "Failed to flush writes to /sys/fs/smackfs/netlabel: %m");
                                 break;
                         }
                 }
index cd58a9cf6d75bfbc14431e50eac084f9fa8eaf7c..7f8ddb99ee47deec577c9f9f374ea24cc5d985dc 100644 (file)
@@ -28,6 +28,7 @@
 #include "libudev.h"
 
 #include "alloc-util.h"
+#include "def.h"
 #include "escape.h"
 #include "fd-util.h"
 #include "fstab-util.h"
@@ -35,6 +36,7 @@
 #include "list.h"
 #include "mount-setup.h"
 #include "path-util.h"
+#include "signal-util.h"
 #include "string-util.h"
 #include "udev-util.h"
 #include "umount.h"
@@ -376,10 +378,86 @@ static bool nonunmountable_path(const char *path) {
                 || path_startswith(path, "/run/initramfs");
 }
 
+static int remount_with_timeout(MountPoint *m, char *options, int *n_failed) {
+        pid_t pid;
+        int r;
+
+        BLOCK_SIGNALS(SIGCHLD);
+
+        /* Due to the possiblity of a remount operation hanging, we
+         * fork a child process and set a timeout. If the timeout
+         * lapses, the assumption is that that particular remount
+         * failed. */
+        pid = fork();
+        if (pid < 0)
+                return log_error_errno(errno, "Failed to fork: %m");
+
+        if (pid == 0) {
+                log_info("Remounting '%s' read-only in with options '%s'.", m->path, options);
+
+                /* Start the mount operation here in the child */
+                r = mount(NULL, m->path, NULL, MS_REMOUNT|MS_RDONLY, options);
+                if (r < 0)
+                        log_error_errno(errno, "Failed to remount '%s' read-only: %m", m->path);
+
+                _exit(r < 0 ? EXIT_FAILURE : EXIT_SUCCESS);
+        }
+
+        r = wait_for_terminate_with_timeout(pid, DEFAULT_TIMEOUT_USEC);
+        if (r == -ETIMEDOUT) {
+                log_error_errno(errno, "Remounting '%s' - timed out, issuing SIGKILL to PID "PID_FMT".", m->path, pid);
+                (void) kill(pid, SIGKILL);
+        } else if (r < 0)
+                log_error_errno(r, "Failed to wait for process: %m");
+
+        return r;
+}
+
+static int umount_with_timeout(MountPoint *m, bool *changed) {
+        pid_t pid;
+        int r;
+
+        BLOCK_SIGNALS(SIGCHLD);
+
+        /* Due to the possiblity of a umount operation hanging, we
+         * fork a child process and set a timeout. If the timeout
+         * lapses, the assumption is that that particular umount
+         * failed. */
+        pid = fork();
+        if (pid < 0)
+                return log_error_errno(errno, "Failed to fork: %m");
+
+        if (pid == 0) {
+                log_info("Unmounting '%s'.", m->path);
+
+                /* Start the mount operation here in the child Using MNT_FORCE
+                 * causes some filesystems (e.g. FUSE and NFS and other network
+                 * filesystems) to abort any pending requests and return -EIO
+                 * rather than blocking indefinitely. If the filesysten is
+                 * "busy", this may allow processes to die, thus making the
+                 * filesystem less busy so the unmount might succeed (rather
+                 * then return EBUSY).*/
+                r = umount2(m->path, MNT_FORCE);
+                if (r < 0)
+                        log_error_errno(errno, "Failed to unmount %s: %m", m->path);
+
+                _exit(r < 0 ? EXIT_FAILURE : EXIT_SUCCESS);
+        }
+
+        r = wait_for_terminate_with_timeout(pid, DEFAULT_TIMEOUT_USEC);
+        if (r == -ETIMEDOUT) {
+                log_error_errno(errno, "Unmounting '%s' - timed out, issuing SIGKILL to PID "PID_FMT".", m->path, pid);
+                (void) kill(pid, SIGKILL);
+        } else if (r < 0)
+                log_error_errno(r, "Failed to wait for process: %m");
+
+        return r;
+}
+
 /* This includes remounting readonly, which changes the kernel mount options.
  * Therefore the list passed to this function is invalidated, and should not be reused. */
 
-static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_error) {
+static int mount_points_list_umount(MountPoint **head, bool *changed) {
         MountPoint *m;
         int n_failed = 0;
 
@@ -425,13 +503,15 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e
                          * explicitly remount the super block of that
                          * alias read-only we hence should be
                          * relatively safe regarding keeping dirty an fs
-                         * we cannot otherwise see. */
-                        log_info("Remounting '%s' read-only with options '%s'.", m->path, options);
-                        if (mount(NULL, m->path, NULL, MS_REMOUNT|MS_RDONLY, options) < 0) {
-                                if (log_error)
-                                        log_notice_errno(errno, "Failed to remount '%s' read-only: %m", m->path);
+                         * we cannot otherwise see.
+                         *
+                         * Since the remount can hang in the instance of
+                         * remote filesystems, we remount asynchronously
+                         * and skip the subsequent umount if it fails */
+                        if (remount_with_timeout(m, options, &n_failed) < 0) {
                                 if (nonunmountable_path(m->path))
                                         n_failed++;
+                                continue;
                         }
                 }
 
@@ -441,21 +521,12 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e
                 if (nonunmountable_path(m->path))
                         continue;
 
-                /* Trying to umount. Using MNT_FORCE causes some
-                 * filesystems (e.g. FUSE and NFS and other network
-                 * filesystems) to abort any pending requests and
-                 * return -EIO rather than blocking indefinitely.
-                 * If the filesysten is "busy", this may allow processes
-                 * to die, thus making the filesystem less busy so
-                 * the unmount might succeed (rather then return EBUSY).*/
-                log_info("Unmounting %s.", m->path);
-                if (umount2(m->path, MNT_FORCE) == 0) {
+                /* Trying to umount */
+                if (umount_with_timeout(m, changed) < 0)
+                        n_failed++;
+                else {
                         if (changed)
                                 *changed = true;
-                } else {
-                        if (log_error)
-                                log_warning_errno(errno, "Could not unmount %s: %m", m->path);
-                        n_failed++;
                 }
         }
 
@@ -556,7 +627,7 @@ static int dm_points_list_detach(MountPoint **head, bool *changed) {
         return n_failed;
 }
 
-static int umount_all_once(bool *changed, bool log_error) {
+static int umount_all_once(bool *changed) {
         int r;
         LIST_HEAD(MountPoint, mp_list_head);
 
@@ -565,7 +636,7 @@ static int umount_all_once(bool *changed, bool log_error) {
         if (r < 0)
                 goto end;
 
-        r = mount_points_list_umount(&mp_list_head, changed, log_error);
+        r = mount_points_list_umount(&mp_list_head, changed);
 
   end:
         mount_points_list_free(&mp_list_head);
@@ -577,20 +648,17 @@ int umount_all(bool *changed) {
         bool umount_changed;
         int r;
 
-        /* retry umount, until nothing can be umounted anymore */
+        /* Retry umount, until nothing can be umounted anymore. Mounts are
+         * processed in order, newest first. The retries are needed when
+         * an old mount has been moved, to a path inside a newer mount. */
         do {
                 umount_changed = false;
 
-                umount_all_once(&umount_changed, false);
+                r = umount_all_once(&umount_changed);
                 if (umount_changed)
                         *changed = true;
         } while (umount_changed);
 
-        /* umount one more time with logging enabled */
-        r = umount_all_once(&umount_changed, true);
-        if (umount_changed)
-                *changed = true;
-
         return r;
 }
 
index ead04d4ee153f24ab8a0af2b3cb7bec0ed246cd8..e6063cc980e76f58e76ef936a45665b53e661154 100644 (file)
@@ -20,6 +20,7 @@
 
 #include <errno.h>
 #include <stdio.h>
+#include <stdio_ext.h>
 #include <sys/prctl.h>
 #include <sys/xattr.h>
 #include <unistd.h>
@@ -540,6 +541,8 @@ static int compose_open_fds(pid_t pid, char **open_fds) {
         if (!stream)
                 return -ENOMEM;
 
+        (void) __fsetlocking(stream, FSETLOCKING_BYCALLER);
+
         FOREACH_DIRENT(dent, proc_fd_dir, return -errno) {
                 _cleanup_fclose_ FILE *fdinfo = NULL;
                 _cleanup_free_ char *fdname = NULL;
@@ -559,13 +562,13 @@ static int compose_open_fds(pid_t pid, char **open_fds) {
                         continue;
 
                 fdinfo = fdopen(fd, "re");
-                if (fdinfo == NULL) {
-                        close(fd);
+                if (!fdinfo) {
+                        safe_close(fd);
                         continue;
                 }
 
                 FOREACH_LINE(line, fdinfo, break) {
-                        fputs_unlocked(line, stream);
+                        fputs(line, stream);
                         if (!endswith(line, "\n"))
                                 fputc('\n', stream);
                 }
index b92f5d330d81ee3622034085c18b50ee34f98fff..2fd5adcddc9c22574bd73ee0243ddbb9c7569ced 100644 (file)
@@ -903,9 +903,9 @@ static int run_gdb(sd_journal *j) {
         if (r < 0)
                 return log_error_errno(r, "Failed to retrieve COREDUMP_EXE field: %m");
 
-        assert(len > strlen("COREDUMP_EXE="));
-        data += strlen("COREDUMP_EXE=");
-        len -= strlen("COREDUMP_EXE=");
+        assert(len > STRLEN("COREDUMP_EXE="));
+        data += STRLEN("COREDUMP_EXE=");
+        len -= STRLEN("COREDUMP_EXE=");
 
         exe = strndup(data, len);
         if (!exe)
@@ -1061,7 +1061,7 @@ int main(int argc, char *argv[]) {
         if (r < 0)
                 goto end;
 
-        if (_unlikely_(log_get_max_level() >= LOG_DEBUG)) {
+        if (DEBUG_LOGGING) {
                 _cleanup_free_ char *filter;
 
                 filter = journal_make_match_string(j);
index d37ffae02091870a43ca5a1b452bced988f34e3e..95fd27b79a21ae04c0bb79f16eac0bbd315b4500 100644 (file)
@@ -20,6 +20,7 @@
 
 #include <dwarf.h>
 #include <elfutils/libdwfl.h>
+#include <stdio_ext.h>
 
 #include "alloc-util.h"
 #include "fd-util.h"
@@ -108,7 +109,7 @@ static int thread_callback(Dwfl_Thread *thread, void *userdata) {
                 return DWARF_CB_ABORT;
 
         if (c->n_thread != 0)
-                fputc_unlocked('\n', c->f);
+                fputc('\n', c->f);
 
         c->n_frame = 0;
 
@@ -145,6 +146,8 @@ int coredump_make_stack_trace(int fd, const char *executable, char **ret) {
         if (!c.f)
                 return -ENOMEM;
 
+        (void) __fsetlocking(c.f, FSETLOCKING_BYCALLER);
+
         elf_version(EV_CURRENT);
 
         c.elf = elf_begin(fd, ELF_C_READ_MMAP, NULL);
index e2dc96bdb7e8499ed872684c15b7b5589c1a3c29..b41faed6ad4023b0318cba90f6e3d29c2b8f03fc 100644 (file)
@@ -19,6 +19,7 @@
 ***/
 
 #include <errno.h>
+#include <stdio_ext.h>
 
 #include "alloc-util.h"
 #include "dropin.h"
@@ -60,7 +61,7 @@ static int create_disk(
                 const char *password,
                 const char *options) {
 
-        _cleanup_free_ char *p = NULL, *n = NULL, *d = NULL, *u = NULL, *e = NULL,
+        _cleanup_free_ char *n = NULL, *d = NULL, *u = NULL, *e = NULL,
                 *filtered = NULL, *u_escaped = NULL, *password_escaped = NULL, *filtered_escaped = NULL, *name_escaped = NULL;
         _cleanup_fclose_ FILE *f = NULL;
         const char *dmname;
@@ -89,18 +90,14 @@ static int create_disk(
         if (!e)
                 return log_oom();
 
-        r = unit_name_build("systemd-cryptsetup", e, ".service", &n);
-        if (r < 0)
-                return log_error_errno(r, "Failed to generate unit name: %m");
-
-        p = strjoin(arg_dest, "/", n);
-        if (!p)
-                return log_oom();
-
         u = fstab_node_to_udev_node(device);
         if (!u)
                 return log_oom();
 
+        r = unit_name_build("systemd-cryptsetup", e, ".service", &n);
+        if (r < 0)
+                return log_error_errno(r, "Failed to generate unit name: %m");
+
         u_escaped = specifier_escape(u);
         if (!u_escaped)
                 return log_oom();
@@ -110,15 +107,14 @@ static int create_disk(
                 return log_error_errno(r, "Failed to generate unit name: %m");
 
         password_escaped = specifier_escape(password);
-        if (!password_escaped)
+        if (password && !password_escaped)
                 return log_oom();
 
-        f = fopen(p, "wxe");
-        if (!f)
-                return log_error_errno(errno, "Failed to create unit file %s: %m", p);
+        r = generator_open_unit_file(arg_dest, NULL, n, &f);
+        if (r < 0)
+                return r;
 
         fprintf(f,
-                "# Automatically generated by systemd-cryptsetup-generator\n\n"
                 "[Unit]\n"
                 "Description=Cryptography Setup for %%I\n"
                 "Documentation=man:crypttab(5) man:systemd-cryptsetup-generator(8) man:systemd-cryptsetup@.service(8)\n"
@@ -136,7 +132,7 @@ static int create_disk(
 
         if (password) {
                 if (STR_IN_SET(password, "/dev/urandom", "/dev/random", "/dev/hw_random"))
-                        fputs_unlocked("After=systemd-random-seed.service\n", f);
+                        fputs("After=systemd-random-seed.service\n", f);
                 else if (!STR_IN_SET(password, "-", "none")) {
                         _cleanup_free_ char *uu;
 
@@ -168,8 +164,8 @@ static int create_disk(
                         d, d);
 
                 if (swap)
-                        fputs_unlocked("Before=dev-mapper-%i.swap\n",
-                                       f);
+                        fputs("Before=dev-mapper-%i.swap\n",
+                              f);
         } else
                 fprintf(f,
                         "RequiresMountsFor=%s\n",
@@ -181,7 +177,7 @@ static int create_disk(
                 return r;
 
         filtered_escaped = specifier_escape(filtered);
-        if (!filtered_escaped)
+        if (filtered && !filtered_escaped)
                 return log_oom();
 
         fprintf(f,
@@ -207,7 +203,7 @@ static int create_disk(
 
         r = fflush_and_check(f);
         if (r < 0)
-                return log_error_errno(r, "Failed to write file %s: %m", p);
+                return log_error_errno(r, "Failed to write unit file %s: %m", n);
 
         if (!noauto) {
                 r = generator_add_symlink(arg_dest, d, "wants", n);
@@ -372,6 +368,8 @@ static int add_crypttab_devices(void) {
                 return 0;
         }
 
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
         if (fstat(fileno(f), &st) < 0) {
                 log_error_errno(errno, "Failed to stat /etc/crypttab: %m");
                 return 0;
index ab4d24ca3bc5bc50782c5a98b59f79bf5299e82c..7255ff418c8f002768913f4440be43ded7325a12 100644 (file)
@@ -47,7 +47,7 @@ static char *arg_cipher = NULL;
 static unsigned arg_key_size = 0;
 static int arg_key_slot = CRYPT_ANY_SLOT;
 static unsigned arg_keyfile_size = 0;
-static unsigned arg_keyfile_offset = 0;
+static uint64_t arg_keyfile_offset = 0;
 static char *arg_hash = NULL;
 static char *arg_header = NULL;
 static unsigned arg_tries = 3;
@@ -131,13 +131,22 @@ static int parse_one_option(const char *option) {
                 }
 
         } else if ((val = startswith(option, "keyfile-offset="))) {
+                uint64_t off;
 
-                r = safe_atou(val, &arg_keyfile_offset);
+                r = safe_atou64(val, &off);
                 if (r < 0) {
                         log_error_errno(r, "Failed to parse %s, ignoring: %m", option);
                         return 0;
                 }
 
+                if ((size_t) off != off) {
+                        /* https://gitlab.com/cryptsetup/cryptsetup/issues/359 */
+                        log_error("keyfile-offset= value would truncated to %zu, ignoring.", (size_t) off);
+                        return 0;
+                }
+
+                arg_keyfile_offset = off;
+
         } else if ((val = startswith(option, "hash="))) {
                 r = free_and_strdup(&arg_hash, val);
                 if (r < 0)
@@ -249,23 +258,6 @@ static int parse_options(const char *options) {
         return 0;
 }
 
-static int disk_major_minor(const char *path, char **ret) {
-        struct stat st;
-
-        assert(path);
-
-        if (stat(path, &st) < 0)
-                return -errno;
-
-        if (!S_ISBLK(st.st_mode))
-                return -EINVAL;
-
-        if (asprintf(ret, "/dev/block/%d:%d", major(st.st_rdev), minor(st.st_rdev)) < 0)
-                return -errno;
-
-        return 0;
-}
-
 static char* disk_description(const char *path) {
 
         static const char name_fields[] =
@@ -324,7 +316,7 @@ static char *disk_mount_point(const char *label) {
 }
 
 static int get_password(const char *vol, const char *src, usec_t until, bool accept_cached, char ***ret) {
-        _cleanup_free_ char *description = NULL, *name_buffer = NULL, *mount_point = NULL, *maj_min = NULL, *text = NULL, *escaped_name = NULL;
+        _cleanup_free_ char *description = NULL, *name_buffer = NULL, *mount_point = NULL, *text = NULL, *disk_path = NULL;
         _cleanup_strv_free_erase_ char **passwords = NULL;
         const char *name = NULL;
         char **p, *id;
@@ -337,6 +329,10 @@ static int get_password(const char *vol, const char *src, usec_t until, bool acc
         description = disk_description(src);
         mount_point = disk_mount_point(vol);
 
+        disk_path = cescape(src);
+        if (!disk_path)
+                return log_oom();
+
         if (description && streq(vol, description))
                 /* If the description string is simply the
                  * volume name, then let's not show this
@@ -358,19 +354,7 @@ static int get_password(const char *vol, const char *src, usec_t until, bool acc
         if (asprintf(&text, "Please enter passphrase for disk %s!", name) < 0)
                 return log_oom();
 
-        if (src)
-                (void) disk_major_minor(src, &maj_min);
-
-        if (maj_min) {
-                escaped_name = maj_min;
-                maj_min = NULL;
-        } else
-                escaped_name = cescape(name);
-
-        if (!escaped_name)
-                return log_oom();
-
-        id = strjoina("cryptsetup:", escaped_name);
+        id = strjoina("cryptsetup:", disk_path);
 
         r = ask_password_auto(text, "drive-harddisk", id, "cryptsetup", until,
                               ASK_PASSWORD_PUSH_CACHE | (accept_cached*ASK_PASSWORD_ACCEPT_CACHED),
@@ -386,7 +370,7 @@ static int get_password(const char *vol, const char *src, usec_t until, bool acc
                 if (asprintf(&text, "Please enter passphrase for disk %s! (verification)", name) < 0)
                         return log_oom();
 
-                id = strjoina("cryptsetup-verification:", escaped_name);
+                id = strjoina("cryptsetup-verification:", disk_path);
 
                 r = ask_password_auto(text, "drive-harddisk", id, "cryptsetup", until, ASK_PASSWORD_PUSH_CACHE, &passwords2);
                 if (r < 0)
index 6290abdc1ba314728e15c74493dbb84a921275cb..0091e388dce2b37046e04ca5faec909580a99753 100644 (file)
@@ -398,7 +398,7 @@ int main(int argc, char *argv[]) {
                 goto finish;
         }
         if (pid == 0) {
-                char dash_c[sizeof("-C")-1 + DECIMAL_STR_MAX(int) + 1];
+                char dash_c[STRLEN("-C") + DECIMAL_STR_MAX(int) + 1];
                 int progress_socket = -1;
                 const char *cmdline[9];
                 int i = 0;
index c0886547e08d5e636fb1b530b4a792d4f3add450..95bc5e38d5461f228edc86c7b8c0a192de503cdb 100644 (file)
@@ -23,6 +23,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
+#include <stdio_ext.h>
 
 #include "alloc-util.h"
 #include "fd-util.h"
@@ -101,7 +102,7 @@ static int add_swap(
                 struct mntent *me,
                 MountpointFlags flags) {
 
-        _cleanup_free_ char *name = NULL, *unit = NULL;
+        _cleanup_free_ char *name = NULL;
         _cleanup_fclose_ FILE *f = NULL;
         int r;
 
@@ -122,23 +123,15 @@ static int add_swap(
         if (r < 0)
                 return log_error_errno(r, "Failed to generate unit name: %m");
 
-        unit = strjoin(arg_dest, "/", name);
-        if (!unit)
-                return log_oom();
-
-        f = fopen(unit, "wxe");
-        if (!f)
-                return log_error_errno(errno,
-                                       errno == EEXIST ?
-                                       "Failed to create swap unit file %s, as it already exists. Duplicate entry in /etc/fstab?" :
-                                       "Failed to create unit file %s: %m",
-                                       unit);
+        r = generator_open_unit_file(arg_dest, "/etc/fstab", name, &f);
+        if (r < 0)
+                return r;
 
-        fputs_unlocked("# Automatically generated by systemd-fstab-generator\n\n"
-                       "[Unit]\n"
-                       "SourcePath=/etc/fstab\n"
-                       "Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n\n"
-                       "[Swap]\n", f);
+        fputs("# Automatically generated by systemd-fstab-generator\n\n"
+              "[Unit]\n"
+              "SourcePath=/etc/fstab\n"
+              "Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n\n"
+              "[Swap]\n", f);
 
         r = write_what(f, what);
         if (r < 0)
@@ -150,7 +143,7 @@ static int add_swap(
 
         r = fflush_and_check(f);
         if (r < 0)
-                return log_error_errno(r, "Failed to write unit file %s: %m", unit);
+                return log_error_errno(r, "Failed to write unit file %s: %m", name);
 
         /* use what as where, to have a nicer error message */
         r = generator_write_timeouts(arg_dest, what, what, me->mnt_opts, NULL);
@@ -320,10 +313,9 @@ static int add_mount(
 
         _cleanup_free_ char
                 *name = NULL,
-                *automount_name = NULL, *automount_unit = NULL,
+                *automount_name = NULL,
                 *filtered = NULL,
                 *where_escaped = NULL;
-        const char *unit;
         _cleanup_fclose_ FILE *f = NULL;
         int r;
 
@@ -360,18 +352,11 @@ static int add_mount(
         if (r < 0)
                 return log_error_errno(r, "Failed to generate unit name: %m");
 
-        unit = strjoina(dest, "/", name);
-
-        f = fopen(unit, "wxe");
-        if (!f)
-                return log_error_errno(errno,
-                                       errno == EEXIST ?
-                                       "Failed to create mount unit file %s, as it already exists. Duplicate entry in /etc/fstab?" :
-                                       "Failed to create unit file %s: %m",
-                                       unit);
+        r = generator_open_unit_file(dest, "/etc/fstab", name, &f);
+        if (r < 0)
+                return r;
 
         fprintf(f,
-                "# Automatically generated by systemd-fstab-generator\n\n"
                 "[Unit]\n"
                 "SourcePath=%s\n"
                 "Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n",
@@ -456,7 +441,7 @@ static int add_mount(
 
         r = fflush_and_check(f);
         if (r < 0)
-                return log_error_errno(r, "Failed to write unit file %s: %m", unit);
+                return log_error_errno(r, "Failed to write unit file %s: %m", name);
 
         if (flags & MAKEFS) {
                 r = generator_hook_up_mkfs(dest, what, where, fstype);
@@ -482,17 +467,13 @@ static int add_mount(
                 if (r < 0)
                         return log_error_errno(r, "Failed to generate unit name: %m");
 
-                automount_unit = strjoin(dest, "/", automount_name);
-                if (!automount_unit)
-                        return log_oom();
-
                 fclose(f);
-                f = fopen(automount_unit, "wxe");
-                if (!f)
-                        return log_error_errno(errno, "Failed to create unit file %s: %m", automount_unit);
+
+                r = generator_open_unit_file(dest, "/etc/fstab", automount_name, &f);
+                if (r < 0)
+                        return r;
 
                 fprintf(f,
-                        "# Automatically generated by systemd-fstab-generator\n\n"
                         "[Unit]\n"
                         "SourcePath=%s\n"
                         "Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n",
@@ -527,7 +508,7 @@ static int add_mount(
 
                 r = fflush_and_check(f);
                 if (r < 0)
-                        return log_error_errno(r, "Failed to write unit file %s: %m", automount_unit);
+                        return log_error_errno(r, "Failed to write unit file %s: %m", automount_name);
 
                 r = generator_add_symlink(dest, post,
                                           (flags & NOFAIL) ? "wants" : "requires", automount_name);
index 10dd3db270b1f80e8660bea19d375fd5e3778c16..e44989e1bae72f121081d939243cd57cbe720b1a 100644 (file)
@@ -422,7 +422,7 @@ static int add_source(RemoteServer *s, int fd, char* name, bool own_name) {
 static int add_raw_socket(RemoteServer *s, int fd) {
         int r;
         _cleanup_close_ int fd_ = fd;
-        char name[sizeof("raw-socket-")-1 + DECIMAL_STR_MAX(int) + 1];
+        char name[STRLEN("raw-socket-") + DECIMAL_STR_MAX(int) + 1];
 
         assert(fd >= 0);
 
index 69718aae8757d36fe5da6de40954c2636c3ec592..7566543c1aacd979cf48e490cdde9ef10d55c120 100644 (file)
@@ -248,7 +248,7 @@ int start_upload(Uploader *u,
                 easy_setopt(curl, CURLOPT_HTTPHEADER, u->header,
                             LOG_ERR, return -EXFULL);
 
-                if (_unlikely_(log_get_max_level() >= LOG_DEBUG))
+                if (DEBUG_LOGGING)
                         /* enable verbose for easier tracing */
                         easy_setopt(curl, CURLOPT_VERBOSE, 1L, LOG_WARNING, );
 
index 01f35c52857fb3a128ac2d82d1967a63e84b716d..603ad41cc7f865372bfacceee17c38ddbfbb389c 100644 (file)
@@ -31,7 +31,7 @@ int audit_type_from_string(const char *s);
                 const char *_s_;                                        \
                 _s_ = audit_type_to_string(type);                       \
                 if (!_s_) {                                             \
-                        _s_ = alloca(strlen("AUDIT") + DECIMAL_STR_MAX(int)); \
+                        _s_ = alloca(STRLEN("AUDIT") + DECIMAL_STR_MAX(int)); \
                         sprintf((char*) _s_, "AUDIT%04i", type);        \
                 }                                                       \
                 _s_;                                                    \
index 9d2e6dbb1bc6ff5873c26c9d75c549a62a91d364..7fef4033918973285bea76ca951221d0a7c24fe4 100644 (file)
@@ -2572,7 +2572,7 @@ static int find_data_object_by_boot_id(
                 Object **o,
                 uint64_t *b) {
 
-        char t[sizeof("_BOOT_ID=")-1 + 32 + 1] = "_BOOT_ID=";
+        char t[STRLEN("_BOOT_ID=") + 32 + 1] = "_BOOT_ID=";
 
         sd_id128_to_string(boot_id, t + 9);
         return journal_file_find_data_object(f, t, sizeof(t) - 1, o, b);
index 46ff1ce05321027fa78f74d4a575f48e28d88529..5a9dcaa52599e47341eb285256f8a14fb49859f6 100644 (file)
@@ -22,6 +22,7 @@
 #include <qrencode.h>
 #include <stdbool.h>
 #include <stdio.h>
+#include <stdio_ext.h>
 #include <stdlib.h>
 
 #include "journal-qrcode.h"
@@ -66,11 +67,13 @@ int print_qr_code(
         if (!f)
                 return -ENOMEM;
 
-        fputs_unlocked("fss://", f);
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
+        fputs("fss://", f);
 
         for (i = 0; i < seed_size; i++) {
                 if (i > 0 && i % 3 == 0)
-                        fputc_unlocked('-', f);
+                        fputc('-', f);
                 fprintf(f, "%02x", ((uint8_t*) seed)[i]);
         }
 
index 5bca471c9869a6345024e65cfca5cd4f9639bdab..a78aa07032fc34a23beaa7c3dec01a5e8b69d079 100644 (file)
@@ -96,7 +96,7 @@ _public_ int sd_journal_printv(int priority, const char *format, va_list ap) {
         /* FIXME: Instead of limiting things to LINE_MAX we could do a
            C99 variable-length array on the stack here in a loop. */
 
-        char buffer[8 + LINE_MAX], p[sizeof("PRIORITY=")-1 + DECIMAL_STR_MAX(int) + 1];
+        char buffer[8 + LINE_MAX], p[STRLEN("PRIORITY=") + DECIMAL_STR_MAX(int) + 1];
         struct iovec iov[2];
 
         assert_return(priority >= 0, -EINVAL);
@@ -357,7 +357,7 @@ static int fill_iovec_perror_and_send(const char *message, int skip, struct iove
                 errno = 0;
                 j = strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
                 if (errno == 0) {
-                        char error[sizeof("ERRNO=")-1 + DECIMAL_STR_MAX(int) + 1];
+                        char error[STRLEN("ERRNO=") + DECIMAL_STR_MAX(int) + 1];
 
                         if (j != buffer + 8 + k)
                                 memmove(buffer + 8 + k, j, strlen(j)+1);
@@ -459,7 +459,7 @@ _public_ int sd_journal_print_with_location(int priority, const char *file, cons
 }
 
 _public_ int sd_journal_printv_with_location(int priority, const char *file, const char *line, const char *func, const char *format, va_list ap) {
-        char buffer[8 + LINE_MAX], p[sizeof("PRIORITY=")-1 + DECIMAL_STR_MAX(int) + 1];
+        char buffer[8 + LINE_MAX], p[STRLEN("PRIORITY=") + DECIMAL_STR_MAX(int) + 1];
         struct iovec iov[5];
         char *f;
 
index e2fd031f839c7cbacc85d849519c993ab41366ee..7078f11b0dd766b333da5ece7e7cd2cd674425fb 100644 (file)
@@ -1343,7 +1343,8 @@ static int add_dmesg(sd_journal *j) {
         if (!arg_dmesg)
                 return 0;
 
-        r = sd_journal_add_match(j, "_TRANSPORT=kernel", strlen("_TRANSPORT=kernel"));
+        r = sd_journal_add_match(j, "_TRANSPORT=kernel",
+                                 STRLEN("_TRANSPORT=kernel"));
         if (r < 0)
                 return log_error_errno(r, "Failed to add match: %m");
 
@@ -2256,7 +2257,7 @@ int main(int argc, char *argv[]) {
         if (r < 0)
                 goto finish;
 
-        if (_unlikely_(log_get_max_level() >= LOG_DEBUG)) {
+        if (DEBUG_LOGGING) {
                 _cleanup_free_ char *filter;
 
                 filter = journal_make_match_string(j);
index f093e468c3c3bbfa97375c439fc6d1380960fc92..98fbb83a0cda672005d11bcf6d571cdc786f631e 100644 (file)
@@ -58,8 +58,8 @@ void server_forward_console(
 
         struct iovec iovec[5];
         struct timespec ts;
-        char tbuf[sizeof("[] ")-1 + DECIMAL_STR_MAX(ts.tv_sec) + DECIMAL_STR_MAX(ts.tv_nsec)-3 + 1];
-        char header_pid[sizeof("[]: ")-1 + DECIMAL_STR_MAX(pid_t)];
+        char tbuf[STRLEN("[] ") + DECIMAL_STR_MAX(ts.tv_sec) + DECIMAL_STR_MAX(ts.tv_nsec)-3 + 1];
+        char header_pid[STRLEN("[]: ") + DECIMAL_STR_MAX(pid_t)];
         _cleanup_free_ char *ident_buf = NULL;
         _cleanup_close_ int fd = -1;
         const char *tty;
index 5275f43b38019b4e1f69bfd98aea51202e34903a..0fadc16fbd8a4bc2c591f64bf30d3dc6b6000aaf 100644 (file)
@@ -50,7 +50,7 @@ void server_forward_kmsg(
         _cleanup_free_ char *ident_buf = NULL;
         struct iovec iovec[5];
         char header_priority[DECIMAL_STR_MAX(priority) + 3],
-             header_pid[sizeof("[]: ")-1 + DECIMAL_STR_MAX(pid_t) + 1];
+             header_pid[STRLEN("[]: ") + DECIMAL_STR_MAX(pid_t) + 1];
         int n = 0;
 
         assert(s);
index 5c8711fb7c805330254db413251a8b41f33b9252..65fb6ab63a0840d02d57115b0f4ac54ea42aaf44 100644 (file)
@@ -95,13 +95,14 @@ static void server_process_entry_meta(
                         *message = t;
                 }
 
-        } else if (l > strlen("OBJECT_PID=") &&
-                   l < strlen("OBJECT_PID=")  + DECIMAL_STR_MAX(pid_t) &&
+        } else if (l > STRLEN("OBJECT_PID=") &&
+                   l < STRLEN("OBJECT_PID=")  + DECIMAL_STR_MAX(pid_t) &&
                    startswith(p, "OBJECT_PID=") &&
                    allow_object_pid(ucred)) {
                 char buf[DECIMAL_STR_MAX(pid_t)];
-                memcpy(buf, p + strlen("OBJECT_PID="), l - strlen("OBJECT_PID="));
-                buf[l-strlen("OBJECT_PID=")] = '\0';
+                memcpy(buf, p + STRLEN("OBJECT_PID="),
+                       l - STRLEN("OBJECT_PID="));
+                buf[l-STRLEN("OBJECT_PID=")] = '\0';
 
                 (void) parse_pid(buf, object_pid);
         }
@@ -252,7 +253,7 @@ static int server_process_entry(
 
         tn = n++;
         iovec[tn] = IOVEC_MAKE_STRING("_TRANSPORT=journal");
-        entry_size += strlen("_TRANSPORT=journal");
+        entry_size += STRLEN("_TRANSPORT=journal");
 
         if (entry_size + n + 1 > ENTRY_SIZE_MAX) { /* data + separators + trailer */
                 log_debug("Entry is too big with %zu properties and %zu bytes, ignoring.", n, entry_size);
index 3da3dad2309a316d42e18c856bc1e0a7bc7520c1..d68e3a8d519047cb09af628ed04f56c050c6c52d 100644 (file)
@@ -133,7 +133,7 @@ static int determine_path_usage(Server *s, const char *path, uint64_t *ret_used,
 }
 
 static void cache_space_invalidate(JournalStorageSpace *space) {
-        memset(space, 0, sizeof(*space));
+        zero(*space);
 }
 
 static int cache_space_refresh(Server *s, JournalStorage *storage) {
@@ -724,7 +724,7 @@ static void write_to_journal(Server *s, uid_t uid, struct iovec *iovec, unsigned
 #define IOVEC_ADD_NUMERIC_FIELD(iovec, n, value, type, isset, format, field)  \
         if (isset(value)) {                                             \
                 char *k;                                                \
-                k = newa(char, strlen(field "=") + DECIMAL_STR_MAX(type) + 1); \
+                k = newa(char, STRLEN(field "=") + DECIMAL_STR_MAX(type) + 1); \
                 sprintf(k, field "=" format, value);                    \
                 iovec[n++] = IOVEC_MAKE_STRING(k);                      \
         }
@@ -739,7 +739,7 @@ static void write_to_journal(Server *s, uid_t uid, struct iovec *iovec, unsigned
 #define IOVEC_ADD_ID128_FIELD(iovec, n, value, field)                   \
         if (!sd_id128_is_null(value)) {                                 \
                 char *k;                                                \
-                k = newa(char, strlen(field "=") + SD_ID128_STRING_MAX); \
+                k = newa(char, STRLEN(field "=") + SD_ID128_STRING_MAX); \
                 sd_id128_to_string(value, stpcpy(k, field "="));        \
                 iovec[n++] = IOVEC_MAKE_STRING(k);                      \
         }
@@ -747,7 +747,7 @@ static void write_to_journal(Server *s, uid_t uid, struct iovec *iovec, unsigned
 #define IOVEC_ADD_SIZED_FIELD(iovec, n, value, value_size, field)       \
         if (value_size > 0) {                                           \
                 char *k;                                                \
-                k = newa(char, strlen(field "=") + value_size + 1);     \
+                k = newa(char, STRLEN(field "=") + value_size + 1);     \
                 *((char*) mempcpy(stpcpy(k, field "="), value, value_size)) = 0; \
                 iovec[n++] = IOVEC_MAKE_STRING(k);                      \
         }                                                               \
index 8169bc9498e734c08a1b6d7c3fc124de5bdbfd10..bf4ba6897a061763cd36f136a05cc63bcc5f8323 100644 (file)
@@ -180,7 +180,7 @@ struct Server {
         ClientContext *pid1_context; /* the context of PID 1 */
 };
 
-#define SERVER_MACHINE_ID(s) ((s)->machine_id_field + strlen("_MACHINE_ID="))
+#define SERVER_MACHINE_ID(s) ((s)->machine_id_field + STRLEN("_MACHINE_ID="))
 
 /* Extra fields for any log messages */
 #define N_IOVEC_META_FIELDS 22
index 1137d4eeed94acc77b91922a4221a7ba12acc3d0..671ada718c2e9bcad603f15709995487fc71ac64 100644 (file)
@@ -106,7 +106,7 @@ struct StdoutStream {
         LIST_FIELDS(StdoutStream, stdout_stream);
         LIST_FIELDS(StdoutStream, stdout_stream_notify_queue);
 
-        char id_field[sizeof("_STREAM_ID=")-1 + SD_ID128_STRING_MAX];
+        char id_field[STRLEN("_STREAM_ID=") + SD_ID128_STRING_MAX];
 };
 
 void stdout_stream_free(StdoutStream *s) {
@@ -194,7 +194,7 @@ static int stdout_stream_save(StdoutStream *s) {
                 s->forward_to_syslog,
                 s->forward_to_kmsg,
                 s->forward_to_console,
-                s->id_field + strlen("_STREAM_ID="));
+                s->id_field + STRLEN("_STREAM_ID="));
 
         if (!isempty(s->identifier)) {
                 _cleanup_free_ char *escaped;
@@ -255,7 +255,7 @@ static int stdout_stream_log(StdoutStream *s, const char *p, LineBreak line_brea
         struct iovec *iovec;
         int priority;
         char syslog_priority[] = "PRIORITY=\0";
-        char syslog_facility[sizeof("SYSLOG_FACILITY=")-1 + DECIMAL_STR_MAX(int) + 1];
+        char syslog_facility[STRLEN("SYSLOG_FACILITY=") + DECIMAL_STR_MAX(int) + 1];
         _cleanup_free_ char *message = NULL, *syslog_identifier = NULL;
         size_t n = 0, m;
         int r;
@@ -300,7 +300,7 @@ static int stdout_stream_log(StdoutStream *s, const char *p, LineBreak line_brea
         iovec[n++] = IOVEC_MAKE_STRING("_TRANSPORT=stdout");
         iovec[n++] = IOVEC_MAKE_STRING(s->id_field);
 
-        syslog_priority[strlen("PRIORITY=")] = '0' + LOG_PRI(priority);
+        syslog_priority[STRLEN("PRIORITY=")] = '0' + LOG_PRI(priority);
         iovec[n++] = IOVEC_MAKE_STRING(syslog_priority);
 
         if (priority & LOG_FACMASK) {
@@ -836,7 +836,7 @@ int server_open_stdout_socket(Server *s) {
 void stdout_stream_send_notify(StdoutStream *s) {
         struct iovec iovec = {
                 .iov_base = (char*) "FDSTORE=1",
-                .iov_len = strlen("FDSTORE=1"),
+                .iov_len = STRLEN("FDSTORE=1"),
         };
         struct msghdr msghdr = {
                 .msg_iov = &iovec,
index fae2cd59bec91f39bc65d08e5bf50ec61274fee9..4018288b0cd39283ca728dd3ef2021b0bdae488a 100644 (file)
@@ -132,7 +132,7 @@ static void forward_syslog_raw(Server *s, int priority, const char *buffer, cons
 void server_forward_syslog(Server *s, int priority, const char *identifier, const char *message, const struct ucred *ucred, const struct timeval *tv) {
         struct iovec iovec[5];
         char header_priority[DECIMAL_STR_MAX(priority) + 3], header_time[64],
-             header_pid[sizeof("[]: ")-1 + DECIMAL_STR_MAX(pid_t) + 1];
+             header_pid[STRLEN("[]: ") + DECIMAL_STR_MAX(pid_t) + 1];
         int n = 0;
         time_t t;
         struct tm *tm;
index 833ca415dab546422b07fb2312a004e308e87e8c..8e69a52e29c01bea4d4a9f49b8f813a56ac7329b 100644 (file)
@@ -31,16 +31,16 @@ int main(int argc, char *argv[]) {
 
         /* utf-8 and non-utf-8, message-less and message-ful iovecs */
         struct iovec graph1[] = {
-                {(char*) "GRAPH=graph", strlen("GRAPH=graph")}
+                {(char*) "GRAPH=graph", STRLEN("GRAPH=graph")}
         };
         struct iovec graph2[] = {
-                {(char*) "GRAPH=graph\n", strlen("GRAPH=graph\n")}
+                {(char*) "GRAPH=graph\n", STRLEN("GRAPH=graph\n")}
         };
         struct iovec message1[] = {
-                {(char*) "MESSAGE=graph", strlen("MESSAGE=graph")}
+                {(char*) "MESSAGE=graph", STRLEN("MESSAGE=graph")}
         };
         struct iovec message2[] = {
-                {(char*) "MESSAGE=graph\n", strlen("MESSAGE=graph\n")}
+                {(char*) "MESSAGE=graph\n", STRLEN("MESSAGE=graph\n")}
         };
 
         assert_se(sd_journal_print(LOG_INFO, "piepapo") == 0);
index 7063bd986e81dc849cf45e59b4e0813c64981178..78b8e058b45b92902f00cab2b14183d26b79c46d 100644 (file)
@@ -22,6 +22,7 @@
 #include <arpa/inet.h>
 #include <errno.h>
 #include <stdio.h>
+#include <stdio_ext.h>
 #include <stdlib.h>
 #include <string.h>
 
@@ -876,7 +877,8 @@ int dhcp_lease_save(sd_dhcp_lease *lease, const char *lease_file) {
         if (r < 0)
                 goto fail;
 
-        fchmod(fileno(f), 0644);
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+        (void) fchmod(fileno(f), 0644);
 
         fprintf(f,
                 "# This is private data. Do not parse.\n");
@@ -923,16 +925,16 @@ int dhcp_lease_save(sd_dhcp_lease *lease, const char *lease_file) {
 
         r = sd_dhcp_lease_get_dns(lease, &addresses);
         if (r > 0) {
-                fputs_unlocked("DNS=", f);
+                fputs("DNS=", f);
                 serialize_in_addrs(f, addresses, r);
-                fputs_unlocked("\n", f);
+                fputs("\n", f);
         }
 
         r = sd_dhcp_lease_get_ntp(lease, &addresses);
         if (r > 0) {
-                fputs_unlocked("NTP=", f);
+                fputs("NTP=", f);
                 serialize_in_addrs(f, addresses, r);
-                fputs_unlocked("\n", f);
+                fputs("\n", f);
         }
 
         r = sd_dhcp_lease_get_domainname(lease, &string);
@@ -941,9 +943,9 @@ int dhcp_lease_save(sd_dhcp_lease *lease, const char *lease_file) {
 
         r = sd_dhcp_lease_get_search_domains(lease, &search_domains);
         if (r > 0) {
-                fputs_unlocked("DOMAIN_SEARCH_LIST=", f);
+                fputs("DOMAIN_SEARCH_LIST=", f);
                 fputstrv(f, search_domains, NULL, NULL);
-                fputs_unlocked("\n", f);
+                fputs("\n", f);
         }
 
         r = sd_dhcp_lease_get_hostname(lease, &string);
@@ -987,7 +989,7 @@ int dhcp_lease_save(sd_dhcp_lease *lease, const char *lease_file) {
         }
 
         LIST_FOREACH(options, option, lease->private_options) {
-                char key[strlen("OPTION_000")+1];
+                char key[STRLEN("OPTION_000")+1];
 
                 xsprintf(key, "OPTION_%" PRIu8, option->tag);
                 r = serialize_dhcp_option(f, key, option->data, option->length);
index 8a6e041748496d3e4319e15895db3cc0a9aa7b05..9bd2dadfde66515d89db27c861661d4bba3c1d96 100644 (file)
@@ -18,6 +18,8 @@
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
+#include <stdio_ext.h>
+
 #include "bus-internal.h"
 #include "bus-introspect.h"
 #include "bus-protocol.h"
@@ -37,8 +39,10 @@ int introspect_begin(struct introspect *i, bool trusted) {
         if (!i->f)
                 return -ENOMEM;
 
-        fputs_unlocked(BUS_INTROSPECT_DOCTYPE
-                       "<node>\n", i->f);
+        (void) __fsetlocking(i->f, FSETLOCKING_BYCALLER);
+
+        fputs(BUS_INTROSPECT_DOCTYPE
+              "<node>\n", i->f);
 
         return 0;
 }
@@ -46,12 +50,12 @@ int introspect_begin(struct introspect *i, bool trusted) {
 int introspect_write_default_interfaces(struct introspect *i, bool object_manager) {
         assert(i);
 
-        fputs_unlocked(BUS_INTROSPECT_INTERFACE_PEER
-                       BUS_INTROSPECT_INTERFACE_INTROSPECTABLE
-                       BUS_INTROSPECT_INTERFACE_PROPERTIES, i->f);
+        fputs(BUS_INTROSPECT_INTERFACE_PEER
+              BUS_INTROSPECT_INTERFACE_INTROSPECTABLE
+              BUS_INTROSPECT_INTERFACE_PROPERTIES, i->f);
 
         if (object_manager)
-                fputs_unlocked(BUS_INTROSPECT_INTERFACE_OBJECT_MANAGER, i->f);
+                fputs(BUS_INTROSPECT_INTERFACE_OBJECT_MANAGER, i->f);
 
         return 0;
 }
@@ -77,27 +81,27 @@ int introspect_write_child_nodes(struct introspect *i, Set *s, const char *prefi
 
 static void introspect_write_flags(struct introspect *i, int type, int flags) {
         if (flags & SD_BUS_VTABLE_DEPRECATED)
-                fputs_unlocked("   <annotation name=\"org.freedesktop.DBus.Deprecated\" value=\"true\"/>\n", i->f);
+                fputs("   <annotation name=\"org.freedesktop.DBus.Deprecated\" value=\"true\"/>\n", i->f);
 
         if (type == _SD_BUS_VTABLE_METHOD && (flags & SD_BUS_VTABLE_METHOD_NO_REPLY))
-                fputs_unlocked("   <annotation name=\"org.freedesktop.DBus.Method.NoReply\" value=\"true\"/>\n", i->f);
+                fputs("   <annotation name=\"org.freedesktop.DBus.Method.NoReply\" value=\"true\"/>\n", i->f);
 
         if (IN_SET(type, _SD_BUS_VTABLE_PROPERTY, _SD_BUS_VTABLE_WRITABLE_PROPERTY)) {
                 if (flags & SD_BUS_VTABLE_PROPERTY_EXPLICIT)
-                        fputs_unlocked("   <annotation name=\"org.freedesktop.systemd1.Explicit\" value=\"true\"/>\n", i->f);
+                        fputs("   <annotation name=\"org.freedesktop.systemd1.Explicit\" value=\"true\"/>\n", i->f);
 
                 if (flags & SD_BUS_VTABLE_PROPERTY_CONST)
-                        fputs_unlocked("   <annotation name=\"org.freedesktop.DBus.Property.EmitsChangedSignal\" value=\"const\"/>\n", i->f);
+                        fputs("   <annotation name=\"org.freedesktop.DBus.Property.EmitsChangedSignal\" value=\"const\"/>\n", i->f);
                 else if (flags & SD_BUS_VTABLE_PROPERTY_EMITS_INVALIDATION)
-                        fputs_unlocked("   <annotation name=\"org.freedesktop.DBus.Property.EmitsChangedSignal\" value=\"invalidates\"/>\n", i->f);
+                        fputs("   <annotation name=\"org.freedesktop.DBus.Property.EmitsChangedSignal\" value=\"invalidates\"/>\n", i->f);
                 else if (!(flags & SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE))
-                        fputs_unlocked("   <annotation name=\"org.freedesktop.DBus.Property.EmitsChangedSignal\" value=\"false\"/>\n", i->f);
+                        fputs("   <annotation name=\"org.freedesktop.DBus.Property.EmitsChangedSignal\" value=\"false\"/>\n", i->f);
         }
 
         if (!i->trusted &&
             IN_SET(type, _SD_BUS_VTABLE_METHOD, _SD_BUS_VTABLE_WRITABLE_PROPERTY) &&
             !(flags & SD_BUS_VTABLE_UNPRIVILEGED))
-                fputs_unlocked("   <annotation name=\"org.freedesktop.systemd1.Privileged\" value=\"true\"/>\n", i->f);
+                fputs("   <annotation name=\"org.freedesktop.systemd1.Privileged\" value=\"true\"/>\n", i->f);
 }
 
 static int introspect_write_arguments(struct introspect *i, const char *signature, const char *direction) {
@@ -118,7 +122,7 @@ static int introspect_write_arguments(struct introspect *i, const char *signatur
                 if (direction)
                         fprintf(i->f, " direction=\"%s\"/>\n", direction);
                 else
-                        fputs_unlocked("/>\n", i->f);
+                        fputs("/>\n", i->f);
 
                 signature += l;
         }
@@ -141,7 +145,7 @@ int introspect_write_interface(struct introspect *i, const sd_bus_vtable *v) {
 
                 case _SD_BUS_VTABLE_START:
                         if (v->flags & SD_BUS_VTABLE_DEPRECATED)
-                                fputs_unlocked("  <annotation name=\"org.freedesktop.DBus.Deprecated\" value=\"true\"/>\n", i->f);
+                                fputs("  <annotation name=\"org.freedesktop.DBus.Deprecated\" value=\"true\"/>\n", i->f);
                         break;
 
                 case _SD_BUS_VTABLE_METHOD:
@@ -149,7 +153,7 @@ int introspect_write_interface(struct introspect *i, const sd_bus_vtable *v) {
                         introspect_write_arguments(i, strempty(v->x.method.signature), "in");
                         introspect_write_arguments(i, strempty(v->x.method.result), "out");
                         introspect_write_flags(i, v->type, v->flags);
-                        fputs_unlocked("  </method>\n", i->f);
+                        fputs("  </method>\n", i->f);
                         break;
 
                 case _SD_BUS_VTABLE_PROPERTY:
@@ -159,14 +163,14 @@ int introspect_write_interface(struct introspect *i, const sd_bus_vtable *v) {
                                 v->x.property.signature,
                                 v->type == _SD_BUS_VTABLE_WRITABLE_PROPERTY ? "readwrite" : "read");
                         introspect_write_flags(i, v->type, v->flags);
-                        fputs_unlocked("  </property>\n", i->f);
+                        fputs("  </property>\n", i->f);
                         break;
 
                 case _SD_BUS_VTABLE_SIGNAL:
                         fprintf(i->f, "  <signal name=\"%s\">\n", v->x.signal.member);
                         introspect_write_arguments(i, strempty(v->x.signal.signature), NULL);
                         introspect_write_flags(i, v->type, v->flags);
-                        fputs_unlocked("  </signal>\n", i->f);
+                        fputs("  </signal>\n", i->f);
                         break;
                 }
 
@@ -183,7 +187,7 @@ int introspect_finish(struct introspect *i, sd_bus *bus, sd_bus_message *m, sd_b
         assert(m);
         assert(reply);
 
-        fputs_unlocked("</node>\n", i->f);
+        fputs("</node>\n", i->f);
 
         r = fflush_and_check(i->f);
         if (r < 0)
index d5831a288c020b633ad3f41ffc85693ae78ad343..8d798c0a58f11aad5a9022eb1e26cd7565fd4651 100644 (file)
@@ -18,6 +18,8 @@
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
+#include <stdio_ext.h>
+
 #include "alloc-util.h"
 #include "bus-internal.h"
 #include "bus-match.h"
@@ -954,22 +956,24 @@ char *bus_match_to_string(struct bus_match_component *components, unsigned n_com
         if (!f)
                 return NULL;
 
+        __fsetlocking(f, FSETLOCKING_BYCALLER);
+
         for (i = 0; i < n_components; i++) {
                 char buf[32];
 
                 if (i != 0)
-                        fputc_unlocked(',', f);
+                        fputc(',', f);
 
-                fputs_unlocked(bus_match_node_type_to_string(components[i].type, buf, sizeof(buf)), f);
-                fputc_unlocked('=', f);
-                fputc_unlocked('\'', f);
+                fputs(bus_match_node_type_to_string(components[i].type, buf, sizeof(buf)), f);
+                fputc('=', f);
+                fputc('\'', f);
 
                 if (components[i].type == BUS_MATCH_MESSAGE_TYPE)
-                        fputs_unlocked(bus_message_type_to_string(components[i].value_u8), f);
+                        fputs(bus_message_type_to_string(components[i].value_u8), f);
                 else
-                        fputs_unlocked(components[i].value_str, f);
+                        fputs(components[i].value_str, f);
 
-                fputc_unlocked('\'', f);
+                fputc('\'', f);
         }
 
         r = fflush_and_check(f);
index 9d4ac8ee0fd0fd99cb7eea564915d06c43747fc0..219cff1f6e7707af86d68eac9dfa96fe78d1c10f 100644 (file)
@@ -707,6 +707,7 @@ static int message_new_reply(
                 sd_bus_message **m) {
 
         sd_bus_message *t;
+        uint64_t cookie;
         int r;
 
         assert_return(call, -EINVAL);
@@ -715,6 +716,10 @@ static int message_new_reply(
         assert_return(call->bus->state != BUS_UNSET, -ENOTCONN);
         assert_return(m, -EINVAL);
 
+        cookie = BUS_MESSAGE_COOKIE(call);
+        if (cookie == 0)
+                return -EOPNOTSUPP;
+
         r = sd_bus_message_new(call->bus, &t, type);
         if (r < 0)
                 return -ENOMEM;
@@ -722,10 +727,7 @@ static int message_new_reply(
         assert(t);
 
         t->header->flags |= BUS_MESSAGE_NO_REPLY_EXPECTED;
-        t->reply_cookie = BUS_MESSAGE_COOKIE(call);
-        if (t->reply_cookie == 0)
-                return -EOPNOTSUPP;
-
+        t->reply_cookie = cookie;
         r = message_append_reply_cookie(t, t->reply_cookie);
         if (r < 0)
                 goto fail;
index 4c7dbaa2c9d19036cff85d24cc128fdaa2e8433b..121197bbcb9e2f44f9990b054595baf97bdc8c30 100644 (file)
@@ -960,7 +960,7 @@ static int process_introspect(
                 if (!streq_ptr(previous_interface, c->interface)) {
 
                         if (previous_interface)
-                                fputs_unlocked(" </interface>\n", intro.f);
+                                fputs(" </interface>\n", intro.f);
 
                         fprintf(intro.f, " <interface name=\"%s\">\n", c->interface);
                 }
@@ -973,7 +973,7 @@ static int process_introspect(
         }
 
         if (previous_interface)
-                fputs_unlocked(" </interface>\n", intro.f);
+                fputs(" </interface>\n", intro.f);
 
         if (empty) {
                 /* Nothing?, let's see if we exist at all, and if not
index 80cec897c1bb75897e64d0ae1d38fd1157f43694..d72cb616e000846b1de253c0d96b3a21b3cc97ad 100644 (file)
@@ -232,8 +232,9 @@ static int bus_socket_auth_verify_client(sd_bus *b) {
 
         if (f)
                 b->can_fds =
-                        (f - e == strlen("\r\nAGREE_UNIX_FD")) &&
-                        memcmp(e + 2, "AGREE_UNIX_FD", strlen("AGREE_UNIX_FD")) == 0;
+                        (f - e == STRLEN("\r\nAGREE_UNIX_FD")) &&
+                        memcmp(e + 2, "AGREE_UNIX_FD",
+                               STRLEN("AGREE_UNIX_FD")) == 0;
 
         b->rbuffer_size -= (start - (char*) b->rbuffer);
         memmove(b->rbuffer, start, b->rbuffer_size);
@@ -607,11 +608,9 @@ static void bus_get_peercred(sd_bus *b) {
         b->ucred_valid = getpeercred(b->input_fd, &b->ucred) >= 0;
 
         /* Get the SELinux context of the peer */
-        if (mac_selinux_use()) {
-                r = getpeersec(b->input_fd, &b->label);
-                if (r < 0 && r != -EOPNOTSUPP)
-                        log_debug_errno(r, "Failed to determine peer security context: %m");
-        }
+        r = getpeersec(b->input_fd, &b->label);
+        if (r < 0 && r != -EOPNOTSUPP)
+                log_debug_errno(r, "Failed to determine peer security context: %m");
 }
 
 static int bus_socket_start_auth_client(sd_bus *b) {
index 5b55f304de1d18b5f67d1523aedc509ed07ea75a..ab22d6e4de2e312768a2a895a7bafd65252cb9f9 100644 (file)
@@ -63,7 +63,7 @@ struct sd_bus_track {
         ({                                                              \
                 char *_x;                                               \
                 size_t _l = strlen(name);                               \
-                _x = alloca(strlen(MATCH_PREFIX)+_l+strlen(MATCH_SUFFIX)+1); \
+                _x = alloca(STRLEN(MATCH_PREFIX)+_l+STRLEN(MATCH_SUFFIX)+1); \
                 strcpy(stpcpy(stpcpy(_x, MATCH_PREFIX), name), MATCH_SUFFIX); \
                 _x;                                                     \
         })
index 04f50e2ad06e42e32a7433aa4c00c353b572fd17..cd9ec042bf40e9b7fd40c012d5aca729074a754d 100644 (file)
@@ -293,7 +293,7 @@ static int device_compare(const void *_a, const void *_b) {
                  * entire sound card completed. The kernel makes this guarantee
                  * when creating those devices, and hence we should too when
                  * enumerating them. */
-                sound_a += strlen("/sound/card");
+                sound_a += STRLEN("/sound/card");
                 sound_a = strchr(sound_a, '/');
 
                 if (sound_a) {
index 424965ecd58db44adbbd5c83f4b2f183dd7e8511..77f0f4b2eee164b9d767a8a31b6efff152aa98cf 100644 (file)
@@ -1050,7 +1050,7 @@ int device_update_db(sd_device *device) {
                         const char *devlink;
 
                         FOREACH_DEVICE_DEVLINK(device, devlink)
-                                fprintf(f, "S:%s\n", devlink + strlen("/dev/"));
+                                fprintf(f, "S:%s\n", devlink + STRLEN("/dev/"));
 
                         if (device->devlink_priority != 0)
                                 fprintf(f, "L:%i\n", device->devlink_priority);
index f8b9f9e3b08a77133e79930e4b45a8b52476f168..a96d7445cea3b4612823374365d0743c6e5d4043 100644 (file)
@@ -209,7 +209,7 @@ int device_set_syspath(sd_device *device, const char *_syspath, bool verify) {
                         return -ENOMEM;
         }
 
-        devpath = syspath + strlen("/sys");
+        devpath = syspath + STRLEN("/sys");
 
         r = device_add_property_internal(device, "DEVPATH", devpath);
         if (r < 0)
@@ -700,7 +700,7 @@ static int device_new_from_child(sd_device **ret, sd_device *child) {
         path = strdup(syspath);
         if (!path)
                 return -ENOMEM;
-        subdir = path + strlen("/sys");
+        subdir = path + STRLEN("/sys");
 
         for (;;) {
                 char *pos;
index f6460b9f7c062f6d5cad6bef52db67e4d2ceb157..8f4814019e208248c35b91b2d4eed24c4f4d9ae1 100644 (file)
@@ -104,7 +104,7 @@ _public_ int sd_network_get_route_domains(char ***ret) {
 }
 
 static int network_link_get_string(int ifindex, const char *field, char **ret) {
-        char path[strlen("/run/systemd/netif/links/") + DECIMAL_STR_MAX(ifindex) + 1];
+        char path[STRLEN("/run/systemd/netif/links/") + DECIMAL_STR_MAX(ifindex) + 1];
         _cleanup_free_ char *s = NULL;
         int r;
 
@@ -128,7 +128,7 @@ static int network_link_get_string(int ifindex, const char *field, char **ret) {
 }
 
 static int network_link_get_strv(int ifindex, const char *key, char ***ret) {
-        char path[strlen("/run/systemd/netif/links/") + DECIMAL_STR_MAX(ifindex) + 1];
+        char path[STRLEN("/run/systemd/netif/links/") + DECIMAL_STR_MAX(ifindex) + 1];
         _cleanup_strv_free_ char **a = NULL;
         _cleanup_free_ char *s = NULL;
         int r;
@@ -224,7 +224,7 @@ _public_ int sd_network_link_get_route_domains(int ifindex, char ***ret) {
 }
 
 static int network_link_get_ifindexes(int ifindex, const char *key, int **ret) {
-        char path[strlen("/run/systemd/netif/links/") + DECIMAL_STR_MAX(ifindex) + 1];
+        char path[STRLEN("/run/systemd/netif/links/") + DECIMAL_STR_MAX(ifindex) + 1];
         _cleanup_free_ int *ifis = NULL;
         _cleanup_free_ char *s = NULL;
         size_t allocated = 0, c = 0;
index 2457f8705c644d200a4dd62bd0a619b9820b85e0..2d788106bb5c2c66a3073884802bd1beed55a7b9 100644 (file)
@@ -20,6 +20,7 @@
 ***/
 
 #include <errno.h>
+#include <stdio_ext.h>
 #include <string.h>
 #include <unistd.h>
 
@@ -358,14 +359,15 @@ int x11_write_data(Context *c) {
         if (r < 0)
                 return r;
 
-        fchmod(fileno(f), 0644);
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+        (void) fchmod(fileno(f), 0644);
 
-        fputs_unlocked("# Written by systemd-localed(8), read by systemd-localed and Xorg. It's\n"
-                       "# probably wise not to edit this file manually. Use localectl(1) to\n"
-                       "# instruct systemd-localed to update it.\n"
-                       "Section \"InputClass\"\n"
-                       "        Identifier \"system-keyboard\"\n"
-                       "        MatchIsKeyboard \"on\"\n", f);
+        fputs("# Written by systemd-localed(8), read by systemd-localed and Xorg. It's\n"
+              "# probably wise not to edit this file manually. Use localectl(1) to\n"
+              "# instruct systemd-localed to update it.\n"
+              "Section \"InputClass\"\n"
+              "        Identifier \"system-keyboard\"\n"
+              "        MatchIsKeyboard \"on\"\n", f);
 
         if (!isempty(c->x11_layout))
                 fprintf(f, "        Option \"XkbLayout\" \"%s\"\n", c->x11_layout);
@@ -379,7 +381,7 @@ int x11_write_data(Context *c) {
         if (!isempty(c->x11_options))
                 fprintf(f, "        Option \"XkbOptions\" \"%s\"\n", c->x11_options);
 
-        fputs_unlocked("EndSection\n", f);
+        fputs("EndSection\n", f);
 
         r = fflush_sync_and_check(f);
         if (r < 0)
index f4aa9a6651b05d4df0749d753588a771e2b8bcc7..b99e7abf911d84f0da1f66a2642ef4f77332b277 100644 (file)
@@ -20,6 +20,7 @@
 
 #include <errno.h>
 #include <fcntl.h>
+#include <stdio_ext.h>
 #include <string.h>
 #include <unistd.h>
 
@@ -102,7 +103,8 @@ int seat_save(Seat *s) {
         if (r < 0)
                 goto fail;
 
-        fchmod(fileno(f), 0644);
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+        (void) fchmod(fileno(f), 0644);
 
         fprintf(f,
                 "# This is private data. Do not parse.\n"
@@ -128,7 +130,7 @@ int seat_save(Seat *s) {
         if (s->sessions) {
                 Session *i;
 
-                fputs_unlocked("SESSIONS=", f);
+                fputs("SESSIONS=", f);
                 LIST_FOREACH(sessions_by_seat, i, s->sessions) {
                         fprintf(f,
                                 "%s%c",
@@ -136,7 +138,7 @@ int seat_save(Seat *s) {
                                 i->sessions_by_seat_next ? ' ' : '\n');
                 }
 
-                fputs_unlocked("UIDS=", f);
+                fputs("UIDS=", f);
                 LIST_FOREACH(sessions_by_seat, i, s->sessions)
                         fprintf(f,
                                 UID_FMT"%c",
index 01469438b1462a7a5b1c35801d07f514cdb2fe30..32b2045696cfe38c8c224598609f1ed5881c71e7 100644 (file)
@@ -22,6 +22,7 @@
 #include <string.h>
 #include <sys/mount.h>
 #include <unistd.h>
+#include <stdio_ext.h>
 
 #include "alloc-util.h"
 #include "bus-common-errors.h"
@@ -150,7 +151,8 @@ static int user_save_internal(User *u) {
         if (r < 0)
                 goto fail;
 
-        fchmod(fileno(f), 0644);
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+        (void) fchmod(fileno(f), 0644);
 
         fprintf(f,
                 "# This is private data. Do not parse.\n"
@@ -183,18 +185,18 @@ static int user_save_internal(User *u) {
                 Session *i;
                 bool first;
 
-                fputs_unlocked("SESSIONS=", f);
+                fputs("SESSIONS=", f);
                 first = true;
                 LIST_FOREACH(sessions_by_user, i, u->sessions) {
                         if (first)
                                 first = false;
                         else
-                                fputc_unlocked(' ', f);
+                                fputc(' ', f);
 
-                        fputs_unlocked(i->id, f);
+                        fputs(i->id, f);
                 }
 
-                fputs_unlocked("\nSEATS=", f);
+                fputs("\nSEATS=", f);
                 first = true;
                 LIST_FOREACH(sessions_by_user, i, u->sessions) {
                         if (!i->seat)
@@ -203,12 +205,12 @@ static int user_save_internal(User *u) {
                         if (first)
                                 first = false;
                         else
-                                fputc_unlocked(' ', f);
+                                fputc(' ', f);
 
-                        fputs_unlocked(i->seat->id, f);
+                        fputs(i->seat->id, f);
                 }
 
-                fputs_unlocked("\nACTIVE_SESSIONS=", f);
+                fputs("\nACTIVE_SESSIONS=", f);
                 first = true;
                 LIST_FOREACH(sessions_by_user, i, u->sessions) {
                         if (!session_is_active(i))
@@ -217,12 +219,12 @@ static int user_save_internal(User *u) {
                         if (first)
                                 first = false;
                         else
-                                fputc_unlocked(' ', f);
+                                fputc(' ', f);
 
-                        fputs_unlocked(i->id, f);
+                        fputs(i->id, f);
                 }
 
-                fputs_unlocked("\nONLINE_SESSIONS=", f);
+                fputs("\nONLINE_SESSIONS=", f);
                 first = true;
                 LIST_FOREACH(sessions_by_user, i, u->sessions) {
                         if (session_get_state(i) == SESSION_CLOSING)
@@ -231,12 +233,12 @@ static int user_save_internal(User *u) {
                         if (first)
                                 first = false;
                         else
-                                fputc_unlocked(' ', f);
+                                fputc(' ', f);
 
-                        fputs_unlocked(i->id, f);
+                        fputs(i->id, f);
                 }
 
-                fputs_unlocked("\nACTIVE_SEATS=", f);
+                fputs("\nACTIVE_SEATS=", f);
                 first = true;
                 LIST_FOREACH(sessions_by_user, i, u->sessions) {
                         if (!session_is_active(i) || !i->seat)
@@ -245,12 +247,12 @@ static int user_save_internal(User *u) {
                         if (first)
                                 first = false;
                         else
-                                fputc_unlocked(' ', f);
+                                fputc(' ', f);
 
-                        fputs_unlocked(i->seat->id, f);
+                        fputs(i->seat->id, f);
                 }
 
-                fputs_unlocked("\nONLINE_SEATS=", f);
+                fputs("\nONLINE_SEATS=", f);
                 first = true;
                 LIST_FOREACH(sessions_by_user, i, u->sessions) {
                         if (session_get_state(i) == SESSION_CLOSING || !i->seat)
@@ -259,11 +261,11 @@ static int user_save_internal(User *u) {
                         if (first)
                                 first = false;
                         else
-                                fputc_unlocked(' ', f);
+                                fputc(' ', f);
 
-                        fputs_unlocked(i->seat->id, f);
+                        fputs(i->seat->id, f);
                 }
-                fputc_unlocked('\n', f);
+                fputc('\n', f);
         }
 
         r = fflush_and_check(f);
@@ -342,16 +344,13 @@ static int user_mkdir_runtime_path(User *u) {
         if (path_is_mount_point(u->runtime_path, NULL, 0) <= 0) {
                 _cleanup_free_ char *t = NULL;
 
-                (void) mkdir_label(u->runtime_path, 0700);
+                r = asprintf(&t, "mode=0700,uid=" UID_FMT ",gid=" GID_FMT ",size=%zu%s",
+                             u->uid, u->gid, u->manager->runtime_dir_size,
+                             mac_smack_use() ? ",smackfsroot=*" : "");
+                if (r < 0)
+                        return log_oom();
 
-                if (mac_smack_use())
-                        r = asprintf(&t, "mode=0700,smackfsroot=*,uid=" UID_FMT ",gid=" GID_FMT ",size=%zu", u->uid, u->gid, u->manager->runtime_dir_size);
-                else
-                        r = asprintf(&t, "mode=0700,uid=" UID_FMT ",gid=" GID_FMT ",size=%zu", u->uid, u->gid, u->manager->runtime_dir_size);
-                if (r < 0) {
-                        r = log_oom();
-                        goto fail;
-                }
+                (void) mkdir_label(u->runtime_path, 0700);
 
                 r = mount("tmpfs", u->runtime_path, "tmpfs", MS_NODEV|MS_NOSUID, t);
                 if (r < 0) {
@@ -459,7 +458,7 @@ int user_start(User *u) {
         u->stopping = false;
 
         if (!u->started) {
-                log_debug("New user %s logged in.", u->name);
+                log_debug("Starting services for new user %s.", u->name);
 
                 /* Make XDG_RUNTIME_DIR */
                 r = user_mkdir_runtime_path(u);
@@ -528,9 +527,7 @@ static int user_stop_service(User *u) {
                 return r;
         }
 
-        free(u->service_job);
-        u->service_job = job;
-
+        free_and_replace(u->service_job, job);
         return r;
 }
 
index 3d3c7cb6b8bc6426c4a566f1793c45207851d13f..7375d83a44502d388dbb93ec7a6adfd008721691 100644 (file)
@@ -21,6 +21,7 @@
 #include <errno.h>
 #include <string.h>
 #include <unistd.h>
+#include <stdio_ext.h>
 
 #include "sd-messages.h"
 
@@ -138,6 +139,7 @@ int machine_save(Machine *m) {
         if (r < 0)
                 goto fail;
 
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
         (void) fchmod(fileno(f), 0644);
 
         fprintf(f,
@@ -201,16 +203,16 @@ int machine_save(Machine *m) {
         if (m->n_netif > 0) {
                 unsigned i;
 
-                fputs_unlocked("NETIF=", f);
+                fputs("NETIF=", f);
 
                 for (i = 0; i < m->n_netif; i++) {
                         if (i != 0)
-                                fputc_unlocked(' ', f);
+                                fputc(' ', f);
 
                         fprintf(f, "%i", m->netif[i]);
                 }
 
-                fputc_unlocked('\n', f);
+                fputc('\n', f);
         }
 
         r = fflush_and_check(f);
@@ -608,7 +610,7 @@ void machine_release_unit(Machine *m) {
 }
 
 int machine_get_uid_shift(Machine *m, uid_t *ret) {
-        char p[strlen("/proc//uid_map") + DECIMAL_STR_MAX(pid_t) + 1];
+        char p[STRLEN("/proc//uid_map") + DECIMAL_STR_MAX(pid_t) + 1];
         uid_t uid_base, uid_shift, uid_range;
         gid_t gid_base, gid_shift, gid_range;
         _cleanup_fclose_ FILE *f = NULL;
index b7285e419db5401a9ac7ba54f116ea7aeaf70207..c435bb9b5a2a84de930f732ccc8a0be3c51e32c9 100644 (file)
@@ -194,8 +194,8 @@ static int call_get_os_release(sd_bus *bus, const char *method, const char *name
 
 static int list_machines(int argc, char *argv[], void *userdata) {
 
-        size_t max_name = strlen("MACHINE"), max_class = strlen("CLASS"),
-               max_service = strlen("SERVICE"), max_os = strlen("OS"), max_version_id = strlen("VERSION");
+        size_t max_name = STRLEN("MACHINE"), max_class = STRLEN("CLASS"),
+               max_service = STRLEN("SERVICE"), max_os = STRLEN("OS"), max_version_id = STRLEN("VERSION");
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
         _cleanup_free_ char *prefix = NULL;
@@ -284,13 +284,13 @@ static int list_machines(int argc, char *argv[], void *userdata) {
 
         qsort_safe(machines, n_machines, sizeof(MachineInfo), compare_machine_info);
 
-        /* Allocate for prefix max characters for all fields + spaces between them + strlen(",\n") */
+        /* Allocate for prefix max characters for all fields + spaces between them + STRLEN(",\n") */
         r = asprintf(&prefix, "%-*s",
                         (int) (max_name +
                         max_class +
                         max_service +
                         max_os +
-                        max_version_id + 5 + strlen(",\n")),
+                        max_version_id + 5 + STRLEN(",\n")),
                         ",\n");
         if (r < 0) {
                 r = log_oom();
@@ -352,7 +352,7 @@ static int compare_image_info(const void *a, const void *b) {
 static int list_images(int argc, char *argv[], void *userdata) {
 
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
-        size_t max_name = strlen("NAME"), max_type = strlen("TYPE"), max_size = strlen("USAGE"), max_crtime = strlen("CREATED"), max_mtime = strlen("MODIFIED");
+        size_t max_name = STRLEN("NAME"), max_type = STRLEN("TYPE"), max_size = STRLEN("USAGE"), max_crtime = STRLEN("CREATED"), max_mtime = STRLEN("MODIFIED");
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
         _cleanup_free_ ImageInfo *images = NULL;
         size_t n_images = 0, n_allocated = 0, j;
@@ -2527,7 +2527,7 @@ static int compare_transfer_info(const void *a, const void *b) {
 }
 
 static int list_transfers(int argc, char *argv[], void *userdata) {
-        size_t max_type = strlen("TYPE"), max_local = strlen("LOCAL"), max_remote = strlen("REMOTE");
+        size_t max_type = STRLEN("TYPE"), max_local = STRLEN("LOCAL"), max_remote = STRLEN("REMOTE");
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_free_ TransferInfo *transfers = NULL;
index 8f460d06171ab6cfa6be1cad766627312d4e95cb..330d6b3d6e63962d682a086f1217b0078adfef6e 100644 (file)
@@ -1320,7 +1320,7 @@ static int method_map_to_machine_user(sd_bus_message *message, void *userdata, s
 
         HASHMAP_FOREACH(machine, m->machines, i) {
                 _cleanup_fclose_ FILE *f = NULL;
-                char p[strlen("/proc//uid_map") + DECIMAL_STR_MAX(pid_t) + 1];
+                char p[STRLEN("/proc//uid_map") + DECIMAL_STR_MAX(pid_t) + 1];
 
                 if (machine->class != MACHINE_CONTAINER)
                         continue;
@@ -1438,7 +1438,7 @@ static int method_map_to_machine_group(sd_bus_message *message, void *groupdata,
 
         HASHMAP_FOREACH(machine, m->machines, i) {
                 _cleanup_fclose_ FILE *f = NULL;
-                char p[strlen("/proc//gid_map") + DECIMAL_STR_MAX(pid_t) + 1];
+                char p[STRLEN("/proc//gid_map") + DECIMAL_STR_MAX(pid_t) + 1];
 
                 if (machine->class != MACHINE_CONTAINER)
                         continue;
index d4810208936483205bc377bdeab3a881fbe8c4ea..b5cb863e5d8b78b7104e7ed5941ff897a09d9e8e 100644 (file)
@@ -37,6 +37,7 @@
 #include "machined.h"
 #include "process-util.h"
 #include "signal-util.h"
+#include "special.h"
 
 Manager *manager_new(void) {
         Manager *m;
@@ -112,7 +113,7 @@ static int manager_add_host_machine(Manager *m) {
         if (!rd)
                 return log_oom();
 
-        unit = strdup("-.slice");
+        unit = strdup(SPECIAL_ROOT_SLICE);
         if (!unit)
                 return log_oom();
 
index da3647e7e2fe50ece1efd1477a21dfe8f5f2d1c0..f82e9dac446700ce5c769d2b13b36f3ff61b517e 100644 (file)
@@ -41,6 +41,7 @@
 #include "strv.h"
 #include "udev-util.h"
 #include "unit-name.h"
+#include "user-util.h"
 #include "terminal-util.h"
 
 enum {
@@ -69,6 +70,8 @@ static usec_t arg_timeout_idle = USEC_INFINITY;
 static bool arg_timeout_idle_set = false;
 static char **arg_automount_property = NULL;
 static int arg_bind_device = -1;
+static uid_t arg_uid = UID_INVALID;
+static gid_t arg_gid = GID_INVALID;
 static bool arg_fsck = true;
 static bool arg_aggressive_gc = false;
 
@@ -89,6 +92,7 @@ static void help(void) {
                "     --discover                   Discover mount device metadata\n"
                "  -t --type=TYPE                  File system type\n"
                "  -o --options=OPTIONS            Mount options\n"
+               "     --owner=USER                 Add uid= and gid= options for USER\n"
                "     --fsck=no                    Don't run file system check before mount\n"
                "     --description=TEXT           Description for unit\n"
                "  -p --property=NAME=VALUE        Set mount unit property\n"
@@ -116,6 +120,7 @@ static int parse_argv(int argc, char *argv[]) {
                 ARG_DISCOVER,
                 ARG_MOUNT_TYPE,
                 ARG_MOUNT_OPTIONS,
+                ARG_OWNER,
                 ARG_FSCK,
                 ARG_DESCRIPTION,
                 ARG_TIMEOUT_IDLE,
@@ -139,6 +144,7 @@ static int parse_argv(int argc, char *argv[]) {
                 { "discover",           no_argument,       NULL, ARG_DISCOVER           },
                 { "type",               required_argument, NULL, 't'                    },
                 { "options",            required_argument, NULL, 'o'                    },
+                { "owner",              required_argument, NULL, ARG_OWNER              },
                 { "fsck",               required_argument, NULL, ARG_FSCK               },
                 { "description",        required_argument, NULL, ARG_DESCRIPTION        },
                 { "property",           required_argument, NULL, 'p'                    },
@@ -220,6 +226,18 @@ static int parse_argv(int argc, char *argv[]) {
                                 return log_oom();
                         break;
 
+                case ARG_OWNER: {
+                        const char *user = optarg;
+
+                        r = get_user_creds(&user, &arg_uid, &arg_gid, NULL, NULL);
+                        if (r < 0)
+                                return log_error_errno(r,
+                                                       r == -EBADMSG ? "UID or GID of user %s are invalid."
+                                                                     : "Cannot use \"%s\" as owner: %m",
+                                                       optarg);
+                        break;
+                }
+
                 case ARG_FSCK:
                         r = parse_boolean(optarg);
                         if (r < 0)
@@ -422,6 +440,7 @@ static int transient_unit_set_properties(sd_bus_message *m, char **properties) {
 }
 
 static int transient_mount_set_properties(sd_bus_message *m) {
+        _cleanup_free_ char *options = NULL;
         int r;
 
         assert(m);
@@ -442,12 +461,25 @@ static int transient_mount_set_properties(sd_bus_message *m) {
                         return r;
         }
 
-        if (arg_mount_options) {
-                r = sd_bus_message_append(m, "(sv)", "Options", "s", arg_mount_options);
+        /* Prepend uid=…,gid=… if arg_uid is set */
+        if (arg_uid != UID_INVALID) {
+                r = asprintf(&options,
+                             "uid=" UID_FMT ",gid=" GID_FMT "%s%s",
+                             arg_uid, arg_gid,
+                             arg_mount_options ? "," : "", arg_mount_options);
                 if (r < 0)
-                        return r;
+                        return -ENOMEM;
         }
 
+        if (options || arg_mount_options) {
+                log_debug("Using mount options: %s", options ?: arg_mount_options);
+
+                r = sd_bus_message_append(m, "(sv)", "Options", "s", options ?: arg_mount_options);
+                if (r < 0)
+                        return r;
+        } else
+                log_debug("Not using any mount options");
+
         if (arg_fsck) {
                 _cleanup_free_ char *fsck = NULL;
 
@@ -1604,6 +1636,23 @@ int main(int argc, char* argv[]) {
                 }
         }
 
+        /* The kernel (properly) refuses mounting file systems with unknown uid=,gid= options,
+         * but not for all filesystem types. Let's try to catch the cases where the option
+         * would be used if the file system does not support it. It is also possible to
+         * autodetect the file system, but that's only possible with disk-based file systems
+         * which incidentally seem to be implemented more carefully and reject unknown options,
+         * so it's probably OK that we do the check only when the type is specified.
+         */
+        if (arg_mount_type &&
+            !streq(arg_mount_type, "auto") &&
+            arg_uid != UID_INVALID &&
+            !fstype_can_uid_gid(arg_mount_type)) {
+                log_error("File system type %s is not known to support uid=/gid=, refusing.",
+                          arg_mount_type);
+                r = -EOPNOTSUPP;
+                goto finish;
+        }
+
         switch (arg_action) {
 
         case ACTION_MOUNT:
index 5530760e197fb859e69a91aaf544c8df1b151eba..7afe30f7fbae15deabdd3f49944d88c4ba225779 100644 (file)
@@ -138,7 +138,7 @@ static void netdev_free(NetDev *netdev) {
 
         netdev_cancel_callbacks(netdev);
 
-        if (netdev->ifname)
+        if (netdev->ifname && netdev->manager)
                 hashmap_remove(netdev->manager->netdevs, netdev->ifname);
 
         free(netdev->filename);
@@ -601,8 +601,7 @@ int netdev_join(NetDev *netdev, Link *link, sd_netlink_message_handler_t callbac
 }
 
 static int netdev_load_one(Manager *manager, const char *filename) {
-        _cleanup_netdev_unref_ NetDev *netdev = NULL;
-        _cleanup_free_ NetDev *netdev_raw = NULL;
+        _cleanup_netdev_unref_ NetDev *netdev_raw = NULL, *netdev = NULL;
         _cleanup_fclose_ FILE *file = NULL;
         const char *dropin_dirname;
         bool independent = false;
@@ -628,9 +627,11 @@ static int netdev_load_one(Manager *manager, const char *filename) {
         if (!netdev_raw)
                 return log_oom();
 
+        netdev_raw->n_ref = 1;
         netdev_raw->kind = _NETDEV_KIND_INVALID;
-        dropin_dirname = strjoina(basename(filename), ".d");
+        netdev_raw->state = _NETDEV_STATE_INVALID;
 
+        dropin_dirname = strjoina(basename(filename), ".d");
         r = config_parse_many(filename, network_dirs, dropin_dirname,
                               "Match\0NetDev\0",
                               config_item_perf_lookup, network_netdev_gperf_lookup,
@@ -638,10 +639,6 @@ static int netdev_load_one(Manager *manager, const char *filename) {
         if (r < 0)
                 return r;
 
-        r = fseek(file, 0, SEEK_SET);
-        if (r < 0)
-                return -errno;
-
         /* skip out early if configuration does not match the environment */
         if (net_match_config(NULL, NULL, NULL, NULL, NULL,
                              netdev_raw->match_host, netdev_raw->match_virt,
@@ -659,15 +656,18 @@ static int netdev_load_one(Manager *manager, const char *filename) {
                 return 0;
         }
 
+        r = fseek(file, 0, SEEK_SET);
+        if (r < 0)
+                return -errno;
+
         netdev = malloc0(NETDEV_VTABLE(netdev_raw)->object_size);
         if (!netdev)
                 return log_oom();
 
         netdev->n_ref = 1;
         netdev->manager = manager;
-        netdev->state = _NETDEV_STATE_INVALID;
         netdev->kind = netdev_raw->kind;
-        netdev->ifname = netdev_raw->ifname;
+        netdev->state = _NETDEV_STATE_INVALID;
 
         if (NETDEV_VTABLE(netdev)->init)
                 NETDEV_VTABLE(netdev)->init(netdev);
index ec652514649cefc1e1f1257602f71781f740694c..24915b2b04b3ab68cc0cfab5d81beb7290756fd2 100644 (file)
@@ -143,7 +143,7 @@ typedef struct NetDevVTable {
 
 extern const NetDevVTable * const netdev_vtable[_NETDEV_KIND_MAX];
 
-#define NETDEV_VTABLE(n) netdev_vtable[(n)->kind]
+#define NETDEV_VTABLE(n) ((n)->kind != _NETDEV_KIND_INVALID ? netdev_vtable[(n)->kind] : NULL)
 
 /* For casting a netdev into the various netdev kinds */
 #define DEFINE_NETDEV_CAST(UPPERCASE, MixedCase)                            \
index 262b715206518c154fd88d243ef08ea637bb2ec4..59ce098cd10bb8cbd3773f11ec0bb116c858f4f7 100644 (file)
@@ -340,7 +340,7 @@ static int list_links(int argc, char *argv[], void *userdata) {
 /* IEEE Organizationally Unique Identifier vendor string */
 static int ieee_oui(sd_hwdb *hwdb, const struct ether_addr *mac, char **ret) {
         const char *description;
-        char modalias[strlen("OUI:XXYYXXYYXXYY") + 1], *desc;
+        char modalias[STRLEN("OUI:XXYYXXYYXXYY") + 1], *desc;
         int r;
 
         assert(ret);
index ac1781d83ee432f7b95e718637185050696dc496..0b46deb00936577339f8a94922d46ea19518cf50 100644 (file)
@@ -462,12 +462,21 @@ static int dhcp_lease_acquired(sd_dhcp_client *client, Link *link) {
         }
 
         if (link->network->dhcp_use_hostname) {
-                const char *hostname = NULL;
+                const char *dhcpname = NULL;
+                _cleanup_free_ char *hostname = NULL;
 
                 if (link->network->dhcp_hostname)
-                        hostname = link->network->dhcp_hostname;
+                        dhcpname = link->network->dhcp_hostname;
                 else
-                        (void) sd_dhcp_lease_get_hostname(lease, &hostname);
+                        (void) sd_dhcp_lease_get_hostname(lease, &dhcpname);
+
+                if (dhcpname) {
+                        r = shorten_overlong(dhcpname, &hostname);
+                        if (r < 0)
+                                log_link_warning_errno(link, r, "Unable to shorten overlong DHCP hostname '%s', ignoring: %m", dhcpname);
+                        if (r == 1)
+                                log_link_notice(link, "Overlong DCHP hostname received, shortened from '%s' to '%s'", dhcpname, hostname);
+                }
 
                 if (hostname) {
                         r = manager_set_hostname(link->manager, hostname);
index 526db69d5beb03e87a26cd4d2cf3e808306ae670..31b7c6b0f4f28f170510bbae92810fc117181e09 100644 (file)
@@ -29,6 +29,7 @@
 #include "networkd-manager.h"
 #include "networkd-network.h"
 #include "string-util.h"
+#include "socket-util.h"
 
 static bool ipv6_proxy_ndp_is_needed(Link *link) {
         assert(link);
@@ -39,7 +40,7 @@ static bool ipv6_proxy_ndp_is_needed(Link *link) {
         if (!link->network)
                 return false;
 
-        if (link->network->ipv6_proxy_ndp != -1)
+        if (link->network->ipv6_proxy_ndp >= 0)
                 return link->network->ipv6_proxy_ndp;
 
         if (link->network->n_ipv6_proxy_ndp_addresses == 0)
@@ -54,6 +55,9 @@ static int ipv6_proxy_ndp_set(Link *link) {
 
         assert(link);
 
+        if (!socket_ipv6_is_supported())
+                return 0;
+
         v = ipv6_proxy_ndp_is_needed(link);
         p = strjoina("/proc/sys/net/ipv6/conf/", link->ifname, "/proxy_ndp");
 
@@ -199,6 +203,8 @@ int ipv6_proxy_ndp_addresses_configure(Link *link) {
         IPv6ProxyNDPAddress *ipv6_proxy_ndp_address;
         int r;
 
+        assert(link);
+
         /* enable or disable proxy_ndp itself depending on whether ipv6_proxy_ndp_addresses are set or not */
         r = ipv6_proxy_ndp_set(link);
         if (r != 0)
index 6c4711e2e8d2e17870545efa3ec1954537f090b1..60ac980ad93666617343d61b7160a64f1d94a001 100644 (file)
@@ -21,6 +21,7 @@
 #include <netinet/ether.h>
 #include <linux/if.h>
 #include <unistd.h>
+#include <stdio_ext.h>
 
 #include "alloc-util.h"
 #include "bus-util.h"
@@ -3360,16 +3361,16 @@ static void print_link_hashmap(FILE *f, const char *prefix, Hashmap* h) {
         if (hashmap_isempty(h))
                 return;
 
-        fputs_unlocked(prefix, f);
+        fputs(prefix, f);
         HASHMAP_FOREACH(link, h, i) {
                 if (space)
-                        fputc_unlocked(' ', f);
+                        fputc(' ', f);
 
                 fprintf(f, "%i", link->ifindex);
                 space = true;
         }
 
-        fputc_unlocked('\n', f);
+        fputc('\n', f);
 }
 
 int link_save(Link *link) {
@@ -3403,6 +3404,7 @@ int link_save(Link *link) {
         if (r < 0)
                 goto fail;
 
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
         (void) fchmod(fileno(f), 0644);
 
         fprintf(f,
@@ -3430,7 +3432,7 @@ int link_save(Link *link) {
 
                 fprintf(f, "NETWORK_FILE=%s\n", link->network->filename);
 
-                fputs_unlocked("DNS=", f);
+                fputs("DNS=", f);
                 space = false;
 
                 for (j = 0; j < link->network->n_dns; j++) {
@@ -3444,8 +3446,8 @@ int link_save(Link *link) {
                         }
 
                         if (space)
-                                fputc_unlocked(' ', f);
-                        fputs_unlocked(b, f);
+                                fputc(' ', f);
+                        fputs(b, f);
                         space = true;
                 }
 
@@ -3456,7 +3458,7 @@ int link_save(Link *link) {
                         r = sd_dhcp_lease_get_dns(link->dhcp_lease, &addresses);
                         if (r > 0) {
                                 if (space)
-                                        fputc_unlocked(' ', f);
+                                        fputc(' ', f);
                                 serialize_in_addrs(f, addresses, r);
                                 space = true;
                         }
@@ -3468,7 +3470,7 @@ int link_save(Link *link) {
                         r = sd_dhcp6_lease_get_dns(dhcp6_lease, &in6_addrs);
                         if (r > 0) {
                                 if (space)
-                                        fputc_unlocked(' ', f);
+                                        fputc(' ', f);
                                 serialize_in6_addrs(f, in6_addrs, r);
                                 space = true;
                         }
@@ -3482,16 +3484,16 @@ int link_save(Link *link) {
 
                         SET_FOREACH(dd, link->ndisc_rdnss, i) {
                                 if (space)
-                                        fputc_unlocked(' ', f);
+                                        fputc(' ', f);
 
                                 serialize_in6_addrs(f, &dd->address, 1);
                                 space = true;
                         }
                 }
 
-                fputc_unlocked('\n', f);
+                fputc('\n', f);
 
-                fputs_unlocked("NTP=", f);
+                fputs("NTP=", f);
                 space = false;
                 fputstrv(f, link->network->ntp, NULL, &space);
 
@@ -3502,7 +3504,7 @@ int link_save(Link *link) {
                         r = sd_dhcp_lease_get_ntp(link->dhcp_lease, &addresses);
                         if (r > 0) {
                                 if (space)
-                                        fputc_unlocked(' ', f);
+                                        fputc(' ', f);
                                 serialize_in_addrs(f, addresses, r);
                                 space = true;
                         }
@@ -3516,7 +3518,7 @@ int link_save(Link *link) {
                                                          &in6_addrs);
                         if (r > 0) {
                                 if (space)
-                                        fputc_unlocked(' ', f);
+                                        fputc(' ', f);
                                 serialize_in6_addrs(f, in6_addrs, r);
                                 space = true;
                         }
@@ -3526,7 +3528,7 @@ int link_save(Link *link) {
                                 fputstrv(f, hosts, NULL, &space);
                 }
 
-                fputc_unlocked('\n', f);
+                fputc('\n', f);
 
                 if (link->network->dhcp_use_domains != DHCP_USE_DOMAINS_NO) {
                         if (link->dhcp_lease) {
@@ -3537,7 +3539,7 @@ int link_save(Link *link) {
                                 (void) sd_dhcp6_lease_get_domains(dhcp6_lease, &dhcp6_domains);
                 }
 
-                fputs_unlocked("DOMAINS=", f);
+                fputs("DOMAINS=", f);
                 space = false;
                 fputstrv(f, link->network->search_domains, NULL, &space);
 
@@ -3555,9 +3557,9 @@ int link_save(Link *link) {
                                 fputs_with_space(f, NDISC_DNSSL_DOMAIN(dd), NULL, &space);
                 }
 
-                fputc_unlocked('\n', f);
+                fputc('\n', f);
 
-                fputs_unlocked("ROUTE_DOMAINS=", f);
+                fputs("ROUTE_DOMAINS=", f);
                 space = false;
                 fputstrv(f, link->network->route_domains, NULL, &space);
 
@@ -3575,7 +3577,7 @@ int link_save(Link *link) {
                                 fputs_with_space(f, NDISC_DNSSL_DOMAIN(dd), NULL, &space);
                 }
 
-                fputc_unlocked('\n', f);
+                fputc('\n', f);
 
                 fprintf(f, "LLMNR=%s\n",
                         resolve_support_to_string(link->network->llmnr));
@@ -3589,14 +3591,14 @@ int link_save(Link *link) {
                 if (!set_isempty(link->network->dnssec_negative_trust_anchors)) {
                         const char *n;
 
-                        fputs_unlocked("DNSSEC_NTA=", f);
+                        fputs("DNSSEC_NTA=", f);
                         space = false;
                         SET_FOREACH(n, link->network->dnssec_negative_trust_anchors, i)
                                 fputs_with_space(f, n, NULL, &space);
-                        fputc_unlocked('\n', f);
+                        fputc('\n', f);
                 }
 
-                fputs_unlocked("ADDRESSES=", f);
+                fputs("ADDRESSES=", f);
                 space = false;
                 SET_FOREACH(a, link->addresses, i) {
                         _cleanup_free_ char *address_str = NULL;
@@ -3608,9 +3610,9 @@ int link_save(Link *link) {
                         fprintf(f, "%s%s/%u", space ? " " : "", address_str, a->prefixlen);
                         space = true;
                 }
-                fputc_unlocked('\n', f);
+                fputc('\n', f);
 
-                fputs_unlocked("ROUTES=", f);
+                fputs("ROUTES=", f);
                 space = false;
                 SET_FOREACH(route, link->routes, i) {
                         _cleanup_free_ char *route_str = NULL;
@@ -3625,7 +3627,7 @@ int link_save(Link *link) {
                         space = true;
                 }
 
-                fputc_unlocked('\n', f);
+                fputc('\n', f);
         }
 
         print_link_hashmap(f, "CARRIER_BOUND_TO=", link->bound_to_links);
@@ -3643,9 +3645,9 @@ int link_save(Link *link) {
 
                 r = sd_dhcp_lease_get_address(link->dhcp_lease, &address);
                 if (r >= 0) {
-                        fputs_unlocked("DHCP4_ADDRESS=", f);
+                        fputs("DHCP4_ADDRESS=", f);
                         serialize_in_addrs(f, &address, 1);
-                        fputc_unlocked('\n', f);
+                        fputc('\n', f);
                 }
 
                 r = dhcp_lease_save(link->dhcp_lease, link->lease_file);
@@ -3663,9 +3665,9 @@ int link_save(Link *link) {
 
                 r = sd_ipv4ll_get_address(link->ipv4ll, &address);
                 if (r >= 0) {
-                        fputs_unlocked("IPV4LL_ADDRESS=", f);
+                        fputs("IPV4LL_ADDRESS=", f);
                         serialize_in_addrs(f, &address, 1);
-                        fputc_unlocked('\n', f);
+                        fputc('\n', f);
                 }
         }
 
index c2c41d978b88ab0d76658678b9e6e479ee584feb..e3c514c8044829c03fedc3713a2d6c5c412a1026 100644 (file)
@@ -21,6 +21,7 @@
 #include <sys/socket.h>
 #include <linux/if.h>
 #include <linux/fib_rules.h>
+#include <stdio_ext.h>
 
 #include "sd-daemon.h"
 #include "sd-netlink.h"
@@ -127,7 +128,7 @@ static int match_prepare_for_sleep(sd_bus_message *message, void *userdata, sd_b
 
         log_debug("Coming back from suspend, resetting all connections...");
 
-        manager_reset_all(m);
+        (void) manager_reset_all(m);
 
         return 0;
 }
@@ -243,7 +244,8 @@ static int manager_dispatch_link_udev(sd_event_source *source, int fd, uint32_t
         if (!device)
                 return -ENOMEM;
 
-        manager_udev_process_link(m, device);
+        (void) manager_udev_process_link(m, device);
+
         return 0;
 }
 
@@ -308,17 +310,17 @@ int manager_rtnl_process_route(sd_netlink *rtnl, sd_netlink_message *message, vo
         if (sd_netlink_message_is_error(message)) {
                 r = sd_netlink_message_get_errno(message);
                 if (r < 0)
-                        log_warning_errno(r, "rtnl: failed to receive route: %m");
+                        log_warning_errno(r, "rtnl: failed to receive route, ignoring: %m");
 
                 return 0;
         }
 
         r = sd_netlink_message_get_type(message, &type);
         if (r < 0) {
-                log_warning_errno(r, "rtnl: could not get message type: %m");
+                log_warning_errno(r, "rtnl: could not get message type, ignoring: %m");
                 return 0;
         } else if (!IN_SET(type, RTM_NEWROUTE, RTM_DELROUTE)) {
-                log_warning("rtnl: received unexpected message type when processing route");
+                log_warning("rtnl: received unexpected message type when processing route, ignoring");
                 return 0;
         }
 
@@ -345,7 +347,7 @@ int manager_rtnl_process_route(sd_netlink *rtnl, sd_netlink_message *message, vo
 
         r = sd_rtnl_message_route_get_family(message, &family);
         if (r < 0 || !IN_SET(family, AF_INET, AF_INET6)) {
-                log_link_warning(link, "rtnl: received address with invalid family, ignoring.");
+                log_link_warning(link, "rtnl: received address with invalid family, ignoring");
                 return 0;
         }
 
@@ -457,15 +459,17 @@ int manager_rtnl_process_route(sd_netlink *rtnl, sd_netlink_message *message, vo
                 return 0;
         }
 
-        route_get(link, family, &dst, dst_prefixlen, tos, priority, table, &route);
+        (void) route_get(link, family, &dst, dst_prefixlen, tos, priority, table, &route);
 
         switch (type) {
         case RTM_NEWROUTE:
                 if (!route) {
                         /* A route appeared that we did not request */
                         r = route_add_foreign(link, family, &dst, dst_prefixlen, tos, priority, table, &route);
-                        if (r < 0)
+                        if (r < 0) {
+                                log_link_warning_errno(link, r, "Failed to add route, ignoring: %m");
                                 return 0;
+                        }
                 }
 
                 route_update(route, &src, src_prefixlen, &gw, &prefsrc, scope, protocol, rt_type);
@@ -505,26 +509,26 @@ int manager_rtnl_process_address(sd_netlink *rtnl, sd_netlink_message *message,
         if (sd_netlink_message_is_error(message)) {
                 r = sd_netlink_message_get_errno(message);
                 if (r < 0)
-                        log_warning_errno(r, "rtnl: failed to receive address: %m");
+                        log_warning_errno(r, "rtnl: failed to receive address, ignoring: %m");
 
                 return 0;
         }
 
         r = sd_netlink_message_get_type(message, &type);
         if (r < 0) {
-                log_warning_errno(r, "rtnl: could not get message type: %m");
+                log_warning_errno(r, "rtnl: could not get message type, ignoring: %m");
                 return 0;
         } else if (!IN_SET(type, RTM_NEWADDR, RTM_DELADDR)) {
-                log_warning("rtnl: received unexpected message type when processing address");
+                log_warning("rtnl: received unexpected message type when processing address, ignoring");
                 return 0;
         }
 
         r = sd_rtnl_message_addr_get_ifindex(message, &ifindex);
         if (r < 0) {
-                log_warning_errno(r, "rtnl: could not get ifindex from address: %m");
+                log_warning_errno(r, "rtnl: could not get ifindex from address, ignoring: %m");
                 return 0;
         } else if (ifindex <= 0) {
-                log_warning("rtnl: received address message with invalid ifindex: %d", ifindex);
+                log_warning("rtnl: received address message with invalid ifindex, ignoring: %d", ifindex);
                 return 0;
         } else {
                 r = link_get(m, ifindex, &link);
@@ -539,7 +543,7 @@ int manager_rtnl_process_address(sd_netlink *rtnl, sd_netlink_message *message,
 
         r = sd_rtnl_message_addr_get_family(message, &family);
         if (r < 0 || !IN_SET(family, AF_INET, AF_INET6)) {
-                log_link_warning(link, "rtnl: received address with invalid family, ignoring.");
+                log_link_warning(link, "rtnl: received address with invalid family, ignoring");
                 return 0;
         }
 
@@ -581,23 +585,26 @@ int manager_rtnl_process_address(sd_netlink *rtnl, sd_netlink_message *message,
                 break;
 
         default:
-                log_link_debug(link, "rtnl: ignoring unsupported address family: %d", family);
+                assert_not_reached("Received unsupported address family");
         }
 
         if (!inet_ntop(family, &in_addr, buf, INET6_ADDRSTRLEN)) {
-                log_link_warning(link, "Could not print address");
+                log_link_warning(link, "Could not print address, ignoring");
                 return 0;
         }
 
         r = sd_netlink_message_read_cache_info(message, IFA_CACHEINFO, &cinfo);
-        if (r >= 0) {
+        if (r < 0 && r != -ENODATA) {
+                log_link_warning_errno(link, r, "rtnl: cannot get IFA_CACHEINFO attribute, ignoring: %m");
+                return 0;
+        } else if (r >= 0) {
                 if (cinfo.ifa_valid != CACHE_INFO_INFINITY_LIFE_TIME)
                         valid_str = format_timespan(valid_buf, FORMAT_TIMESPAN_MAX,
                                                     cinfo.ifa_valid * USEC_PER_SEC,
                                                     USEC_PER_SEC);
         }
 
-        address_get(link, family, &in_addr, prefixlen, &address);
+        (void) address_get(link, family, &in_addr, prefixlen, &address);
 
         switch (type) {
         case RTM_NEWADDR:
@@ -608,14 +615,18 @@ int manager_rtnl_process_address(sd_netlink *rtnl, sd_netlink_message *message,
                         /* An address appeared that we did not request */
                         r = address_add_foreign(link, family, &in_addr, prefixlen, &address);
                         if (r < 0) {
-                                log_link_warning_errno(link, r, "Failed to add address %s/%u: %m", buf, prefixlen);
+                                log_link_warning_errno(link, r, "Failed to add address %s/%u, ignoring: %m", buf, prefixlen);
                                 return 0;
                         } else
                                 log_link_debug(link, "Adding address: %s/%u (valid %s%s)", buf, prefixlen,
                                                valid_str ? "for " : "forever", strempty(valid_str));
                 }
 
-                address_update(address, flags, scope, &cinfo);
+                r = address_update(address, flags, scope, &cinfo);
+                if (r < 0) {
+                        log_link_warning_errno(link, r, "Failed to update address %s/%u, ignoring: %m", buf, prefixlen);
+                        return 0;
+                }
 
                 break;
 
@@ -624,9 +635,9 @@ int manager_rtnl_process_address(sd_netlink *rtnl, sd_netlink_message *message,
                 if (address) {
                         log_link_debug(link, "Removing address: %s/%u (valid %s%s)", buf, prefixlen,
                                        valid_str ? "for " : "forever", strempty(valid_str));
-                        address_drop(address);
+                        (void) address_drop(address);
                 } else
-                        log_link_warning(link, "Removing non-existent address: %s/%u (valid %s%s)", buf, prefixlen,
+                        log_link_warning(link, "Removing non-existent address: %s/%u (valid %s%s), ignoring", buf, prefixlen,
                                          valid_str ? "for " : "forever", strempty(valid_str));
 
                 break;
@@ -652,32 +663,32 @@ static int manager_rtnl_process_link(sd_netlink *rtnl, sd_netlink_message *messa
         if (sd_netlink_message_is_error(message)) {
                 r = sd_netlink_message_get_errno(message);
                 if (r < 0)
-                        log_warning_errno(r, "rtnl: Could not receive link: %m");
+                        log_warning_errno(r, "rtnl: Could not receive link, ignoring: %m");
 
                 return 0;
         }
 
         r = sd_netlink_message_get_type(message, &type);
         if (r < 0) {
-                log_warning_errno(r, "rtnl: Could not get message type: %m");
+                log_warning_errno(r, "rtnl: Could not get message type, ignoring: %m");
                 return 0;
         } else if (!IN_SET(type, RTM_NEWLINK, RTM_DELLINK)) {
-                log_warning("rtnl: Received unexpected message type when processing link");
+                log_warning("rtnl: Received unexpected message type when processing link, ignoring");
                 return 0;
         }
 
         r = sd_rtnl_message_link_get_ifindex(message, &ifindex);
         if (r < 0) {
-                log_warning_errno(r, "rtnl: Could not get ifindex from link: %m");
+                log_warning_errno(r, "rtnl: Could not get ifindex from link, ignoring: %m");
                 return 0;
         } else if (ifindex <= 0) {
-                log_warning("rtnl: received link message with invalid ifindex: %d", ifindex);
+                log_warning("rtnl: received link message with invalid ifindex %d, ignoring", ifindex);
                 return 0;
         }
 
         r = sd_netlink_message_read_string(message, IFLA_IFNAME, &name);
         if (r < 0) {
-                log_warning_errno(r, "rtnl: Received link message without ifname: %m");
+                log_warning_errno(r, "rtnl: Received link message without ifname, ignoring: %m");
                 return 0;
         }
 
@@ -690,7 +701,7 @@ static int manager_rtnl_process_link(sd_netlink *rtnl, sd_netlink_message *messa
                         /* link is new, so add it */
                         r = link_add(m, message, &link);
                         if (r < 0) {
-                                log_warning_errno(r, "Could not add new link: %m");
+                                log_warning_errno(r, "Could not add new link, ignoring: %m");
                                 return 0;
                         }
                 }
@@ -699,14 +710,16 @@ static int manager_rtnl_process_link(sd_netlink *rtnl, sd_netlink_message *messa
                         /* netdev exists, so make sure the ifindex matches */
                         r = netdev_set_ifindex(netdev, message);
                         if (r < 0) {
-                                log_warning_errno(r, "Could not set ifindex on netdev: %m");
+                                log_warning_errno(r, "Could not set ifindex on netdev, ignoring: %m");
                                 return 0;
                         }
                 }
 
                 r = link_update(link, message);
-                if (r < 0)
+                if (r < 0) {
+                        log_warning_errno(r, "Could not update link, ignoring: %m");
                         return 0;
+                }
 
                 break;
 
@@ -725,11 +738,11 @@ static int manager_rtnl_process_link(sd_netlink *rtnl, sd_netlink_message *messa
 
 int manager_rtnl_process_rule(sd_netlink *rtnl, sd_netlink_message *message, void *userdata) {
         uint8_t tos = 0, to_prefixlen = 0, from_prefixlen = 0;
+        union in_addr_union to = {}, from = {};
         RoutingPolicyRule *rule = NULL;
-        union in_addr_union to, from;
         uint32_t fwmark = 0, table = 0;
+        char *iif = NULL, *oif = NULL;
         Manager *m = userdata;
-        char *iif, *oif;
         uint16_t type;
         int family;
         int r;
@@ -741,60 +754,80 @@ int manager_rtnl_process_rule(sd_netlink *rtnl, sd_netlink_message *message, voi
         if (sd_netlink_message_is_error(message)) {
                 r = sd_netlink_message_get_errno(message);
                 if (r < 0)
-                        log_warning_errno(r, "rtnl: failed to receive rule: %m");
+                        log_warning_errno(r, "rtnl: failed to receive rule, ignoring: %m");
 
                 return 0;
         }
 
         r = sd_netlink_message_get_type(message, &type);
         if (r < 0) {
-                log_warning_errno(r, "rtnl: could not get message type: %m");
+                log_warning_errno(r, "rtnl: could not get message type, ignoring: %m");
                 return 0;
         } else if (!IN_SET(type, RTM_NEWRULE, RTM_DELRULE)) {
-                log_warning("rtnl: received unexpected message type '%u' when processing rule.", type);
+                log_warning("rtnl: received unexpected message type '%u' when processing rule, ignoring", type);
                 return 0;
         }
 
         r = sd_rtnl_message_get_family(message, &family);
         if (r < 0) {
-                log_warning_errno(r, "rtnl: could not get rule family: %m");
+                log_warning_errno(r, "rtnl: could not get rule family, ignoring: %m");
                 return 0;
         } else if (!IN_SET(family, AF_INET, AF_INET6)) {
-                log_debug("rtnl: received address with invalid family %u, ignoring.", family);
+                log_debug("rtnl: received address with invalid family %u, ignoring", family);
                 return 0;
         }
 
         switch (family) {
         case AF_INET:
                 r = sd_netlink_message_read_in_addr(message, FRA_SRC, &from.in);
-                if (r >= 0) {
+                if (r < 0 && r != -ENODATA) {
+                        log_warning_errno(r, "rtnl: could not get FRA_SRC attribute, ignoring: %m");
+                        return 0;
+                } else if (r >= 0) {
                         r = sd_rtnl_message_routing_policy_rule_get_rtm_src_prefixlen(message, &from_prefixlen);
-                        if (r < 0)
-                                log_warning_errno(r, "rtnl: failed to retrive rule from prefix length: %m");
+                        if (r < 0) {
+                                log_warning_errno(r, "rtnl: failed to retrive rule from prefix length, ignoring: %m");
+                                return 0;
+                        }
                 }
 
                 r = sd_netlink_message_read_in_addr(message, FRA_DST, &to.in);
-                if (r >= 0) {
+                if (r < 0 && r != -ENODATA) {
+                        log_warning_errno(r, "rtnl: could not get FRA_DST attribute, ignoring: %m");
+                        return 0;
+                } else if (r >= 0) {
                         r = sd_rtnl_message_routing_policy_rule_get_rtm_dst_prefixlen(message, &to_prefixlen);
-                        if (r < 0)
-                                log_warning_errno(r, "rtnl: failed to retrive rule to prefix length: %m");
+                        if (r < 0) {
+                                log_warning_errno(r, "rtnl: failed to retrive rule to prefix length, ignoring: %m");
+                                return 0;
+                        }
                 }
 
                 break;
 
         case AF_INET6:
                 r = sd_netlink_message_read_in6_addr(message, FRA_SRC, &from.in6);
-                if (r >= 0) {
+                if (r < 0 && r != -ENODATA) {
+                        log_warning_errno(r, "rtnl: could not get FRA_SRC attribute, ignoring: %m");
+                        return 0;
+                } else if (r >= 0) {
                         r = sd_rtnl_message_routing_policy_rule_get_rtm_src_prefixlen(message, &from_prefixlen);
-                        if (r < 0)
-                                log_warning_errno(r, "rtnl: failed to retrive rule from prefix length: %m");
+                        if (r < 0) {
+                                log_warning_errno(r, "rtnl: failed to retrive rule from prefix length, ignoring: %m");
+                                return 0;
+                        }
                 }
 
                 r = sd_netlink_message_read_in6_addr(message, FRA_DST, &to.in6);
-                if (r >= 0) {
+                if (r < 0 && r != -ENODATA) {
+                        log_warning_errno(r, "rtnl: could not get FRA_DST attribute, ignoring: %m");
+                        return 0;
+                } else if (r >= 0) {
                         r = sd_rtnl_message_routing_policy_rule_get_rtm_dst_prefixlen(message, &to_prefixlen);
-                        if (r < 0)
-                                log_warning_errno(r, "rtnl: failed to retrive rule to prefix length: %m");
+                        if (r < 0) {
+                                log_warning_errno(r, "rtnl: failed to retrive rule to prefix length, ignoring: %m");
+                                return 0;
+                        }
                 }
 
                 break;
@@ -806,11 +839,35 @@ int manager_rtnl_process_rule(sd_netlink *rtnl, sd_netlink_message *message, voi
         if (from_prefixlen == 0 && to_prefixlen == 0)
                 return 0;
 
-        (void) sd_netlink_message_read_u32(message, FRA_FWMARK, &fwmark);
-        (void) sd_netlink_message_read_u32(message, FRA_TABLE, &table);
-        (void) sd_rtnl_message_routing_policy_rule_get_tos(message, &tos);
-        (void) sd_netlink_message_read_string(message, FRA_IIFNAME, (const char **) &iif);
-        (void) sd_netlink_message_read_string(message, FRA_OIFNAME, (const char **) &oif);
+        r = sd_netlink_message_read_u32(message, FRA_FWMARK, &fwmark);
+        if (r < 0 && r != -ENODATA) {
+                log_warning_errno(r, "rtnl: could not get FRA_FWMARK attribute, ignoring: %m");
+                return 0;
+        }
+
+        r = sd_netlink_message_read_u32(message, FRA_TABLE, &table);
+        if (r < 0 && r != -ENODATA) {
+                log_warning_errno(r, "rtnl: could not get FRA_TABLE attribute, ignoring: %m");
+                return 0;
+        }
+
+        r = sd_rtnl_message_routing_policy_rule_get_tos(message, &tos);
+        if (r < 0 && r != -ENODATA) {
+                log_warning_errno(r, "rtnl: could not get ip rule TOS, ignoring: %m");
+                return 0;
+        }
+
+        r = sd_netlink_message_read_string(message, FRA_IIFNAME, (const char **) &iif);
+        if (r < 0 && r != -ENODATA) {
+                log_warning_errno(r, "rtnl: could not get FRA_IIFNAME attribute, ignoring: %m");
+                return 0;
+        }
+
+        r = sd_netlink_message_read_string(message, FRA_OIFNAME, (const char **) &oif);
+        if (r < 0 && r != -ENODATA) {
+                log_warning_errno(r, "rtnl: could not get FRA_OIFNAME attribute, ignoring: %m");
+                return 0;
+        }
 
         (void) routing_policy_rule_get(m, family, &from, from_prefixlen, &to, to_prefixlen, tos, fwmark, table, iif, oif, &rule);
 
@@ -819,7 +876,7 @@ int manager_rtnl_process_rule(sd_netlink *rtnl, sd_netlink_message *message, voi
                 if (!rule) {
                         r = routing_policy_rule_add_foreign(m, family, &from, from_prefixlen, &to, to_prefixlen, tos, fwmark, table, iif, oif, &rule);
                         if (r < 0) {
-                                log_warning_errno(r, "Could not add rule: %m");
+                                log_warning_errno(r, "Could not add rule, ignoring: %m");
                                 return 0;
                         }
                 }
@@ -991,12 +1048,12 @@ static void print_string_set(FILE *f, const char *field, OrderedSet *s) {
         if (ordered_set_isempty(s))
                 return;
 
-        fputs_unlocked(field, f);
+        fputs(field, f);
 
         ORDERED_SET_FOREACH(p, s, i)
                 fputs_with_space(f, p, NULL, &space);
 
-        fputc_unlocked('\n', f);
+        fputc('\n', f);
 }
 
 static int manager_save(Manager *m) {
@@ -1114,6 +1171,7 @@ static int manager_save(Manager *m) {
         if (r < 0)
                 return r;
 
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
         (void) fchmod(fileno(f), 0644);
 
         fprintf(f,
index 46eaa8140047ab8d7add393490899c7f50cfbf5e..57a96aff941e398ae31117b7f759d4a8c1847def 100644 (file)
@@ -129,7 +129,7 @@ DHCP.IAID,                              config_parse_iaid,
 DHCP.ListenPort,                        config_parse_uint16,                            0,                             offsetof(Network, dhcp_client_port)
 IPv6AcceptRA.UseDNS,                    config_parse_bool,                              0,                             offsetof(Network, ipv6_accept_ra_use_dns)
 IPv6AcceptRA.UseDomains,                config_parse_dhcp_use_domains,                  0,                             offsetof(Network, ipv6_accept_ra_use_domains)
-IPv6AcceptRA.RouteTable,                config_parse_dhcp_route_table,                  0,                             offsetof(Network, ipv6_accept_ra_route_table)
+IPv6AcceptRA.RouteTable,                config_parse_uint32,                            0,                             offsetof(Network, ipv6_accept_ra_route_table)
 DHCPServer.MaxLeaseTimeSec,             config_parse_sec,                               0,                             offsetof(Network, dhcp_server_max_lease_time_usec)
 DHCPServer.DefaultLeaseTimeSec,         config_parse_sec,                               0,                             offsetof(Network, dhcp_server_default_lease_time_usec)
 DHCPServer.EmitDNS,                     config_parse_bool,                              0,                             offsetof(Network, dhcp_server_emit_dns)
index cfb85cbd6d3712f48e176fbb6ccfb4426e931b77..cde31c96633b9640defe5c8b7929bd20499d1468 100644 (file)
@@ -26,6 +26,7 @@ typedef struct NetworkConfigSection NetworkConfigSection;
 #include "networkd-network.h"
 
 struct Route {
+        Manager *m;
         Network *network;
         NetworkConfigSection *section;
 
index 1314564c1107a61e6d49b5c12738bb00046e3fc6..1019b3980779457a59962648da8d19bee3959c7e 100644 (file)
@@ -60,10 +60,11 @@ void routing_policy_rule_free(RoutingPolicyRule *rule) {
                         network_config_section_free(rule->section);
                 }
 
-                if (rule->network->manager) {
-                        set_remove(rule->network->manager->rules, rule);
-                        set_remove(rule->network->manager->rules_foreign, rule);
-                }
+        }
+
+        if (rule->m) {
+                set_remove(rule->m->rules, rule);
+                set_remove(rule->m->rules_foreign, rule);
         }
 
         free(rule->iif);
@@ -236,7 +237,8 @@ int routing_policy_rule_make_local(Manager *m, RoutingPolicyRule *rule) {
         return -ENOENT;
 }
 
-static int routing_policy_rule_add_internal(Set **rules,
+static int routing_policy_rule_add_internal(Manager *m,
+                                            Set **rules,
                                             int family,
                                             const union in_addr_union *from,
                                             uint8_t from_prefixlen,
@@ -258,6 +260,7 @@ static int routing_policy_rule_add_internal(Set **rules,
         if (r < 0)
                 return r;
 
+        rule->m = m;
         rule->family = family;
         rule->from = *from;
         rule->from_prefixlen = from_prefixlen;
@@ -298,7 +301,7 @@ int routing_policy_rule_add(Manager *m,
                             char *oif,
                             RoutingPolicyRule **ret) {
 
-        return routing_policy_rule_add_internal(&m->rules, family, from, from_prefixlen, to, to_prefixlen, tos, fwmark, table, iif, oif, ret);
+        return routing_policy_rule_add_internal(m, &m->rules, family, from, from_prefixlen, to, to_prefixlen, tos, fwmark, table, iif, oif, ret);
 }
 
 int routing_policy_rule_add_foreign(Manager *m,
@@ -313,7 +316,7 @@ int routing_policy_rule_add_foreign(Manager *m,
                                     char *iif,
                                     char *oif,
                                     RoutingPolicyRule **ret) {
-        return routing_policy_rule_add_internal(&m->rules_foreign, family, from, from_prefixlen, to, to_prefixlen, tos, fwmark, table, iif, oif, ret);
+        return routing_policy_rule_add_internal(m, &m->rules_foreign, family, from, from_prefixlen, to, to_prefixlen, tos, fwmark, table, iif, oif, ret);
 }
 
 static int routing_policy_rule_remove_handler(sd_netlink *rtnl, sd_netlink_message *m, void *userdata) {
index 70a861723bb9bf17b9e1e0f683b67fcc9db90dbd..a56a2a52ef4514fdd5cb346bcf29fb806810fd13 100644 (file)
@@ -33,8 +33,10 @@ typedef struct RoutingPolicyRule RoutingPolicyRule;
 typedef struct Network Network;
 typedef struct Link Link;
 typedef struct NetworkConfigSection NetworkConfigSection;
+typedef struct Manager Manager;
 
 struct RoutingPolicyRule {
+        Manager *m;
         Network *network;
         Link *link;
         NetworkConfigSection *section;
index a6b273a29063dc15953d87b18bc9f6e810c397a1..f3e8f508f3bb636c8f8600f21035962d05f2002f 100644 (file)
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
+#include <sys/param.h>
+
 #include "alloc-util.h"
 #include "dhcp-lease-internal.h"
+#include "hostname-util.h"
 #include "network-internal.h"
 #include "networkd-manager.h"
+#include "string-util.h"
 #include "udev-util.h"
 
 static void test_deserialize_in_addr(void) {
@@ -186,6 +190,51 @@ static void test_address_equality(void) {
         assert_se(!address_equal(a1, a2));
 }
 
+static void test_dhcp_hostname_shorten_overlong(void) {
+        int r;
+
+        {
+                /* simple hostname, no actions, no errors */
+                _cleanup_free_ char *shortened = NULL;
+                r = shorten_overlong("name1", &shortened);
+                assert_se(r == 0);
+                assert_se(streq("name1", shortened));
+        }
+
+        {
+                /* simple fqdn, no actions, no errors */
+                _cleanup_free_ char *shortened = NULL;
+                r = shorten_overlong("name1.example.com", &shortened);
+                assert_se(r == 0);
+                assert_se(streq("name1.example.com", shortened));
+        }
+
+        {
+                /* overlong fqdn, cut to first dot, no errors */
+                _cleanup_free_ char *shortened = NULL;
+                r = shorten_overlong("name1.test-dhcp-this-one-here-is-a-very-very-long-domain.example.com", &shortened);
+                assert_se(r == 1);
+                assert_se(streq("name1", shortened));
+        }
+
+        {
+                /* overlong hostname, cut to HOST_MAX_LEN, no errors */
+                _cleanup_free_ char *shortened = NULL;
+                r = shorten_overlong("test-dhcp-this-one-here-is-a-very-very-long-hostname-without-domainname", &shortened);
+                assert_se(r == 1);
+                assert_se(streq("test-dhcp-this-one-here-is-a-very-very-long-hostname-without-dom", shortened));
+        }
+
+        {
+                /* overlong fqdn, cut to first dot, empty result error */
+                _cleanup_free_ char *shortened = NULL;
+                r = shorten_overlong(".test-dhcp-this-one-here-is-a-very-very-long-hostname.example.com", &shortened);
+                assert_se(r == -EDOM);
+                assert_se(shortened == NULL);
+        }
+
+}
+
 int main(void) {
         _cleanup_manager_free_ Manager *manager = NULL;
         _cleanup_(sd_event_unrefp) sd_event *event = NULL;
@@ -196,6 +245,7 @@ int main(void) {
         test_deserialize_in_addr();
         test_deserialize_dhcp_routes();
         test_address_equality();
+        test_dhcp_hostname_shorten_overlong();
 
         assert_se(sd_event_default(&event) >= 0);
 
index 9f2555a3f87221bd35a77674e5cfb4d0b788301c..7081ed0db2886623190a541ae3d688845ba39268 100644 (file)
@@ -44,7 +44,7 @@
 #if HAVE_ACL
 
 static int get_acl(int fd, const char *name, acl_type_t type, acl_t *ret) {
-        char procfs_path[strlen("/proc/self/fd/") + DECIMAL_STR_MAX(int) + 1];
+        char procfs_path[STRLEN("/proc/self/fd/") + DECIMAL_STR_MAX(int) + 1];
         acl_t acl;
 
         assert(fd >= 0);
@@ -73,7 +73,7 @@ static int get_acl(int fd, const char *name, acl_type_t type, acl_t *ret) {
 }
 
 static int set_acl(int fd, const char *name, acl_type_t type, acl_t acl) {
-        char procfs_path[strlen("/proc/self/fd/") + DECIMAL_STR_MAX(int) + 1];
+        char procfs_path[STRLEN("/proc/self/fd/") + DECIMAL_STR_MAX(int) + 1];
         int r;
 
         assert(fd >= 0);
index 7f2f8f1f136a609f9ef93cd9142fe8f9f8666844..bb87eb1b626d6716c887b572debf22403cd1455e 100644 (file)
@@ -25,6 +25,7 @@
 
 #include "fd-util.h"
 #include "log.h"
+#include "missing.h"
 #include "nspawn-stub-pid1.h"
 #include "process-util.h"
 #include "signal-util.h"
index f217def92d53b7b03aabc929bd0a1c469b3890d4..71b14e23029dd97a894009e6b782f22eaf1dd0f2 100644 (file)
@@ -190,6 +190,7 @@ static bool arg_network_veth = false;
 static char **arg_network_veth_extra = NULL;
 static char *arg_network_bridge = NULL;
 static char *arg_network_zone = NULL;
+static char *arg_network_namespace_path = NULL;
 static unsigned long arg_personality = PERSONALITY_INVALID;
 static char *arg_image = NULL;
 static VolatileMode arg_volatile_mode = VOLATILE_NO;
@@ -260,6 +261,9 @@ static void help(void) {
                "                            and attach it to an existing bridge on the host\n"
                "     --network-zone=NAME    Similar, but attach the new interface to an\n"
                "                            an automatically managed bridge interface\n"
+               "     --network-namespace-path=PATH\n"
+               "                            Set network namespace to the one represented by\n"
+               "                            the specified kernel namespace file node\n"
                "  -p --port=[PROTOCOL:]HOSTPORT[:CONTAINERPORT]\n"
                "                            Expose a container IP port on the host\n"
                "  -Z --selinux-context=SECLABEL\n"
@@ -434,6 +438,7 @@ static int parse_argv(int argc, char *argv[]) {
                 ARG_NETWORK_BRIDGE,
                 ARG_NETWORK_ZONE,
                 ARG_NETWORK_VETH_EXTRA,
+                ARG_NETWORK_NAMESPACE_PATH,
                 ARG_PERSONALITY,
                 ARG_VOLATILE,
                 ARG_TEMPLATE,
@@ -450,55 +455,56 @@ static int parse_argv(int argc, char *argv[]) {
         };
 
         static const struct option options[] = {
-                { "help",                  no_argument,       NULL, 'h'                     },
-                { "version",               no_argument,       NULL, ARG_VERSION             },
-                { "directory",             required_argument, NULL, 'D'                     },
-                { "template",              required_argument, NULL, ARG_TEMPLATE            },
-                { "ephemeral",             no_argument,       NULL, 'x'                     },
-                { "user",                  required_argument, NULL, 'u'                     },
-                { "private-network",       no_argument,       NULL, ARG_PRIVATE_NETWORK     },
-                { "as-pid2",               no_argument,       NULL, 'a'                     },
-                { "boot",                  no_argument,       NULL, 'b'                     },
-                { "uuid",                  required_argument, NULL, ARG_UUID                },
-                { "read-only",             no_argument,       NULL, ARG_READ_ONLY           },
-                { "capability",            required_argument, NULL, ARG_CAPABILITY          },
-                { "drop-capability",       required_argument, NULL, ARG_DROP_CAPABILITY     },
-                { "link-journal",          required_argument, NULL, ARG_LINK_JOURNAL        },
-                { "bind",                  required_argument, NULL, ARG_BIND                },
-                { "bind-ro",               required_argument, NULL, ARG_BIND_RO             },
-                { "tmpfs",                 required_argument, NULL, ARG_TMPFS               },
-                { "overlay",               required_argument, NULL, ARG_OVERLAY             },
-                { "overlay-ro",            required_argument, NULL, ARG_OVERLAY_RO          },
-                { "machine",               required_argument, NULL, 'M'                     },
-                { "slice",                 required_argument, NULL, 'S'                     },
-                { "setenv",                required_argument, NULL, 'E'                     },
-                { "selinux-context",       required_argument, NULL, 'Z'                     },
-                { "selinux-apifs-context", required_argument, NULL, 'L'                     },
-                { "quiet",                 no_argument,       NULL, 'q'                     },
-                { "share-system",          no_argument,       NULL, ARG_SHARE_SYSTEM        }, /* not documented */
-                { "register",              required_argument, NULL, ARG_REGISTER            },
-                { "keep-unit",             no_argument,       NULL, ARG_KEEP_UNIT           },
-                { "network-interface",     required_argument, NULL, ARG_NETWORK_INTERFACE   },
-                { "network-macvlan",       required_argument, NULL, ARG_NETWORK_MACVLAN     },
-                { "network-ipvlan",        required_argument, NULL, ARG_NETWORK_IPVLAN      },
-                { "network-veth",          no_argument,       NULL, 'n'                     },
-                { "network-veth-extra",    required_argument, NULL, ARG_NETWORK_VETH_EXTRA  },
-                { "network-bridge",        required_argument, NULL, ARG_NETWORK_BRIDGE      },
-                { "network-zone",          required_argument, NULL, ARG_NETWORK_ZONE        },
-                { "personality",           required_argument, NULL, ARG_PERSONALITY         },
-                { "image",                 required_argument, NULL, 'i'                     },
-                { "volatile",              optional_argument, NULL, ARG_VOLATILE            },
-                { "port",                  required_argument, NULL, 'p'                     },
-                { "property",              required_argument, NULL, ARG_PROPERTY            },
-                { "private-users",         optional_argument, NULL, ARG_PRIVATE_USERS       },
-                { "private-users-chown",   optional_argument, NULL, ARG_PRIVATE_USERS_CHOWN },
-                { "kill-signal",           required_argument, NULL, ARG_KILL_SIGNAL         },
-                { "settings",              required_argument, NULL, ARG_SETTINGS            },
-                { "chdir",                 required_argument, NULL, ARG_CHDIR               },
-                { "pivot-root",            required_argument, NULL, ARG_PIVOT_ROOT          },
-                { "notify-ready",          required_argument, NULL, ARG_NOTIFY_READY        },
-                { "root-hash",             required_argument, NULL, ARG_ROOT_HASH           },
-                { "system-call-filter",    required_argument, NULL, ARG_SYSTEM_CALL_FILTER  },
+                { "help",                   no_argument,       NULL, 'h'                        },
+                { "version",                no_argument,       NULL, ARG_VERSION                },
+                { "directory",              required_argument, NULL, 'D'                        },
+                { "template",               required_argument, NULL, ARG_TEMPLATE               },
+                { "ephemeral",              no_argument,       NULL, 'x'                        },
+                { "user",                   required_argument, NULL, 'u'                        },
+                { "private-network",        no_argument,       NULL, ARG_PRIVATE_NETWORK        },
+                { "as-pid2",                no_argument,       NULL, 'a'                        },
+                { "boot",                   no_argument,       NULL, 'b'                        },
+                { "uuid",                   required_argument, NULL, ARG_UUID                   },
+                { "read-only",              no_argument,       NULL, ARG_READ_ONLY              },
+                { "capability",             required_argument, NULL, ARG_CAPABILITY             },
+                { "drop-capability",        required_argument, NULL, ARG_DROP_CAPABILITY        },
+                { "link-journal",           required_argument, NULL, ARG_LINK_JOURNAL           },
+                { "bind",                   required_argument, NULL, ARG_BIND                   },
+                { "bind-ro",                required_argument, NULL, ARG_BIND_RO                },
+                { "tmpfs",                  required_argument, NULL, ARG_TMPFS                  },
+                { "overlay",                required_argument, NULL, ARG_OVERLAY                },
+                { "overlay-ro",             required_argument, NULL, ARG_OVERLAY_RO             },
+                { "machine",                required_argument, NULL, 'M'                        },
+                { "slice",                  required_argument, NULL, 'S'                        },
+                { "setenv",                 required_argument, NULL, 'E'                        },
+                { "selinux-context",        required_argument, NULL, 'Z'                        },
+                { "selinux-apifs-context",  required_argument, NULL, 'L'                        },
+                { "quiet",                  no_argument,       NULL, 'q'                        },
+                { "share-system",           no_argument,       NULL, ARG_SHARE_SYSTEM           }, /* not documented */
+                { "register",               required_argument, NULL, ARG_REGISTER               },
+                { "keep-unit",              no_argument,       NULL, ARG_KEEP_UNIT              },
+                { "network-interface",      required_argument, NULL, ARG_NETWORK_INTERFACE      },
+                { "network-macvlan",        required_argument, NULL, ARG_NETWORK_MACVLAN        },
+                { "network-ipvlan",         required_argument, NULL, ARG_NETWORK_IPVLAN         },
+                { "network-veth",           no_argument,       NULL, 'n'                        },
+                { "network-veth-extra",     required_argument, NULL, ARG_NETWORK_VETH_EXTRA     },
+                { "network-bridge",         required_argument, NULL, ARG_NETWORK_BRIDGE         },
+                { "network-zone",           required_argument, NULL, ARG_NETWORK_ZONE           },
+                { "network-namespace-path", required_argument, NULL, ARG_NETWORK_NAMESPACE_PATH },
+                { "personality",            required_argument, NULL, ARG_PERSONALITY            },
+                { "image",                  required_argument, NULL, 'i'                        },
+                { "volatile",               optional_argument, NULL, ARG_VOLATILE               },
+                { "port",                   required_argument, NULL, 'p'                        },
+                { "property",               required_argument, NULL, ARG_PROPERTY               },
+                { "private-users",          optional_argument, NULL, ARG_PRIVATE_USERS          },
+                { "private-users-chown",    optional_argument, NULL, ARG_PRIVATE_USERS_CHOWN    },
+                { "kill-signal",            required_argument, NULL, ARG_KILL_SIGNAL            },
+                { "settings",               required_argument, NULL, ARG_SETTINGS               },
+                { "chdir",                  required_argument, NULL, ARG_CHDIR                  },
+                { "pivot-root",             required_argument, NULL, ARG_PIVOT_ROOT             },
+                { "notify-ready",           required_argument, NULL, ARG_NOTIFY_READY           },
+                { "root-hash",              required_argument, NULL, ARG_ROOT_HASH              },
+                { "system-call-filter",     required_argument, NULL, ARG_SYSTEM_CALL_FILTER     },
                 {}
         };
 
@@ -644,6 +650,13 @@ static int parse_argv(int argc, char *argv[]) {
                         arg_settings_mask |= SETTING_NETWORK;
                         break;
 
+                case ARG_NETWORK_NAMESPACE_PATH:
+                        r = parse_path_argument_and_warn(optarg, false, &arg_network_namespace_path);
+                        if (r < 0)
+                                return r;
+
+                        break;
+
                 case 'b':
                         if (arg_start_mode == START_PID2) {
                                 log_error("--boot and --as-pid2 may not be combined.");
@@ -1103,6 +1116,17 @@ static int parse_argv(int argc, char *argv[]) {
                         assert_not_reached("Unhandled option");
                 }
 
+        /* If --network-namespace-path is given with any other network-related option,
+         * we need to error out, to avoid conflicts between different network options. */
+        if (arg_network_namespace_path &&
+                (arg_network_interfaces || arg_network_macvlan ||
+                 arg_network_ipvlan || arg_network_veth_extra ||
+                 arg_network_bridge || arg_network_zone ||
+                 arg_network_veth || arg_private_network)) {
+                log_error("--network-namespace-path cannot be combined with other network options.");
+                return -EINVAL;
+        }
+
         parse_share_ns_env("SYSTEMD_NSPAWN_SHARE_NS_IPC", CLONE_NEWIPC);
         parse_share_ns_env("SYSTEMD_NSPAWN_SHARE_NS_PID", CLONE_NEWPID);
         parse_share_ns_env("SYSTEMD_NSPAWN_SHARE_NS_UTS", CLONE_NEWUTS);
@@ -2532,12 +2556,14 @@ static int outer_child(
                 int rtnl_socket,
                 int uid_shift_socket,
                 int unified_cgroup_hierarchy_socket,
-                FDSet *fds) {
+                FDSet *fds,
+                int netns_fd) {
 
         pid_t pid;
         ssize_t l;
         int r;
         _cleanup_close_ int fd = -1;
+        bool create_netns;
 
         assert(barrier);
         assert(directory);
@@ -2788,9 +2814,11 @@ static int outer_child(
         if (fd < 0)
                 return fd;
 
+        create_netns = !arg_network_namespace_path && arg_private_network;
+
         pid = raw_clone(SIGCHLD|CLONE_NEWNS|
                         arg_clone_ns_flags |
-                        (arg_private_network ? CLONE_NEWNET : 0) |
+                        (create_netns ? CLONE_NEWNET : 0) |
                         (arg_userns_mode != USER_NAMESPACE_NO ? CLONE_NEWUSER : 0));
         if (pid < 0)
                 return log_error_errno(errno, "Failed to fork inner child: %m");
@@ -2804,6 +2832,12 @@ static int outer_child(
                  * requested, so that we all are owned by the user if
                  * user namespaces are turned on. */
 
+                if (arg_network_namespace_path) {
+                        r = namespace_enter(-1, -1, netns_fd, -1, -1);
+                        if (r < 0)
+                                return r;
+                }
+
                 r = inner_child(barrier, directory, secondary, kmsg_socket, rtnl_socket, fds);
                 if (r < 0)
                         _exit(EXIT_FAILURE);
@@ -2836,6 +2870,7 @@ static int outer_child(
         notify_socket = safe_close(notify_socket);
         kmsg_socket = safe_close(kmsg_socket);
         rtnl_socket = safe_close(rtnl_socket);
+        netns_fd = safe_close(netns_fd);
 
         return 0;
 }
@@ -2856,7 +2891,7 @@ static int uid_shift_pick(uid_t *shift, LockFile *ret_lock_file) {
         (void) mkdir("/run/systemd/nspawn-uid", 0755);
 
         for (;;) {
-                char lock_path[strlen("/run/systemd/nspawn-uid/") + DECIMAL_STR_MAX(uid_t) + 1];
+                char lock_path[STRLEN("/run/systemd/nspawn-uid/") + DECIMAL_STR_MAX(uid_t) + 1];
                 _cleanup_release_lock_file_ LockFile lf = LOCK_FILE_INIT;
 
                 if (--n_tries <= 0)
@@ -2910,7 +2945,7 @@ static int uid_shift_pick(uid_t *shift, LockFile *ret_lock_file) {
 }
 
 static int setup_uid_map(pid_t pid) {
-        char uid_map[strlen("/proc//uid_map") + DECIMAL_STR_MAX(uid_t) + 1], line[DECIMAL_STR_MAX(uid_t)*3+3+1];
+        char uid_map[STRLEN("/proc//uid_map") + DECIMAL_STR_MAX(uid_t) + 1], line[DECIMAL_STR_MAX(uid_t)*3+3+1];
         int r;
 
         assert(pid > 1);
@@ -3311,6 +3346,7 @@ static int run(int master,
         int ifi = 0, r;
         ssize_t l;
         sigset_t mask_chld;
+        _cleanup_close_ int netns_fd = -1;
 
         assert_se(sigemptyset(&mask_chld) == 0);
         assert_se(sigaddset(&mask_chld, SIGCHLD) == 0);
@@ -3365,6 +3401,20 @@ static int run(int master,
         if (r < 0)
                 return log_error_errno(errno, "Failed to install SIGCHLD handler: %m");
 
+        if (arg_network_namespace_path) {
+                netns_fd = open(arg_network_namespace_path, O_RDONLY|O_NOCTTY|O_CLOEXEC);
+                if (netns_fd < 0)
+                        return log_error_errno(errno, "Cannot open file %s: %m", arg_network_namespace_path);
+
+                r = fd_is_network_ns(netns_fd);
+                if (r < 0 && r != -ENOTTY)
+                        return log_error_errno(r, "Failed to check %s fs type: %m", arg_network_namespace_path);
+                if (r == 0) {
+                        log_error("Path %s doesn't refer to a network namespace", arg_network_namespace_path);
+                        return -EINVAL;
+                }
+        }
+
         *pid = raw_clone(SIGCHLD|CLONE_NEWNS);
         if (*pid < 0)
                 return log_error_errno(errno, "clone() failed%s: %m",
@@ -3401,7 +3451,8 @@ static int run(int master,
                                 rtnl_socket_pair[1],
                                 uid_shift_socket_pair[1],
                                 unified_cgroup_hierarchy_socket_pair[1],
-                                fds);
+                                fds,
+                                netns_fd);
                 if (r < 0)
                         _exit(EXIT_FAILURE);
 
@@ -3783,11 +3834,10 @@ int main(int argc, char *argv[]) {
         if (r <= 0)
                 goto finish;
 
-        if (geteuid() != 0) {
-                log_error("Need to be root.");
-                r = -EPERM;
+        r = must_be_root();
+        if (r < 0)
                 goto finish;
-        }
+
         r = determine_names();
         if (r < 0)
                 goto finish;
index cd6479573bf1d132679dee72165aec014521d7d4..cc641e16154f461eaa90590e15505f32d443d3fd 100644 (file)
@@ -92,7 +92,7 @@ static int direct_lookup_name(const char *name, uid_t *ret) {
 }
 
 static int direct_lookup_uid(uid_t uid, char **ret) {
-        char path[strlen("/run/systemd/dynamic-uid/direct:") + DECIMAL_STR_MAX(uid_t) + 1], *s;
+        char path[STRLEN("/run/systemd/dynamic-uid/direct:") + DECIMAL_STR_MAX(uid_t) + 1], *s;
         int r;
 
         xsprintf(path, "/run/systemd/dynamic-uid/direct:" UID_FMT, uid);
index b8034d6829afcf6bebff8c25e6c1cf56e144326d..34a6b9257f02c8fecea5193b99c319fd166c778e 100644 (file)
@@ -1,11 +1,17 @@
-# This is a static resolv.conf file for connecting local clients to
-# systemd-resolved via its DNS stub listener on 127.0.0.53.
+# This file belongs to man:systemd-resolved(8). Do not edit.
+#
+# This is a static resolv.conf file for connecting local clients to the
+# internal DNS stub resolver of systemd-resolved. This file lists no search
+# domains.
+#
+# Run "systemd-resolve --status" to see details about the uplink DNS servers
+# currently in use.
 #
 # Third party programs must not access this file directly, but only through the
-# symlink at /etc/resolv.conf. To manage resolv.conf(5) in a different way,
+# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
 # replace this symlink by a static file or a different symlink.
 #
-# See systemd-resolved.service(8) for details about the supported modes of
+# See man:systemd-resolved.service(8) for details about the supported modes of
 # operation for /etc/resolv.conf.
 
 nameserver 127.0.0.53
index f6d6a4bc1ccea4ad4fc93280c9f3f31153fc486f..0252bdfcd7259640be606558e1fa9e366e3ed43d 100644 (file)
 
 #include "af-list.h"
 #include "alloc-util.h"
+#include "bus-common-errors.h"
 #include "bus-error.h"
 #include "bus-util.h"
+#include "dns-domain.h"
 #include "escape.h"
 #include "gcrypt-util.h"
 #include "in-addr-util.h"
@@ -75,8 +77,18 @@ static enum {
         MODE_FLUSH_CACHES,
         MODE_RESET_SERVER_FEATURES,
         MODE_STATUS,
+        MODE_SET_LINK,
+        MODE_REVERT_LINK,
 } arg_mode = MODE_RESOLVE_HOST;
 
+static struct in_addr_data *arg_set_dns = NULL;
+static size_t arg_n_set_dns = 0;
+static char **arg_set_domain = NULL;
+static char *arg_set_llmnr = NULL;
+static char *arg_set_mdns = NULL;
+static char *arg_set_dnssec = NULL;
+static char **arg_set_nta = NULL;
+
 static ServiceFamily service_family_from_string(const char *s) {
         if (s == NULL || streq(s, "tcp"))
                 return SERVICE_FAMILY_TCP;
@@ -1545,6 +1557,234 @@ static int status_all(sd_bus *bus) {
         return r;
 }
 
+static int set_link(sd_bus *bus) {
+        _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
+        int r = 0, q;
+
+        assert(bus);
+
+        if (arg_n_set_dns > 0) {
+                _cleanup_(sd_bus_message_unrefp) sd_bus_message *req = NULL;
+                size_t i;
+
+                q = sd_bus_message_new_method_call(
+                                bus,
+                                &req,
+                                "org.freedesktop.resolve1",
+                                "/org/freedesktop/resolve1",
+                                "org.freedesktop.resolve1.Manager",
+                                "SetLinkDNS");
+                if (q < 0)
+                        return bus_log_create_error(q);
+
+                q = sd_bus_message_append(req, "i", arg_ifindex);
+                if (q < 0)
+                        return bus_log_create_error(q);
+
+                q = sd_bus_message_open_container(req, 'a', "(iay)");
+                if (q < 0)
+                        return bus_log_create_error(q);
+
+                for (i = 0; i < arg_n_set_dns; i++) {
+                        q = sd_bus_message_open_container(req, 'r', "iay");
+                        if (q < 0)
+                                return bus_log_create_error(q);
+
+                        q = sd_bus_message_append(req, "i", arg_set_dns[i].family);
+                        if (q < 0)
+                                return bus_log_create_error(q);
+
+                        q = sd_bus_message_append_array(req, 'y', &arg_set_dns[i].address, FAMILY_ADDRESS_SIZE(arg_set_dns[i].family));
+                        if (q < 0)
+                                return bus_log_create_error(q);
+
+                        q = sd_bus_message_close_container(req);
+                        if (q < 0)
+                                return bus_log_create_error(q);
+                }
+
+                q = sd_bus_message_close_container(req);
+                if (q < 0)
+                        return bus_log_create_error(q);
+
+                q = sd_bus_call(bus, req, 0, &error, NULL);
+                if (q < 0) {
+                        if (sd_bus_error_has_name(&error, BUS_ERROR_LINK_BUSY))
+                                goto is_managed;
+
+                        log_error_errno(q, "Failed to set DNS configuration: %s", bus_error_message(&error, q));
+                        if (r == 0)
+                                r = q;
+                }
+        }
+
+        if (!strv_isempty(arg_set_domain)) {
+                _cleanup_(sd_bus_message_unrefp) sd_bus_message *req = NULL;
+                char **p;
+
+                q = sd_bus_message_new_method_call(
+                                bus,
+                                &req,
+                                "org.freedesktop.resolve1",
+                                "/org/freedesktop/resolve1",
+                                "org.freedesktop.resolve1.Manager",
+                                "SetLinkDomains");
+                if (q < 0)
+                        return bus_log_create_error(q);
+
+                q = sd_bus_message_append(req, "i", arg_ifindex);
+                if (q < 0)
+                        return bus_log_create_error(q);
+
+                q = sd_bus_message_open_container(req, 'a', "(sb)");
+                if (q < 0)
+                        return bus_log_create_error(q);
+
+                STRV_FOREACH(p, arg_set_domain) {
+                        const char *n;
+
+                        n = **p == '~' ? *p + 1 : *p;
+                        q = sd_bus_message_append(req, "(sb)", n, **p == '~');
+                        if (q < 0)
+                                return bus_log_create_error(q);
+                }
+
+                q = sd_bus_message_close_container(req);
+                if (q < 0)
+                        return bus_log_create_error(q);
+
+                q = sd_bus_call(bus, req, 0, &error, NULL);
+                if (q < 0) {
+                        if (sd_bus_error_has_name(&error, BUS_ERROR_LINK_BUSY))
+                                goto is_managed;
+
+                        log_error_errno(q, "Failed to set domain configuration: %s", bus_error_message(&error, q));
+                        if (r == 0)
+                                r = q;
+                }
+        }
+
+        if (arg_set_llmnr) {
+                q = sd_bus_call_method(bus,
+                                       "org.freedesktop.resolve1",
+                                       "/org/freedesktop/resolve1",
+                                       "org.freedesktop.resolve1.Manager",
+                                       "SetLinkLLMNR",
+                                       &error,
+                                       NULL,
+                                       "is", arg_ifindex, arg_set_llmnr);
+                if (q < 0) {
+                        if (sd_bus_error_has_name(&error, BUS_ERROR_LINK_BUSY))
+                                goto is_managed;
+
+                        log_error_errno(q, "Failed to set LLMNR configuration: %s", bus_error_message(&error, q));
+                        if (r == 0)
+                                r = q;
+                }
+        }
+
+        if (arg_set_mdns) {
+                q = sd_bus_call_method(bus,
+                                       "org.freedesktop.resolve1",
+                                       "/org/freedesktop/resolve1",
+                                       "org.freedesktop.resolve1.Manager",
+                                       "SetLinkMulticastDNS",
+                                       &error,
+                                       NULL,
+                                       "is", arg_ifindex, arg_set_mdns);
+                if (q < 0) {
+                        if (sd_bus_error_has_name(&error, BUS_ERROR_LINK_BUSY))
+                                goto is_managed;
+
+                        log_error_errno(q, "Failed to set MulticastDNS configuration: %s", bus_error_message(&error, q));
+                        if (r == 0)
+                                r = q;
+                }
+        }
+
+        if (arg_set_dnssec) {
+                q = sd_bus_call_method(bus,
+                                       "org.freedesktop.resolve1",
+                                       "/org/freedesktop/resolve1",
+                                       "org.freedesktop.resolve1.Manager",
+                                       "SetLinkDNSSEC",
+                                       &error,
+                                       NULL,
+                                       "is", arg_ifindex, arg_set_dnssec);
+                if (q < 0) {
+                        if (sd_bus_error_has_name(&error, BUS_ERROR_LINK_BUSY))
+                                goto is_managed;
+
+                        log_error_errno(q, "Failed to set DNSSEC configuration: %s", bus_error_message(&error, q));
+                        if (r == 0)
+                                r = q;
+                }
+        }
+
+        if (!strv_isempty(arg_set_nta)) {
+                _cleanup_(sd_bus_message_unrefp) sd_bus_message *req = NULL;
+
+                q = sd_bus_message_new_method_call(
+                                bus,
+                                &req,
+                                "org.freedesktop.resolve1",
+                                "/org/freedesktop/resolve1",
+                                "org.freedesktop.resolve1.Manager",
+                                "SetLinkDNSSECNegativeTrustAnchors");
+                if (q < 0)
+                        return bus_log_create_error(q);
+
+                q = sd_bus_message_append(req, "i", arg_ifindex);
+                if (q < 0)
+                        return bus_log_create_error(q);
+
+                q = sd_bus_message_append_strv(req, arg_set_nta);
+                if (q < 0)
+                        return bus_log_create_error(q);
+
+                q = sd_bus_call(bus, req, 0, &error, NULL);
+                if (q < 0) {
+                        if (sd_bus_error_has_name(&error, BUS_ERROR_LINK_BUSY))
+                                goto is_managed;
+
+                        log_error_errno(q, "Failed to set DNSSEC NTA configuration: %s", bus_error_message(&error, q));
+                        if (r == 0)
+                                r = q;
+                }
+        }
+
+        return r;
+
+is_managed:
+        {
+                char ifname[IFNAMSIZ];
+
+                return log_error_errno(q,
+                                       "The specified interface %s is managed by systemd-networkd. Operation refused.\n"
+                                       "Please configure DNS settings for systemd-networkd managed interfaces directly in their .network files.", strna(if_indextoname(arg_ifindex, ifname)));
+        }
+}
+
+static int revert_link(sd_bus *bus) {
+        _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
+        int r;
+
+        assert(bus);
+
+        r = sd_bus_call_method(bus,
+                               "org.freedesktop.resolve1",
+                               "/org/freedesktop/resolve1",
+                               "org.freedesktop.resolve1.Manager",
+                               "RevertLink",
+                               &error,
+                               NULL,
+                               "i", arg_ifindex);
+        if (r < 0)
+                return log_error_errno(r, "Failed to revert interface configuration: %s", bus_error_message(&error, r));
+
+        return 0;
+}
+
 static void help_protocol_types(void) {
         if (arg_legend)
                 puts("Known protocol types:");
@@ -1610,6 +1850,13 @@ static void help(void) {
                "     --flush-caches         Flush all local DNS caches\n"
                "     --reset-server-features\n"
                "                            Forget learnt DNS server feature levels\n"
+               "     --set-dns=SERVER       Set per-interface DNS server address\n"
+               "     --set-domain=DOMAIN    Set per-interface search domain\n"
+               "     --set-llmnr=MODE       Set per-interface LLMNR mode\n"
+               "     --set-mdns=MODE        Set per-interface MulticastDNS mode\n"
+               "     --set-dnssec=MODE      Set per-interface DNSSEC mode\n"
+               "     --set-nta=DOMAIN       Set per-interface DNSSEC NTA\n"
+               "     --revert               Revert per-interface configuration\n"
                , program_invocation_short_name);
 }
 
@@ -1631,6 +1878,13 @@ static int parse_argv(int argc, char *argv[]) {
                 ARG_FLUSH_CACHES,
                 ARG_RESET_SERVER_FEATURES,
                 ARG_NO_PAGER,
+                ARG_SET_DNS,
+                ARG_SET_DOMAIN,
+                ARG_SET_LLMNR,
+                ARG_SET_MDNS,
+                ARG_SET_DNSSEC,
+                ARG_SET_NTA,
+                ARG_REVERT_LINK,
         };
 
         static const struct option options[] = {
@@ -1655,6 +1909,13 @@ static int parse_argv(int argc, char *argv[]) {
                 { "flush-caches",          no_argument,       NULL, ARG_FLUSH_CACHES          },
                 { "reset-server-features", no_argument,       NULL, ARG_RESET_SERVER_FEATURES },
                 { "no-pager",              no_argument,       NULL, ARG_NO_PAGER              },
+                { "set-dns",               required_argument, NULL, ARG_SET_DNS               },
+                { "set-domain",            required_argument, NULL, ARG_SET_DOMAIN            },
+                { "set-llmnr",             required_argument, NULL, ARG_SET_LLMNR             },
+                { "set-mdns",              required_argument, NULL, ARG_SET_MDNS              },
+                { "set-dnssec",            required_argument, NULL, ARG_SET_DNSSEC            },
+                { "set-nta",               required_argument, NULL, ARG_SET_NTA               },
+                { "revert",                no_argument,       NULL, ARG_REVERT_LINK           },
                 {}
         };
 
@@ -1850,6 +2111,84 @@ static int parse_argv(int argc, char *argv[]) {
                         arg_no_pager = true;
                         break;
 
+                case ARG_SET_DNS: {
+                        struct in_addr_data data, *n;
+
+                        r = in_addr_from_string_auto(optarg, &data.family, &data.address);
+                        if (r < 0)
+                                return log_error_errno(r, "Failed to parse DNS server address: %s", optarg);
+
+                        n = realloc(arg_set_dns, sizeof(struct in_addr_data) * (arg_n_set_dns + 1));
+                        if (!n)
+                                return log_oom();
+                        arg_set_dns = n;
+
+                        arg_set_dns[arg_n_set_dns++] = data;
+                        arg_mode = MODE_SET_LINK;
+                        break;
+                }
+
+                case ARG_SET_DOMAIN: {
+                        const char *p;
+
+                        p = optarg[0] == '~' ? optarg + 1 : optarg;
+
+                        r = dns_name_is_valid(p);
+                        if (r < 0)
+                                return log_error_errno(r, "Failed to validate specified domain %s: %m", p);
+                        if (r == 0)
+                                return log_error_errno(r, "Domain not valid: %s", p);
+
+                        r = strv_extend(&arg_set_domain, optarg);
+                        if (r < 0)
+                                return log_oom();
+
+                        arg_mode = MODE_SET_LINK;
+                        break;
+                }
+
+                case ARG_SET_LLMNR:
+                        r = free_and_strdup(&arg_set_llmnr, optarg);
+                        if (r < 0)
+                                return log_oom();
+
+                        arg_mode = MODE_SET_LINK;
+                        break;
+
+                case ARG_SET_MDNS:
+                        r = free_and_strdup(&arg_set_mdns, optarg);
+                        if (r < 0)
+                                return log_oom();
+
+                        arg_mode = MODE_SET_LINK;
+                        break;
+
+                case ARG_SET_DNSSEC:
+                        r = free_and_strdup(&arg_set_dnssec, optarg);
+                        if (r < 0)
+                                return log_oom();
+
+                        arg_mode = MODE_SET_LINK;
+                        break;
+
+                case ARG_SET_NTA:
+                        r = dns_name_is_valid(optarg);
+                        if (r < 0)
+                                return log_error_errno(r, "Failed to validate specified domain %s: %m", optarg);
+                        if (r == 0)
+                                return log_error_errno(r, "Domain not valid: %s", optarg);
+
+                        r = strv_extend(&arg_set_nta, optarg);
+                        if (r < 0)
+                                return log_oom();
+
+                        arg_mode = MODE_SET_LINK;
+                        break;
+
+                case ARG_REVERT_LINK:
+                        arg_mode = MODE_REVERT_LINK;
+                        break;
+
                 case '?':
                         return -EINVAL;
 
@@ -1873,6 +2212,19 @@ static int parse_argv(int argc, char *argv[]) {
         if (arg_class != 0 && arg_type == 0)
                 arg_type = DNS_TYPE_A;
 
+        if (IN_SET(arg_mode, MODE_SET_LINK, MODE_REVERT_LINK)) {
+
+                if (arg_ifindex <= 0) {
+                        log_error("--set-dns=, --set-domain=, --set-llmnr=, --set-mdns=, --set-dnssec=, --set-nta= and --revert require --interface=.");
+                        return -EINVAL;
+                }
+
+                if (arg_ifindex == LOOPBACK_IFINDEX) {
+                        log_error("Interface can't be the loopback interface (lo). Sorry.");
+                        return -EINVAL;
+                }
+        }
+
         return 1 /* work to do */;
 }
 
@@ -2064,10 +2416,38 @@ int main(int argc, char **argv) {
                         r = status_all(bus);
 
                 break;
+
+
+        case MODE_SET_LINK:
+                if (argc > optind) {
+                        log_error("Too many arguments.");
+                        r = -EINVAL;
+                        goto finish;
+                }
+
+                r = set_link(bus);
+                break;
+
+        case MODE_REVERT_LINK:
+                if (argc > optind) {
+                        log_error("Too many arguments.");
+                        r = -EINVAL;
+                        goto finish;
+                }
+
+                r = revert_link(bus);
+                break;
         }
 
 finish:
         pager_close();
 
+        free(arg_set_dns);
+        strv_free(arg_set_domain);
+        free(arg_set_llmnr);
+        free(arg_set_mdns);
+        free(arg_set_dnssec);
+        strv_free(arg_set_nta);
+
         return r == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 942956dd718770bd600398e22d989210d45b8daa..e9197f1dfdf656299f91a457ccb1627043ec0d8e 100644 (file)
@@ -476,7 +476,7 @@ static int dns_cache_put_positive(
         if (r < 0)
                 return r;
 
-        if (log_get_max_level() >= LOG_DEBUG) {
+        if (DEBUG_LOGGING) {
                 _cleanup_free_ char *t = NULL;
 
                 (void) in_addr_to_string(i->owner_family, &i->owner_address, &t);
index 26d2cbcc200af37c26af07bea3cf27c8e78a86a4..eb5592d3cf2ded4a5d90a0acb18bc8c729bc4ccf 100644 (file)
@@ -766,7 +766,7 @@ static int format_timestamp_dns(char *buf, size_t l, time_t sec) {
         struct tm tm;
 
         assert(buf);
-        assert(l > strlen("YYYYMMDDHHmmSS"));
+        assert(l > STRLEN("YYYYMMDDHHmmSS"));
 
         if (!gmtime_r(&sec, &tm))
                 return -EINVAL;
@@ -1035,7 +1035,7 @@ const char *dns_resource_record_to_string(DnsResourceRecord *rr) {
 
         case DNS_TYPE_RRSIG: {
                 _cleanup_free_ char *alg = NULL;
-                char expiration[strlen("YYYYMMDDHHmmSS") + 1], inception[strlen("YYYYMMDDHHmmSS") + 1];
+                char expiration[STRLEN("YYYYMMDDHHmmSS") + 1], inception[STRLEN("YYYYMMDDHHmmSS") + 1];
                 const char *type;
                 int n;
 
index 0a644f42525a209d43ce0aeb8e6acf2c48618eab..ea4459a89a31e7078f494e24ce0214af67a75cf3 100644 (file)
@@ -143,6 +143,26 @@ DnsServer *dns_scope_get_dns_server(DnsScope *s) {
                 return manager_get_dns_server(s->manager);
 }
 
+unsigned dns_scope_get_n_dns_servers(DnsScope *s) {
+        unsigned n = 0;
+        DnsServer *i;
+
+        assert(s);
+
+        if (s->protocol != DNS_PROTOCOL_DNS)
+                return 0;
+
+        if (s->link)
+                i = s->link->dns_servers;
+        else
+                i = s->manager->dns_servers;
+
+        for (; i; i = i->servers_next)
+                n++;
+
+        return n;
+}
+
 void dns_scope_next_dns_server(DnsScope *s) {
         assert(s);
 
@@ -405,7 +425,6 @@ int dns_scope_socket_tcp(DnsScope *s, int family, const union in_addr_union *add
 
 DnsScopeMatch dns_scope_good_domain(DnsScope *s, int ifindex, uint64_t flags, const char *domain) {
         DnsSearchDomain *d;
-        DnsServer *dns_server;
 
         assert(s);
         assert(domain);
@@ -438,24 +457,27 @@ DnsScopeMatch dns_scope_good_domain(DnsScope *s, int ifindex, uint64_t flags, co
         if (dns_name_endswith(domain, "invalid") > 0)
                 return DNS_SCOPE_NO;
 
-        /* Always honour search domains for routing queries. Note that
-         * we return DNS_SCOPE_YES here, rather than just
-         * DNS_SCOPE_MAYBE, which means wildcard scopes won't be
-         * considered anymore. */
-        LIST_FOREACH(domains, d, dns_scope_get_search_domains(s))
-                if (dns_name_endswith(domain, d->name) > 0)
-                        return DNS_SCOPE_YES;
-
-        /* If the DNS server has route-only domains, don't send other requests
-         * to it. This would be a privacy violation, will most probably fail
-         * anyway, and adds unnecessary load. */
-        dns_server = dns_scope_get_dns_server(s);
-        if (dns_server && dns_server_limited_domains(dns_server))
-                return DNS_SCOPE_NO;
-
         switch (s->protocol) {
 
-        case DNS_PROTOCOL_DNS:
+        case DNS_PROTOCOL_DNS: {
+                DnsServer *dns_server;
+
+                /* Never route things to scopes that lack DNS servers */
+                dns_server = dns_scope_get_dns_server(s);
+                if (!dns_server)
+                        return DNS_SCOPE_NO;
+
+                /* Always honour search domains for routing queries, except if this scope lacks DNS servers. Note that
+                 * we return DNS_SCOPE_YES here, rather than just DNS_SCOPE_MAYBE, which means other wildcard scopes
+                 * won't be considered anymore. */
+                LIST_FOREACH(domains, d, dns_scope_get_search_domains(s))
+                        if (dns_name_endswith(domain, d->name) > 0)
+                                return DNS_SCOPE_YES;
+
+                /* If the DNS server has route-only domains, don't send other requests to it. This would be a privacy
+                 * violation, will most probably fail anyway, and adds unnecessary load. */
+                if (dns_server_limited_domains(dns_server))
+                        return DNS_SCOPE_NO;
 
                 /* Exclude link-local IP ranges */
                 if (dns_name_endswith(domain, "254.169.in-addr.arpa") == 0 &&
@@ -470,6 +492,7 @@ DnsScopeMatch dns_scope_good_domain(DnsScope *s, int ifindex, uint64_t flags, co
                         return DNS_SCOPE_MAYBE;
 
                 return DNS_SCOPE_NO;
+        }
 
         case DNS_PROTOCOL_MDNS:
                 if ((s->family == AF_INET && dns_name_endswith(domain, "in-addr.arpa") > 0) ||
index d46ccd884ce7873988f12bd33d23ab9732c0e48c..6f58c3c25702757a2f9803f1fb8a880e29585105 100644 (file)
@@ -95,6 +95,7 @@ DnsScopeMatch dns_scope_good_domain(DnsScope *s, int ifindex, uint64_t flags, co
 bool dns_scope_good_key(DnsScope *s, const DnsResourceKey *key);
 
 DnsServer *dns_scope_get_dns_server(DnsScope *s);
+unsigned dns_scope_get_n_dns_servers(DnsScope *s);
 void dns_scope_next_dns_server(DnsScope *s);
 
 int dns_scope_llmnr_membership(DnsScope *s, bool b);
index 792a16d6930d7f3ae03dde741a90aa336aeb6470..f4bbde02193e321ec9a3d29ea1bd3c0797d764d6 100644 (file)
@@ -408,6 +408,8 @@ static int dns_transaction_pick_server(DnsTransaction *t) {
         dns_server_unref(t->server);
         t->server = dns_server_ref(server);
 
+        t->n_picked_servers ++;
+
         log_debug("Using DNS server %s for transaction %u.", dns_server_string(t->server), t->id);
 
         return 1;
@@ -737,8 +739,17 @@ static void dns_transaction_process_dnssec(DnsTransaction *t) {
 
         if (t->answer_dnssec_result == DNSSEC_INCOMPATIBLE_SERVER &&
             t->scope->dnssec_mode == DNSSEC_YES) {
-                /*  We are not in automatic downgrade mode, and the
-                 *  server is bad, refuse operation. */
+
+                /*  We are not in automatic downgrade mode, and the server is bad. Let's try a different server, maybe
+                 *  that works. */
+
+                if (t->n_picked_servers < dns_scope_get_n_dns_servers(t->scope)) {
+                        /* We tried fewer servers on this transaction than we know, let's try another one then */
+                        dns_transaction_retry(t, true);
+                        return;
+                }
+
+                /* OK, let's give up, apparently all servers we tried didn't work. */
                 dns_transaction_complete(t, DNS_TRANSACTION_DNSSEC_FAILED);
                 return;
         }
@@ -913,12 +924,21 @@ void dns_transaction_process_reply(DnsTransaction *t, DnsPacket *p) {
                         /* Request failed, immediately try again with reduced features */
 
                         if (t->current_feature_level <= DNS_SERVER_FEATURE_LEVEL_UDP) {
+
                                 /* This was already at UDP feature level? If so, it doesn't make sense to downgrade
-                                 * this transaction anymore, hence let's process the response, and accept the
+                                 * this transaction anymore, but let's see if it might make sense to send the request
+                                 * to a different DNS server instead. If not let's process the response, and accept the
                                  * rcode. Note that we don't retry on TCP, since that's a suitable way to mitigate
                                  * packet loss, but is not going to give us better rcodes should we actually have
                                  * managed to get them already at UDP level. */
 
+                                if (t->n_picked_servers < dns_scope_get_n_dns_servers(t->scope)) {
+                                        /* We tried fewer servers on this transaction than we know, let's try another one then */
+                                        dns_transaction_retry(t, true);
+                                        return;
+                                }
+
+                                /* Give up, accept the rcode */
                                 log_debug("Server returned error: %s", dns_rcode_to_string(DNS_PACKET_RCODE(p)));
                                 break;
                         }
@@ -1351,7 +1371,7 @@ static int dns_transaction_prepare(DnsTransaction *t, usec_t ts) {
                 /* Before trying the cache, let's make sure we figured out a
                  * server to use. Should this cause a change of server this
                  * might flush the cache. */
-                dns_scope_get_dns_server(t->scope);
+                (void) dns_scope_get_dns_server(t->scope);
 
                 /* Let's then prune all outdated entries */
                 dns_cache_prune(&t->scope->cache);
index 4ae93c78138c9027a652789938da49b306966f69..31dcd7627a7351b4b3c9d0444ca6be5d2b7b2f50 100644 (file)
@@ -109,6 +109,8 @@ struct DnsTransaction {
         sd_event_source *timeout_event_source;
         unsigned n_attempts;
 
+        unsigned n_picked_servers;
+
         /* UDP connection logic, if we need it */
         int dns_udp_fd;
         sd_event_source *dns_udp_event_source;
index ed7bdc848af32a51053e3f1a901c5b283cc73626..e3e50eca53f044d9da530df16d4a7fc13350fb31 100644 (file)
@@ -19,6 +19,7 @@
 ***/
 
 #include <net/if.h>
+#include <stdio_ext.h>
 
 #include "sd-network.h"
 
@@ -1100,7 +1101,10 @@ int link_save_user(Link *l) {
         if (r < 0)
                 goto fail;
 
-        fputs_unlocked("# This is private data. Do not parse.\n", f);
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+        (void) fchmod(fileno(f), 0644);
+
+        fputs("# This is private data. Do not parse.\n", f);
 
         v = resolve_support_to_string(l->llmnr_support);
         if (v)
@@ -1117,11 +1121,11 @@ int link_save_user(Link *l) {
         if (l->dns_servers) {
                 DnsServer *server;
 
-                fputs_unlocked("SERVERS=", f);
+                fputs("SERVERS=", f);
                 LIST_FOREACH(servers, server, l->dns_servers) {
 
                         if (server != l->dns_servers)
-                                fputc_unlocked(' ', f);
+                                fputc(' ', f);
 
                         v = dns_server_string(server);
                         if (!v) {
@@ -1129,26 +1133,26 @@ int link_save_user(Link *l) {
                                 goto fail;
                         }
 
-                        fputs_unlocked(v, f);
+                        fputs(v, f);
                 }
-                fputc_unlocked('\n', f);
+                fputc('\n', f);
         }
 
         if (l->search_domains) {
                 DnsSearchDomain *domain;
 
-                fputs_unlocked("DOMAINS=", f);
+                fputs("DOMAINS=", f);
                 LIST_FOREACH(domains, domain, l->search_domains) {
 
                         if (domain != l->search_domains)
-                                fputc_unlocked(' ', f);
+                                fputc(' ', f);
 
                         if (domain->route_only)
-                                fputc_unlocked('~', f);
+                                fputc('~', f);
 
-                        fputs_unlocked(DNS_SEARCH_DOMAIN_NAME(domain), f);
+                        fputs(DNS_SEARCH_DOMAIN_NAME(domain), f);
                 }
-                fputc_unlocked('\n', f);
+                fputc('\n', f);
         }
 
         if (!set_isempty(l->dnssec_negative_trust_anchors)) {
@@ -1156,16 +1160,16 @@ int link_save_user(Link *l) {
                 Iterator i;
                 char *nta;
 
-                fputs_unlocked("NTAS=", f);
+                fputs("NTAS=", f);
                 SET_FOREACH(nta, l->dnssec_negative_trust_anchors, i) {
 
                         if (space)
-                                fputc_unlocked(' ', f);
+                                fputc(' ', f);
 
-                        fputs_unlocked(nta, f);
+                        fputs(nta, f);
                         space = true;
                 }
-                fputc_unlocked('\n', f);
+                fputc('\n', f);
         }
 
         r = fflush_and_check(f);
index 983e6c091a79d8f30b1f18adf5079f580cca17ce..1311f04f75513322fd3f7192203392ba4586e498 100644 (file)
@@ -20,6 +20,7 @@
 
 #include <netinet/in.h>
 #include <poll.h>
+#include <stdio_ext.h>
 #include <sys/ioctl.h>
 
 #if HAVE_LIBIDN2
@@ -535,6 +536,8 @@ static int manager_sigusr1(sd_event_source *s, const struct signalfd_siginfo *si
         if (!f)
                 return log_oom();
 
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
         LIST_FOREACH(scopes, scope, m->dns_scopes)
                 dns_scope_dump(scope, f);
 
@@ -1407,7 +1410,7 @@ void manager_dnssec_verdict(Manager *m, DnssecVerdict verdict, const DnsResource
         assert(verdict >= 0);
         assert(verdict < _DNSSEC_VERDICT_MAX);
 
-        if (log_get_max_level() >= LOG_DEBUG) {
+        if (DEBUG_LOGGING) {
                 char s[DNS_RESOURCE_KEY_STRING_MAX];
 
                 log_debug("Found verdict for lookup %s: %s",
index b182f4319ed99d6e2369e2c99a5c0313b38e9282..bad04d6a29d1b09e441fc04d20df3f05400df057 100644 (file)
@@ -19,6 +19,7 @@
  ***/
 
 #include <resolv.h>
+#include <stdio_ext.h>
 
 #include "alloc-util.h"
 #include "dns-domain.h"
 #include "string-util.h"
 #include "strv.h"
 
+/* A resolv.conf file containing the DNS server and domain data we learnt from uplink, i.e. the full uplink data */
+#define PRIVATE_UPLINK_RESOLV_CONF "/run/systemd/resolve/resolv.conf"
+
+/* A resolv.conf file containing the domain data we learnt from uplink, but our own DNS server address. */
+#define PRIVATE_STUB_RESOLV_CONF "/run/systemd/resolve/stub-resolv.conf"
+
+/* A static resolv.conf file containing no domains, but only our own DNS sever address */
+#define PRIVATE_STATIC_RESOLV_CONF ROOTLIBEXECDIR "/resolv.conf"
+
+static bool file_is_our_own(const struct stat *st) {
+        const char *path;
+
+        assert(st);
+
+        FOREACH_STRING(path,
+                       PRIVATE_UPLINK_RESOLV_CONF,
+                       PRIVATE_STUB_RESOLV_CONF,
+                       PRIVATE_STATIC_RESOLV_CONF) {
+
+                struct stat own;
+
+                /* Is it symlinked to our own uplink file? */
+                if (stat(path, &own) >= 0 &&
+                    st->st_dev == own.st_dev &&
+                    st->st_ino == own.st_ino)
+                        return true;
+        }
+
+        return false;
+}
+
 int manager_read_resolv_conf(Manager *m) {
         _cleanup_fclose_ FILE *f = NULL;
-        struct stat st, own;
+        struct stat st;
         char line[LINE_MAX];
-        usec_t t;
         int r;
 
         assert(m);
@@ -57,20 +88,10 @@ int manager_read_resolv_conf(Manager *m) {
         }
 
         /* Have we already seen the file? */
-        t = timespec_load(&st.st_mtim);
-        if (t == m->resolv_conf_mtime)
-                return 0;
-
-        /* Is it symlinked to our own file? */
-        if (stat(PRIVATE_UPLINK_RESOLV_CONF, &own) >= 0 &&
-            st.st_dev == own.st_dev &&
-            st.st_ino == own.st_ino)
+        if (timespec_load(&st.st_mtim) == m->resolv_conf_mtime)
                 return 0;
 
-        /* Is it symlinked to our own stub file? */
-        if (stat(PRIVATE_STUB_RESOLV_CONF, &own) >= 0 &&
-            st.st_dev == own.st_dev &&
-            st.st_ino == own.st_ino)
+        if (file_is_our_own(&st))
                 return 0;
 
         f = fopen("/etc/resolv.conf", "re");
@@ -87,6 +108,9 @@ int manager_read_resolv_conf(Manager *m) {
                 goto clear;
         }
 
+        if (file_is_our_own(&st))
+                return 0;
+
         dns_server_mark_all(m->dns_servers);
         dns_search_domain_mark_all(m->search_domains);
 
@@ -117,7 +141,7 @@ int manager_read_resolv_conf(Manager *m) {
                 }
         }
 
-        m->resolv_conf_mtime = t;
+        m->resolv_conf_mtime = timespec_load(&st.st_mtim);
 
         /* Flush out all servers and search domains that are still
          * marked. Those are then ones that didn't appear in the new
@@ -178,7 +202,7 @@ static void write_resolv_conf_server(DnsServer *s, FILE *f, unsigned *count) {
         }
 
         if (*count == MAXNS)
-                fputs_unlocked("# Too many DNS servers configured, the following entries may be ignored.\n", f);
+                fputs("# Too many DNS servers configured, the following entries may be ignored.\n", f);
         (*count)++;
 
         fprintf(f, "nameserver %s\n", dns_server_string(s));
@@ -194,39 +218,43 @@ static void write_resolv_conf_search(
         assert(domains);
         assert(f);
 
-        fputs_unlocked("search", f);
+        fputs("search", f);
 
         ORDERED_SET_FOREACH(domain, domains, i) {
                 if (++count > MAXDNSRCH) {
-                        fputs_unlocked("\n# Too many search domains configured, remaining ones ignored.", f);
+                        fputs("\n# Too many search domains configured, remaining ones ignored.", f);
                         break;
                 }
                 length += strlen(domain) + 1;
                 if (length > 256) {
-                        fputs_unlocked("\n# Total length of all search domains is too long, remaining ones ignored.", f);
+                        fputs("\n# Total length of all search domains is too long, remaining ones ignored.", f);
                         break;
                 }
-                fputc_unlocked(' ', f);
-                fputs_unlocked(domain, f);
+                fputc(' ', f);
+                fputs(domain, f);
         }
 
-        fputs_unlocked("\n", f);
+        fputs("\n", f);
 }
 
 static int write_uplink_resolv_conf_contents(FILE *f, OrderedSet *dns, OrderedSet *domains) {
         Iterator i;
 
-        fputs_unlocked("# This file is managed by man:systemd-resolved(8). Do not edit.\n#\n"
-                       "# This is a dynamic resolv.conf file for connecting local clients directly to\n"
-                       "# all known DNS servers.\n#\n"
-                       "# Third party programs must not access this file directly, but only through the\n"
-                       "# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,\n"
-                       "# replace this symlink by a static file or a different symlink.\n#\n"
-                       "# See man:systemd-resolved.service(8) for details about the supported modes of\n"
-                       "# operation for /etc/resolv.conf.\n\n", f);
+        fputs("# This file is managed by man:systemd-resolved(8). Do not edit.\n"
+              "#\n"
+              "# This is a dynamic resolv.conf file for connecting local clients directly to\n"
+              "# all known uplink DNS servers. This file lists all configured search domains.\n"
+              "#\n"
+              "# Third party programs must not access this file directly, but only through the\n"
+              "# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,\n"
+              "# replace this symlink by a static file or a different symlink.\n"
+              "#\n"
+              "# See man:systemd-resolved.service(8) for details about the supported modes of\n"
+              "# operation for /etc/resolv.conf.\n"
+              "\n", f);
 
         if (ordered_set_isempty(dns))
-                fputs_unlocked("# No DNS servers known.\n", f);
+                fputs("# No DNS servers known.\n", f);
         else {
                 unsigned count = 0;
                 DnsServer *s;
@@ -242,10 +270,23 @@ static int write_uplink_resolv_conf_contents(FILE *f, OrderedSet *dns, OrderedSe
 }
 
 static int write_stub_resolv_conf_contents(FILE *f, OrderedSet *dns, OrderedSet *domains) {
-        fputs("# This file is managed by man:systemd-resolved(8). Do not edit.\n#\n"
-              "# 127.0.0.53 is the systemd-resolved stub resolver.\n"
-              "# run \"systemd-resolve --status\" to see details about the actual nameservers.\n\n"
-              "nameserver 127.0.0.53\n", f);
+        fputs_unlocked("# This file is managed by man:systemd-resolved(8). Do not edit.\n"
+                       "#\n"
+                       "# This is a dynamic resolv.conf file for connecting local clients to the\n"
+                       "# internal DNS stub resolver of systemd-resolved. This file lists all\n"
+                       "# configured search domains.\n"
+                       "#\n"
+                       "# Run \"systemd-resolve --status\" to see details about the uplink DNS servers\n"
+                       "# currently in use.\n"
+                       "#\n"
+                       "# Third party programs must not access this file directly, but only through the\n"
+                       "# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,\n"
+                       "# replace this symlink by a static file or a different symlink.\n"
+                       "#\n"
+                       "# See man:systemd-resolved.service(8) for details about the supported modes of\n"
+                       "# operation for /etc/resolv.conf.\n"
+                       "\n"
+                       "nameserver 127.0.0.53\n", f);
 
         if (!ordered_set_isempty(domains))
                 write_resolv_conf_search(domains, f);
@@ -256,10 +297,8 @@ static int write_stub_resolv_conf_contents(FILE *f, OrderedSet *dns, OrderedSet
 int manager_write_resolv_conf(Manager *m) {
 
         _cleanup_ordered_set_free_ OrderedSet *dns = NULL, *domains = NULL;
-        _cleanup_free_ char *temp_path_uplink = NULL;
-        _cleanup_free_ char *temp_path_stub = NULL;
-        _cleanup_fclose_ FILE *f_uplink = NULL;
-        _cleanup_fclose_ FILE *f_stub = NULL;
+        _cleanup_free_ char *temp_path_uplink = NULL, *temp_path_stub = NULL;
+        _cleanup_fclose_ FILE *f_uplink = NULL, *f_stub = NULL;
         int r;
 
         assert(m);
@@ -279,10 +318,15 @@ int manager_write_resolv_conf(Manager *m) {
         r = fopen_temporary_label(PRIVATE_UPLINK_RESOLV_CONF, PRIVATE_UPLINK_RESOLV_CONF, &f_uplink, &temp_path_uplink);
         if (r < 0)
                 return log_warning_errno(r, "Failed to open private resolv.conf file for writing: %m");
+
+        (void) __fsetlocking(f_uplink, FSETLOCKING_BYCALLER);
+        (void) fchmod(fileno(f_uplink), 0644);
+
         r = fopen_temporary_label(PRIVATE_STUB_RESOLV_CONF, PRIVATE_STUB_RESOLV_CONF, &f_stub, &temp_path_stub);
         if (r < 0)
                 return log_warning_errno(r, "Failed to open private stub-resolv.conf file for writing: %m");
-        (void) fchmod(fileno(f_uplink), 0644);
+
+        (void) __fsetlocking(f_stub, FSETLOCKING_BYCALLER);
         (void) fchmod(fileno(f_stub), 0644);
 
         r = write_uplink_resolv_conf_contents(f_uplink, dns, domains);
index 99b3ca88fb4855e3aa96e49e02491b9eabc90f41..ef34f8e09e05bb13f93b907b5def54679cfb8eb4 100644 (file)
@@ -22,8 +22,5 @@
 
 #include "resolved-manager.h"
 
-#define PRIVATE_UPLINK_RESOLV_CONF "/run/systemd/resolve/resolv.conf"
-#define PRIVATE_STUB_RESOLV_CONF "/run/systemd/resolve/stub-resolv.conf"
-
 int manager_read_resolv_conf(Manager *m);
 int manager_write_resolv_conf(Manager *m);
index bd9a6b2c81648a6c8361cb9c69023d8ecb41d256..5d7441ac939105427ef024f5722322723d1313be 100644 (file)
@@ -68,13 +68,8 @@ static enum {
         ARG_STDIO_DIRECT,    /* Directly pass our stdin/stdout/stderr to the activated service, useful for usage in shell pipelines, requested by --pipe */
         ARG_STDIO_AUTO,      /* If --pipe and --pty are used together we use --pty when invoked on a TTY, and --pipe otherwise */
 } arg_stdio = ARG_STDIO_NONE;
-static usec_t arg_on_active = 0;
-static usec_t arg_on_boot = 0;
-static usec_t arg_on_startup = 0;
-static usec_t arg_on_unit_active = 0;
-static usec_t arg_on_unit_inactive = 0;
-static const char *arg_on_calendar = NULL;
 static char **arg_timer_property = NULL;
+static bool with_timer = false;
 static bool arg_quiet = false;
 static bool arg_aggressive_gc = false;
 
@@ -117,8 +112,22 @@ static void help(void) {
                , program_invocation_short_name);
 }
 
-static bool with_timer(void) {
-        return arg_on_active || arg_on_boot || arg_on_startup || arg_on_unit_active || arg_on_unit_inactive || arg_on_calendar;
+static int add_timer_property(const char *name, const char *val) {
+        _cleanup_free_ char *p = NULL;
+
+        assert(name);
+        assert(val);
+
+        p = strjoin(name, "=", val);
+        if (!p)
+                return log_oom();
+
+        if (strv_consume(&arg_timer_property, p) < 0)
+                return log_oom();
+
+        p = NULL;
+
+        return 0;
 }
 
 static int parse_argv(int argc, char *argv[]) {
@@ -298,74 +307,65 @@ static int parse_argv(int argc, char *argv[]) {
                         break;
 
                 case ARG_ON_ACTIVE:
-
-                        r = parse_sec(optarg, &arg_on_active);
-                        if (r < 0) {
-                                log_error("Failed to parse timer value: %s", optarg);
+                        r = add_timer_property("OnActiveSec", optarg);
+                        if (r < 0)
                                 return r;
-                        }
 
+                        with_timer = true;
                         break;
 
                 case ARG_ON_BOOT:
-
-                        r = parse_sec(optarg, &arg_on_boot);
-                        if (r < 0) {
-                                log_error("Failed to parse timer value: %s", optarg);
+                        r = add_timer_property("OnBootSec", optarg);
+                        if (r < 0)
                                 return r;
-                        }
 
+                        with_timer = true;
                         break;
 
                 case ARG_ON_STARTUP:
-
-                        r = parse_sec(optarg, &arg_on_startup);
-                        if (r < 0) {
-                                log_error("Failed to parse timer value: %s", optarg);
+                        r = add_timer_property("OnStartupSec", optarg);
+                        if (r < 0)
                                 return r;
-                        }
 
+                        with_timer = true;
                         break;
 
                 case ARG_ON_UNIT_ACTIVE:
-
-                        r = parse_sec(optarg, &arg_on_unit_active);
-                        if (r < 0) {
-                                log_error("Failed to parse timer value: %s", optarg);
+                        r = add_timer_property("OnUnitActiveSec", optarg);
+                        if (r < 0)
                                 return r;
-                        }
 
+                        with_timer = true;
                         break;
 
                 case ARG_ON_UNIT_INACTIVE:
-
-                        r = parse_sec(optarg, &arg_on_unit_inactive);
-                        if (r < 0) {
-                                log_error("Failed to parse timer value: %s", optarg);
+                        r = add_timer_property("OnUnitInactiveSec", optarg);
+                        if (r < 0)
                                 return r;
-                        }
 
+                        with_timer = true;
                         break;
 
-                case ARG_ON_CALENDAR: {
-                        CalendarSpec *spec = NULL;
-
-                        r = calendar_spec_from_string(optarg, &spec);
-                        if (r < 0) {
-                                log_error("Invalid calendar spec: %s", optarg);
+                case ARG_ON_CALENDAR:
+                        r = add_timer_property("OnCalendar", optarg);
+                        if (r < 0)
                                 return r;
-                        }
 
-                        calendar_spec_free(spec);
-                        arg_on_calendar = optarg;
+                        with_timer = true;
                         break;
-                }
 
                 case ARG_TIMER_PROPERTY:
 
                         if (strv_extend(&arg_timer_property, optarg) < 0)
                                 return log_oom();
 
+                        with_timer = with_timer ||
+                                !!startswith(optarg, "OnActiveSec=") ||
+                                !!startswith(optarg, "OnBootSec=") ||
+                                !!startswith(optarg, "OnStartupSec=") ||
+                                !!startswith(optarg, "OnUnitActiveSec=") ||
+                                !!startswith(optarg, "OnUnitInactiveSec=") ||
+                                !!startswith(optarg, "OnCalendar=");
                         break;
 
                 case ARG_NO_BLOCK:
@@ -397,7 +397,7 @@ static int parse_argv(int argc, char *argv[]) {
                         ARG_STDIO_DIRECT;
         }
 
-        if ((optind >= argc) && (!arg_unit || !with_timer())) {
+        if ((optind >= argc) && (!arg_unit || !with_timer)) {
                 log_error("Command line to execute required.");
                 return -EINVAL;
         }
@@ -417,7 +417,7 @@ static int parse_argv(int argc, char *argv[]) {
                 return -EINVAL;
         }
 
-        if (arg_stdio != ARG_STDIO_NONE && (with_timer() || arg_scope)) {
+        if (arg_stdio != ARG_STDIO_NONE && (with_timer || arg_scope)) {
                 log_error("--pty/--pipe is not compatible in timer or --scope mode.");
                 return -EINVAL;
         }
@@ -432,12 +432,12 @@ static int parse_argv(int argc, char *argv[]) {
                 return -EINVAL;
         }
 
-        if (arg_scope && with_timer()) {
+        if (arg_scope && with_timer) {
                 log_error("Timer options are not supported in --scope mode.");
                 return -EINVAL;
         }
 
-        if (arg_timer_property && !with_timer()) {
+        if (arg_timer_property && !with_timer) {
                 log_error("--timer-property= has no effect without any other timer options.");
                 return -EINVAL;
         }
@@ -448,7 +448,7 @@ static int parse_argv(int argc, char *argv[]) {
                         return -EINVAL;
                 }
 
-                if (with_timer()) {
+                if (with_timer) {
                         log_error("--wait may not be combined with timer operations.");
                         return -EINVAL;
                 }
@@ -727,42 +727,6 @@ static int transient_timer_set_properties(sd_bus_message *m) {
         if (r < 0)
                 return bus_log_create_error(r);
 
-        if (arg_on_active) {
-                r = sd_bus_message_append(m, "(sv)", "OnActiveSec", "t", arg_on_active);
-                if (r < 0)
-                        return bus_log_create_error(r);
-        }
-
-        if (arg_on_boot) {
-                r = sd_bus_message_append(m, "(sv)", "OnBootSec", "t", arg_on_boot);
-                if (r < 0)
-                        return bus_log_create_error(r);
-        }
-
-        if (arg_on_startup) {
-                r = sd_bus_message_append(m, "(sv)", "OnStartupSec", "t", arg_on_startup);
-                if (r < 0)
-                        return bus_log_create_error(r);
-        }
-
-        if (arg_on_unit_active) {
-                r = sd_bus_message_append(m, "(sv)", "OnUnitActiveSec", "t", arg_on_unit_active);
-                if (r < 0)
-                        return bus_log_create_error(r);
-        }
-
-        if (arg_on_unit_inactive) {
-                r = sd_bus_message_append(m, "(sv)", "OnUnitInactiveSec", "t", arg_on_unit_inactive);
-                if (r < 0)
-                        return bus_log_create_error(r);
-        }
-
-        if (arg_on_calendar) {
-                r = sd_bus_message_append(m, "(sv)", "OnCalendar", "s", arg_on_calendar);
-                if (r < 0)
-                        return bus_log_create_error(r);
-        }
-
         return 0;
 }
 
@@ -1524,7 +1488,7 @@ int main(int argc, char* argv[]) {
 
         if (arg_scope)
                 r = start_transient_scope(bus, argv + optind);
-        else if (with_timer())
+        else if (with_timer)
                 r = start_transient_timer(bus, argv + optind);
         else
                 r = start_transient_service(bus, argv + optind, &retval);
index a0c76eddbe7ab4c6bc877003d0dbca31efe2cd79..17928a9732c19ae3d8ffce14daa56abeb08a4592 100644 (file)
@@ -252,11 +252,13 @@ int ask_password_tty(
                 }
 
                 if (colors_enabled())
-                        loop_write(ttyfd, ANSI_HIGHLIGHT, strlen(ANSI_HIGHLIGHT), false);
+                        loop_write(ttyfd, ANSI_HIGHLIGHT,
+                                   STRLEN(ANSI_HIGHLIGHT), false);
                 loop_write(ttyfd, message, strlen(message), false);
                 loop_write(ttyfd, " ", 1, false);
                 if (colors_enabled())
-                        loop_write(ttyfd, ANSI_NORMAL, strlen(ANSI_NORMAL), false);
+                        loop_write(ttyfd, ANSI_NORMAL, STRLEN(ANSI_NORMAL),
+                                   false);
 
                 new_termios = old_termios;
                 new_termios.c_lflag &= ~(ICANON|ECHO);
index dea3c5212ad93a0d28656fc960534fd973a5e9c5..c0a10417d8b11905c8b56474bbea41487662b1fb 100644 (file)
@@ -36,8 +36,9 @@
 #include "virt.h"
 
 void boot_entry_free(BootEntry *entry) {
-        free(entry->filename);
+        assert(entry);
 
+        free(entry->filename);
         free(entry->title);
         free(entry->show_title);
         free(entry->version);
@@ -56,6 +57,9 @@ int boot_entry_load(const char *path, BootEntry *entry) {
         _cleanup_(boot_entry_free) BootEntry tmp = {};
         int r;
 
+        assert(path);
+        assert(entry);
+
         f = fopen(path, "re");
         if (!f)
                 return log_error_errno(errno, "Failed to open \"%s\": %m", path);
@@ -123,6 +127,8 @@ int boot_entry_load(const char *path, BootEntry *entry) {
 void boot_config_free(BootConfig *config) {
         unsigned i;
 
+        assert(config);
+
         free(config->default_pattern);
         free(config->timeout);
         free(config->editor);
@@ -140,6 +146,9 @@ int boot_loader_read_conf(const char *path, BootConfig *config) {
         unsigned line = 1;
         int r;
 
+        assert(path);
+        assert(config);
+
         f = fopen(path, "re");
         if (!f)
                 return log_error_errno(errno, "Failed to open \"%s\": %m", path);
@@ -251,14 +260,17 @@ static int boot_entry_compare(const void *a, const void *b) {
         return str_verscmp(aa->filename, bb->filename);
 }
 
-int boot_entries_find(const char *dir, BootEntry **entries, size_t *n_entries) {
+int boot_entries_find(const char *dir, BootEntry **ret_entries, size_t *ret_n_entries) {
         _cleanup_strv_free_ char **files = NULL;
         char **f;
         int r;
-
         BootEntry *array = NULL;
         size_t n_allocated = 0, n = 0;
 
+        assert(dir);
+        assert(ret_entries);
+        assert(ret_n_entries);
+
         r = conf_files_list(&files, ".conf", NULL, 0, dir, NULL);
         if (r < 0)
                 return log_error_errno(r, "Failed to list files in \"%s\": %m", dir);
@@ -276,8 +288,9 @@ int boot_entries_find(const char *dir, BootEntry **entries, size_t *n_entries) {
 
         qsort_safe(array, n, sizeof(BootEntry), boot_entry_compare);
 
-        *entries = array;
-        *n_entries = n;
+        *ret_entries = array;
+        *ret_n_entries = n;
+
         return 0;
 }
 
@@ -285,6 +298,9 @@ static bool find_nonunique(BootEntry *entries, size_t n_entries, bool *arr) {
         unsigned i, j;
         bool non_unique = false;
 
+        assert(entries || n_entries == 0);
+        assert(arr || n_entries == 0);
+
         for (i = 0; i < n_entries; i++)
                 arr[i] = false;
 
@@ -303,6 +319,8 @@ static int boot_entries_uniquify(BootEntry *entries, size_t n_entries) {
         int r;
         bool arr[n_entries];
 
+        assert(entries || n_entries == 0);
+
         /* Find _all_ non-unique titles */
         if (!find_nonunique(entries, n_entries, arr))
                 return 0;
@@ -349,6 +367,8 @@ static int boot_entries_uniquify(BootEntry *entries, size_t n_entries) {
 static int boot_entries_select_default(const BootConfig *config) {
         int i;
 
+        assert(config);
+
         if (config->entry_oneshot)
                 for (i = config->n_entries - 1; i >= 0; i--)
                         if (streq(config->entry_oneshot, config->entries[i].filename)) {
@@ -377,6 +397,7 @@ static int boot_entries_select_default(const BootConfig *config) {
                 log_debug("Found default: last entry \"%s\"", config->entries[config->n_entries - 1].filename);
         else
                 log_debug("Found no default boot entry :(");
+
         return config->n_entries - 1; /* -1 means "no default" */
 }
 
@@ -384,6 +405,9 @@ int boot_entries_load_config(const char *esp_path, BootConfig *config) {
         const char *p;
         int r;
 
+        assert(esp_path);
+        assert(config);
+
         p = strjoina(esp_path, "/loader/loader.conf");
         r = boot_loader_read_conf(p, config);
         if (r < 0)
@@ -413,8 +437,9 @@ int boot_entries_load_config(const char *esp_path, BootConfig *config) {
 /********************************************************************************/
 
 static int verify_esp(
-                bool searching,
                 const char *p,
+                bool searching,
+                bool unprivileged_mode,
                 uint32_t *ret_part,
                 uint64_t *ret_pstart,
                 uint64_t *ret_psize,
@@ -430,21 +455,19 @@ static int verify_esp(
         struct statfs sfs;
         sd_id128_t uuid = SD_ID128_NULL;
         uint32_t part = 0;
-        bool quiet;
         int r;
 
         assert(p);
 
-        /* Non-root user can only check the status, so if an error occured in the following,
-         * it does not cause any issues. Let's silence the error messages. */
-        quiet = geteuid() != 0;
+        /* Non-root user can only check the status, so if an error occured in the following, it does not cause any
+         * issues. Let's also, silence the error messages. */
 
         if (statfs(p, &sfs) < 0) {
                 /* If we are searching for the mount point, don't generate a log message if we can't find the path */
                 if (errno == ENOENT && searching)
                         return -ENOENT;
 
-                return log_full_errno(quiet && errno == EACCES ? LOG_DEBUG : LOG_ERR, errno,
+                return log_full_errno(unprivileged_mode && errno == EACCES ? LOG_DEBUG : LOG_ERR, errno,
                                       "Failed to check file system type of \"%s\": %m", p);
         }
 
@@ -457,7 +480,7 @@ static int verify_esp(
         }
 
         if (stat(p, &st) < 0)
-                return log_full_errno(quiet && errno == EACCES ? LOG_DEBUG : LOG_ERR, errno,
+                return log_full_errno(unprivileged_mode && errno == EACCES ? LOG_DEBUG : LOG_ERR, errno,
                                       "Failed to determine block device node of \"%s\": %m", p);
 
         if (major(st.st_dev) == 0) {
@@ -468,7 +491,7 @@ static int verify_esp(
         t2 = strjoina(p, "/..");
         r = stat(t2, &st2);
         if (r < 0)
-                return log_full_errno(quiet && errno == EACCES ? LOG_DEBUG : LOG_ERR, errno,
+                return log_full_errno(unprivileged_mode && errno == EACCES ? LOG_DEBUG : LOG_ERR, errno,
                                       "Failed to determine block device node of parent of \"%s\": %m", p);
 
         if (st.st_dev == st2.st_dev) {
@@ -478,7 +501,7 @@ static int verify_esp(
 
         /* In a container we don't have access to block devices, skip this part of the verification, we trust the
          * container manager set everything up correctly on its own. Also skip the following verification for non-root user. */
-        if (detect_container() > 0 || geteuid() != 0)
+        if (detect_container() > 0 || unprivileged_mode)
                 goto finish;
 
 #if HAVE_BLKID
@@ -579,29 +602,53 @@ finish:
         return 0;
 }
 
-int find_esp(char **path,
-             uint32_t *part, uint64_t *pstart, uint64_t *psize, sd_id128_t *uuid) {
+int find_esp_and_warn(
+                const char *path,
+                bool unprivileged_mode,
+                char **ret_path,
+                uint32_t *ret_part,
+                uint64_t *ret_pstart,
+                uint64_t *ret_psize,
+                sd_id128_t *ret_uuid) {
 
-        const char *p;
         int r;
 
-        if (*path)
-                return verify_esp(false, *path, part, pstart, psize, uuid);
+        /* This logs about all errors except:
+         *
+         *    -ENOKEY → when we can't find the partition
+         *   -EACCESS → when unprivileged_mode is true, and we can't access something
+         */
 
-        FOREACH_STRING(p, "/efi", "/boot", "/boot/efi") {
-
-                r = verify_esp(true, p, part, pstart, psize, uuid);
-                if (IN_SET(r, -ENOENT, -EADDRNOTAVAIL)) /* This one is not it */
-                        continue;
+        if (path) {
+                r = verify_esp(path, false, unprivileged_mode, ret_part, ret_pstart, ret_psize, ret_uuid);
                 if (r < 0)
                         return r;
 
-                *path = strdup(p);
-                if (!*path)
+                goto found;
+        }
+
+        FOREACH_STRING(path, "/efi", "/boot", "/boot/efi") {
+
+                r = verify_esp(path, true, unprivileged_mode, ret_part, ret_pstart, ret_psize, ret_uuid);
+                if (r >= 0)
+                        goto found;
+                if (!IN_SET(r, -ENOENT, -EADDRNOTAVAIL)) /* This one is not it */
+                        return r;
+        }
+
+        /* No logging here */
+        return -ENOKEY;
+
+found:
+        if (ret_path) {
+                char *c;
+
+                c = strdup(path);
+                if (!c)
                         return log_oom();
 
-                return 0;
+                *ret_path = c;
         }
 
-        return -ENOENT;
+        return 0;
 }
index fb8c10a69aed736644bac4a3b73d303fde3858e4..d9c641bf081bb740e30d6ccbd91e66331bf5fb32 100644 (file)
@@ -61,5 +61,4 @@ static inline const char* boot_entry_title(const BootEntry *entry) {
         return entry->show_title ?: entry->title ?: entry->filename;
 }
 
-int find_esp(char **path,
-             uint32_t *part, uint64_t *pstart, uint64_t *psize, sd_id128_t *uuid);
+int find_esp_and_warn(const char *path, bool unprivileged_mode, char **ret_path, uint32_t *ret_part, uint64_t *ret_pstart, uint64_t *ret_psize, sd_id128_t *ret_uuid);
index 643daa639b315faa6edb9706a8257542f4a6c448..8af738d8ce8cebe9ad1c78de372a046270268d29 100644 (file)
@@ -153,8 +153,6 @@ int bus_append_unit_property_assignment(sd_bus_message *m, const char *assignmen
 
                 l = strlen(field);
                 n = newa(char, l + 2);
-                if (!n)
-                        return log_oom();
 
                 /* Change suffix Sec → USec */
                 strcpy(mempcpy(n, field, l - 3), "USec");
@@ -357,10 +355,10 @@ int bus_append_unit_property_assignment(sd_bus_message *m, const char *assignmen
                               "TasksAccounting", "IPAccounting", "SendSIGHUP", "SendSIGKILL", "WakeSystem",
                               "DefaultDependencies", "IgnoreSIGPIPE", "TTYVHangup", "TTYReset", "TTYVTDisallocate",
                               "RemainAfterExit", "PrivateTmp", "PrivateDevices", "PrivateNetwork", "PrivateUsers",
-                              "NoNewPrivileges", "SyslogLevelPrefix", "RemainAfterElapse",
+                              "NoNewPrivileges", "SyslogLevelPrefix", "RemainAfterElapse", "Persistent",
                               "MemoryDenyWriteExecute", "RestrictRealtime", "DynamicUser", "RemoveIPC",
                               "ProtectKernelTunables", "ProtectKernelModules", "ProtectControlGroups", "MountAPIVFS",
-                              "CPUSchedulingResetOnFork", "LockPersonality")) {
+                              "CPUSchedulingResetOnFork", "LockPersonality", "MakeDirectory")) {
 
                 r = parse_boolean(eq);
                 if (r < 0)
@@ -411,7 +409,9 @@ int bus_append_unit_property_assignment(sd_bus_message *m, const char *assignmen
                               "RootDirectory", "SyslogIdentifier", "ProtectSystem",
                               "ProtectHome", "SELinuxContext", "Restart", "RootImage",
                               "NotifyAccess", "RuntimeDirectoryPreserve", "Personality",
-                              "KeyringMode", "CollectMode", "FailureAction", "SuccessAction"))
+                              "KeyringMode", "CollectMode", "FailureAction", "SuccessAction",
+                              "OnCalendar"))
+
                 r = sd_bus_message_append(m, "v", "s", eq);
 
         else if (streq(field, "StandardInputData")) {
@@ -705,7 +705,9 @@ int bus_append_unit_property_assignment(sd_bus_message *m, const char *assignmen
                 if (r < 0)
                         return bus_log_create_error(r);
 
-                sd_bus_message_append_array(m, 'y', cpuset, CPU_ALLOC_SIZE(ncpus));
+                r = sd_bus_message_append_array(m, 'y', cpuset, CPU_ALLOC_SIZE(ncpus));
+                if (r < 0)
+                        return bus_log_create_error(r);
 
                 r = sd_bus_message_close_container(m);
 
@@ -970,6 +972,7 @@ int bus_append_unit_property_assignment(sd_bus_message *m, const char *assignmen
                 }
 
                 r = sd_bus_message_append(m, "v", "i", oa);
+
         } else if (STR_IN_SET(field, "ReadWriteDirectories", "ReadOnlyDirectories", "InaccessibleDirectories",
                               "ReadWritePaths", "ReadOnlyPaths", "InaccessiblePaths")) {
                 const char *p;
@@ -1001,7 +1004,7 @@ int bus_append_unit_property_assignment(sd_bus_message *m, const char *assignmen
                         offset += word[offset] == '+';
 
                         if (!path_is_absolute(word + offset)) {
-                                log_error("Failed to parse %s value %s", field, eq);
+                                log_error("Path specified by %s is not absolute: %s", field, eq);
                                 return -EINVAL;
                         }
 
@@ -1039,7 +1042,7 @@ int bus_append_unit_property_assignment(sd_bus_message *m, const char *assignmen
                                 break;
 
                         if (!valid_user_group_name_or_id(word)) {
-                                log_error("Failed to parse %s value %s", field, eq);
+                                log_error("Invalid group name or id is specified by %s: %s", field, eq);
                                 return -EINVAL;
                         }
 
@@ -1054,7 +1057,10 @@ int bus_append_unit_property_assignment(sd_bus_message *m, const char *assignmen
 
                 r = sd_bus_message_close_container(m);
 
-        } else if (STR_IN_SET(field, "RuntimeDirectoryMode", "StateDirectoryMode", "CacheDirectoryMode", "LogsDirectoryMode", "ConfigurationDirectoryMode", "UMask")) {
+        } else if (STR_IN_SET(field,
+                              "RuntimeDirectoryMode", "StateDirectoryMode", "CacheDirectoryMode",
+                              "LogsDirectoryMode", "ConfigurationDirectoryMode", "UMask",
+                              "DirectoryMode")) {
                 mode_t mode;
 
                 r = parse_mode(eq, &mode);
@@ -1120,8 +1126,11 @@ int bus_append_unit_property_assignment(sd_bus_message *m, const char *assignmen
                         flags = (~flags) & NAMESPACE_FLAGS_ALL;
 
                 r = sd_bus_message_append(m, "v", "t", (uint64_t) flags);
+
         } else if ((dep = unit_dependency_from_string(field)) >= 0)
+
                 r = sd_bus_message_append(m, "v", "as", 1, eq);
+
         else if (streq(field, "MountFlags")) {
                 unsigned long f;
 
@@ -1130,6 +1139,7 @@ int bus_append_unit_property_assignment(sd_bus_message *m, const char *assignmen
                         return log_error_errno(r, "Failed to parse mount propagation flags: %s", eq);
 
                 r = sd_bus_message_append(m, "v", "t", (uint64_t) f);
+
         } else if (STR_IN_SET(field, "BindPaths", "BindReadOnlyPaths")) {
                 const char *p = eq;
 
@@ -1288,6 +1298,28 @@ int bus_append_unit_property_assignment(sd_bus_message *m, const char *assignmen
 
                 r = sd_bus_message_close_container(m);
 
+        } else if (STR_IN_SET(field,
+                              "OnActiveSec", "OnBootSec", "OnStartupSec",
+                              "OnUnitActiveSec","OnUnitInactiveSec")) {
+                usec_t t;
+
+                r = parse_sec(eq, &t);
+                if (r < 0)
+                        return log_error_errno(r, "Failed to parse %s= parameter: %s", field, eq);
+
+                r = sd_bus_message_append(m, "v", "t", t);
+
+        } else if (STR_IN_SET(field,
+                              "PathExists", "PathExistsGlob", "PathChanged",
+                              "PathModified", "DirectoryNotEmpty")) {
+
+                if (!path_is_absolute(eq)) {
+                        log_error("Path specified by %s= is not absolute: %s", field, eq);
+                        return -EINVAL;
+                }
+
+                r = sd_bus_message_append(m, "v", "s", eq);
+
         } else {
                 log_error("Unknown assignment: %s", assignment);
                 return -EINVAL;
index 3f32dfb7b675ae7939afac5c4624dc6bdecc9277..d4bbaf3c65d22e58936a377e9227b5690899e7ac 100644 (file)
@@ -36,6 +36,7 @@
 #include "architecture.h"
 #include "audit-util.h"
 #include "cap-list.h"
+#include "cgroup-util.h"
 #include "condition.h"
 #include "extract-word.h"
 #include "fd-util.h"
@@ -177,6 +178,30 @@ static int condition_test_user(Condition *c) {
         return id == getuid() || id == geteuid();
 }
 
+static int condition_test_control_group_controller(Condition *c) {
+        int r;
+        CGroupMask system_mask, wanted_mask = 0;
+
+        assert(c);
+        assert(c->parameter);
+        assert(c->type == CONDITION_CONTROL_GROUP_CONTROLLER);
+
+        r = cg_mask_supported(&system_mask);
+        if (r < 0)
+                return log_debug_errno(r, "Failed to determine supported controllers: %m");
+
+        r = cg_mask_from_string(c->parameter, &wanted_mask);
+        if (r < 0 || wanted_mask <= 0) {
+                /* This won't catch the case that we have an unknown controller
+                 * mixed in with valid ones -- these are only assessed on the
+                 * validity of the valid controllers found. */
+                log_debug("Failed to parse cgroup string: %s", c->parameter);
+                return 1;
+        }
+
+        return (system_mask & wanted_mask) == wanted_mask;
+}
+
 static int condition_test_group(Condition *c) {
         gid_t id;
         int r;
@@ -537,6 +562,7 @@ int condition_test(Condition *c) {
                 [CONDITION_FIRST_BOOT] = condition_test_first_boot,
                 [CONDITION_USER] = condition_test_user,
                 [CONDITION_GROUP] = condition_test_group,
+                [CONDITION_CONTROL_GROUP_CONTROLLER] = condition_test_control_group_controller,
                 [CONDITION_NULL] = condition_test_null,
         };
 
@@ -602,6 +628,7 @@ static const char* const condition_type_table[_CONDITION_TYPE_MAX] = {
         [CONDITION_FILE_IS_EXECUTABLE] = "ConditionFileIsExecutable",
         [CONDITION_USER] = "ConditionUser",
         [CONDITION_GROUP] = "ConditionGroup",
+        [CONDITION_CONTROL_GROUP_CONTROLLER] = "ConditionControlGroupController",
         [CONDITION_NULL] = "ConditionNull"
 };
 
@@ -628,6 +655,7 @@ static const char* const assert_type_table[_CONDITION_TYPE_MAX] = {
         [CONDITION_FILE_IS_EXECUTABLE] = "AssertFileIsExecutable",
         [CONDITION_USER] = "AssertUser",
         [CONDITION_GROUP] = "AssertGroup",
+        [CONDITION_CONTROL_GROUP_CONTROLLER] = "AssertControlGroupController",
         [CONDITION_NULL] = "AssertNull"
 };
 
index 534906b6d6db76d7abcb343e2fe7c3c71283c9b7..715866be704d3f949614308cd8e73698d008a727 100644 (file)
@@ -53,6 +53,8 @@ typedef enum ConditionType {
         CONDITION_USER,
         CONDITION_GROUP,
 
+        CONDITION_CONTROL_GROUP_CONTROLLER,
+
         _CONDITION_TYPE_MAX,
         _CONDITION_TYPE_INVALID = -1
 } ConditionType;
index 8789fd163ab809fee887d7cbef27f1ba9b5cd7d1..a11d4849bb8969bdbfb332babecc9e7e81c483de 100644 (file)
@@ -38,6 +38,7 @@
 #include "hostname-util.h"
 #include "id128-util.h"
 #include "linux-3.13/dm-ioctl.h"
+#include "missing.h"
 #include "mount-util.h"
 #include "path-util.h"
 #include "process-util.h"
@@ -1186,7 +1187,7 @@ int root_hash_load(const char *image, void **ret, size_t *ret_size) {
                 if (!IN_SET(r, -ENODATA, -EOPNOTSUPP, -ENOENT))
                         return r;
 
-                fn = newa(char, strlen(image) + strlen(".roothash") + 1);
+                fn = newa(char, strlen(image) + STRLEN(".roothash") + 1);
                 n = stpcpy(fn, image);
                 e = endswith(fn, ".raw");
                 if (e)
index bdef67dc4f0bfd66da1e8848b9afb300bc86b1d4..8c807e0e2381d26f5dd151e0c3da96c6bf775ab3 100644 (file)
@@ -693,23 +693,26 @@ int dns_name_change_suffix(const char *name, const char *old_suffix, const char
 }
 
 int dns_name_between(const char *a, const char *b, const char *c) {
-        int n;
-
         /* Determine if b is strictly greater than a and strictly smaller than c.
            We consider the order of names to be circular, so that if a is
            strictly greater than c, we consider b to be between them if it is
            either greater than a or smaller than c. This is how the canonical
            DNS name order used in NSEC records work. */
 
-        n = dns_name_compare_func(a, c);
-        if (n == 0)
-                return -EINVAL;
-        else if (n < 0)
-                /*       a<---b--->c       */
+        if (dns_name_compare_func(a, c) < 0)
+                /*
+                   a and c are properly ordered:
+                   a<---b--->c
+                */
                 return dns_name_compare_func(a, b) < 0 &&
                        dns_name_compare_func(b, c) < 0;
         else
-                /* <--b--c         a--b--> */
+                /*
+                   a and c are equal or 'reversed':
+                   <--b--c         a----->
+                   or:
+                   <-----c         a--b-->
+                */
                 return dns_name_compare_func(b, c) < 0 ||
                        dns_name_compare_func(a, b) < 0;
 }
index 3495a7ef7d58af00caa0e1b37b59947594c65e08..2b0a4ecdc8d4d924c01803b29ecb64fc2628c427 100644 (file)
@@ -19,6 +19,7 @@
 ***/
 
 #include <errno.h>
+#include <stdio_ext.h>
 #include <unistd.h>
 
 #include "alloc-util.h"
 #include "unit-name.h"
 #include "util.h"
 
+int generator_open_unit_file(
+                const char *dest,
+                const char *source,
+                const char *name,
+                FILE **file) {
+
+        const char *unit;
+        FILE *f;
+
+        unit = strjoina(dest, "/", name);
+
+        f = fopen(unit, "wxe");
+        if (!f) {
+                if (source && errno == EEXIST)
+                        return log_error_errno(errno,
+                                               "Failed to create unit file %s, as it already exists. Duplicate entry in %s?",
+                                               unit, source);
+                else
+                        return log_error_errno(errno,
+                                               "Failed to create unit file %s: %m",
+                                               unit);
+        }
+
+        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+
+        fprintf(f,
+                "# Automatically generated by %s\n\n",
+                program_invocation_short_name);
+
+        *file = f;
+        return 0;
+}
+
 int generator_add_symlink(const char *root, const char *dst, const char *dep_type, const char *src) {
         /* Adds a symlink from <dst>.<dep_type>.d/ to ../<src> */
 
index 32d1ad021cd5c67a05494a74cfdab2b418c1faf1..e1c636a2181bfd67b049af94b628e63be5389a27 100644 (file)
 
 #include <stdio.h>
 
+int generator_open_unit_file(
+        const char *dest,
+        const char *source,
+        const char *name,
+        FILE **file);
+
 int generator_add_symlink(const char *root, const char *dst, const char *dep_type, const char *src);
 
 int generator_write_fsck_deps(
index 420c4d3e37722438bd1ac7ad100fe21b30821955..af7f8f345e196a138c6c1bd13eb2b8c213658c99 100644 (file)
@@ -506,7 +506,9 @@ static int output_verbose(
         else {
                 _cleanup_free_ char *value = NULL;
 
-                r = parse_field(data, length, "_SOURCE_REALTIME_TIMESTAMP=", strlen("_SOURCE_REALTIME_TIMESTAMP="), &value, NULL);
+                r = parse_field(data, length, "_SOURCE_REALTIME_TIMESTAMP=",
+                                STRLEN("_SOURCE_REALTIME_TIMESTAMP="), &value,
+                                NULL);
                 if (r < 0)
                         return r;
                 assert(r > 0);
@@ -1390,7 +1392,7 @@ int show_journal_by_unit(
         if (r < 0)
                 return log_error_errno(r, "Failed to add unit matches: %m");
 
-        if (_unlikely_(log_get_max_level() >= LOG_DEBUG)) {
+        if (DEBUG_LOGGING) {
                 _cleanup_free_ char *filter;
 
                 filter = journal_make_match_string(j);
index 167bcfad36cf723af6a180451f6d0c5487d7caef..e7d19b10aab6c0ce65a3668f579ea614b32c8401 100644 (file)
@@ -42,6 +42,7 @@
 #include "fd-util.h"
 #include "fileio.h"
 #include "fs-util.h"
+#include "label.h"
 #include "lockfile-util.h"
 #include "log.h"
 #include "machine-pool.h"
index 62742858c7bfd42fccbf0f8bce4ac62a10a78fcc..4f098238d9c68d2232b232b737baa0511b964cfc 100644 (file)
@@ -954,7 +954,7 @@ int seccomp_restrict_namespaces(unsigned long retain) {
         uint32_t arch;
         int r;
 
-        if (log_get_max_level() >= LOG_DEBUG) {
+        if (DEBUG_LOGGING) {
                 _cleanup_free_ char *s = NULL;
 
                 (void) namespace_flag_to_string_many(retain, &s);
@@ -1386,6 +1386,7 @@ int seccomp_memory_deny_write_execute(void) {
                         block_syscall = SCMP_SYS(mmap);
                         break;
 
+                case SCMP_ARCH_PPC:
                 case SCMP_ARCH_PPC64:
                 case SCMP_ARCH_PPC64LE:
                         filter_syscall = SCMP_SYS(mmap);
@@ -1410,7 +1411,7 @@ int seccomp_memory_deny_write_execute(void) {
 
                 /* Please add more definitions here, if you port systemd to other architectures! */
 
-#if !defined(__i386__) && !defined(__x86_64__) && !defined(__powerpc64__) && !defined(__arm__) && !defined(__aarch64__)
+#if !defined(__i386__) && !defined(__x86_64__) && !defined(__powerpc__) && !defined(__powerpc64__) && !defined(__arm__) && !defined(__aarch64__)
 #warning "Consider adding the right mmap() syscall definitions here!"
 #endif
                 }
index 391065d804a54fdee2d20e83a8f05b097ff6db3e..189580e3ed29d900a591fbf6912ed56c9c26553a 100644 (file)
@@ -60,7 +60,7 @@ int sysctl_write(const char *property, const char *value) {
         log_debug("Setting '%s' to '%s'", property, value);
 
         p = strjoina("/proc/sys/", property);
-        return write_string_file(p, value, 0);
+        return write_string_file(p, value, WRITE_STRING_FILE_DISABLE_BUFFER);
 }
 
 int sysctl_read(const char *property, char **content) {
index 40910876c9f690234e625b132dbb5e092c6b16a3..1715c0fb24ce50f4b3333b43f000d7e1259660c4 100644 (file)
@@ -425,7 +425,7 @@ int utmp_wall(
                 if (u->ut_type != USER_PROCESS || u->ut_user[0] == 0)
                         continue;
 
-                /* this access is fine, because strlen("/dev/") << 32 (UT_LINESIZE) */
+                /* this access is fine, because STRLEN("/dev/") << 32 (UT_LINESIZE) */
                 if (path_startswith(u->ut_line, "/dev/"))
                         path = u->ut_line;
                 else {
index 4c468d011ad75e73c15340e49c859e7ad26528f5..a1dc95b2bb2dec021ea98a7772fb6274a1987058 100644 (file)
@@ -106,16 +106,16 @@ static int parse_file(OrderedHashmap *sysctl_options, const char *path, bool ign
 
         log_debug("Parsing %s", path);
         for (;;) {
-                char l[LINE_MAX], *p, *value, *new_value, *property, *existing;
+                char *p, *value, *new_value, *property, *existing;
+                _cleanup_free_ char *l = NULL;
                 void *v;
                 int k;
+                k = read_line(f, LONG_LINE_MAX, &l);
+                if (k == 0)
+                        break;
 
-                if (!fgets(l, sizeof(l), f)) {
-                        if (feof(f))
-                                break;
-
-                        return log_error_errno(errno, "Failed to read file '%s', ignoring: %m", path);
-                }
+                if (k < 0)
+                        return log_error_errno(k, "Failed to read file '%s', ignoring: %m", path);
 
                 c++;
 
index 33fbaf995011ef5fbcfc73fc66a67fdc5244fd97..6d3adc580314fb755d054e94d32ea2b0a840777b 100644 (file)
@@ -332,7 +332,7 @@ static bool install_client_side(void) {
         /* Decides when to execute enable/disable/... operations
          * client-side rather than server-side. */
 
-        if (running_in_chroot() > 0)
+        if (running_in_chroot_or_offline())
                 return true;
 
         if (sd_booted() <= 0)
@@ -428,12 +428,12 @@ static int output_units_list(const UnitInfo *unit_infos, unsigned c) {
         unsigned n_shown = 0;
         int job_count = 0;
 
-        max_id_len = strlen("UNIT");
-        load_len = strlen("LOAD");
-        active_len = strlen("ACTIVE");
-        sub_len = strlen("SUB");
-        job_len = strlen("JOB");
-        max_desc_len = strlen("DESCRIPTION");
+        max_id_len = STRLEN("UNIT");
+        load_len = STRLEN("LOAD");
+        active_len = STRLEN("ACTIVE");
+        sub_len = STRLEN("SUB");
+        job_len = STRLEN("JOB");
+        max_desc_len = STRLEN("DESCRIPTION");
 
         for (u = unit_infos; u < unit_infos + c; u++) {
                 max_id_len = MAX(max_id_len, strlen(u->id) + (u->machine ? strlen(u->machine)+1 : 0));
@@ -914,10 +914,10 @@ static int socket_info_compare(const struct socket_info *a, const struct socket_
 
 static int output_sockets_list(struct socket_info *socket_infos, unsigned cs) {
         struct socket_info *s;
-        unsigned pathlen = strlen("LISTEN"),
-                typelen = strlen("TYPE") * arg_show_types,
-                socklen = strlen("UNIT"),
-                servlen = strlen("ACTIVATES");
+        unsigned pathlen = STRLEN("LISTEN"),
+                typelen = STRLEN("TYPE") * arg_show_types,
+                socklen = STRLEN("UNIT"),
+                servlen = STRLEN("ACTIVATES");
         const char *on, *off;
 
         for (s = socket_infos; s < socket_infos + cs; s++) {
@@ -1165,12 +1165,12 @@ static int timer_info_compare(const struct timer_info *a, const struct timer_inf
 static int output_timers_list(struct timer_info *timer_infos, unsigned n) {
         struct timer_info *t;
         unsigned
-                nextlen = strlen("NEXT"),
-                leftlen = strlen("LEFT"),
-                lastlen = strlen("LAST"),
-                passedlen = strlen("PASSED"),
-                unitlen = strlen("UNIT"),
-                activatelen = strlen("ACTIVATES");
+                nextlen = STRLEN("NEXT"),
+                leftlen = STRLEN("LEFT"),
+                lastlen = STRLEN("LAST"),
+                passedlen = STRLEN("PASSED"),
+                unitlen = STRLEN("UNIT"),
+                activatelen = STRLEN("ACTIVATES");
 
         const char *on, *off;
 
@@ -1410,8 +1410,8 @@ static void output_unit_file_list(const UnitFileList *units, unsigned c) {
         unsigned max_id_len, id_cols, state_cols;
         const UnitFileList *u;
 
-        max_id_len = strlen("UNIT FILE");
-        state_cols = strlen("STATE");
+        max_id_len = STRLEN("UNIT FILE");
+        state_cols = STRLEN("STATE");
 
         for (u = units; u < units + c; u++) {
                 max_id_len = MAX(max_id_len, strlen(basename(u->path)));
@@ -1999,15 +1999,16 @@ static void output_machines_list(struct machine_info *machine_infos, unsigned n)
         struct machine_info *m;
         unsigned
                 circle_len = 0,
-                namelen = sizeof("NAME") - 1,
-                statelen = sizeof("STATE") - 1,
-                failedlen = sizeof("FAILED") - 1,
-                jobslen = sizeof("JOBS") - 1;
+                namelen = STRLEN("NAME"),
+                statelen = STRLEN("STATE"),
+                failedlen = STRLEN("FAILED"),
+                jobslen = STRLEN("JOBS");
 
         assert(machine_infos || n == 0);
 
         for (m = machine_infos; m < machine_infos + n; m++) {
-                namelen = MAX(namelen, strlen(m->name) + (m->is_host ? sizeof(" (host)") - 1 : 0));
+                namelen = MAX(namelen,
+                              strlen(m->name) + (m->is_host ? STRLEN(" (host)") : 0));
                 statelen = MAX(statelen, strlen_ptr(m->state));
                 failedlen = MAX(failedlen, DECIMAL_STR_WIDTH(m->n_failed_units));
                 jobslen = MAX(jobslen, DECIMAL_STR_WIDTH(m->n_jobs));
@@ -2053,7 +2054,8 @@ static void output_machines_list(struct machine_info *machine_infos, unsigned n)
 
                 if (m->is_host)
                         printf("%-*s (host) %s%-*s%s %s%*" PRIu32 "%s %*" PRIu32 "\n",
-                               (int) (namelen - (sizeof(" (host)")-1)), strna(m->name),
+                               (int) (namelen - (STRLEN(" (host)"))),
+                               strna(m->name),
                                on_state, statelen, strna(m->state), off_state,
                                on_failed, failedlen, m->n_failed_units, off_failed,
                                jobslen, m->n_jobs);
@@ -2074,11 +2076,6 @@ static int list_machines(int argc, char *argv[], void *userdata) {
         sd_bus *bus;
         int r;
 
-        if (geteuid() != 0) {
-                log_error("Must be root.");
-                return -EPERM;
-        }
-
         r = acquire_bus(BUS_MANAGER, &bus);
         if (r < 0)
                 return r;
@@ -2261,10 +2258,10 @@ static void output_jobs_list(sd_bus *bus, const struct job_info* jobs, unsigned
 
         pager_open(arg_no_pager, false);
 
-        id_len = strlen("JOB");
-        unit_len = strlen("UNIT");
-        type_len = strlen("TYPE");
-        state_len = strlen("STATE");
+        id_len = STRLEN("JOB");
+        unit_len = STRLEN("UNIT");
+        type_len = STRLEN("TYPE");
+        state_len = STRLEN("STATE");
 
         for (j = jobs; j < jobs + n; j++) {
                 uint32_t id = j->id;
@@ -3497,7 +3494,7 @@ static int prepare_firmware_setup(void) {
 
 static int load_kexec_kernel(void) {
         _cleanup_(boot_config_free) BootConfig config = {};
-        _cleanup_free_ char *kernel = NULL, *initrd = NULL, *options = NULL;
+        _cleanup_free_ char *where = NULL, *kernel = NULL, *initrd = NULL, *options = NULL;
         const BootEntry *e;
         pid_t pid;
         int r;
@@ -3507,14 +3504,15 @@ static int load_kexec_kernel(void) {
                 return 0;
         }
 
-        r = find_esp(&arg_esp_path, NULL, NULL, NULL, NULL);
-        if (r < 0)
-                return log_error_errno(r, "Cannot find the ESP partition mount point: %m");
+        r = find_esp_and_warn(arg_esp_path, false, &where, NULL, NULL, NULL, NULL);
+        if (r == -ENOKEY) /* find_esp_and_warn() doesn't warn about this case */
+                return log_error_errno(r, "Cannot find the ESP partition mount point.");
+        if (r < 0) /* But it logs about all these cases, hence don't log here again */
+                return r;
 
-        r = boot_entries_load_config(arg_esp_path, &config);
+        r = boot_entries_load_config(where, &config);
         if (r < 0)
-                return log_error_errno(r, "Failed to load bootspec config from \"%s/loader\": %m",
-                                       arg_esp_path);
+                return log_error_errno(r, "Failed to load bootspec config from \"%s/loader\": %m", where);
 
         if (config.default_entry < 0) {
                 log_error("No entry suitable as default, refusing to guess.");
@@ -3527,9 +3525,9 @@ static int load_kexec_kernel(void) {
                 return -EINVAL;
         }
 
-        kernel = path_join(NULL, arg_esp_path, e->kernel);
+        kernel = path_join(NULL, where, e->kernel);
         if (!strv_isempty(e->initrd))
-                initrd = path_join(NULL, arg_esp_path, *e->initrd);
+                initrd = path_join(NULL, where, *e->initrd);
         options = strv_join(e->options, " ");
         if (!options)
                 return log_oom();
@@ -3602,9 +3600,10 @@ static int start_special(int argc, char *argv[], void *userdata) {
         if (r < 0)
                 return r;
 
-        if (arg_force >= 2 && geteuid() != 0) {
-                log_error("Must be root.");
-                return -EPERM;
+        if (arg_force >= 2) {
+                r = must_be_root();
+                if (r < 0)
+                        return r;
         }
 
         r = prepare_firmware_setup();
@@ -6089,7 +6088,7 @@ static int enable_sysv_units(const char *verb, char **args) {
                 if (!p)
                         return log_oom();
 
-                p[strlen(p) - strlen(".service")] = 0;
+                p[strlen(p) - STRLEN(".service")] = 0;
                 found_sysv = access(p, F_OK) >= 0;
                 if (!found_sysv)
                         continue;
@@ -8402,72 +8401,72 @@ static int talk_initctl(void) {
 static int systemctl_main(int argc, char *argv[]) {
 
         static const Verb verbs[] = {
-                { "list-units",            VERB_ANY, VERB_ANY, VERB_DEFAULT|VERB_NOCHROOT, list_units },
-                { "list-unit-files",       VERB_ANY, VERB_ANY, 0,             list_unit_files      },
-                { "list-sockets",          VERB_ANY, VERB_ANY, VERB_NOCHROOT, list_sockets         },
-                { "list-timers",           VERB_ANY, VERB_ANY, VERB_NOCHROOT, list_timers          },
-                { "list-jobs",             VERB_ANY, VERB_ANY, VERB_NOCHROOT, list_jobs            },
-                { "list-machines",         VERB_ANY, VERB_ANY, VERB_NOCHROOT, list_machines        },
-                { "clear-jobs",            VERB_ANY, 1,        VERB_NOCHROOT, trivial_method       },
-                { "cancel",                VERB_ANY, VERB_ANY, VERB_NOCHROOT, cancel_job           },
-                { "start",                 2,        VERB_ANY, VERB_NOCHROOT, start_unit           },
-                { "stop",                  2,        VERB_ANY, VERB_NOCHROOT, start_unit           },
-                { "condstop",              2,        VERB_ANY, VERB_NOCHROOT, start_unit           }, /* For compatibility with ALTLinux */
-                { "reload",                2,        VERB_ANY, VERB_NOCHROOT, start_unit           },
-                { "restart",               2,        VERB_ANY, VERB_NOCHROOT, start_unit           },
-                { "try-restart",           2,        VERB_ANY, VERB_NOCHROOT, start_unit           },
-                { "reload-or-restart",     2,        VERB_ANY, VERB_NOCHROOT, start_unit           },
-                { "reload-or-try-restart", 2,        VERB_ANY, VERB_NOCHROOT, start_unit           }, /* For compatbility with old systemctl <= 228 */
-                { "try-reload-or-restart", 2,        VERB_ANY, VERB_NOCHROOT, start_unit           },
-                { "force-reload",          2,        VERB_ANY, VERB_NOCHROOT, start_unit           }, /* For compatibility with SysV */
-                { "condreload",            2,        VERB_ANY, VERB_NOCHROOT, start_unit           }, /* For compatibility with ALTLinux */
-                { "condrestart",           2,        VERB_ANY, VERB_NOCHROOT, start_unit           }, /* For compatibility with RH */
-                { "isolate",               2,        2,        VERB_NOCHROOT, start_unit           },
-                { "kill",                  2,        VERB_ANY, VERB_NOCHROOT, kill_unit            },
-                { "is-active",             2,        VERB_ANY, VERB_NOCHROOT, check_unit_active    },
-                { "check",                 2,        VERB_ANY, VERB_NOCHROOT, check_unit_active    },
-                { "is-failed",             2,        VERB_ANY, VERB_NOCHROOT, check_unit_failed    },
-                { "show",                  VERB_ANY, VERB_ANY, VERB_NOCHROOT, show                 },
-                { "cat",                   2,        VERB_ANY, VERB_NOCHROOT, cat                  },
-                { "status",                VERB_ANY, VERB_ANY, VERB_NOCHROOT, show                 },
-                { "help",                  VERB_ANY, VERB_ANY, VERB_NOCHROOT, show                 },
-                { "daemon-reload",         VERB_ANY, 1,        VERB_NOCHROOT, daemon_reload        },
-                { "daemon-reexec",         VERB_ANY, 1,        VERB_NOCHROOT, daemon_reload        },
-                { "show-environment",      VERB_ANY, 1,        VERB_NOCHROOT, show_environment     },
-                { "set-environment",       2,        VERB_ANY, VERB_NOCHROOT, set_environment      },
-                { "unset-environment",     2,        VERB_ANY, VERB_NOCHROOT, set_environment      },
-                { "import-environment",    VERB_ANY, VERB_ANY, VERB_NOCHROOT, import_environment   },
-                { "halt",                  VERB_ANY, 1,        VERB_NOCHROOT, start_system_special },
-                { "poweroff",              VERB_ANY, 1,        VERB_NOCHROOT, start_system_special },
-                { "reboot",                VERB_ANY, 2,        VERB_NOCHROOT, start_system_special },
-                { "kexec",                 VERB_ANY, 1,        VERB_NOCHROOT, start_system_special },
-                { "suspend",               VERB_ANY, 1,        VERB_NOCHROOT, start_system_special },
-                { "hibernate",             VERB_ANY, 1,        VERB_NOCHROOT, start_system_special },
-                { "hybrid-sleep",          VERB_ANY, 1,        VERB_NOCHROOT, start_system_special },
-                { "default",               VERB_ANY, 1,        VERB_NOCHROOT, start_special        },
-                { "rescue",                VERB_ANY, 1,        VERB_NOCHROOT, start_system_special },
-                { "emergency",             VERB_ANY, 1,        VERB_NOCHROOT, start_system_special },
-                { "exit",                  VERB_ANY, 2,        VERB_NOCHROOT, start_special        },
-                { "reset-failed",          VERB_ANY, VERB_ANY, VERB_NOCHROOT, reset_failed         },
-                { "enable",                2,        VERB_ANY, 0,             enable_unit          },
-                { "disable",               2,        VERB_ANY, 0,             enable_unit          },
-                { "is-enabled",            2,        VERB_ANY, 0,             unit_is_enabled      },
-                { "reenable",              2,        VERB_ANY, 0,             enable_unit          },
-                { "preset",                2,        VERB_ANY, 0,             enable_unit          },
-                { "preset-all",            VERB_ANY, 1,        0,             preset_all           },
-                { "mask",                  2,        VERB_ANY, 0,             enable_unit          },
-                { "unmask",                2,        VERB_ANY, 0,             enable_unit          },
-                { "link",                  2,        VERB_ANY, 0,             enable_unit          },
-                { "revert",                2,        VERB_ANY, 0,             enable_unit          },
-                { "switch-root",           2,        VERB_ANY, VERB_NOCHROOT, switch_root          },
-                { "list-dependencies",     VERB_ANY, 2,        VERB_NOCHROOT, list_dependencies    },
-                { "set-default",           2,        2,        0,             set_default          },
-                { "get-default",           VERB_ANY, 1,        0,             get_default          },
-                { "set-property",          3,        VERB_ANY, VERB_NOCHROOT, set_property         },
-                { "is-system-running",     VERB_ANY, 1,        0,             is_system_running    },
-                { "add-wants",             3,        VERB_ANY, 0,             add_dependency       },
-                { "add-requires",          3,        VERB_ANY, 0,             add_dependency       },
-                { "edit",                  2,        VERB_ANY, VERB_NOCHROOT, edit                 },
+                { "list-units",            VERB_ANY, VERB_ANY, VERB_DEFAULT|VERB_ONLINE_ONLY, list_units },
+                { "list-unit-files",       VERB_ANY, VERB_ANY, 0,                list_unit_files      },
+                { "list-sockets",          VERB_ANY, VERB_ANY, VERB_ONLINE_ONLY, list_sockets         },
+                { "list-timers",           VERB_ANY, VERB_ANY, VERB_ONLINE_ONLY, list_timers          },
+                { "list-jobs",             VERB_ANY, VERB_ANY, VERB_ONLINE_ONLY, list_jobs            },
+                { "list-machines",         VERB_ANY, VERB_ANY, VERB_ONLINE_ONLY|VERB_MUST_BE_ROOT, list_machines },
+                { "clear-jobs",            VERB_ANY, 1,        VERB_ONLINE_ONLY, trivial_method       },
+                { "cancel",                VERB_ANY, VERB_ANY, VERB_ONLINE_ONLY, cancel_job           },
+                { "start",                 2,        VERB_ANY, VERB_ONLINE_ONLY, start_unit           },
+                { "stop",                  2,        VERB_ANY, VERB_ONLINE_ONLY, start_unit           },
+                { "condstop",              2,        VERB_ANY, VERB_ONLINE_ONLY, start_unit           }, /* For compatibility with ALTLinux */
+                { "reload",                2,        VERB_ANY, VERB_ONLINE_ONLY, start_unit           },
+                { "restart",               2,        VERB_ANY, VERB_ONLINE_ONLY, start_unit           },
+                { "try-restart",           2,        VERB_ANY, VERB_ONLINE_ONLY, start_unit           },
+                { "reload-or-restart",     2,        VERB_ANY, VERB_ONLINE_ONLY, start_unit           },
+                { "reload-or-try-restart", 2,        VERB_ANY, VERB_ONLINE_ONLY, start_unit           }, /* For compatbility with old systemctl <= 228 */
+                { "try-reload-or-restart", 2,        VERB_ANY, VERB_ONLINE_ONLY, start_unit           },
+                { "force-reload",          2,        VERB_ANY, VERB_ONLINE_ONLY, start_unit           }, /* For compatibility with SysV */
+                { "condreload",            2,        VERB_ANY, VERB_ONLINE_ONLY, start_unit           }, /* For compatibility with ALTLinux */
+                { "condrestart",           2,        VERB_ANY, VERB_ONLINE_ONLY, start_unit           }, /* For compatibility with RH */
+                { "isolate",               2,        2,        VERB_ONLINE_ONLY, start_unit           },
+                { "kill",                  2,        VERB_ANY, VERB_ONLINE_ONLY, kill_unit            },
+                { "is-active",             2,        VERB_ANY, VERB_ONLINE_ONLY, check_unit_active    },
+                { "check",                 2,        VERB_ANY, VERB_ONLINE_ONLY, check_unit_active    },
+                { "is-failed",             2,        VERB_ANY, VERB_ONLINE_ONLY, check_unit_failed    },
+                { "show",                  VERB_ANY, VERB_ANY, VERB_ONLINE_ONLY, show                 },
+                { "cat",                   2,        VERB_ANY, VERB_ONLINE_ONLY, cat                  },
+                { "status",                VERB_ANY, VERB_ANY, VERB_ONLINE_ONLY, show                 },
+                { "help",                  VERB_ANY, VERB_ANY, VERB_ONLINE_ONLY, show                 },
+                { "daemon-reload",         VERB_ANY, 1,        VERB_ONLINE_ONLY, daemon_reload        },
+                { "daemon-reexec",         VERB_ANY, 1,        VERB_ONLINE_ONLY, daemon_reload        },
+                { "show-environment",      VERB_ANY, 1,        VERB_ONLINE_ONLY, show_environment     },
+                { "set-environment",       2,        VERB_ANY, VERB_ONLINE_ONLY, set_environment      },
+                { "unset-environment",     2,        VERB_ANY, VERB_ONLINE_ONLY, set_environment      },
+                { "import-environment",    VERB_ANY, VERB_ANY, VERB_ONLINE_ONLY, import_environment   },
+                { "halt",                  VERB_ANY, 1,        VERB_ONLINE_ONLY, start_system_special },
+                { "poweroff",              VERB_ANY, 1,        VERB_ONLINE_ONLY, start_system_special },
+                { "reboot",                VERB_ANY, 2,        VERB_ONLINE_ONLY, start_system_special },
+                { "kexec",                 VERB_ANY, 1,        VERB_ONLINE_ONLY, start_system_special },
+                { "suspend",               VERB_ANY, 1,        VERB_ONLINE_ONLY, start_system_special },
+                { "hibernate",             VERB_ANY, 1,        VERB_ONLINE_ONLY, start_system_special },
+                { "hybrid-sleep",          VERB_ANY, 1,        VERB_ONLINE_ONLY, start_system_special },
+                { "default",               VERB_ANY, 1,        VERB_ONLINE_ONLY, start_special        },
+                { "rescue",                VERB_ANY, 1,        VERB_ONLINE_ONLY, start_system_special },
+                { "emergency",             VERB_ANY, 1,        VERB_ONLINE_ONLY, start_system_special },
+                { "exit",                  VERB_ANY, 2,        VERB_ONLINE_ONLY, start_special        },
+                { "reset-failed",          VERB_ANY, VERB_ANY, VERB_ONLINE_ONLY, reset_failed         },
+                { "enable",                2,        VERB_ANY, 0,                enable_unit          },
+                { "disable",               2,        VERB_ANY, 0,                enable_unit          },
+                { "is-enabled",            2,        VERB_ANY, 0,                unit_is_enabled      },
+                { "reenable",              2,        VERB_ANY, 0,                enable_unit          },
+                { "preset",                2,        VERB_ANY, 0,                enable_unit          },
+                { "preset-all",            VERB_ANY, 1,        0,                preset_all           },
+                { "mask",                  2,        VERB_ANY, 0,                enable_unit          },
+                { "unmask",                2,        VERB_ANY, 0,                enable_unit          },
+                { "link",                  2,        VERB_ANY, 0,                enable_unit          },
+                { "revert",                2,        VERB_ANY, 0,                enable_unit          },
+                { "switch-root",           2,        VERB_ANY, VERB_ONLINE_ONLY, switch_root          },
+                { "list-dependencies",     VERB_ANY, 2,        VERB_ONLINE_ONLY, list_dependencies    },
+                { "set-default",           2,        2,        0,                set_default          },
+                { "get-default",           VERB_ANY, 1,        0,                get_default          },
+                { "set-property",          3,        VERB_ANY, VERB_ONLINE_ONLY, set_property         },
+                { "is-system-running",     VERB_ANY, 1,        0,                is_system_running    },
+                { "add-wants",             3,        VERB_ANY, 0,                add_dependency       },
+                { "add-requires",          3,        VERB_ANY, 0,                add_dependency       },
+                { "edit",                  2,        VERB_ANY, VERB_ONLINE_ONLY, edit                 },
                 {}
         };
 
@@ -8637,7 +8636,7 @@ static int halt_main(void) {
 
         if (geteuid() != 0) {
                 if (arg_dry_run || arg_force > 0) {
-                        log_error("Must be root.");
+                        (void) must_be_root();
                         return -EPERM;
                 }
 
index 874329ff8c5e75e31cc2d74f4bdb40ef4fa0e2ac..5a3f78bdbc26c8a3f40426273abd5e522f7eb488 100644 (file)
@@ -70,6 +70,8 @@ _SD_BEGIN_DECLARATIONS;
 #define SD_MESSAGE_TIMEZONE_CHANGE        SD_ID128_MAKE(45,f8,2f,4a,ef,7a,4b,bf,94,2c,e8,61,d1,f2,09,90)
 #define SD_MESSAGE_TIMEZONE_CHANGE_STR    SD_ID128_MAKE_STR(45,f8,2f,4a,ef,7a,4b,bf,94,2c,e8,61,d1,f2,09,90)
 
+#define SD_MESSAGE_TAINTED                SD_ID128_MAKE(50,87,6a,9d,b0,0f,4c,40,bd,e1,a2,ad,38,1c,3a,1b)
+#define SD_MESSAGE_TAINTED_STR            SD_ID128_MAKE_STR(50,87,6a,9d,b0,0f,4c,40,bd,e1,a2,ad,38,1c,3a,1b)
 #define SD_MESSAGE_STARTUP_FINISHED       SD_ID128_MAKE(b0,7a,24,9c,d0,24,41,4a,82,dd,00,cd,18,13,78,ff)
 #define SD_MESSAGE_STARTUP_FINISHED_STR   SD_ID128_MAKE_STR(b0,7a,24,9c,d0,24,41,4a,82,dd,00,cd,18,13,78,ff)
 #define SD_MESSAGE_USER_STARTUP_FINISHED \
index 45eb3ef8b12bed666ac3c24676f28d4fa39ec4af..2248a306359e1d737ff56ed3766d985757b8780a 100644 (file)
@@ -27,6 +27,7 @@
 #include "parse-util.h"
 #include "proc-cmdline.h"
 #include "process-util.h"
+#include "special.h"
 #include "stat-util.h"
 #include "string-util.h"
 #include "test-helper.h"
@@ -141,10 +142,10 @@ static void check_p_g_slice(const char *path, int code, const char *result) {
 
 static void test_path_get_slice(void) {
         check_p_g_slice("/user.slice", 0, "user.slice");
-        check_p_g_slice("/foobar", 0, "-.slice");
+        check_p_g_slice("/foobar", 0, SPECIAL_ROOT_SLICE);
         check_p_g_slice("/user.slice/user-waldo.slice", 0, "user-waldo.slice");
-        check_p_g_slice("", 0, "-.slice");
-        check_p_g_slice("foobar", 0, "-.slice");
+        check_p_g_slice("", 0, SPECIAL_ROOT_SLICE);
+        check_p_g_slice("foobar", 0, SPECIAL_ROOT_SLICE);
         check_p_g_slice("foobar.slice", 0, "foobar.slice");
         check_p_g_slice("foo.slice/foo-bar.slice/waldo.service", 0, "foo-bar.slice");
 }
@@ -165,10 +166,10 @@ static void test_path_get_user_slice(void) {
         check_p_g_u_slice("foobar.slice", -ENXIO, NULL);
         check_p_g_u_slice("foo.slice/foo-bar.slice/waldo.service", -ENXIO, NULL);
 
-        check_p_g_u_slice("foo.slice/foo-bar.slice/user@1000.service", 0, "-.slice");
-        check_p_g_u_slice("foo.slice/foo-bar.slice/user@1000.service/", 0, "-.slice");
-        check_p_g_u_slice("foo.slice/foo-bar.slice/user@1000.service///", 0, "-.slice");
-        check_p_g_u_slice("foo.slice/foo-bar.slice/user@1000.service/waldo.service", 0, "-.slice");
+        check_p_g_u_slice("foo.slice/foo-bar.slice/user@1000.service", 0, SPECIAL_ROOT_SLICE);
+        check_p_g_u_slice("foo.slice/foo-bar.slice/user@1000.service/", 0, SPECIAL_ROOT_SLICE);
+        check_p_g_u_slice("foo.slice/foo-bar.slice/user@1000.service///", 0, SPECIAL_ROOT_SLICE);
+        check_p_g_u_slice("foo.slice/foo-bar.slice/user@1000.service/waldo.service", 0, SPECIAL_ROOT_SLICE);
         check_p_g_u_slice("foo.slice/foo-bar.slice/user@1000.service/piep.slice/foo.service", 0, "piep.slice");
         check_p_g_u_slice("/foo.slice//foo-bar.slice/user@1000.service/piep.slice//piep-pap.slice//foo.service", 0, "piep-pap.slice");
 }
@@ -274,7 +275,7 @@ static void test_slice_to_path(void) {
         test_slice_to_path_one("foobar.slice", "foobar.slice", 0);
         test_slice_to_path_one("foobar-waldo.slice", "foobar.slice/foobar-waldo.slice", 0);
         test_slice_to_path_one("foobar-waldo.service", NULL, -EINVAL);
-        test_slice_to_path_one("-.slice", "", 0);
+        test_slice_to_path_one(SPECIAL_ROOT_SLICE, "", 0);
         test_slice_to_path_one("--.slice", NULL, -EINVAL);
         test_slice_to_path_one("-", NULL, -EINVAL);
         test_slice_to_path_one("-foo-.slice", NULL, -EINVAL);
index d43db3a7cd68c92248a74e1ca2665489aea18f33..bf455aac8911dfc95b45730f72440053ecfa026a 100644 (file)
 #include "architecture.h"
 #include "audit-util.h"
 #include "condition.h"
+#include "cgroup-util.h"
 #include "hostname-util.h"
 #include "id128-util.h"
 #include "ima-util.h"
 #include "log.h"
 #include "macro.h"
 #include "selinux-util.h"
+#include "set.h"
 #include "smack-util.h"
 #include "strv.h"
 #include "virt.h"
@@ -125,6 +127,77 @@ static void test_condition_test_path(void) {
         condition_free(condition);
 }
 
+static int test_condition_test_control_group_controller(void) {
+        Condition *condition;
+        CGroupMask system_mask;
+        CGroupController controller;
+        _cleanup_free_ char *controller_name = NULL;
+        int r;
+
+        r = cg_unified_flush();
+        if (r < 0) {
+                log_notice_errno(r, "Skipping ConditionControlGroupController tests: %m");
+                return EXIT_TEST_SKIP;
+        }
+
+        /* Invalid controllers are ignored */
+        condition = condition_new(CONDITION_CONTROL_GROUP_CONTROLLER, "thisisnotarealcontroller", false, false);
+        assert_se(condition);
+        assert_se(condition_test(condition));
+        condition_free(condition);
+
+        condition = condition_new(CONDITION_CONTROL_GROUP_CONTROLLER, "thisisnotarealcontroller", false, true);
+        assert_se(condition);
+        assert_se(!condition_test(condition));
+        condition_free(condition);
+
+        assert_se(cg_mask_supported(&system_mask) >= 0);
+
+        /* Individual valid controllers one by one */
+        for (controller = 0; controller < _CGROUP_CONTROLLER_MAX; controller++) {
+                const char *local_controller_name = cgroup_controller_to_string(controller);
+                log_info("chosen controller is '%s'", local_controller_name);
+                if (system_mask & CGROUP_CONTROLLER_TO_MASK(controller)) {
+                        log_info("this controller is available");
+                        condition = condition_new(CONDITION_CONTROL_GROUP_CONTROLLER, local_controller_name, false, false);
+                        assert_se(condition);
+                        assert_se(condition_test(condition));
+                        condition_free(condition);
+
+                        condition = condition_new(CONDITION_CONTROL_GROUP_CONTROLLER, local_controller_name, false, true);
+                        assert_se(condition);
+                        assert_se(!condition_test(condition));
+                        condition_free(condition);
+                } else {
+                        log_info("this controller is unavailable");
+                        condition = condition_new(CONDITION_CONTROL_GROUP_CONTROLLER, local_controller_name, false, false);
+                        assert_se(condition);
+                        assert_se(!condition_test(condition));
+                        condition_free(condition);
+
+                        condition = condition_new(CONDITION_CONTROL_GROUP_CONTROLLER, local_controller_name, false, true);
+                        assert_se(condition);
+                        assert_se(condition_test(condition));
+                        condition_free(condition);
+                }
+        }
+
+        /* Multiple valid controllers at the same time */
+        assert_se(cg_mask_to_string(system_mask, &controller_name) >= 0);
+
+        condition = condition_new(CONDITION_CONTROL_GROUP_CONTROLLER, controller_name, false, false);
+        assert_se(condition);
+        assert_se(condition_test(condition));
+        condition_free(condition);
+
+        condition = condition_new(CONDITION_CONTROL_GROUP_CONTROLLER, controller_name, false, true);
+        assert_se(condition);
+        assert_se(!condition_test(condition));
+        condition_free(condition);
+
+        return EXIT_SUCCESS;
+}
+
 static void test_condition_test_ac_power(void) {
         Condition *condition;
 
@@ -488,6 +561,7 @@ int main(int argc, char *argv[]) {
         test_condition_test_virtualization();
         test_condition_test_user();
         test_condition_test_group();
+        test_condition_test_control_group_controller();
 
         return 0;
 }
index 3105c14ee6cef48708af548d4ced025149dd77d8..0ad7d088aa4969af58c0b8289222b68d27d82040 100644 (file)
@@ -230,7 +230,7 @@ static void test_dns_name_between_one(const char *a, const char *b, const char *
 
         r = dns_name_between(c, b, a);
         if (ret >= 0)
-                assert_se(r == 0);
+                assert_se(r == 0 || dns_name_equal(a, c) > 0);
         else
                 assert_se(r == ret);
 }
@@ -249,7 +249,8 @@ static void test_dns_name_between(void) {
         test_dns_name_between_one("*.z.example", "\\200.z.example", "example", true);
         test_dns_name_between_one("\\200.z.example", "example", "a.example", true);
 
-        test_dns_name_between_one("example", "a.example", "example", -EINVAL);
+        test_dns_name_between_one("example", "a.example", "example", true);
+        test_dns_name_between_one("example", "example", "example", false);
         test_dns_name_between_one("example", "example", "yljkjljk.a.example", false);
         test_dns_name_between_one("example", "yljkjljk.a.example", "yljkjljk.a.example", false);
 }
index e71beb135a06d22437e41c4e5f38a839d549fd76..286867d2dc2aec8c937474440e198569a7e02a5b 100644 (file)
@@ -466,7 +466,7 @@ static void test_write_string_file_no_create(void) {
         assert_se(write_string_file("/a/file/which/does/not/exists/i/guess", "boohoo", 0) < 0);
         assert_se(write_string_file(fn, "boohoo", 0) == 0);
 
-        assert_se(read(fd, buf, sizeof(buf)) == strlen("boohoo\n"));
+        assert_se(read(fd, buf, sizeof(buf)) == STRLEN("boohoo\n"));
         assert_se(streq(buf, "boohoo\n"));
 
         unlink(fn);
index 7675d0cba72776ec3206e6c37ddee091d9ba7d9a..4f19cb406f918ecc9eb4ae96115f3ddd6e68b5bb 100644 (file)
@@ -107,72 +107,72 @@ static void test_unhexmem(void) {
 static void test_base32hexmem(void) {
         char *b32;
 
-        b32 = base32hexmem("", strlen(""), true);
+        b32 = base32hexmem("", STRLEN(""), true);
         assert_se(b32);
         assert_se(streq(b32, ""));
         free(b32);
 
-        b32 = base32hexmem("f", strlen("f"), true);
+        b32 = base32hexmem("f", STRLEN("f"), true);
         assert_se(b32);
         assert_se(streq(b32, "CO======"));
         free(b32);
 
-        b32 = base32hexmem("fo", strlen("fo"), true);
+        b32 = base32hexmem("fo", STRLEN("fo"), true);
         assert_se(b32);
         assert_se(streq(b32, "CPNG===="));
         free(b32);
 
-        b32 = base32hexmem("foo", strlen("foo"), true);
+        b32 = base32hexmem("foo", STRLEN("foo"), true);
         assert_se(b32);
         assert_se(streq(b32, "CPNMU==="));
         free(b32);
 
-        b32 = base32hexmem("foob", strlen("foob"), true);
+        b32 = base32hexmem("foob", STRLEN("foob"), true);
         assert_se(b32);
         assert_se(streq(b32, "CPNMUOG="));
         free(b32);
 
-        b32 = base32hexmem("fooba", strlen("fooba"), true);
+        b32 = base32hexmem("fooba", STRLEN("fooba"), true);
         assert_se(b32);
         assert_se(streq(b32, "CPNMUOJ1"));
         free(b32);
 
-        b32 = base32hexmem("foobar", strlen("foobar"), true);
+        b32 = base32hexmem("foobar", STRLEN("foobar"), true);
         assert_se(b32);
         assert_se(streq(b32, "CPNMUOJ1E8======"));
         free(b32);
 
-        b32 = base32hexmem("", strlen(""), false);
+        b32 = base32hexmem("", STRLEN(""), false);
         assert_se(b32);
         assert_se(streq(b32, ""));
         free(b32);
 
-        b32 = base32hexmem("f", strlen("f"), false);
+        b32 = base32hexmem("f", STRLEN("f"), false);
         assert_se(b32);
         assert_se(streq(b32, "CO"));
         free(b32);
 
-        b32 = base32hexmem("fo", strlen("fo"), false);
+        b32 = base32hexmem("fo", STRLEN("fo"), false);
         assert_se(b32);
         assert_se(streq(b32, "CPNG"));
         free(b32);
 
-        b32 = base32hexmem("foo", strlen("foo"), false);
+        b32 = base32hexmem("foo", STRLEN("foo"), false);
         assert_se(b32);
         assert_se(streq(b32, "CPNMU"));
         free(b32);
 
-        b32 = base32hexmem("foob", strlen("foob"), false);
+        b32 = base32hexmem("foob", STRLEN("foob"), false);
         assert_se(b32);
         assert_se(streq(b32, "CPNMUOG"));
         free(b32);
 
-        b32 = base32hexmem("fooba", strlen("fooba"), false);
+        b32 = base32hexmem("fooba", STRLEN("fooba"), false);
         assert_se(b32);
         assert_se(streq(b32, "CPNMUOJ1"));
         free(b32);
 
-        b32 = base32hexmem("foobar", strlen("foobar"), false);
+        b32 = base32hexmem("foobar", STRLEN("foobar"), false);
         assert_se(b32);
         assert_se(streq(b32, "CPNMUOJ1E8"));
         free(b32);
@@ -182,121 +182,121 @@ static void test_unbase32hexmem(void) {
         void *mem;
         size_t len;
 
-        assert_se(unbase32hexmem("", strlen(""), true, &mem, &len) == 0);
+        assert_se(unbase32hexmem("", STRLEN(""), true, &mem, &len) == 0);
         assert_se(streq(strndupa(mem, len), ""));
         free(mem);
 
-        assert_se(unbase32hexmem("CO======", strlen("CO======"), true, &mem, &len) == 0);
+        assert_se(unbase32hexmem("CO======", STRLEN("CO======"), true, &mem, &len) == 0);
         assert_se(streq(strndupa(mem, len), "f"));
         free(mem);
 
-        assert_se(unbase32hexmem("CPNG====", strlen("CPNG===="), true, &mem, &len) == 0);
+        assert_se(unbase32hexmem("CPNG====", STRLEN("CPNG===="), true, &mem, &len) == 0);
         assert_se(streq(strndupa(mem, len), "fo"));
         free(mem);
 
-        assert_se(unbase32hexmem("CPNMU===", strlen("CPNMU==="), true, &mem, &len) == 0);
+        assert_se(unbase32hexmem("CPNMU===", STRLEN("CPNMU==="), true, &mem, &len) == 0);
         assert_se(streq(strndupa(mem, len), "foo"));
         free(mem);
 
-        assert_se(unbase32hexmem("CPNMUOG=", strlen("CPNMUOG="), true, &mem, &len) == 0);
+        assert_se(unbase32hexmem("CPNMUOG=", STRLEN("CPNMUOG="), true, &mem, &len) == 0);
         assert_se(streq(strndupa(mem, len), "foob"));
         free(mem);
 
-        assert_se(unbase32hexmem("CPNMUOJ1", strlen("CPNMUOJ1"), true, &mem, &len) == 0);
+        assert_se(unbase32hexmem("CPNMUOJ1", STRLEN("CPNMUOJ1"), true, &mem, &len) == 0);
         assert_se(streq(strndupa(mem, len), "fooba"));
         free(mem);
 
-        assert_se(unbase32hexmem("CPNMUOJ1E8======", strlen("CPNMUOJ1E8======"), true, &mem, &len) == 0);
+        assert_se(unbase32hexmem("CPNMUOJ1E8======", STRLEN("CPNMUOJ1E8======"), true, &mem, &len) == 0);
         assert_se(streq(strndupa(mem, len), "foobar"));
         free(mem);
 
-        assert_se(unbase32hexmem("A", strlen("A"), true, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("A=======", strlen("A======="), true, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("AAA=====", strlen("AAA====="), true, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("AAAAAA==", strlen("AAAAAA=="), true, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("AB======", strlen("AB======"), true, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("AAAB====", strlen("AAAB===="), true, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("AAAAB===", strlen("AAAAB==="), true, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("AAAAAAB=", strlen("AAAAAAB="), true, &mem, &len) == -EINVAL);
-
-        assert_se(unbase32hexmem("XPNMUOJ1", strlen("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("CXNMUOJ1", strlen("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("CPXMUOJ1", strlen("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("CPNXUOJ1", strlen("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("CPNMXOJ1", strlen("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("CPNMUXJ1", strlen("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("CPNMUOX1", strlen("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("CPNMUOJX", strlen("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
-
-        assert_se(unbase32hexmem("", strlen(""), false, &mem, &len) == 0);
+        assert_se(unbase32hexmem("A", STRLEN("A"), true, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("A=======", STRLEN("A======="), true, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("AAA=====", STRLEN("AAA====="), true, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("AAAAAA==", STRLEN("AAAAAA=="), true, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("AB======", STRLEN("AB======"), true, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("AAAB====", STRLEN("AAAB===="), true, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("AAAAB===", STRLEN("AAAAB==="), true, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("AAAAAAB=", STRLEN("AAAAAAB="), true, &mem, &len) == -EINVAL);
+
+        assert_se(unbase32hexmem("XPNMUOJ1", STRLEN("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("CXNMUOJ1", STRLEN("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("CPXMUOJ1", STRLEN("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("CPNXUOJ1", STRLEN("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("CPNMXOJ1", STRLEN("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("CPNMUXJ1", STRLEN("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("CPNMUOX1", STRLEN("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("CPNMUOJX", STRLEN("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
+
+        assert_se(unbase32hexmem("", STRLEN(""), false, &mem, &len) == 0);
         assert_se(streq(strndupa(mem, len), ""));
         free(mem);
 
-        assert_se(unbase32hexmem("CO", strlen("CO"), false, &mem, &len) == 0);
+        assert_se(unbase32hexmem("CO", STRLEN("CO"), false, &mem, &len) == 0);
         assert_se(streq(strndupa(mem, len), "f"));
         free(mem);
 
-        assert_se(unbase32hexmem("CPNG", strlen("CPNG"), false, &mem, &len) == 0);
+        assert_se(unbase32hexmem("CPNG", STRLEN("CPNG"), false, &mem, &len) == 0);
         assert_se(streq(strndupa(mem, len), "fo"));
         free(mem);
 
-        assert_se(unbase32hexmem("CPNMU", strlen("CPNMU"), false, &mem, &len) == 0);
+        assert_se(unbase32hexmem("CPNMU", STRLEN("CPNMU"), false, &mem, &len) == 0);
         assert_se(streq(strndupa(mem, len), "foo"));
         free(mem);
 
-        assert_se(unbase32hexmem("CPNMUOG", strlen("CPNMUOG"), false, &mem, &len) == 0);
+        assert_se(unbase32hexmem("CPNMUOG", STRLEN("CPNMUOG"), false, &mem, &len) == 0);
         assert_se(streq(strndupa(mem, len), "foob"));
         free(mem);
 
-        assert_se(unbase32hexmem("CPNMUOJ1", strlen("CPNMUOJ1"), false, &mem, &len) == 0);
+        assert_se(unbase32hexmem("CPNMUOJ1", STRLEN("CPNMUOJ1"), false, &mem, &len) == 0);
         assert_se(streq(strndupa(mem, len), "fooba"));
         free(mem);
 
-        assert_se(unbase32hexmem("CPNMUOJ1E8", strlen("CPNMUOJ1E8"), false, &mem, &len) == 0);
+        assert_se(unbase32hexmem("CPNMUOJ1E8", STRLEN("CPNMUOJ1E8"), false, &mem, &len) == 0);
         assert_se(streq(strndupa(mem, len), "foobar"));
         free(mem);
 
-        assert_se(unbase32hexmem("CPNMUOG=", strlen("CPNMUOG="), false, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("CPNMUOJ1E8======", strlen("CPNMUOJ1E8======"), false, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("A", strlen("A"), false, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("A", strlen("A"), false, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("AAA", strlen("AAA"), false, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("AAAAAA", strlen("AAAAAA"), false, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("AB", strlen("AB"), false, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("AAAB", strlen("AAAB"), false, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("AAAAB", strlen("AAAAB"), false, &mem, &len) == -EINVAL);
-        assert_se(unbase32hexmem("AAAAAAB", strlen("AAAAAAB"), false, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("CPNMUOG=", STRLEN("CPNMUOG="), false, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("CPNMUOJ1E8======", STRLEN("CPNMUOJ1E8======"), false, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("A", STRLEN("A"), false, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("A", STRLEN("A"), false, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("AAA", STRLEN("AAA"), false, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("AAAAAA", STRLEN("AAAAAA"), false, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("AB", STRLEN("AB"), false, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("AAAB", STRLEN("AAAB"), false, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("AAAAB", STRLEN("AAAAB"), false, &mem, &len) == -EINVAL);
+        assert_se(unbase32hexmem("AAAAAAB", STRLEN("AAAAAAB"), false, &mem, &len) == -EINVAL);
 }
 
 /* https://tools.ietf.org/html/rfc4648#section-10 */
 static void test_base64mem(void) {
         char *b64;
 
-        assert_se(base64mem("", strlen(""), &b64) == 0);
+        assert_se(base64mem("", STRLEN(""), &b64) == 0);
         assert_se(streq(b64, ""));
         free(b64);
 
-        assert_se(base64mem("f", strlen("f"), &b64) == 4);
+        assert_se(base64mem("f", STRLEN("f"), &b64) == 4);
         assert_se(streq(b64, "Zg=="));
         free(b64);
 
-        assert_se(base64mem("fo", strlen("fo"), &b64) == 4);
+        assert_se(base64mem("fo", STRLEN("fo"), &b64) == 4);
         assert_se(streq(b64, "Zm8="));
         free(b64);
 
-        assert_se(base64mem("foo", strlen("foo"), &b64) == 4);
+        assert_se(base64mem("foo", STRLEN("foo"), &b64) == 4);
         assert_se(streq(b64, "Zm9v"));
         free(b64);
 
-        assert_se(base64mem("foob", strlen("foob"), &b64) == 8);
+        assert_se(base64mem("foob", STRLEN("foob"), &b64) == 8);
         assert_se(streq(b64, "Zm9vYg=="));
         free(b64);
 
-        assert_se(base64mem("fooba", strlen("fooba"), &b64) == 8);
+        assert_se(base64mem("fooba", STRLEN("fooba"), &b64) == 8);
         assert_se(streq(b64, "Zm9vYmE="));
         free(b64);
 
-        assert_se(base64mem("foobar", strlen("foobar"), &b64) == 8);
+        assert_se(base64mem("foobar", STRLEN("foobar"), &b64) == 8);
         assert_se(streq(b64, "Zm9vYmFy"));
         free(b64);
 }
index 9b65f103d7324756a33ccfc514797da7e6ca74e9..a38f91796134f0e6edacb81027754a6f97b8048e 100644 (file)
@@ -49,7 +49,7 @@ static void test_get_process_comm(pid_t pid) {
         struct stat st;
         _cleanup_free_ char *a = NULL, *c = NULL, *d = NULL, *f = NULL, *i = NULL;
         _cleanup_free_ char *env = NULL;
-        char path[strlen("/proc//comm") + DECIMAL_STR_MAX(pid_t)];
+        char path[STRLEN("/proc//comm") + DECIMAL_STR_MAX(pid_t)];
         pid_t e;
         uid_t u;
         gid_t g;
@@ -382,7 +382,7 @@ static void test_rename_process_now(const char *p, int ret) {
         /* we cannot expect cmdline to be renamed properly without privileges */
         if (geteuid() == 0) {
                 log_info("cmdline = <%s>", cmdline);
-                assert_se(strneq(p, cmdline, strlen("test-process-util")));
+                assert_se(strneq(p, cmdline, STRLEN("test-process-util")));
                 assert_se(startswith(p, cmdline));
         } else
                 log_info("cmdline = <%s> (not verified)", cmdline);
index e24892b59082d8ff408214e22b73f40535bbd897..416542c83fd376b8365417ab9f9dc59d514c5be5 100644 (file)
@@ -32,6 +32,7 @@
 #include "manager.h"
 #include "path-util.h"
 #include "rm-rf.h"
+#include "special.h"
 #include "specifier.h"
 #include "string-util.h"
 #include "test-helper.h"
@@ -338,7 +339,7 @@ static void test_unit_name_build(void) {
 }
 
 static void test_slice_name_is_valid(void) {
-        assert_se(slice_name_is_valid("-.slice"));
+        assert_se(slice_name_is_valid(SPECIAL_ROOT_SLICE));
         assert_se(slice_name_is_valid("foo.slice"));
         assert_se(slice_name_is_valid("foo-bar.slice"));
         assert_se(slice_name_is_valid("foo-bar-baz.slice"));
@@ -356,7 +357,7 @@ static void test_build_subslice(void) {
         char *a;
         char *b;
 
-        assert_se(slice_build_subslice("-.slice", "foo", &a) >= 0);
+        assert_se(slice_build_subslice(SPECIAL_ROOT_SLICE, "foo", &a) >= 0);
         assert_se(slice_build_subslice(a, "bar", &b) >= 0);
         free(a);
         assert_se(slice_build_subslice(b, "barfoo", &a) >= 0);
@@ -378,8 +379,8 @@ static void test_build_parent_slice_one(const char *name, const char *expect, in
 }
 
 static void test_build_parent_slice(void) {
-        test_build_parent_slice_one("-.slice", NULL, 0);
-        test_build_parent_slice_one("foo.slice", "-.slice", 1);
+        test_build_parent_slice_one(SPECIAL_ROOT_SLICE, NULL, 0);
+        test_build_parent_slice_one("foo.slice", SPECIAL_ROOT_SLICE, 1);
         test_build_parent_slice_one("foo-bar.slice", "foo.slice", 1);
         test_build_parent_slice_one("foo-bar-baz.slice", "foo-bar.slice", 1);
         test_build_parent_slice_one("foo-bar--baz.slice", NULL, -EINVAL);
index d80a9178701e427d92d6e262d29d121846864f6c..e851b4ddd166ba6ff76fa187e68eb276c5288bc4 100644 (file)
@@ -129,8 +129,8 @@ static void print_status_info(const StatusInfo *i) {
                "systemd-timesyncd.service active: %s\n"
                "                 RTC in local TZ: %s\n",
                strna(i->timezone), have_time && n > 0 ? a : "n/a",
-               i->ntp_capable ? yes_no(i->ntp_enabled) : "n/a",
                yes_no(i->ntp_synced),
+               i->ntp_capable ? yes_no(i->ntp_enabled) : "n/a",
                yes_no(i->rtc_local));
 
         if (i->rtc_local)
index 25f54c0d944d9e54aead3c03097dba4afe8c6df0..8bd111fe0cbc68a7a8ce08025e629bcf4ef49148 100644 (file)
@@ -1087,7 +1087,7 @@ static int manager_network_monitor_listen(Manager *m) {
 
         r = sd_network_monitor_new(&m->network_monitor, NULL);
         if (r == -ENOENT) {
-                log_info("Systemd does not appear to be running, not listening for systemd-networkd events.");
+                log_info("systemd does not appear to be running, not listening for systemd-networkd events.");
                 return 0;
         }
         if (r < 0)
index 2344189426a1bc4cec5049d0477a68022b7bef84..a7ce1a804946f4db7292965fb8e65cf049f9b924 100644 (file)
@@ -777,7 +777,7 @@ static int path_set_perms(Item *i, const char *path) {
         if (S_ISLNK(st.st_mode))
                 log_debug("Skipping mode and owner fix for symlink %s.", path);
         else {
-                char fn[strlen("/proc/self/fd/") + DECIMAL_STR_MAX(int)];
+                char fn[STRLEN("/proc/self/fd/") + DECIMAL_STR_MAX(int)];
                 xsprintf(fn, "/proc/self/fd/%i", fd);
 
                 /* not using i->path directly because it may be a glob */
@@ -946,7 +946,7 @@ static int path_set_acl(const char *path, const char *pretty, acl_type_t type, a
 static int path_set_acls(Item *item, const char *path) {
         int r = 0;
 #if HAVE_ACL
-        char fn[strlen("/proc/self/fd/") + DECIMAL_STR_MAX(int)];
+        char fn[STRLEN("/proc/self/fd/") + DECIMAL_STR_MAX(int)];
         _cleanup_close_ int fd = -1;
         struct stat st;
 
index d01cf8f19487e1cad90ded1d0325045bd7a96241..3b2c7b5e1246f696ba92d8b70a41dc62f2f08dc7 100644 (file)
@@ -130,6 +130,7 @@ libudev_core = static_library(
         link_config_gperf_c,
         keyboard_keys_from_name_h,
         include_directories : libudev_core_includes,
+        c_args : ['-DLOG_REALM=LOG_REALM_UDEV'],
         link_with : udev_link_with,
         dependencies : [libblkid, libkmod])
 
index 89891f9e274981354204b47a0cef06994670d515..92d41a6e95bfcf7dba646d4c6d26a057aabcb38d 100644 (file)
@@ -171,7 +171,7 @@ static int load_link(link_config_ctx *ctx, const char *filename) {
         link->port = _NET_DEV_PORT_INVALID;
         link->autonegotiation = -1;
 
-        memset(&link->features, -1, sizeof(link->features));
+        memset(&link->features, 0xFF, sizeof(link->features));
 
         r = config_parse(NULL, filename, file,
                          "Match\0Link\0Ethernet\0",
@@ -186,6 +186,8 @@ static int load_link(link_config_ctx *ctx, const char *filename) {
                 return -ERANGE;
 
         link->filename = strdup(filename);
+        if (!link->filename)
+                return log_oom();
 
         LIST_PREPEND(links, ctx->links, link);
         link = NULL;
index 07064e25971e2bf75d594dd67fd239b0be31572f..8f7c28f03d4f6879a64856577e2c1403a822be98 100644 (file)
@@ -231,7 +231,7 @@ static size_t subst_format_var(struct udev_event *event, struct udev_device *dev
                         break;
                 devnode = udev_device_get_devnode(dev_parent);
                 if (devnode != NULL)
-                        l = strpcpy(&s, l, devnode + strlen("/dev/"));
+                        l = strpcpy(&s, l, devnode + STRLEN("/dev/"));
                 break;
         }
         case SUBST_DEVNODE:
@@ -242,7 +242,8 @@ static size_t subst_format_var(struct udev_event *event, struct udev_device *dev
                 if (event->name != NULL)
                         l = strpcpy(&s, l, event->name);
                 else if (udev_device_get_devnode(dev) != NULL)
-                        l = strpcpy(&s, l, udev_device_get_devnode(dev) + strlen("/dev/"));
+                        l = strpcpy(&s, l,
+                                    udev_device_get_devnode(dev) + STRLEN("/dev/"));
                 else
                         l = strpcpy(&s, l, udev_device_get_sysname(dev));
                 break;
@@ -252,9 +253,12 @@ static size_t subst_format_var(struct udev_event *event, struct udev_device *dev
                 list_entry = udev_device_get_devlinks_list_entry(dev);
                 if (list_entry == NULL)
                         break;
-                l = strpcpy(&s, l, udev_list_entry_get_name(list_entry) + strlen("/dev/"));
+                l = strpcpy(&s, l,
+                            udev_list_entry_get_name(list_entry) + STRLEN("/dev/"));
                 udev_list_entry_foreach(list_entry, udev_list_entry_get_next(list_entry))
-                        l = strpcpyl(&s, l, " ", udev_list_entry_get_name(list_entry) + strlen("/dev/"), NULL);
+                        l = strpcpyl(&s, l, " ",
+                                     udev_list_entry_get_name(list_entry) + STRLEN("/dev/"),
+                                     NULL);
                 break;
         }
         case SUBST_ROOT:
index ef893247adef8631aef94d1cd120a465eab3882e..bb845889cc098963ecdac8f8c14935dc3afa2b67 100644 (file)
@@ -187,7 +187,7 @@ static void link_update(struct udev_device *dev, const char *slink, bool add) {
         const char *target;
         char buf[UTIL_PATH_SIZE];
 
-        util_path_encode(slink + strlen("/dev"), name_enc, sizeof(name_enc));
+        util_path_encode(slink + STRLEN("/dev"), name_enc, sizeof(name_enc));
         strscpyl(dirname, sizeof(dirname), "/run/udev/links/", name_enc, NULL);
         strscpyl(filename, sizeof(filename), dirname, "/", udev_device_get_id_filename(dev), NULL);
 
index e9588abd695fe3f28ecb07da7c0b8d75b2d0b7d4..f4708bb06687b5d8592808b753caf2025fcadcda 100644 (file)
@@ -1098,7 +1098,8 @@ static void add_rule(struct udev_rules *rules, char *line,
                         rule_add_key(&rule_tmp, TK_M_DRIVER, op, value, NULL);
 
                 } else if (startswith(key, "ATTR{")) {
-                        attr = get_key_attribute(rules->udev, key + strlen("ATTR"));
+                        attr = get_key_attribute(rules->udev,
+                                                 key + STRLEN("ATTR"));
                         if (attr == NULL)
                                 LOG_AND_RETURN("error parsing %s attribute", "ATTR");
 
@@ -1111,7 +1112,8 @@ static void add_rule(struct udev_rules *rules, char *line,
                                 rule_add_key(&rule_tmp, TK_A_ATTR, op, value, attr);
 
                 } else if (startswith(key, "SYSCTL{")) {
-                        attr = get_key_attribute(rules->udev, key + strlen("SYSCTL"));
+                        attr = get_key_attribute(rules->udev,
+                                                 key + STRLEN("SYSCTL"));
                         if (attr == NULL)
                                 LOG_AND_RETURN("error parsing %s attribute", "ATTR");
 
@@ -1124,7 +1126,8 @@ static void add_rule(struct udev_rules *rules, char *line,
                                 rule_add_key(&rule_tmp, TK_A_SYSCTL, op, value, attr);
 
                 } else if (startswith(key, "SECLABEL{")) {
-                        attr = get_key_attribute(rules->udev, key + strlen("SECLABEL"));
+                        attr = get_key_attribute(rules->udev,
+                                                 key + STRLEN("SECLABEL"));
                         if (attr == NULL)
                                 LOG_AND_RETURN("error parsing %s attribute", "SECLABEL");
 
@@ -1155,7 +1158,8 @@ static void add_rule(struct udev_rules *rules, char *line,
                         if (op > OP_MATCH_MAX)
                                 LOG_AND_RETURN("invalid %s operation", "ATTRS");
 
-                        attr = get_key_attribute(rules->udev, key + strlen("ATTRS"));
+                        attr = get_key_attribute(rules->udev,
+                                                 key + STRLEN("ATTRS"));
                         if (attr == NULL)
                                 LOG_AND_RETURN("error parsing %s attribute", "ATTRS");
 
@@ -1172,7 +1176,8 @@ static void add_rule(struct udev_rules *rules, char *line,
                         rule_add_key(&rule_tmp, TK_M_TAGS, op, value, NULL);
 
                 } else if (startswith(key, "ENV{")) {
-                        attr = get_key_attribute(rules->udev, key + strlen("ENV"));
+                        attr = get_key_attribute(rules->udev,
+                                                 key + STRLEN("ENV"));
                         if (attr == NULL)
                                 LOG_AND_RETURN("error parsing %s attribute", "ENV");
 
@@ -1218,7 +1223,8 @@ static void add_rule(struct udev_rules *rules, char *line,
                         rule_add_key(&rule_tmp, TK_M_RESULT, op, value, NULL);
 
                 } else if (startswith(key, "IMPORT")) {
-                        attr = get_key_attribute(rules->udev, key + strlen("IMPORT"));
+                        attr = get_key_attribute(rules->udev,
+                                                 key + STRLEN("IMPORT"));
                         if (attr == NULL) {
                                 LOG_RULE_WARNING("ignoring IMPORT{} with missing type");
                                 continue;
@@ -1262,7 +1268,8 @@ static void add_rule(struct udev_rules *rules, char *line,
                         if (op > OP_MATCH_MAX)
                                 LOG_AND_RETURN("invalid %s operation", "TEST");
 
-                        attr = get_key_attribute(rules->udev, key + strlen("TEST"));
+                        attr = get_key_attribute(rules->udev,
+                                                 key + STRLEN("TEST"));
                         if (attr != NULL) {
                                 mode = strtol(attr, NULL, 8);
                                 rule_add_key(&rule_tmp, TK_M_TEST, op, value, &mode);
@@ -1270,7 +1277,8 @@ static void add_rule(struct udev_rules *rules, char *line,
                                 rule_add_key(&rule_tmp, TK_M_TEST, op, value, NULL);
 
                 } else if (startswith(key, "RUN")) {
-                        attr = get_key_attribute(rules->udev, key + strlen("RUN"));
+                        attr = get_key_attribute(rules->udev,
+                                                 key + STRLEN("RUN"));
                         if (attr == NULL)
                                 attr = "program";
                         if (op == OP_REMOVE)
@@ -1389,14 +1397,14 @@ static void add_rule(struct udev_rules *rules, char *line,
 
                         pos = strstr(value, "link_priority=");
                         if (pos != NULL) {
-                                int prio = atoi(pos + strlen("link_priority="));
+                                int prio = atoi(pos + STRLEN("link_priority="));
 
                                 rule_add_key(&rule_tmp, TK_A_DEVLINK_PRIO, op, NULL, &prio);
                         }
 
                         pos = strstr(value, "string_escape=");
                         if (pos != NULL) {
-                                pos += strlen("string_escape=");
+                                pos += STRLEN("string_escape=");
                                 if (startswith(pos, "none"))
                                         rule_add_key(&rule_tmp, TK_A_STRING_ESCAPE_NONE, op, NULL, NULL);
                                 else if (startswith(pos, "replace"))
@@ -1423,7 +1431,7 @@ static void add_rule(struct udev_rules *rules, char *line,
 
                         pos = strstr(value, "static_node=");
                         if (pos != NULL) {
-                                pos += strlen("static_node=");
+                                pos += STRLEN("static_node=");
                                 rule_add_key(&rule_tmp, TK_A_STATIC_NODE, op, pos, NULL);
                                 rule_tmp.rule.rule.has_static_node = true;
                         }
@@ -1784,7 +1792,7 @@ void udev_rules_apply_to_event(struct udev_rules *rules,
                         udev_list_entry_foreach(list_entry, udev_device_get_devlinks_list_entry(event->dev)) {
                                 const char *devlink;
 
-                                devlink = udev_list_entry_get_name(list_entry) + strlen("/dev/");
+                                devlink = udev_list_entry_get_name(list_entry) + STRLEN("/dev/");
                                 if (match_key(rules, cur, devlink) == 0) {
                                         match = true;
                                         break;
@@ -2295,7 +2303,7 @@ void udev_rules_apply_to_event(struct udev_rules *rules,
                                         log_debug("%i character(s) replaced", count);
                         }
                         if (major(udev_device_get_devnum(event->dev)) &&
-                            !streq(name_str, udev_device_get_devnode(event->dev) + strlen("/dev/"))) {
+                            !streq(name_str, udev_device_get_devnode(event->dev) + STRLEN("/dev/"))) {
                                 log_error("NAME=\"%s\" ignored, kernel device nodes cannot be renamed; please fix it in %s:%u\n",
                                           name,
                                           rules_str(rules, rule->rule.filename_off),
index ab9237ff7857010610a03e1179cfe50ef8abb2f3..d80d61583dd7fa4684eb0a35890c4a1f67552714 100644 (file)
@@ -63,10 +63,8 @@ static int adm_control(struct udev *udev, int argc, char *argv[]) {
                 {}
         };
 
-        if (getuid() != 0) {
-                log_error("root privileges required");
+        if (must_be_root() < 0)
                 return 1;
-        }
 
         uctrl = udev_ctrl_new(udev);
         if (uctrl == NULL)
index 396ccfb4e2047baafa2c3734d9b8df0b4e1943c6..580e95095b56909f7577188b0ce5a43d180160c8 100644 (file)
@@ -137,14 +137,15 @@ static void print_record(struct udev_device *device) {
 
         str = udev_device_get_devnode(device);
         if (str != NULL)
-                printf("N: %s\n", str + strlen("/dev/"));
+                printf("N: %s\n", str + STRLEN("/dev/"));
 
         i = udev_device_get_devlink_priority(device);
         if (i != 0)
                 printf("L: %i\n", i);
 
         udev_list_entry_foreach(list_entry, udev_device_get_devlinks_list_entry(device))
-                printf("S: %s\n", udev_list_entry_get_name(list_entry) + strlen("/dev/"));
+                printf("S: %s\n",
+                       udev_list_entry_get_name(list_entry) + STRLEN("/dev/"));
 
         udev_list_entry_foreach(list_entry, udev_device_get_properties_list_entry(device))
                 printf("E: %s=%s\n",
@@ -412,7 +413,8 @@ static int uinfo(struct udev *udev, int argc, char *argv[]) {
                         if (root)
                                 printf("%s\n", udev_device_get_devnode(device));
                         else
-                                printf("%s\n", udev_device_get_devnode(device) + strlen("/dev/"));
+                                printf("%s\n",
+                                       udev_device_get_devnode(device) + STRLEN("/dev/"));
                         break;
                 }
                 case QUERY_SYMLINK:
@@ -421,7 +423,8 @@ static int uinfo(struct udev *udev, int argc, char *argv[]) {
                                 if (root)
                                         printf("%s", udev_list_entry_get_name(list_entry));
                                 else
-                                        printf("%s", udev_list_entry_get_name(list_entry) + strlen("/dev/"));
+                                        printf("%s",
+                                               udev_list_entry_get_name(list_entry) + STRLEN("/dev/"));
                                 list_entry = udev_list_entry_get_next(list_entry);
                                 if (list_entry != NULL)
                                         printf(" ");
index 38ced53676394f9ba44ae1aca103ce3ca630a192..1644935ff9de00371efb1dc52d93b7d2251002ad 100644 (file)
@@ -1670,10 +1670,9 @@ int main(int argc, char *argv[]) {
                 log_set_max_level(LOG_DEBUG);
         }
 
-        if (getuid() != 0) {
-                r = log_error_errno(EPERM, "root privileges required");
+        r = must_be_root();
+        if (r < 0)
                 goto exit;
-        }
 
         if (arg_children_max == 0) {
                 cpu_set_t cpu_set;
index c928741a4ea99f7238a3093cab684a1fdc5be1b4..e19a1637bf4d038c7abc03a89db6062a4f22055a 100644 (file)
@@ -335,7 +335,7 @@ static int find_source_vc(char **ret_path, unsigned *ret_idx) {
         int ret_fd, r, err = 0;
 
         path = new(char, sizeof("/dev/tty63"));
-        if (path == NULL)
+        if (!path)
                 return log_oom();
 
         for (i = 1; i <= 63; i++) {
@@ -396,7 +396,7 @@ static int verify_source_vc(char **ret_path, const char *src_vc) {
                 return log_error_errno(r, "Virtual console %s is not in K_XLATE or K_UNICODE: %m", src_vc);
 
         path = strdup(src_vc);
-        if (path == NULL)
+        if (!path)
                 return log_oom();
 
         *ret_path = path;
index 5919b1380e768b3420d2ac65547feb6368d30eb2..c29c6f0bb3f085b524ceccdd2c4c5badbe6ae17f 100644 (file)
@@ -27,6 +27,7 @@
 #include "fd-util.h"
 #include "fileio.h"
 #include "fstab-util.h"
+#include "generator.h"
 #include "hexdecoct.h"
 #include "id128-util.h"
 #include "mkdir.h"
@@ -36,6 +37,8 @@
 #include "string-util.h"
 #include "unit-name.h"
 
+#define SYSTEMD_VERITYSETUP_SERVICE "systemd-veritysetup@root.service"
+
 static char *arg_dest = NULL;
 static bool arg_enabled = true;
 static char *arg_root_hash = NULL;
@@ -45,7 +48,7 @@ static char *arg_hash_what = NULL;
 static int create_device(void) {
         _cleanup_free_ char *u = NULL, *v = NULL, *d = NULL, *e = NULL, *u_escaped = NULL, *v_escaped = NULL, *root_hash_escaped = NULL;
         _cleanup_fclose_ FILE *f = NULL;
-        const char *p, *to;
+        const char *to;
         int r;
 
         /* If all three pieces of information are missing, then verity is turned off */
@@ -67,8 +70,6 @@ static int create_device(void) {
                   "                  hash device %s,\n"
                   "                and root hash %s.", arg_data_what, arg_hash_what, arg_root_hash);
 
-        p = strjoina(arg_dest, "/systemd-veritysetup@root.service");
-
         u = fstab_node_to_udev_node(arg_data_what);
         if (!u)
                 return log_oom();
@@ -94,12 +95,11 @@ static int create_device(void) {
         if (!root_hash_escaped)
                 return log_oom();
 
-        f = fopen(p, "wxe");
-        if (!f)
-                return log_error_errno(errno, "Failed to create unit file %s: %m", p);
+        r = generator_open_unit_file(arg_dest, NULL, SYSTEMD_VERITYSETUP_SERVICE, &f);
+        if (r < 0)
+                return r;
 
         fprintf(f,
-                "# Automatically generated by systemd-veritysetup-generator\n\n"
                 "[Unit]\n"
                 "Description=Integrity Protection Setup for %%I\n"
                 "Documentation=man:systemd-veritysetup-generator(8) man:systemd-veritysetup@.service(8)\n"
@@ -121,12 +121,12 @@ static int create_device(void) {
 
         r = fflush_and_check(f);
         if (r < 0)
-                return log_error_errno(r, "Failed to write file %s: %m", p);
+                return log_error_errno(r, "Failed to write file unit "SYSTEMD_VERITYSETUP_SERVICE": %m");
 
-        to = strjoina(arg_dest, "/cryptsetup.target.requires/systemd-veritysetup@root.service");
+        to = strjoina(arg_dest, "/cryptsetup.target.requires/" SYSTEMD_VERITYSETUP_SERVICE);
 
         (void) mkdir_parents(to, 0755);
-        if (symlink("../systemd-veritysetup@root.service", to) < 0)
+        if (symlink("../" SYSTEMD_VERITYSETUP_SERVICE, to) < 0)
                 return log_error_errno(errno, "Failed to create symlink %s: %m", to);
 
         return 0;
index 3a212a07a917789bde5ab3051595cccb98efb2d4..34d7cc6cdf70a3ac79eb330a5b5a5c35394aad8c 100644 (file)
@@ -1,4 +1,4 @@
-BUILD_DIR=$(exec ../../tools/find-build-dir.sh)
+BUILD_DIR=$(shell ../../tools/find-build-dir.sh)
 
 all setup clean run:
        @basedir=../.. TEST_BASE_DIR=../ BUILD_DIR=$(BUILD_DIR) ./test.sh --$@
index ddcbbc302fa4250b7834fe003bb259440cbf0ee8..7d74b1343a60b9d272dc1a2fdefc1df63f553e34 100644 (file)
@@ -1,4 +1,4 @@
-BUILD_DIR=$(exec ../../tools/find-build-dir.sh)
+BUILD_DIR=$(shell ../../tools/find-build-dir.sh)
 
 all setup run:
        @basedir=../.. TEST_BASE_DIR=../ BUILD_DIR=$(BUILD_DIR) ./test.sh --$@
index 7f7380fd6267eb77db360ac78c57ad189727fcba..6a0cb42eaf8945a876f2ed258edd0f26ea717e30 100755 (executable)
@@ -18,12 +18,12 @@ test_setup() {
         eval $(udevadm info --export --query=env --name=${LOOPDEV}p2)
 
         setup_basic_environment
-        dracut_install busybox chmod rmdir unshare
+        dracut_install busybox chmod rmdir unshare ip
 
         cp create-busybox-container $initdir/
 
         ./create-busybox-container $initdir/nc-container
-        initdir="$initdir/nc-container" dracut_install nc
+        initdir="$initdir/nc-container" dracut_install nc ip
 
         # setup the testsuite service
         cat >$initdir/etc/systemd/system/testsuite.service <<EOF
@@ -34,6 +34,8 @@ After=multi-user.target
 [Service]
 ExecStart=/test-nspawn.sh
 Type=oneshot
+StandardOutput=tty
+StandardError=tty
 EOF
 
         cat >$initdir/test-nspawn.sh <<'EOF'
@@ -107,6 +109,52 @@ function run {
        [[ "$is_user_ns_supported" = "no" && "$3" = "yes" ]] && return 1
     fi
 
+    local _netns_opt="--network-namespace-path=/proc/self/ns/net"
+
+    # --network-namespace-path and network-related options cannot be used together
+    if UNIFIED_CGROUP_HIERARCHY="$1" SYSTEMD_NSPAWN_USE_CGNS="$2" SYSTEMD_NSPAWN_API_VFS_WRITABLE="$3" systemd-nspawn --register=no -D "$_root" "$_netns_opt" --network-interface=lo -b; then
+       return 1
+    fi
+
+    if UNIFIED_CGROUP_HIERARCHY="$1" SYSTEMD_NSPAWN_USE_CGNS="$2" SYSTEMD_NSPAWN_API_VFS_WRITABLE="$3" systemd-nspawn --register=no -D "$_root" "$_netns_opt" --network-macvlan=lo -b; then
+       return 1
+    fi
+
+    if UNIFIED_CGROUP_HIERARCHY="$1" SYSTEMD_NSPAWN_USE_CGNS="$2" SYSTEMD_NSPAWN_API_VFS_WRITABLE="$3" systemd-nspawn --register=no -D "$_root" "$_netns_opt" --network-ipvlan=lo -b; then
+       return 1
+    fi
+
+    if UNIFIED_CGROUP_HIERARCHY="$1" SYSTEMD_NSPAWN_USE_CGNS="$2" SYSTEMD_NSPAWN_API_VFS_WRITABLE="$3" systemd-nspawn --register=no -D "$_root" "$_netns_opt" --network-veth -b; then
+       return 1
+    fi
+
+    if UNIFIED_CGROUP_HIERARCHY="$1" SYSTEMD_NSPAWN_USE_CGNS="$2" SYSTEMD_NSPAWN_API_VFS_WRITABLE="$3" systemd-nspawn --register=no -D "$_root" "$_netns_opt" --network-veth-extra=lo -b; then
+       return 1
+    fi
+
+    if UNIFIED_CGROUP_HIERARCHY="$1" SYSTEMD_NSPAWN_USE_CGNS="$2" SYSTEMD_NSPAWN_API_VFS_WRITABLE="$3" systemd-nspawn --register=no -D "$_root" "$_netns_opt" --network-bridge=lo -b; then
+       return 1
+    fi
+
+    if UNIFIED_CGROUP_HIERARCHY="$1" SYSTEMD_NSPAWN_USE_CGNS="$2" SYSTEMD_NSPAWN_API_VFS_WRITABLE="$3" systemd-nspawn --register=no -D "$_root" "$_netns_opt" --network-zone=zone -b; then
+       return 1
+    fi
+
+    if UNIFIED_CGROUP_HIERARCHY="$1" SYSTEMD_NSPAWN_USE_CGNS="$2" SYSTEMD_NSPAWN_API_VFS_WRITABLE="$3" systemd-nspawn --register=no -D "$_root" "$_netns_opt" --private-network -b; then
+       return 1
+    fi
+
+    # test --network-namespace-path works with a network namespace created by "ip netns"
+    ip netns add nspawn_test
+    _netns_opt="--network-namespace-path=/run/netns/nspawn_test"
+    UNIFIED_CGROUP_HIERARCHY="$1" SYSTEMD_NSPAWN_USE_CGNS="$2" SYSTEMD_NSPAWN_API_VFS_WRITABLE="$3" systemd-nspawn --register=no -D "$_root" "$_netns_opt" /bin/ip a | grep -v -E '^1: lo.*UP'
+    local r=$?
+    ip netns del nspawn_test
+
+    if [ $r -ne 0 ]; then
+       return 1
+    fi
+
     return 0
 }
 
diff --git a/test/TEST-16-EXTEND-TIMEOUT/Makefile b/test/TEST-16-EXTEND-TIMEOUT/Makefile
new file mode 120000 (symlink)
index 0000000..e9f93b1
--- /dev/null
@@ -0,0 +1 @@
+../TEST-01-BASIC/Makefile
\ No newline at end of file
diff --git a/test/TEST-16-EXTEND-TIMEOUT/assess.sh b/test/TEST-16-EXTEND-TIMEOUT/assess.sh
new file mode 100755 (executable)
index 0000000..e7f643f
--- /dev/null
@@ -0,0 +1,55 @@
+#!/bin/bash
+set -v -x
+
+rm -f /test.log
+
+TL=/test.log.XXXXXXXX
+
+function wait_for()
+{
+    service=${1}
+    result=${2:-success}
+    time=${3:-45}
+
+    while [[ ! -f /${service}.terminated && ! -f /${service}.success && $time -gt 0  ]]
+    do
+        sleep 1
+        time=$(( $time - 1 ))
+    done
+
+    if [[ ! -f /${service}.${result} ]]
+    then
+        journalctl -u testsuite-${service/_/-}.service >> "${TL}"
+    fi
+}
+
+# This checks all stages, start, runtime and stop, can be extended by
+# EXTEND_TIMEOUT_USEC
+
+wait_for success_all
+
+# These check that EXTEND_TIMEOUT_USEC that occurs at greater than the
+# extend timeout interval but less then the stage limit (TimeoutStartSec,
+# RuntimeMaxSec, TimeoutStopSec) still succeed.
+
+wait_for success_start
+wait_for success_runtime
+wait_for success_stop
+
+# These ensure that EXTEND_TIMEOUT_USEC will still timeout in the
+# approprate stage, after the stage limit, when the EXTEND_TIMEOUT_USEC
+# message isn't sent within the extend timeout interval.
+
+wait_for fail_start startfail
+wait_for fail_stop stopfail
+wait_for fail_runtime runtimefail
+
+if [[ -f "${TL}" ]]
+then
+    # no mv
+    cp "${TL}" /test.log
+    exit 1
+else
+    touch /testok
+    exit 0
+fi
diff --git a/test/TEST-16-EXTEND-TIMEOUT/extend_timeout_test_service.sh b/test/TEST-16-EXTEND-TIMEOUT/extend_timeout_test_service.sh
new file mode 100755 (executable)
index 0000000..1fd2768
--- /dev/null
@@ -0,0 +1,70 @@
+#!/bin/bash
+set -x
+set -e
+set -o pipefail
+
+# sleep interval (seconds)
+sleep_interval=1
+# extend_timeout_interval second(s)
+extend_timeout_interval=1
+# number of sleep_intervals before READY=1
+start_intervals=10
+# number of sleep_intervals before exiting
+stop_intervals=10
+# run intervals, number of sleep_intervals to run
+run_intervals=7
+# service name
+SERVICE=unknown
+
+while [ $# -gt 0 ];
+do
+    eval ${1%=*}=${1#*=}
+    shift
+done
+
+# We convert to usec
+extend_timeout_interval=$(( $extend_timeout_interval * 1000000 ))
+
+trap "{ touch /${SERVICE}.terminated; exit 1; }"  SIGTERM SIGABRT
+
+rm -f /${SERVICE}.*
+touch /${SERVICE}.startfail
+
+systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
+while [ $start_intervals -gt 0 ]
+do
+    sleep $sleep_interval
+    start_intervals=$(( $start_intervals - 1 ))
+    systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
+done
+
+systemd-notify --ready --status="Waiting for your request"
+
+touch /${SERVICE}.runtimefail
+rm /${SERVICE}.startfail
+
+systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
+while [ $run_intervals -gt 0 ]
+do
+    sleep $sleep_interval
+    run_intervals=$(( $run_intervals - 1 ))
+    systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
+done
+
+systemd-notify STOPPING=1
+
+touch /${SERVICE}.stopfail
+rm /${SERVICE}.runtimefail
+
+systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
+while [ $stop_intervals -gt 0 ]
+do
+    sleep $sleep_interval
+    stop_intervals=$(( $stop_intervals - 1 ))
+    systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
+done
+
+touch /${SERVICE}.success
+rm /${SERVICE}.stopfail
+
+exit 0
diff --git a/test/TEST-16-EXTEND-TIMEOUT/test.sh b/test/TEST-16-EXTEND-TIMEOUT/test.sh
new file mode 100755 (executable)
index 0000000..4544672
--- /dev/null
@@ -0,0 +1,52 @@
+#!/bin/bash
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+set -e
+TEST_DESCRIPTION="EXTEND_TIMEOUT_USEC=usec start/runtime/stop tests"
+SKIP_INITRD=yes
+
+. $TEST_BASE_DIR/test-functions
+
+test_setup() {
+    create_empty_image
+    mkdir -p $TESTDIR/root
+    mount ${LOOPDEV}p1 $TESTDIR/root
+
+    # Create what will eventually be our root filesystem onto an overlay
+    (
+        eval $(udevadm info --export --query=env --name=${LOOPDEV}p2)
+
+        setup_basic_environment
+
+        for s in success-all success-start success-stop success-runtime \
+                 fail-start fail-stop fail-runtime
+        do
+            cp testsuite-${s}.service ${initdir}/etc/systemd/system
+        done
+        cp testsuite.service ${initdir}/etc/systemd/system
+
+        cp extend_timeout_test_service.sh ${initdir}/
+        cp assess.sh ${initdir}/
+        cp $BUILD_DIR/systemd-notify ${initdir}/bin
+        cp $BUILD_DIR/src/shared/libsystemd-shared-*.so ${initdir}/usr/lib
+
+        setup_testsuite
+    ) || return 1
+    # mask some services that we do not want to run in these tests
+    ln -s /dev/null $initdir/etc/systemd/system/systemd-hwdb-update.service
+    ln -s /dev/null $initdir/etc/systemd/system/systemd-journal-catalog-update.service
+    ln -s /dev/null $initdir/etc/systemd/system/systemd-networkd.service
+    ln -s /dev/null $initdir/etc/systemd/system/systemd-networkd.socket
+    ln -s /dev/null $initdir/etc/systemd/system/systemd-resolved.service
+
+    setup_nspawn_root
+
+    ddebug "umount $TESTDIR/root"
+    umount $TESTDIR/root
+}
+
+test_cleanup() {
+    return 0
+}
+
+do_test "$@"
diff --git a/test/TEST-16-EXTEND-TIMEOUT/testsuite-fail-runtime.service b/test/TEST-16-EXTEND-TIMEOUT/testsuite-fail-runtime.service
new file mode 100644 (file)
index 0000000..e0b9f6a
--- /dev/null
@@ -0,0 +1,13 @@
+
+[Unit]
+Description=Testsuite: Fail Runtime (EXTEND_TIMEOUT_USEC Didn't occur in sufficient time after RuntimeSecMax.)
+
+[Service]
+
+# EXTEND_TIMEOUT_USEC on runtime start (0) and 7 seconds after. Systemd will expect one at 7+5 (extend_timeout_interval)
+# seconds this won't happen until 7 + 7 (sleep interval) seconds. Therefore timeout at 12 seconds.
+Type=notify
+TimeoutStartSec=4
+TimeoutStopSec=4
+RuntimeMaxSec=10
+ExecStart=/extend_timeout_test_service.sh SERVICE=fail_runtime extend_timeout_interval=5 sleep_interval=7 start_intervals=0 run_intervals=2 stop_intervals=0
diff --git a/test/TEST-16-EXTEND-TIMEOUT/testsuite-fail-start.service b/test/TEST-16-EXTEND-TIMEOUT/testsuite-fail-start.service
new file mode 100644 (file)
index 0000000..c3fcf23
--- /dev/null
@@ -0,0 +1,13 @@
+
+[Unit]
+Description=Testsuite: Fail Start (EXTEND_TIMEOUT_USEC Didn't occur in sufficient time after TimeoutStartSec.)
+
+[Service]
+
+# EXTEND_TIMEOUT_USEC on startup and 7 seconds from start. Systemd will expect one at 7+5 (extend_timeout_interval)
+# seconds  this won't happen until 7 + 7 (sleep interval) seconds. Therefore timeout at 12 seconds.
+Type=notify
+TimeoutStartSec=10
+TimeoutStopSec=4
+RuntimeMaxSec=4
+ExecStart=/extend_timeout_test_service.sh SERVICE=fail_start extend_timeout_interval=5 sleep_interval=7 start_intervals=2 run_intervals=0 stop_intervals=0
diff --git a/test/TEST-16-EXTEND-TIMEOUT/testsuite-fail-stop.service b/test/TEST-16-EXTEND-TIMEOUT/testsuite-fail-stop.service
new file mode 100644 (file)
index 0000000..ce76d10
--- /dev/null
@@ -0,0 +1,16 @@
+
+[Unit]
+Description=Testsuite: Fail Stop (EXTEND_TIMEOUT_USEC Didn't occur in sufficient time after TimeoutStopSec.)
+
+[Service]
+
+# EXTEND_TIMEOUT_USEC on stop (0) and 7 seconds after. Systemd will expect one at 7+5 (extend_timeout_interval)
+# seconds this won't happen until 7 + 7 (sleep interval) seconds. Therefore timeout at 12 seconds.
+Type=notify
+TimeoutStartSec=4
+TimeoutStopSec=10
+RuntimeMaxSec=4
+ExecStart=/extend_timeout_test_service.sh SERVICE=fail_stop extend_timeout_interval=5 sleep_interval=7 start_intervals=0 run_intervals=0 stop_intervals=2
+# Due to 6041a7ee2c1bbff6301082f192fc1b0882400d42 SIGTERM isn't sent as the service shuts down with STOPPING=1
+# This file makes the test assess.sh quicker by notifing it that this test has finished.
+ExecStopPost=/bin/bash -c '[[ $SERVICE_RESULT == timeout && $EXIT_CODE == killed ]] && touch /fail_runtime.terminated'
diff --git a/test/TEST-16-EXTEND-TIMEOUT/testsuite-success-all.service b/test/TEST-16-EXTEND-TIMEOUT/testsuite-success-all.service
new file mode 100644 (file)
index 0000000..666f422
--- /dev/null
@@ -0,0 +1,14 @@
+
+[Unit]
+Description=Testsuite: EXTEND_TIMEOUT_USEC Success - extend timeout on all services
+
+[Service]
+
+# Normal success - startup / runtime / shutdown all take 8 seconds which is within the EXTEND_TIMEOUT_USEC=4 seconds interval
+# runtime is 8+8+8 seconds. so we are relying on the EXTEND_TIMEOUT_USEC to exceed all stages, Start, Runtime and Stop.
+# success occurs after 24 seconds
+Type=notify
+TimeoutStartSec=4
+TimeoutStopSec=4
+RuntimeMaxSec=4
+ExecStart=/extend_timeout_test_service.sh SERVICE=success_all extend_timeout_interval=4 sleep_interval=2 start_intervals=3 run_intervals=3 stop_intervals=3
diff --git a/test/TEST-16-EXTEND-TIMEOUT/testsuite-success-runtime.service b/test/TEST-16-EXTEND-TIMEOUT/testsuite-success-runtime.service
new file mode 100644 (file)
index 0000000..dc226f5
--- /dev/null
@@ -0,0 +1,13 @@
+
+[Unit]
+Description=Testsuite: Success Runtime (EXTEND_TIMEOUT_USEC > WATCHDOG_USEC however < RuntimeMaxSec)
+
+[Service]
+
+# EXTEND_TIMEOUT_USEC=4 second once during runtime, but sleep for 6 seconds.
+# Runtime is 6 seconds and < RuntimeMaxSec so still successful.
+Type=notify
+TimeoutStartSec=4
+TimeoutStopSec=4
+RuntimeMaxSec=8
+ExecStart=/extend_timeout_test_service.sh SERVICE=success_runtime extend_timeout_interval=4 sleep_interval=6 start_intervals=0 run_intervals=1 stop_intervals=0
diff --git a/test/TEST-16-EXTEND-TIMEOUT/testsuite-success-start.service b/test/TEST-16-EXTEND-TIMEOUT/testsuite-success-start.service
new file mode 100644 (file)
index 0000000..228eece
--- /dev/null
@@ -0,0 +1,13 @@
+
+[Unit]
+Description=Testsuite: Success Start (EXTEND_TIMEOUT_USEC > WATCHDOG_USEC however < TimeoutStartSec)
+
+[Service]
+
+# EXTEND_TIMEOUT_USEC=4 second interval once at startup, but sleep 6 seconds.
+# Therefore startup is 6 seconds and < TimeoutStartSec so still successful.
+Type=notify
+TimeoutStartSec=8
+TimeoutStopSec=4
+RuntimeMaxSec=4
+ExecStart=/extend_timeout_test_service.sh SERVICE=success_start extend_timeout_interval=4 sleep_interval=6 start_intervals=1 run_intervals=0 stop_intervals=0
diff --git a/test/TEST-16-EXTEND-TIMEOUT/testsuite-success-stop.service b/test/TEST-16-EXTEND-TIMEOUT/testsuite-success-stop.service
new file mode 100644 (file)
index 0000000..b809397
--- /dev/null
@@ -0,0 +1,13 @@
+
+[Unit]
+Description=Testsuite: Success Stop (EXTEND_TIMEOUT_USEC > WATCHDOG_USEC however < TimeoutStopSec)
+
+[Service]
+
+# EXTEND_TIMEOUT_USEC=4 seconds once during shutdown, but sleep for 6 seconds.
+# Therefore stop time is 6 seconds and < TimeoutStopSec so still successful.
+Type=notify
+TimeoutStartSec=4
+TimeoutStopSec=8
+RuntimeMaxSec=4
+ExecStart=/extend_timeout_test_service.sh SERVICE=success_stop extend_timeout_interval=4 sleep_interval=6 start_intervals=0 run_intervals=0 stop_intervals=1
diff --git a/test/TEST-16-EXTEND-TIMEOUT/testsuite.service b/test/TEST-16-EXTEND-TIMEOUT/testsuite.service
new file mode 100644 (file)
index 0000000..e1cd5ca
--- /dev/null
@@ -0,0 +1,18 @@
+
+[Unit]
+Description=Testsuite: Assess all other testsuite-*.services worked as expected
+
+Wants=testsuite-success-all.service
+Wants=testsuite-success-start.service
+Wants=testsuite-success-runtime.service
+Wants=testsuite-success-stop.service
+Wants=testsuite-fail-start.service
+Wants=testsuite-fail-stop.service
+Wants=testsuite-fail-runtime.service
+StopWhenUnneeded=yes
+
+[Service]
+
+Type=simple
+ExecStartPre=/assess.sh
+ExecStart=/bin/true
index 3a212a07a917789bde5ab3051595cccb98efb2d4..34d7cc6cdf70a3ac79eb330a5b5a5c35394aad8c 100644 (file)
@@ -1,4 +1,4 @@
-BUILD_DIR=$(exec ../../tools/find-build-dir.sh)
+BUILD_DIR=$(shell ../../tools/find-build-dir.sh)
 
 all setup clean run:
        @basedir=../.. TEST_BASE_DIR=../ BUILD_DIR=$(BUILD_DIR) ./test.sh --$@
index 3a212a07a917789bde5ab3051595cccb98efb2d4..34d7cc6cdf70a3ac79eb330a5b5a5c35394aad8c 100644 (file)
@@ -1,4 +1,4 @@
-BUILD_DIR=$(exec ../../tools/find-build-dir.sh)
+BUILD_DIR=$(shell ../../tools/find-build-dir.sh)
 
 all setup clean run:
        @basedir=../.. TEST_BASE_DIR=../ BUILD_DIR=$(BUILD_DIR) ./test.sh --$@
index 3a212a07a917789bde5ab3051595cccb98efb2d4..34d7cc6cdf70a3ac79eb330a5b5a5c35394aad8c 100644 (file)
@@ -1,4 +1,4 @@
-BUILD_DIR=$(exec ../../tools/find-build-dir.sh)
+BUILD_DIR=$(shell ../../tools/find-build-dir.sh)
 
 all setup clean run:
        @basedir=../.. TEST_BASE_DIR=../ BUILD_DIR=$(BUILD_DIR) ./test.sh --$@
index 0d348e5c08c360c04986832a6f6ecaac65c356be..20f662eb3b100eb6177bdbe1c7b1f507bd028cf3 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!/usr/bin/env perl
 
 # udev test
 #
index bf23929d4781069eca2f634502337aefe2de4ebb..6aae7c15348be7e2d6c1458234757c24089e00d3 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!/usr/bin/env perl
 #
 # checkincludes: Find files included more than once in (other) files.
 # Copyright abandoned, 2000, Niels Kristian Bech Jensen <nkbj@image.dk>.
index 33d603e16a14d9f9a31504959cecc4cf0e48a441..e9a78c647f0abb2dfaf8997f42fd24e74965680e 100755 (executable)
@@ -2,7 +2,7 @@
 
 cd "$1"
 
-if [ "$2" != "-n" ]; then
+if [ "${2:-}" != "-n" ]; then
         curl -L -o usb.ids 'http://www.linux-usb.org/usb.ids'
         curl -L -o pci.ids 'http://pci-ids.ucw.cz/v2.2/pci.ids'
         curl -L -o ma-large.txt 'http://standards-oui.ieee.org/oui/oui.txt'
@@ -11,7 +11,9 @@ if [ "$2" != "-n" ]; then
         curl -L -o pnp_id_registry.html 'http://www.uefi.org/uefi-pnp-export'
         curl -L -o acpi_id_registry.html 'http://www.uefi.org/uefi-acpi-export'
 fi
-./ids_parser.py
+
 ./acpi-update.py >20-acpi-vendor.hwdb.base
 patch -p0 -o- 20-acpi-vendor.hwdb.base <20-acpi-vendor.hwdb.patch >20-acpi-vendor.hwdb
 ! diff -u 20-acpi-vendor.hwdb.base 20-acpi-vendor.hwdb >20-acpi-vendor.hwdb.patch
+
+./ids_parser.py